Giter Site home page Giter Site logo

adminisme / serverscan Goto Github PK

View Code? Open in Web Editor NEW
1.5K 33.0 215.0 20.74 MB

ServerScan一款使用Golang开发的高并发网络扫描、服务探测工具。

Home Page: https://github.com/Adminisme/ServerScan

License: GNU General Public License v3.0

Go 100.00%
serverscan pentest-tool security-scanner golang service-discovery port-scanner-in-go win linux macos cobalt-strike

serverscan's Introduction

ServerScan

Author Bin build

███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗     ███████╗ ██████╗ █████╗ ███╗   ██╗
██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗    ██╔════╝██╔════╝██╔══██╗████╗  ██║
███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝    ███████╗██║     ███████║██╔██╗ ██║
╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗    ╚════██║██║     ██╔══██║██║╚██╗██║
███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║    ███████║╚██████╗██║  ██║██║ ╚████║
╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝    ╚══════╝ ╚═════╝╚═╝  ╚═╝╚═╝  ╚═══╝
                                                                                By:Trim   

一款使用Golang开发且适用于攻防演习内网横向信息收集高并发网络扫描、服务探测工具。

🍭Property

  • 多平台支持(Windows、Mac、Linux、Cobalt Strike)
  • 存活IP探测(支持TCP、ICMP两种模式)
  • 超快的端口扫描
  • 服务和应用版本检测功能,内置指纹探针采用:nmap-service-probes
  • Web服务(http、https)信息探测
  • 扫描结果兼容INFINITY攻防协同平台(暂不公开)

🎉First Game

​ 总结诸多实战经验,考虑到实战过程中会出现和存在复杂的环境、红蓝对抗过程中常用的内存加载无文件落地执行等,因此ServerScan设计了轻巧版专业版、支持Cobalt Strike跨平台beacon:Cross C2的动态链接库以及支持INFINITY攻防协同平台的专用版。便于在不同的Shell环境中可以轻松自如地使用:如:Windows Cmd、Linux Console、远控Console、WebShell等,以及Cobalt Strike联动使用cna脚本文件加载,实现内网信息快速收集,为下一步横向移动铺路。

轻巧版:

参数形式简单、扫描速度快、耗时短、文件体积小、适合在网络情况较好的条件情况下使用。

专业版:

支持参数默认值、支持自定义扫描超时时长、支持扫描结果导出、适合在网络条件较苛刻的情况下使用。

动态链接库:

为支持Cobalt Strike跨平台beacon,无文件落地执行,无文件执行的进程信息,基于轻巧版本进行动态链接库编译,扫描超时时长为1.5秒。

💻for Linux or Windows

  • 轻巧版

    • for PortScan

      Usage:

      Air_scan_use

      Scanning:

      Air_scan1

    • for Service and Version Detection

      Usage:

      Air_scan_probes_use

      Scanning:

      Air_scan_probes

  • 专业版

    • for PortScan

      Usage:

      Pro_scan_use

      Scanning:

      Pro_scan

    • for Service and Version Detection

      Usage:

      Pro_scan_probes_use

      Scanning:

      Pro_scan_probes

🎮for Cobalt Strike

  • Windows

    由于Cobalt Strike已经内置了PortScan,因此目前Windows仅支持利用cna上传对应版本的ServerScan可执行文件到服务器进行扫描。
    
    • for Service and Version Detection

      Interact:

      serverscan_windows

      serverscan2_windows

  • Cobalt Strike跨平台beacon

    ​ ServerScan的优势在于跨平台,在Hook师傅的帮(jiān)助(dū)下目前已经基本适配了Cross C2的Linux、Mac OS两大平台,为了提高隐匿性减少文件特征,目前支持内存加载可执行程序和动态链接库调用,您只需在安装了Cross C2的Cobalt Strike中导入对应的.cna脚本,即可实现ServerScan与Cobalt Strike跨平台beacon联动,具体使用参考Usage

    • for PortScan

      Interact:

      portscan_console

      Targets结果集自动导入:

      portscan_targets

      services结果集自动导入:

      portscan_services

    • for Service and Version Detection

      Interact:

      serverscan_console

      Targets结果集自动导入:

      serverscan_targets

      services结果集自动导入:

      serverscan_services

🌈Runtime Environment

为了实现“一次开发,到处运行”的效果,ServerScan采用具有跨平台编译特性的Golang进行开发。

目前已成功编译了三大主流操作系统可执行程序动态链接库,并在如下操作系统通过了运行测试:

📺Windows

  • Windows 2003

    • x86
  • Windows 2008 server 、Windows 2012 server 、Windows 7 、Windows 10

    • x86
    • x64
    • .dll

🐧Linux

  • Ubuntu 、Centos、Kali
    • x86
    • x64
    • .so

🍎Mac OS

  • x64
  • .dylib

