蜜罐技术二三事

news2024/12/23 10:42:34

目录

1. 蜜罐技术介绍

1.1 蜜罐技术是什么

1.2 蜜罐分类

2. 使用蜜罐技术获取信息

2.1 初始化项目

2.2 读取 PFRO.log 文件

2.2.1 PFRO.log 作用及位置

2.2.2 使用 fs 读取 PFRO.log 文件

2.2.3 关于 buffer 与字符编码(扩展)

2.3 使用 正则表达式 匹配系统用户名

2.4 通过 系统用户名 获取 微信ID

2.5 通过 系统用户名 + 微信ID 获取用户信息


1. 蜜罐技术介绍

1.1 蜜罐技术是什么

蜜罐技术是一种主动防御技术,通过部署 没有真实业务数据 的系统,诱骗攻击者实施攻击。蜜罐记录攻击过程中的痕迹,如病毒源码、操作手段等,进而提高真是系统的防御力量。

1.2 蜜罐分类

实系统蜜罐 —— 运行着真实的系统,并且带着真实可入侵的漏洞;入侵者每一次入侵都会引起系统真实的反应,例如被溢出、渗透、夺取权限等;但是它记录下的入侵信息往往是最真实的

伪系统蜜罐 —— 利用一些工具程序强大的模仿能力,伪造出不属于自己平台的“漏洞”;因为很少有能同时攻击几种系统的漏洞代码(LSASS 溢出漏洞能拿到 Windows 的权限,却拿不到 Linux 的);它可以最大程度防止被入侵者破坏,也能模拟不存在的漏洞

蜜罐技术_百度百科蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。蜜罐好比是情报收集系统。蜜罐好像是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。https://baike.baidu.com/item/%E8%9C%9C%E7%BD%90%E6%8A%80%E6%9C%AF/9165942?fr=aladdin

2. 使用蜜罐技术获取信息

2.1 初始化项目

新建 package.json

npm init -y

安装所需依赖

yarn add ts-node

yarn add @types/node

由于我的电脑装不上 ts-node,所以我下面用 js 写了,不用 ts 了 

新建 index.js 入口文件

 

2.2 读取 PFRO.log 文件

2.2.1 PFRO.log 作用及位置

每个电脑的 C盘/Windows 目录下都存在 PFRO.log 文件

PFRO.log 文件用于:存放 ISA 监控日志的信息,可以因此获取系统用户名

2.2.2 使用 fs 读取 PFRO.log 文件

fs.readFile() 接收两个参数:

  • 文件路径
  • 回调函数(错误信息,buffer 格式的文件内容)

PFRO.log 对应的字符编码为 utf16le,可将 buffer 数据转换为这种编码的字符串

const fs = require('fs');

/**
 * 读取 PFRO.log 日志文件
 * @params err 读取时的报错
 * @params data 文件内容(buffer 格式,PFRO.log 对应的字符编码为 utf16le,可将 buffer 数据转换为这种编码的字符串)
 */
fs.readFile('C:/Windows/PFRO.log', async (err, data) => {
  console.log('打印 PFRO.log 文件内容 ===', data.toString('utf16le'))
})

 

运行 index.js

node index.js

读取文件内容如下:关键信息为 系统用户名

 

2.2.3 关于 buffer 与字符编码(扩展)

Buffer 实例一般用于表示编码字符的序列,比如 UTF-8 、 UCS2 、 Base64 、或十六进制编码的数据。 通过使用显式的字符编码,就可以在 Buffer 实例与普通的 JavaScript 字符串之间进行相互转换

const buf = Buffer.from('runoob', 'ascii');

// 输出 72756e6f6f62
console.log(buf.toString('hex'));

// 输出 cnVub29i
console.log(buf.toString('base64'));

Node.js 目前支持的字符编码包括:

  • ascii - 仅支持 7 位 ASCII 数据。如果设置去掉高位的话,这种编码是非常快的
  • utf8 - 多字节编码的 Unicode 字符。许多网页和其他文档格式都使用 UTF-8 
  • utf16le - 2 或 4 个字节,小字节序编码的 Unicode 字符。支持代理对(U+10000 至 U+10FFFF)【PFRO.log 文件对应的编码是这个】
  • ucs2 - utf16le 的别名
  • base64 - Base64 编码
  • latin1 - 一种把 Buffer 编码成一字节编码的字符串的方式
  • binary - latin1 的别名
  • hex - 将每个字节编码为两个十六进制字符

Node.js Buffer(缓冲区) | 菜鸟教程Node.js Buffer(缓冲区) JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。 但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。 在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处..https://www.runoob.com/nodejs/nodejs-buffer.html

2.3 使用 正则表达式 匹配系统用户名

创建 全局匹配的 正则表达式:

  • 转义斜杠 /Users\\/ig
  • 使用小括号包裹 Users 与 下一个斜杠 之间的内容(也就是系统用户名),/Users\\()/ig,小括号可以使用 RegExp.$1 解析出来
  • 获取 下一个斜杠 前面的内容,也就是取反 ^ ,/Users\\([^\\])/ig
  • 字符可能为 0个 或 多个,使用 * 表示,/Users\\([^\\]*)/ig
