最近一直在学习渗透测试相关的理论知识,看书看的头大,趁着老婆孩子回娘家的这段时间终于可以在晚上搞搞实验过过手瘾啦
今天练手的是vulnhub上的靶机,名字叫unknowndevice64,靶机描述如下:
Description: unknowndevice64 v1.0 is a medium levelboot2root challenge. The OVA has been tested on both VMware and Virtual Box.
Difficulty: Intermediate
Flags: Your Goal is to get root and read/root/flag.txt
这个靶机的flag只有一个,难度却是中级,心理有那么一点点忐忑,估计我这半吊子的水平应该搞不定它,走一步算一步吧。
首先nmap扫描靶机IP,查看开放了哪些端口(靶机IP为DHCP获取,之前我已经从DHCP上找到了它的IP)
从Nmap的扫描结果来看1337为ssh服务 31337为HTTP服务,大体思路分两大部,HTTP找密码,ssh拿flag,我太机智了
01
—
HTTP寻找线索
浏览器打开http页面,发现h1dd3n标红,应该是密码的线索,话说这页面竟然还做了个光照特效,挺忽悠人呢。
查看页面源码吧,应该会有线索。
果然不出所料,在源码中发现了一行注释,key_is_h1dd3n.jpg,尝试打开图片。
尝试用账号root,密码hiddensecrets进行登陆,果然不正确
(中等难度要是这么简单那黑客不就跟网络喷子一样多了么)继续找线索,这里应该用了CTF中常用的图片隐写手段,上一个页面标红的字应该就是解开隐藏信息的密码。
用steghide对图片进行解密,得到了一串诡异的编码,一度怀疑我应该是解错了谜题。
实在是想不出这东西是啥,没办法只好baidu加google一通查,最后竟然发现这玩意是个奇葩的代码,而不是编码,这奇葩玩意可以运行(这语言实际的名字叫brainf**k,名副其实,你没想歪)。网上找了个环境运行它,得到了账号和密码。
这中级难度原来就是整了个小众的语言,作者思路已经跟精神病人一样广了。接下来用得到的账号密码登陆ssh,愉快的拿flag了呗,本菜鸟心中如是说到。
02
—
SSH拿FLAG
利用烧脑的方法拿到了账号密码,顺利的登陆了系统,但X蛋的事才刚刚开始,这个shell竟然执行不了常用的命令,比如ls。用tab键列出了所能使用的命令,本菜鸟彻底方了,这怎么玩儿?
在挣扎了一小时无果后,再度请教了万能的度娘,原来可以利用vi的命令行通过export命令修改环境变量得到shell,但依然没有root权限,接着看大神们的方法。
首先执行sudo -l查看当前用户可以执行的内容,发现sysud64不需要密码就可以执行,看来就利用它了。查看sysud64的帮助,发现sysud64只不过是strace调试器改了个名。
sysud64可以用来调试应用程序,sudo执行sysud64的话,sysud64就有了root权限,那么用它调试/bin/bash就可以得到root权限的shell了,大神还是大神,我怎么就没想到呢。
这里利用sysud64 -o参数,把调试结果写入到文件1.txt并执行/bin/bash得到了root的shell,经过whoami验证,已经获得了root权限。
进入/root目录下拿到flag.txt,任务完成!
在提权时我将调试信息写到了1.txt里,这样会在靶机上生成文件留下痕迹,更好的办法是将调试信息写到/dev/null里,这样就不会生成额外的文件了。
总结:这套环境被定位为中级难度,主要难在如何拿shell和提权上,只有熟练掌握了linux的基础才能更好的拓展渗透方向,今天受益良多,感谢网上大神们的无私分享