成為“黑客”前,必須掌握的“網絡協議端口”
上篇文章中,我們針對“網絡通信原理”做了詳細描述,在通信原理裡也提到了端口這個概念,但是沒有詳細講解,今天我詳細講解一下“網絡協議端口”,因為這個“東東”也是黑客們常常利用滲透入侵的手段。
一、先講一講幾種不同的“端口”的定義
計算機"端口"是英文port的譯義,可以認為是計算機與外界通訊交流的出口。其中硬件領域的端口又稱接口,如:USB端口、串行端口等。
軟件領域的端口一般指網絡中面向連接服務和無連接服務的通信協議端口,是一種抽象的軟件結構,包括一些數據結構和I/O(基本輸入輸出)緩衝區。
在網絡技術中,端口(Port)有好幾種意思。集線器、交換機、路由器的端口指的是連接其他網絡設備的接口,如RJ-45端口、Serial端口等。
而我們今天要講的“網絡協議端口”不是指物理意義上的端口,而是特指TCP/IP協議中的端口,是邏輯意義上的端口。
二、網絡協議端口簡單描述
網絡協議中的端口指的是什麼呢?如果把IP地址比作一間房子 ,端口就是出入這間房子的門。真正的房子只有幾個門,但是一個IP地址的端口 可以有65536(即:256×256)個之多!端口是通過端口號來標記的,端口號只有整數,範圍是從0 到65535(256×256)。
在Internet上,各主機間通過TCP/TP協議發送和接收數據報,各個數據報根據其目的主機的ip地址來進行互聯網絡中的路由選擇。可見,把數據報順利的傳送到目的主機是沒有問題的。問題出在哪裡呢?我們知道大多數操作系統都支持多程序(進程)同時運行,那麼目的主機應該把接收到的數據報傳送給眾多同時運行的進程中的哪一個呢?顯然這個問題有待解決,端口機制便由此被引入進來。
操作系統會給那些有需求的進程分配協議端口(protocal port,即我們常說的端口),每個協議端口由一個正整數標識,如:80,139,445,等等。當目的主機接收到數據報後,將根據報文首部的目的端口號,把數據發送到相應端口,而與此端口相對應的那個進程將會領取數據並等待下一組數據的到來。說到這裡,端口的概念似乎仍然抽象,那麼繼續聽我繼續講解。
端口其實就是隊,操作系統為各個進程分配了不同的隊,數據報按照目的端口被推入相應的隊中,等待被進程取用,在極特殊的情況下,這個隊也是有可能溢出的,不過操作系統允許各進程指定和調整自己的隊的大小。
接受數據報的進程需要開啟它自己的端口,發送數據報的進程也需要開啟端口,這樣,數據報中將會標識有源端口,以便接受方能順利的回傳數據報到這個端口。
三、“網絡協議端口”詳解
常常在網絡上聽說“我的主機開了多少的 port ,會不會被入侵呀!?”或者是說“開那個 port 會比較安全?又,我的服務應該對應什麼 port 呀!?”很神奇吧!怎麼一部主機上面有這麼多的奇怪的 port 呢?這個 port 有什麼作用呢?!
由於每種網絡的服務功能都不相同,因此有必要將不同的封包送給不同的服務來處理,所以囉,當你的主機同時開啟了 FTP 與 WWW 服務的時候,那麼別人送來的資料封包,就會依照 TCP 上面的 port 號碼來給 FTP 這個服務或者是 WWW 這個服務來處理,當然就不會錯亂!很多人會問說:“為什麼計算機同時有 FTP、WWW、E-Mail 這麼多服務,傳資料過來,計算機怎麼知道如何判斷?計算機真的都不會誤判嗎?”現在知道為什麼了吧?!“對啦!就是因為 port 不同嘛”!每一種服務都有特定的 port 在監聽!您無須擔心計算機會誤判的問題。
每一個 TCP 聯機都必須由一端(通常為 client )發起請求這個 port 通常是隨機選擇大於 1024 以上的 port 號來進行!其 TCP 封包會將(且只將) SYN 旗標設定起來!這是整個聯機的第一個封包; 如果另一端(通常為 Server ) 接受這個請求的話(當然,特殊的服務需要以特殊的 port 來進行,例如 FTP 的port 21 ),則會向請求端送回整個聯機的第二個封包!其上除了 SYN 旗標之外同時還將 ACK 旗標也設定起來,並同時時在本機端建立資源以待聯機之需;然後,請求端獲得服務端第一個響應封包之後,必須再響應對方一個確認封包,此時封包只帶 ACK 旗標(事實上,後繼聯機中的所有封包都必須帶有 ACK 旗標);
只有當服務端收到請求端的確認( ACK )封包(也就是整個聯機的第三個封包)之後,兩端的聯機才能正式建立。這就是所謂的 TCP 聯機的'三段式交握( Three-Way Handshake )'的原理。經過三向交握之後,你的 client 端的 port 通常是高於 1024 的隨機取得的 port 至於主機端則視當時的服務是開啟哪一個 port 而定,例如 WWW 選擇80 而 FTP 則以 21 為正常的聯機信道!
四、端口的分類
按對應的協議類型端口有兩種
一種是TCP端口,一種是UDP端口。計算機之間相互通信的時候,分為兩種方式:一種是發送信息以後,可以確認信息是否到達,也就是有應答的方式,這種方式大多采用TCP協議;一種是發送以後就不管了,不去確認信息是否到達,這種方式大多采用UDP協議。對應這兩種協議的服務提供的端口,也就分為TCP端口和UDP端口。
由網絡OSI七層協議可知,TCP/UDP是工作在傳輸層的,傳輸層與網絡層最大的區別是傳輸層提供進程通信能力,網絡通信的最終地址不僅包括主機地址,還包括可描述進程的某種標識。所以TCP/IP協議提出的協議端口,可以認為是網絡通信進程的一種標識符。
在應用程序中(調入內存運行後一般稱為:進程)通過系統調用與某端口建立連接(binding,綁定)後,傳輸層傳給該端口的數據都被相應的進程所接收,相應進程發給傳輸層的數據都從該端口輸出。在TCP/IP協議的實現中,端口操作類似於一般的I/O操作,進程獲取一個端口,相當於獲取本地唯一的I/O文件,可以用一般的讀寫方式訪問類似於文件描述符,每個端口都擁有一個叫端口號的整數描述符,用來區別不同的端口。由於TCP/IP傳輸層的TCP和UDP兩個協議是兩個完全獨立的軟件模塊,因此各自的端口號也相互獨立。如TCP有一個255號端口,UDP也可以有一個255號端口,兩者並不衝突。端口號有兩種基本分配方式:第一種叫全局分配這是一種集中分配方式,由一個公認權威的中央機構根據用戶需要進行統一分配,並將結果公佈於眾,第二種是本地分配,又稱動態連接,即進程需要訪問傳輸層服務時,向本地操作系統提出申請,操作系統返回本地唯一的端口號,進程再通過合適的系統調用,將自己和該端口連接起來(binding,綁定)。TCP/IP端口號的分配綜合了以上兩種方式,將端口號分為兩部分,少量的作為保留端口,以全局方式分配給服務進程。每一個標準服務器都擁有一個全局公認的端口叫周知口,即使在不同的機器上,其端口號也相同。剩餘的為自由端口,以本地方式進行分配。TCP和UDP規定,小於256的端口才能作為保留端口。
按端口號可分為3大類:
(1)公認端口(WellKnownPorts):從0到1023,它們緊密綁定(binding)於一些服務。通常這些端口的通訊明確表明了某種服務的協議。例如:80端口實際上總是HTTP通訊。
(2)註冊端口(RegisteredPorts):從1024到49151。它們鬆散地綁定於一些服務。也就是說有許多服務綁定於這些端口,這些端口同樣用於許多其它目的。例如:許多系統處理動態端口從1024左右開始。
(3)動態和/或私有端口(Dynamicand/orPrivatePorts):從49152到65535。理論上,不應為服務分配這些端口。實際上,機器通常從1024起分配動態端口。但也有例外:SUN的RPC端口從32768開始。
五、已知服務、木馬常用端口列表
TCP端口
7 = 回顯
9 = 丟棄
11 = 在線用戶
13 = 時間服務
15 = 網絡狀態
17 = 每日引用
18 = 消息發送
19 = 字符發生器
20 = ftp數據
21 = 文件傳輸
22 = SSH端口
23 = 遠程終端
25 = 發送郵件
31 = Masters Paradise木馬
37 = 時間
39 = 資源定位協議
41 = DeepThroat木馬
42 = WINS 主機名服務
43 = WhoIs服務
58 = DMSetup木馬
59 = 個人文件服務
63 = WHOIS端口
69 = TFTP服務
70 = 信息檢索
79 = 查詢在線用戶
80 = WEB網頁
88 = Kerberros5認證
101 = 主機名
102 = ISO
107 = 遠程登錄終端
109 = pop2郵件
110 = pop3郵件
111 = SUN遠程控制
113 = 身份驗證
117 = UUPC
119 = nntp新聞組
121 = JammerKillah木馬
135 = 本地服務
138 = 隱形大盜
139 = 文件共享
143 = IMAP4郵件
146 = FC-Infector木馬
158 = 郵件服務
170 = 打印服務
179 = BGP
194 = IRC PORT
213 = TCP OVER IPX
220 = IMAP3郵件
389 = 目錄服務
406 = IMSP PORT
411 = DC++
421 = TCP Wrappers
443 = 安全WEB訪問
445 = SMB(交換服務器消息塊)
456 = Hackers Paradise木馬
464 = Kerberros認證
512 = 遠程執行或衛星通訊
513 = 遠程登錄與查詢
514 = SHELL/系統日誌
515 = 打印服務
517 = Talk
518 = 網絡聊天
520 = EFS
525 = 時間服務
526 = 日期更新
530 = RPC
531 = RASmin木馬
532 = 新聞閱讀
533 = 緊急廣播
540 = UUCP
543 = Kerberos登錄
544 = 遠程shell
550 = who
554 = RTSP
555 = Ini-Killer木馬
556 = 遠程文件系統
560 = 遠程監控
561 = 監控
636 = 安全目錄服務
666 = Attack FTP木馬
749 = Kerberos管理
750 = Kerberos V4
911 = Dark Shadow木馬
989 = FTPS
990 = FTPS
992 = TelnetS
993 = IMAPS
999 = DeepThroat木馬
1001 = Silencer木馬
1010 = Doly木馬
1011 = Doly木馬
1012 = Doly木馬
1015 = Doly木馬
1024 = NetSpy木馬
1042 = Bla木馬
1045 = RASmin木馬
1080 = SOCKS代理
1090 = Extreme木馬
1095 = Rat木馬
1097 = Rat木馬
1098 = Rat木馬
1099 = Rat木馬
1109 = Kerberos POP
1167 = 私用電話
1170 = Psyber Stream Server
1214 = KAZAA下載
1234 = Ultors/惡鷹木馬
1243 = Backdoor/SubSeven木馬
1245 = VooDoo Doll木馬
1349 = BO DLL木馬
1352 = Lotus Notes
1433 = SQL SERVER
1492 = FTP99CMP木馬
1494 = CITRIX
1503 = Netmeeting
1512 = WINS解析
1524 = IngresLock後門
1600 = Shivka-Burka木馬
1630 = 網易泡泡
1701 = L2TP
1720 = H323
1723 = PPTP(虛擬專用網)
1731 = Netmeeting
1755 = 流媒體服務
1807 = SpySender木馬
1812 = Radius認證
1813 = Radius評估
1863 = MSN聊天
1981 = ShockRave木馬
1999 = Backdoor木馬
2000 = TransScout-Remote-Explorer木馬
2001 = TransScout木馬
2002 = TransScout/惡鷹木馬
2003 = TransScout木馬
2004 = TransScout木馬
2005 = TransScout木馬
2023 = Ripper木馬
2049 = NFS服務器
2053 = KNETD
2115 = Bugs木馬
2140 = Deep Throat木馬
2401 = CVS
2535 = 惡鷹
2565 = Striker木馬
2583 = WinCrash木馬
2773 = Backdoor/SubSeven木馬
2774 = SubSeven木馬
2801 = Phineas Phucker木馬
2869 = UPNP(通用即插即用)
3024 = WinCrash木馬
3050 = InterBase
3128 = squid代理
3129 = Masters Paradise木馬
3150 = DeepThroat木馬
3306 = MYSQL
3389 = 遠程桌面
3544 = MSN語音
3545 = MSN語音
3546 = MSN語音
3547 = MSN語音
3548 = MSN語音
3549 = MSN語音
3550 = MSN語音
3551 = MSN語音
3552 = MSN語音
3553 = MSN語音
3554 = MSN語音
3555 = MSN語音
3556 = MSN語音
3557 = MSN語音
3558 = MSN語音
3559 = MSN語音
3560 = MSN語音
3561 = MSN語音
3562 = MSN語音
3563 = MSN語音
3564 = MSN語音
3565 = MSN語音
3566 = MSN語音
3567 = MSN語音
3568 = MSN語音
3569 = MSN語音
3570 = MSN語音
3571 = MSN語音
3572 = MSN語音
3573 = MSN語音
3574 = MSN語音
3575 = MSN語音
3576 = MSN語音
3577 = MSN語音
3578 = MSN語音
3579 = MSN語音
3700 = Portal of Doom木馬
4080 = WebAdmin
4081 = WebAdmin+SSL
4092 = WinCrash木馬
4267 = SubSeven木馬
4443 = AOL MSN
4567 = File Nail木馬
4590 = ICQ木馬
4661 = 電驢下載
4662 = 電驢下載
4663 = 電驢下載
4664 = 電驢下載
4665 = 電驢下載
4666 = 電驢下載
4899 = Radmin木馬
5000 = Sokets-de木馬
5000 = UPnP(通用即插即用)
5001 = Back Door Setup木馬
5060 = SIP
5168 = 高波蠕蟲
5190 = AOL MSN
5321 = Firehotcker木馬
5333 = NetMonitor木馬
5400 = Blade Runner木馬
5401 = Blade Runner木馬
5402 = Blade Runner木馬
5550 = JAPAN xtcp木馬
5554 = 假警察蠕蟲
5555 = ServeMe木馬
5556 = BO Facil木馬
5557 = BO Facil木馬
5569 = Robo-Hack木馬
5631 = pcAnywhere
5632 = pcAnywhere
5742 = WinCrash木馬
5800 = VNC端口
5801 = VNC端口
5890 = VNC端口
5891 = VNC端口
5892 = VNC端口
6267 = 廣外女生
6400 = The Thing木馬
6665 = IRC
6666 = IRC SERVER PORT
6667 = 小郵差
6668 = IRC
6669 = IRC
6670 = DeepThroat木馬
6711 = SubSeven木馬
6771 = DeepThroat木馬
6776 = BackDoor-G木馬
6881 = BT下載
6882 = BT下載
6883 = BT下載
6884 = BT下載
6885 = BT下載
6886 = BT下載
6887 = BT下載
6888 = BT下載
6889 = BT下載
6890 = BT下載
6939 = Indoctrination木馬
6969 = GateCrasher/Priority木馬
6970 = GateCrasher木馬
7000 = Remote Grab木馬
7001 = Windows messager
7070 = RealAudio控制口
7215 = Backdoor/SubSeven木馬
7300 = 網絡精靈木馬
7301 = 網絡精靈木馬
7306 = 網絡精靈木馬
7307 = 網絡精靈木馬
7308 = 網絡精靈木馬
7424 = Host Control Trojan
7467 = Padobot
7511 = 聰明基因
7597 = QaZ木馬
7626 = 冰河木馬
7789 = Back Door Setup/ICKiller木馬
8011 = 無賴小子
8102 = 網絡神偷
8181 = 災飛
9408 = 山泉木馬
9535 = 遠程管理
9872 = Portal of Doom木馬
9873 = Portal of Doom木馬
9874 = Portal of Doom木馬
9875 = Portal of Doom木馬
9898 = 假警察蠕蟲
9989 = iNi-Killer木馬
10066 = Ambush Trojan
10067 = Portal of Doom木馬
10167 = Portal of Doom木馬
10168 = 惡郵差
10520 = Acid Shivers木馬
10607 = COMA木馬
11000 = Senna Spy木馬
11223 = Progenic木馬
11927 = Win32.Randin
12076 = GJammer木馬
12223 = Keylogger木馬
12345 = NetBus木馬
12346 = GabanBus木馬
12361 = Whack-a-mole木馬
12362 = Whack-a-mole木馬
12363 = Whack-a-Mole木馬
12631 = WhackJob木馬
13000 = Senna Spy木馬
13223 = PowWow聊天
14500 = PC Invader木馬
14501 = PC Invader木馬
14502 = PC Invader木馬
14503 = PC Invader木馬
15000 = NetDemon木馬
15382 = SubZero木馬
16484 = Mosucker木馬
16772 = ICQ Revenge木馬
16969 = Priority木馬
17072 = Conducent廣告
17166 = Mosaic木馬
17300 = Kuang2 the virus Trojan
17449 = Kid Terror Trojan
17499 = CrazzyNet Trojan
17500 = CrazzyNet Trojan
17569 = Infector Trojan
17593 = Audiodoor Trojan
17777 = Nephron Trojan
19191 = 藍色火焰
19864 = ICQ Revenge木馬
20001 = Millennium木馬
20002 = Acidkor Trojan
20005 = Mosucker木馬
20023 = VP Killer Trojan
20034 = NetBus 2 Pro木馬
20808 = QQ女友
21544 = GirlFriend木馬
22222 = Proziack木馬
23005 = NetTrash木馬
23006 = NetTrash木馬
23023 = Logged木馬
23032 = Amanda木馬
23432 = Asylum木馬
23444 = 網絡公牛
23456 = Evil FTP木馬
23456 = EvilFTP-UglyFTP木馬
23476 = Donald-Dick木馬
23477 = Donald-Dick木馬
25685 = Moonpie木馬
25686 = Moonpie木馬
25836 = Trojan-Proxy
25982 = Moonpie木馬
26274 = Delta Source木馬
27184 = Alvgus 2000 Trojan
29104 = NetTrojan木馬
29891 = The Unexplained木馬
30001 = ErrOr32木馬
30003 = Lamers Death木馬
30029 = AOL木馬
30100 = NetSphere木馬
30101 = NetSphere木馬
30102 = NetSphere木馬
30103 = NetSphere 木馬
30103 = NetSphere木馬
30133 = NetSphere木馬
30303 = Sockets de Troie
30947 = Intruse木馬
31336 = Butt Funnel木馬
31337 = Back-Orifice木馬
31338 = NetSpy DK 木馬
31339 = NetSpy DK 木馬
31666 = BOWhack木馬
31785 = Hack Attack木馬
31787 = Hack Attack木馬
31788 = Hack-A-Tack木馬
31789 = Hack Attack木馬
31791 = Hack Attack木馬
31792 = Hack-A-Tack木馬
32100 = Peanut Brittle木馬
32418 = Acid Battery木馬
33333 = Prosiak木馬
33577 = Son of PsychWard木馬
33777 = Son of PsychWard木馬
33911 = Spirit 2000/2001木馬
34324 = Big Gluck木馬
34555 = Trinoo木馬
35555 = Trinoo木馬
36549 = Trojan-Proxy
37237 = Mantis Trojan
40412 = The Spy木馬
40421 = Agent 40421木馬
40422 = Master-Paradise木馬
40423 = Master-Paradise木馬
40425 = Master-Paradise木馬
40426 = Master-Paradise木馬
41337 = Storm木馬
41666 = Remote Boot tool木馬
46147 = Backdoor.sdBot
47262 = Delta Source木馬
49301 = Online KeyLogger木馬
50130 = Enterprise木馬
50505 = Sockets de Troie木馬
50766 = Fore木馬
51996 = Cafeini木馬
53001 = Remote Windows Shutdown木馬
54283 = Backdoor/SubSeven木馬
54320 = Back-Orifice木馬
54321 = Back-Orifice木馬
55165 = File Manager木馬
57341 = NetRaider木馬
58339 = Butt Funnel木馬
60000 = DeepThroat木馬
60411 = Connection木馬
61348 = Bunker-hill木馬
61466 = Telecommando木馬
61603 = Bunker-hill木馬
63485 = Bunker-hill木馬
65000 = Devil木馬
65390 = Eclypse木馬
65432 = The Traitor木馬
65535 = Rc1木馬
UDP端口
31 = Masters Paradise木馬
41 = DeepThroat木馬
53 = 域名解析
67 = 動態IP服務
68 = 動態IP客戶端
135 = 本地服務
137 = NETBIOS名稱
138 = NETBIOS DGM服務
139 = 文件共享
146 = FC-Infector木馬
161 = SNMP服務
162 = SNMP查詢
445 = SMB(交換服務器消息塊)
500 = VPN密鑰協商
666 = Bla木馬
999 = DeepThroat木馬
1027 = 灰鴿子
1042 = Bla木馬
1561 = MuSka52木馬
1900 = UPNP(通用即插即用)
2140 = Deep Throat木馬
2989 = Rat木馬
3129 = Masters Paradise木馬
3150 = DeepThroat木馬
3700 = Portal of Doom木馬
4000 = QQ聊天
4006 = 灰鴿子
5168 = 高波蠕蟲
6670 = DeepThroat木馬
6771 = DeepThroat木馬
6970 = ReadAudio音頻數據
8000 = QQ聊天
8099 = VC遠程調試
8225 = 灰鴿子
9872 = Portal of Doom木馬
9873 = Portal of Doom木馬
9874 = Portal of Doom木馬
9875 = Portal of Doom木馬
10067 = Portal of Doom木馬
10167 = Portal of Doom木馬
22226 = 高波蠕蟲
26274 = Delta Source木馬
31337 = Back-Orifice木馬
31785 = Hack Attack木馬
31787 = Hack Attack木馬
31788 = Hack-A-Tack木馬
31789 = Hack Attack木馬
31791 = Hack Attack木馬
31792 = Hack-A-Tack木馬
34555 = Trin00 DDoS木馬
40422 = Master-Paradise木馬
40423 = Master-Paradise木馬
40425 = Master-Paradise木馬
40426 = Master-Paradise木馬
47262 = Delta Source木馬
54320 = Back-Orifice木馬
54321 = Back-Orifice木馬
60000 = DeepThroat木馬
六、查看端口的相關方法和工具
1 netstat -an
在cmd中輸入這個命令就可以了。如下:
C:\>netstat -an
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1028 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3372 0.0.0.0:0 LISTENING
UDP 0.0.0.0:135 *:*
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:1027 *:*
UDP 127.0.0.1:1029 *:*
UDP 127.0.0.1:1030 *:*
這是我沒上網的時候機器所開的端口,兩個135和445是固定端口,其餘幾個都是動態端口。
2 Strobe
超級優化TCP端口檢測程序Strobe是一個TCP端口掃描器。它具有在最大帶寬利用率和最小進程資源需求下,迅速地定位和掃描一臺遠程目標主機或許多臺主機的所有TCP“監聽”端口的能力。
3 Internet Scanner
Internet Scanner可以說是可得到的最快和功能最全的安全掃描工具,用於UNIX和Windows NT。它容易配置,掃描速度快,並且能產生綜合報告。
4 Port Scanner
Port Scanner是一個運行於Windows 95 和Windows NT上的端口掃描工具,其開始界面上顯示了兩個輸入框,上面的輸入框用於要掃描的開始主機IP地址,下面的輸入框用於輸入要掃描的結束主機IP地址。在這兩個IP地址之間的主機將被掃描。
5 Nmap
世界上最受黑客歡迎的掃描器,能實現秘密掃描、動態延遲、重發與平行掃描、欺騙掃描、端口過濾探測、RPC直接掃描、分佈掃描等,靈活性非常好,功能強大
七、端口在入侵中的作用,我們該如何保護?
7.1端口在入侵中的作用
黑客曾經把目標終端比作房子,而把端口比作通向不同房間(服務)的門,入侵者要佔領這間房子,勢必要破門而入,那麼對於入侵者來說,瞭解房子開了幾扇門,都是什麼樣的門,門後面有什麼東西就顯得至關重要。
入侵者通常會用掃描器對目標主機的端口進行掃描,以確定哪些端口是開放的,從開放的端口,入侵者可以知道目標主機大致提供了哪些服務,進而猜測可能存在的漏洞,因此對端口的掃描可以幫助我們更好的瞭解目標主機,而對於管理員,掃描本機的開放端口也是做好安全防範的第一步。
7.2常被黑客利用的端口
一些端口常常會被黑客利用,還會被一些木馬病毒利用,對計算機系統進行攻擊,以下是被黑客入侵的的端口分析。
1、21端口滲透剖析
FTP通常用作對遠程服務器進行管理,典型應用就是對web系統進行管理。一旦FTP密碼洩露就直接威脅web系統安全,甚至黑客通過提權可以直接控制服務器。這裡以Serv_uFTP服務器為例,剖析滲透FTP服務器的幾種方法。
(1)對Serv_u5.004以及以下版本可直接使用溢出程序進行遠程溢出,成功後可直接得到系統權限。使用kali 裡面的metespolit滲透工具包進行溢出。這個工具是需要安裝的。
(2)暴力破解FTP密碼,關鍵是字典的製作。一般用的破解工具是X-way。
(3)讀取Serv_u用戶配置文件,並破解用戶加密密碼。一般使用webshell進行讀取。
(4)通過本地提權工具,可執行任意系統命令。
(5)使用嗅探方式截取FTP密碼,使用工具Cain進行滲透。
2、23端口滲透剖析
telnet是一種舊的遠程管理方式,使用telnet工具登錄系統過程中,網絡上傳輸的用戶和密碼都是以明文方式傳送的,黑客可使用嗅探技術截獲到此類密碼。
(1)暴力破解技術是常用的技術,使用X-SCAN掃描器對其進行破解。
(2)在linux系統中一般採用SSH進行遠程訪問,傳輸的敏感數據都是經過加密的。而對於windows下的telnet來說是脆弱的,因為默認沒有經過任何加密就在網絡中進行傳輸。使用cain等嗅探工具可輕鬆截獲遠程登錄密碼。
3、53端口滲透剖析
53端口是DNS域名服務器的通信端口,通常用於域名解析。也是網絡中非常關鍵的服務器之一。這類服務器容易受到攻擊。對於此端口的滲透,一般有三種方式。
(1)使用DNS遠程溢出漏洞直接對其主機進行溢出攻擊,成功後可直接獲得系統權限。
(2)使用DNS欺騙攻擊,可對DNS域名服務器進行欺騙,如果黑客再配合網頁木馬進行掛馬攻擊,無疑是一種殺傷力很強的攻擊,黑客可不費吹灰之力就控制內網的大部分主機。這也是內網滲透慣用的技法之一。
(3)拒絕服務攻擊,利用拒絕服務攻擊可快速的導致目標服務器運行緩慢,甚至網絡癱瘓。如果使用拒絕服務攻擊其DNS服務器。將導致用該服務器進行域名解析的用戶無法正常上網。
4、80端口滲透剖析
80端口通常提供web服務。目前黑客對80端口的攻擊典型是採用SQL注入的攻擊方法,腳本滲透技術也是一項綜合性極高的web滲透技術,同時腳本滲透技術對80端口也構成嚴重的威脅。
(1)對於windows2000的IIS5.0版本,黑客使用遠程溢出直接對遠程主機進行溢出攻擊,成功後直接獲得系統權限。
(2)對於windows2000中IIS5.0版本,黑客也嘗試利用‘Microsoft IISCGI’文件名錯誤解碼漏洞攻擊。使用X-SCAN可直接探測到IIS漏洞。
(3)IIS寫權限漏洞是由於IIS配置不當造成的安全問題,攻擊者可向存在此類漏洞的服務器上傳惡意代碼,比如上傳腳本木馬擴大控制權限。
(4)普通的http封包是沒有經過加密就在網絡中傳輸的,這樣就可通過嗅探類工具截取到敏感的數據。如使用Cain工具完成此類滲透。
(5)80端口的攻擊,更多的是採用腳本滲透技術,利用web應用程序的漏洞進行滲透是目前很流行的攻擊方式。
(6)對於滲透只開放80端口的服務器來說,難度很大。利用端口複用工具可解決此類技術難題。
(7)CC攻擊效果不及DDOS效果明顯,但是對於攻擊一些小型web站點還是比較有用的。CC攻擊可使目標站點運行緩慢,頁面無法打開,有時還會爆出web程序的絕對路徑。
5、135端口的滲透剖析
135端口主要用於使用RPC協議並提供DCOM服務,通過RPC可以保證在一臺計算機上運行的程序可以順利地執行遠程計算機上的代碼;使用DCOM可以通過網絡直接進行通信,能夠跨包括HTTP協議在內的多種網絡傳輸。同時這個端口也爆出過不少漏洞,最嚴重的就是緩衝區溢出漏洞,曾經瘋狂一時的‘衝擊波’病毒就是利用這個漏洞進行傳播的。對於135端口的滲透,黑客的滲透方法為:
(1)查找存在RPC溢出的主機,進行遠程溢出攻擊,直接獲得系統權限。如用‘DSScan’掃描存在此漏洞的主機。對存在漏洞的主機可使用‘ms05011.exe’進行溢出,溢出成功後獲得系統權限。
(2)掃描存在弱口令的135主機,利用RPC遠程過程調用開啟telnet服務並登錄telnet執行系統命令。系統弱口令的掃描一般使用X-SCAN和SHCAN。對於telnet服務的開啟可使用工具Recton。
6、139/445端口滲透剖析
139端口是為‘NetBIOS SessionService’提供的,主要用於提供windows文件和打印機共享以及UNIX中的Samba服務。445端口也用於提供windows文件和打印機共享,在內網環境中使用的很廣泛。這兩個端口同樣屬於重點攻擊對象,139/445端口曾出現過許多嚴重級別的漏洞。
下面剖析滲透此類端口的基本思路。
(1)對於開放139/445端口的主機,一般嘗試利用溢出漏洞對遠程主機進行溢出攻擊,成功後直接獲得系統權限。
(2)對於攻擊只開放445端口的主機,黑客一般使用工具‘MS06040’或‘MS08067’.可使用專用的445端口掃描器進行掃描。NS08067溢出工具對windows2003系統的溢出十分有效,工具基本使用參數在cmd下會有提示。
(3)對於開放139/445端口的主機,黑客一般使用IPC$進行滲透。在沒有使用特點的賬戶和密碼進行空連接時,權限是最小的。獲得系統特定賬戶和密碼成為提升權限的關鍵了,比如獲得administrator賬戶的口令。
(4)對於開放139/445端口的主機,可利用共享獲取敏感信息,這也是內網滲透中收集信息的基本途徑。
7、1433端口滲透剖析
1433是SQLServer默認的端口,SQL Server服務使用兩個端口:tcp-1433、UDP-1434.其中1433用於供SQLServer對外提供服務,1434用於向請求者返回SQLServer使用了哪些TCP/IP端口。1433端口通常遭到黑客的攻擊,而且攻擊的方式層出不窮。最嚴重的莫過於遠程溢出漏洞了,如由於SQL注射攻擊的興起,各類數據庫時刻面臨著安全威脅。利用SQL注射技術對數據庫進行滲透是目前比較流行的攻擊方式,此類技術屬於腳本滲透技術。
(1)對於開放1433端口的SQL Server2000的數據庫服務器,黑客嘗試使用遠程溢出漏洞對主機進行溢出測試,成功後直接獲得系統權限。
(2)暴力破解技術是一項經典的技術。一般破解的對象都是SA用戶。通過字典破解的方式很快破解出SA的密碼。
(3)嗅探技術同樣能嗅探到SQL Server的登錄密碼。
(4)由於腳本程序編寫的不嚴密,例如,程序員對參數過濾不嚴等,這都會造成嚴重的注射漏洞。通過SQL注射可間接性的對數據庫服務器進行滲透,通過調用一些存儲過程執行系統命令。可以使用SQL綜合利用工具完成。
8、1521端口滲透剖析
1521是大型數據庫Oracle的默認監聽端口,估計新手還對此端口比較陌生,平時大家接觸的比較多的是Access,MSSQL以及MYSQL這三種數據庫。一般大型站點才會部署這種比較昂貴的數據庫系統。對於滲透這種比較複雜的數據庫系統,黑客的思路如下:
(1)Oracle擁有非常多的默認用戶名和密碼,為了獲得數據庫系統的訪問權限,破解數據庫系統用戶以及密碼是黑客必須攻破的一道安全防線。
(2)SQL注射同樣對Oracle十分有效,通過注射可獲得數據庫的敏感信息,包括管理員密碼等。
(3)在注入點直接創建java,執行系統命令。
9、3306端口滲透剖析
3306是MYSQL數據庫默認的監聽端口,通常部署在中型web系統中。在國內LAMP的配置是非常流行的,對於php+mysql構架的攻擊也是屬於比較熱門的話題。mysql數據庫允許用戶使用自定義函數功能,這使得黑客可編寫惡意的自定義函數對服務器進行滲透,最後取得服務器最高權限。對於3306端口的滲透,黑客的方法如下:
(1)由於管理者安全意識淡薄,通常管理密碼設置過於簡單,甚至為空口令。使用破解軟件很容易破解此類密碼,利用破解的密碼登錄遠程mysql數據庫,上傳構造的惡意UDF自定義函數代碼進行註冊,通過調用註冊的惡意函數執行系統命令。或者向web目錄導出惡意的腳本程序,以控制整個web系統。
(2)功能強大的‘cain’同樣支持對3306端口的嗅探,同時嗅探也是滲透思路的一種。
(3)SQL注入同樣對mysql數據庫威脅巨大,不僅可以獲取數據庫的敏感信息,還可使用load_file()函數讀取系統的敏感配置文件或者從web數據庫鏈接文件中獲得root口令等,導出惡意代碼到指定路徑等。
10、3389端口滲透剖析
3389是windows遠程桌面服務默認監聽的端口,管理員通過遠程桌面對服務器進行維護,這給管理工作帶來的極大的方便。通常此端口也是黑客們較為感興趣的端口之一,利用它可對遠程服務器進行控制,而且不需要另外安裝額外的軟件,實現方法比較簡單。當然這也是系統合法的服務,通常是不會被殺毒軟件所查殺的。使用‘輸入法漏洞’進行滲透。
(1)對於windows2000的舊系統版本,使用‘輸入法漏洞’進行滲透。
(2)針對windows2000終端服務的一個密碼破解程序,這個程序被微軟公司推薦給用戶使用,來檢查終端服務密碼的強壯性。程序使用msrdp空間,可在本地虛擬遠程終端連接窗口,通過密碼字典進行破解。可以指定多種參數,使用比較靈活,破解速度視攻擊主機與被攻擊主機網絡帶寬來定。稍等下,虛擬機有點卡。我們先看第三種方法吧。
(3)cain是一款超級的滲透工具,同樣支持對3389端口的嗅探。
(4)映像劫持與shift粘貼鍵的配合使用。通常安全人員配置服務器安全時,都會考慮使用功能強大的組策略。比如阻止非法攻擊者執行cmd命令和拒絕非授權遠程登錄用戶等(關於組策略的詳細設置方法我們已經在信息系統安全工程師課程做了詳細的講解),即使你擁有管理員權限同樣不能進行登錄。黑客突破組策略的秘籍就在3389登錄框這裡,也就是映像劫持與shift粘貼鍵的配合使用,調出任務管理器然後在任務管理器中打開組策略編輯器,這裡可根據實際情侶進行修改了。
(5)社會工程學通常是最可怕的攻擊技術,如果管理者的一切習慣和規律被黑客摸透的話,那麼他管理的網絡系統會因為他的弱點被滲透。
11、4899端口滲透剖析
4899端口是remoteadministrator遠程控制軟件默認監聽的端口,也就是平時常說的radmini影子。radmini目前支持TCP/IP協議,應用十分廣泛,在很多服務器上都會看到該款軟件的影子。對於此軟件的滲透,思路如下:
(1)radmini同樣存在不少弱口令的主機,通過專用掃描器可探測到此類存在漏洞的主機。
(2)radmini遠控的連接密碼和端口都是寫入到註冊表系統中的,通過使用webshell註冊表讀取功能可讀取radmini在註冊表的各項鍵值內容,從而破解加密的密碼散列。
12、5631端口滲透剖析
5631端口是著名遠程控制軟件symantecpcanywhere的默認監聽端口,同時也是世界領先的遠程控制軟件。利用此軟件,用戶可以有效管理計算機並快速解決技術支持問題。由於軟件的設計缺陷,使得黑客可隨意下載保存連接密碼的*.cif文件,通過專用破解軟件進行破解。這些操作都必須在擁有一定權限下才可完成,至少通過腳本滲透獲得一個webshell。通常這些操作在黑客界被稱為pcanywhere提權技術。
13、5900端口滲透剖析
5900端口是優秀遠程控制軟件VNC的默認監聽端口,此軟件由著名的AT&T的歐洲研究實驗室開發的。VNC是在基於unix和linux操作系統的免費的開放源碼軟件,遠程控制能力強大,高效實用,其性能可以和windows和MAC中的任何一款控制軟件媲美。對於該端口的滲透,思路如下:
(1)VNC軟件存在密碼驗證繞過漏洞,此高危漏洞可以使得惡意攻擊者不需要密碼就可以登錄到一個遠程系統。
(2)cain同樣支持對VNC的嗅探,同時支持端口修改。
(3)VNC的配置信息同樣被寫入註冊表系統中,其中包括連接的密碼和端口。利用webshell的註冊表讀取功能進行讀取加密算法,然後破解。
14、8080端口滲透剖析
8080端口通常是apache_Tomcat服務器默認監聽端口,apache是世界使用排名第一的web服務器。國內很多大型系統都是使用apache服務器,對於這種大型服務器的滲透,主要有以下方法:
(1)apache tomcatUTF-8目錄遍歷漏洞,tomcat處理請求中的編碼時存在漏洞,如果在context.xml或server.xml中將allowlinking設置為true,且連接器配置為URIEncoding=UTF-8,若黑客向apache提交惡意請求就可以通過目錄遍歷攻擊讀取服務器上的任意文件,包括/etc/passwd等
(2)apache後臺弱口令漏洞,黑客可使用專用掃描器探測此類漏洞。
(3)JSP爆源碼漏洞,對於一些舊版本的tomcat,黑客通過提交一些注入.jsP.Jsp等,嘗試找源碼代碼和目錄文件。查找上傳文件,直接上傳他們的JSP腳本後門。
(4)apache在windows環境下是以系統權限啟動的,JSP的腳本同樣繼承了該權限,可直接執行任意系統命令。
7.3最後我們如何保護好自己的端口
電腦開放了過多端口,擔心其中就有後門程序的端口,擔心被滲透怎麼辦? 那麼只要做好下面幾點就行了:
1) 查看:經常用命令或軟件查看本地所開放的端口,看是否有可疑端口;
2) 判斷:如果開放端口中有你不熟悉的,應該馬上查找端口大全或木馬常見端口等資料,看看裡面對你那個可疑端口的作用描述,或者通過軟件查看開啟此端口的進程來進行判斷;
3) 限制:如果真是木馬端口或者資料中沒有這個端口的描述,那麼應該關閉此端口,你可以用防火牆來屏蔽此端口,也可以用本地連接-TCP/IP-高級-選項-TCP/IP篩選,啟用篩選機制來篩選端口;
限制端口的方法如下:
對於採用windows的用戶來說,不需要安裝任何其他軟件,可以利用"修改組策略"或"TCP/IP篩選功能"限制服務器的端口。
具體設置如下:
第一種方法——“修改組策略”:
第一步,在“運行”輸入gpedit.msc,回車打開“組策略”,在組策略中的windows設置-安全設置中選中“IP 安全策略,在本地計算機”,在右邊窗格的空白位置右擊鼠標,彈出快捷菜單,選擇“創建 IP 安全策略”,於是彈出一個嚮導。在嚮導中點擊“下一步”按鈕,為新的安全策略命名;再按“下一步”,則顯示“安全通信請求”畫面,在畫面上把“激活默認相應規則”左邊的鉤去掉,點擊“完成”按鈕就創建了一個新的IP 安全策略。
第二步,右擊該IP安全策略,在“屬性”對話框中,把“使用添加嚮導”左邊的鉤去掉,然後單擊“添加”按鈕添加新的規則,隨後彈出“新規則屬性”對話框,在畫面上點擊“添加”按鈕,彈出IP篩選器列表窗口;在列表中,首先把“使用添加嚮導”左邊的鉤去掉,然後再點擊右邊的“添加”按鈕添加新的篩選器。
第三步,進入“篩選器屬性”對話框,首先看到的是尋址,源地址選“任何 IP 地址”,目標地址選“我的 IP 地址”;點擊“協議”選項卡,在“選擇協議類型”的下拉列表中選擇“TCP”,然後在“到此端口”下的文本框中輸入“135”,點擊“確定”按鈕,這樣就添加了一個屏蔽 TCP 135(RPC)端口的篩選器,它可以防止外界通過135端口連上你的電腦。點擊“確定”後回到篩選器列表的對話框,可以看到已經添加了一條策略,重複以上步驟繼續添加 TCP 137、139、445、593 端口和 UDP 135、139、445 端口,為它們建立相應的篩選器。重複以上步驟添加TCP 1025、2745、3127、6129、3389 端口的屏蔽策略,建立好上述端口的篩選器,最後點擊“確定”按鈕。
第四步,在“新規則屬性”對話框中,選擇“新 IP 篩選器列表”,然後點擊其左邊的圓圈上加一個點,表示已經激活,最後點擊“篩選器操作”選項卡。在“篩選器操作”選項卡中,把“使用添加嚮導”左邊的鉤去掉,點擊“添加”按鈕,添加“阻止”操作:在“新篩選器操作屬性”的“安全措施”選項卡中,選擇“阻止”,然後點擊“確定”按鈕。
第五步,進入“新規則屬性”對話框,點擊“新篩選器操作”,其左邊的圓圈會加了一個點,表示已經激活,點擊“關閉”按鈕,關閉對話框;最後回到“新IP安全策略屬性”對話框,在“新的IP篩選器列表”左邊打鉤,按“確定”按鈕關閉對話框。在“本地安全策略”窗口,用鼠標右擊新添加的 IP 安全策略,然後選擇“指派”。
於是重新啟動後,電腦中上述網絡端口就被關閉了,病毒和黑客再也不能連上這些端口,從而保護了你的電腦。
第二種方法——"TCP/IP篩選功能":
1、右鍵點擊“網上鄰居”,選擇“屬性”,然後雙擊“本地連接”(如果是撥號上網用戶,選擇“我的連接”圖標),彈出“本地連接狀態”對話框。
2、點擊[屬性]按鈕,彈出“本地連接屬性”,選擇“此連接使用下列項目”中的“Internet協議(TCP/IP)”,然後點擊[屬性]按鈕。
3、在彈出的“Internet協議(TCP/IP)”對話框中點擊[高級]按鈕。在彈出的“高級TCP/IP設置”中,選擇“選項”標籤,選中“TCP/IP篩選”,然後點擊[屬性]按鈕。
4、在彈出的“TCP/IP篩選”對話框裡選擇“啟用TCP/IP篩選”的複選框,然後把左邊“TCP端口”上的“只允許”選上。
這樣,您就可以來自己添加或刪除您的TCP或UDP或IP的各種端口了。
添加或者刪除完畢,重新啟動機器以後,您的服務器就被保護起來了。
閱讀更多 信息安全我來講你來聽 的文章