Linux下的後門和日誌工具(轉)
攻入Linux系統後,很多入侵者往往就開始得意忘形了。這其中還有一個原因,就是技術性也要求更高了。下面,我們來看看一些常用的經典工具。
1、從這裡延伸:後門和連線工具
(1)Httptunnel
Tunnel的意思是隧道,通常HTTPTunnel被稱之為HTTP暗道,它的原理就是將資料偽裝成HTTP的資料形式來穿過防火牆,實際上,它是在HTTP請求中建立了一個雙向的虛擬資料連線來穿透防火牆。說得簡單點,就是說在防火牆兩邊都設立一個轉換程式,將原來需要傳送或接受的資料包封裝成HTTP請求的格式騙過防火牆,所以它不需要別的代理伺服器而直接穿透防火牆。
HTTPTunnel包括兩個程式:htc和hts,其中htc是客戶端,而hts是伺服器端,我們現在來看看我是如何用它們的。比如開了FTP的機器的IP是192.168.10.231,本地機器IP是192.168.10.226,因為防火牆的原因,本地機器無法連線到FTP上。怎麼辦?現在就可以考慮使用HTTPTunnel了。過程如下:
第一步:在本地機器上啟動HTTPTunnel客戶端。用Netstat看一下本機現在開放的埠,會發現8888埠已在偵聽。
第二步:在對方機器上啟動HTTPTunnel的伺服器端,並執行命令“hts -f localhost:21 80”,這個命令的意思是說,把本機的21埠發出去的資料全部透過80埠中轉一下,並且開放80埠作為偵聽埠,再用Neststat看一下他的機器,就會發現80埠現在也在偵聽狀態。
第三步:在本地機器上用FTP連線本機的8888埠,會發現已經連上對方的機器了。那麼,為什麼人家看到的是127.0.0.1,而不是192.168.10.231呢?因為我們現在是連線本機的8888埠,防火牆肯定不會有反應,如果沒往外發包,區域網的防火牆肯定就不知道了。現在連線上本機的8888埠以後,FTP的資料包不管是控制資訊還是資料資訊,都被htc偽裝成HTTP資料包然後發過去,在防火牆看來,這都是正常資料,相當於欺騙了防火牆。
需要說明的是,這一招的使用需要其他機器的配合,就是說要在他的機器上啟動一個hts,把他所提供的服務,如FTP等重定向到防火牆所允許的80埠上,這樣才可以成功繞過防火牆!肯定有人會問,如果對方的機器上本身就有WWW服務,也就是說他的80埠在偵聽,這麼做會不會衝突?HTTPTunnel的優點就在於,即使他的機器以前80埠開著,現在也不會出現什麼問題,重定向的隧道服務將暢通無阻!
(2)Tcp_wrapper
Tcp_wrapper是Wietse Venema開發的一個免費軟體。Tcp_wrapper的誕生有個小小的故事,大約1990年,作者所在大學的伺服器屢屢受到一個外來駭客侵入,因為受害主機的硬碟資料屢次被rm -rf/命令整個抹掉,所以找尋線索極為困難,直到有一天晚上作者在工作的過程中無意中發現這個駭客在不斷的finger 受害主機、偷窺受害者的工作。於是,一個想法誕生了:設計一個軟體,使它可以截獲發起finger請求的IP,使用者名稱等資料。Venema很快投入了工作,而Tcp_wrapper也由此誕生!此後,Tcp_wrapper隨著廣泛的應用逐漸成為一種標準的安全工具。透過它,管理員實現了對inetd提供的各種服務進行監控和過濾。
Tcp_wrapper編譯安裝成功後,會生成一個tcpd程式,它可以在inetd.conf這個控制檔案中取代in.telnetd的位置,這樣,每當有telnet的連線請求時,tcpd即會截獲請求,先讀取管理員所設定的訪問控制檔案,合乎要求,則會把這次連線原封不動的轉給真正的in.telnetd程式,由in.telnetd完成後續工作。如果這次連線發起的ip不符合訪問控制檔案中的設定,則會中斷連線請求,拒絕提供telnet服務。Tcp_wrapper訪問控制的實現是依靠兩個檔案:hosts.allow,hosts.deny來實現的。如果我們編輯/etc/syslog.conf檔案時,加入了日誌紀錄功能,即:
#tcp wrapper log
local3.info /var/log/tcplog
編輯結束後,儲存檔案,在/var/log下會生成tcplog檔案,注意這個檔案的讀寫屬性, 應該只對root有讀寫許可權。然後ps -ef | grep syslogd,找出syslogd的程式號,kill -HUP 重啟syslogd程式使改動生效。 在這裡,我們可以預先看一看以後生成的tcplog檔案內容,如下:
Jul 31 22:00:52 in.telnetd[4365]: connect from 10.68.32.1
Jul 31 22:02:10 in.telnetd[4389]: connect from 10.68.32.5
Jul 31 22:04:58 in.ftpd[4429]: connect from 10.68.32.3
Aug 2 02:11:07 in.rshd[13660]: connect from 10.68.32.5
Aug 2 02:11:07 in.rlogind[13659]: connect from 10.68.32.1
從上面我們可以看到,在安裝了Tcp_wrapper的主機上,系統的每一次連線,Tcp_wrapper都做了紀錄,它的內容包括時間、服務、狀態、ip等,對攻擊這有很大的參考價值,不過,一定要記得清除日誌了。
(3)rootkit工具:LRK
Rootkit出現於二十世紀90年代初,它是攻擊者用來隱藏自己的蹤跡和保留root訪問許可權的工具。通常,攻擊者透過遠端攻擊或者密碼猜測獲得系統的訪問許可權。接著,攻擊者會在侵入的主機中安裝rootkit,然後他會透過rootkit的後門檢查系統,看是否有其他的使用者登入,如果只有自己,攻擊者就開始著手清理日誌中的有關資訊。透過rootkit的嗅探器獲得其它系統的使用者和密碼之後,攻擊者就會利用這些資訊侵入其它的系統。
如果攻擊者能夠正確地安裝rootkit併合理地清理了日誌檔案,系統管理員就會很難察覺系統已經被侵入,直到某一天其它系統的管理員和他聯絡或者嗅探器的日誌把磁碟全部填滿,他才會察覺已經大禍臨頭了。不過,在系統恢復和清理過程中,大多數常用的命令例如ps、df和ls已經不可信了。許多rootkit中有一個叫做FIX的程式,在安裝rootkit之前,攻擊者可以首先使用這個程式做一個系統二進位制程式碼的快照,然後再安裝替代程式。FIX能夠根據原來的程式偽造替代程式的三個時間戳(atime、ctime、mtime)、date、permission、所屬使用者和所屬使用者組。如果攻擊者能夠準確地使用這些優秀的應用程式,並且在安裝rootkit時行為謹慎,就會讓系統管理員很難發現。
下面我們介紹一個非常典型的針對Linux系統的LRK版本6。Linux Rootkit 6是一個開放原始碼的rootkit,經過多年的發展,Linux Rootkit的功能越來越完善,具有的特徵也越來越多。下面我們簡單地介紹一下Linux Rootkit包含的各種工具。
首先是隱藏入侵者行蹤的程式。為了隱藏入侵者的行蹤,Linux Rootkit IV的作者可謂煞費心機,編寫了許多系統命令的替代程式,使用這些程式代替原由的系統命令,來隱藏入侵者的行蹤。這些程式包括:
ls、find、du | 這些程式會阻止顯示入侵者的檔案以及計算入侵者檔案佔用的空間。在編譯之前,入侵者可以透過ROOTKIT_FILES_FILE設定自己的檔案所處的位置,預設是/dev/ptyr。注意如果在編譯時使用了SHOWFLAG選項,就可以使用ls -/命令列出所有的檔案。這幾個程式還能夠自動隱藏所有名字為:ptyr、hack.dir和W4r3z的檔案。 |
ps、top、pidof | 這幾個程式用來隱藏所有和入侵者相關的程式。 |
netstat | 隱藏出/入指定IP地址或者埠的網路資料流量程。 |
killall | 不會殺死被入侵者隱藏的程式。 |
ifconfig | 如果入侵者啟動了嗅探器,這個程式就阻止PROMISC標記的顯示,使系統管理員難以發現網路介面已經處於混雜模式下。 |
crontab | 隱藏有關攻擊者的crontab條目。 |
tcpd | 阻止向日志中記錄某些連線。 |
syslogd | 過濾掉日誌中的某些連線資訊。 |
其次是後門程式。木馬程式可以為本地使用者提供後門;木馬網路監控程式則可以為遠端使用者提供inetd、rsh、ssh等後門服務,具體因版本而異。隨著版本的升級,Linux Rootkit IV的功能也越來越強大,特徵也越來越豐富。一般包括如下網路服務程式:
chfn | 提升本地普通使用者許可權的程式。執行chfn,在它提示輸入新的使用者名稱時,如果使用者輸入rookit密碼,他的許可權就被提升為root。 |
chsh | 提升本地使用者許可權的程式。執行chsh,在它提示輸入新的shell時,如果使用者輸入rootkit密碼,他的許可權就被提升為root。 |
passwd | 和上面兩個程式的作用相同。在提示你輸入新密碼時,如果輸入rookit密碼,許可權就可以變成root。 |
login | 允許使用任何帳戶透過rootkit密碼登入。如果使用root帳戶登入被拒絕,可以嘗試一下rewt。當使用後門時,這個程式還能夠禁止記錄命令的歷史記錄。 |
inetd | 特洛伊inetd程式,為攻擊者提供遠端訪問服務。 |
rshd | 為攻擊者提供遠端shell服務。攻擊者使用rsh -l rootkitpassword host command命令就可以啟動一個遠端root shell。 |
sshd | 為攻擊者提供ssh服務的後門程式。 |
再就是工具程式。所有不屬於以上型別的程式都可以歸如這個型別,它們實現一些諸如:日誌清理、報文嗅探以及遠端shell的埠繫結等功能,包括:
fix | 檔案屬性偽造程式。 |
linsniffer | 報文嗅探器程式。 |
sniffchk | 一個簡單的bash shell指令碼,檢查系統中是否正有一個嗅探器在執行。 |
login | 允許使用任何帳戶透過rootkit密碼登入。如果使用root帳戶登入被拒絕,可以嘗試一下rewt。當使用後門時,這個程式還能夠禁止記錄命令的歷史記錄。 |
z2 | utmp/wtmp/lastlog日誌清理工具。可以刪除utmp/wtmp/lastlog日誌檔案中有關某個使用者名稱的所有條目。不過,如果用於Linux系統需要手工修改其原始碼,設定日誌檔案的位置。 |
bindshell | 在某個埠上繫結shell服務,預設埠是12497。為遠端攻擊者提供shell服務。 |
(4)netcat
這是一個簡單而有用的工具,能夠透過使用TCP或UDP協議的網路連線去讀寫資料。它被設計成一個穩定的後門工具,能夠直接由其它程式和指令碼輕鬆驅動。同時,它也是一個功能強大的網路除錯和探測工具,能夠建立你需要的幾乎所有型別的網路連線,還有幾個很有意思的內建功能。
2、查詢Linux下的蛛絲馬跡:日誌工具
對於高明的攻擊者來說,進入系統後,還應瞭解自己的“蛛絲馬跡”並清除這些痕跡,自然就要了解一些日誌工具了。
(1)logcheck
logchek 可以自動地檢查日誌檔案,定期檢查日誌檔案以發現違反安全規則以及異常的活動。它先把正常的日誌資訊剔除掉,把一些有問題的日誌保留下來,然後把這些資訊 email 給系統管理員。logcheck 用 logtail 程式記住上次已經讀過的日誌檔案的位置,然後從這個位置開始處理新的日誌資訊。logcheck 主要由下面幾個主要的檔案:
logcheck.sh | 可執行的指令碼檔案,記錄logcheck檢查那些日誌檔案等,我們可以把它加入crontab中定時執行。 |
logcheck.hacking | 是logcheck 檢查的模式檔案。和下面的檔案一起,按從上到下的順序執行。這個檔案表明了入侵活動的模式。 |
logcheck.violations | 這個檔案表示有問題,違背常理的活動的模式。優先順序小於上面的那個模式檔案。 |
logcheck.violations
.ignore |
這個檔案和上面的logcheck.violations的優先是相對的,是我們所不關心的問題的模式檔案。 |
logcheck.ignore | 這是檢查的最後一個模式檔案。如果沒有和前三個模式檔案匹配,也沒有匹配這個模式檔案的話,則輸出到報告中。 |
Logtail | 記錄日誌檔案資訊。 |
Logcheck首次執行時讀入相關的日誌檔案的所有內容,Logtail會在日誌檔案的目錄下為每個關心的日誌檔案建立一個logfile.offset 的偏移量檔案,以便於下次檢查時從這個偏移量開始檢查。Logcheck執行時,將未被忽略的內容透過郵件的形式傳送給 logcheck.sh 中 系統管理員指定的使用者。
(2)logrotate
一般Linux 發行版中都自帶這個工具。它可以自動使日誌迴圈,刪除儲存最久的日誌,它的配置檔案是 /etc/logrotate.conf,我們可以在這個檔案中設定日誌的迴圈週期、日誌的備份數目以及如何備份日誌等等。在/etc/logrotate.d目錄下,包括一些工具的日誌迴圈設定檔案,如syslog等,在這些檔案中指定了如何根據/etc/logrotate.conf做日誌迴圈,也可以在這裡面新增其他的檔案以迴圈其他服務的日誌。
(3)swatch
swatch 是一個實時的日誌監控工具,我們可以設定感興趣的事件。Swatch 有兩種執行方式:一種可以在檢查日誌完畢退出,另一種可以連續監視日誌中的新資訊。Swatch提供了許多通知方式,包括email、振鈴、終端輸出、多種顏色等等。安裝前,必須確保系統支援perl。swatch 軟體的重點是配置檔案swatchmessage,這個文字檔案告訴 swatch 需要監視什麼日誌,需要尋找什麼觸發器,和當觸發時所要執行的動作。當swatch發現與swatchmessage中定義的觸發器正規表示式相符時,它將執行在 swatchrc中定義的通知程式。
當然,上面所介紹的軟體只是Linux大海中的幾隻美麗的貝殼,隨著越來越多的使用者加入到Linux大軍中,我們相信,優秀的Hack也將越來越多,這反過來也將促進Linux作業系統逐步走向成熟,我們拭目以待。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-939763/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- UNIX系統後門的安放和日誌的擦除(轉)
- Linux下的重要日誌Linux
- linux 下 squid 安裝日誌 (轉)LinuxUI
- 在Linux中,有哪些日誌管理和分析工具?Linux
- 日誌記錄 PHP下往linux目錄下寫日誌PHPLinux
- linux日誌管理(三)(轉)Linux
- Windows 下 tail 檢視日誌命令工具WindowsAI
- Linux日誌管理詳解(轉)Linux
- HP日誌收集工具和收集方法
- 有什麼適合postfix的日誌分析工具(轉)
- Linux系統中五款好用的日誌分析工具Linux
- Linux中常見的日誌檔案和命令Linux
- linux下用cronolog分割apache日誌LinuxApache
- Linux如何檢視日誌最後幾行?Linux
- linux 小工具之:日誌切割(logrotate)Linuxlogrotate
- Linux日誌Linux
- Linux下玩轉nginx系列(三)---nginx日誌配置檔案說明LinuxNginx
- RHEL 6.5 搭建Rsyslog日誌伺服器和Loganalyzer日誌分析工具伺服器
- Sql server日誌損壞後的資料恢復(轉)SQLServer資料恢復
- 檢查Linux系統日誌error和mysql錯誤日誌的指令碼薦LinuxErrorMySql指令碼
- Apche日誌系列(4):日誌分析(轉)
- Unity——日誌列印工具Unity
- oracle 日誌收集工具Oracle
- Log 工具列印日誌
- 紅帽Linux下的影子工具(轉)Linux
- Windows 到 Linux 之旅:第 5 部分. Linux 日誌(轉)WindowsLinux
- Linux下日誌檔案過大解決方案Linux
- Linux下tomcat實時日誌檢視LinuxTomcat
- Linux 下 logrotate 日誌輪詢操作梳理Linuxlogrotate
- linux的日誌檔案Linux
- linux檔案系統和日誌分析Linux
- Apche日誌系列(1):訪問日誌(轉)
- Apche日誌系列(2):錯誤日誌(轉)
- Apche日誌系列(3):定製日誌(轉)
- Linux下的網路協議分析工具-tcpdump 快速入門手冊(轉)Linux協議TCP
- 刪除oracle下apache下的日誌OracleApache
- linux日誌管理Linux
- Apach的配置和日誌