程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言基礎之端口介紹

C語言基礎之端口介紹

編輯:關於C

端口包括兩種,一種是硬件的,就是插網線的那個口。一種是軟件的,是一種虛擬的口。
一個應用程序需要一個虛擬的連接口。
比如你上網頁所需要的HTTP協議。它所使用的就是80端口。
你文件傳輸所使用的FTP用的就是22、23兩個端口。
比如在TCP/IP協議中,運輸層與應用層的連接就是靠端口來實現的.端口其實是一種虛擬的東西!
在Internet上,各主機間通過TCP/TP協議發送和接收數據報,各個數據報根據其目的主機的ip地址來進行互聯網絡中的路由選擇。可見,把數據報順利的傳送到目的主機是沒有問題的。問題

出在哪裡呢?我們知道大多數操作系統都支持多程序(進程)同時運行,那麼目的主機應該把接收到的數據報傳送給眾多同時運行的進程中的哪一個呢?顯然這個問題有待解決,端口機制便由此被引入進來。
什麼是端口
本地操作系統會給那些有需求的進程分配協議端口(protocal port,即我們常說的端口),每個協議端口由一個正整數標識,如:80,139,445,等等。當目的主機接收到數據報後,將

根據報文首部的目的端口號,把數據發送到相應端口,而與此端口相對應的那個進程將會領取數據並等待下一組數據的到來。說到這裡,端口的概念似乎仍然抽象,那麼繼續跟我來,別走開


端口其實就是隊,操作系統為各個進程分配了不同的隊,數據報按照目的端口被推入相應的隊中,等待被進程取用,在極特殊的情況下,這個隊也是有可能溢出的,不過操作系統允許各

進程指定和調整自己的隊的大小。
不光接受數據報的進程需要開啟它自己的端口,發送數據報的進程也需要開啟
端口概念
  在網絡技術中,端口(Port)大致有兩種意思:一是物理意義上的端口,比如,ADSL Modem、集線器、交換機、路由器用於連接其他網絡設備的接口,如RJ-45端口、SC端口等等。二是邏

輯意義上的端口,一般是指TCP/IP協議中的端口,端口號的范圍從0到65535,比如用於浏覽網頁服務的80端口,用於FTP服務的21端口等等。我們這裡將要介紹的就是邏輯意義上的端口。


  查看端口
  在Windows 2000/XP/Server 2003中要查看端口,可以使用Netstat命令:
依次點擊“開始→運行”,鍵入“cmd”並回車,打開命令提示符窗口。在命令提示符狀態下鍵入“netstat -a -n”,按下回車鍵後就可以看到以數字形式顯示的TCP和UDP連接的端口號

及狀態。

  關閉/開啟端口
在介紹各種端口的作用前,這裡先介紹一下在Windows中如何關閉/打開端口,因為默認的情況下,有很多不安全的或沒有什麼用的端口是開啟的,比如Telnet服務的23端口、FTP服務的21端口、SMTP服務的25端口、RPC服務的135端口等等。為了保證系統的安全性,我們可以通過下面的方法來關閉/開啟端口。

  關閉端口
比如在Windows 2000/XP中關閉SMTP服務的25端口,可以這樣做:首先打開“控制面板”,雙擊“管理工具”,再雙擊“服務”。接著在打開的服務窗口中找到並雙擊“Simple Mail

Transfer Protocol (SMTP)”服務,單擊“停止”按鈕來停止該服務,然後在“啟動類型”中選擇“已禁用”,最後單擊“確定”按鈕即可。這樣,關閉了SMTP服務就相當於關閉了對應的

端口。

  開啟端口
如果要開啟該端口只要先在“啟動類型”選擇“自動”,單擊“確定”按鈕,再打開該服務,在“服務狀態”中單擊“啟動”按鈕即可啟用該端口,最後,單擊“確定”按鈕即可。
提示:在Windows 98中沒有“服務”選項,你可以使用防火牆的規則設置功能來關閉/開啟端口。
 

  端口分類

  邏輯意義上的端口有多種分類標准,下面將介紹兩種常見的分類:

  1. 按端口號分布劃分

  (1)知名端口(Well-Known Ports)
