在網絡技術中,端口(Port)有好幾種意思。集線器、交換機、路由器的端口指的是連接其他網絡設備的接口,如RJ-45端口、Serial端口等。我們這里所指的端口不是指物理意義上的端口,而是特指TCP/IP協議中的端口,是邏輯意義上的端口。
那么TCP/IP協議中的端口指的是什么呢?如果把IP地址比作一間房子 ,端口就是出入這間房子的門。真正的房子只有幾個門,但是一個IP地址的端口可以有65536個之多!端口是通過端口號來標記的,端口號只有整數,范圍是從0 到65535。
端口有什么用呢?我們知道,一臺擁有IP地址的主機可以提供許多服務,比如Web服務、FTP服務、SMTP服務等,這些服務完全可以通過1個IP地址來實現。那么,主機是怎樣區分不同的網絡服務呢?顯然不能只靠IP地址,因為IP地址與網絡服務的關系是一對多的關系。實際上是通過“IP地址+端口號”來區分不同的服務的。
端口可分為3大類:
1) 公認端口(Well Known Ports):從0到1023,它們緊密綁定于一些服務。通常這些端口的通訊明確表明了某種服 務的協議。例如:80端口實際上總是HTTP通訊。
2) 注冊端口(Registered Ports):從1024到49151。它們松散地綁定于一些服務。也就是說有許多服務綁定于這些端口,這些端口同樣用于許多其它目的。例如:許多系統處理動態端口從1024左右開始。
3) 動態和/或私有端口(Dynamic and/or Private Ports):從49152到65535。理論上,不應為服務分配這些端口。實際上,機器通常從1024起分配動態端口。但也有例外:SUN的RPC端口從32768開始。
本節講述通常TCP/UDP端口掃描在防火墻記錄中的信息。記住:并不存在所謂ICMP端口。如果你對解讀ICMP數據感興趣,請參看本文的其它部分。
0
通常用于分析操作系統。這一方法能夠工作是因為在一些系統中“0”是無效端口,當你試 圖使用一種通常的閉合端口連接它時將產生不同的結果。一種典型的掃描:使用IP地址為 0.0.0.0,設置ACK位并在以太網層廣播。
1 tcpmux
這顯示有人在尋找SGIIrix機器。Irix是實現tcpmux的主要提供者,缺省情況下tcpmux在這種系統中被打開。Iris機器在發布時含有幾個缺省的無密碼的帳戶,如lp,guest, uucp, nuucp, demos, tutor, diag, EZsetup,OutOfBox, 和4Dgifts。許多管理員安裝后忘記刪除這些帳戶。因此Hacker們在Internet上搜索tcpmux并利用這些帳戶。
7Echo
你能看到許多人們搜索Fraggle放大器時,發送到x.x.x.0和x.x.x.255的信息。常見的一種DoS攻擊是echo循環(echo-loop),攻擊者偽造從一個機器發送到另一個UDP數據包,而兩個機器分別以它們最快的方式回應這些數據包。(參見 Chargen)另一種東西是由DoubleClick在詞端口建立的TCP連接。有一種產品叫做“Resonate GlobalDispatch”,它與DNS的這一端口連接以確定最近的路由。Harvest/squid cache將從3130端口發送UDPecho:“如果將cache的source_ping on選項打開,它將對原始主機的UDP echo端口回應一個HITreply。”這將會產生許多這類數據包。
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界面的服務。它已發現有許多安全問題。一些版本setuidroot,信任局域網,在/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,著將回停止這一緩慢的連接


