Linux下查詢漏洞的幾種必備工具

cnbird發表於2009-01-19

 Linux操作系統是一個開放原始碼的免費作業系統,它不僅安全、穩定、成本低,而且很少發現有病毒傳播,因此,Linux作業系統一直被認為是微軟 Windows系統的勁敵。近年來,隨著Linux作業系統在我國的不斷普及,隨著越來越多的伺服器、工作站和個人電腦開始使用Linux軟體,當然,越來越多的安全發燒友也開始對這個作業系統發生了濃厚的興趣。本文的目的是希望使用者以最快的速度對Linux下的精品Hack軟體功能及使用方法有一個比較細緻全面的瞭解。今天我們先了解尋找肉雞的N種兵器。

  漏洞掃描器是一種自動檢測遠端或本地主機安全性弱點的程式。和Windows系統一樣,當黑客得到目標主機的清單後,他就可以用一些 Linux 掃描器程式尋找這些主機的漏洞。這樣,攻擊者可以發現伺服器的各種TCP埠的分配、提供的服務、Web服務軟體版本和這些服務及安全漏洞。而對系統管理員來說,如果能夠及時發現並阻止這些行為,也可以大大減少入侵事件的發生率。按常規標準,可以將漏洞掃描器分為兩種型別:主機漏洞掃描器(Host Scanner)和網路漏洞掃描器(Network Scanner)。主機漏洞掃描器是指在系統本地執行檢測系統漏洞的程式;網路漏洞掃描器則是指基於Internet遠端檢測目標網路和主機系統漏洞的程式,下面,我們選取一些典型的軟體及例項進行介紹

  1、基於主機的實用掃描軟體

  (1) sXid

  sXid是一個系統監控程式,軟體下載後,使用“make install”命令即可安裝。它可以掃描系統中suid和sgid檔案和目錄,因為這些目錄很可能是後門程式,並可以設定通過電子郵件來報告結果。預設安裝的配置檔案為/etc/sxid.conf,這個檔案的註釋很容易看懂,它定義了sxid 的工作方式、日誌檔案的迴圈次數等;日誌檔案預設為/var/log/sxid.log。出於安全方面的考慮,我們可以在配置引數後把sxid.conf 設定為不可改變,使用 chattr 命令把sxid.log檔案設定為只可新增。此外,我們還可以隨時用sxid -k加上 -k 選項來進行檢查,這種檢查方式很靈活,既不記入日誌,也不發出 email。

  (2)LSAT

  Linux Security Auditing Tool (LSAT) 是一款本地安全掃描程式,發現預設配置不安全時,它可以生成報告。LSAT由Triode開發,主要針對基於RPM的Linux釋出設計的。軟體下載後,進行如下編譯

cndes$ tar xzvf last-VERSION.tgz

cndes$ cd lsat-VERSION

cndes$ ./configure

cndes$ make

  然後以root身份執行:root# ./lsat。預設情況下,它會生成一份名字叫lsat.out的報告。也可以指定一些選項:

-o filename 指定生成報告的檔名

-v 詳細輸出模式

-s 不在螢幕上列印任何資訊,只生成報告。

-r 執行RPM校驗和檢查,找出預設內容和許可權被改動的檔案

  LSAT可以檢查的內容很多,主要有:檢查無用的RPM安裝;檢查inetd和Xinetd和一些系統配置檔案;檢查SUID和SGID檔案;檢查777的檔案;檢查程式和服務;開放埠等。LSAT的常用方法是用cron定期呼叫,然後用diff比較當前報告和以前報告的區別,就可以發現系統配置發生的變化。下面是一個測試中的報告片斷:

****************************************

This is a list of SUID files on the system:

/bin/ping

/bin/mount

/bin/umount

/bin/su

/sbin/pam_timestamp_check

/sbin/pwdb_chkpwd

/sbin/unix_chkpwd

****************************************

This is a list of SGID files/directories on the system:

/root/sendmail.bak

/root/mta.bak

/sbin/netreport

****************************************

List of normal files in /dev. MAKEDEV is ok, but there

should be no other files:

/dev/MAKEDEV

/dev/MAKEDEV.afa

****************************************

This is a list of world writable files

/etc/cron.daily/backup.sh

/etc/cron.daily/update_CDV.sh

/etc/megamonitor/monitor

/root/e

