• 红队打靶:Nyx: 1打靶思路详解(vulnhub)


    目录

    写在开头

    第一步:主机发现和端口扫描

    第二步:ssh私钥登录获取初始立足点

    第三步:sudo gcc提权 

    番外篇:如何掉进web渗透的陷阱无法自拔

    总结与思考

    写在开头

      我个人的打靶顺序是根据红队笔记大佬的视频顺序,先自己打靶,复杂的靶机可能先看一遍红笔大佬的视频,然后争取自己打一遍,不过这个靶机确实算是相当简单的了。知识点并不多,建议读者先自己盲打一遍。红队笔记大佬的视频详见:

    「红队笔记」靶机精讲:NYX - 用十分钟验证一下渗透测试人员的修养和基本功吧!_哔哩哔哩_bilibili

      我感觉这个靶机如果直奔主题,忽略爆破和扫描的等待时间,两分钟就能搞定。  这个靶机涉及到的知识点主要有:nmap漏洞扫描、ssh私钥登录、sudo提权等。难点可能在于不要遗漏信息、也不要掉进陷阱。本文针对的靶机源于vulnhub,详情见:

    Nyx: 1 ~ VulnHub

       下载链接见:

    https://download.vulnhub.com/nyx/nyxvm.zip

      靶机的目标也是拿到两个flag。将靶机网络设置为NAT,靶机启动后界面如下(ip都告你了):

    第一步:主机发现和端口扫描

      常规思路,不细讲了。 命令如下:

    1. nmap -sn 10.10.10.0/24 //主机发现
    2. nmap -sT --min-rate 10000 10.10.10.154 //TCP全端口扫描
    3. nmap -sT -sC -sV -O -p22,80 10.10.10.154 //用默认脚本扫描服务信息、操作系统版本
    4. nmap --script=vuln -p22,80 10.10.10.154 //漏洞脚本扫描
    5. nmap -sU --top-ports 20 10.10.10.154 //探测UDP最常见的20个端口的开放情况

     我的kali的ip是10.10.10.128,靶机ip是10.10.10.154,发现仅仅开放了22,80端口:

     注意漏洞扫描的信息,这里非常关键。通常我们都不会特别在意nmap的漏洞扫描,仅仅把扫描结果当成一个提示而已:

     注意这里好像看到了一个web的目录:/d41d8cd98f00b204e9800998ecf8427e.php ,说实话还挺奇怪的,这么长的文件名都能暴露出来,如果访问能够发现是个私钥文件:

     那这很可能就是ssh的私钥呀?至于是谁的私钥呢?注意看网页标题名称,mpampis key,那说不定就是mpampis的私钥。 当然,也可以看这个私钥最后的==判断是base64编码的形式,找个工具Base64解码一下也能看到mpampis字符串:

    第二步:ssh私钥登录获取初始立足点

     那么我们把这个私钥复制下来,随便起个名字,我这里就命名为isa了:

     注意既然是私钥,必须具有保密性,因此权限必须保证只有所有者能够拥有读(写)权限,否则无法利用私钥登录。因此我们修改这个私钥的权限为600(或400):

    然后尝试用登录mpampis的ssh,如下:

    ssh mpampis@10.10.10.154 -i isa

    此处 -i 指定用私钥登录,指定私钥文件,就是我们刚刚储存私钥的文件isa,如下图,登录成功:

       查看一波信息,确认是靶机:

    在当前目录下能拿到第一个flag,也就是user.txt:

    第三步:sudo gcc提权 

     提权也是常规思路,先sudo -l查看有哪些特殊可利用的二进制可执行文件:

     gcc是常见的C语言编译工具,至于如何利用这个工具提权,可疑参考开源项目GTFOBins,详情见:GTFOBins

     在这个开源项目中可疑找到gcc的利用方法gcc | GTFOBins  

      运行如下指令即可提权(sh和bash都可以,就是Shell的种类不同,bash交互性更好一些):

    sudo gcc -wrapper /bin/bash,-s .

       这里还是做个解释:用-wrapper指定包装器,在包装器中添加启动shell的指令,,-s是bash的参数,指定从标准输入读取命令,保证读取到EOF时不会退出,点.表示编译的内容,此时我们并不关心编译啥,随便给个当前目录.即可。如下图,提权成功:

       flag在/root目录下,是root.txt,不过内容好像是空的,whatever,这个靶机就打完了。有关sudo提权和各种二进制文件利用方法的介绍可疑参阅我的博客,我也介绍过GTFOBins这个开源项目,对渗透的帮助非常大!详见我的博客: 

    渗透测试:Linux提权精讲(一)之sudo方法第一期-CSDN博客

       这个靶机就打完了,我感觉够容易的,甚至都没有从web端开始渗透。 那么如果进入web渗透会咋样呢?请看下面的踩坑过程:

    番外篇:如何掉进web渗透的陷阱无法自拔

       首先浏览器访问web:

    貌似就是个NYX的象形文字,看看源代码:

      源代码有一行注释的提示信息:不要在寻找源码或者robot.txt这样的文件上浪费时间,集中精力干实事。问题是啥是实事呀?你不让我找我就非要找,先看卡robot.txt:

    果然,没这文件。web目录爆破一波:

    dirb 10.10.10.154

     算我倒霉,啥目录也没看到。如果我不服,就要继续爆破,那就试试吧,指定一些可能有信息的文件后缀,比如txt,zip,sql,php,asp啥的,看看能不能爆出来这些后缀的文件。用dirb的-X参数指定即可:

    dirb http://10.10.10.154 -X .php,.zip,.txt,.sql,.asp,.jsp

    nice,我以为找到了关键key.php,进来看看:

     这个界面有个输入框,标题是:孩子努努力,你能找到key吗?那么我们应该要寻找key才对,最不济就是爆破。如果你随便瞎蒙输入,点提交submit,不会有任何变化。查看源代码:

      这源代码也没啥提示。不过action的值为空,感觉这里好像没啥值得操作的,可能这个页面就没啥交互性。也可以试试SQL注入,不过我尝试了,好像没啥效果。key去哪里找呀?感觉也没有什么突破口了。如果你不服还可以来一波爆破,我这里就用burpsuite尝试一下:

     输入框里随便输入个aaa,然后抓个包,果然是在post请求体中,那么我们就对这个key字段进行爆破,找个稍微厉害点的字典试试:

       然后start attack,爆破结果按照返回包长度排个序,如下:

     不错哈,我以为找到了啥突破口,不过字段就是admin和root,莫非就这么简单?

     果然不行。只是提示语变了而已,root和admin都是一样的结果。总之我没找到这个页面的突破口。如果死磕这里可能会浪费很多时间。

    总结与思考

      这个靶机其实够简单的,关键就在于能否发现nmap默认漏洞扫描的关键私钥信息。可能难点就是如何从web的坑中跳出来(及时放弃,脱坑),最后还是总结一下过程:

    第一步:主机发现和端口扫描。关键点是nmap默认漏洞扫描显示了关键私钥信息。

    第二步:ssh私钥登录获取初始立足点。私钥登录成功。

    第三步:sudo gcc提权。

    感觉都没啥总结的。

     总结就是,不要深陷泥潭暴力死磕,至于何时放弃,如何确认这里不是突破口,可能还是需要经验与尝试吧。 靶机不难,总结不易,也有很多自己的思考,希望读者能够点赞关注多多支持!学渗透还是要实操呀。如果读者有什么打靶的问题也欢迎评论区留言指出,我一定知无不言!

  • 相关阅读:
    如此狂妄,自称高性能队列的Disruptor有啥来头?
    【数据结构与算法】之动态规划经典问题
    圆梦字节之后,我收集整理了这份“2021秋招常见Java面试题汇总”
    Python多进程开发
    Linux如何查看系统时间
    Arduino驱动AS7341可见光谱传感器(颜色传感器篇)
    IDEA调试并运行Spring源码
    【精选】Ajax技术知识点合集
    【Spring MVC】Spring MVC中的跨域概念名词解释.md
    ARM-V9 RME(Realm Management Extension)系统架构之系统安全能力的MPAM
  • 原文地址:https://blog.csdn.net/Bossfrank/article/details/133822864