渗透测试学习之隐藏踪迹与规避检测二

清除日志文件

对安全审校员、安全管理员以及IT人员而言,日志文件是最重要的工具之一。应当定期审查日志文件,以及时发现悉意活动或可能提示不良行为的事件ID。可以用人工或专用的日志分析软件审查这些日志,并报告异常行为或活动。

日志文件中可能出现的事件包括:

  • 尝试登录失败
  • 更改文件
  • 使用特权
  • 系统重启
  • 安装软件
  • 尝试登录成功
  • 清除日志文件
  • 更改或删除重要的系统文件
  • 安装应用程序
  • 应用程序故障与崩溃

在现实中,取决于所发生的活动类型以及系统所有者选择进行日志记录的项目,可能在系统的日志文件中出现不同的事件。例如,如果入侵者尝试通过反复登录获取账户的密码,系统将锁定该账户。通常本地系统或域会记录此类的活动。但是,如果入侵者将数据复制到闪存驱动器,对于操作系统而言,该活动和日常使用别无两样。如果未将系统或网络配置为记录对特定文件或目录的访问,那么它将不过是一条成功访问尝试的审核记录。

还应谨记的是,虽然并非所有的活动都可能被系统记录,但是日志在检测安全变更、调查事件、执行影响分析以及针对入侵采取行动等方面是非常有用的。另外,一个配置良好的审核系统可以用于威慑滥用现象。最后,从记录事件消耗的硬盘空间、内存和处理器等系统资源考虑,记录系统上的每个事件是不可取的。

禁用Windows中的日志记录过程

处理遗留痕迹的最佳方法之一是:一开始就不要,或者尽可能少地遗留痕迹。实现这个目的的方法之一就是暂时禁用日志记录。

在Windows系统中,可以禁用系统上的日志记录/审核功能,并阻止活动出现在日志文件中。在禁用审核后,攻击者就有效地断绝了防御者的一个重要信息水源,并迫使他们采用其他检测机制。

在Windows环境中,可以在命令行中使用AuditPol实用程序与系统进行交互、配置或更改审核设置。AuditPol用于控制和修改 Windows操作系统中的审核设置。可以使用该应用程序启用或禁用本地和远程系统上的安全审核。

AuditPol的语法通常如下所示:

auditpol \\<目标的ip地址><命令名>

auditpol <命令名>

AuditPol可用于调整对多种不同安全事件的审核标准。

在Windows中,需要在命令提示符中使用提升的权限运行该命令,或者提升命令提示符本身的权限。
该命令的语法很简单,以下是一些AuditPol命令的示例。

该命令将列出所有审核策略设置:

Auditpol /get /category:*

仅列出 “账户管理(Account Management)〞 类的审核策略设置:

Auditpol /get /category: "Account Management"

仅列出“用户账户管理(User Account Management)”子类别的策略设置:

Auditpol /get /subcategory: "User Account Management"

将“账户管理”类审核策略设置为“成功”

Auditpol /set /category: "Account Management" /success: enable

将“账户管理”类审核策略设置为“失败”

Auditpol /set /category: "Account Management" /failure: enable

禁用或刪除“账户管理”类审核策略的 “成功”设置:

Auditpol /set /category: "Account Management" /success:disable

禁用或刪除“账户管理”类审核策略的“失败”设置:

Auditpol /set /category: "Account Management" /failure:disable

仅将子策略类别 “用户账户管理”设置为 “成功

Auditpol /set /subcategory: "User Account Management" /success: enable

仅将子策略类别 “用户账户管理”设置为 “失败”

Auditpol /set /subcategory: "User Account Management" /failure:enable

仅列出用户Administrator的 “详细跟踪(Detailed Tracking)” 类策略设置:

Auditpol /get /user:Administrator /category:"Detailed Tracking"

仅将用户Administrator 的“详细跟踪”类策略设置为“成功”:

Auditpol /set /user:Administrator /category:"Detailed Tracking"success: enable

删除日志文件中的事件

通过关闭系统日志删除整个时问段的日志很容易引起怀疑,但是有选择性地从日志文件中删除条目却是另一回事。

有很多方法能够选择性地修改日志文件,从而使攻击不那么明显。以下是其中一些工具:

Log Parser Lizard是一个Windows应用程序,可以下载(免费)并安装在任何Windows系统中。在安装该工具后,不仅可以使用它查看系统上的日志文件,还可以构造查询以查找特定事件。但是,为了避免污染证据,我们不建议将此应用程序安装在正在调查的系统中。

Log Parser Lizard实际上只不过是Microsoft Log Parser(日志解析器)程序的一个图形界面。Log Parser是一个多功能的软件,可使用SQL查询查看和搜索日志文件。该程序可以搜索所有类型的日志文件源,包括基于文本的数据,如日志文件、XML文件和TSV/CSV文本文件,以及Windows操作系统中的关键数据源,如Windows事件日志、IIS日志、注册表、文件系统、活动目录服务等。

那么Linux呢?可以清除Linux中的日志吗?当然可以,下面就将介绍相关内容。

清除Linux计算机上的事件日志

Linux系统的日志文件存储在/var/1og目录中。可以使用任何文本编辑器(如gedit)打开并查看包含日志消息的明文文件:

gedit/var/log/messages

在离开攻陷的系统之前,应注意打开该文件并删除能够反映攻击活动的条目,如果时间紧迫,则可删除所有条目。虽然删除单个条目不容易引起怀疑,并且可以帮助规避防护,刪除所有条目更为有效,但是缺少日志文件这种异常事件足以引起注意。

在使用在此列出的任何一种技术时,要记住,作为善意者,这样做可能会破坏你行为的证据或文档,而这些证据和文档在后续与客户的讨论中可能用到。而一个坏人(或是说不怀好意者)如果选择删除系统中的日志文件和其他项目以隐藏行迹,他可能会发现自己陷入困境。在一些法庭和法律体系中,删除日志文件的行为可作为实施了犯罪的证据。

擦除命令历史

在完成Linux系统测试之前,可以删除命令历史,从而防止检索到曾经进行的操作。记住,Linux中的shell通常会记录系统中最后执行的那些命令。知识渊博的系统管理员(或鉴证专家)会检查你执行的所有命令,从而检测和破译你在系统上的行动,并可能将其用作证据。

想要查看历史操作,可使用如下命令:

more ~/ .bash history

历史文件的大小由环境变量HISTSIZE确定。可通过输入

echo SHISTSIZE

查看HISTSIZE变量的大小。
然后,可输入:

export HISTSIZE=0

将该变量设为零。

现在,shel将不存储任何历史记录。如果深谋远虑,可在执行所有命令前,将该变量值更改为零,以减少后续清理工作量。但如果不这样做,之后将仍然需要将该变量设置为零。

如果还想进一步清理,可以粉碎历史文件,使它再无用处(如果方式正确)。

shred -zu root/.bash history

该行命会使用带-2u 开关选项的shred命令,用零值覆盖历史记录,然后删除该文件。要检查历史记录是否已经被粉碎,可通过输入以下命令查看历史文件。

more /root/ .bashhistory

恭喜!日志文件现己从Linux中删除。

本作品采用《CC 协议》,转载必须注明作者和本文链接
给我个接口,我能连通一个世界!
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!