zoukankan      html  css  js  c++  java
  • 端口扫描之僵尸扫描

     僵尸扫描是一种极其隐蔽的端口扫描,被扫描的主机基本上察觉不到扫描者。

    但是实现条件比较苛刻。

      条件1:可伪造源地址(Scanner 发的IP包里的源地址要伪造成Zombie的)

      条件2:Zombie机的系统足够闲置,基本上没有和外界进行IP通信

      条件3:Zombie机发的IP包中的IPID是递增的(这是判断端口是否开放的依据)

      PS:有些系统IPID是随机的,或者为0.像WIN7 ,WIN XP ,WIN 2000为递增。

    目标主机端口开放状态下 扫描者从Zombie机得到的两个RST包中的 IPID相差2:

     

     目标主机端口关闭状态下 扫描者从Zombie机得到的两个RST包中的 IPID相差1:

       脚本:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    #History:
    #2019/4/13                   MWQ            First  
    import logging
    logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
    from scapy.all import *
    def ipid(zombie):
        reply1=sr1(IP(dst=zombie)/TCP(flags="SA"),timeout=2,verbose=0)
        send(IP(dst=zombie)/TCP(flags="SA"),verbose=0)
        reply2=sr1(IP(dst=zombie)/TCP(flags="SA"),timeout=2,verbose=0)
        try:
            if reply2[IP].id==(reply1[IP].id+2):
                print("IPID sequence is incremental and target to be idle.ZOMBIE LOCATED")
                response = raw_input("Do you want to use this zombie to perfoem a scan? (Y  or  N):")
                if response == "Y":
                    target=raw_input("Enter IP address of the target system:")
                    zombiescan(target,zombie)
            else:
                print("Either the IPID sequence is not incremental or the target is not idle.NOT A GOOD ZIMBIE")
        except:
    		print("zombie may not turndwon firewall!")        
    def zombiescan(target,zombie):
        print("
     Scanning target "+target+" with zombie "+zombie)
        print("
     -----------------Open Ports On Target -----------------
    ")
        for port in range(1,200):
            try:
                start_val = sr1(IP(dst=zombie)/TCP(flags="SA",dport=port),timeout=2,verbose=0)
                send(IP(src=zombie,dst=target)/TCP(flags="S",dport=port),verbose=0)
                end_val=sr1(IP(dst=zombie)/TCP(flags="SA"),timeout=2,verbose=0)
                if end_val[IP].id==(start_val[IP].id+2):
                    print(port)
            except:
    			pass 
                   
    print("-----------------Zombie Scan Suite-----------------
    ")
    print("1           Identify Zombie Host 
    ")
    print("2           Perform   Zombie Host 
    ")
    ans=raw_input("select an Option (1  or 2 ):")
    if ans == "1":
        zombie=raw_input("Enter IP address to text IPID sequence:")
        ipid(zombie)
    else:
        if ans =="2":
            zombie =raw_input("Enter IP address for zombie system:")
            target=raw_input("Enter IP address for scan target:")
            zombiescan(target,zombie)
    

       演示:

      对比一下成功率还很高!

      

      

  • 相关阅读:
    外挂方法.md
    第三章.md
    沙箱逃逸.md
    flex
    flash builder 关联svn
    flash 动画
    Flash移动开发的一本好书Android&IOS
    Foundation ActionScript 3.0.With Flash CS3 And Flex ..
    flash移动基础开发(PDF)
    O'Reilly.HTML5.Up.and.Running HTML5的一本好书
  • 原文地址:https://www.cnblogs.com/mwq1024/p/10715595.html
Copyright © 2011-2022 走看看