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

  • 靶机介绍:

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

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

在这里插入图片描述

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

一、主机发现/端口扫描

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

    在这里插入图片描述

  • 主机发现,这里我是用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说不定会有意外发现

    在这里插入图片描述

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

    在这里插入图片描述

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

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

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

777端口则是ssh

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

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

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

    在这里插入图片描述

  • 源码中也没有可利用的点,接下来使用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

    在这里插入图片描述

在这里插入图片描述

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

    在这里插入图片描述

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

二、隐写

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

    在这里插入图片描述

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

    在这里插入图片描述

三、格局打开

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

    在这里插入图片描述

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

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

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

    在这里插入图片描述

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

    在这里插入图片描述
    在这里插入图片描述

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

在这里插入图片描述

  • 我们使用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
    

    在这里插入图片描述

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

    在这里插入图片描述

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

在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    echo -n YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE | base64 -d
    

    在这里插入图片描述

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

    在这里插入图片描述

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

在这里插入图片描述

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

四、提权

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

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

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

    在这里插入图片描述

  • 3)使用一下命令进行超链接创建,然后添加环境变量,再去执行procwatch这个文件即可,如图:
    在这里插入图片描述

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

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

    在这里插入图片描述

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

猜你喜欢

转载自blog.csdn.net/m0_55994898/article/details/134917337