[原创]K8Cscan 3.8大型内网渗透自定义扫描器(支持批量C段/B段/A段/IP列表/URL列表/跨网段扫描)

前言:
无论内网还是外网渗透信息收集都是非常关键,信息收集越多越准确渗透的成功率就越高
但成功率还受到漏洞影响,漏洞受时效性影响,对于大型内网扫描速度直接影响着成功率
漏洞时效性1-2天,扫描内网或外网需1周时间,是否会因此错过很多或许可成功的漏洞?
对于那些拥有几百上千域名的大站来说,你发现越快成功率就越高,慢管理员就打补丁了
因此我们需要一个支持批量C段/B段甚至A段的扫描器,添加自定义模块快速检测新出漏洞

Cscan简介:
何为自定义扫描器?其实也是插件化,但Cscan不需要编程同样可实现自定义功能,这比单纯插件化更容易实现插件功能
Cscan旨在为用户提供一个高度灵活、简单易用、多线程、多网段的插件化扫描框架,减少大量重复性工作提高工作效率
3.3及以上版本分为检测存活和不检测存活主机模式 程序采用多线程批量扫描大型内网IP段C段存活主机(支持上万个C段)
插件含C段旁注扫描、子域名扫描、Ftp密码爆破、Mysql密码爆、系统密码爆破、存活主机扫描、Web信息探测、端口扫描
支持调用任意外部程序或脚本,支持自定义模块,当然也可用于外网扫描(如子域名、C段旁注、FTP破、MYSQL爆破等)

使用场景:
企业批量漏洞检测,比方说新出了一个漏洞POC,只需配置Cscan.ini即可批量调用POC测试企业内部或外部站点漏洞检测
红队可快速找到对应漏洞进行利用,蓝队也可快速找到对应漏洞并修复。无需每次暴出漏洞都去写个批量检测或利用程序

主程序功能:
1.支持指定IP扫描
2.支持指定C段扫描(ip/24)
3.支持指定B段扫描(ip/16)
4.支持指定A段扫描(ip/8)
5.支持指定URL扫描
6.支持批量IP扫描(ip.txt)
7.支持批量C段扫描(ip24.txt)
8.支持批量B段扫描(ip16.txt)
9.支持批量URL扫描(url.txt)
10.支持指定范围C段扫描
11.支持调用自定义程序(系统命令或第三方程序)
12.支持自定义模块(功能基于模块源码修改即可)

