0x00 环境搭建
靶机地址:https://www.vulnhub.com/entry/dc-2,311/
下载之后用vmware打开即可,使用桥接模式。
开机后搭建完成:
0x01 主机端口探测
用arp-scan -l
探测内网存活主机,再用nmap -sV -p- ip
来探测端口:
发现开启了80端口(HTTP服务)、7744端口(SSH服务)
0x02 web渗透
访问80端口,发现是一个 Drupal 搭建的站:
PS:直接访问发现访问不了,修改hosts文件后访问成功,加入192.168.43.108 dc-2。
直接在web服务中找到flag1:
提示要使用cewl
生成字典暴力破解,登陆后找到下一个flag。
目录扫描找到后台登录页面,还有安装页面和目录遍历,利用价值不大:
根据提示使用cewl
生成字典:
Cewl
是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件。
使用wpscan
枚举用户:
WPScan
是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress 漏洞并在他们开发前找到并解决问题。
wpscan --url https://www.xxxxxxx.wiki/ --enumerate u
共发现三个账户,下面进行暴破:
wpscan --url http://dc-2 -e u --passwords pass.txt
登录jerry找到flag2,tom账户无法查看flag2:
这里提示如果无法攻击WordPress需要找到其他切入点。
其实找flag2还有另一种方法,直接搜索就可以:
0x03 SSH远程登录
用刚才暴破出的tom用户远程登录:
发现提供的rbash(受限shell),仅能实现少量功能:
使用compgen -c
可以知道当前可使用的命令,发现可以用vi
和less
命令查看:
根据提示要想方切换到jerry家目录查看flag4,但是rbash受限无法使用cd命令,尝试绕过受限shell。
0x04 绕过Restricted Shell
参考链接:https://www.freebuf.com/articles/system/188989.html(Linux Restricted Shell绕过技巧总结)
使用vi
命令set shell绕过(在一些编辑器或命令中我们可以设置shell变量然后执行):
set shell=/bin/bash
shell
然后添加环境变量:export PATH=/usr/sbin:/usr/bin:/sbin:/bin
找到flag4:
提示需要git
提权拿最终flag。
补充rbash绕过:
- FTP:
ftp > !/bin/sh
- GDB:
gdb > !/bin/sh
- man/git:
man > !/bin/sh
git > git help status
- vim:
!/bin/sh 或者 !/bin/bash
- more/less:
!'sh'
- BASH_CMDS[a]=/bin/sh;a:
0x05 git提权
sudo执行原理:
普通用户执行命令 -> 检查/var/db/sudo/目录下是否有用户时间戳 -> 检查/etc/sudoers配置文件,用户是否有sudo权限 -> 执行sudo命令并反回结果 -> 退出sudo返回普通用户shell环境。
git提权:
sudo git help status
!/bin/bash
使用sudo -l
,查看当前身份可运行命令,提示tom用户不能执行sudo
命令:
切换jerry用户,可以执行git
命令:
成功提权找到最终flag:
总结
整体流程如下:
主机发现 => 端口扫描 => 访问web服务 => 拿到flag1 => 暴破登录 => 拿到flag2 => ssh登录 => 拿到flag3 => 绕过受限shell => 拿到flag4 => git提权 => 拿到最终flag
相比DC-1,感觉难度更小一点,适合新手练习,学习了绕过受限shell和git提权的方法。
参考链接:
http://evilanne.github.io/2019/07/24/sudo提权
https://www.freebuf.com/articles/system/188989.html(Linux Restricted Shell绕过技巧总结)