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

常见溯源,反溯源,判断蜜罐手段

常见溯源,反溯源,判断蜜罐手段

  • 1.溯源手段
  • 2.反溯源手段
  • 3.如何判断蜜罐🍯
  • 4.案例:MySQL读文件蜜罐

1.溯源手段

  1. IP地址追踪:通过IP地址追踪可以确定攻击者的地理位置和ISP信息等;通过攻击IP历史解析记录/域名,对域名注册信息进行溯源分析
  2. ID追踪术:搜索引擎、社交平台、技术论坛、社工库匹配
  3. 日志分析:如登录失败、文件访问、网络流量等等。通过日志分析,可以确定攻击者的IP地址、攻击时间、攻击方式等信息
  4. 样本分析:提取样本特征、用户名、ID、邮箱、C2服务器等信息
  5. 流量分析:例如大量的传出流量、疑似数据包嗅探、网络扫描等等
  6. 威胁情报分析:使用威胁情报分析技术,收集、分析和利用公开和私人的威胁情报
  7. 电子邮件头分析:邮件头、邮件源代码中包含了一些关于发送方和接收方的信息,例如IP地址、电子邮件客户端类型等
  8. 数字取证:利用磁盘取证技术,可以分析硬盘中的数据和文件,找到攻击者留下的痕迹和证据
    利用内存取证技术,可以分析内存中的数据和进程
    利用网络取证技术,可以分析网络中的数据包和流量
  9. 蜜罐捕获: 使用蜜罐对攻击者进行诱导捕获

案例一:通过恶意样本分析进行溯源反制

在一次恶意软件攻击事件中,我们发现了一封携带恶意附件的电子邮件。通过对恶意样本的分析,我们提取出了样本的特征、用户名、ID、邮箱等信息。同时,通过对C2服务器的分析,我们发现了攻击者的命令和控制通道。结合这些信息,我们进一步同源分析了其他类似恶意样本,发现了一些共同的特征和手法。根据这些线索,我们成功定位到了攻击者的个人ID和QQ号。最终,我们通过社交平台和相关机构合作,找到了攻击者的真实身份并采取了相应的反制措施

案例二:通过域名解析信息进行溯源反制

在一次DDoS攻击事件中,我们发现攻击流量来自于大量的虚假IP地址。通过对流量的深入分析,我们发现这些虚假IP地址是通过域名解析的方式获得的。于是,我们对攻击IP的历史解析记录进行了溯源分析,发现这些记录与一个域名有关联。进一步查询该域名的注册信息,我们发现该域名是由一个组织注册的。最终,我们定位到了该组织为攻击者的身份并采取了相应的反制措施

案例三:通过IP定位技术进行溯源反制

在一次网络攻击事件中,安全设备报警显示有一台服务器被扫描。通过对日志和流量的分析,发现该服务器的IP地址在短时间内出现了大量的异常请求。为了查明攻击者的真实身份,我们采用了IP定位技术。通过反向查询攻击IP的历史解析记录,我们发现该IP地址与一个代理IP有关联。进一步溯源分析代理IP的注册信息,最终定位到了攻击者的地理位置和真实身份。随后,我们采取了相应的反制措施,包括关闭被攻击的服务器、报警并通知相关机构等


2.反溯源手段

  1. 攻击网络隐匿:流量统一经网关走VPN(网络接入点匿名、途径节点匿名且加密、使用的公网服务器匿名)进出;任何需要交互操作的地方,都需要挂上全局代理
  2. 杜绝安全恶习:所有工作均在虚拟机进行;不同需求(开发、渗透)分配不同虚拟机;绝不使用弱密码;账户混用(比如在项目A中用了一个匿名邮箱,或者其他什么账户,在项目B中继续使用);密码通用
  3. 不要留下蛛丝马迹:杜绝早期目标调研的时候用真实IP去访问;自写工具留下特征值
  4. 小心蜜罐🍯:看起来很多漏洞的站点,有明显的弱密码可以进后台,小心;做任何事之前,使用插件判断是否为蜜罐
  5. 删除日志
    kill <bash process ID> 终止bash进程
    set +o history 不写入历史记录
    unset HISTFILE 清除历史记录的环境变量

3.如何判断蜜罐🍯

1、基于蜜罐指纹的识别

对蜜罐而言会留下属于它独特的指纹信息,所以识别直接部署的开源蜜罐比较简单,使用工具跑已知指纹即可