程序&插件:
[+] 主程序   K8Cscan 3.8.rar 大型内网渗透扫描器
[+] 模块插件 K8Cscan Moudle WeblogicScan & Exploit.rar Weblogic漏洞扫描&GetShell插件
[+] 模块插件 K8Cscan Moudle OSScan.rar 系统版本探测插件
[+] 模块插件 K8Cscan Moudle FtpScan.rar Ftp密码扫描插件
[+] 模块插件 K8Cscan Moudle MysqlScan.rar Mysql密码扫描插件
[+] 模块插件 K8Cscan Moudle OnlinePC.rar 存活主机扫描插件
[+] 模块插件 K8Cscan Moudle WebBanner.rar WebBanner标题扫描插件
[+] 模块插件 K8Cscan Moudle WmiScan.rar Wmi扫描Win系统密码插件
[+] 独立工具 K8Cscan for SameWeb.rar C段旁站扫描工具
[+] 独立工具 K8Cscan for SubDomain.rar 子域名扫描工具
[+] Demo源码 支持自定义插件、EXE、脚本等(附C#/VC/Delphi/Python源码)
[+] 插件源码 K8Cscan Moudle PortScan.cs  端口扫描插件源码(自行编译)
[+] 插件源码 c# netscan 存活主机 & Web信息插件源码(以上已发布成品)

3.7用法:
检测存活(目标

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面分别介绍 FCFS、SSTF、SCAN 和 C-SCAN 磁盘调度算法的 Java 实现。 1. FCFS 磁盘调度算法 FCFS(First-Come, First-Served)磁盘调度算法是最简单的磁盘调度算法,它按照磁盘访问请求的提交顺序进行调度。 ```java import java.util.Scanner; public class FCFS { public static void main(String[] args) { // 输入磁盘访问序列 Scanner sc = new Scanner(System.in); System.out.print("请输入磁盘访问序列:"); String input = sc.nextLine(); String[] strArr = input.split(" "); int[] requestArr = new int[strArr.length]; for (int i = 0; i < strArr.length; i++) { requestArr[i] = Integer.parseInt(strArr[i]); } // 输入磁头起始位置 System.out.print("请输入磁头起始位置:"); int start = sc.nextInt(); // FCFS 算法 int total = 0; int currentPos = start; for (int i = 0; i < requestArr.length; i++) { int nextPos = requestArr[i]; total += Math.abs(nextPos - currentPos); currentPos = nextPos; } // 输出结果 System.out.println("磁头起始位置:" + start); System.out.println("磁盘访问序列:" + input); System.out.println("移动总距离:" + total); } } ``` 2. SSTF 磁盘调度算法 SSTF(Shortest Seek Time First)磁盘调度算法是按照磁头与下一个访问请求的距离来进行调度的。 ```java import java.util.Scanner; public class SSTF { public static void main(String[] args) { // 输入磁盘访问序列 Scanner sc = new Scanner(System.in); System.out.print("请输入磁盘访问序列:"); String input = sc.nextLine(); String[] strArr = input.split(" "); int[] requestArr = new int[strArr.length]; for (int i = 0; i < strArr.length; i++) { requestArr[i] = Integer.parseInt(strArr[i]); } // 输入磁头起始位置 System.out.print("请输入磁头起始位置:"); int start = sc.nextInt(); // SSTF 算法 int total = 0; int currentPos = start; int[] visited = new int[requestArr.length]; for (int i = 0; i < visited.length; i++) { visited[i] = 0; } for (int i = 0; i < requestArr.length; i++) { int minDist = Integer.MAX_VALUE; int nextPos = 0; for (int j = 0; j < requestArr.length; j++) { if (visited[j] == 0) { int dist = Math.abs(requestArr[j] - currentPos); if (dist < minDist) { minDist = dist; nextPos = requestArr[j]; } } } total += minDist; currentPos = nextPos; for (int j = 0; j < requestArr.length; j++) { if (visited[j] == 0 && requestArr[j] == currentPos) { visited[j] = 1; break; } } } // 输出结果 System.out.println("磁头起始位置:" + start); System.out.println("磁盘访问序列:" + input); System.out.println("移动总距离:" + total); } } ``` 3. SCAN 磁盘调度算法 SCAN 磁盘调度算法是按照磁头的移动方向扫描访问请求,到达磁盘末端后改变方向继续扫描。 ```java import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class SCAN { public static void main(String[] args) { // 输入磁盘访问序列 Scanner sc = new Scanner(System.in); System.out.print("请输入磁盘访问序列:"); String input = sc.nextLine(); String[] strArr = input.split(" "); int[] requestArr = new int[strArr.length]; for (int i = 0; i < strArr.length; i++) { requestArr[i] = Integer.parseInt(strArr[i]); } // 输入磁头起始位置 System.out.print("请输入磁头起始位置:"); int start = sc.nextInt(); // 输入磁盘大小 System.out.print("请输入磁盘大小:"); int size = sc.nextInt(); // 输入方向(0表示向外,1表示向内) System.out.print("请输入方向(0表示向外,1表示向内):"); int direction = sc.nextInt(); // SCAN 算法 int total = 0; int currentPos = start; int nextPos = 0; ArrayList<Integer> visited = new ArrayList<Integer>(); ArrayList<Integer> unvisited = new ArrayList<Integer>(); for (int i = 0; i < requestArr.length; i++) { if (requestArr[i] < currentPos) { visited.add(requestArr[i]); } else { unvisited.add(requestArr[i]); } } Collections.sort(visited); Collections.sort(unvisited); if (direction == 0) { for (int i = 0; i < unvisited.size(); i++) { nextPos = unvisited.get(i); total += Math.abs(nextPos - currentPos); currentPos = nextPos; } total += Math.abs(size - currentPos); currentPos = size; for (int i = visited.size() - 1; i >= 0; i--) { nextPos = visited.get(i); total += Math.abs(currentPos - nextPos); currentPos = nextPos; } } else { for (int i = visited.size() - 1; i >= 0; i--) { nextPos = visited.get(i); total += Math.abs(currentPos - nextPos); currentPos = nextPos; } total += currentPos; currentPos = 0; for (int i = 0; i < unvisited.size(); i++) { nextPos = unvisited.get(i); total += Math.abs(nextPos - currentPos); currentPos = nextPos; } } // 输出结果 System.out.println("磁头起始位置:" + start); System.out.println("磁盘访问序列:" + input); System.out.println("磁盘大小:" + size); System.out.println("方向:" + direction); System.out.println("移动总距离:" + total); } } ``` 4. C-SCAN 磁盘调度算法 C-SCAN(Circular SCAN)磁盘调度算法是 SCAN 算法的变体,它在 SCAN 算法的基础上将磁头到达磁盘末端后直接跳到磁盘起始位置,继续扫描。 ```java import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class CSCAN { public static void main(String[] args) { // 输入磁盘访问序列 Scanner sc = new Scanner(System.in); System.out.print("请输入磁盘访问序列:"); String input = sc.nextLine(); String[] strArr = input.split(" "); int[] requestArr = new int[strArr.length]; for (int i = 0; i < strArr.length; i++) { requestArr[i] = Integer.parseInt(strArr[i]); } // 输入磁头起始位置 System.out.print("请输入磁头起始位置:"); int start = sc.nextInt(); // 输入磁盘大小 System.out.print("请输入磁盘大小:"); int size = sc.nextInt(); // CSCAN 算法 int total = 0; int currentPos = start; int nextPos = 0; ArrayList<Integer> visited = new ArrayList<Integer>(); ArrayList<Integer> unvisited = new ArrayList<Integer>(); for (int i = 0; i < requestArr.length; i++) { if (requestArr[i] < currentPos) { visited.add(requestArr[i]); } else { unvisited.add(requestArr[i]); } } Collections.sort(visited); Collections.sort(unvisited); if (unvisited.size() > 0) { for (int i = 0; i < unvisited.size(); i++) { nextPos = unvisited.get(i); total += Math.abs(nextPos - currentPos); currentPos = nextPos; } total += Math.abs(size - currentPos); currentPos = 0; for (int i = 0; i < visited.size(); i++) { nextPos = visited.get(i); total += Math.abs(nextPos - currentPos); currentPos = nextPos; } } else { for (int i = visited.size() - 1; i >= 0; i--) { nextPos = visited.get(i); total += Math.abs(currentPos - nextPos); currentPos = nextPos; } } // 输出结果 System.out.println("磁头起始位置:" + start); System.out.println("磁盘访问序列:" + input); System.out.println("磁盘大小:" + size); System.out.println("移动总距离:" + total); } } ``` 以上就是 FCFS、SSTF、SCAN 和 C-SCAN 磁盘调度算法的 Java 实现,你可以根据需要选择相应的算法和代码进行实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值