🐱‍👓Usage

  • 轻巧版

    HOST  Host to be scanned, supports four formats:
        192.168.1.1
        192.168.1.1-10
        192.168.1.*
        192.168.1.0/24
    PORT  Customize port list, separate with ',' example: 21,22,80-99,8000-8080 ...
    MODEL Scan Model: icmp or tcp
  • 专业版

      -h string
        	Host to be scanned, supports four formats:
        	192.168.1.1
        	192.168.1.1-10
        	192.168.1.*
        	192.168.1.0/24.
      -m string
        	Scan Model icmp or tcp. (default "icmp")
      -o string
        	Output the scanning information to file.
      -p string
        	Customize port list, separate with ',' example: 21,22,80-99,8000-8080 ... (default "80-99,7000-9000,9001-9999,4430,1433,1521,3306,5000,5432,6379,21,22,100-500,873,4440,6082,3389,5560,5900-5909,1080,1900,10809,50030,50050,50070")
      -t int
        	Setting scaner connection timeouts,Maxtime 30 Second. (default 2)
      -v	ServerScan Build Version
  • Cobalt Strike版本

    ├─ServerScanForLinux
    │  │  CrossC2Kit.cna
    │  │  serverscan.linux.elf.cna
    │  │  serverscan.linux.so.cna
    │  │
    │  ├─ELF
    │  │      portscan
    │  │      portscan386
    │  │      serverscan
    │  │      serverscan386
    │  │
    │  └─SO
    │          crossc2_portscan.so
    │          crossc2_serverscan.so
    │
    └─ServerScanForWindows
        │  serverScan.win.cna
        │
        └─PE
            ├─x64
            │      serverscan_amd64.exe
            │
            └─x86
                    serverscan_386.exe
    • Windows

      在Cobalt Strike的Script Manager中Load serverScan.win.cna

    (Ps:serverScan.win.cna主要是通过将本地对应版本的Serverscan上传到服务器的c:\windows\temp\目录执行,此方法略显笨拙,后期会更新无文件落地的方法)

    scriptManager_win

    选择一个已经上线的beacon,在Interact中输入help查看Commands是否新增了Serverscan86、Serverscan64,若出现就可以像使用portscan一样使用serverscan了🙂

    windows_help

    windows_usage

    • Cobalt Strike跨平台beacon

    ​ 首先您应该确保已经在Cobalt Strike成功安装了Cross C2

    ​ 其次在Cobalt Strike的Script Manager中 Load serverscan.linux.elf.cna 和 serverscan.linux.so.cna两个脚本,其分别对应内存加载ELF、动态链接库so调用,两者的区别主要是隐匿性的问题😎

    ​ 若直接调用so文件运行serverscan时,在主机上ps无法找到对应的进程,而直接内存加载serverscan的ELF则会在运行过程中出现一个随机名称的扫描进程🙃

    (目前带有指纹识别的动态链接库编译的文件体积较大,还没有找到合适的办法压缩体积,各位师傅们有好的提议欢迎issue)🔥🔥🔥

    scriptManager_linux

linux_help

linux_usage

  • INFINITY攻防协同平台版本

    (暂不公开)

🎁支持ServerScan

如果您认为ServerScan帮助到了您,可使用微信扫一扫下方的赞赏码,支持作者继续改进优化ServerScan。

thankyou

🧐问题反馈

💌:[email protected]

💖鸣谢

一路走来,得到了很多前辈的帮助和指导,在此表示衷心的感谢!

下列是本项目使用或者参考的优秀开源框架,感谢网上众多的开源项目及其开源项目的作者,致敬为网络安全事业做出贡献的每一位前辈!

  • httpscan - httpscan implements by Go
  • iprange - IPv4 address parser for the nmap format
  • lanscan - Blazing fast, local network scanning in Go
  • vscan-go - Golang version for nmap service and application version detection

📄版权

该项目签署了GPL-3.0授权许可,详情请参阅Licencegplv3

除此之外也需要遵守项目中如下的补充条款:

该项目未经作者本人允许,禁止商业使用。

任何人不得将其用于非法用途及盈利等目的,否则自行承担后果并负相应法律责任。

📜免责声明

  1. 本工具仅面向拥有合法授权的渗透测试安全人员及进行常规操作的网络运维人员,用户可在取得足够合法授权且非商用的前提下进行下载、复制、传播或使用。
  2. 在使用本工具的过程中,您应确保自己的所有行为符合当地法律法规,且不得将此软件用于违反**人民共和国相关法律的活动。本工具所有作者和贡献者不承担用户擅自使用本工具从事任何违法活动所产生的任何责任。

请您在下载并使用本工具前,充分阅读、完全理解并接受本协议的所有条款。您的使用行为或您以其他任何方式明示或默认表示接受本协议,即视为您已阅读并同意本协议的约束。

404StarLink 2.0 - Galaxy

ServerScan 是 404Team 星链计划2.0中的一环,如果对ServerScan有任何疑问又或是想要找小伙伴交流,可以参考星链计划的加群方式。

serverscan's People

Contributors

adminisme avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

serverscan's Issues

关于多线程扫描与license

你好,portscan.go中端口扫描是使用多线程的方式,扫描一个ip的全端口(1-65535)需要7分钟,使用协成方式是否会提升扫描效率.
另外项目中未看到license文件,请问项目是要使用什么开源协议?

Releases中的mac版运行失败

师傅你好,当前Releases中的mac版运行失败,ServerScan_Air_v1.0.2_darwin_amd64和ServerScan_Pro_v1.0.2_darwin_amd64,环境macOS Catalina 10.15.2。

[Sewell]: ~/Downloads
➜  ./ServerScan_Air_v1.0.2_darwin_amd64
[1]    1817 killed     ./ServerScan_Air_v1.0.2_darwin_amd64
[Sewell]: ~/Downloads
➜  ./ServerScan_Pro_v1.0.2_darwin_amd64
[1]    2362 killed     ./ServerScan_Pro_v1.0.2_darwin_amd64

本地编译是可以运行的,可能是师傅你在win上编译的mac版导致的。

用tcp探测存活主机希望可以指定端口

用tcp探测存活主机希望可以指定端口来探测,这样扫的会快一些,比如我只想探测443,80,3389,445,如果开放就再继续扫其他 -p 指定的端口,如果没有继续扫下一台这样的。

感谢,表哥的扫描器

催更消息

师傅你好,项目写的挺不错,期待虎年更新下~

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.