Troll 2
https://download.vulnhub.com/tr0ll/Tr0ll2.rar
https://download.vulnhub.com/tr0ll/Tr0ll2_vbox.rar
靶场IP:192.168.32.173

扫描对外端口
访问FTP,没有匿名登陆

使用Tr0ll:Tr0ll进行访问
解压目录,需要密码

访问80端口

对WEB进行目录爆破

访问robot文件

使用这个目录字典进行爆破
访问这几个目录,都是显示同一张图片

查看页面源代码

需要访问/dont_bother/才有信息

访问/y0ur_self目录

这些字典是base64加密
爆破压缩包密码
解压成功,是一个公钥文件
使用公钥SSH登录
查看具体SSH链接信息

使用破壳漏洞
设置反弹shell

自己创建公钥,写入公钥
寻找SUID二进制文件
为了进一步检查,我们运行 r00t 程序并将一千个字符"A"作为输入传递给它。然后程序返回一条"Segmentation fault"消息,表明存在缓冲区溢出漏洞。

现在我们使用名为"pattern_create.rb"的 metasploit 工具创建具有指定长度的不同字符模式(在我们的例子中,我们使用 1000 作为长度),因此我们将该模式传递给易受攻击的程序以帮助我们确定 EIP(扩展指令指针)位置。然后我们获取覆盖 EIP 的返回值并将其传递给 pattern_offset.rb。
注意: r00t 程序经常更改其门目录,因此您需要牢记这一点。还有一个"硬模式"可以阻止您使用"ls"2 分钟。另外,请记住,如果您看到该消息"干得好,待命,正在执行 root shell……"。知道这是一个陷阱,您的连接将被关闭,因此您需要立即使用"Ctrl + c"终止程序并将您的目录更改为任何其他门。
然后我们使用另一个名为"patern_offset.rb"的metasploit工具来帮助我们确定EIP位置,其中偏移量表示缓冲区起始地址和EBP(扩展基指针)地址之间的距离,以及EBP地址上方的四个字节是 EIP(或返回地址)的位置,其大小为四个字节。
随后,我们运行 r00t 程序并将 268 个字符的"A"和 4 个字符的"B"传递给它,以确保我们可靠地控制 EIP。从返回值"0x42424242",即十六进制中的四个 B,我们确信我们可以可靠地覆盖 EIP。

现在我们正在寻找 ESP(扩展堆栈指针)地址以将其传递给 r00t 程序,而不是四个"B"。因此,我们决定在修改后的环境中使用 gdb 调试器运行 r00t 程序。我们取消设置所有环境变量(LINES 和 COLUMNS)以避免在没有调试器的情况下运行 r00t 程序时获得无效的 ESP 地址,因为当任何程序被执行时,环境变量被推入堆栈,因此当您运行时堆栈可能看起来更深调试器中的程序比正常运行它可能会影响 ESP 地址。我们运行 r00t 程序并将之前的输入传递给它,但这次我们添加了 16 个 nop sled "\x90" 以确保执行我们稍后将创建的 shellcode 和 100 个字符 "C"稍后将被 shellcode 替换。

然后我们使用 msfvenom 创建我们的 shellcode,其中排除了以下常见的坏字符
\x00:空字节
\x0a:换行
\x0d:回车
这些坏字符可能会破坏 shellcode 并导致漏洞利用失败。
之后,我们通过将 ESP 地址修改为逆序(通常称为小端字节序)来准备我们的恶意输入。然后我们在修改后的环境中运行程序,并将包含 shellcode 的恶意输入传递给它,最后我们得到了一个 root shell 和 Proof.txt 文件。
最后更新于
这有帮助吗?