DC靶场系列--DC1

目录

引言

搭建环境

信息收集

漏洞分析 

 漏洞利用


引言

     DC靶场,主要是通过web渗透技术,拿到web服务器的权限,会有flag做为标记,以拿到最终的flag为目标。DC1是vulnhub平台下的DC系列的第一个靶场,DC系列下载地址:官网下载(点击即可进入官网下载),百度网盘下载地址:https://pan.baidu.com/s/1n_mB0fZhP_s_6Kc0M8Tm1Q 
提取码:rmgj。接下来我将会出DC系列的教程,有做的不对或者不完善之处,还请各位小伙伴们不吝指导。

搭建环境

        第一步准备VMware、kali、DC1,VMware和kali(我使用的是2022.01的镜像,这里由于镜像文件太大,我在网盘里放了种子文件,大家可以自己去官网下载):链接:https://pan.baidu.com/s/1ZTnwtyB89QVzRp851d9z2A 
提取码:ftlb。

        第二步,基本环境准备好之后,部署DC1靶场,打开VMware之后,点击文件 -> 打开 -> 选择下载好的DC1中的DC-1.ova,输入虚拟机名称和选择存储路径,点击导入,一般会弹出导入失败的对话框,不用理,直接点击重试。导入完成之后,先不要着急开机。

        第三步,再开机之前,得先配置网络,这里得注意,DC1所处的网段跟kali所处的网段得互通,双击网络适配器,这里我选择的是桥接模式,kali和DC1都是桥接模式。

         第四步,配置好网络之后,打开kali和DC1。

信息收集

kali打开终端,由于kali和DC1都是桥接模式,所以属于同一网站 ,使用arp-scan -l,查看网段所有的主机。得到DC1的IP地址。(172.163.1.55)

使用nmap对DC1进行扫描,nmap -A -p- 172.163.1.55                                                           

-A:选定用于使用进攻性方式扫描

-p :扫描指定的端口(没有指定,默认对所有端口进行扫描)

 发现DC1的22端口、80端口、111端口是打开的,22端口可以使用爆破、ssh远程连接,80端口可以登录web网页,

在本机打开浏览器,使用http://172.168.1.55访问网页,

漏洞分析 

通过火狐浏览器插件wappalyzer发现,该网站使用的是Drupal 7的CMS搭建的,所以直接在kali的msf中搜索漏洞,在启动msf前先初始化msf的数据库(msfdb init),再使用msfconsole启动msf。

 在msf中搜索drupal 7的漏洞(search drupal 7.x),发现有一个可以利用的攻击脚本,

 漏洞利用

使用此脚本(use 0),再使用options查看此脚本的参数信息,

在此只需要配置RHOSTS,使用set rhosts 172.163.1.55(DC1的ip),设置完输入run,即可进入DC1的shell环境。 

 到此,我们得到的是一个不完整的shell,所以使用python中的pty模块,来反弹一个完整的shell,

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

到这里,我们进入到了DC1的www-data用户下,并在当前目录下发现了flag1.txt,我们查看flag1.txt,得到提示:任何一个完善的CMS都需要配置文件---所以你应该怎么做。

 

 提示我们去找配置文件,这里没有技巧,就是挨个目录去找,

最终我们发现在sites文件下有个default文件,里面有settings.txt,我们怀疑这个就是配置文件。

 查看settings.txt(cat settings.txt),我们发现了数据库的用户名/密码,以及数据库名。

我们使用此用户名密码,连接数据库。

mysql -udbuser -pR0ck3t;

 连接成功之后,使用数据库,查看当前数据库drupaldb下的数据表,(记得在数据库操作的语句后面输;) 

use drupaldb;
show tables;

 在数据表中我们发现,有个users的表,我们使用数据库查询语句,查users表的内容。

select * from users;

 在users表中,我们发现有admin用户,但是密码是加盐过的,一般加盐的密码是很难破解的,所以选择修改用户密码来解决。首先生成自定密码的加盐哈希值。退出mysql,回到/var/www下执行以下代码,生成自己的加盐密码,

exit           //退出mysql的shell
cd /var/www    //回到网站目录
php scripts/password-hash.sh  自己设置的密码
php scripts/password-hash.sh 123456

 再次连接数据库,使用drupaldb数据库,使用updata数据库执行语句将admin的密码设置为刚生成的加盐密码。

update users set pass="$S$D38o/6Z0AKdbU2T3EM0qOaiGN8UyKK6V/5oXQETlRf4ZfLgaf8UV" where uid=1;

 接下来我们就可以使用admin/123456,在浏览器登录了。

 

进入网站,点击左上角的Dashboard,查看到flag3.txt。

根据flag3中提示,去查看存放用户信息的文件和存放密码信息的文件, /etc/shadow无法查看,权限不够,查看etc/passwd,发现目标靶机用户flag4,并且有/bin/bash,看到这想到了还有端口22,所以ssh连接。

 但是我们不知道密码,所以我们在此使用kali自带的hydra爆破,使用kali自带的密码字典,路径为/usr/share/john/password.lst,kali自带各种密码默认保存在/usr/share/下。

所以我们在kali新打开一个终端,使用hydra对flag4用户做爆破,(这里解释一下,由于这篇文章边实验做编写,中途换了无线网,导致桥接的DC1的ip从172.163.1.55换成了192.168.0.119,这里大家做的时候不影响,直接按之前DC1的ip做就行。

hydra -l flag4 -P /usr/share/john/password.lst 192.168.0.119 ssh -vV -f 

 其中-l表示指定爆破的用户,-P表示指定使用哪个密码字典,ip为DC1的ip,利用ssh协议做爆破。

我们爆破得到,DC1的一个用户名密码为:flag4/orange, 所以我们新打开一个终端,采用ssh协议直接连接,

ssh flag4@192.168.0.119

 在flag4用户下,我们发现了flag4.txt。根据提示,我们需要拿到root用户的权限,才能得到最终的flag。

在这里我们使用suid提权(后面我会出一期详细的提权文章),通过命令查看是否具有root权限的命令。

find / -perm -4000 2>/dev/null

 发现_find_具有root权限。直接执行命令提权。

find -exec /bin/sh \;

 通过执行命令,成功提权到root用户。

此时,我们切换到root目录下,看到了最后的flag,thefinalflag.txt

  • 12
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值