MX1014 is a flexible, lightweight and fast port scanner.

Overview

MX1014

MX1014 是一个遵循 “短平快” 原则的灵活、轻便和快速端口扫描器

此工具仅限于安全研究和教学,用户承担因使用此工具而导致的所有法律和相关责任! 作者不承担任何法律和相关责任!

Version

1.1.1 - 版本修改日志

Features

  • 兼容 nmap 的端口和目标语法
  • 支持各组目标扫描不同的端口
  • 采用逐主机的深度搜索机制,降低 “踩雷” 的速度
  • 扫描过程中有自动判定主机存活是否继续扫描的机制
  • 支持导入多个 TARGET
  • 默认主机和端口均为随机循序扫描
  • windows 最低环境支持 xp/2003 等 (即兼容 Golang 1.10.8)
  • linux 支持 CentOS5 (Linux 2.6.18) 等 (即兼容 Golang 1.10.8)
  • 支持 TCP/UDP 的 Echo 回显数据发送 (UDP 不会返回端口状态)
  • 支持 TCP closed 状态显示

Basic Usage

  1. 直接运行,查看帮助信息 (所有参数与语法说明)
$ ./mx1014
                          ...                                     .
                        .111111111111111.........................1111
      ......111..    .10011111011111110000000000000000111111111100000
  10010000000011.1110000001.111.111......1111111111111111..........
  10twelve0111...   .10001. ..
  100011...          1001               MX1014 by L
  .001              1001               Version 1.1.1
  .1.              ...1.


Usage: ./mx1014 [Options] [Target1] [Target2]...

Target Example:
    192.168.1.0/24
    192.168.1.*
    192.168.1-12.1
    192.168.*.1:22,80-90,8080
    github.com:22,443,8443

