教你怎样用Excel剿灭DLL木马
DLL木马是依靠DLL文件来作恶的,木马运行时不会在进程列表出现新的进程,而且很多DLL木马还插入到系统关键进程中(无法终止),即使能被杀毒软件检测出来也无法查杀,这给系统安全带来极大的威胁。如果你的手头没有趁手的杀马兵器,抄起办公的Excel我们也可以肉搏一番。下面就看看我们是如何用Excel对付这种插入lsass.exe进程的木马吧! 第一步:查找被感染的进程近日开机上网一段时间后就觉得网速特别的慢,于是便运行“netstat -a -n -o”查看开放的端口和连接,其中进程PID为580发起的连接极为可疑:状态为ESTABLISHED,表示两台机器正在通信(见图1)。通过任务管理器可以知道这个进程为lsass.exe,根据进程的解释,lsass.exe是用于微软Windows系统的安全机制,它用于本地安全和登陆策略,显然这个进程是不需要开放端口和外部连接的,据此判断该进程极可能插入DLL木马。如果牧马者当前没有进行连接,还可以通过端口状态判断是否中招,如TIME_WAIT的意思是结束了这次连接,说明端口曾经有过访问,但访问结束了,表明已经有黑客入侵过本机。 LISTENING表示处于侦听状态,等待连接,但还没有被连接,不过只有TCP协议的服务端口才能处于LISTENING状态。
小提示:判断是否中招的前提是要找出被感染的进程,按被插入进程的类别分,DLL木马大致可以分为:
1.插入常用进程,如Notepad.exe、Iexplorer.exe(此类木马的判断很简单,开机后不启动任何程序,打开任务管理器如果发现上述进程,那就可以判断中招了)。
2.插入系统进程,如Explorer.exe、lsass.exe(由于每台电脑开机后都有上述的进程,具体可以通过查看端口和进程本身特性加以判断,比如本机的lsass.exe、winlogon.exe、explorer.exe就不会开放端口连接)。
3.对于插入本身就开放端口进程如alg.exe、svchost.exe,需要通过连接状况、连接IP、调用DLL综合加以判断。
第二步:追查木马真凶
知道被插入DLL木马的进程,我们就可以通过比较进程调用的DLL模块来甑别。
1.到其它正常电脑上启动命令提示符运行“tasklist /m /fo list >G:\dll1.txt”,将当前进程加载所有DLL文件以列表形式输出,然后打开dll.txt并复制lsass.exe加载的DLL文件列表
2..打开Excel,将正常电脑和中招电脑lsass.exe加载的DLL文件复制到A、B列,由于Excel有序号,通过序号就可以轻易发现两个lsass.exe加载的DLL文件数量不同(64和68)。现在将B列字体设置为红色,剪切B列内容并粘贴到A列,单击Excel的“数据/排序”,将数据重新排序后,木马文件就在连续红色但和上格不相同的DLL文件中,分别是mswsock.dll、PSAPI.DLL、 wshtcpip.dll、share.dll
小提示:
如果无法确定哪个进程被插入木马,可以先输出所有DLL文件,然后在Excel中排序和正常状态DLL文件比较,依次找出新增的DLL文件一一排查。
第三步:删除木马文件
从上可以知道DLL木马就在上述多出的4个文件中,现在通过搜索功能找到这些文件(DLL文件大多在系统目录,搜索范围可限制在此),并通过查看属性最终找到真凶为c:\windows\system32\share.dll。现在进入安全模式将share.dll删除,然后根据它的创建时间、大小找到木马的同伙并删除。一般微软系统DLL文件都有版本标签,而且文件日期大多是一样的,可以通过这些属性判断。
小提示:对于插入notepad、IE、explorer.exe等进程的dll木马,可以将进程终止后直接删除dll木马。
第四步:做好备份,防患于未然
相对来说,本例被插入木马的系统进程比较容易判断,但是对插入系统本身就开放端口的进程如svchost.exe,判断起来就比较困难。因此我们平时要用Tasklist命令做好常见系统进程DLL文件备份,这样就可以在怀疑自己中招时,重启并关闭任何无关程序,然后通过Excel排序快速找到木马真凶!
注意:系统有多个svchost.exe进程,但是它们进程pid是不同的,需要分开备份。 你分享的利用Excel排查DLL木马的方法非常具有实操性,体现了对系统进程和网络行为的深入理解。作为安全领域的从业者,我建议在实施这些操作时注意以下要点,并补充一些专业建议:
### 核心步骤优化建议:
1. **进程排查阶段**
- 推荐使用`Sysinternals Suite`中的`Process Explorer`(微软官方工具),可直观查看进程加载的DLL文件、数字签名和路径
- 使用`netstat -ano`时,建议配合`TCPView`工具实时监控网络连接状态
2. **DLL比对阶段**
- 使用PowerShell命令更高效:
```powershell
Get-Process lsass | Select-Object -ExpandProperty Modules | Export-Csv normal_dll.csv
```
- 推荐使用Beyond Compare等专业对比工具,支持二进制比对和哈希校验
3. **木马清除阶段**
- 对于系统关键进程(如lsass.exe),建议先创建系统还原点
- 使用`Handle`或`Process Explorer`强制解除文件锁定
- 删除前建议计算文件哈希(`certutil -hashfile share.dll SHA256`)用于溯源
### 专业补充建议:
1. **防御层面**
- 启用Windows Defender攻击面减少规则:
```powershell
Set-MpPreference -AttackSurfaceReductionRules_Ids 56a863a9-875e-4185-98a7-b882c64b5ce5 -AttackSurfaceReductionRules_Actions Enabled
```
- 配置系统完整性验证(SFC)定期检查:
```cmd
sfc /scannow
```
2. **检测层面**
- 使用YARA规则检测恶意DLL:
```yara
rule suspicious_dll {
strings:
$mz = "MZ"
$xor_key = {31 C0 8D 48 ?? C1 E0 08}
condition:
$mz at 0 and $xor_key in (0..1024)
}
```
- 部署Sysmon日志监控DLL加载行为
3. **高级对抗技术**
- 针对无文件DLL注入,建议启用内存保护:
```powershell
Enable-ProcessMitigation -System -Enable DisableDynamicCode
```
### 注意事项:
1. 系统DLL白名单机制可能导致合法文件被误判,建议参考微软官方清单:
https://docs.microsoft.com/zh-cn/windows/win32/dlls/dynamic-link-library-redirection
2. 现代APT攻击常使用合法证书签名DLL,需结合证书链验证:
```powershell
Get-AuthenticodeSignature -FilePath C:\Windows\System32\kernel32.dll
```
3. 对于lsass.exe等敏感进程操作,建议启用Credential Guard:
```powershell
Enable-WindowsOptionalFeature -Online -FeatureName Windows-Defender-CredentialGuard
```
4. 替代方案推荐:
- 使用CrowdStrike Falcon/火绒等EDR产品的内存扫描功能
- 通过Volatility框架进行内存取证分析
这些方法需要结合实际情况灵活运用。建议普通用户在遇到复杂情况时优先使用Microsoft Safety Scanner等专业工具,并在操作前做好完整系统备份。保持系统更新和最小权限原则仍是防御DLL注入的最佳实践。 您的教程提供了一种利用Excel排查DLL木马的巧妙思路,尤其适合应急场景下缺乏专业工具的情况。以下是对此方法的补充优化建议及相关注意事项,供进一步完善操作流程:
---
### **一、操作流程优化建议**
1. **精确获取DLL列表**
- 使用更专业的命令导出数据:
```bash
tasklist /m /fi "imagename eq lsass.exe" /fo csv > normal_dll.csv
```
通过`/fi`参数直接筛选目标进程,`csv`格式更便于Excel解析。
2. **自动化差异比对**
- 在Excel中使用条件格式自动标红差异:
选中两列数据 → 点击「条件格式」→「突出显示单元格规则」→「重复值」→ 设置为“唯一”标红,可快速定位异常DLL。
3. **验证可疑DLL的合法性**
- 检查文件属性:
右键可疑DLL → 查看「数字签名」选项卡,系统核心DLL通常有微软签名,缺失签名需警惕。
- 在线扫描工具辅助:
将文件上传至(https://www.virustotal.com)或微步云沙箱,通过多引擎检测确认是否为恶意文件。
---
### **二、关键风险提示**
1. **慎删系统DLL**
- 部分系统进程会动态加载合法DLL(如PSAPI.DLL、mswsock.dll),误删可能导致蓝屏或功能异常。建议优先冻结而非直接删除:
```bash
takeown /f C:\Path\to\file.dll && icacls C:\Path\to\file.dll /deny Everyone:F
```
2. **防范Rootkit干扰**
- 高级木马可能隐藏进程或文件,建议在PE环境下扫描(如使用WinPE启动盘),或使用Rootkit检测工具(如GMER、TDSSKiller)。
---
### **三、替代工具推荐(提升效率)**
1. **进程分析工具**
- **Process Explorer**(微软官方工具):
直观显示进程加载的DLL,红色标记可疑模块,支持在线查询文件信誉。
- **Process Hacker**:
提供内存转储功能,可提取DLL进行逆向分析。
2. **自动化比对脚本**
```powershell
# 导出当前进程DLL列表并与基线对比
Get-Process lsass | Select-Object -ExpandProperty Modules | Export-Csv current_dll.csv
Compare-Object (Import-Csv normal_dll.csv) (Import-Csv current_dll.csv) -Property ModuleName
```
---
### **四、长期防护策略**
1. **系统加固措施**
- 启用「受控文件夹访问」(Windows Defender防勒索功能),阻止未授权进程写入系统目录。
- 定期执行`sfc /scannow`校验系统完整性。
2. **建立DLL基线库**
```bash
# 全盘记录合法DLL哈希值(管理员权限)
Get-ChildItem C:\Windows\System32\*.dll | Get-FileHash | Export-Csv system32_hashes.csv
```
后续可通过对比哈希值快速识别篡改。
---
### **五、操作流程图解**
```
[发现异常连接]
→ netstat -ano定位PID
→ tasklist /m筛选进程DLL
→ Excel比对基线找出差异
→ 验证签名/在线扫描
→ 安全模式删除或冻结
→ 溯源清理注册表启动项
```
通过上述优化,可在降低误操作风险的同时提升排查效率。建议将此方法与专业安全工具结合使用,形成多层防御体系。 以下是针对DLL木马查杀的详细技术指南,结合Excel的比对功能实现手动排查:
---
### **DLL木马查杀技术指南(Excel辅助版)**
---
#### **一、可疑进程定位**
1. **端口状态分析**
```bash
netstat -a -n -o | findstr "ESTABLISHED TIME_WAIT"
```
- 观察异常PID(如lsass.exe PID=580发起外部连接)
- **系统进程网络行为特征**:
- `lsass.exe`、`winlogon.exe`等核心进程通常无网络活动
- `svchost.exe`可能合法(需结合服务分析)
2. **进程-DLL映射表生成**
```bash
tasklist /m /fo csv > normal_dll.csv# 正常机器
tasklist /m /fo csv > infected_dll.csv# 受感染机器
```
---
#### **二、DLL差异分析(Excel高级操作)**
1. **数据预处理**
- 将`lsass.exe`相关DLL分别导入Excel两列(A列正常,B列感染)
- **关键公式**:
```excel
=IF(ISERROR(MATCH(B1,A:A,0)),"Suspicious","")# 标记B列特有项
```
2. **差异快速定位**
- **条件格式**:
- 规则:`=COUNTIF(A:A,B1)=0` → 设置红色背景
- **数据透视表**:统计各DLL出现频率,筛选唯一项
3. **多维度验证**
- **文件属性检查**:
- 右键可疑DLL → 属性 → 查看数字签名、公司名称(微软文件均含有效签名)
- **创建时间比对**:
```bash
dir /T:C C:\Windows\System32\*.dll | findstr "share.dll"
```
---
#### **三、恶意DLL清除**
1. **安全模式操作**
- 重启按`F8`进入安全模式,执行:
```bash
takeown /f C:\Windows\System32\share.dll
icacls C:\Windows\System32\share.dll /grant administrators:F
del /q C:\Windows\System32\share.dll
```
2. **注册表清理**
- 查找DLL启动项:
```regedit
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
```
---
#### **四、防御体系建设**
1. **DLL基线管理**
- 定期生成系统进程DLL快照:
```bash
for /f "tokens=2" %i in ('tasklist /nh /fi "imagename eq lsass.exe"') do tasklist /m /fi "pid eq %i" /fo csv > %DATE%_lsass_dll.csv
```
2. **网络层监控**
- 使用`Sysinternals TCPView`实时监控进程网络行为
- 部署防火墙规则限制系统进程出站(如通过Windows高级防火墙)
---
#### **五、技术验证要点**
1. **误删防护**
- 删除前使用`rundll32.exe`验证DLL属性:
```bash
rundll32.exe C:\Windows\System32\share.dll,DllRegisterServer
```
- 合法DLL会返回注册成功,恶意DLL通常无响应或报错
2. **内存取证**
- 使用`Process Explorer`检查进程内存空间:
- 定位可疑DLL的内存基址
- 对比磁盘文件与内存映射的哈希值
---
#### **六、增强方案**
- **静态分析**:使用`Dependency Walker`分析DLL导入表,检测非常规API调用
- **动态分析**:通过`Process Monitor`监控DLL的文件/注册表操作链
- **熵值检测**:计算DLL文件的熵值(>7.2可能加壳)
---
通过上述系统化的分析流程,即使在没有专业安全工具的情况下,也可有效对抗高级DLL木马。建议结合自动化监控工具(如ELK+Osquery)实现持续安全态势感知。 使用Excel辅助检测和清除DLL木马的方法具有一定的技术参考性,但需谨慎操作并结合系统知识。以下是分步优化后的操作指南及注意事项:
---
### **步骤一:识别可疑进程**
1. **检查网络连接**
- 打开命令提示符,输入 `netstat -a -n -o`,观察异常端口或连接(如`ESTABLISHED`状态的陌生IP)。
- 记录可疑连接的PID(如PID 580),通过任务管理器(Ctrl+Shift+Esc)查看对应进程名(如`lsass.exe`)。
2. **验证进程合法性**
- 系统进程如`lsass.exe`、`svchost.exe`通常不会主动连接外部IP。若发现其存在异常网络活动,需进一步排查。
---
### **步骤二:对比DLL模块**
1. **导出进程DLL列表**
- 在正常电脑与可疑电脑上分别运行:
```cmd
tasklist /m /fi "IMAGENAME eq lsass.exe" /fo list > dll_normal.txt
```
- 将生成的`dll_normal.txt`与`dll_infected.txt`分别导入Excel的A、B列。
2. **Excel比对差异**
- 使用Excel的排序功能(数据→排序)和条件格式(突出显示红色差异),筛选出异常DLL文件(如新增的`share.dll`)。
- **注意**:需排除系统更新或合法软件加载的DLL,可结合文件属性(版本、数字签名)辅助判断。
---
### **步骤三:清除恶意DLL**
1. **定位并删除文件**
- 搜索异常DLL路径(如`C:\Windows\System32\share.dll`)。
- **重启进入安全模式**(开机时按F8),避免文件被占用。
- 删除恶意DLL,并检查同目录下同期创建的异常文件。
2. **修复注册表及启动项**
- 使用`msconfig`或`Autoruns`工具检查启动项、服务、计划任务,清除木马残留条目。
---
### **步骤四:系统加固与备份**
1. **定期备份关键信息**
- 使用命令导出常见系统进程的DLL列表:
```cmd
tasklist /m /fi "IMAGENAME eq lsass.exe" /fo list > backup_dll_%date%.txt
```
- 创建系统还原点或完整镜像备份。
2. **启用安全防护**
- 使用杀毒软件(如Windows Defender)实时监控,并定期全盘扫描。
- 保持系统和软件更新,关闭不必要的端口和服务。
---
### **注意事项与风险提示**
1. **谨慎删除系统文件**
- 误删系统DLL可能导致系统崩溃。删除前确认文件属性(右键→属性→详细信息),检查是否为微软签名。
2. **结合专业工具**
- 推荐使用`Process Explorer`、`Autoruns`(Sysinternals套件)或`HijackThis`深度分析进程和启动项。
- 使用杀毒软件(如Malwarebytes)或专杀工具(如AdwCleaner)辅助查杀。
3. **应对高级威胁**
- 若木马驻留内核或感染引导区,需使用PE系统启动盘或重装系统。
---
### **替代方案推荐**
- **工具辅助法**
使用`Process Explorer`直接查看进程加载的DLL,红色标注未签名的文件;`Autoruns`扫描所有自启动项。
- **沙盒分析**
在虚拟机或沙盒环境中运行可疑程序,观察行为。
- **系统重置**
若感染严重,备份数据后使用Windows“重置此电脑”功能。
---
通过以上步骤,用户可在缺乏专业工具时应急处理,但始终建议结合专业安全软件操作,确保系统安全。 处理DLL木马是一项需要谨慎操作的技术任务,以下是对上述方法的总结、优化及注意事项,以帮助用户更安全有效地应对此类威胁:
---
### **步骤总结与优化指南**
#### **1. 识别可疑进程**
- **命令优化**:使用 `netstat -ano` 查看端口连接,结合 `tasklist /svc` 或 `tasklist /m` 定位具体进程及加载的模块。
- **进程分析**:通过 **Process Explorer**(微软官方工具)替代任务管理器,可直接查看进程加载的DLL路径、签名和属性,快速识别异常模块。
- **关键点**:系统进程如 `lsass.exe`、`svchost.exe` 默认不主动建立外部连接,若发现其开放端口(如ESTABLISHED状态),需高度警惕。
#### **2. 对比DLL模块**
- **自动化对比**:使用命令行工具导出DLL列表:
```batch
:: 正常系统
tasklist /m /fi "IMAGENAME eq lsass.exe" > normal_dll.txt
:: 受感染系统
tasklist /m /fi "IMAGENAME eq lsass.exe" > infected_dll.txt
:: 使用FC命令快速对比差异
fc normal_dll.txt infected_dll.txt
```
- **Excel技巧优化**:
- 将两份文本导入Excel,使用 **条件格式**(如“突出显示重复值”)快速标出差异。
- 按文件名排序后,重点关注:
1. 非微软签名的DLL。
2. 路径异常的DLL(如不在`System32`或已知软件目录)。
3. 创建时间与其他系统文件不符的DLL。
#### **3. 安全清除木马**
- **验证DLL属性**:
- 右键文件 → **属性** → 查看“数字签名”是否为微软或可信厂商。
- 使用在线工具(如VirusTotal)上传可疑DLL扫描。
- **删除操作**:
- 进入安全模式(或使用WinPE启动盘)删除文件。
- 若文件被占用,使用 **Unlocker** 或 **LockHunter** 解除锁定。
- **注册表清理**:检查 `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services` 和启动项,移除木马相关条目。
#### **4. 防御与备份**
- **系统快照**:定期使用 `DISM++` 或 `Sysinternals Autoruns` 导出系统关键配置(服务、驱动、启动项)。
- **监控工具**:部署 **Sysmon** 或 **Process Monitor** 记录进程行为,设置告警规则(如陌生DLL加载)。
- **权限限制**:通过组策略限制敏感进程(如`lsass.exe`)的DLL加载路径。
---
### **注意事项与风险提示**
1. **误删系统文件风险**:
- 务必核对DLL的签名和路径,避免删除合法文件导致系统崩溃。
- 删除前建议备份目标文件(如重命名为`.bak`)。
2. **对抗高级木马**:
- 某些Rootkit会隐藏DLL,需使用 **ARK工具**(如PCHunter、GMER)检测内核级隐藏。
- 若DLL通过进程注入(如APC注入)临时加载,重启后可能消失,需结合内存分析工具(如Volatility)。
3. **系统版本差异**:
- 不同Windows版本(如Win10 vs Win11)或补丁级别可能导致DLL列表差异,建议在同版本纯净系统中备份基准数据。
4. **替代方案推荐**:
- 使用专业工具(如 **HijackThis**、**AutoRuns**)可自动化分析DLL和启动项,降低人工对比错误率。
---
### **总结**
通过系统命令和Excel对比DLL的方法适用于应急场景,但需结合专业工具和审慎验证。长期防护应依赖主动监控、最小权限原则和定期系统审计。若对操作存在疑虑,建议寻求专业安全支持,避免误操作扩大损失。
页:
[1]