Task 1: Experimenting with Bash Function( 三 )


2,或者在服务器上创建一个文件1.txt 。输入一些信息作为机密信息,并查看文件路径
攻击者使用命令行工具curl,该命令的“-A”的选项可以用来设置请求的User-Agent字段 。可以看到,攻击者的命令行显示了服务器文件中的机密信息:
【Task 1: Experimenting with Bash Function】② 回答以下问题:您将能够窃取影子文件/etc/的内容吗?为什么或者为什么不?

Task 1: Experimenting with Bash Function

文章插图
盗取影子文件失败,因为没有权限 。使用ls命令查看文件权限:
的所有者是root,有rw的权限;所在组是,组内用户有r的权限;其他组用户无权限读这个文件 。
.cgi的所有者是root,有rwx的权限;所在组是root,有rx权限 。
所以通过.cgi获得之后,执行指令 。对于来说,.cgi是其他组内用户,没有读的权限,所以不可以通过.cgi执行程序获得的内容 。
Task 5:aShell via
漏洞使攻击者可以在目标计算机上运行任意命令 。在实际攻击中攻击者经常选择运行shell命令,而不是在攻击中对命令进行硬编码,因此只要shell程序仍然存在,就可以使用此shell运行其他命令 。为了实现这个目标,攻击者需要运行反向Shell 。
反向shell是在机器上启动的shell进程,其输入和输出由来自远程计算机的人 。基本上,shell在受害者的机器上运行,但是需要输入从攻击者的计算机上输出,并将其输出打印在攻击者的计算机上 。反壳给攻击者在受感染机器上运行命令的便捷方法 。有关如何创建的详细说明可以在SEED书的第3章(第3.4.5节)中找到反向外壳 。我们还将总结说明稍后的指南部分 。
在此任务中,您需要演示如何通过中的漏洞启动反向Shell 。一个CGI程序 。请说明您的操作方式 。在您的报告中,还请说明您如何设置反向shell,以及它为什么起作用 。基本上,您需要使用自己的文字来解释反向shell如何在您的攻击 。
实验步骤如下:
1,先输入命令得到服务器和攻击者机器的IP地址,如下:
可知:
服务器IP为:10.0.2.04;
攻击者IP为:10.0.2.15
2,在攻击者端,使用nc来监听9090端口上的TCP连接 。
nc命令会阻塞并等待连接 。攻击者先运行:“nc -lv 9090”,命令启动TCP服务器,然后在攻击者另一个终端上运行下面的命令向目标服务器的CGI程序发送恶意请求 。
得到以下结果:
从结果来看,一旦curl指令被执行,攻击指令也会在服务器上被执行,这将导致CGI程序触发一个Bash shell. 该Bash shell会连接到10.0.2.15(攻击者)的9090端口(攻击者的机器) 。攻击者的nc程序会接受这个连接,并显示由远端服务器的CGI触发的Bash程序送来的shell 提示符,这表明反向shell成功了 。可以从id命令的运行结果来确认这一点,它打印出来的远程CGI进程的用户ID是www-data.
Task 6: Using theBash
现在,让我们使用一个已修补的Bash程序 。程序/ bin / bash已修补版 。请用此程序替换CGI程序的第一行 。重做任务3和5,以及描述您的观察结果 。
先用/ bin / bash已修补版程序替换CGI程序的第一行,如下:
按照上述步骤重做task3和task5即可,在此不详细说明 。
结果:换了/bin/bash后重做任务3和5,可以打印环境变量,但不能建立反向shell