Options:
    -p Ports  Default port ranges. (Default is common ports
    -ap Ports Append default ports
    -i File   Target input from list
    -t Int    The Number of Goroutine (Default is 256)
    -T Int    TCP Connect Timeout (Default is 1014ms)
    -o File   Output file path
    -r        Scan in import order
    -u        UDP spray
    -e        Echo mode (TCP needs to be manually)
    -c        Allow display of closed ports (Only TCP)
    -d Str    Specify Echo mode data (Default is "%port%\n")
    -D Int    Progress Bar Refresh Delay (Default is 5s)
    -a Int    Too many filtered, Discard the host (Default is 1014)
    -A        Disable auto disable
    -v        Verbose mode
  1. 简单扫描数十个常用默认端口
$ ./mx1014 192.168.1.134
# 2021/04/09 12:15:49 Start scanning 1 hosts...

192.168.1.134:80
192.168.1.134:8009
192.168.1.134:22
192.168.1.134:8080

# 2021/04/09 12:15:50 Finished 49 tasks. alive: 100% (1/1), open: 4, pps: 49, time: 1s
  1. 扫描各组不同 IP 的不同端口
$ ./mx1014 192.168.1.0/24:22 192.168.1.133:80-90,443
# 2021/04/09 12:20:57 Start scanning 257 hosts...

192.168.1.133:83
192.168.1.133:84
192.168.1.133:81
192.168.1.133:22
192.168.1.133:443
192.168.1.134:22
192.168.1.133:80
192.168.1.133:87
192.168.1.133:82
192.168.1.133:88
192.168.1.130:22

# 2021/04/09 12:20:58 Finished 268 tasks. alive: 1% (4/257), open: 11, pps: 263, time: 1s

Advanced Usage

  1. 根据网络环境,调整扫描并发数(-t)、超时(-T)和进度打印间隔(-D), 提速或提高准确度
$ ./mx1014 -t 1000 -T 500 -D 10 -p 1-65535 192.168.1.134
# 2021/04/07 19:31:40 Start scanning 1 hosts...

192.168.1.134:3306
192.168.1.134:80
# Progress (19021/65535) open: 2, pps: 1900, rate: 29%
192.168.1.134:8009
# Progress (39042/65535) open: 3, pps: 1951, rate: 59%
192.168.1.134:22
# Progress (58270/65535) open: 4, pps: 1941, rate: 88%
192.168.1.134:8080

# 2021/04/07 19:32:13 Finished 65535 tasks. alive: 100% (1/1), open: 5, pps: 1934, time: 33s
  1. TCP Echo 模式,如果端口开放,往端口写入当前的端口号
$ ./mx1014 -e 192.168.1.134:80,8000-8080 # 可用 -d 参数指定 echo 的内容
# 2021/04/07 19:37:43 Start scanning 1 hosts... (TCP Echo)

192.168.1.134:8009
192.168.1.134:8011
192.168.1.134:8080
192.168.1.134:80

# 2021/04/07 19:37:44 Finished 82 tasks. alive: 100% (1/1), open: 4, pps: 81, time: 1s
  1. 从文件中读取目标并进行 UDP 扫描 (默认会 echo 端口号)
$ cat > ip.txt <<EOF
heredoc> 192.168.1.134:80
heredoc> 192.168.1.130:22
EOF
$ ./mx1014 -u -i ip.txt
# 2021/04/07 19:50:39 Start scanning 2 hosts...


# 2021/04/07 19:50:39 Finished 2 tasks. alive: 0% (0/2), open: 0, pps: 1306, time: 0s
  1. 追加默认端口进行扫描
$ ./mx1014 -ap 1000-2000 192.168.1.134
# 2021/04/09 12:34:27 Start scanning 1 hosts...

192.168.1.134:8009
192.168.1.134:80
192.168.1.134:8080
192.168.1.134:22
# Progress (1032/1050) open: 4, pps: 206, rate: 98%
192.168.1.134:1111

# 2021/04/09 12:34:32 Finished 1050 tasks. alive: 100% (1/1), open: 4, pps: 208, time: 5s
  1. 禁用自动丢弃主机机制,强制扫描
$ ./mx1014 -A 192.168.1.134:1-65535
  1. 可显示 closed 状态的端口信息,作用自行脑补
$ ./mx1014 -c 192.168.1.134:1-65535

TODO

  • 代码逻辑优化

License

GPL 3.0

Issues
  • 端口添加逻辑问题

    端口添加逻辑问题

    问题代码:defaultPorts = append(commonPorts, defaultPorts...)。第455行,默认添加commonPorts共计49个端口 问题描述:执行 go run mx1014.go -p 80 127.0.0.1 或者 go run mx1014.go 127.0.0.1:80 时,默认会扫49个端口,而不是单独80端口。 修复建议:加个判断,在有-ap参数 或者 没有-p参数 或者 IP后面没有跟端口的情况下,再使用commonPorts端口

    opened by wooyin 1
Releases(v2.3.0)
  • v2.3.0(Nov 13, 2021)

  • v2.2.0(Nov 12, 2021)

  • v2.1.0(Oct 25, 2021)

    MX1014 v2.1 内网探测,更快,更准,更方便!!!

        新特征:
            1. 新增 -g 参数,可方便指定内网网关地址范围作为目标
            2. 新增 -cnet 参数,可将输入的目标地址转成 CIDR mask 24 进行扫描
            3. 新增 -hp 参数,可在随机端口扫描下指定优先扫描的端口列表
            4. 新增 -ep 参数,排除端口
            5. 新增 -sh 参数,打印扫描主机列表
        增强:
            1. 增强错误主机地址匹配,减少错误信息提示
            2. CIDR 格式的目标地址,忽略网络地址和广播地址
            3. 检测设置端口范围有效性
            4. 增加结果保存信息提醒
            5. 增强 -i 参数的目标文件列表读取,可使用 '#' 开头注释,并且目标列表从覆盖改成了追加
            6. 对可选参数进行分类,优化了 help 打印信息
        修复:
            1. 发包任务计数错误显示
            2. 修复 pps 显示 BUG
    
    Source code(tar.gz)
    Source code(zip)
    mx1014(701.66 KB)
    mx1014.exe(625.50 KB)
    mx1014_386(664.33 KB)
  • v2.0.0(Oct 17, 2021)

    MX1014 v2.0 更快,更准,更方便!!!

        新特征:
            1. 引入了端口组的概念,支持 -p rce,info 等端口组进行扫描 (更多参考 README)
            2. 添加了端口模糊测试功能 (参考 -fuzz)
        增强:
            1. 开放端口的结果追加了归宿端口组的信息
            2. 统一打印输出到 stdout
            3. 调整了默认扫描并发数,由 256 提升为 512
            4. 调整了默认自动跳过主机最大 filtered 计数,由 1014 降低为 512
            4. 调整了默认Timeout,由 1514ms  提升为 1980ms
            5. -sp 打印默认端口功能,目前会根据 -fuzz -p 等选项进行输出实际扫描的默认端口
            6. 扫描前对目标地址进行校验
            7. 增强输出信息提醒
            8. 大型扫描时内存占用过大,经优化降低了 4 倍左右的内存使用
            9. 修改了原来的扫描方式(深度转为广度),降低扫描的漏报情况
        移除:
            1. 因使用了端口组,而无需追加默认端口功能,故移除 -ap 参数
            2. 改变了新扫描方式后,只能随机端口扫描,故移除 -r 参数
    
    Source code(tar.gz)
    Source code(zip)
    mx1014(698.72 KB)
    mx1014.exe(623.00 KB)
    mx1014_386(661.49 KB)
  • v1.2.0(Jun 30, 2021)

  • v1.1.1(May 7, 2021)

  • v1.1.0(Apr 9, 2021)

        概述:
            主要为自动消除 TCP 无意义的扫描,提升扫描速度
    
        新特征:
            1. 主机端口扫描过程中的存活判定,提高多端口的扫描速度
               单个主机的扫描,如果出现过多的 filtered 则会自动放弃该主机的扫描,
               当主机有端口出现 closed/open 状态时,则会强制所有指定的端口扫描
               filtered 过多的阈值设置 `-a` 默认 `1024`
               关闭自动丢弃机制,强制扫描 `-A`
            2. -ap 追加默认端口参数
            3. -c 允许 closed 状态打印输出 (仅 TCP)
        增强:
            1. TCP Connect 中修复没有路由可达的情况下,放弃该主机的扫描
            2. TCP Connect 中修复网络地址 `.0/.255` 等不可达情况下,放弃该主机的扫描
            3. 对位置的错误情况,添加了更详细的错误输出,便于调试
            4. 增强扫描结束后统计的数据显示
            5. 降低了耗时统计的时间单位精确度
            6. 对端口列表进行去重处理
            7. 对端口随机后还是会优先探测常用端口列表 (Targets:Ports 则常用端口交集),
               从而提高自动放弃扫描机制可靠性
        修复:
            1. 使用 Targets:Ports 时,统计的任务数有误问题
            5. 使用 Targets:Ports 时,不会随机化端口扫描顺序的问题
    
    Source code(tar.gz)
    Source code(zip)
    mx1014(826.60 KB)
    mx1014.exe(614.50 KB)
    mx1014_386(777.08 KB)
Owner
L
One who wants to wear the crown, Bears the crown
L
GONET-Scanner - Golang network scanner with arp discovery and own parser

GO/NET Scanner ScreenShots Install chmod +x install.sh ./install.sh [as root] U

Luis Javier 55 Jun 16, 2022
Gbu-scanner - Go Blog Updates (Scanner service)

Go Blog Updates - Scanner This service scans go blog (go.dev) and publishes new posts to message broker (rabbitmq). It uses mongodb as a storage for a

null 1 Jan 10, 2022
A simple port scanner script.

A-simple-port-scanner Description: A basic port scanner which checks if a port is opened, closed, or filtered. This scanner can be improved in many wa

KUCH 0 Dec 18, 2021
Go-basic-port-scanner: Scanning of TCP ports only

go-basic-port-scanner Scanning of TCP ports only. Usage git clone https://git

BenKF 1 Jan 22, 2022
Naabu - a port scanning tool written in Go that allows you to enumerate valid ports for hosts in a fast and reliable manner

Naabu is a port scanning tool written in Go that allows you to enumerate valid ports for hosts in a fast and reliable manner. It is a really simple tool that does fast SYN/CONNECT scans on the host/list of hosts and lists all ports that return a reply.

null 0 Jan 2, 2022
mesh-kridik is an open-source security scanner that performs various security checks on a Kubernetes cluster with istio service mesh and is leveraged by OPA (Open Policy Agent) to enforce security rules.

mesh-kridik Enhance your Kubernetes service mesh security !! mesh-kridik is an open-source security scanner that performs various security checks on a

chenk 22 May 18, 2022
A vulnerability scanner for container images and filesystems

A vulnerability scanner for container images and filesystems

Anchore, Inc. 4k Jun 24, 2022
A compact, cross-platform scanner that scans ports and recognizes fingerprints.

portscan A compact, cross-platform scanner that scans ports and recognizes fingerprints. Usage: Usage of ./portscan: -H headers request headers

Leon 4 Apr 4, 2022
Scanner to send specially crafted requests and catch callbacks of systems that are impacted by Log4J Log4Shell vulnerability (CVE-2021-44228)

scan4log4shell Scanner to send specially crafted requests and catch callbacks of systems that are impacted by Log4J Log4Shell vulnerability CVE-2021-4

Frank Hübner 11 Feb 27, 2022
A vulnerability scanner for container images and filesystems

A vulnerability scanner for container images and filesystems. Easily install the

null 0 Dec 24, 2021
IIS shortname scanner written in Go

sns IIS shortname scanner written in Go Installation Make sure you've a recent version of the Go compiler installed on your system. Then just run: GO1

null 108 Jun 21, 2022
The fastest dork scanner written in Go.

go-dork The fastest dork scanner written in Go. There are also various search engines supported by go-dork, including Google, Shodan, Bing, Duck, Yaho

dw1 608 Jun 22, 2022
Agent-less vulnerability scanner for Linux, FreeBSD, Container, WordPress, Programming language libraries, Network devices

Vuls: VULnerability Scanner Vulnerability scanner for Linux/FreeBSD, agent-less, written in Go. We have a slack team. Join slack team Twitter: @vuls_e

Future Corp 9.3k Jun 24, 2022
Prototype Pollution Scanner

protoscan Prototype Pollution Scanner made in Golang, it was actually made by @tomnomnom in NahamCon2021 https://www.youtube.com/watch?v=Gv1nK6Wj8qM I

Kathan Patel 78 Jun 10, 2022
simple webshell scanner

shellboy ShellBoy is a useful web shell finder. It simply knows the signatures of active or inactive webshells on the market and looks for these signa

Oğuzhan YILMAZ 36 Feb 10, 2022
null 949 Jun 28, 2022
A scanner/exploitation tool written in GO, which leverages Prototype Pollution to XSS by exploiting known gadgets.

ppmap A simple scanner/exploitation tool written in GO which automatically exploits known and existing gadgets (checks for specific variables in the g

kleiton0x00 324 Jun 20, 2022
Another JS scanner but in Go

NipeJS Read list of JS files and look for sensitive data via regex. ☕ Install go get github.com/i5nipe/nipejs ☕ Regular expressions Download the file

iSnipe 16 Jun 6, 2022
Super Java Vulnerability Scanner

XiuScan 不完善,正在开发中 介绍 一个纯Golang编写基于命令行的Java框架漏洞扫描工具 致力于参考xray打造一款高效方便的漏扫神器 计划支持Fastjson、Shiro、Struts2、Spring、WebLogic等框架 PS: 取名为XiuScan因为带我入安全的大哥是修君 特点

4ra1n 116 Dec 30, 2021