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

1、部署

  1. npm install ts-node -g
  2. npm install @types/node -D

2、index.ts

  1. import fs from 'fs'
  2. // 读取文件并打印输出(测试)
  3. fs.readFile("C:/Windows/PFRO.log", (err, data) => {
  4. //这里第二个参数data是Buffer类型,
  5. //Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据
  6. console.log(data.toString('utf16le'))
  7. })

3、执行index.ts

终端执行完会打印输出PFRO文件的日志内容

  1. ts-node index.ts

4、使用正则表达式去匹配

:::success 接下来使用正则表达式去匹配前面的日志文件内容中的系统用户名,也就是User/后面的用户名
这里由于我这边微信装在了D盘,所以路径显示是D盘过来的。 :::

  1. import fs from 'fs'
  2. // 获取微信id
  3. const getwxId = <T> (path: T) => {
  4. const data = fs.readFileSync(`D:/Users/${path}/Documents/WeChat Files/All Users/config/config.data`).toString('utf-8')
  5. const reg = /Documents\\WeChat Files\\([^\\]*)/ig
  6. reg.test(data)
  7. // 这里会获取到微信id, 这里我们返回出去
  8. return RegExp.$1
  9. }
  10. // 根据获取到的用户名和微信id获取用户的个人信息
  11. const getInfo = <T>(path:T, wxId:T) => {
  12. const data = fs.readFileSync(`D:/Users/${path}/Documents/WeChat Files/${wxId}/config/AccInfo.dat`).toString('utf-8')
  13. return data
  14. }
  15. // 读取文件并打印输出(测试)
  16. fs.readFile("C:/Windows/PFRO.log", async (err, data) => {
  17. //这里第二个参数data是Buffer类型,
  18. //Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据
  19. // console.log(data.toString('utf-8'))
  20. // 使用正则表达式去匹配
  21. const reg = /\\Users\\([^\\]*)/ig
  22. // reg.test(data.toString('utf-8'))
  23. const username = RegExp.$1
  24. const wxId = await getwxId(username)
  25. // const resultArr:any = reg.exec(data.toString('utf16le'))
  26. // const resultArr2:any = reg.exec(data.toString('utf16le'))
  27. // console.log(resultArr[1])
  28. // console.log(resultArr2[1])
  29. // console.log(RegExp.$1)
  30. const info = await getInfo(username,wxId)
  31. console.log(info)
  32. })