/**
 * 读取 PFRO.log 日志文件,使用 正则表达式 匹配系统用户名
 */
fs.readFile('C:/Windows/PFRO.log', async (err, data) => {
  // console.log('打印 PFRO.log 文件内容 ===', data.toString('utf16le'))

  // 创建正则表达式
  const regRule = /Users\\([^\\]*)/ig
  // 匹配 系统用户名的 正则表达式
  regRule.test(data.toString('utf16le'))
  // 获取系统用户名
  const systemUserName = RegExp.$1
  console.log('获取系统用户名 systemUserName ===', systemUserName)
})

打印结果: 

2.4 通过 系统用户名 获取 微信ID

通过读取 PFRO.log 获取 系统用户名 后,使用 系统用户名 拼接路径,找到微信配置文件

读取微信配置文件,从中获取用户的微信ID

/**
 * 通过 系统用户名,获取 微信ID
 * @param {*} systemUserName 系统用户名,用于拼接路径
 * @returns 微信ID
 */
const getWxId = (systemUserName) => {
  // 读取 微信ID 的存储文件
  const wxFileData = fs.readFileSync(`C:/Users/${systemUserName}/Documents/WeChat Files/All Users/config/config.data`).toString('utf8')
  // 创建正则表达式
  const regRule = /Documents\\WeChat Files\\([^\\]*)/ig
  // 匹配正则表达式
  regRule.test(wxFileData)
  // 返回微信ID
  return RegExp.$1
}

/**
 * 读取 PFRO.log 日志文件
 * @params err 读取时的报错
 * @params data 文件内容(buffer 格式,PFRO.log 对应的字符编码为 utf16le,可将 buffer 数据转换为这种编码的字符串)
 */
fs.readFile('C:/Windows/PFRO.log', async (err, data) => {
  ...

  // 通过 系统用户名,获取 微信ID
  const wxID = getWxId(systemUserName);
  console.log('获取微信ID wxID ===', wxID)
})

 

打印结果:

2.5 通过 系统用户名 + 微信ID 获取用户信息

/**
 * 通过 系统用户名 + 微信ID,获取 用户信息
 * @param {*} systemUserName 系统用户名,用于拼接路径
 * @param {*} wxId 微信ID,用于拼接路径
 * @returns 用户信息
 */
const getUserData = (systemUserName, wxId) => {
  // 读取 用户信息 的存储文件
  const userFileData = fs.readFileSync(`C:/Users/${systemUserName}/Documents/WeChat Files/${wxId}/config/AccInfo.dat`).toString('utf-8')
  // 返回用户信息
  return userFileData
}

/**
 * 读取 PFRO.log 日志文件
 */
fs.readFile('C:/Windows/PFRO.log', async (err, data) => {
  ...

  // 通过 系统用户名 + 微信ID,获取 用户信息
  const userInfos = getUserData(systemUserName, wxID);
  console.log('获取用户信息 userInfos ===', userInfos)
})

打印结果:

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

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

相关文章

美国FBA海运有哪几种渠道

美国FBA海运有两种渠道,下面具体来看下这两种渠道: 一、Matson美森(CLX/CCX/CLX) 1、CLX美森限时达。时效性:开船后12-18天内交UPS配送(通常在13-15天); 2、CCX美森正班船。时效性:开船后16-22天内交UPS配送(通常在18-20天); 3、C…

基于改进PSO-ABC算法的机器人路径规划(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 系统试图借助人工蜂群针对粒子群算法和蜂群算法在寻优中存在的一些早熟和收敛速精度不高等问题,本文分别对粒子算法和蜂群算法…

MySQL是怎么保证数据不丢失的

一.什么是两阶段提交 1.SQL语句(update user set name‘李四’ where id3)的执行流程是怎样的呢? 1.执行器先找引擎取 ID3这一行。ID 是主键,引擎直接用树搜索找到这一行。 2.如果 ID3 这一行所在的数据页本来就在内存中&#x…

Android 开发学习(三)

文章目录1. ListView 的 使用2. RecyclerView 的 使用 (推荐)3. 动画3.1 逐帧动画3.2 补间动画3.2.1 补间动画 之 alpha透明度3.2.2 补间动画 之 rotate旋转3.2.3 补间动画 之 scale(缩放)3.2.3 补间动画 之 translate(平移)3.3 属性动画4. 单位 和 尺寸5. ViewPager 的使用6. …

程序员最浪漫的表白方式,将情书写在她的照片里,Python简直太厉害啦~

人生苦短,我用Python序言实现步骤1、准备工作2、Pillow 介绍3、实战演练序言 这不光棍节快到了,表弟准备写一封情书给他的女神,想在光棍节之前脱单。 为了提高成功率,于是跑来找我给他参谋参谋,本来我是不想理他的&am…

无刷电机控制基础(3)——FOC矢量控制入门

本节我们讲一些无刷电机FOC矢量控制的入门知识。 1)FOC矢量控制的作用 我们前两节讲的无刷电机(BLDC),是最简单的结构,当转子匀速转动时,定子内产生的反电动势是梯形波;在驱动无刷电机转动时&a…

