这次渗透是DC系列(VulnHub的仿真靶机)的DC-2,包含了wordpress框架漏洞、vi绕过rbash和git提权等知识。
Vulnhub 靶机实战系列:DC-2
靶机下载地址:https://www.five86.com/dc-2.html
目标:拿到5个flag
机器:kali+ dc-2
平台:vmware workstation
网络:均使用nat
找到dc-2的ip -> 192.168.124.131
简单信息收集:
开放端口扫描->80【http】 7744【ssh】
简单扫描一下,查看开放端口情况
仔细扫描,发现了网站做了域名绑定【域名绑定,他会自动跳转到dc-2上,所以我们需要在本地做个域名映射】
nmap -A 192.168.124.131 -p 1-65535 |
测试网站:
访问网站发现有跳转,但是显示失败,需要我们进行ip和域名绑定,通过hosts绑定。
windows本机和kali的hosts都绑定了ip和对应域名,方便操作。
kali: /etc/hosts
发现第一个flag
flag1提示:cewl + log in
【要使用crew,网上搜了一下它可以通过爬行网站获取关键信息创建一个密码字典。】
思路-》做密码字典暴力破解登录
通过插件指纹识别出网站是wordpress的cms博客,默认后台登录目录是 /wp-login.php
当然也可以通过
dirb http://dc-2 |
来找到后台登录地址。
制作用户名和密码字典,爆破wordpress后台,然后进行登录 【jerry /sadipiscing tom/parturient 】
crew可以通过爬行网站获取关键信息创建一个密码字典。
cewl 192.168.124.131 -w dc2_passwd.txt |
wordpress的一个wpscan工具非常有名
可以枚举出用户名
wpscan --url http://dc-2/ -e u |
把三个用户名放入names.txt当中
这样用户名字典和密码字典都有了,wpscan可以进行暴力破解了。【burp也能暴力破解的,但是emm,不知道怎么为啥没成功。。所以还是用了wpscan。】
wpscan --url http://dc-2 -U names.txt -P dc2_passwd.txt |
找到正确的账户密码
jerry adipiscing ->登录成功
tom parturient ->登录成功
tom的登录之后啥也没有
jerry登录之后找到flag2
得到flag2
flag2的暗示:不攻击网站,找到另外一种办法
停止测试网站,开始测试ssh
之前测试的时候发现还有个ssh开着的端口7744,可以看看
开始从ssh着手,利用得到了两个用户名及密码尝试登录ssh,最后tom账号成功登录,jerry失败了。
但是得到的不是bash shell【是rbash,rbash就是受限制的bash,一般管理员会限制很多命令,例如whoami cd cat等很多常用的命令,不过肯定会有命令可以使用,echo /home/用户名/usr/bin/ 使用该命令可查看该用户可使用的命令 】,很多命令用不了。
rbash很多的命令都不能用,所以要
echo $PATH # 查看环境变量 |
如上图:tom账号下可以使用 less ls scp vi
然后vi查看flag3.txt
这里提示我们要用Jerry的用户登录,既然可以使用vi就可以使用vi来绕过限制,首先vi创建一个文件 vi test。【其实less、ls、scp也可以试着绕过限制】
两种方式绕过rbash
方法一 使用vi绕过rabsh
Rbash是受限制的 bash,限制了bash shell的一些功能,主要用作中转服务器,或者仅使用 ssh 来进行访问的特殊bash,起到保护的作用。
**Shift+:**进入命令行
在命令行输以下命令
set shell=/bin/sh
再输入shell
进入如上界面
再输入命令
export PATH=/usr/sbin:/usr/bin:/sbin:/bin |
修改path路径之后就可以使用全部命令了
然后su jerry【利用之前得到的密码试试是否可以切换用户】就可以登录jerry用户了
方法二 更改环境变量绕过rbash
最后一句提示了git-》git提权【这个时候虽然拿到了jerry的权限,但是权限太低,很多命令执行不了的时候】
git提权
git提权执行前提:执行 sudo-l 【列出目前的权限,即查看当前用户可以执行的内容】 显示不需要密码可以使用git命令
git提权的方法:【这两个方法都可以】 |
我们本文案例配图用的是
sudo git help config ,跳到帮助页面后输入 !/bin/bash
提权成功,是root
总结:
扫描ip开放端口与服务:发现了 80端口和自定义的ssh端口7744,访问80端口但是加载不出来【因为靶机做了域名绑定,他会自动跳转到dc-2上,所以我们需要在本地做个域名映射】,然后hosts文件设置一下ip 和域名的映射。
然后访问网站,指纹识别是wordpress,找到默认登录后台【可以dirb 找后台登录地址(wordpress默认是wp-login.php,所以其实可以不用dirb扫描)】,wpscan枚举用户名 生成用户名字典 ,crew通过爬行网站获取关键信息创建一个密码字典。通过生成的用户名和密码字典wpscan爆破找到正确的密码账户【也可以通过burp、hydra、msf爆破】,就可以登录wordpress了。
接着测试ssh,通过之前找到的账户密码试一下能否通过,结果可以进去,就不用hydra爆破了,然后ssh登录了tom账号【是个受限的bash】,vi绕过rbash【通过vi拿shell的技巧很典型,需要熟练掌握!】,然后git提权【也很简单,也需要掌握】
参考链接:
DC系列——DC-2靶机渗透测试 【wgpsec狼组安全团队】
Vulnhub 靶机实战系列:DC -2 【雷神众测】
https://cloud.tencent.com/developer/article/1472722 【VulnHub靶机渗透之DC:2】
https://www.cnblogs.com/HelloCTF/p/12803808.html 【靶机DC-2 rbash绕过+git提权】