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

這個工具也可以暫停日志線程停止日志記錄,同時也可以恢復日志線程。但是更重要的是它可以刪除單挑日志記錄

官方描述

  1. EventCleaner closehandle 解除 security.evtx的文件占坑
  2. EventCleaner 100 刪除ID為100的日志(必須在之前使用EventCleaner closehandle)
  3. EventCleaner suspend 暫停日志線程,停止日志記錄
  4. do anything without worrying about logs
  5. EventCleaner normal 恢復日志線程
  6. 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 等命令發現