除了开源蜜罐外,一些商业蜜罐也会留下指纹信息,除了蜜罐的客户端外,蜜罐的管理端也可以通过指纹进行识别

2、基于溯源方式的识别

很多商业蜜罐都会使用各大厂商(如淘宝、百度、京东等)的前端漏洞来获取攻击者的身份信息。该技术主要依靠主流厂商的jsonp或xss漏洞,将这些漏洞积聚成前端的js水坑代码,当用户浏览器解析到这些js请求时,跨域获取该用户在这些主流应用中的指纹信息,从而达到身份溯源的目的(chrome80以后不行了)

实际执行jsonp或xss的请求是在用户侧进行的,这个原生请求是无法做加密或混淆的。当我们发现在访问某个应用系统时有大量对各大主流厂商的ajax请求时大概率就是遇到蜜罐了

3、基于配置失真的识别

蜜罐系统为了捕获攻击行为,会让自己变得“特别容易被识别”,从而导致配置失真,通常该类蜜罐会在server、header、title等字段里会返回大量的特征信息,如从server里发现一个系统既是iis也是apache的,这在逻辑上就是不合理的,是典型的蜜罐特征

除此之外,蜜罐系统开放的端口也可能导致配置失真。如一台服务器同时开放了22和3389端口,或是8080端口显示windows,而8081显示ubuntu。以上都是不符合常理的端口配置

4、检测虚拟机特征

我们可以通过检测虚拟机特征来初步判断是否处在一个蜜网内

  • VM虚拟机常用mac地址前缀:00-05-69,00-0C-29,00-50-56等
  • 判断 OpenVZ/Xen PV/UML,此方式是一种常见且比较准确的识别虚拟机的方式

5、基于伪造场景的识别

在一些高交互的蜜罐中,为了引诱攻击者对系统进行攻击,蜜罐通常设置的非常真实,不仅贴合业务并且在还在攻击者的一些常用攻击套路上“设坑诱捕”

例如手机号诱捕识别,手机号诱捕主要基于让用户自发输入手机号来获得其真实电话号码,常用的场景来在于短信验证码。使用手机号诱捕的核心思路还是在于如何引诱攻击者使用自身手机号来收取验证码完成系统敏感操作。蜜罐会构造一些特殊的场景来实现反制的隐蔽性,例如故意泄漏陷阱站点的源码文件,然后在源码文件中预设上传漏洞,在上传漏洞的利用条件里加上必须返回短信验证码才能实现成功上传,攻击者按照一套流程走下来后往往会放心戒心,认为这并不是一个蜜罐,为了获取webshell而使用自身的手机号,从而获取到该类信息


4.案例:MySQL读文件蜜罐

在MySQL中LOAD DATA INFILE 语句可以从文本文件中读取行到表中

该功能默认是关闭的,开启之后我们就可以通过如下命令进行文件读取并且写入到表中:

load data local infile 'C:/1.txt' into table test fields terminated by '\n';

在MySQL协议中,客户端本身不存储自身的请求,而是通过服务端的响应来执行操作,也就是说我们如果可以伪造Greeting包和伪造的文件名对应的数据包,我们就可以让攻击者的客户端给我们把我们想要的文件拿过来

过程大致如下:

1、首先我们将Greeting包发送给要连接的客户端,这样如果客户端发送查询之后,我们返回一个Response TABULAR数据包,并且附上我们指定的文件,我们也就完成了整个任意文件读取的过程

2、我们传输这个文件读取的数据包时,需要等待一个来自客户端的查询请求才能回复这个读文件的请求,幸运的是,大多数MySQL客户端以及程序库都会在握手之后至少发送一次请求,以探测目标平台的指纹信息

3、综上,我们可以恶意模拟一个MySQL服务端的身份认证过程,之后等待客户端发起一个SQL查询,之后响应的时候我们将我们构造的Response TABULAR发送给客户端,也就是我们LOAD DATA INFILE的请求,这样客户端根据响应内容执行上传本机文件的操作,我们也就获得了攻击者的文件信息

相关文章:

常见溯源,反溯源,判断蜜罐手段

