tcp端口掃描與syn掃描


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


 一、TCP掃描

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

  原理:

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

2、目標端收到請求后,回復ACK同意連接並同意發送SYN請求建立連接

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

  

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掃描相比更加隱蔽。

    

 

三、掃描工具

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

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

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM