:::warning
蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
蜜罐好比是情报收集系统。蜜罐好像是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。
:::
1、部署
npm install ts-node -g
npm 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'
// 获取微信id
const 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\\([^\\]*)/ig
reg.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.$1
const 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)
})