常见溯源&#xff0c;反溯源&#xff0c;判断蜜罐手段 1.溯源手段2.反溯源手段3.如何判断蜜罐&#x1f36f;4.案例&#xff1a;MySQL读文件蜜罐 1.溯源手段 IP地址追踪&#xff1a;通过IP地址追踪可以确定攻击者的地理位置和ISP信息等&#xff1b;通过攻击IP历史解析记录/域名…...

蓝桥杯刷题-09-三国游戏-贪心⭐⭐⭐

蓝桥杯2023年第十四届省赛真题-三国游戏 小蓝正在玩一款游戏。游戏中魏蜀吴三个国家各自拥有一定数量的士兵X, Y, Z (一开始可以认为都为 0 )。游戏有 n 个可能会发生的事件&#xff0c;每个事件之间相互独立且最多只会发生一次&#xff0c;当第 i 个事件发生时会分别让 X, Y,…...

Windows编译运行TensorRT-YOLOv9 (C++)

Windows编译运行yolov9-bytetrack-tensorrt&#xff08;C&#xff09; 1 基础环境2 编译yolov9-bytetrack-tensorrt&#xff08;1&#xff09;下载yolov9-bytetrack-tensorrt源码&#xff08;2&#xff09;修改CMakeLists.txt&#xff08;3&#xff09;CMake编译 3 yolov9模型转…...

.NET 设计模式—简单工厂(Simple Factory Pattern)

简介 简单工厂模式&#xff08;Simple Factory Pattern&#xff09;属于类的创建型模式&#xff0c;又叫静态工厂方法模式&#xff08;Static FactoryMethod Pattern&#xff09;,是通过一个工厂类来创建对象&#xff0c;根据不同的参数或条件返回相应的对象实例。这种模式隐藏…...

聊聊Linux内核中内存模型

介绍 在Linux中二进制的程序从磁盘加载到内存&#xff0c;运行起来后用户态是使用pid来唯一标识进程&#xff0c;对于内核都是以task_struct表示。二进制程序中的数据段、代码段、堆都能提现在task_struct中。每一个进程都有自己的虚拟地址空间&#xff0c;虚拟地址空间包含几…...

docker自动化部署示例

前提 安装docker 、 docker-cpmpose、git、打包环境&#xff08;如meaven、jdk、node等&#xff09; 原理 git Dockerfile docker-compose 获取源码&#xff08;代码仓库&#xff09;获取可运行程序的镜像&#xff08;docker&#xff09;将打包后的程序放入镜像内&#xf…...

Redis精品案例解析:Redis实现持久化主要有两种方式

Redis实现持久化主要有两种方式&#xff1a;RDB&#xff08;Redis DataBase&#xff09;和AOF&#xff08;Append Only File&#xff09;。这两种方式各有优缺点&#xff0c;适用于不同的使用场景。 1. RDB持久化 RDB持久化是通过创建一个二进制的dump文件来保存当前Redis数据…...

Python | Leetcode Python题解之第14题最长公共前缀

题目&#xff1a; 题解&#xff1a; class Solution:def longestCommonPrefix(self, strs: List[str]) -> str:def isCommonPrefix(length):str0, count strs[0][:length], len(strs)return all(strs[i][:length] str0 for i in range(1, count))if not strs:return &quo…...

烧坏两块单片机,不知道原因?

没有看你的原理图&#xff0c;以下是造成烧毁芯片的几个环节&#xff1a; 1. 最大的可能性是你的单片机电机控制输出与电机驱动电路没有隔离。 我的经验&#xff0c;使用STM32控制电机&#xff0c;无论是直流电机脉宽调制&#xff0c;还是步进电机控制&#xff0c;控制电路与…...

SV学习笔记(八)

文章目录 SV入门练习基本数据类型字符串类型数组类型接口的定义与例化类的封装类的继承package的使用随机约束线程的同步线程的控制虚方法方法&#xff08;任务与函数&#xff09;SV用于设计 参考资料 SV入门练习 基本数据类型 有符号无符号、四状态双状态、枚举类型、结构体…...

Java反射常用方法

反射 作用&#xff1a; 对于任意一个对象&#xff0c;把对象所有的字段名和值&#xff0c;保存到文件中去利用反射动态的创造对象和运行方法 1. 获取字节码文件对象 方法描述Class.forName(String)通过类的全限定名字符串获取字节码文件对象。类字面量直接使用类的字面量获…...

go语言实现无头单向链表

