1. 程式人生 > 實用技巧 >Linux 入侵痕跡清理技巧

Linux 入侵痕跡清理技巧

在攻擊結束後,如何不留痕跡的清除日誌和操作記錄,以掩蓋入侵蹤跡,這其實是一個細緻的技術活。你所做的每一個操作,都要被抹掉;你所上傳的工具,都應該被安全地刪掉。

01、清除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

第三種方式:

通過修改配置檔案/etc/profile,使系統不再儲存命令記錄。

HISTSIZE=0

第四種方式:

登入後執行下面命令,不記錄歷史命令(.bash_history)

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

02、清除系統日誌痕跡

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

03、清除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/

04、檔案安全刪除工具

(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

05、隱藏遠端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