红队打靶:vulnhub靶机之-------NullByte打靶思路

  • 靶机介绍:

https://www.vulnhub.com/entry/nullbyte-1,126/

查看靶机介绍,提示使用的是DHCP,自动分配的方式进行的

红队打靶:vulnhub靶机之-------NullByte打靶思路_第1张图片

好的,安装好后,开始打靶!!

一、主机发现/端口扫描

  • 下载好主机以后,将攻击机与我们的靶机设置到同一个网络环境下,这里,使用的是NAT模式,将靶机与kali置于同一个网络环境

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第2张图片

  • 主机发现,这里我是用for循环ping,因为当前NAT模式下,只有两台虚拟机开启,一台攻击机,一台目标机器(靶机)

    for i in $(seq 128 140);do ping -c 1 192.168.52.$i | grep "ttl";done
    

    在这里插入图片描述

    当然,除了使用for循环外,我们还可以使用arp-scan的方式去查找

  • 发现主机后,下一步进行端口扫描,因为靶机是在我们本地,所以线程可以开高一点,在探测TCP的时候,我们也可以探测一下UDP,在没有攻击面或攻击面较少的时候,探测一下UDP说不定会有意外发现

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第3张图片

    做完全端口扫描后,对扫描出的每个端口进行详细的探测,包括版本,操作系统,默认脚本探测等

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第4张图片

简单分析一下上诉端口,对比可以发现777端口的服务是不同的,但实际第二张图更加准确

80想必大家都知道,这里就不过多赘述了;

111端口,则是rpc端口,此端口存在rpcbind漏洞,这里先不管他,优先级排后,不了解此端口的同学可以去学习一下

777端口则是ssh

42049端口也是提示是一个rpc端口

上诉端口中,rpc和ssh端口在红队行动中优先级是排后的,那我们这里从80端口开始入手

  • 访问80端口,发现是一张图片,并且提示“如果你寻找和谐的规律,你就会找到知识”,这个看起来没有什么用,那我们查看源码,看看是否有可用信息

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第5张图片

  • 源码中也没有可利用的点,接下来使用feroxbuster尝试进行目录探测,并筛选状态为 200,301,302,403,401的文件写入result.txt文件中,扫描完成后,cat一下result.txt文件即可

    feroxbuster -u http://192.168.52.137 -s 200,301,302,403,401 -o result.txt

    在这里插入图片描述

红队打靶:vulnhub靶机之-------NullByte打靶思路_第6张图片

  • 扫描结果中发现可能存在phpmyadmin的后台,浏览器访问,发现phpmyadmin的登录页面,测试默认密码无果

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第7张图片

  • 这里我尝试过了nday,但是都是失败的,到这一步后,貌似没有其他路了,难道真的进不去了吗?最后想到了一个ctf的思路,那就是隐写,还记得我们最开始看见的那个图片吗?,就从他开始下手

二、隐写

  • 重新访问最开始的页面,然后使用wget进行下载,将图片下载再来后使用exiftool查看图片,发现果然存在隐写

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第8张图片

  • 这个隐写的语句像什么?貌似是一串密钥?不确定,尝试给到phpmyadmin,结果失败;再次尝试给到777端口,盲猜账号是root,结果还是失败

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第9张图片

三、格局打开

  • 想了很久,也没有想到这个是干嘛的,后来突然想到一个可能,这个东西会不会是一个文件或者文件夹的名称啊?尝试一下

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第10张图片

  • 真的是柳暗花明又一村啊,格局一下子就打开了,好好好,你要这么玩是吧!

  • 接下来,我们的思路就是,猜测root,admin等字段;使用kzMb5nVYJw作为key看看行不行,或者我尝试注入,最后的办法就是爆破

  • 使用root,admin和kzMb5nVYJw等字段均提示“invalid key”

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第11张图片

  • 那我们尝试注入,上sqlmap,使用F12,发现是POST请求,那么抓包,将包创建一个文件,用sqlmap读入该文件进行注入

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第12张图片
    红队打靶:vulnhub靶机之-------NullByte打靶思路_第13张图片

  • 结果sqlmap也没有跑出来东西,那就只能爆破了

红队打靶:vulnhub靶机之-------NullByte打靶思路_第14张图片

  • 我们使用hydra对其进行爆破,因为是POST请求没所以我们需要加上http-form-post,并且随机指定一个用户名

    hydra 192.168.52.137 http-form-post "/kzMb5nVYJw/index.php:key=^PASS^:invalid key" -l admin -P /usr/share/wordlists/rockyou.txt
    

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第15张图片

  • 成功爆破出密码,,在浏览器上输入后,再次出现一个框,盲猜root,提示成功

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第16张图片

  • 好的,那我们再次抓包尝试看看是否存在注入

红队打靶:vulnhub靶机之-------NullByte打靶思路_第17张图片

  • 发现是GET请求,那就不用像POST那样了,直接将url给到sqlmap即可

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第18张图片

  • 好家伙成功发现注入点,使用--dbs查看当前库,-tables查看库中有哪些表,然后再使用-D指定数据库,-T指定表名,--dump查看该表中的所有数据

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第19张图片

  • 发现数据中有一行密码,该密码为base64编码,使用如下命令解

    echo -n YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE | base64 -d
    

    在这里插入图片描述

  • 解码后得到MD5加密数据,使用MD5在线解密工具进行解密,得到密码

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第20张图片

  • 使用sqlmap弄出来的账号密码ssh登录,成功

红队打靶:vulnhub靶机之-------NullByte打靶思路_第21张图片

但是上去后是一个低权限用户,这个时候怎么办?那就提权

四、提权

  • 提权的方式有很多,这里我使用的是软链接提权

  • 1)使用如下命令进行收集,看看哪些地方带有s权限

    find / -perm -u=s -type f 2>/dev/null
    
  • 2)发现一个很明显的点,进入到该路径下,创建超链接

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第22张图片

  • 3)使用一下命令进行超链接创建,然后添加环境变量,再去执行procwatch这个文件即可,如图:
    红队打靶:vulnhub靶机之-------NullByte打靶思路_第23张图片

    图中,添加软链接的时候有报错,是因为我之前已经添加过了,所以有报错

  • 4)cat一下root下的文件,成功拿到ssh密钥

    红队打靶:vulnhub靶机之-------NullByte打靶思路_第24张图片

至此,本文结束,因为时间太晚了,后面写的有些仓促,有不明白的地方,随时欢迎师傅私信联系

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