/root/pl/outfile
(3)GNU Tiger

  這是掃描軟體可以檢測本機安全性,源自TAMU的Tiger(一個老牌掃描軟體)。Tiger程式可以檢查的專案有:系統配置錯誤;不安全的許可權設定;所有使用者可寫的檔案;SUID和SGID檔案;Crontab條目;Sendmail和ftp設定;脆弱的口令或者空口令;系統檔案的改動。另外,它還能暴露各種弱點併產生詳細報告。

  (4)Nabou

  Nabou是一個可以用來監視系統變化的Perl 程式,它提供檔案完整性和使用者賬號等檢查,並將所有資料儲存在資料庫裡。此外,使用者也可以在配置檔案中嵌入Perl程式碼來定義自己的函式,執行自定義測試,操作其實十分方便。

  (5)COPS

  COPS是可以報告系統的配置錯誤以及其他資訊,對linux系統進行安全檢查。其檢測目標有:檔案、目錄和裝置檔案的許可權檢查;重要系統檔案的內容、格式和許可權;是否存在所有者為root的SUID 檔案;對重要系統二進位制檔案進行CRC校驗和檢查,看其是否被修改過;對匿名FTP、Sendmai等網路應用進行檢查。需要指出的是,COPS只是監測工具,並不做實際的修復。這個軟體比較適合配合其他工具使用,其優點在於比較擅長找到潛在的漏洞。

 (6)strobe

  Strobe是一個TCP埠掃描器,它可以記錄指定的機器的所有開放埠,執行速度非常快。它最初用於掃描區域網中公開的電子郵件,從而得到郵件使用者資訊。Strobe的另一個重要特點是它能快速識別指定機器上正在執行什麼服務,不足之處是這類資訊量比較有限。

  (7)SATAN

  SATAN可以用來幫助系統管理員檢測安全,也能被基於網路的攻擊者用來搜尋脆弱的系統。SATAN是為系統和管理員設計的一個安全工具。然而,由於它的廣泛性,易用性和掃描遠端網路的能力,SATAN也可能因為好奇而被用來定位有弱點的主機。SATAN包括一個有關網路安全問題的檢測表,經過網路查詢特定的系統或者子網,並報告它的發現。它能搜尋以下的弱點:

NFS——由無許可權的程式或埠匯出。

NIS-——口令檔案訪問。

Rexd——是否被防火牆阻止。

Sendmail——各種弱點。

ftp——ftp、wu-ftpd或tftp配置問題。

遠端Shell的訪問——它是否被禁止或者隱藏。

X windows——主機是否提供無限制的訪問。

Modem——經過tcp沒有限制撥號訪問。

  (8)IdentTCPscan

IdentTCPscan是一個比較專業的掃描器,可以在各種平臺上執行。軟體加入了識別指定TCP埠程式的所有者的功能,也就是說,它能測定該程式的UID。這個程式具有很重要的功能就是通過發現程式的UID,很快識別出錯誤配置。它的執行速度非常快,可以稱得上是入侵者的寵物,是一個強大、銳利的工具。
 2、基於網路的實用掃描工具

  (1)Nmap

  Nmap即Network Mapper,它是在免費軟體基金會的GNU General Public License (GPL)下發布的。其基本功能有:探測一組主機是否線上;掃描主機埠,嗅探提供的網路服務;判斷主機的作業系統。軟體下載後,執行 configure、make和make install三個命令,將nmap二進位制碼安裝到系統上,就可以執行nmap了。

  Nmap的語法很簡單,但功能十分強大。比如:Ping-scan命令就是“-sP”,在確定了目標主機和網路之後,即可進行掃描。如果以 root來執行Nmap,Nmap的功能會更加增強,因為超級使用者可以建立便於Nmap利用的定製資料包。使用Nmap進行單機掃描或是整個網路的掃描很簡單,只要將帶有“/mask”的目標地址指定給Nmap即可。另外,Nmap允許使用各類指定的網路地址,比如192.168.100.*,是對所選子網下的主機進行掃描。

  Ping掃描。入侵者使用Nmap掃描整個網路尋找目標。通過使用“-sP”命令,預設情況下,Nmap給每個掃描到的主機傳送一個ICMP echo和一個TCP ACK,主機對任何一種的響應都會被Nmap得到。

  Nmap支援不同類別的埠掃描,TCP連線掃描可以使用“-sT”命令。

  隱蔽掃描(Stealth Scanning) 。在掃描時,如果攻擊者不想使其資訊被記錄在目標系統日誌上,TCP SYN掃描可幫你的忙。使用“-sS”命令,就可以傳送一個SYN掃描探測主機或網路。

  如果一個攻擊者想進行UDP掃描,即可知哪些埠對UDP是開放的。Nmap將傳送一個O位元組的UDP包到每個埠。如果主機返回埠不可達,則表示埠是關閉的。

  Ident掃描。攻擊者都喜歡尋找一臺對於某些程式存在漏洞的電腦,比如一個以root執行的WEB伺服器。如果目標機執行了identd,攻擊者就可以通過“-I”選項的TCP連線發現哪個使用者擁有http守護程式。我們以掃描一個Linux WEB伺服器為例,使用如下命令即可:

  # nmap -sT -p 80 -I -O www.yourserver.com

  除了以上這些掃描,Nmap還提供了很多選項,這是很多Linux攻擊者的必備法寶之一,通過這個軟體,我們就可以對系統瞭如指掌,從而為下面的攻擊打下良好的基礎。

  (2)p0f

  p0f對於網路攻擊非常有用,它利用SYN資料包實現作業系統被動檢測技術,能夠正確地識別目標系統型別。和其他掃描軟體不同,它不向目標系統傳送任何的資料,只是被動地接受來自目標系統的資料進行分析。因此,一個很大的優點是:幾乎無法被檢測到,而且p0f是專門系統識別工具,其指紋資料庫非常詳盡,更新也比較快,特別適合於安裝在閘道器中。軟體下載後,執行如下命令編譯並安裝p0f:

