作为黑客,日志文件可以跟踪目标的活动和身份。但它也可以是你自己在别人系统上的活动痕迹。攻击方使用日志系统,抹掉自己的痕迹,防守方备份日志系统,寻找攻击方。
保护系统,知道如何管理日志记录功能,以确定系统是否受到攻击,破译实际发生的事情以及是谁在攻击你。查到第一个攻击目标,进一步确认目标的日志系统看是否为跳板还是真正的攻击源。
本章描述如何检查和配置日志文件,以及如何删除活动的证据,甚至完全禁用日志记录。首先,我们将看看执行日志记录的守护进程。
RSYSLOG日志记录守护进程
linux使用一个名为syslogd的守护进程来自动记录计算机上的事件。syslog的几个变体,包括rsyslog和syslog-ng,在linux的不同发行版上使用,它们很相似,但仍然存在一些细微差异。由于kali是在debian上构建的,debian默认情况下带有rsyslog,本章重点介绍这个。如果你使用了其他发行版,有必要对它们的日志系统做一些研究。
搜索与rsyslog相关的所有文件
locate rsyslog
我们要检查的是配置文件rsyslog.conf
rsyslog配置文件
使用任何文本编辑器打开配置文件
leafpad /etc/rsyslog.conf
其中大量注释解释了它的用户。此时,这些信息中的大部分对你没有用处,导航到第50行以下,找到Rules部分。可以为linux系统将自动为你记录的内容设置规则。
rsyslog日志记录规则
作为一名黑客,这运行你找出正在记录的日志以及这些日志的写入位置,以便你可以删除或保护它们。
每一行都是一个单独的日志记录规则,说明记录了哪些消息以及记录到哪里。这些规则的基本格式如下:
facility.priority action
facility关键字引用正在记录其消息的程序,例如邮件、内核或打印系统。priority关键字决定为该程序记录哪种类型的消息。在最右边的action关键字引用将发送日志的位置。
facility,指生成日志的任何软件,无论是内核、邮件系统还是用户。
auth/authpriv 安全/授权消息
cron时钟守护进程
daemon其他守护进程
kern内核消息
lpr打印系统
mail邮件系统
user常规用户级别消息
使用LOGROTATE自动清理日志
logrotate通过将日志文件移动到其他位置来定期归档日志文件的过程,在指定的一段时间之后,归档的位置将被清理。
系统已经在使用logrotate实用程序的cron作业切割转储日志文件。可以配置logrotate实用程序,以使用/etc/logrotate.conf文本文件选择日志转储备份的规律性。
文件编辑器打开它看看:
leafpad /etc/logrotate.conf
每四周转存日志。
保持隐身
禁用日志记录,删除日志文件中你入侵的任何证据,以减少被检测到的机会。很多方法可以做到这一点,每种方法都由自己的风险和可靠性。
删除证据 为什么公开攻击手法?安全的核心就是:未知攻,焉知防。
从地球诞生到现在:不存在从理论100%反推出新的实现,只能从实现总结成为理论,这个过程不可逆。
安全的本质:收集所有攻击手法,从所有手法中堵住攻击渠道。进攻它,总结详细报告,将致命手段替换成为试探手段。将报告交给防御者,将是建设安全产品的本质思路。【将攻击手段毫无保留的告诉防御者,这是一个多国家的时代,屏蔽技术是愚蠢的思路。你封国与屏蔽,其他国家将增加更多的攻击与防御手段。最后你将发现,自己在掩耳盗铃。】而且,对于人类发展,以后注定要探索宇宙,危机在地球之外。不分你是哪国我是哪国人,统称为地球人。做强做大就得走开源技术的路,多结善缘,不要小家子气,作茧自缚。
当下现状:各个团队各种为营,或为利,或为义。大部分不允许公开内部资料。给团队以外的交流和教学之用也带来严重阻碍。这里建议,反正都是团队,要选择的话,选择更大的平台,hackerone或者github。既然规定不公开就得尊重他们。对于公开的人来说,你应该加入到更大的平台中,去做更有成就的事情,使得人生更有意义。
你需要删除活动的任何日志,你可以简单地打开日志文件,并使用前面提到的文件删除技术,逐行准确地删除详细描述你的活动的任何日志。然而,这会很耗时,并且在日志文件中留下时间间隔,这看起来很可疑。此外,删除的文件通常可疑由一个熟练的取证调查员恢复。
更好、更安全的解决方案是分解日志文件。对于其他文件删除系统,熟练的调查员仍然能够恢复已删除的文件,但是假设有一种方法可以删除文件并多次擦写覆盖它,这使得恢复变得更加困难。幸运的是,linux有一个内置命令,名为shred,正是为了这个目的。
shred --help 在取证过程中,知道攻击手法以后,就可以预判攻击方的专业程度。并及时再备份一份日志到其他地方。
shred <FILE> 最基本形式,默认情况下,覆盖4次。通常,文件被覆盖的次数越多,恢复起来就越困难,每次覆盖都需要时间。
-f选项,它更改文件的权限,以便在需要更改权限时允许覆盖;-n选项,选择覆盖文件的次数。
shred -f -n 10 /var/log/auth.log.* -f选项确保命令顺畅的运行
现在尝试打开一个日志文件,看到其中的内容是难以理解的乱码
leafpad /var/log/auth.log.1
现在,安全工程师将发现没有任何用处,因为没有一个是可恢复的。
禁用日志记录
另一个覆盖跟踪的选项是禁用日志记录。这需要root特权。
只需要停止rsyslog守护进程。停止linux中的任何服务使用相同语法。
service servicename start|stop|restart
因此,要停止日志守护进程,只需要输入以下命令
service rsyslog stop
现在linux将停止生成任何日志文件,直到服务重新启动,使你能够在日志文件中不留下任何证据的情况下进行操作。