計算機“端口”可以認爲是計算機與外界通訊交流的出口。其中硬件領域的端口又稱接口,如USB端口、串行端口等。軟件領域的端口一般指網絡中面向連接服務和無連接服務的通信協議端口,是一種抽象的軟件結構,包括一些數據結構和I/O(基本輸入輸出)緩衝區。
本文向你講述端口的基礎常識及常用端口設置方法與技巧。
一、端口基礎 1.面向連接和無連接協議面向連接服務要經過三個階段。即數據傳數前,先建立連接,連接建立後再傳輸數據,數據傳送完後,釋放連接。面向連接服務,可確保數據傳送的次序和傳輸的可靠性。
無連接服務只有傳輸數據階段。消除了除數據通信外的其他開銷。只要發送實體是活躍的,無須接收實體也是活躍的。它的優點是靈活方便、迅速,特別適合於傳送少量零星的報文,但無連接服務不能防止報文的丟失、重複或失序。
區分“面向連接服務”和“無連接服務”的概念,特別簡單、形象的例子是:打電話和寫信。兩個人如果要通電話,必須先建立連接——撥號,等待應答後才能相互傳遞信息,最後還要釋放連接——掛電話。寫信就沒有那麼複雜了,地址姓名填好以後直接往郵筒一扔,收信人就能收到。TCP/IP協議在網絡層是無連接的(數據包只管往網上發,如何傳輸和到達以及是否到達由網絡設備來管理)。而“端口”,是傳輸層的內容,是面向連接的。協議裏面低於1024的端口都有確切的定義,它們對應着因特網上常見的一些服務。這些常見的服務可以劃分爲使用TCP端口(面向連接如打電話)和使用UDP端口(無連接如寫信)兩種。
網絡中可以被命名和尋址的通信端口是操作系統的一種可分配資源。由網絡OSI(Open System Interconnection Reference Model,開放系統互聯參考模型)七層協議可知,傳輸層與網絡層最大的區別是傳輸層提供進程通信能力,網絡通信的最終地址不僅包括主機地址,還包括可描述進程的某種標識。所以TCP/IP協議提出的協議端口,可以認爲是網絡通信進程的一種標識符。
應用程序(調入內存運行後一般稱爲進程)通過系統調用與某端口建立連接(binding,綁定)後,傳輸層傳給該端口的數據都被相應的進程所接收,相應進程發給傳輸層的數據都從該端口輸出。在TCP/IP協議的實現中,端口操作類似於一般的I/O操作,進程獲取一個端口,相當於獲取本地唯一的I/O文件,可以用一般的讀寫方式訪問。
類似於文件描述符,每個端口都擁有一個叫端口號的整數描述符,用來區別不同的端口。由於TCP/IP傳輸層的TCP和UDP兩個協議是兩個完全獨立的軟件模塊,因此各自的端口號也相互獨立。如TCP有一個255號端口,UDP也可以有一個255號端口,兩者並不衝突。
2.端口號的基本分配方式端口號有兩種基本分配方式:
(1)全局分配:這是一種集中分配方式,由一個公認權威的機構根據用戶需要進行統一分配,並將結果公佈於衆。
(2)本地分配:又稱動態連接,即進程需要訪問傳輸層服務時,向本地操作系統提出申請,操作系統返回本地唯一的端口號,進程再通過合適的系統調用,將自己和該端口連接起來。
TCP/IP端口號的分配綜合了以上兩種方式,將端口號分爲兩部分,少量的作爲保留端口,以全局方式分配給服務進程。每一個標準服務器都擁有一個全局公認的端口,即使在不同的機器上,其端口號也相同。剩餘的爲自由端口,以本地方式進行分配。TCP和UDP規定,小於256的端口才能作爲保留端口。
3.端口分類按端口號可分爲3大類:
(1)公認端口(Well Known Ports):從0到1023,它們緊密綁定於一些服務。通常這些端口的通訊明確表明了某種服務的協議。例如,80端口實際上總是HTTP通訊。
(2)註冊端口(Registered Ports):從1024到49151。它們鬆散地綁定於一些服務。也就是說有許多服務綁定於這些端口,這些端口同樣用於許多其他目的。例如,許多系統處理動態端口從1024左右開始。
(3)動態和/或私有端口(Dynamic and/or Private Ports):從49152到65535。理論上,不應爲服務分配這些端口。實際上,機器通常從1024起分配動態端口。
4.端口“重定向”系統管理員可以“重定向”端口。
一種常見的技術是把一個端口重定向到另一個地址。例如默認的HTTP端口是80,不少人將它重定向到另一個端口,如8080。
實現重定向是爲了隱藏公認的默認端口,降低受破壞率。這樣如果有人要對一個公認的默認端口進行攻擊則必須先進行端口掃描。大多數端口重定向與原端口有相似之處,例如多數HTTP端口由80變化而來,如81、88、8000、8080、8888。同樣POP的端口原來在110,也常被重定向到1100。也有不少情況是選取統計上有特別意義的數,如1234、23456、34567等。許多人有其他原因選擇奇怪的數,42、69、666、31337。近來,越來越多的遠程控制木馬採用相同的默認端口。如NetBus的默認端口是12345。Blake R. Swopes指出使用重定向端口還有一個原因,在UNIX系統上,如果你想偵聽1024以下的端口需要有root權限。如果你沒有root權限而又想開啓Web服務,你就需要將其安裝在較高的端口。此外,一些ISP的防火牆將阻擋低端口的通訊,這樣的話即使你擁有整個機器你還是得重定向端口。
二、常用端口對照詳解下表列出TCP/UDP端口掃描在防火牆記錄中的信息。
0
Reserved
通常用於分析操作系統
1
tcpmux
顯示有人在尋找SGI Irix計算機。默認情況下,tcpmux在Irix系統中被打開。Irix計算機在尋找是否包含有默認的無密碼的賬戶,如,IP、GUEST
UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。許多管理員在安裝後忘記刪除這些賬戶。因此,攻擊者在網絡上搜索tcpmux並利用這些賬戶
7
Echo
搜索Fraggle放大器時,發送到X.X.X.0和X.X.X.255的信息
19
Character Generator
一種僅發送字符的服務。UDP版本將會在收到UDP包後迴應含有垃圾字符的包。TCP連接時會發送含有垃圾字符的數據流直到連接關閉。攻擊者利用IP欺騙可以發動DoS攻擊。僞造兩個chargen服務器之間的UDP包。同樣Fraggle
DoS攻擊向目標地址的這個端口廣播一個帶有僞造受害者IP的數據包,受害者爲了迴應這些數據而攔載
21
FTP
FTP服務器開放該端口,用於上傳、下載。攻擊者用於尋找打開Anonymous的FTP服務器的方法。這些服務器帶有可讀寫的目錄。木馬Doly
Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所開放的端口
22
SSH`
PCAnywhere建立的TCP和該端口的連接可能是爲了尋找SSH。如果將該服務配置成爲特定的模式,許多使用RSAREF庫的版本就會有不少的漏洞存在
23
Telnet
遠程登錄,攻擊者在搜索遠程登錄UNIX的服務。大多數情況下掃描這一端口是爲了找到計算機所運行的操作系統。還有使用其他技術,入侵者也會找到密碼。木馬Tiny
Telnet Server開放該端口
25
SMTP
SMTP服務器所開放的端口,用於發送郵件。攻擊者尋找SMTP服務器是爲了傳遞他們的SPAM。入侵者的賬戶被關閉,他們需要連接到E-mail服務器上,將簡單的信息傳遞到不同的地址。木馬Antigen、Email
Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都開放該端口
31
MSG Authentication
木馬Master Paradise、Hackers Paradise開放該端口
42
WINS Replication
WINS複製
53
Domain Name Server(DNS)
DNS服務器所開放的端口,攻擊者可能是試圖進行區域傳遞(TCP),欺騙DNS(UDP)或隱藏其他的通信。因此防火牆常常過濾或記錄此端口
67
Bootstrap Protocol Server
通過ADSL的防火牆常會看見大量發送到廣播地址255.255.255.255的數據。這些計算機在向DHCP服務器請求一個地址。攻擊者常進入它們,分配一個地址,把自己作爲局部路由器而發起大量中間人攻擊。客戶端向68端口廣播請求配置,服務器向67端口廣播迴應請求。這種迴應使用廣播是因爲客戶端還不知道可以發送的IP地址
69
Trival File Transfer
許多服務器與Bootp一起提供這項服務,便於從系統下載啓動代碼。但是它們常常由於錯誤配置而使攻擊者能從系統中竊取任何文件
79
Finger Server
攻擊者用該服務獲取用戶信息,查詢操作系統,探測已知的緩衝區溢出錯誤,迴應從自己機器到其他機器Finger掃描
80
HTTP
用於網頁瀏覽。木馬Executor開放該端口
88
-
Kerberos krb5。另外TCP的88端口也是這個用途
99
Metagram Relay
後門程序ncx99開放此端口
102
Message transfer agent(MTA)-X.400 over TCP/IP
消息傳輸代理
109
POP3
POP3服務器開放此端口,用於接收郵件,客戶端訪問服務器端的郵件服務。POP3服務有許多公認的弱點。關於用戶名和密碼交換緩衝區溢出的弱點至少有20個,這意味着攻擊者可以在真正登陸前進入系統。成功登陸後還有其他緩衝區溢出錯誤
110
SUN公司的RPC服務所有端口
常見RPC服務有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等
113
Authentication Service
是一個在許多計算機上運行的協議,用於鑑別TCP連接的用戶。使用這種服務可以獲得許多計算機的信息。但是它可作爲服務的記錄器,尤其是FTP、POP、IMAP、SMTP和IRC等服務。如果有客戶通過防火牆訪問這些服務,將會看到該端口的連接請求。如果關閉該端口,客戶端會感覺到在防火牆另一邊與E-mail服務器連接緩慢。許多防火牆支持TCP連接在阻斷過程中發回RST。這將會停止緩慢的連接
119
Network News Transfer Protocol
NEWS新聞組傳輸協議。這個端口的連接通常是人們在尋找USENET服務器。多數ISP限制,只有他們的客戶才能訪問他們的新聞組服務器。打開新聞組服務器將允許發/讀任何人的帖子,訪問被限制的新聞組服務器,匿名發帖或發送SPAM
135
Location Service
微軟在該端口運行DCE RPC end-point mapper爲它的DCOM服務。這與UNIX 111端口的功能相似。使用DCOM和RPC的服務利用計算機上的end-point
mapper註冊它們的位置。遠端客戶連接到計算機時,它們查找end-point mapper找到服務的位置。攻擊者掃描計算機的這個端口是爲了找到這個計算機上運行Exchange
Server嗎?什麼版本?還有些DoS攻擊直接針對這個端口
137、138、139
NETBIOS Name Service
其中137、138是UDP端口,當通過網上鄰居傳輸文件時用這個端口。而139端口則是用於獲得NetBIOS/SMB服務。這個協議被用於Windows文件和打印機共享和SAMBA。還有WINS
Regisrtation也用它
137
-
其他協議名稱查找上的SQL命名管道加密技術、其他協議名稱查找上的SQL RPC加密技術、WINS NetBT名稱服務和Wins
Proxy都用這個端口
143
IMAP2
和POP3的安全問題一樣,許多IMAP服務器存在有緩衝區溢出漏洞
161
SNMP
SNMP允許遠程管理設備。所有配置和運行信息儲存在數據庫中,通過SNMP可獲得這些信息。管理員的錯誤配置將被暴露在Internet。攻擊者將試圖使用默認的密碼訪問系統。他們可能會試驗所有可能的組合。SNMP包可能會被錯誤的指向用戶的網絡
161
-
簡單網絡管理協議
162
-
SNMP陷阱
177
X Display Manager Control Protocol
許多入侵者通過它訪問X-windows控制檯,它同時需要打開6000端口
389
LDAP、ILS
輕型目錄訪問協議和NetMeeting Internet Locator Server共用這一端口
443
Https
網頁瀏覽端口,能提供加密和通過安全端口傳輸的另一種HTTP
445
-
公共Internet文件系統
456
NULL
木馬HACKERS PARADISE開放此端口
464
-
Kerberos kpasswd(v5)。另外TCP的464端口也是這個用途
500
-
Internet Key Exchange(IKE)(Internet密鑰交換)
513
Login,remote login
是從使用ADSL登陸到子網中的UNIX計算機發出的廣播。這些人爲入侵者進入他們的系統提供了信息
553
CORBA IIOP (UDP)
使用ADSL或VLAN將會看到這個端口的廣播。CORBA是一種面向對象的RPC系統。入侵者可以利用這些信息進入系統
555
DSF
木馬PhAse1.0、Stealth Spy、IniKiller開放此端口
568
Membership DPA
成員資格DPA
569
Membership MSN
成員資格MSN
635
mountd
Linux的mountd Bug。這是掃描的一個流行BUG。大多數對這個端口的掃描是基於UDP的,但是基於TCP的mountd有所增加(mountd同時運行於兩個端口)。記住mountd可運行於任何端口,只是Linux默認端口是635,就像NFS通常運行於2049端口
636
LDAP
SSL,Secure Sockets layer。安全套接層
666
Doom Id Software
木馬Attack FTP、Satanz Backdoor開放此端口
993
IMAP
SSL,Secure Sockets layer。安全套接層
1001、1011
NULL
木馬Silencer、WebEx開放1001端口。木馬Doly Trojan開放1011端口
1024
Reserved
它是動態端口的開始,許多程序並不在乎用哪個端口連接網絡,它們請求系統爲它們分配下一個閒置端口。基於這一點分配從端口1024開始。這就是說第一個向系統發出請求的會分配到1024端口。你可以重啓機器,打開Telnet,再打開一個窗口運行natstat
-a 將會看到Telnet被分配1024端口。還有SQL session也用此端口和5000端口
1080
SOCKS
這一協議以通道方式穿過防火牆,允許防火牆後的人通過一個IP地址訪問Internet。理論上它應該只允許內部的通信向外到達Internet。但是由於錯誤的配置,它會允許位於防火牆外部的攻擊穿過防火牆。WinGate常會發生這種錯誤,在加入IRC聊天室時常會看到這種情況
1170
NULL
木馬Streaming Audio Trojan、Psyber Stream Server、Voice開放此端口
1234、1243、6711、6776
NULL
木馬SubSeven2.0、Ultors Trojan開放1234、6776端口。木馬SubSeven1.0/1.9開放1243、6711、6776端口
1245
NULL
木馬Vodoo開放此端口
1433
SQL
SQL服務開放的端口
1492
stone-design-1
木馬FTP99CMP開放此端口
1500
RPC client fixed port session queries
RPC客戶固定端口會話查詢
1503
NetMeeting T.120
NetMeeting T.120
1524
ingress
許多攻擊腳本將安裝一個後門SHELL於這個端口,尤其是針對SUN系統中Sendmail和RPC服務漏洞的腳本。如果剛安裝了防火牆就看到在這個端口上的連接企圖,很可能是上述原因。可以試試Telnet到用戶的計算機上的這個端口,看看它是否會給你一個SHELL。連接到600/pcserver也存在這個問題
1600
issd
木馬Shivka-Burka開放此端口
1645、1812
-
遠程認證撥號用戶服務
1646、1813
-
RADIUS記賬(路由和遠程訪問)
1701
-
第2層隧道協議
1720
NetMeeting
NetMeeting H.233 call Setup
1731
NetMeeting Audio Call Control
NetMeeting音頻調用控制
1801、3527
-
Microsoft消息隊列服務器。還有TCP的135、1801、2101、2103、2105也是同樣的用途
1807
NULL
木馬SpySender開放此端口
1981
NULL
木馬ShockRave開放此端口
1999
cisco identification port
木馬BackDoor開放此端口
2000
NULL
木馬GirlFriend 1.3、Millenium 1.0開放此端口
2001
NULL
木馬Millenium 1.0、Trojan Cow開放此端口
2023
xinuexpansion 4
木馬Pass Ripper開放此端口
2049
NFS
NFS程序常運行於這個端口。通常需要訪問Portmapper查詢這個服務運行於哪個端口
2115
NULL
木馬Bugs開放此端口
2140、3150
NULL
木馬Deep Throat 1.0/3.0開放此端口
2500
RPC client using a fixed port session replication
應用固定端口會話複製的RPC客戶
2504
-
網絡平衡負荷
2583
NULL
木馬Wincrash 2.0開放此端口
2801
NULL
木馬Phineas Phucker開放此端口
3024、4092
NULL
木馬WinCrash開放此端口
3128
squid
這是squid HTTP代理服務器的默認端口。攻擊者掃描這個端口是爲了搜尋一個代理服務器而匿名訪問Internet。也會看到搜索其他代理服務器的端口8000、8001、8080、8888。掃描這個端口的另一個原因是用戶正在進入聊天室。其他用戶也會檢驗這個端口以確定用戶的機器是否支持代理
3129
NULL
木馬Master Paradise開放此端口
3150
NULL
木馬The Invasor開放此端口
3210、4321
NULL
木馬SchoolBus開放此端口
3333
dec-notes
木馬Prosiak開放此端口
3389
超級終端
Windows 2000終端開放此端口
3700
NULL]
木馬Portal of Doom開放此端口
3996、4060
NULL
木馬RemoteAnything開放此端口
4000
QQ客戶端
騰訊QQ客戶端開放此端口
4092
NULL
木馬WinCrash開放此端口
4590
NULL
木馬ICQTrojan開放此端口
5000、5001、5321、50505
NULL
木馬blazer5開放5000端口。木馬Sockets de Troie開放5000、5001、5321、50505端口
5400、5401、5402
NULL
木馬Blade Runner開放此端口
5550
NULL
木馬xtcp開放此端口
5569
NULL
木馬Robo-Hack開放此端口
5632
PCAnywere
有時會看到很多這個端口的掃描,這依賴於用戶所在的位置。當用戶打開PCAnywere時,它會自動掃描局域網C類網以尋找可能的代理。攻擊者也會尋找開放這種服務的計算機。所以應該查看這種掃描的源地址。一些搜尋PCAnywere的掃描包常含端口22的UDP數據包
5742
NULL
木馬WinCrash1.03開放此端口
6267
NULL
木馬廣外女生開放此端口
6400
NULL
木馬The tHing開放此端口
6670、6671
NULL
木馬Deep Throat開放6670端口。而Deep Throat 3.0開放6671端口
6883
NULL
木馬DeltaSource開放此端口
6969
NULL
木馬Gatecrasher、Priority開放此端口
6970
RealAudio
RealAudio客戶將從服務器的6970-7170的UDP端口接收音頻數據流。這是由TCP-7070端口外向控制連接設置的
7000
NULL
木馬Remote Grab開放此端口
7300、7301、7306、7307、7308
NULL
木馬NetMonitor開放此端口。另外NetSpy1.0也開放7306端口
7323
NULL
SyGate服務器端
7626
NULL
木馬Giscier開放此端口
7789
NULL
木馬ICKiller開放此端口
8000
OICQ
騰訊QQ服務器端開放此端口
8010
WinGate
WinGate代理開放此端口
8080
代理端口
WWW代理開放此端口
9400、9401、9402
NULL
木馬Incommand 1.0開放此端口
9872、9873、9874、9875、10067、10167
NULL
木馬Portal of Doom開放此端口
9989
NULL
木馬iNi-Killer開放此端口
11000
NULL
木馬SennaSpy開放此端口
11223
NULL
木馬Progenic trojan開放此端口
12076、61466
NULL
木馬Telecommando開放此端口
12223
NULL
木馬Hack'99 KeyLogger開放此端口
12345、12346
NULL
木馬NetBus1.60/1.70、GabanBus開放此端口
12361
NULL
木馬Whack-a-mole開放此端口
13223
PowWow
PowWow是Tribal Voice的聊天程序。它允許用戶在此端口打開私人聊天的連接。該程序對於建立連接非常具有攻擊性。它會常駐在TCP端口等待迴應。如果一個撥號用戶從另一個聊天者手中繼承了IP地址就會發生好象有很多不同的人在測試這個端口的情況。這一協議使用OPNG作爲其連接請求的前4個字節
16969
NULL
木馬Priority開放此端口
17027
Conducent
這是一個外向連接,是由於公司內部有人安裝了帶有Conducent"adbot"的共享軟件。Conducent"adbot"是爲共享軟件顯示廣告服務的。使用這種服務的一種流行的軟件是Pkware
19191
NULL
木馬藍色火焰開放此端口
20000、20001
NULL
木馬Millennium開放此端口
20034
NULL
木馬NetBus Pro開放此端口
21554
NULL
木馬GirlFriend開放此端口
22222
NULL
木馬Prosiak開放此端口
23456
NULL
木馬Evil FTP、Ugly FTP開放此端口
26274、47262
NULL
木馬Delta開放此端口
27374
NULL
木馬Subseven 2.1開放此端口
30100
NULL
木馬NetSphere開放此端口
30303
NULL
木馬Socket23開放此端口
30999
NULL
木馬Kuang開放此端口
31337、31338
NULL
木馬BO(Back Orifice)開放此端口。另外木馬DeepBO也開放31338端口
31339
NULL
木馬NetSpy DK開放此端口
31666
NULL
木馬BOWhack開放此端口
33333
NULL
木馬Prosiak開放此端口
34324
NULL
木馬Tiny Telnet Server、BigGluck、TN開放此端口
40412
NULL
木馬The Spy開放此端口
40421、40422、40423、40426
NULL
木馬Masters Paradise開放此端口
43210、54321
NULL
木馬SchoolBus 1.0/2.0開放此端口
44445
NULL
木馬Happypig開放此端口
50766
NULL
木馬Fore開放此端口
53001
NULL
木馬Remote Windows Shutdown開放此端口
65000
NULL
木馬Devil 1.03開放此端口