知名端口即眾所周知的端口號,范圍從0到1023,這些端口號一般固定分配給一些服務。比如21端口分配給FTP服務,25端口分配給SMTP(簡單郵件傳輸協議)服務,80端口分配給HTTP服務,135端口分配給RPC(遠程過程調用)服務等等。

  (2)動態端口(Dynamic Ports)
動態端口的范圍從1024到65535,這些端口號一般不固定分配給某個服務,也就是說許多服務都可以使用這些端口。只要運行的程序向系統提出訪問網絡的申請,那麼系統就可以從這些端口號中分配一個供該程序使用。比如1024端口就是分配給第一個向系統發出申請的程序。在關閉程序進程後,就會釋放所占用的端口號。
不過,動態端口也常常被病毒木馬程序所利用,如冰河默認連接端口是7626、WAY 2.4是8011、Netspy 3.0是7306、YAI病毒是1024等等。

  2. 按協議類型劃分
按協議類型劃分,可以分為TCP、UDP、IP和ICMP(Internet控制消息協議)等端口。下面主要介紹TCP和UDP端口:

  (1)TCP端口
TCP端口,即傳輸控制協議端口,需要在客戶端和服務器之間建立連接,這樣可以提供可靠的數據傳輸。常見的包括FTP服務的21端口,Telnet服務的23端口,SMTP服務的25端口,以及HTTP服務的80端口等等。

  (2)UDP端口
UDP端口,即用戶數據包協議端口,無需在客戶端和服務器之間建立連接,安全性得不到保障。常見的有DNS服務的53端口,SNMP(簡單網絡管理協議)服務的161端口,QQ使用的8000和4000端口等等。
 


  常見網絡端口

  網絡基礎知識!端口對照

  端口:0
服務:Reserved
說明:通常用於分析操作系統。這一方法能夠工作是因為在一些系統中“0”是無效端口,當你試圖使用通常的閉合端口連接它時將產生不同的結果。一種典型的掃描,使用IP地址為

0.0.0.0,設置ACK位並在以太網層廣播。

  端口:1
服務:tcpmux
說明:這顯示有人在尋找SGI Irix機器。Irix是實現tcpmux的主要提供者,默認情況下tcpmux在這種系統中被打開。Irix機器在發布是含有幾個默認的無密碼的帳戶,如:IP、GUEST

UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。許多管理員在安裝後忘記刪除這些帳戶。因此HACKER在INTERNET上搜索tcpmux並利用這些帳戶。

  端口:7
服務:Echo
說明:能看到許多人搜索Fraggle放大器時,發送到X.X.X.0和X.X.X.255的信息。

  端口:19
服務:Character Generator
說明:這是一種僅僅發送字符的服務。UDP版本將會在收到UDP包後回應含有垃圾字符的包。TCP連接時會發送含有垃圾字符的數據流直到連接關閉。HACKER利用IP欺騙可以發動DoS攻擊。

偽造兩個chargen服務器之間的UDP包。同樣Fraggle DoS攻擊向目標地址的這個端口廣播一個帶有偽造受害者IP的數據包,受害者為了回應這些數據而過載。

  端口:21
服務:FTP
說明:FTP服務器所開放的端口,用於上傳、下載。最常見的攻擊者用於尋找打開anonymous的FTP服務器的方法。這些服務器帶有可讀寫的目錄。木馬Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所開放的端口。
C語言基礎之端口介紹

端口: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
說明:通過DSL和Cable modem的防火牆常會看見大量發送到廣播地址255.255.255.255的數據。這些機器在向DHCP服務器請求一個地址。HACKER常進入它們,分配一個地址把自己作為局部路由器而發起大量中間人(man-in-middle)攻擊。客戶端向68端口廣播請求配置,服務器向67端口廣播回應請求。這種回應使用廣播是因為客戶端還不知道可以發送的IP地址。

  端口:69
