Vulnhub靶机渗透测试之DC-1
- 环境搭建
-
靶机镜像下载地址:https://www.vulnhub.com/entry/dc-1,292/;
-
需要将靶机和kali攻击机放在同一个局域网里;
-
kali的IP地址:192.168.40.131。
1. 信息收集
- 使用 nmap 扫描 192.168.40.0/24 网段存活主机
简单分析可知,靶机ip为 192.168.40.141
- web指纹识别
发现该网站是drupal,属于cms系统之一
- 使用 nmap 扫描常用端口
发现开放22、80端口;浏览器访问80端口:
很明显,我们看到网站的cms,可以直接在网上搜索这个cms的漏洞利用方式
2. 漏洞利用
我们使用metasploit对漏洞进行利用。
- 启动metasploit,搜索drupal模块。
经测试可以采用2018-03-28漏洞:
- 配置好参数,开始攻击。
set payload:
设置RHOSTS和LHOST:
开始攻击:成功建立会话
查看网站目录结构,发现flag1:
查看flag1.txt,给我们的提示信息:需要一个config file
- 进入系统下的shell
很显然这个shell虽然已经进入,但是这里并不是交互的shell,所以我们要进入交互式的shell,使用python反弹一个交互式shell:
- 既然是一个web应用,我们可以查找一下数据库的相关配置
发现flag2,数据库名、数据库用户/密码;
登录mysql数据库,查看表找到用户表获取密码:
show tables:查看数据库的表
查看users表:select * from users\G;
发现两个用户,但密码都是加密的且不好破解,所以我们选择使用一个我们已知的密文把它覆盖掉;用php下的一个脚本将123456加密:
修改admin的密码:
登录网站:
在Dashboard中发现flag3给的提示:特殊的PERMS将帮助找到passwd
- 查看etc/passwd文件
发现flag4,该服务器开放了22端口,我们可以使用九头蛇工具爆破密码:
hydra -l flag4 -P /usr/share/john/password.lst 192.168.40.141 ssh -vV -f -o hydra.ssh
爆破结果:
使用ssh连接,发现最后一个flag的提示信息:in root
进入root目录,发现权限不够,需要提权
3. 提权
首先想到使用suid提权找到一个属于root的有s权限的文件。
SUID(Set User ID),SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得获得root用户的身份了。
常见的可用于SUID提权的文件有:
find、bash、nmap、vim、more、less、nano、cp
当没有s权限时可以使用:chmod u+s 命令路径,增加权限
- 查找哪些命令具备SUID标识
相关命令:
find / -perm -4000 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
- 我们随便找一个命令看它是否拥有s权限
比如比较熟悉的find命令,先查看其信息:
发现其确实是root用户权限的SUID的文件find命令拥有s权限。
- 再利用find命令随便查找一个正确的文件(夹)路径,后面加上
-exec shell命令 \;
:
flag4@DC-1:/bin$ /usr/bin/find bash -exec whoami \;
root
flag4@DC-1:/bin$ /usr/bin/find bash -exec ping 127.0.0.1 \;
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.279 ms
64 bytes from 127.0.0.1: icmp_req=2 ttl=64 time=0.016 ms
64 bytes from 127.0.0.1: icmp_req=3 ttl=64 time=0.050 ms
...
发现确实可以以root权限运行。
- 提权
/bin/bash
或者/bin/sh
成功提权!拿到最后一个falg!