Table of Contents
π What Is This?
Gomap is a network port scanning tool similar to that of nmap. There's also the very popular RustScan. I wanted to experiment with Go and see what it was all about. But before I knew it, I wanted to do more and see what else I could do with the language.
Gomap does not aim to replace nmap
or RustScan
, but rather be a coexisting partner in the same space. I'm not trying to be the best network scanner or the fastest (though speed is a goal). I started this as a way to learn the Go programming language and having literally never published anything Open Source of my own design ever, wanted to see what others thought.
β¨ Features
- Faster alternative to
nmap
- Goroutines for faster runtimes
- Service fingerprinting (not yet implemented)
- OS fingerprinting (wishlist)
π» Installation
Downloading & Installing Go
To download Go, follow the instructions at Golang's own website, here. Then follow the install instructions for your OS.
[!NOTE]
Linux users can also install via their package manager (e.g.apt install golang-go
). This does not appear to be present on Go's website, but it's how I installed it and have had no issues with Kali. YMMV depending on distro.
Go CLI
To install Gomap, you can use the Go CLI:
go install github.com/0niSec/gomap@latest
Standalone Binary
Standalone binaries can be downloaded from the releases page for Windows, Linux and MacOS. For other OS-specific methods, please see the corresponding section for your OS.
π³ Docker
[!WARNING]
The Dockerfile has been created and added and tested, but I have not yet published it to Docker Hub so these instructions will be valid, but do not work yet.
Docker is used a lot nowadays and I wanted to include it as an option because:
- It works on all systems
- The Docker image will use the latest build from Go. You'll always be using the latest version.
- No need to install Go
To install Docker, follow their guide.
docker pull 0niSec/gomap:latest
Usage
π§ Linux
Running on Linux is simple! With Gomap installed using go install
, and the binary added to your PATH:
USAGE:
gomap [global options] command [command options]
VERSION:
0.1.0
AUTHOR:
0niSec
COMMANDS:
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--ports value, -p value Port ranges to scan
--quiet, -q Don't print the banner and other noise (default: false)
--target value, -t value The target to scan
--timeout value, -T value Timeout for the connection (default: 10s)
--output value, -o value Output file
--help, -h show help
--version, -v print the version
π³ Docker
Running the binary using Docker is as easy as
docker run 0niSec/gomap -p <PORTS> -t <TARGET>
π€ Contributing
This started as a solo project and I'd love to accept any help people are willing to provide. If you're interested in helping, take a look at the issues for anything you'd like to tackle. Please also read the Code of Conduct and Contributing for more information.
By actively participating in contributing to this project, you agree to all of the rules and guidelines set therein.
β Disclaimer
This tool is meant to be used ethically in Capture the Flag programs such as MetaCTF, Hack the Box, or TryHackMe (to name a few) or on sanctioned penetration tests that have a formal contract and drawn out engagement. Please do not use this tool on infrastructure that you do not have permission to.
π Contributors