天天看點

tcp端口掃描與syn掃描

連接配接網絡裝置時,一般都會在網絡裝置端選取0-65535之間的一個端口進行連接配接,端口掃描是指:檢查網絡裝置上0-65535号端口哪些端口是開啟狀态。如果黑客掃描到某網絡裝置的80端口是開啟狀态,那麼很有可能是web服務,此時黑客會使用一些手段攻擊web伺服器,這樣一來,端口掃描會增加伺服器的安全負擔,是以一般網絡都會阻止端口掃描。當然端口掃描對于防禦性滲透測試也非常有用。我們可以掃描自己的系統來确定哪些服務暴露給了網絡,這樣我們就能有針對性的對系統的配置進行檢查。本節屬于解釋的是端口掃描的原理。

 一、TCP掃描

  使用socket建立套接字,利用三次握手協定來判斷目标端口是否存活。  

  原理:

1、掃描端向目标端發送SYN請求建立連接配接

2、目标端收到請求後,回複ACK同意連接配接并同意發送SYN請求建立連接配接

3、掃描端收到後,發送ACK同意,此時三次握手完成,以此來判斷端口是否存活      

  

tcp端口掃描與syn掃描

TCP掃描的python實作過程

importtime
	importsocket
	
	out_time=1
	
	deftcp_scan(ip,port):
	    try:
	        s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)	  #建立socket連接配接,TCP協定
	        s.settimeout(out_time)	                      #設定逾時時間
	        c=s.connect_ex((ip,port))	                #與目标端建立連接配接,成功但會 0
	    ifc==0:
	        print("%s:%sopen!"%(ip,port))
	    exceptExceptionase:
	        print(e)
	    s.close()
	
	s_time=time.time()
	ip="10.32.1.238"          #目标機ip
	foriinrange(20,50):       #掃描端口的範圍
	tcp_scan(ip,i)
	e_time=time.time()
	print(e_time-s_time)
	
      

  二、SYN掃描

  為針對TCP掃描,目前有種防禦方式:若發現網絡中的某台裝置進行了端口掃描,會将其加入黑名單。實作這種防禦的原理是:每次TCP連接配接後會将資訊記錄到日志中,當發現某IP多次連接配接裝置的不同端口,就可以判斷是TCP掃描,此時就可以将此IP加入黑名單。

   為避免被TCP掃描抓到,誕生了SYN掃描,原理同樣是利用了TCP三向交握。

1、掃描端向目标端發送SYN請求建立連接配接

2、目标端收到請求後,回複ACK同意連接配接并同意發送SYN請求建立連接配接

3、掃描端收到後,發送RST拒絕建立連接配接。
      

  與TCP掃描不用的是,當掃描端收到ACK/SYN應答時,發送了一條拒絕建立連接配接的RST請求,此時三次握手建立失敗,是以目标端就不會将其記錄在日志中,但同時也掃描到了端口資訊。與TCP掃描相比更加隐蔽。

tcp端口掃描與syn掃描

三、掃描工具

  被稱為掃描之王的nmap工具是一款極強的端口掃描工具,支援linux和windows系統,具體優勢如下:

    1、多種多樣的參數,豐富的腳本庫,滿足使用者的個人定制需求,其中腳本庫還提供了很多強大的功能任你選擇

    2、強大的可移植性,基本上能在所有的主流系統上運作,而且代碼是開源的

    3、詳細的文檔說明,和強大的社群團隊進行支援,方面新人上手

  使用方法可參考:https://www.cnblogs.com/nmap/p/6232207.html