【网络安全】追踪PowerShell命令历史

1. 概述:无处遁形的"隐形"操作

在现代网络对抗中,PowerShell 是一把名副其实的双刃剑。它不仅是系统管理员的得力助手,更是高级威胁参与者(APT)和勒索软件团伙在"离地攻击"(Living off the Land, LotL)时的首选武器。

很多攻击者以为,只要不留下恶意可执行文件,或者在内存中执行脚本,就能做到"踏雪无痕"。但实际上,从 Windows 10 和 PowerShell 5.0 开始,微软引入了 PSReadLine 模块,它会在默认情况下悄悄记录用户在控制台中输入的每一条命令------这为安全防守方和应急响应人员(IR)提供了一个极具价值的"黑匣子"。


2. 核心线索:PowerShell 的历史记录文件

如果你正在进行应急响应排查,或者怀疑某台机器被植入了后门,你必须检查以下路径中的文本文件:

默认文件路径:

C:\Users<USER>\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

(注意:将 <USER> 替换为你正在调查的实际 Windows 用户名。)

3. 文件特性与作用

  • 行为类似 Bash History :对于熟悉 Linux 的人来说,这个文件就等同于 ~/.bash_history。它以纯文本格式保存了该用户在 PowerShell 交互式控制台中执行过的所有命令。
  • 独立于事件日志:即使攻击者清除了 Windows 的安全事件日志(Event Logs),只要他们没有专门处理这个文本文件,他们的命令行操作记录依然会完整保留在这里。

4. 实战应用:防守方能从中发现什么?

通过读取 ConsoleHost_history.txt,SOC 分析师和应急响应人员通常可以挖掘出以下关键指标(IOCs):

  1. 恶意载荷下载 :例如使用 Invoke-WebRequest (或 iwr)、Net.WebClient 从外部恶意服务器下载 C2 远控木马或横向移动工具。
  2. 混淆与编码命令 :发现长串的 Base64 编码数据(通常伴随 -enc-EncodedCommand 参数)。
  3. 权限提升与凭证窃取:例如运行 Mimikatz 的命令,或者尝试导出 SAM 注册表项的操作。
  4. 防御规避行为 :发现关闭 Windows Defender (Set-MpPreference) 或绕过执行策略 (-ExecutionPolicy Bypass) 的命令。

查看记录的快捷命令:

如果你当前拥有这台机器的访问权限,可以直接在 PowerShell 中运行以下命令来快速读取历史记录:

powershell 复制代码
Get-Content (Get-PSReadLineOption).HistorySavePath
相关推荐
hz567894 小时前
音视频 SDK在行政执法的应用方案:实现执法全过程音视频留痕
安全·实时音视频·信息与通信
凤山老林5 小时前
聊聊企业级 API 安全:Spring Boot 落地 OAuth 2.1、mTLS 与接口签名防篡改
spring boot·后端·安全·oauth
天山@1236 小时前
PHP代码审计实验记录
网络安全·php·php代码审计
个性小王7 小时前
安装kali操作系统
网络安全·操作系统·渗透·kali
天空之城--7 小时前
Android逆向安全合规接单指南
android·安全
是隼人10 小时前
buuctf-pwn picoctf_2018_shellcode(ret2shellcode)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
hasty11 小时前
_proto__ 不是普通键:从 JSON 反序列化看原型污染
安全·json
Wang's Blog11 小时前
Java框架快速入门: Spring Security+OAuth2之方法级安全注解
java·安全·spring
网安老伯11 小时前
都2026年了,还在问网络安全怎么入门?看完这一篇你就懂了
运维·计算机网络·web安全·网络安全·wireshark·密码学·网络攻击模型
mounter62513 小时前
统一安全域:KVM Planes 如何驾驭硬件特权级
linux·安全·linux kernel·kernel