Awesome Threat Detection and Hunting
目录
工具
- MITRE ATT&CK Navigator(source code)
- ATT&CK Navigator是旨在提供ATT&CK矩阵的基本导航和注释,有点类似于Excel表格的形式
- HELK
- 一个用于威胁狩猎的ELK (Elasticsearch, Logstash, Kibana)框架,集成了高级分析功能
- osquery-configuration
- 一个使用osquery进行事件检测和响应的存储库,是osquery Across Enterprise一文的配套内容
- 注:osquery是一个由FaceBook开源用于对系统进行查询、监控以及分析的一款软件。
支持
MacOS
、CentOS
、Ubuntu
、Windows
等操作系统[1]
- DetectionLab
- 使用Vagrant&Packer脚本,来构建包含安全工具和日志记录的实验环境,主要从防御者的角度进行设计,帮助快速构建一个具有安全工具的域环境
- 注:Vagrant&Packer脚本,可以用于自动化虚拟机的安装和配置流程,用来管理虚拟机
- Sysmon-DFIR
- 一个用于学习Microsoft Sysmon来进行威胁检测的资源清单
- 补:Microsoft Sysmon,是一个轻量级的系统监控工具,通过系统服务和驱动程序实现记录进程创建、文件访问以及网络信息的记录,并把相关的信息写入并展示在windows的日志事件里[2]
- sysmon-config
- 一个Microsoft Sysmon配置文件模板,带有默认的高质量事件追踪
- sysmon-modular
- 一个Microsoft Sysmon配置模块的存储库,包括从Sysmon配置到MITER ATT&CK技术框架的映射
- Revoke-Obfuscation
- 一个Powershell的混淆检测框架
- Invoke-ATTACKAPI
- 一个PowerShell脚本,可通过其自己的API和MITER ATT&CK框架进行交互
- Unfetter
- Flare
- 一个网络流量和行为的分析框架
- RedHunt-OS
- 专门用于攻防对抗仿真(Adversary Emulation)和威胁狩猎的虚拟机。RedHunt的目标是通过整合攻击者的武库和防御者的工具包来主动识别环境中的威胁,来提供威胁仿真(Threat Emulation)和威胁狩猎所有需求的一站式服务
- Oriana
- 基于Django构建的Windows环境下横向移动及威胁狩猎工具,提供Docker镜像。
- ~~Bro-Osquery~~
- 将Osquery的集成于Bro
- 该项目现已被Zeek Agent取代,包含前者的功能
- Brosquery
- 一个帮助osquery加载Bro日志到osquery表中的模块
- DeepBlueCLI
- 一个PowerShell模块,用于从Windows事件日志中进行威胁狩猎
- Uncoder
- 一个在线的搜索/查询转换器,帮助SIEM转换和保存搜索、过滤器、查询语句、API请求、关联和Sigma规则
- 🌟Sigma
- 一个对SIEM系统的通用签名格式,帮助基于SIEM的威胁检测规则转换
- CimSweep
- 一套基于CIM / WMI的工具集,用于跨Windows系统版本来远程执行事件响应和威胁狩猎操作
- Dispatch
- 一个开源的安全威胁事件管理框架,由Netflix开源
- EQL(Event Query Language)
- 事件查询语句
- EQLLib(The Event Query Language Analytics Library)
- 事件查询语言分析库(EQLLib)是基于事件的分析库,使用EQL编写,可以检测基于MITER ATT&CK™框架来识别攻击者行为。
- BZAR (Bro/Zeek ATT&CK-based Analytics and Reporting)
- 一个用于检测ATT&CK技术的Zeek脚本集合
- 补:Zeek是一个网络安全监控工具,类似于Bro
- Security Onion
- 一个开源的Linux发行版,用于威胁狩猎,安全监视和日志管理。该发行版集成了ELK,Snort,Suricata,Zeek,Wazuh,Sguil和许多其他安全工具
- Varna
- 一个快速、便宜的AWS无服务(注:Serverless)云安全工具,使用事件查询语言(EQL)对CloudTrail日志进行解析和告警
- BinaryAlert
- 一个服务器的开源AWS pipeline,用于实施的恶意软件检测溯源和告警
- hollows_hunter
- 可用于扫描运行的全部进程,识别并转储其中各种潜在的恶意植入物,例如:已被替换/植入的PE、shellcode、hooks及内存布丁
- ThreatHunting
- 一个可以映射MITRE ATT&CK框架的Splunk APP,可以用于指导威胁狩猎
- Sentinel Attack
- 用于简化Sysmon和ATT&CK框架在Azure Sentinel上进行威胁狩猎的快速部署
- Brim - A desktop application to efficiently search large packet captures and Zeek logs
- 一个桌面应用程序,可以高效地搜索、查询大型网络数据包和Zeek日志信息
- YARA
- 用于规则匹配的瑞士军刀
- Intel Owl
- 一种开源情报解决方案,可从单个API大规模获取特定文件,IP或域名的相关威胁情报数据
- Capa
- 一个用于识别可执行文件功能的开源工具
告警引擎
- ElastAlert
- 基于ELK的框架,用于从Elasticsearch中的数据中发出异常、峰值或其他设定规则的警报
- StreamAlert
- 一个无服务器的实时数据分析框架,帮助使用自定的数据源和逻辑从任何环境中提取,分析和告警数据
端点监控
- osquery (github)
- SQL语句驱动的操作系统编排、监控和分析工具
- Kolide Fleet
- 一个弹性的、用于osquery队列的控制服务器
- Zeek Agent
- 用于对Zeek提供主机活动信息的端点监控agent
- Velociraptor
- 用于端点可视化和收集的工具
- Sysdig
- 一个用于深度挖掘Linux系统可见性的工具,支持容齐的原生支持。可以将其认为是strace + tcpdump + htop + iftop + lsof +...的整合
- go-audit
- 一个Linux auditd守护进程的替代方法
- Sysmon
- 一个Windows系统服务(设备驱动程序),用于监视系统活动并将其日志到Windows的事件日志中
- OSSEC
- 一个开源的、基于主机的入侵检测系统(HIDS)
- 🌟WAZUH
- 一个开源的综合安全平台,用于威胁预防、检测和响应。可以用于保护本地、虚拟机、容器及云端环境的工作负载
- 支持的功能:入侵检测、日志数据分析、文件完整性监控、漏洞检测、配置评估、事件响应、合规性、云安全、Docker安全
网络监控
- Zeek
- 一个网络安全监控工具,前身为Bro
- ntopng
- 一个基于Web的网络流量监控工具
- Suricata
- 一个网络威胁监测引擎
- Snort (github)
- 一个网络入侵检测工具
- Joy
- 可用于网络流量抓取、分析的整合包,可用于网络调查、取证和安全监控
- Netcap
- 可用于安全和可扩展性的网络流量数据分析工具
- 🌿Arkime
- 一个开源的、大型全流量数据包捕获、搜索工具,前身为Moloch
- Stenographer
- 一个全流量网络数据包捕获工具
指纹工具
- JA3
- 一种分析 SSL/TLS 客户端和服务器的方法
- HASSH
- SSH 客户端和服务器的分析方法
- RDFP
- 基于FATT(Fingerprint All The Things)的Zeek 远程桌面指纹识别脚本
- FATT
- 基于 pyshark 的脚本,用于从 pcap 文件和实时网络流量中提取网络元数据和指纹
- FingerprintTLS
- 一种 TLS 指纹识别方法
- Mercury
- 网络指纹识别和数据包元数据捕获
- GQUIC_Protocol_Analyzer
- 适用于 Zeek 的 GQUIC 协议分析器
- Recog
- 通过将指纹与从各种网络探测器返回的数据进行匹配来识别产品、服务、操作系统和硬件的框架
- Hfinger
- 用于恶意软件识别的HTTP请求指纹
数据集
- Security Datasets
- 以模拟攻防对抗技术出发,以JSON文件格式生成的各类安全事件数据集。数据按 Miter ATT&CK 框架定义的平台、对手组、策略和技术进行分类
- 相关项目:The ThreatHunter-Playbook
- SecRepo.com
- 安全相关的数据样本
- Github repo
- SOC (BOTS) 数据集v1
- SOC (BOTS) 数据集v2
- SOC (BOTS) 数据集v3
- EMBER
- PE文件特征集,可作为研究人员的基准数据集
- 相关论文
- theZoo
- 实时恶意软件的存储库
- CIC Datasets
- 加拿大网络安全研究所的数据集
- Netresec's PCAP repo list
- 公共网络数据包存储库列表
- PCAP-ATTACK
- 用于不同 ATT&CK 技术的网络数据包样本
- EVTX-ATTACK-SAMPLES
- 与 ATT&CK技术相关的Windows 事件样本 (EVTX-ATT&CK Sheet)
资源
-
- 威胁狩猎知识纲领
-
- 威胁狩猎实用指南
-
Endgame公司的威胁狩猎手册(Handbook)
-
威胁猎人的演练脚本,可以帮助开发用于威胁狩猎活动的技术和理论假设
-
- 大量的狩猎案例和狩猎资源
-
- 威胁猎人的资源集合
-
- 用于追捕、检测和阻止攻击者的资源与实用工具
-
Alerting and Detection Strategy Framework
- 一个用于事件响应与威胁检测的的警报、检测策略框架
-
Generating Hypotheses for Successful Threat Hunting
- 探究自动化威胁狩猎的论文
-
Expert Investigation Guide - Threat Hunting
- 威胁狩猎指南
-
Active Directory Threat Hunting
- 基于活动目录的威胁狩猎
-
Threat Hunting for Fileless Malware
- 对无文件攻击技术的威胁狩猎方法
-
Windows Commands Abused by Attackers
- 被攻击者滥用的Windows命令
-
- 与MITRE的ATT&CK框架对应的基于欺骗的检测技术
-
- 深入浅出地讲解什么是TTPs
-
🌟Hunting On The Cheap(YouTube)
- Endgame 的威胁研究团队展示如何利用免费或几乎免费的数据源和开源工具来进行”便宜的“的威胁狩猎,主要包括蜜罐、开源沙箱、被动DNS数据的使用等
-
🐞Threat Hunting Techniques - AV, Proxy, DNS and HTTP Logs
- 对AV、代理、DNS 和 HTTP 日志进行威胁狩猎的技术
-
Detecting Malware Beacons Using Splunk
-
使用Splunk检测恶意软件信标
-
信标(Beacon):定义为定期而非一次性的异常流量
-
-
- 基于数据科学的威胁狩猎“漏斗”,用于说明数据科学在安全研究中的工作流程和应用方式
-
Use Python & Pandas to Create a D3 Force Directed Network Diagram
- 使用Python和Pandas创建D3力有向网络图
-
- 大规模系统调用的审计方法
-
Catching attackers with go-audit and a logging pipeline
- 使用go-audit和日志记录管道文件捕获攻击者
- 注:go-audit是auditd守护进程的一种替代方案,GitHub
- 注:该篇文章中的日志记录管道文件指logstash与filebeat中的
-
The Coventry Conundrum of Threat Intelligence
- 威胁情报中的“考文垂”难题,指情报分析人员是有应该对所获取的情报采取行动时面临的问题,因为采取相应行动会向攻击者暴露其所拥有的情报和相应能力
- 注:考文垂(Coventry Conundrum) 一词来自二战中的一次事件,据推测,英国情报部门了解到考文垂市将遭到德国的大规模空袭。他们可以将即将到来的袭击通知考文垂市并拯救该市的人民,但德国人会意识到这座城市已被疏散,这将通知他们英国人知道即将到来的袭击,这可能使他们意识到英国人破解了 Enigma 密码,这将导致他们使用 Enigma 以外的其他东西,这最终可能导致英国输掉战争
-
- 使用Tanium构建实时威胁检测功能,专注于记录的对抗技术
-
SANS Summit Archives (DFIR, Cyber Defense)
- 威胁狩猎、蓝队和DFIR峰会的PPT
-
- 使用开源软件进行大规模主机和网络监控
-
- 收集有关恶意软件持久性的各种信息:检测技术、响应方法、陷阱和日志收集(工具)
-
Threat Hunting with Jupyter Notebooks
- 使用 Jupyter Notebook 进行威胁狩猎
-
How Dropbox Security builds tools for threat detection and incident response
- Dropbox Security 如何构建用于威胁检测和事件响应的工具
-
Introducing Event Query Language
- 对事件查询语言的介绍
-
The No Hassle Guide to Event Query Language (EQL) for Threat Hunting (PDF)
- 用于威胁搜寻的事件查询语言 (EQL) 无障碍指南
-
Introducing the Funnel of Fidelity (PDF)
- SpecterOps的威胁情报漏斗:Fidelity,用于描述检测和相应过程的各个阶段
-
- SpecterOps的检测光谱,侧重于在Fidelity中的检测检测
-
- SpecterOps的能力抽象,用于帮助了解们整体检测程序的上下文
-
- 精选 YARA 规则、工具和资源列表
-
- 一个由两部分组成的博客系列,概述了扩展ATT&CK当前数据源的新方法
框架/模型
- MITRE ATT&CK
- 针对行为的精心设计的知识库和模型,反映了攻击者生命周期的各个阶段以及他们已知的目标
- MITRE CAR
- Cyber Analytics Repository (CAR) 是 MITRE 基于 Adversary Tactics, Techniques, and Common Knowledge (ATT&CK™) 对手模型开发的分析知识库
- Alerting and Detection Strategies Framework
- 用于开发告警和检测策略的框架
- A Simple Hunting Maturity Model
- 狩猎成熟度模型描述了组织狩猎能力的五个级别,范围从 HMM0(最低能力)到 HMM4(最高能力)
- The Pyramic of Pain
- 可用于检测对手活动的指标类型之间的关系、评估情报价值
- A Framework for Cyber Threat Hunting
- 狩猎成熟度模型的介绍手册
- The PARIS Model
- PARIS威胁狩猎模型
- 注:因为其模型形状类似于巴黎埃菲尔铁塔而得名
- Cyber Kill Chain
- 杀伤链模型,是Intelligence Driven Defense® 模型的一部分,用于识别和预防网络入侵活动。该模型确定了对手必须完成哪些任务才能实现其目标,定义攻击里程碑
- The DML Model
- 检测成熟度级别 (DML) 模型是一种能力成熟度模型,用于参考检测网络攻击的成熟度
- NIST Cybersecurity Framework
- 美国国家标准暨技术研究院(NIST)的网络安全模型
- OSSEM (Open Source Security Events Metadata)
- 一个开源社区主导的项目,专注于来自不同数据源和操作系统的安全事件日志的文档和标准化
- MITRE Shield
- 与ATT&CK模型相对应的主动防御技术和战术的知识库(Active Defense Matrix, 主动防御矩阵)
基于DNS数据的威胁狩猎
- Detecting DNS Tunneling
- 检测DNS隐蔽隧道
- Hunting the Known Unknowns (with DNS)
- 使用DNS数据发现已知与未知的安全威胁
- 🌟Detecting dynamic DNS domains in Splunk
- 在Splunk中检测使用动态DNS服务的域名
- Random Words on Entropy and DNS
- 介绍在威胁狩猎过程中对DNS数据中的具有相对较高熵的域和子域进行检测的过程
- Tracking Newly Registered Domains
- 监测新注册域名
- Suspicious Domains Tracking Dashboard
- 可疑域名监测面板
- Proactive Malicious Domain Search
- 借助证书透明度项目进行主动的恶意域名发现
- DNS is NOT Boring
- 使用DNS数据发现和组织恶意攻击
- Actionable Detects
- 使用DNS数据进行防守的蓝队策略
命令与控制(C2)相关
- Rise of Legitimate Services for Backdoor Command and Control
- 使用合法的互联网服务作为命令和控制 (C2) 模式一部分的恶意软件技术
-
- 一种使用基于 DogeCoin的DGA生成 C2 域名的恶意软件
-
- 一种滥用 Google DoH 的恶意软件
- All the DoH
- 使用DNS-over-HTTPS 的恶意软件,Twitter贴文
Osquery
- 注:Osquery一个 SQL 驱动的操作系统检测、监控和分析框架
- osquery Across the Enterprise
- 使用Osquery进行企业安全检测和威胁狩猎
- osquery for Security — Part 1
- Osquery教程-Part 1,本篇主要讲解在企业安全环境下部署
- osquery for Security — Part 2
- Osquery教程-Part 2,本篇主要讲解高级 osquery 功能、文件完整性监控、进程审计等
- Tracking a stolen code-signing certificate with osquery
- 使用Osquery追踪被窃取的证书签名
- Monitoring macOS hosts with osquery
- 使用Osquery监控macOS主机
- Threat hunting with Kolide and osquery
- 使用使用Kolide Fleet进行威胁狩猎
- 注:Kolide Fleet 是一个灵活的控制服务器,可用于管理Osquery队列
Windows
- Threat Hunting via Windows Event Logs
- 通过 Windows 事件日志进行威胁追踪
- Windows Logging Cheat Sheets
- 调查受感染系统时可以重点关注的的Windows日志路径,备忘清单
- Active Directory Threat Hunting
- 在Windows活动目录中
- Windows Hunting
- 整理在Windows系统中进行威胁狩猎的常见
- Windows Commands Abused by Attackers
- 被攻击者滥用的Windows命令
- JPCERT - Detecting Lateral Movement through Tracking Event Logs
- 通过跟踪事件日志检测攻击者的横向渗透
- Tool Analysis Result Sheet
- 总结了49种常用于渗透的工具在执行后,对应在Windows中的日志
Sysmon
-
注:Sysmon是微软的一款轻量级的系统监控工具,它通过系统服务和驱动程序实现记录进程创建、文件访问以及网络信息的记录,并把相关的信息写入并展示在windows的日志事件里
-
Splunking the Endpoint: Threat Hunting with Sysmon
- Hunting with Sysmon
- 基于Sysmon进行威胁狩猎
- Threat Hunting with Sysmon: Word Document with Macro
- 基于Sysmon狩猎带有宏的Word文档
- Chronicles of a Threat Hunter: Hunting for In-Memory Mimikatz with Sysmon and ELK
- Part I (Event ID 7)
- Part II (Event ID 10)
- 使用Sysmon和ELK发现内存中的 Mimikatz
- Advanced Incident Detection and Threat Hunting using Sysmon (and Splunk) (botconf 2016 Slides, FIRST 2017 Slides)
- 使用 Sysmon和Splunk进行高级事件检测和狩猎
- Sysmon Threat Detection Guide (PDF)
- Sysmon威胁分析指南
PowerShell
- Revoke-Obfuscation: PowerShell Obfuscation Detection Using Science (Paper, Slides)
- 使用数据科学进行PowerShell混淆检测
- Hunting the Known Unknowns (With PowerShell)
- 使用PowerShell进行威胁狩猎
- HellsBells, Let's Hunt PowerShells!
- 检测PowerShell的一些方法和技巧
- Hunting for PowerShell Using Heatmaps
- 可视化(热图)狩猎PowerShell
指纹
- JA3: SSL/TLS Client Fingerprinting for Malware Detection
- 使用JA3指纹进行恶意软件检测
- 注:JA3指纹属于SSL/TLS协商指纹,其计算所需字段从协商信息中获取,用于在流量层识别特定客户端与服务器之间的加密通讯
- TLS Fingerprinting with JA3 and JA3S
- 对JA3/JA3S指纹计算原理及应用场景的讲解
- HASSH - a profiling method for SSH Clients and Servers
- HASSH @BSides Canberra 2019 - Slides
- HASSH,对SSH协议进行流量层指纹识别的一个方案
- Finding Evil on the Network Using JA3/S and HASSH
- 使用JA3/JA3S和HASSH进行威胁狩猎的演讲
- RDP Fingerprinting - Profiling RDP Clients with JA3 and RDFP
- 使用JA3和RDFP识别RDP客户端
- Effective TLS Fingerprinting Beyond JA3
- 在JA3计算的基础上,提出了的优化方向,包括使用ALPN(应用层协议协商)和客户端支持的TLS协议版本
- TLS Fingerprinting in the Real World
- 对TLS指纹的业务场景介绍
- HTTP Client Fingerprinting Using SSL Handshake Analysis (source code: mod_sslhaf)
- 基于SSL协商进行HTTP指纹的识别
- TLS fingerprinting - Smarter Defending & Stealthier Attacking
- 介绍TLS指纹的定义和工具(包括FingerprinTLS和Fingerprintout)
- JA3er
- JA3指纹库
- An Introduction to HTTP fingerprinting
- 对HTTP指纹的简介
- TLS Fingerprints
- 从科罗拉多大学博尔德校区网络收集的TLS指纹
- The use of TLS in Censorship Circumvention
- 论文,TLS在规避审查中的应用
- TLS Beyond the Browser: Combining End Host and Network Data to Understand Application Behavior
- 论文,结合终端主机和网络数据来了解应用程序行为
- HTTPS traffic analysis and client identification using passive SSL/TLS fingerprinting
- 论文,使用被动SSL/TLS指纹识别的HTTPS流量分析进行客户端识别
- Markov Chain Fingerprinting to Classify Encrypted Traffic
- 论文,使用马尔可夫链指纹(Markov Chain Fingerprinting)对加密流量进行分类
- HeadPrint: Detecting Anomalous Communications through Header-based Application Fingerprinting
- 论文,通过基于标题的应用程序指纹检测异常通信
研究报告
- Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains
- 论文,通过分析对抗行为和入侵杀伤链进行情报驱动的计算机网络防护
- The Diamond Model of Intrusion Analysis
- 论文,入侵分析的钻石模型
- EXPOSURE: Finding Malicious Domains Using Passive DNS Analysis
- 论文,通过被动DNS(Passive DNS)分析查找恶意域名
- A Comprehensive Approach to Intrusion Detection Alert Correlation (Paper, Dissertation)
- 论文,入侵检测告警关联的综合方法
- On Botnets that use DNS for Command and Control
- 使用DNS进行C2的僵尸网络
- Intelligent, Automated Red Team Emulation
- 论文,自动化红队模拟
- Machine Learning for Encrypted Malware Traffic Classification
- 论文,用于加密恶意软件流量分类的机器学习
相关博客
- David Bianco's Blog
- DFIR and Threat Hunting Blog
- CyberWardog's Blog (old)
- Chris Sanders' Blog
- Kolide Blog
相关视频
- SANS Threat Hunting and IR Summit 2017
- SANS Threat Hunting and IR Summit 2016
- BotConf 2016 - Advanced Incident Detection and Threat Hunting using Sysmon and Splunk
- BSidesCharm 2017 - Detecting the Elusive: Active Directory Threat Hunting
- BSidesAugusta 2017 - Machine Learning Fueled Cyber Threat Hunting
- Toppling the Stack: Outlier Detection for Threat Hunters
- BSidesPhilly 2017 - Threat Hunting: Defining the Process While Circumventing Corporate Obstacles
- Black Hat 2017 - Revoke-Obfuscation: PowerShell Obfuscation Detection (And Evasion) Using Science
- DefCon 25 - MS Just Gave the Blue Team Tactical Nukes
- BSides London 2017 - Hunt or be Hunted
- SecurityOnion 2017 - Pivoting Effectively to Catch More Bad Guys
- SkyDogCon 2016 - Hunting: Defense Against The Dark Arts
- BSidesAugusta 2017 - Don't Google 'PowerShell Hunting'
- BSidesAugusta 2017 - Hunting Adversaries w Investigation Playbooks & OpenCNA
- Visual Hunting with Linked Data
- RVAs3c - Pyramid of Pain: Intel-Driven Detection/Response to Increase Adversary's Cost
- BSidesLV 2016 - Hunting on the Endpoint w/ Powershell
- Derbycon 2015 - Intrusion Hunting for the Masses A Practical Guide
- BSides DC 2016 - Practical Cyborgism: Getting Start with Machine Learning for Incident Detection
- SANS Webcast 2018 - What Event Logs? Part 1: Attacker Tricks to Remove Event Logs
- Profiling And Detecting All Things SSL With JA3
- ACoD 2019 - HASSH SSH Client/Server Profiling
- QueryCon 2018 - An annual conference for the osquery open-source community (querycon.io)
- Visual Hunting with Linked Data Graphs
- SecurityOnion Con 2018 - Introduction to Data Analysis
相关课程
- SANS SEC555 - SIEM with Tactical Analytics.
- 在SIEM中进行战术(Tactics)分析
- SpecterOps Adversary Tactics: PowerShell (FREE)
- SpecterOps Adversary Tactics: Detection
References
[1] Osquery检测入侵痕迹, EvilAnne, https://evilanne.github.io/2019/02/20/Osquery%E6%A3%80%E6%B5%8B%E5%85%A5%E4%BE%B5%E7%97%95%E8%BF%B9/
[2] 微软轻量级系统监控工具sysmon原理与实现完全分析(上篇), 浪子_三少, https://www.anquanke.com/post/id/156704
[3] 甲方视角浅析MITRE ATT&CK ,chiweiwei ,https://www.freebuf.com/articles/es/249278.html