什么是无头单向链表 无头单向链表是一种线性数据结构&#xff0c;它的每个元素都是一个节点&#xff0c;每个节点都有一个指向下一个节点的指针。"无头"意味着这个链表没有一个特殊的头节点&#xff0c;链表的第一个节点就是链表的头。 优点&#xff1a; 动态大小&…...

SpringBoot快速入门笔记(5)

文章目录 一、elemetnUI1、main.js2、App.vue3、fontAwesome 一、elemetnUI 开源前端框架&#xff0c;安装 npm i element-ui -S 建议查看官方文档 Element组件&#xff0c;这里是Vue2搭配elementUI&#xff0c;如果是vue3就搭配elementPlus&#xff0c;这里初学就以Vue2为例子…...

solidity(3)

地址类型 pragma solidity ^0.8.0;contract AddressExample {// 地址address public _address 0x7A58c0Be72BE218B41C608b7Fe7C5bB630736C71;address payable public _address1 payable(_address); // payable address&#xff0c;可以转账、查余额// 地址类型的成员uint256…...

笔记 | 编译原理L1

重点关注过程式程序设计语言编译程序的构造原理和技术 1 程序设计语言 1.1 依据不同范型 过程式(Procedural programming languages–imperative)函数式(Functional programming languages–declarative)逻辑式(Logical programming languages–declarative)对象式(Object-or…...

k8s存储卷 PV与PVC 理论学习

介绍 存储的管理是一个与计算实例的管理完全不同的问题。PersistentVolume 子系统为用户和管理员提供了一组 API&#xff0c;将存储如何制备的细节从其如何被使用中抽象出来。为了实现这点&#xff0c;我们引入了两个新的 API 资源&#xff1a;PersistentVolume 和 Persistent…...

【WPF应用32】WPF中的DataGrid控件详解与示例

在WPF&#xff08;Windows Presentation Foundation&#xff09;开发中&#xff0c;DataGrid控件是一个强大的数据绑定工具&#xff0c;它以表格的形式展示数据&#xff0c;并支持复杂的编辑、排序、过滤和分组等操作。在本文中&#xff0c;我们将详细介绍DataGrid控件的功能、…...

numpy,matplotilib学习(菜鸟教程)

所有内容均来自于&#xff1a; NumPy 教程 | 菜鸟教程 Matplotlib 教程 | 菜鸟教程 numpy模块 numpy.nditer NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式。 for x in np.nditer(a, orderF):Fortran order&#xff0c;即是列序优先&#x…...

Web API(四)之日期对象节点操作js插件重绘和回流

Web API(四)之日期对象&节点操作&js插件&重绘和回流 日期对象实例化方法时间戳DOM 节点插入节点删除节点查找节点父子关系兄弟关系M端事件js插件重绘和回流进一步学习 DOM 相关知识,实现可交互的网页特效 能够插入、删除和替换元素节点能够依据元素节点关系查找…...

27.WEB渗透测试-数据传输与加解密(1)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;26.WEB渗透测试-BurpSuite&#xff08;五&#xff09; BP抓包网站网址&#xff1a;http:…...

山寨windows

我的目标是能够运行windows 下的大部分PE格式的程序&#xff0c;这一点通过实验已经证明完全是可行的。 PE格式主要有exe dll sys等文件&#xff0c;这三个文件可以用相同的函数解析&#xff0c; 主要有以下段组成&#xff0c; 1、文件头&#xff0c;包含DOS文件头、PE文件头…...

unity工程输出的log在哪里?

在编辑器里进行活动输出的log位置&#xff1a; C:\Users\username\AppData\Local\Unity\Editor\Editor.log ------------------------------------ 已经打包完成&#xff0c;形成的exe运行后的log位置&#xff1a; C:\Users\xxx用户\AppData\LocalLow\xx公司\xx项目...

【力扣】7. 整数反转

7. 整数反转 题目描述 给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 …...

Android Apk签名算法使用SHA256

Android apk签名算法使用SHA256 本文不介绍复杂的签名过程&#xff0c;说一下Android签名算法使用SHA256。 但是SHA1不是相对安全签名算法&#xff0c;SHA256更加安全一些。 一般大公司才会有这种细致的安全要求。 如何查看apk签名是否是SHA1还是SHA256 1、拿到apk文件&…...

2024.3.13力扣每日一题——最大二进制奇数

2024.3.13 题目来源我的题解方法一 贪心 题目来源 力扣每日一题&#xff1b;题序&#xff1a;2864 我的题解 方法一 贪心 统计1的个数&#xff0c;满足要求的字符串的末尾一位一定是1&#xff0c;所以需要将一位1放到末尾&#xff0c;然后将剩余的1从最高位开始放&#xff0…...

2024.4.1力扣每日一题——故障键盘

2024.4.1 题目来源我的题解方法一 直接利用StringBuilder的反转函数方法二 字符数组 题目来源 力扣每日一题&#xff1b;题序&#xff1a;2810 我的题解 方法一 直接利用StringBuilder的反转函数 使用StringBuilder构造结果&#xff0c;并利用其反转函数进行翻转 时间复杂度…...

第十四届蓝桥杯C/C++大学B组题解(一)

1、日期统计 #include <bits/stdc.h> using namespace std; int main() {int array[100] {5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7,5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5, 8, 6, 1, 8, 3, 0, 3, 7, 9,2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, 9, 4, 4, 6,…...

4.网络编程-websocket(golang)

目录 什么是websocket golang中使用websocket Server端 Client端 什么是websocket WebSocket是一种在互联网上提供全双工通信的协议&#xff0c;即允许服务器和客户端之间进行双向实时通信的网络技术。它是作为HTML5的一部分标准化的&#xff0c;旨在解决传统HTTP协议在实…...

docker安装部署mysql后忘记root密码

应用场景是&#xff1a;用docker安装完mysql后&#xff0c;使用安装时候设置的密码登录不上MySQL&#xff1b; 1、修改docker映射出mysql的配置文件&#xff1a;my.cnf 在mysqld最下方添加skip-grant-tables进入安全模式&#xff08;随意一个密码即可登录mysql&#xff09; [m…...

c++的学习之路:14、list(1)

本章讲一下如何使用list&#xff0c;代码在文章末 目录 一、list介绍 二、增 三、删 四、查和改 五、交换 六、代码 一、list介绍 首先还是看一看官方文档的介绍如下图&#xff0c;如下方五点&#xff1a; 1. list是可以在常数范围内在任意位置进行插入和删除的序列式…...

广州商城网站建设地址/百度客服电话人工服务热线

sed -i s/原内容/替换内容/g 文件路径 正则 查看 sed s/http:..*:8182/http:\/\/127.0.0.1:8181/g 文件路径 直接替换文件 sed -i s/http:..*:8182/http:\/\/127.0.0.1:8181/g 文件路径...

铜陵专业网站制作公司/平台营销策略都有哪些

偶然看到一篇文&#xff0c;发现竟然可以在iPhone中显示类似qq表情的符号。原来很简单&#xff0c;是iPhone支持unicode emoji字符集缘故。 [c-sharp] view plaincopy NSString *s "This is a smiley /ue415 face"; testFace.text s; 上面的/ue415就是表情编…...

广州一次做网站/百度推广有用吗

一 什么是Websocket WebSocket是一种在单个TCP连接上进行全双工通信的协议 WebSocket使得客户端和服务器之间的数据交换变得更加简单&#xff0c;允许服务端主动向客户端推送数据。在WebSocket API中&#xff0c;浏览器和服务器只需要完成一次握手&#xff0c;两者之间就直接可…...

自己做的网站做登录/seo顾问合同

目录一、什么是Lamda表达式&#xff1f;二、Lambda表达式语法格式1. 第一种语法格式2. 第二种语法格式&#xff1a;三、Lambda实战案例1. 使用Lambda的前提2. 具体的实现一、什么是Lamda表达式&#xff1f; JAVA8新特性&#xff0c;来源于数学中的λ[ˈlmdə] 演算&#xff0c…...

山西高端建设网站/培训心得体会

与其他投资渠道和理财工具相比&#xff0c;创业在上述层面上&#xff0c;更多了一重生活方式的含义。创业是一种生活方式&#xff0c;在某种意义上&#xff0c;生活方式也在一定程度改变着创业的思路和方向。 理财市场风起云涌&#xff0c;朝“盈”夕“亏”&#xff0c;然而创业…...

黑龙江骏域建设网站专家/十大seo公司

public class HelloWorld { //完成 main 方法 public static void main(String[] args) { // 创建对象&#xff0c;对象名为hello HelloWorld hello new HelloWorld(); // 调用方法并将返回值保存在变量中 int maxScorehell…...