目标网站

🐷代码🐷

  1. // ==UserScript==
  2. // @name 😎建瓯最坏🐷获取Mitre的ATT&CK
  3. // @namespace https:// www.yuque.com/jianouzuihuai
  4. // @version 22.05.06
  5. // @description 通过油猴脚本导出语雀知识库中带锚点和换行的MarkDown文件
  6. // @author 😎建瓯最坏🐷
  7. // @match *attack.mitre.org/tactics/TA*
  8. // @icon https:// cdn.nlark.com/yuque/0/2021/png/1632223/1635923818567-7f54e0a1-144e-4fd0-9856-a24e5b2664c5.png
  9. // ==/UserScript==
  10. (function()
  11. {
  12. "use strict"
  13. setTimeout(function()
  14. {
  15. // alert("设置按钮")
  16. var buttonExport = document.createElement("button"); // 创建一个按钮
  17. buttonExport.textContent = "🖨️ 导出 🖨️"; // 按钮内容
  18. buttonExport.style.width = '138px'; // 按钮宽度
  19. buttonExport.style.height = '32px'; // 按钮高度
  20. buttonExport.style.marginLeft = '16px'; // 距离左边16px
  21. buttonExport.style.color = '#BA7CFF'; // 按钮文字颜色
  22. buttonExport.style.border = '2px #BA7CFF solid'; // 边框
  23. buttonExport.style.font = 'bold'; // 文字加粗
  24. buttonExport.style.background = '#EEC6FF'; // 按钮底色
  25. buttonExport.style.borderRadius = '4px'; // 按钮四个角弧度
  26. var eleButton = document.getElementsByClassName("navbar navbar-expand-lg navbar-dark position-static")[0]
  27. eleButton.appendChild(buttonExport)
  28. // 按键点击事件
  29. buttonExport.onclick = function ()
  30. {
  31. // 通过标签名获取表格
  32. var tBody = document.getElementsByTagName("tbody")[0]
  33. // 通过标签名获取技术点
  34. var arrTechnique = tBody.getElementsByClassName("technique")
  35. var textMarkDownOut = "| **主技术ID** | **子技术ID** | **技术名称** | **技术描述** |\n| --- | --- | --- | --- |\n"
  36. // 遍历获取
  37. var nTechnique = arrTechnique.length
  38. for(var i = 0; i < nTechnique; i++)
  39. {
  40. var iTechnique = arrTechnique[i]
  41. var nIndex, strID, hrefID, strName, hrefName, strDescription, textMarkDownOne
  42. var arrTD = iTechnique.getElementsByTagName("td")
  43. if (iTechnique.className == "technique")
  44. {
  45. nIndex = 0
  46. }
  47. else if (iTechnique.className == "sub technique")
  48. {
  49. nIndex = 1
  50. }
  51. strID = arrTD[nIndex + 0].outerText
  52. hrefID = (arrTD[nIndex + 0].getElementsByTagName('a')[0]).href
  53. strName = arrTD[nIndex + 1].outerText
  54. hrefName = (arrTD[nIndex + 1].getElementsByTagName('a')[0]).href
  55. strDescription = arrTD[nIndex + 2].outerText
  56. var strMarkDownID = "| [" + strID + "](" + hrefID + ") |"
  57. var strMarkDownTec
  58. if (iTechnique.className == "technique")
  59. {
  60. strMarkDownTec = strMarkDownID + " |"
  61. }
  62. else if (iTechnique.className == "sub technique")
  63. {
  64. strMarkDownTec = "| " + strMarkDownID
  65. }
  66. textMarkDownOne = strMarkDownTec + " [" + strName + "](" + hrefName + ") | " + strDescription + " |\n"
  67. // 打印相关参数
  68. /*
  69. console.log("ID数组:", arrTD)
  70. console.log("技术ID:", strID)
  71. console.log("ID链接:", hrefID)
  72. console.log("技术名字:", strName)
  73. console.log("名字链接:", hrefName)
  74. console.log("描述:", strDescription)
  75. console.log("MarkDown:", textMarkDownOne)
  76. */
  77. textMarkDownOut += textMarkDownOne
  78. }
  79. // console.log("MarkDown文件:", textMarkDownOut)
  80. var strTittle = document.getElementsByTagName("title")[0].outerText
  81. strTittle = strTittle.split(" - ")[0]
  82. var strFileName
  83. var arrFileName
  84. // 中文版
  85. if (strTittle.search("战术") != -1)
  86. {
  87. arrFileName = strTittle.split(",战术 ")
  88. }
  89. // 英文版
  90. else if (strTittle.search("Tactic") != -1)
  91. {
  92. arrFileName = strTittle.split(", Tactic ")
  93. }
  94. strFileName = arrFileName[1] + "-" + arrFileName[0] + ".md"
  95. Data2File(strFileName, textMarkDownOut)
  96. }
  97. },666)// 1.666秒后执行
  98. // 数据保存为文件
  99. function Data2File(filename, data)
  100. {
  101. // 创建新的URL指定Blob对象,Blob对象指定Type
  102. var blob2Out = new Blob([data], {type: 'text/plain;charset=utf-8'})
  103. var url2Out = URL.createObjectURL(blob2Out);
  104. var eleA = document.createElement("a");
  105. eleA.href = url2Out;
  106. eleA.style.display = 'none'
  107. // 点击下载为文件
  108. eleA.download = filename;
  109. eleA.click();
  110. eleA.remove();
  111. // 或者在浏览器Tab上看
  112. // window.open(url2Out)
  113. }
  114. })()