服務:Trival File Transfer
說明:許多服務器與bootp一起提供這項服務,便於從系統下載啟動代碼。但是它們常常由於錯誤配置而使入侵者能從系統中竊取任何 文件。它們也可用於系統寫入文件。

  端口:79
服務:Finger Server
說明:入侵者用於獲得用戶信息,查詢操作系統,探測已知的緩沖區溢出錯誤,回應從自己機器到其他機器Finger掃描。

  端口:80
服務:HTTP
說明:用於網頁浏覽。木馬Executor開放此端口。

  端口:99
服務:Metagram Relay
說明:後門程序ncx99開放此端口。

  端口:102
服務:Message transfer agent(MTA)-X.400 over TCP/IP
說明:消息傳輸代理。

  端口:109
服務:Post Office Protocol -Version3
說明: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通信。這個端口的連接通常是人們在尋找USENET服務器。多數ISP限制,只有他們的客戶才能訪問他們的新聞組服務器。打開新聞組服務器將允許發/讀任何人的帖子,訪問被限制的新聞組服務器,匿名發帖或發送SPAM。

  端口:135
服務:Location Service
說明:Microsoft在這個端口運行DCE RPC end-point mapper為它的DCOM服務。這與UNIX 111端口的功能很相似。使用DCOM和RPC的服務利用計算機上的end-point mapper注冊它們的位置。遠端客戶連接到計算機時,它們查找end-point mapper找到服務的位置。HACKER掃描計算機的這個端口是為了找到這個計算機上運行Exchange Server嗎?什麼版本?還有些DOS攻擊直接針對這個端口。

  端口:137、138、139
服務:NETBIOS Name Service
說明:其中137、138是UDP端口,當通過網上鄰居傳輸文件時用這個端口。而139端口:通過這個端口進入的連接試圖獲得NetBIOS/SMB服務。這個協議被用於windows文件和打印機共享和SAMBA。還有WINS Regisrtation也用它。

  端口:143
服務:Interim Mail Access Protocol v2
說明:和POP3的安全問題一樣,許多IMAP服務器存在有緩沖區溢出漏洞。記住:一種LINUX蠕蟲(admv0rm)會通過這個端口繁殖,因此許多這個端口的掃描來自不知情的已經被感染的用

戶。當REDHAT在他們的LINUX發布版本中默認允許IMAP後,這些漏洞變的很流行。這一端口還被用於IMAP2,但並不流行。

  端口:161
服務:SNMP
說明:SNMP允許遠程管理設備。所有配置和運行信息的儲存在數據庫中,通過SNMP可獲得這些信息。許多管理員的錯誤配置將被暴露在Internet。Cackers將試圖使用默認的密碼public、

private訪問系統。他們可能會試驗所有可能的組合。SNMP包可能會被錯誤的指向用戶的網絡。

  端口:177
服務:X Display Manager Control Protocol
說明:許多入侵者通過它訪問X-windows操作台,它同時需要打開6000端口。

  端口:389
服務:LDAP、ILS
說明:輕型目錄訪問協議和NetMeeting Internet Locator Server共用這一端口。

  端口:443
服務:Https
說明:網頁浏覽端口,能提供加密和通過安全端口傳輸的另一種HTTP。

  端口:456
服務:[NULL]
說明:木馬HACKERS PARADISE開放此端口。

  端口:513
服務:Login,remote login
說明:是從使用cable modem或DSL登陸到子網中的UNIX計算機發出的廣播。這些人為入侵者進入他們的系統提供了信息。

  端口:544
服務:[NULL]
說明:kerberos kshell

  端口:548
服務:Macintosh,File Services(AFP/IP)
說明:Macintosh,文件服務。

  端口:553
服務:CORBA IIOP (UDP)
說明:使用cable modem、DSL或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可運行於任何端口(到底是哪個端口,需要在端口111做portmap查詢),只是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端口。

  端口:1025、1033
服務:1025:network blackjack 1033:[NULL]
說明:木馬netspy開放這2個端口。

  端口: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
說明:Microsoft的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也存在這個問題端口,這樣,數據報中將會標識有源端口,以便接受方能順利的回傳數據報到這個端口。
 

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved