实验官方文档链接SEED Project
环境搭建
-
DNS设置
在我们的设置中,web服务器容器的IP地址为10.9.0.80。服务器的主机名为www.seedlab-shellshock.com。我们需要将此名称映射到IP地址。请将以下内容添加到/etc/hosts。您需要使用root权限来修改此文件
10.9.0.80 www.seedlab-shellshock.com
- 容器设置及相关命令
在lab官网下载labsetup到虚拟机中,使用以下命令解压缩
apt install -y unzip
unzip Labsetup.zip
使用命令dcbuild设置实验环境,但是出现以下报错
ERROR: Service 'victim' failed to build : Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 127.0.0.53:53: server misbehaving
解决办法:修改虚拟机的网络连接方式为NAT
接下来用dcup命令运行靶机容器
3. Web Server and CGI
在本实验中,我们将对 Web 服务器容器发起 Shellshock 攻击。 许多 Web 服务器启用 CGI,这是一种用于在网页和 Web 应用程序上生成动态内容的标准方法。 很多CGI程序都是shell脚本,所以在实际的CGI程序运行之前,会先调用一个shell程序,这样的调用是由远程计算机的用户触发的。 如果shell程序是一个易受攻击的bash程序,我们可以利用易受攻击的Shellshock获取服务器权限。
在我们的 Web 服务器容器中,我们已经设置了一个非常简单的 CGI 程序(称为 vul.cgi)。 它使用 shell 脚本简单地打印出“Hello World”。 CGI 程序放在 Apache 的默认 CGI 文件夹 /usr/lib/cgi-bin 中,它必须是可执行的。
#!/bin/bash_shellshock
echo "Content-type: text/plain"
echo
echo
echo "Hello World"
CGI 程序使用 /bin/bash shellshock(第一行),而不是使用 /bin/bash。 此行指定应调用哪个 shell 程序来运行脚本。 我们确实需要在本实验中使用易受攻击的 bash。
要从 Web 访问 CGI 程序,我们可以使用浏览器输入以下 URL:http://www.seedlab-shellshock.com/cgi-bin/vul.cgi,或者使用以下命令行程序 curl 做同样的事。 请确保 Web 服务器容器正在运行。
curl http://www.seedlab-shellshock.com/cgi-bin/vul.cgi
task 1:experimenting with Bash Function
在bash_shellshock上设计一个实验验证该shell