現在個人防火牆開始流行起來,很多網友一旦看到報警就以為受到某種攻擊,其實大多數情況並非如此。文中,我們將詳細介紹防火牆的記錄(log)中能看到什麼,尤其是那些端口是什麼意思。你將能利用這些信息作出判斷:我是否受到了Hacker的攻擊?他/她到底想要干什麼?本文既適用於維護企業級防火牆的安全專家,又適用於使用個人防火牆的家庭用戶。
一) 通常對於防火牆的TCP/UDP端口掃描有哪些?
本節講述通常TCP/UDP端口掃描在防火牆記錄中的信息。記住:並不存在所謂ICMP端口。如果你對解讀ICMP數據感興趣,請參看本文的其它部分。
0 通常用於分析操作系統。這一方法能夠工作是因為在一些系統中“0”是無效端口,當你試圖使用一種通常的閉合端口連接它時將產生不同的結果。一種典型的掃描:使用IP地址為0.0.0.0,設置ACK位並在以太網層廣播。
1 tcpmux 這顯示有人在尋找SGI Irix機器。
Irix是實現tcpmux的主要提供者,缺省情況下tcpmux在這種系統中被打開。Iris機器在發布時含有幾個缺省的無密碼的帳戶,如lp, guest, uucp, nuucp, demos, tutor, diag, EZsetup, OutOfBox, 和4Dgifts。許多管理員安裝後忘記刪除這些帳戶。因此Hacker們在Internet上搜索tcpmux並利用這些帳戶。
7 Echo 你能看到許多人們搜索Fraggle放大器時,發送到x.x.x.0和x.x.x.255的信息。
常見的一種DoS攻擊是echo循環(echo-loop),攻擊者偽造從一個機器發送到另一個機器的UDP數據包,而兩個機器分別以它們最快的方式回應這些數據包。
另一種東西是由DoubleClick在詞端口建立的TCP連接。有一種產品叫做“Resonate Global Dispatch”,它與DNS的這一端口連接以確定最近的路由。
Harvest/squid cache將從3130端口發送UDP echo:“如果將cache的source_ping on選項打開,它將對原始主機的UDP echo端口回應一個HIT reply。”這將會產生許多這類數據包。
11 sysstat 這是一種UNIX服務,它會列出機器上所有正在運行的進程以及是什麼啟動了這些進程。這為入侵者提供了許多信息而威脅機器的安全,如暴露已知某些弱點或帳戶的程序。這與UNIX系統中“ps”命令的結果相似
再說一遍:ICMP沒有端口,ICMP port 11通常是ICMP type=11
19 chargen 這是一種僅僅發送字符的服務。UDP版本將會在收到UDP包後回應含有垃圾字符的包。TCP連接時,會發送含有垃圾字符的數據流知道連接關閉。Hacker利用IP欺騙可以發動DoS攻擊。偽造兩個chargen服務器之間的UDP包。由於服務器企圖回應兩個服務器之間的無限的往返數據通訊一個chargen和echo將導致服務器過載。同樣fraggle DoS攻擊向目標地址的這個端口廣播一個帶有偽造受害者IP的數據包,受害者為了回應這些數據而過載。
21 ftp 最常見的攻擊者用於尋找打開“anonymous”的ftp服務器的方法。這些服務器帶有可讀寫的目錄。Hackers或Crackers 利用這些服務器作為傳送warez (私有程序) 和pr0n(故意拼錯詞而避免被搜索引擎分類)的節點。
22 ssh PcAnywhere建立TCP和這一端口的連接可能是為了尋找ssh。這一服務有許多弱點。如果配置成特定的模式,許多使用RSAREF庫的版本有不少漏洞。(建議在其它端口運行ssh)
還應該注意的是ssh工具包帶有一個稱為make-ssh-known-hosts的程序。它會掃描整個域的ssh主機。你有時會被使用這一程序的人無意中掃描到。
UDP(而不是TCP)與另一端的5632端口相連意味著存在搜索pcAnywhere的掃描。5632(十六進制的0x1600)位交換後是0x0016(使進制的22)。
23 Telnet 入侵者在搜索遠程登陸UNIX的服務。大多數情況下入侵者掃描這一端口是為了找到機器運行的操作系統。此外使用其它技術,入侵者會找到密碼。
25 smtp 攻擊者(spammer)尋找SMTP服務器是為了傳遞他們的spam。入侵者的帳戶總被關閉,他們需要撥號連接到高帶寬的e-mail服務器上,將簡單的信息傳遞到不同的地址。SMTP服務器(尤其是sendmail)是進入系統的最常用方法之一,因為它們必須完整的暴露於Internet且郵件的路由是復雜的(暴露+復雜=弱點)。
53 DNS Hacker或crackers可能是試圖進行區域傳遞(TCP),欺騙DNS(UDP)或隱藏其它通訊。因此防火牆常常過濾或記錄53端口。
需要注意的是你常會看到53端口做為UDP源端口。不穩定的防火牆通常允許這種通訊並假設這是對DNS查詢的回復。Hacker常使用這種方法穿透防火牆。
67和68 Bootp和DHCP UDP上的Bootp/DHCP:通過DSL和cable-modem的防火牆常會看見大量發送到廣播地址255.255.255.255的數據。這些機器在向DHCP服務器請求一個地址分配。Hacker常進入它們分配一個地址把自己作為局部路由器而發起大量的“中間人”(man-in-middle)攻擊。客戶端向68端口(bootps)廣播請求配置,服務器向67端口(bootpc)廣播回應請求。這種回應使用廣播是因為客戶端還不知道可以發送的IP地址。
69 TFTP(UDP) 許多服務器與bootp一起提供這項服務,便於從系統下載啟動代碼。但是它們常常錯誤配置而從系統提供任何文件,如密碼文件。它們也可用於向系統寫入文件。
79 finger Hacker用於獲得用戶信息,查詢操作系統,探測已知的緩沖區溢出錯誤,回應從自己機器到其它機器finger掃描。
98 Linuxconf 這個程序提供linux boxen的簡單管理。通過整合的HTTP服務器在98端口提供基於Web界面的服務。它已發現有許多安全問題。一些版本setuid root,信任局域網,在/tmp下建立Internet可訪問的文件,LANG環境變量有緩沖區溢出。此外因為它包含整合的服務器,許多典型的HTTP漏洞可能存在(緩沖區溢出,歷遍目錄等)
109 POP2 並不象POP3那樣有名,但許多服務器同時提供兩種服務(向後兼容)。在同一個服務器上POP3的漏洞在POP2中同樣存在。
110 POP3 用於客戶端訪問服務器端的郵件服務。POP3服務有許多公認的弱點。關於用戶名和密碼交換緩沖區溢出的弱點至少有20個(這意味著Hacker可以在真正登陸前進入系統)。成功登陸後還有其它緩沖區溢出錯誤。
111 sunrpc portmap rpcbind Sun RPC PortMapper/RPCBIND。訪問portmapper是掃描系統查看允許哪些RPC服務的最早的一步。常見RPC服務有:rpc.mountd, NFS, rpc.statd, rpc.csmd, rpc.ttybd, amd等。入侵者發現了允許的RPC服務將轉向提供服務的特定端口測試漏洞。
記住一定要記錄線路中的daemon, IDS, 或sniffer,你可以發現入侵者正使用什麼程序訪問以便發現到底發生了什麼。
113 Ident auth 這是一個許多機器上運行的協議,用於鑒別TCP連接的用戶。使用標准的這種服務可以獲得許多機器的信息(會被Hacker利用)。但是它可作為許多服務的記錄器,尤其是FTP, POP, IMAP, SMTP和IRC等服務。通常如果有許多客戶通過防火牆訪問這些服務,你將會看到許多這個端口的連接請求。記住,如果你阻斷這個端口客戶端會感覺到在防火牆另一邊與e-mail服務器的緩慢連接。許多防火牆支持在TCP連接的阻斷過程中發回RST,著將回停止這一緩慢的連接。
119 NNTP news 新聞組傳輸協議,承載USENET通訊。當你鏈接到諸如:news://comp.security.firewalls/. 的地址時通常使用這個端口。這個端口的連接企圖通常是人們在尋找USENET服務器。多數ISP限制只有他們的客戶才能訪問他們的新聞組服務器。打開新聞組服務器將允許發/讀任何人的帖子,訪問被限制的新聞組服務器,匿名發帖或發送spam。
135 oc-serv MS RPC end-point mapper Microsoft在這個端口運行DCE RPC end-point mapper為它的DCOM服務。這與UNIX 111端口的功能很相似。使用DCOM和/或RPC的服務利用機器上的end-point mapper注冊它們的位置。遠端客戶連接到機器時,它們查詢end-point mapper找到服務的位置。同樣Hacker掃描機器的這個端口是為了找到諸如:這個機器上運行Exchange Server嗎?是什麼版本?
這個端口除了被用來查詢服務(如使用epdump)還可以被用於直接攻擊。有一些DoS攻擊直接針對這個端口。
139 NetBIOS File and Print Sharing 通過這個端口進入的連接試圖獲得NetBIOS/SMB服務。這個協議被用於Windows“文件和打印機共享”和SAMBA。在Internet上共享自己的硬盤是可能是最常見的問題。
大量針對這一端口始於1999,後來逐漸變少。2000年又有回升。一些VBS(IE5 VisualBasic Scripting)開始將它們自己拷貝到這個端口,試圖在這個端口繁殖。
143 IMAP 和上面POP3的安全問題一樣,許多IMAP服務器有緩沖區溢出漏洞運行登陸過程中進入。記住:一種Linux蠕蟲(admw0rm)會通過這個端口繁殖,因此許多這個端口的掃描來自不知情的已被感染的用戶。當RadHat在他們的Linux發布版本中默認允許IMAP後,這些漏洞變得流行起來。Morris蠕蟲以後這還是第一次廣泛傳播的蠕蟲。
這一端口還被用於IMAP2,但並不流行。
已有一些報道發現有些0到143端口的攻擊源於腳本。
161 SNMP(UDP) 入侵者常探測的端口。SNMP允許遠程管理設備。所有配置和運行信息都儲存在數據庫中,通過SNMP客獲得這些信息。許多管理員錯誤配置將它們暴露於Internet。Crackers將試圖使用缺省的密碼“public”“private”訪問系統。他們可能會試驗所有可能的組合。
SNMP包可能會被錯誤的指向你的網絡。Windows機器常會因為錯誤配置將HP JetDirect remote management軟件使用SNMP。HP OBJECT IDENTIFIER將收到SNMP包。新版的Win98使用SNMP解析域名,你會看見這種包在子網內廣播(cable modem, DSL)查詢sysName和其它信息。
162 SNMP trap 可能是由於錯誤配置
177 xdmcp 許多Hacker通過它訪問X-Windows控制台, 它同時需要打開6000端口。
513 rwho 可能是從使用cable modem或DSL登陸到的子網中的UNIX機器發出的廣播。這些人為Hacker進入他們的系統提供了很有趣的信息。
553 CORBA
IIOP (UDP) 如果你使用cable modem或DSL VLAN,你將會看到這個端口的廣播。CORBA是一種面向對象的RPC(remote procedure call)系統。Hacker會利用這些信息進入系統。
600 Pcserver backdoor 請查看1524端口
一些玩script的孩子認為他們通過修改ingreslock和pcserver文件已經完全攻破了系統-- Alan J. Rosenthal.
635 mountd Linux的mountd Bug。這是人們掃描的一個流行的Bug。大多數對這個端口的掃描是基於UDP的,但基於TCP的mountd有所增加(mountd同時運行於兩個端口)。記住,mountd可運行於任何端口(到底在哪個端口,需要在端口111做portmap查詢),只是Linux默認為635端口,就象NFS通常運行於2049端口。
1024 許多人問這個端口是干什麼的。它是動態端口的開始。許多程序並不在乎用哪個端口連接網絡,它們請求操作系統為它們分配“下一個閒置端口”。基於這一點分配從端口1024開始。這意味著第一個向系統請求分配動態端口的程序將被分配端口1024。為了驗證這一點,你可以重啟機器,打開Telnet,再打開一個窗口運行“natstat -a”,你將會看到Telnet被分配1024端口。請求的程序越多,動態端口也越多。操作系統分配的端口將逐漸變大。再來一遍,當你浏覽Web頁時用“netstat”查看,每個Web頁需要一個新端口。
1025 參見1024
1026 參見1024
1080 SOCKS
這一協議以管道方式穿過防火牆,允許防火牆後面的許多人通過一個IP地址訪問Internet。理論上它應該只允許內部的通信向外達到Internet。但是由於錯誤的配置,它會允許Hacker/Cracker的位於防火牆外部的攻擊穿過防火牆。或者簡單地回應位於Internet上的計算機,從而掩飾他們對你的直接攻擊。WinGate是一種常見的Windows個人防火牆,常會發生上述的錯誤配置。在加入IRC聊天室時常會看到這種情況。
1114 SQL
系統本身很少掃描這個端口,但常常是sscan腳本的一部分。
1243 Sub-7木馬(TCP)
參見Subseven部分。
1524 ingreslock後門
許多攻擊腳本將安裝一個後門Shell於這個端口(尤其是那些針對Sun系統中Sendmail和RPC服務漏洞的腳本,如statd, ttdbserver和cmsd)。如果你剛剛安裝了你的防火牆就看到在這個端口上的連接企圖,很可能是上述原因。你可以試試Telnet到你的機器上的這個端口,看看它是否會給你一個Shell。連接到600/pcserver也存在這個問題。
2049 NFS
NFS程序常運行於這個端口。通常需要訪問portmapper查詢這個服務運行於哪個端口,但是大部分情況是安裝後NFS運行於這個端口,Hacker/Cracker因而可以閉開portmapper直接測試這個端口。
3128 squid
這是Squid HTTP代理服務器的默認端口。攻擊者掃描這個端口是為了搜尋一個代理服務器而匿名訪問Internet。你也會看到搜索其它代理服務器的端口:8000/8001/8080/8888。掃描這一端口的另一原因是:用戶正在進入聊天室。其它用戶(或服務器本身)也會檢驗這個端口以確定用戶的機器是否支持代理。請查看5.3節。
5632 pcAnywere
你會看到很多這個端口的掃描,這依賴於你所在的位置。當用戶打開pcAnywere時,它會自動掃描局域網C類網以尋找可能得代理(譯者:指agent而不是proxy)。Hacker/cracker也會尋找開放這種服務的機器,所以應該查看這種掃描的源地址。一些搜尋pcAnywere的掃描常包含端口22的UDP數據包。參見撥號掃描。
6776 Sub-7 artifact
這個端口是從Sub-7主端口分離出來的用於傳送數據的端口。例如當控制者通過電話線控制另一台機器,而被控機器掛斷時你將會看到這種情況。因此當另一人以此IP撥入時,他們將會看到持續的,在這個端口的連接企圖。(譯者:即看到防火牆報告這一端口的連接企圖時,並不表示你已被Sub-7控制。)
6970 RealAudio
RealAudio客戶將從服務器的6970-7170的UDP端口接收音頻數據流。這是由TCP7070端口外向控制連接設置的。
13223 PowWow
PowWow 是Tribal Voice的聊天程序。它允許用戶在此端口打開私人聊天的連接。這一程序對於建立連接非常具有“進攻性”。它會“駐扎”在這一TCP端口等待回應。這造成類似心跳間隔的連接企圖。如果你是一個撥號用戶,從另一個聊天者手中“繼承”了IP地址這種情況就會發生:好象很多不同的人在測試這一端口。這一協議使用“OPNG”作為其連接企圖的前四個字節。
17027 Conducent
這是一個外向連接。這是由於公司內部有人安裝了帶有Conducent "adbot" 的共享軟件。Conducent "adbot"是為共享軟件顯示廣告服務的。使用這種服務的一種流行的軟件是Pkware。有人試驗:阻斷這一外向連接不會有任何問題,但是封掉IP地址本身將會導致adbots持續在每秒內試圖連接多次而導致連接過載:
機器會不斷試圖解析DNS名—ads.conducent.com,即IP地址216.33.210.40 ;216.33.199.77 ;216.33.199.80 ;216.33.199.81;216.33.210.41。(譯者:不知NetAnts使用的Radiate是否也有這種現象)
27374 Sub-7木馬(TCP)
參見Subseven部分。
30100 NetSphere木馬(TCP)
通常這一端口的掃描是為了尋找中了NetSphere木馬。
31337 Back Orifice “elite”
Hacker中31337讀做“elite”/ei’li:t/(譯者:法語,譯為中堅力量,精華。即3=E, 1=L, 7=T)。因此許多後門程序運行於這一端口。其中最有名的是Back Orifice。曾經一段時間內這是Internet上最常見的掃描。現在它的流行越來越少,其它的木馬程序越來越流行。
31789 Hack-a-tack
這一端口的UDP通訊通常是由於"Hack-a-tack"遠程訪問木馬(RAT, Remote Access Trojan)。這種木馬包含內置的31790端口掃描器,因此任何31789端口到317890端口的連接意味著已經有這種入侵。(31789端口是控制連接,317890端口是文件傳輸連接)
32770~32900 RPC服務
Sun Solaris的RPC服務在這一范圍內。詳細的說:早期版本的Solaris(2.5.1之前)將portmapper置於這一范圍內,即使低端口被防火牆封閉仍然允許Hacker/cracker訪問這一端口。掃描這一范圍內的端口不是為了尋找portmapper,就是為了尋找可被攻擊的已知的RPC服務。
33434~33600 traceroute
如果你看到這一端口范圍內的UDP數據包(且只在此范圍之內)則可能是由於traceroute。參見traceroute部分。