[原创]开源跨平台大型网络端口扫描器K8PortScan(支持批量A段/B段/C段/IP列表)

0x000 K8PortScan

Python版Cscan端口扫描器
Code: https://github.com/k8gege/K8PortScan
K8portScan 1.0
Date: 20190530
Author: K8gege
Build: pyinstaller -F K8PortScan.py

0x001 功能

1、支持批量A段(ip8.txt)
2、支持批量B段(ip16.txt)
3、支持批量C段(ip24.txt)
4、支持批量IP(ip.txt可任意名)
5、单个A段(ip/8)
6、单个B段(ip/16)
7、单个C段(ip/24)
8、可多个端口或端口范围扫描(80-89或80,445,3306)
9、Banner识别比S加强版更准

现有的扫描器除了Cscan,基本上只支持单个A段、B段、C段扫描,甚至好多扫描器仅支持一个C段扫描,假如内网渗透需要扫描内网100个C段,怎么办?

 0x002 用法

默认43个端口
python K8PortScan.py -ip 192.11.22.29
指定端口范围
python K8PortScan.py -ip 192.11.22.29 -p 80-89
C段指定端口列表扫描
python K8PortScan.py -ip 192.11.22.29/24 -p 80,445,3306

##IPlist (ip.txt ip24.txt ip16.txt ip8.txt)
批量IP扫描(默认43个端口)
python K8PortScan.py -f ip.txt
批量IP扫描(指定端口范围)
python K8PortScan.py -f ip.txt -p 80-89
批量C段指定端口列表扫描
python K8PortScan.py -f ip24.txt -p 80,445,3306

同理: B段、A段IP或列表换成对应16/8即可,ip文件格式参考rem.txt

 IP文件

无论是ip24.txt ip16.txt ip.txt 或是任意文件名比如 sb.log
格式均统一为ip,当然为C段格式也行
例子:

批量C段扫描
ip24.txt 
192.11.22.4 (任意IP自动提取C段192.11.22)
10.1.10.1   (任意IP自动提取C段10.1.10)

批量B段扫描
ip16.txt
192.11.22.8 (任意IP自动提取B段192.11)
10.10.2.5   (任意IP自动提取B段10.10)

批量IP扫描
ip.txt或any.xxx
192.11.22.8
192.11.22.29
10.123.1.2
118.22.55.6

 端口:

不指定端口参数,默认将扫描以下43个端口

21, 22, 23, 53, 80, 111, 139, 161, 389, 443, 445, 512, 513, 514,
					873, 1025, 1433, 1521, 3128, 3306, 3311, 3312, 3389, 5432, 5900,
					5984, 6082, 6379, 7001, 7002, 8000, 8080, 8081, 8090, 9000, 9090,
					8888, 9200, 9300, 10000, 11211, 27017, 27018, 50000, 50030, 50070

 0x003 编译EXE

pyinstaller -F K8PortScan.py

编译好的Bin:
Windows:  https://github.com/k8gege/K8tools/blob/master/K8PortScan.exe
Kali_x86: https://github.com/k8gege/K8tools/blob/master/K8PortScan_Kali_x86
Suse_x64: https://github.com/k8gege/K8tools/blob/master/K8PortScan_Suse10_x64

0x004 功能对比

对比加强版S扫描器获取端口Banner,发现一些特殊端口S无法获取Banner

0x004 Linux下运行

0x005 实战

目标内网扫描133个C段,43端口/IP,需要40-50分钟(外网未测,外网受双方网速影响)

133 x 255 x 43 = 1458345 个端口,仅SSH高达944个(不只是22端口)

其它服务就不截取了,FTP几百台吧,WEB也几百,思科设备300多

本工具仅探测开放端口以及Banner,其它服务请使用K8Cscan进行扫描

发布版本Banner已修改成显示在端口后,图是改之前的所以是换行显示

6.实战130个B段扫描

133个B段 x 255个C段 = 33915个C段 约3.5万个C段

33915个C段 x255个IP = 8648325个IP 约865万IP

33915个C段 x 255个IP x 43个端口=371877975个端口 约4亿个端口

对于这样的项目,不知道网上那些支持只支持IP列表的批量真的能扫大型项目吗?

有人说我为何要重复造轮子,重复造轮子的原因详见Tips1

 

开放SSH服务高达5万台

部份要除以2因为有些一行出现两次SSH关键字,即使以2也还有2万多台存活

那些做了限制,当前机器无法扫描到或过不去的还不算,最悲剧的是什么?

能扫出密码的不到位100台,能上网的才10来台

Cisco设备2500台

FTP结果2.5万

 

Oracle数据库

 

Tips:

133个B段 x 255个C段 = 33915个C段 约3.5万个C段

33915个C段 x255个IP = 8648325个IP 约865万IP

33915个C段 x 255个IP x 43个端口=371877975个端口 约4亿个端口

对于这样的项目,不知道网上那些支持只支持IP列表的批量真的能扫大型项目吗?

有些人认为网上早有相关扫描工具,为何我还要重复造轮子?

