Python3 小工具-僵尸扫描
僵尸机的条件:
1.足够闲置,不与其他机器进行通讯
2.IPID必须是递增的,不然无法判断端口是否开放
本实验僵尸机选择的是Windows2003
from scapy.all import *
import optparse
def is_zombie(target,zombie):
pktz=IP(dst=zombie)/TCP(flags='SA')
pktt=IP(src=zombie,dst=target)/TCP(flags='S')
res1=sr1(pktz,timeout=1,verbose=0)
send(pktt,verbose=0)
res2=sr1(pktz,timeout=1,verbose=0)
try:
if res2[IP].id-2==res1[IP].id:
print('It is a zombie.')
return 1
else:
print('It isn\'t a zombie.')
return 0
except:
print('It isn\'t a zombie.')
def scan(target,zombie,port):
pktz=IP(dst=zombie)/TCP(flags='SA',dport=int(port))
pktt=IP(src=zombie,dst=target)/TCP(flags='S',dport=int(port))
start=sr1(pktz,timeout=1,verbose=0)
send(pktt,verbose=0)
end=sr1(pktz,timeout=1,verbose=0)
if end[IP].id-2==start[IP].id:
print(port,' is online')
def main():
parser=optparse.OptionParser("%prog "+'-t <target> -z <zombie> -p <port>')
parser.add_option('-t',dest='target',type='string',help='Target')
parser.add_option('-z',dest='zombie',type='string',help='Zombie')
parser.add_option('-p',dest='port',type='string',help='Port(eg:22,80 or 1-100)')
(options,args)=parser.parse_args()
target=options.target
zombie=options.zombie
if(target==None) or (zombie==None):
print('Please input target(-t) and zombie(-z)!')
exit(0)
res=is_zombie(target,zombie)
if res==1:
if(',' in options.port):
ports=str(options.port).split(',')
if ports[0]==None:
print('Please input port(-p)!')
exit(0)
for port in ports:
scan(target,zombie,port)
elif('-' in options.port):
ports=str(options.port).split('-')
if ports[0]==None:
print('Please input port(-p)!')
exit(0)
for port in range(int(ports[0]),int(ports[1])):
scan(target,zombie,port)
else:
pass
if __name__=='__main__':
main()
使用说明

程序开始

github:https://github.com/zmqq/pytools/tree/master/zombiescan
Python3 小工具-僵尸扫描的更多相关文章
- Python3 小工具-UDP扫描
from scapy.all import * import optparse import threading def scan(target,port): pkt=IP(dst=target)/U ...
- Python3 小工具-ICMP扫描
from scapy.all import * import optparse import threading import os def scan(ipt): pkt=IP(dst=ipt)/IC ...
- Python3 小工具-ARP扫描
from scapy.all import * import optparse import threading import os def scan(ipt): pkt=Ether(dst='ff: ...
- python3 小工具
扫描IP的端口是否开放:Porttest.py # -*- coding: utf-8 -*- import sys import os import socket #扫描 def scanport( ...
- ip地址查询python3小工具_V0.0.1
看到同事在一个一个IP地址的百度来确认导出表格中的ip地址所对应的现实世界的地址是否正确,决定给自己新开一个坑.做一个查询ip“地址”的python小工具,读取Excel表格,在表格中的后续列输出尽可 ...
- Python3 小工具-TCP半连接扫描
from scapy.all import * import optparse import threading def scan(ip,port): pkt=IP(dst=ip)/TCP(dport ...
- Python3 小工具-UDP发现
from scapy.all import * import optparse import threading import os def scan(ip): pkt=IP(dst=ip)/UDP( ...
- Python3 小工具-TCP发现
from scapy.all import * import optparse import threading import os def scan(ip): pkt=IP(dst=ip)/TCP( ...
- Python3 小工具-MAC泛洪
from scapy.all import * import optparse def attack(interface): pkt=Ether(src=RandMAC(),dst=RandMAC() ...
随机推荐
- OC之block 和协议
一.BOLCK (一)简介 BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行. BOLCK和函数的相似性:(1)可以保存代码(2 ...
- C++ 内存、new与malloc分配内存区别?
一关于内存 1.内存分配方式 内存分配方式有三种: (1)从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量,static变量. (2)在栈上创建. ...
- Spring : JPA的单独使用
title: 如何单独使用spring data jpa 引用pom文件: <dependency> <groupId>org.springframework.data< ...
- visual studio进程或线程自上一个步骤以来已更改
1.自己的解决方案:visual studio在多进程执行,在配置页面(webconfig)里把UseCounterThread参数设置为0 2.公司其他人解决方案,自己试了,多进程执行的时候没起作用 ...
- Java8 Comparator 排序方法
Java8 中 Comparator 接口提供了一些静态方法,可以方便于我们进行排序操作,下面通过例子讲解下如何使用 对整数列表排序(升序) List<Integer> list = Ar ...
- MySQL 重要语法
1.查询表abc中的所有数据: SELECT * FROM abc WHERE 1=1; where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句.
- JVM培训序幕篇
明天老王要给我们讲JVM的知识,提前发了一个小Demo给我们看,代码如下: package demo; import java.util.*; public class Demo { public s ...
- yii2 shi用modal弹窗 select2搜索框无法使用
在modal使用begin的时候指定options选项的tabindex为false Modal::begin([ // ...... 'options' => [ 'tabindex' =&g ...
- 菜鸟学Linux - 变量基本规则
变量是一个很重要的概念,无论是bash脚本还是其他语言,都是如此.在bash中,创建变量很简单,给变量一个名称即可.默认情况下,变量的值为空.我们可以通过等号为变量赋值.需要注意的是,变量和变量的值不 ...
- AS 3.1 多library合并打包成aar的正确方式(fat-aar)
前言 主要参考fat-aar来合并打包. 但是这个fat-aar很久没维护了,如果直接使用它会有很多问题.由于对gradle脚本也不是太熟,就只能顺着它的意思,将gradle降级成2.2.3的版本. ...