出现过的问题

Not allowed to navigate top frame to data URL

JavaScript-报错 - Not allowed to navigate top frame to data URL

Blob导出结果为乱码

JavaScript-报错 - Blob返回结果为乱码

导出效果

开始:没有区分主技术和子技术

image.png

改进:区分主技术和子技术

image.png

提醒

描述使用的是outText,纯文本,没有超链接和其他格式。如有需要保留,建议采用HTML代码重新处理:
image.png

来试试看

JavaScript - 导出网页表格为MarkDown表格 | Mitre的ATT%26CK - 图4

导出的MarkDown

  1. | **主技术** | **子技术** | **名称** | **描述** |
  2. | --- | --- | --- | --- |
  3. | [T1595](https://attack.mitre.org/techniques/T1595) | |[主动扫描](https://attack.mitre.org/techniques/T1595) | 对手可能会执行主动侦察扫描以收集可在定位期间使用的信息。主动扫描是对手通过网络流量探测受害者基础设施的扫描,而不是其他不涉及直接交互的侦察形式。 |
  4. | | [.001](https://attack.mitre.org/techniques/T1595/001) |[扫描 IP 块](https://attack.mitre.org/techniques/T1595/001) | 攻击者可能会扫描受害者 IP 块以收集可在定位期间使用的信息。公共 IP 地址可以按块或一系列连续地址分配给组织。 |
  5. | | [.002](https://attack.mitre.org/techniques/T1595/002) |[漏洞扫描](https://attack.mitre.org/techniques/T1595/002) | 攻击者可能会扫描受害者以查找可在定位期间使用的漏洞。漏洞扫描通常检查目标主机/应用程序的配置(例如:软件和版本)是否可能与攻击者可能寻求使用的特定漏洞的目标一致。 |
  6. | | [.003](https://attack.mitre.org/techniques/T1595/003) |[词表扫描](https://attack.mitre.org/techniques/T1595/003) | 攻击者可能会使用暴力破解和爬行技术迭代地探测基础设施。虽然该技术采用与蛮力类似的方法,但其目标是识别内容和基础设施,而不是发现有效凭证。这些扫描中使用的词汇表可能包含通用的、常用的名称和文件扩展名或特定于特定软件的术语。攻击者还可以使用从其他侦察技术(例如:收集受害者组织信息或搜索受害者拥有的网站)收集的数据创建自定义的、特定于目标的词表。 |
  7. | [T1592](https://attack.mitre.org/techniques/T1592) | |[收集受害者主机信息](https://attack.mitre.org/techniques/T1592) | 攻击者可能会收集有关受害者主机的信息,这些信息可以在定位期间使用。有关主机的信息可能包括各种详细信息,包括管理数据(例如:名称、分配的 IP、功能等)以及有关其配置的详细信息(例如:操作系统、语言等)。 |
  8. | | [.001](https://attack.mitre.org/techniques/T1592/001) |[硬件](https://attack.mitre.org/techniques/T1592/001) | 攻击者可能会收集有关可在定位期间使用的受害者主机硬件的信息。有关硬件基础设施的信息可能包括各种详细信息,例如特定主机上的类型和版本,以及是否存在可能表明增加了防御性保护的其他组件(例如:卡/生物识别读卡器、专用加密硬件等) . |
  9. | | [.002](https://attack.mitre.org/techniques/T1592/002) |[软件](https://attack.mitre.org/techniques/T1592/002) | 攻击者可能会收集有关可在定位期间使用的受害者主机软件的信息。有关已安装软件的信息可能包括各种详细信息,例如特定主机上的类型和版本,以及是否存在可能表明增加了防御性保护的其他组件(例如:防病毒、SIEM 等)。 |
  10. | | [.003](https://attack.mitre.org/techniques/T1592/003) |[固件](https://attack.mitre.org/techniques/T1592/003) | 攻击者可能会收集有关受害者主机固件的信息,这些信息可以在定位期间使用。有关主机固件的信息可能包括各种详细信息,例如特定主机上的类型和版本,这些信息可用于推断有关环境中主机的更多信息(例如:配置、用途、年龄/补丁级别等)。 |
  11. | | [.004](https://attack.mitre.org/techniques/T1592/004) |[客户端配置](https://attack.mitre.org/techniques/T1592/004) | 攻击者可能会收集有关受害者客户端配置的信息,这些信息可以在定位期间使用。有关客户端配置的信息可能包括各种详细信息和设置,包括操作系统/版本、虚拟化、架构(例如:32 位或 64 位)、语言和/或时区。 |
  12. | [T1589](https://attack.mitre.org/techniques/T1589) | |[收集受害者身份信息](https://attack.mitre.org/techniques/T1589) | 攻击者可能会收集有关受害者身份的信息,这些信息可以在定位期间使用。有关身份的信息可能包括各种详细信息,包括个人数据(例如:员工姓名、电子邮件地址等)以及凭据等敏感详细信息。 |
  13. | | [.001](https://attack.mitre.org/techniques/T1589/001) |[证书](https://attack.mitre.org/techniques/T1589/001) | 攻击者可能会收集可在定位期间使用的凭据。攻击者收集的帐户凭据可能是与目标受害者组织直接相关的帐户凭据,或者试图利用用户在个人和企业帐户中使用相同密码的趋势。 |
  14. | | [.002](https://attack.mitre.org/techniques/T1589/002) |[电子邮件地址](https://attack.mitre.org/techniques/T1589/002) | 攻击者可能会收集可在定位期间使用的电子邮件地址。即使存在内部实例,组织也可能拥有面向公众的电子邮件基础设施和员工地址。 |
  15. | | [.003](https://attack.mitre.org/techniques/T1589/003) |[员工姓名](https://attack.mitre.org/techniques/T1589/003) | 攻击者可能会收集可在定位期间使用的员工姓名。员工姓名用于获取电子邮件地址以及帮助指导其他侦察工作和/或制作更可信的诱饵。 |
  16. | [T1590](https://attack.mitre.org/techniques/T1590) | |[收集受害者网络信息](https://attack.mitre.org/techniques/T1590) | 攻击者可能会收集有关受害者网络的信息,这些信息可以在定位期间使用。有关网络的信息可能包括各种细节,包括管理数据(例如:IP 范围、域名等)以及有关其拓扑和操作的细节。 |
  17. | | [.001](https://attack.mitre.org/techniques/T1590/001) |[域属性](https://attack.mitre.org/techniques/T1590/001) | 攻击者可能会收集有关受害者网络域的信息,这些信息可以在定位期间使用。有关域及其属性的信息可能包括各种详细信息,包括受害者拥有的域以及管理数据(例如:姓名、注册商等)以及更直接的可操作信息,例如联系人(电子邮件地址和电话)号码)、公司地址和名称服务器。 |
  18. | | [.002](https://attack.mitre.org/techniques/T1590/002) |[域名系统](https://attack.mitre.org/techniques/T1590/002) | 攻击者可能会收集有关受害者 DNS 的信息,这些信息可以在定位期间使用。DNS 信息可能包括各种详细信息,包括注册的名称服务器以及概述目标子域、邮件服务器和其他主机地址的记录。 |
  19. | | [.003](https://attack.mitre.org/techniques/T1590/003) |[网络信任依赖](https://attack.mitre.org/techniques/T1590/003) | 攻击者可能会收集有关受害者网络信任依赖关系的信息,这些信息可以在定位期间使用。有关网络信任的信息可能包括各种详细信息,包括已连接(并可能提升)网络访问权限的第二方或第三方组织/域(例如:托管服务提供商、承包商等)。 |
  20. | | [.004](https://attack.mitre.org/techniques/T1590/004) |[网络拓扑结构](https://attack.mitre.org/techniques/T1590/004) | 攻击者可能会收集有关受害者网络拓扑的信息,这些信息可以在定位期间使用。关于网络拓扑的信息可能包括各种细节,包括面向外部和内部网络环境的物理和/或逻辑布置。此信息还可能包括有关网络设备(网关、路由器等)和其他基础设施的详细信息。 |
  21. | | [.005](https://attack.mitre.org/techniques/T1590/005) |[IP 地址](https://attack.mitre.org/techniques/T1590/005) | 攻击者可能会收集可在定位期间使用的受害者 IP 地址。公共 IP 地址可以按块或一系列连续地址分配给组织。有关分配的 IP 地址的信息可能包括各种详细信息,例如正在使用哪些 IP 地址。IP 地址还可能使攻击者能够获取有关受害者的其他详细信息,例如组织规模、物理位置、互联网服务提供商,以及托管其面向公众的基础设施的位置/方式。 |
  22. | | [.006](https://attack.mitre.org/techniques/T1590/006) |[网络安全设备](https://attack.mitre.org/techniques/T1590/006) | 攻击者可能会收集有关受害者网络安全设备的信息,这些信息可以在定位期间使用。有关网络安全设备的信息可能包括各种细节,例如部署的防火墙、内容过滤器和代理/堡垒主机的存在和细节。攻击者还可能针对受害者基于网络的入侵检测系统 (NIDS) 或与防御性网络安全操作相关的其他设备的信息。 |
  23. | [T1591](https://attack.mitre.org/techniques/T1591) | |[收集受害者组织信息](https://attack.mitre.org/techniques/T1591) | 攻击者可能会收集有关受害者组织的信息,这些信息可以在定位期间使用。有关组织的信息可能包括各种详细信息,包括部门/部门的名称、业务运营的具体情况以及关键员工的角色和职责。 |
  24. | | [.001](https://attack.mitre.org/techniques/T1591/001) |[确定物理位置](https://attack.mitre.org/techniques/T1591/001) | 攻击者可能会收集可以在定位期间使用的受害者的物理位置。关于目标组织的物理位置的信息可能包括各种细节,包括关键资源和基础设施所在的位置。物理位置还可能表明受害者在哪个法律管辖区和/或机构内工作。 |
  25. | | [.002](https://attack.mitre.org/techniques/T1591/002) |[业务关系](https://attack.mitre.org/techniques/T1591/002) | 攻击者可能会收集有关受害者业务关系的信息,这些信息可以在定位期间使用。有关组织的业务关系的信息可能包括各种详细信息,包括已连接(并可能提升)网络访问权限的第二方或第三方组织/域(例如:托管服务提供商、承包商等)。该信息还可能揭示受害者硬件和软件资源的供应链和运输路径。 |
  26. | | [.003](https://attack.mitre.org/techniques/T1591/003) |[确定业务节奏](https://attack.mitre.org/techniques/T1591/003) | 攻击者可能会收集有关受害者业务节奏的信息,这些信息可以在定位期间使用。有关组织的业务节奏的信息可能包括各种详细信息,包括一周中的营业时间/天数。该信息还可能揭示受害者硬件和软件资源的购买和发货时间/日期。 |
  27. | | [.004](https://attack.mitre.org/techniques/T1591/004) |[识别角色](https://attack.mitre.org/techniques/T1591/004) | 攻击者可能会收集有关受害组织内的身份和角色的信息,这些信息可以在定位期间使用。有关业务角色的信息可能会揭示各种可定位的详细信息,包括关键人员的可识别信息以及他们有权访问的数据/资源。 |
  28. | [T1598](https://attack.mitre.org/techniques/T1598) | |[网络钓鱼信息](https://attack.mitre.org/techniques/T1598) | 攻击者可能会发送网络钓鱼消息以获取可在定位期间使用的敏感信息。信息网络钓鱼是企图诱使目标泄露信息、经常是凭据或其他可操作信息。信息网络钓鱼与网络钓鱼的不同之处在于,其目标是从受害者那里收集数据,而不是执行恶意代码。 |
  29. | | [.001](https://attack.mitre.org/techniques/T1598/001) |[鱼叉式钓鱼服务](https://attack.mitre.org/techniques/T1598/001) | 攻击者可能会通过第三方服务发送鱼叉式钓鱼消息,以获取可在定位期间使用的敏感信息。鱼叉式网络钓鱼是一种试图诱骗目标泄露信息、经常是凭据或其他可操作信息的尝试。信息鱼叉式网络钓鱼经常涉及社会工程技术,例如冒充来源以收集信息(例如:建立帐户或破坏帐户)和/或发送多个看似紧急的消息。 |
  30. | | [.002](https://attack.mitre.org/techniques/T1598/002) |[鱼叉式钓鱼附件](https://attack.mitre.org/techniques/T1598/002) | 攻击者可能会发送带有恶意附件的鱼叉式钓鱼邮件,以获取可在定位期间使用的敏感信息。鱼叉式网络钓鱼是一种试图诱骗目标泄露信息、经常是凭据或其他可操作信息的尝试。信息鱼叉式网络钓鱼经常涉及社会工程技术,例如冒充来源以收集信息(例如:建立帐户或破坏帐户)和/或发送多个看似紧急的消息。 |
  31. | | [.003](https://attack.mitre.org/techniques/T1598/003) |[鱼叉式钓鱼链接](https://attack.mitre.org/techniques/T1598/003) | 攻击者可能会发送带有恶意链接的鱼叉式钓鱼邮件,以获取可在定位期间使用的敏感信息。鱼叉式网络钓鱼是一种试图诱骗目标泄露信息、经常是凭据或其他可操作信息的尝试。信息鱼叉式网络钓鱼经常涉及社会工程技术,例如冒充来源以收集信息(例如:建立帐户或破坏帐户)和/或发送多个看似紧急的消息。 |
  32. | [T1597](https://attack.mitre.org/techniques/T1597) | |[搜索封闭源](https://attack.mitre.org/techniques/T1597) | 攻击者可能会从封闭来源搜索并收集有关受害者的信息,这些信息可在定位期间使用。可以从信誉良好的私人来源和数据库购买有关受害者的信息,例如付费订阅技术/威胁情报数据源。攻击者还可能从声誉较差的来源购买信息,例如暗网或网络犯罪黑市。 |
  33. | | [.001](https://attack.mitre.org/techniques/T1597/001) |[威胁英特尔供应商](https://attack.mitre.org/techniques/T1597/001) | 攻击者可能会从威胁情报供应商处搜索私人数据,以获取可在定位期间使用的信息。威胁情报供应商可能会提供付费订阅源或门户网站,提供比公开报告更多的数据。尽管敏感细节(例如客户姓名和其他标识符)可能会被编辑,但此信息可能包含有关违规的趋势,例如目标行业、归属声明和成功的 TTP/对策。 |
  34. | | [.002](https://attack.mitre.org/techniques/T1597/002) |[购买技术资料](https://attack.mitre.org/techniques/T1597/002) | 攻击者可能会购买可在定位期间使用的有关受害者的技术信息。可以在信誉良好的私人来源和数据库中购买有关受害者的信息,例如付费订阅扫描数据库或其他数据聚合服务的订阅源。攻击者还可能从声誉较差的来源购买信息,例如暗网或网络犯罪黑市。 |
  35. | [T1596](https://attack.mitre.org/techniques/T1596) | |[搜索开放技术数据库](https://attack.mitre.org/techniques/T1596) | 攻击者可以搜索免费可用的技术数据库,以获取可在定位期间使用的有关受害者的信息。有关受害者的信息可能在在线数据库和存储库中可用,例如域/证书的注册以及从流量和/或扫描中收集的网络数据/工件的公共集合。 |
  36. | | [.001](https://attack.mitre.org/techniques/T1596/001) |[DNS/被动DNS](https://attack.mitre.org/techniques/T1596/001) | 攻击者可能会搜索 DNS 数据以获取有关可在定位期间使用的受害者的信息。DNS 信息可能包括各种详细信息,包括注册的名称服务器以及概述目标子域、邮件服务器和其他主机地址的记录。 |
  37. | | [.002](https://attack.mitre.org/techniques/T1596/002) |[谁是](https://attack.mitre.org/techniques/T1596/002) | 攻击者可能会在公共 WHOIS 数据中搜索可在定位期间使用的有关受害者的信息。WHOIS 数据由负责分配互联网资源(例如域名)的地区互联网注册管理机构 (RIR) 存储。任何人都可以查询 WHOIS 服务器以获取有关注册域的信息,例如分配的 IP 块、联系信息和 DNS 名称服务器。 |
  38. | | [.003](https://attack.mitre.org/techniques/T1596/003) |[数字证书](https://attack.mitre.org/techniques/T1596/003) | 攻击者可能会在公共数字证书数据中搜索可在定位期间使用的有关受害者的信息。数字证书由证书颁发机构 (CA) 颁发,以加密验证签名内容的来源。这些证书(例如用于加密 Web 流量(HTTPS SSL/TLS 通信)的证书)包含有关注册组织的信息,例如名称和位置。 |
  39. | | [.004](https://attack.mitre.org/techniques/T1596/004) |[CDN](https://attack.mitre.org/techniques/T1596/004) | 攻击者可能会搜索可在定位期间使用的有关受害者的内容交付网络 (CDN) 数据。CDN 允许组织托管来自分布式、负载平衡的服务器阵列的内容。CDN 还可以允许组织根据请求者的地理区域定制内容交付。 |
  40. | | [.005](https://attack.mitre.org/techniques/T1596/005) |[扫描数据库](https://attack.mitre.org/techniques/T1596/005) | 攻击者可能会在公共扫描数据库中搜索可在定位期间使用的有关受害者的信息。各种在线服务不断发布互联网扫描/调查的结果,通常会收集活动 IP 地址、主机名、开放端口、证书甚至服务器横幅等信息。 |
  41. | [T1593](https://attack.mitre.org/techniques/T1593) | |[搜索打开的网站/域](https://attack.mitre.org/techniques/T1593) | 攻击者可能会搜索免费可用的网站和/或域,以查找可在定位期间使用的有关受害者的信息。有关受害者的信息可能在各种在线网站上提供,例如社交媒体、新网站或托管有关业务运营信息的网站,例如招聘或请求/奖励合同。 |
  42. | | [.001](https://attack.mitre.org/techniques/T1593/001) |[社交媒体](https://attack.mitre.org/techniques/T1593/001) | 攻击者可能会在社交媒体上搜索可在定位期间使用的有关受害者的信息。社交媒体网站可能包含有关受害组织的各种信息,例如商业公告以及有关员工角色、位置和兴趣的信息。 |
  43. | | [.002](https://attack.mitre.org/techniques/T1593/002) |[搜索引擎](https://attack.mitre.org/techniques/T1593/002) | 攻击者可能会使用搜索引擎来收集有关受害者的信息,这些信息可以在定位期间使用。搜索引擎服务典型地抓取在线站点以索引上下文,并且可以为用户提供专门的语法来搜索特定关键字或特定类型的内容(即文件类型)。 |
  44. | [T1594](https://attack.mitre.org/techniques/T1594) | |[搜索受害者拥有的网站](https://attack.mitre.org/techniques/T1594) | 攻击者可能会在受害者拥有的网站上搜索可在定位期间使用的信息。受害者拥有的网站可能包含各种详细信息,包括部门/部门的名称、实际位置以及有关关键员工的数据,例如姓名、角色和联系信息(例如:电子邮件地址)。这些网站也可能有突出业务运营和关系的详细信息。 |