#tar zxvf p0f-1.8.2.tgz

#make&& make install

  p0f的使用非常簡單,使用如下命令可以在系統啟動時,自動啟動p0f進行系統識別:
  
#cp p0f.init /etc/init.d/p0f

#chkconfig p0f on

  然後,每隔一段時間對p0f的日誌進行分析即可。為了便於使用,p0f軟體包提供了一個簡單的分析指令碼p0frep,通過它,攻擊者可以很方便找到執行某類系統的遠端主機地址。P0f還可以檢測如下內容:防火牆的存在或偽裝;到遠端系統的距離以及它啟動的時間;其他網路連線以及ISP。

  (3)ISS

  ISS Internet Scanner是全球網路安全市場的頂尖產品,通過對網路安全弱點全面和自主地檢測與分析並檢查它們的弱點,將風險分為高中低三個等級,並且可以生成大範圍的有意義的報表。現在,這個軟體的收費版本提供了更多的攻擊方式,並逐漸朝著商業化的方向發展。
(4)Nessus

  Nessus是一款功能強大的遠端安全掃描器,它具有強大的報告輸出能力,可以產生HTML、XML、LaTeX和ASCII文字等格式的安全報告,並能為每個安全問題提出建議。軟體系統為client/sever模式,伺服器端負責進行安全檢查,客戶端用來配置管理伺服器端。在服務端還採用了 plug-in的體系,允許使用者加入執行特定功能的外掛,可以進行更快速和更復雜的安全檢查。除了外掛外,Nessus還為使用者提供了描述攻擊型別的指令碼語言,來進行附加的安全測試。

  軟體下載後,解壓並完成安裝。安裝完畢,確認在/etc/ld.so.conf檔案加入安裝已安裝庫檔案的路徑: /usr/local/lib。如果沒有,只需在該檔案中加入這個路徑,然後執行ldconfig,這樣Nessus在執行時就可以找到執行庫了。 Nessus的配置檔案為Nessusd.conf,位於/usr/local/etc/Nessus/目錄下。一般情況下,不建議改動其中的內容。注意,使用時要建立一個nessusd 帳號,以便將來登陸掃描時使用。完成上面的準備工作後,以root使用者的身份用下面的命令啟動服務端:Nessusd –d。

  在客戶端,使用者可以指定執行Nessus服務的機器、使用的埠掃描器及測試的內容及測試的ip地址範圍。Nessus本身是工作在多執行緒基礎上的,所以使用者還可以設定系統同時工作的執行緒數。這樣使用者在遠端就可以設定Nessus的工作配置了。設定完畢,點選start就可以開始進行掃描。當掃描結束後,會生成報表,視窗的左邊列出了所有被掃描的主機,只要用滑鼠點選主機名稱,在視窗右邊就列出了經掃描發現的該主機的安全漏洞。再單擊安全漏洞的小圖示,會列出該問題的嚴重等級及問題的產生原因及解決方法。

  (5)Nikto

  Nikto是一款能對web伺服器多種安全專案進行測試的掃描軟體,能在200多種伺服器上掃描出2000多種有潛在危險的檔案、CGI及其他問題。它也使用Whiske庫,但通常比Whisker更新的更為頻繁。

  (6)Whisker

  Whisker是一款非常好的HTTP伺服器缺陷掃描軟體,能掃描出大量的已知安全漏洞,特別是些危險的CGI漏洞,它使用perl編寫程式庫,我們可以通過它建立自己HTTP掃描器。

  (7)Xprobe

  XProbe是一款主動作業系統指紋識別工具,它可以測定遠端主機作業系統的型別。XProbe依靠與一個簽名資料庫的模糊匹配以及合理的推測來確定遠端作業系統的型別,利用ICMP協議進行作業系統指紋識別是它的獨到之處。使用時,它假設某個埠沒有被使用,它會向目標主機的較高階口傳送 UDP包,目標主機就會回應ICMP包,然後,XProbe會傳送其他的包來分辨目標主機系統,有了這個軟體,判斷對方的作業系統就很容易了。


相關文章