zoukankan      html  css  js  c++  java
  • Kali学习笔记8:四层发现

    1.基于TCP协议

    优点:

    1.可路由且结果可靠

    2.不太可能会被防火墙过滤

    3.甚至可以发现端口

    缺点:

    速度较慢(三次握手)

    利用Scapy发送ACK数据包:

    配置数据包:

     

    发送数据包:

    看一下收到数据包的结果:

    这里收到Reset,只要ip存在,无论这个端口是否开放,都会返回Reset数据包

    我们抓包看看:

    基本会使用Scapy之后,可以写一个Scapy的脚本:

    ack_ping.py

    #!/usr/bin/python
    
    import logging
    import subprocess
    logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
    from scapy.all import *
    
    if len(sys.argv)!= 2:
      print "Usage - ./ack_ping.py [/24 network address]"
      print "Example - ./ack_ping.py 10.14.4.129"
      sys.exit()
    
    address = str(sys.argv[1])
    prefix = address.split(".")[0]+'.'+address.split(".")[1]+'.'+address.split(".")[2]+'.'
    
    for addr in range(1, 255):
      response = sr1(IP(dst=prefix+str(addr))/TCP(dport=2222,flags='A'),timeout=0.1,verbose=0)
      try:
        if int(response[TCP].flags)==4: 
          print(prefix+str(addr))
      except:
        pass

    vi ack_ping.py

    :set fileformat=unix

    :wq

    chmod u+x ack_ping.py

    接下来就可以运行:

    ./ack_ping.py

    就可以探测哪些ip存活

    2.基于UDP协议

    由于UDP协议的特性:

    如果ip存在,我们将无法收到回应

    反而:如果ip不存在,我们就会收到ICMP的不可达信息

    所以,要注意使用时最好发送到基本不会使用到的端口

    Scapy使用:

    同理,写一个脚本:

    #!/usr/bin/python
    
    import logging
    import subprocess
    logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
    from scapy.all import *
    
    if len(sys.argv)!= 2:
      print "Usage - ./ping1.py [/24 network address]"
      print "Example - ./ping1.py 10.14.4.129"
      sys.exit()
    
    address = str(sys.argv[1])
    prefix = address.split(".")[0]+'.'+address.split(".")[1]+'.'+address.split(".")[2]+'.'
    
    for addr in range(1, 254):
      response = sr1(IP(dst=prefix+str(addr))/UDP(dport=7634),timeout=0.1,verbose=0)
      try:
        if int(response[IP].proto)==1: 
          print(prefix+str(addr))
      except:
        pass

    这种方式其实通常无法满足我们的需求

    实际总是运用多种方式,arping,tcp等等结合在一起使用

    3.Nmap工具

     在三、四层的发现中,nmap是一个十分强大的工具:

    四层发现参数:-PU端口:UDP   -PA端口:TCP(ACK)

    nmap的速度和scapy相比,快了很多,而且nmap扫描两遍

    4.Hping命令

    当然可以将hping命令写成脚本

    #!/bin/bash
    prefix=$(echo $1 | cut -d"." -f 1-3)
    for addr in $(seq 1 254);do
       hping3 $prefix.$addr -c 1 >> r.txt
    done
    grep ^len r.txt | cut -d" " -f 2 | cut -d"=" -f 2 >> output.txt
    rm r.txt

    总结:推荐使用nmap,毕竟这是最强大的工具。而我们如果想要细节定制,可以采用Scapy

  • 相关阅读:
    转:验证日期的正则表达式比较全面地验证
    IIS应用地址池监控
    Net预编译 真的好用与否
    关键字检索,找到所有数据
    vue 文件上传自定义实现
    docker 基础(一)
    input表单中嵌入百度地图
    linux系统光盘开机自动挂载-配置本地yum源
    linux学习笔记基础篇(一)
    构建apache web 服务器
  • 原文地址:https://www.cnblogs.com/xuyiqing/p/9309124.html
Copyright © 2011-2022 走看看