zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    3.redis认证
    2.redis-help使用,基本命令
    安卓使用merge标签和include优化UI布局
    安卓数据存储之ContentProvider
    安卓数据存储之SQLLite
    安卓数据存储之SharePreference
    安卓数据存储之sdcard存储
    java解析json之gjson和fastjson
    Android Volley完全解析(一),初识Volley的基本用法
    使用Pull解析Xml文件
  • 原文地址:https://www.cnblogs.com/zqj-blog/p/10497251.html
Copyright © 2011-2022 走看看