网上公开的很多工具扫描几百几千几万IP列表估计都没啥问题

对于大部分人来说应该是完全够用了,即使个别需要扫也就几个A段或者10来个B段

很多人觉得扫一个我再执行一次就不完了,所以完全够用。对他们来说就是神器了

但那些工具能支持加载865万个IP的文本文件吗?光导入估计能卡死半天吧

加上要生成这么大的IP得需要多少时间,这文件得多大?上传存放到目标需多少时间?

那些人使用大型这个词?有几个真的搞过大型项目?实战还遇到目标到达VPS很卡的情况

仅几M的文件上传要几小时的网络遇到过没?无法代理出来扫描的情况遇到没?

所以最佳方案就是写成可加载批量C段、批量A段、批量B段、IP列表方式

即可扫中小型项目,也可扫真正意义上的大型项目(相关功能也就后续添加的问题了)

这样不会浪费不必要的时间,也可把小文件传到目标机上执行,又可适应奇葩网络情况。

 

我实战遇到的很多问题,网上没几个工具考虑过这些情况,可能写工具的人不在一线或接触不深

或者在一线的人接触的内容不多思考也不多,给写程序的思路建议也不够好等原因

当然还有一个原因,就是渗透提出了最佳可行方案,但是程序员太水写不出来导致

网上很多工具一看就知道是否符合我的实际要求,看简介就觉得没必要下工具测试

有些东西没必要,但有些东西真的需要重复造轮子,即使有很多人说那工具好

因为很多工具适合大众用,并不代表是最好的,能兼容各种奇葩实战环境才是

但一般情况下,只要符合自己的工作要求,就是最佳工具(未接触奇葩环境不可能知道另外的工具更好)

比方说搞安服的由于大部份都是直接扛电脑到人家单位实施,写的工具可能并不适合真正实战

毕竟大部分GUI程序都可直接用,什么环境都有,不像实战拿到不同环境的机器各种奇葩问题

代理不定能出来或很卡,根本不是说你本机有什么工具都可以用,需要丢到目标去运行的。。。

转载于:https://www.cnblogs.com/k8gege/p/10957949.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
K8专用字典整理工具 by K8拉登哥哥 博客 http://qqhack8.blog.163.com 网上有很多所谓的字典整理工具 压根就没针对以下情况整理 各种扫描字典里都是因为如下情况 导致有很多重复的数据 K8扫描专用字典25W条 (全部整合是25W 当然也有分类) 是从那收集来的100多W条数据 经过以下算法整理出来的 第一种情况 带#的 这些一般是数据库防下载的 比如 www.xxx.com/#data.mdb 是网站数据库 如果不把#替换成# 扫描时 #后面的被隔断 相当于只扫www.xxx.com 这样扫 工具永远会提示 网址存在 因为xxx.com 永远返回200 以前的人在制作字典的时候没有把#转成# 当然这一步也可以在工具里替换 只是我个人觉得 先处理好 就不用每次扫描的时候 都要有一堆时间放在转换上 转换一个# 0.000几秒 要是同时扫描几十W条记录的时候 这堆就得要浪费时间了 第二种情况 类似 havij等其它工具 字典里的 %EXT% 这个让工具碰到这个变量后 就分别扫这个名称的asp jsp aspx php等 EXT 就扩展名的缩写 并非哪个网站的后缀 log-in.%EXT% login.%EXT% adminlogin.%EXT% admin%EXT% %EXT%替换成 .PHP 因为havij 还是针对PHP站比较多 所以转换成这个后缀 第三种情况 ../../../admin/ ../admin/login ../../../admin/../../ ../admin/login../ ../../../admin/ ../admin/login ../../../admin/../../ ../admin/login../.. 前后有很多.. 或/ 结尾的 严重重复又干扰扫描结果 经过几个步骤后 我们再去掉重复的数据 就比较合理了 第四种情况 ../admin admin /admin/ /Admin/../ Admin ../Admin ./Admin/ 如果是在Windows系统下的网站 上面的字典 就只有 admin 一个而已 如果是在Linux下的话 也只有 Admin 和 admin 两个 第五种情况 字典里有很多结尾是?号的 下面是我随便复制的几个 admindefault.asp? admin/default.asp? admin/editor/admin_login.asp? admin_default.asp? admindefault.asp? default_default.asp? editor/admin_login.asp? index_default.asp? indexdefault.asp? login/default.asp? login_default.asp? logindefault.asp? 下面给一个实际的整理结果 第一次整理14W数据时 变成6W多 第二次整理48W 还是只有7W左右 这说明神马问题 很多重复的 由于网站 有LINUX 所以保留了大小写 如果你平时只搞WINDOWS站的话 可以全部转换成小写后 再去重复 这样你的字典将会更小 因为区分大小写 会有如下情况 还是假设Admin目录 Admin ADmin AdMin adMin adMIN 等等 这些 在WINDOWS下 可只是 一个ADMIN 而以啊 扫描同一个目录 几十次 很浪费时间啊 如果有几十W条数据重复的 那得扫多久 大家想想看
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值