Ubuntu 安全檢查

Ubuntu 安全檢查(後門檢測)
3個程序:

chkrootkit	可以掃描rootkits
rkhunter	可以掃描rootkit backdoor sniffer exploit
unhide		可以發現隱藏的進程和端口

1) chkrootkit的使用
chkrootkit是Check Rootkit的簡稱,可以檢測到60多種常見的rootkit、蠕蟲和LKM(Linux Kernel Module)等有害程序,列表:http://www.chkrootkit.org。

安裝:

1
apt-get install chkrootkit

參數:

-l			顯示可用的掃描對象
-d			調試
-q			安靜模式
-x			專家模式
-r dir			將dir所指定的目錄作爲root目錄
-p dir1:dir2:dirN	指定掃描過程中要使用的程序的路徑
-n			不掃描掛載的NFS分區

用法:

1
2
3
4
5
6
7
8
9
10
11
#檢查ps ls 和cron命令是否被感染
sudo chkrootkit ps ls cron
 
#如果不指定掃描對象,就會掃描所有對象
sudo chkrootkit
 
#加上-q選項後就進入安靜模式,只有被感染的才顯示
sudo chkrootkit –q
 
#如果使用-x選項,程序會調用/usr/bin/strings將掃描對象中所有可疑字符串打印處理
sudo chkrootkit –x su | less

chkrootkit在運行過程中,會調用系統中的awk cut egrep find head id ls netstat ps strings sed uname等命令。如果擔心這些命令已經被感染,那麼可以使用-p選項指定這些程序的路徑。可以把這些/bin /sbin /usr/bin等目錄放到一個ISO文件中(只讀),然後mount這個iso文件。
然後:

1
sudo chkrootkit –p /cdrom/bin:/cdroom/sbin:/cdrom/usr/bin

最好的檢查方法,則是從一臺確認安全的機器上,將被入侵的機器的文件系統掛載過來,使用-r選項指定root目錄:

1
sudo chkrotkit –r /mnt/hdisk

2) rkhunter的使用
rkhunter是Rootkit Hunter的簡稱,可以檢查幾十種rootkits、backdoors、LKMs、worms,使用rkhunter的—list子命令可以顯示。

安裝
rkhunter依賴MTA(郵件傳輸代理)服務器,選擇postfix(看起來,如果不需要發送郵件,應該不需要安裝):

1
apt-get install rkhunter postfix mailutils

安裝完成後,先對其數據進行更新,相當是獲取最新病毒庫:

1
sudo rkhunter --update

配置
rkhunter的配置文件位於/etc/rkhunter.conf,和chkrootkit相同,rkhunter也可以指定外部命令的路徑。可以通過修改配置文件來指定。配置文件有一項BINDIR,可以將該項修改爲掛載在iso上的路徑:

1
BINDIR=”/cdrom/bin /cdrom/usr/bin /cderom/sbin /cdrom/usr/sbin

如果要查看rkhunter都支持哪些掃描項目:

1
sudo rkhunter --list

要用rkhunter進行檢查,使用-c或者—check即可

1
2
3
4
5
6
7
8
9
sudo rkhunter –c
 
##檢查完畢後提示
The system checks took: 1 minute and 18 seconds
 
All results have been written to the log file (/var/log/rkhunter.log)
 
One or more warnings have been found while checking the system.
Please check the log file (/var/log/rkhunter.log)

可以通過/var/log/rkhunter.log查看掃描結果。

rkhunter在安裝時創建了一個cron任務/etc/cron.daily/rkhunter,每天執行一次。

1
2
3
4
5
6
7
8
9
10
11
12
13
cat /etc/cron.daily/rkhunter
#!/bin/sh
 
RKHUNTER=/usr/bin/rkhunter
 
test -x $RKHUNTER || exit 0
 
# source our config
. /etc/default/rkhunter
#####省略
#nice調整進程調度優先級, 然後就運行/usr/bin/rkhunter,我們可以提取這行命令出來手動運行(/usr/bin/rkhunter  --cronjob --report-warnings-only –appendlog > rk.log )
/usr/bin/nice -n $NICE $RKHUNTER --cronjob --report-warnings-only --appendlog > $OUTFILE
#####省略

可以看到,該任務會調用rkhunter的另外一個配置文件/etc/default/rkhunter(. /etc/default/rkhunter),查看該配置文件(這個配置文件只是跟定製是否發送郵件,是否更新病毒庫有關,跟rkhunter運行沒有關係):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
cat /etc/default/rkhunter
# Defaults for rkhunter automatic tasks
# sourced by /etc/cron.*/rkhunter and /etc/apt/apt.conf.d/90rkhunter
#
# This is a POSIX shell fragment
#
 
# Set this to yes to enable rkhunter daily runs 是否每天運行一次,默認爲true
# (default: true)
CRON_DAILY_RUN=""
 
# Set this to yes to enable rkhunter weekly database updates 每週更新數據庫(病毒庫),默認爲true
# (default: true)
CRON_DB_UPDATE=""
 
# Set this to yes to enable reports of weekly database updates 每週更新病毒庫後發送報告(默認不發送)
# (default: false)
DB_UPDATE_EMAIL="false"
 
# Set this to the email address where reports and run output should be sent(發送給那個地址,寫上email地址)
# (default: root)
REPORT_EMAIL="[email protected]"
 
# Set this to yes to enable automatic database updates 開啓自動更新,默認爲false
# (default: false)
APT_AUTOGEN="false"
 
# Nicenesses range from -20 (most favorable scheduling) to 19 (least favorable)
# (default: 0)
NICE="0"
 
# Should daily check be run when running on battery
# powermgmt-base is required to detect if running on battery or on AC power
# (default: false)
RUN_CHECK_ON_BATTERY="false"

3) unhide的使用
unhide也是一個Rootkit診斷工具,它的功能側重於檢測隱藏的進程和TCP/UDP端口。

1
2
3
4
5
6
7
8
sudo apt-get install unhide
 
##查看安裝文件
dpkg -L unhide
 
/usr/sbin/unhide
/usr/sbin/unhide-tcp
/usr/share/*

安裝完成後有兩個工具,unhide 和 unhide-tcp。

檢測原理
unhide使用3種方法進行檢查(檢查進程),分別是:

>proc		將/proc中的進程和/bin/ps的結果相對比
>sys		將系統調用和/bin/ps的結果相對比
>brute		整個PIDs空間(遍歷,逐個嘗試)

unhide-tcp使用遍歷的方法,掃描所有有效端口,找出那些正在監聽的、在/bin/netstat命令中看不到的隱藏端口。

檢查隱藏進程:

1
2
3
4
5
6
7
8
sudo unhide proc
 
#也可以使用sys方法來進行檢測
sudo unhide sys
顯示有隱藏進程,不過代表已經被入侵了。
 
#也可以使用brute方法進行監測
sudo unhide brute

監測隱藏的網絡端口

1
unhide-tcp
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章