信息收集
主机发现
端口扫描
nmap -A 192.168.233.135 -p 1-65535
开放的端口有22 113 139 445 8080
WEB渗透
访问8080端口
浏览192.168.233.135: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.233.135:8080/html_pages,发现一些文件名
访问about.html
包含另一个人名David
浏览器访问development.html,并查看网页源代码,发现注释中提供了development secret page的路径./developmentsecretpage
<!-- You tried harder! Visit ./developmentsecretpage. -->
又去试一下./developmentsecretpage.
按照他的提示一路点击,到达一个登录界面
尝试一手admin/admin
来到了这个页面
发现下图前两行所示报错信息,表明登录服务用到了slogin_lib.inc.php
根据报错搜索关键字
在exp中提示通过访问slog_users.txt获取敏感信息
拼接路径,访问http://192.168.233.135:8080/developmentsecretpage/slog_users.txt看看,发现
md5解密
intern | 12345678900987654321
patrick | P@ssw0rd25
qiu | qiu
使用intern用户登录目标
发现一执行命令就退出了
发现只能执行这几个命令
google搜索 cd clear echo exit help ll lpath ls 发现是Lshell,并搜索到多种Lshell的绕过方式
比如下面两条命令都可以
echo os.system('/bin/bash')
echo && 'bash'
(绕过Lshell后输入env查看SHELL参数值,发现果然是lshell)
Lshell绕过方法和漏洞原因详见
python - Why does "echo os.system('/bin/bash')" work? - Unix & Linux Stack Exchange
#834949 - lshell: CVE-2016-6902: Shell outbreak due to bad syntax parse - Debian Bug report logs
提权
进入到/home目录发现除了intern还有用户admin和patrick
admin的密码不知道,patrick的密码是知道的(上文),用su命令切换到patrick
sudo -l看一手怎么个事
patrick可以sudo执行vim和nano,这两个命令都可以sudo提权
vim提权方法如该网页所示vim | GTFOBins
命令行输入
sudo vim -c ':!/bin/bash'
即可得到root的shell
nano提权方法见nano | GTFOBins