简单端口扫描

TCP连接扫描,基于socket,使用threading实现多线程,并控制进程数量。

注:threads_limit 变量视主机情况而定,定义太多会出现如下错误:

代码:

import socket
import threading

#change these vars.
start_port  = 20
end_port = 1000
host = ‘8.8.8.8‘
threads_limit = 600

open_port = []
mylock = threading.Lock()

def scan_port(port):
    global mylock
    mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    if (mysock.connect_ex((host, port)) == 0):
        mylock.acquire()
        open_port.append(port)
        mylock.release()

for will_scan_port in range(start_port, end_port+1):
    mythread = threading.Thread(target = scan_port, args =(will_scan_port,))
    mythread.start()   
    #limit thread number
    while (len(threading.enumerate()) >= 600):
        pass
    
print open_port
时间: 2024-10-11 18:10:21

简单端口扫描的相关文章

用Python实现一个端口扫描,只需简单几步就好

一.常见端口扫描的原理 0.秘密扫描 秘密扫描是一种不被审计工具所检测的扫描技术. 它通常用于在通过普通的防火墙或路由器的筛选(filtering)时隐藏自己. 秘密扫描能躲避IDS.防火墙.包过滤器和日志审计,从而获取目标端口的开放或关闭的信息.由于没有包含TCP 3次握手协议的任何部分,所以无法被记录下来,比半连接扫描更为隐蔽. 但是这种扫描的缺点是扫描结果的不可靠性会增加,而且扫描主机也需要自己构造IP包.现有的秘密扫描有TCP FIN扫描.TCP ACK扫描.NULL扫描.XMAS扫描和

Python3实现TCP端口扫描

在渗透测试的初步阶段通常我们都需要对攻击目标进行信息搜集,而端口扫描就是信息搜集中至关重要的一个步骤.通过端口扫描我们可以了解到目标主机都开放了哪些服务,甚至能根据服务猜测可能存在某些漏洞. TCP端口扫描一般分为以下几种类型: TCP connect扫描:也称为全连接扫描,这种方式直接连接到目标端口,完成了TCP三次握手的过程,这种方式扫描结果比较准确,但速度比较慢而且可轻易被目标系统检测到. TCP SYN扫描:也称为半开放扫描,这种方式将发送一个SYN包,启动一个TCP会话,并等待目标响应

告别脚本小子【编写端口扫描工具】

前言Windows系统默认开放了很多端口,通常这些端口意味着该主机运行着大家都知道的服务,比如TCP端口21-FTP服务,TCP端口80-HTTP服务,有些服务就有可能存在公开的漏洞,因此可以说主机上每一个开放的端口都可能成为一条入侵的捷径.当然,网上存在很多端口扫描工具,但是我们总不能只知道使用别人的工具,一是这些工具别人编写的时候有没有加入后门,二是如果只会用别人的工具,最终也只能是一个脚本小子,所以我们自己来编写一款实用的端口扫描工具. 一.基础知识 1.1.线程 线程,有时被称为轻量级进

端口扫描工具

简单的多线程端口扫描工具 可以接收IP地址作为参数,如果不接参数,则默认扫描本机的端口 1 #!/usr/bin/python 2 3 import socket 4 import time 5 import argparse 6 import threading 7 8 def arg_process(): 9 argparser=argparse.ArgumentParser(description="Port Scaner") 10 argparser.add_argument(

Android NDK学习之第一个实例---端口扫描

为什么要写一个端口扫描的程序,Java来写不是很方便吗?因为我也没有想到什么例子能够方便的来练习.于是想到以前找到的端口扫描的C代码,于是想用他们来练习.扫描服务端端口的方式有许多种,最简单的就是直接去连接该端口,复杂一些的就是看SYN的应答.其他方式就不说了.下面的portScan.c位于jni目录下:(原本可在linux下运行,修改部分代码,使之能够返回结果给Java层的调用.)#include<stdio.h> #include<stdlib.h> #include<j

nmap端口扫描工具使用

(一)Port scan简介 port Scan的方法介绍 port Scan就是一种通过检测对方服务器的开放端口,侦测对方服务器服务的方法.一般可分为主动式和被动式两种. 主动式就是通过向对方服务器的特定端口发送数据包,根据应答来判断,以nmap 为代表. 被动式,不主动发出数据包,而是在网络上长时侦听,分析网上的transaction,来分析,严格的来被动式不应该被称作是端口扫描.以nwatch为代表 (二)优缺点比较  (1)主动式的优点 主动式只要在对方没有把通信阻断的情况下,可以在较短

端口扫描

一 摘要 端口是个网络应用中很重要的东西,相当于"门".二 什么是端口        端口在计算机网络中是个非常重要的概念,他不是硬件,不同于计算机中的插槽,可以说是个软插槽.如果有需要,一台计算机中可以由上万个端口. 端口是由计算通信协议TCP/IP协议定义的.其中规定,用IP地址和端口作为套接字,它代表TCP链接的一个连接端,一般称为socket,具体来说,就是用[ip:端口]来定位一台主机中的进程.可以做这样的比喻,端口相当于两台计算机进程间的大门,可随便定义,其目的只是为了让两

企业安全建设之路:端口扫描(上)

0×00.业务需求 由于工作关系,最近一年来都奔走在各大安全会议,无论是公开会议,例如:ISC互联网大会.freebuf互联网大会等.还是半公开的会议,例如某SRC组织的互联网金融会等.互联网安全运维人员都在谈自己企业的运维平台是如何建立的.这里我简单用思维导图总结一下: 有一定研发能力的互联网安全团队都在建立自己的安全运管平台.我想这样做的目的是: (1)半自动化或者全自动化安全运维规则,提高工作效率,降低人力成本. (2)现有安全厂商提高的产品无法满足用户日益增长业务安全需求,业务架构变更.

ubuntu端口 扫描和开启

扫描前: Nmap scan report for 192.168.0.39 Host is up (0.00029s latency). All 1000 scanned ports on 192.168.0.39 are filtered MAC Address: 00:0C:29:EF:80:D6 (VMware) 开启后: Nmap scan report for 192.168.0.39 Host is up (0.00038s latency). Not shown: 997 fil