Windows日志有许多细分类:
windows事件日志,IIS日志,FTP日志,防火墙日志等等。
事件查看器
windows系统自带一个叫做事件查看器的工具,它可以分析所有的windows系统日志。
运行->eventvwr 即可打开。
它把日志分为了两种,一个是WINDOWS日志,一个是“应用程序和服务日志”
![红队 win&linux 日志系统与清除 红队 win&linux 日志系统与清除]()
事件查看器内置有三个核心日志文件:SYSTEM,SECURITY,APPLICATION。他们的默认最大容量为20MB.
事件类型
![红队 win&linux 日志系统与清除 红队 win&linux 日志系统与清除]()
信息事件指应用程序、驱动程序或服务的成功操作的事件。
警告事件指不是直接的、主要的,但是会导致将来问题发生的问题。例如,当磁盘空间不足或未找到打印机时,都会记录一个“警告”事件。
错误事件指用户应该知道的重要的问题。错误事件通常指功能和数据的丢失。例如,如果一个服务不能作为系统引导被加载,那么它会产生一个错误事件。
成功的审核安全访问尝试,主要是指安全性日志,这里记录着用户登录/注销、对象访问、特权使用、账户管理、策略更改、详细跟踪、目录服务访问、账户登录等事件,例如所有的成功登录系统都会被记录为“ 成功审核”事件。
失败的审核安全登录尝试,例如用户试图访问网络驱动器失败,则该尝试会被作为失败审核事件记录下来。
删除日志
Windows并没有直接提供删除特点日志的功能,事件查看器也只提供了一个清除日志的选项,原因是日志记录的ID是连续的,默认的排序方式是从大到小往下排列。
![红队 win&linux 日志系统与清除 红队 win&linux 日志系统与清除]()
清空日志
开始→运行,输入 eventvwr
进入事件查看器,右边栏选择清除日志。
(a)PowerShell -Command "& {Clear-Eventlog -Log Application,System,Security,'windows powershell'}" (b)Get-WinEvent -ListLog Application,Setup,Security -Force | % {Wevtutil.exe cl $_.Logname}
|
wevtutil el 列出系统中所有日志名称 wevtutil cl system 清理系统日志 wevtutil cl application 清理应用程序日志 wevtutil cl security 清理安全日志
|
日志伪造
可以通过eventcreate这个自带工具伪造日志或者自定义大量垃圾信息覆盖现有日志(日志最大容量20MB)
eventcreate -l system -so administrator -t warning -d "this is a test" -id 500
|
暂停日志记录
可以通过工具https://github.com/hlldz/Invoke-Phant0m,来使日志记录终止。这个工具仅支持X64
该脚本遍历事件日志服务进程(专用svchost.exe)的线程堆栈,并标识事件日志线程以杀死事件日志服务线程。因此,系统将无法收集日志。
![红队 win&linux 日志系统与清除 红队 win&linux 日志系统与清除]()
随后新增用户,发现日志中无记录,看来日志记录确实是被终止了。
单条日志清除
https://github.com/QAX-A-Team/EventCleaner
这个工具也可以暂停日志线程停止日志记录,同时也可以恢复日志线程。但是更重要的是它可以删除单挑日志记录
-
EventCleaner closehandle 解除 security.evtx的文件占坑
-
EventCleaner 100 删除ID为100的日志(必须在之前使用EventCleaner closehandle)
-
EventCleaner suspend 暂停日志线程,停止日志记录
-
do anything without worrying about logs
-
EventCleaner normal 恢复日志线程
-
各日志位置及手动清除
IIS
路径 %SystemDrive%inetpublogsLogFilesW3SVC1
|
停止服务:net stop w3svc 删除日志目录下所有文件:del *.* 启用服务:net start w3svc
|
应用程序日志,安全日志,系统日志
%systemroot%system32configAppEvent.EVT; %systemroot%system32configSecEvent.EVT; %systemroot%system32configSysEvent.EVT;
|
ftp
%systemroot%system32logfilesmsftpsvc1
|
远程桌面
@echo off reg delete "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault" /va /f # 删除Default中的所有值 reg delete "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers" /f # 删除整个Servers reg add "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers" 重新创建删除的注册表项 cd %userprofile%documents # 转到Default.rdp文件目录 attrib Default.rdp -s -h # 更改Default.rdp文件属性,默认情况下它是隐藏 del Default.rdp # 删除文件Default.rdp文件
|
彻底删除日志
如何彻底删除日志?要知道仅仅是普通的删除命令实际上是并不能做到完全删除的,很容易被找到删除文件。
Cipher 命令多次覆写
在删除文件后,可以利用Cipher 命令通过 /W 参数可反复写入其他数据覆盖已删除文件的硬盘空间,彻底删除数据防止被恢复。比如
刚刚删除D:tools
目录下的文件,执行cipher /w:D:tools
,D 盘上未使用空间就会被覆盖三次:一次 0x00、一次 0xFF,一次随机数,所有被删除的文件就都不可能被恢复了。
Format命令覆盖格式化
Format 命令加上 /P 参数后,就会把每个扇区先清零,再用随机数覆盖。而且可以覆盖多次。比如
format D: /P:8
就表示把 D 盘用随机数覆盖 8 次。
LINUX 日志
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 /var/log/maillog 与邮件相关的日志信息 /var/log/cron 与定时任务相关的日志信息 /var/log/spooler 与UUCP和news设备相关的日志信息 /var/log/boot.log 守护进程启动和停止相关的日志消息 /var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,用last查看 /var/log/btmp 记录所有登录失败信息,使用lastb命令查看 /var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,使用lastlog命令查看 /var/log/utmp 记录当前已经登录的用户信息,使用w,who,users等命令查看 ~/.bash_history 执行的命令,用 histroy -c 即可删除
|
清空日志
清除用户最后一次登录时间:echo > /var/log/lastlog #lastlog命令
清除当前登录用户的信息:echo > /var/log/utmp #使用w,who,users等命令
清除安全日志记录:cat /dev/null > /var/log/secure
清除系统日志记录:cat /dev/null > /var/log/message
替换/删除部分日志
日志文件被清空会引起管理员警觉,所以可以只替换或删除关键信息,实现隐秘攻击的目的。
# 删除所有匹配到字符串的行,比如以当天日期或者自己的登录ip sed -i '/自己的ip/'d /var/log/messages
# 全局替换登录IP地址: sed -i 's/192.168.166.85/192.168.1.1/g' secure
对于WEB服务还可以这样隐藏我们的马 # 使用grep -v来把我们的相关信息删除, cat /var/log/nginx/access.log | grep -v evil.php > tmp.log
# 把修改过的日志覆盖到原日志文件 cat tmp.log > /var/log/nginx/access.log/
|
彻底删除
shred
shred -f -u -z -v -n 8 1.txt
|
dd
dd if=/dev/zero of=要删除的文件
|
wipe
Secure-Delete
secure-delete是一个集成化工具包,收录了些安全删除文件的命令行工具。
srm filename sfill /a 用随机数填充空闲或者可用的空间,保证没有可恢复的文件或文件夹
|
![红队 win&linux 日志系统与清除 红队 win&linux 日志系统与清除]()
smem用于清理在内存中的内容,提供安全地内存清理:
SSH隐身登录
-T表示不分配伪终端,/usr/bin/bash -i 表示在登录后调用bash命令 -i 表示是交互式shel,这样登陆将不会在w/last命令结果中显示.
但是会被lsof -i:22 和 ps |grep ssh 等命令发现
![红队 win&linux 日志系统与清除 红队 win&linux 日志系统与清除]()
原文地址:https://www.const27.com/
原文始发于微信公众号(LemonSec):红队 win&linux 日志系统与清除
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/1444122.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论