【大二Web课程设计】基于HTML+CSS技术制作抗疫感动专题网页设计

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Vue2 带纵向合并的原生表格实现切割侧栏分页

文章目录前言一、目标效果二、失败方案三、正确方案四、解决正确方案中的一个Bug总结前言 前端表格分页. 带纵向合并的表格, 到达固定行数强制分页, 截断本页纵向合并, 在下页展示该纵向列的剩余部分, 代码多为前端数据处理, 所以仅提供思路. 这并不难, 你可以直接看第三节. 一…

嵌入式系统-开关机测试笔记

在嵌入式系统中,产品在出厂前需要对开发板的开关机进行测试,用于验证产品在大量次数的开关机过程中是否出现异常.实现方法如下: 1.电源准备 我们不可能完全人工操作,太耽误时间和效率.在这里我选用了一款稳压源GW INSTEK GPD 3303这款产品支持串口编程控制,花了一些时间编写了…

智能车图像处理去畸变+逆透视教程

逆透视请参考:智能车逆透视教程(含上位机、源码)_LoseHu的博客-CSDN博客 去畸变请参考:智能车去畸变教程(含上位机、源码)_LoseHu的博客-CSDN博客 逆透视去畸变:如下 1.简介 在前两个博文中已经分别说明了单独去畸变、逆透视的方法。为了同…

web前端进阶之一些动画

1.字体图标的基本使用 首先下载iconfont文件夹&#xff0c;用link标签引入&#xff0c;使用如下&#xff1a; <i class"iconfont icon-favorites-fill green"></i> //改样式的话使用iconfont或者使用 .green(自己设置的类名) .iconfont {font-size: 60…

React.memo 和 useMemo 的使用

文章の目录问题背景useMemo 进行优化React.memo 进行优化props的值是基本类型props的值是引用类型写在最后问题背景 大家在使用 React 框架进行开发时一定遇到过以下问题&#xff1a; 当函数式组件中的某一状态改变&#xff0c;整个组件刷新&#xff0c;重新渲染在类组件中 s…

解决虚拟机下 “Linux和Windows之间复制粘贴” 的问题

大家在安装完虚拟机后&#xff0c;其实很多东西都还是要跟Windows打交道的&#xff0c;比如像Linux下某个软件的环境配置&#xff0c;你在Linux下遇到种种问题&#xff0c;这时你已习惯回到Windows下&#xff0c;默默的打开了“一亿名程序员都在用的CSDN平台”&#xff0c;找到…

腾讯疯狂招人,肝完自动化测试这关,20k+妥了

前言 对于程序员来说&#xff0c;BAT 为首的一线互联网公司肯定是自己的心仪对象&#xff0c;毕竟能到这些大厂工作&#xff0c;不仅薪资高待遇好&#xff0c;而且能力技术都能够得到提升&#xff0c;最关键的是还能够给自己镀上一层金&#xff0c;让人瞻仰。 最近很多同行群…

测试开发工程师到底是做什么的?

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

本地电脑搭建SFTP服务器,并实现公网访问

1. 搭建SFTP服务器 1.1 下载 freesshd 服务器软件 下载地址&#xff1a;freeSSHd and freeFTPd image_1gbuejept12741719ta61ubn8ej9.png-63.1kB 选择freeFTPD.exe下载 下载后&#xff0c;点击安装 image_1gbueks891c258ee2o315kmf9m.png-57.7kB 安装之后&#xff0c;它会提…

Reactor反应器模式

单线程Reactor反应器模式 在事件驱动模式中&#xff0c;当有事件触发时&#xff0c;事件源会将事件dispatch分发到handler处理器进行事件处理。反应器模式中的反应器角色&#xff0c;类似于事件驱动模式中的dispatcher事件分发器角色。 在反应器模式中&#xff0c;有Reactor反…

企业进行高质量数据管理,实施数据治理的关键是什么?

随着数据通过各种方式创造了巨大价值&#xff0c;各领域的企业开始不断挖掘数据的作用&#xff0c;数据的重要性得到了社会各界的共同认可。像我们熟知的数据治理、数据管理、数据标准以及数据资产都是因为数据地位不断提升&#xff0c;企业开始重视起数据全生命周期流程&#…

SpringBoot笔记(一)核心内容

官网&#xff1a;https://spring.io/projects/spring-boot Spring Boot可以轻松创建独立的、基于Spring的生产级应用程序&#xff0c;它可以让你“运行即可”。大多数Spring Boot应用程序只需要少量的Spring配置。 SpringBoot功能&#xff1a; 创建独立的Spring应用程序直接嵌…

2022.11.1 固体物理

Drude Model 原子由原子核和核外电子组成 我们首先看一下不同材料的自由电子密度 知道原子数目基本就知道了核外电子的数目 如果是单位体积内的&#xff0c;知道密度&#xff0c;我们就可以知道质量&#xff0c;根据摩尔质量和阿伏伽德罗常数&#xff0c;我们就可以知道原子…