GoScan is an interactive network scanner client, featuring auto-completion, which provides abstraction and automation over nmap.
Although it started as a small side-project I developed in order to learn @golang, GoScan can now be used to perform host discovery, port scanning, and service enumeration not only in situations where being stealthy is not a priority and time is limited (think at CTFs, OSCP, exams, etc.), but also (with a few tweaks in its configuration) during professional engagements.
GoScan is also particularly suited for unstable environments (think unreliable network connectivity, lack of “
screen“, etc.), given that it fires scans and maintain their state in an SQLite database.
Scans run in the background (detached from the main thread), so even if connection to the box running GoScan is lost, results can be uploaded asynchronously (more on this below).
That is, data can be imported into GoScan at different stages of the process, without the need to restart the entire process from scratch if something goes wrong.
Also Read – What is Bug Bounty Program?
In addition, the Service Enumeration phase integrates a collection of other tools (e.g.,
nikto, etc.), each one tailored to target a specific service.
Binary installation (Recommended)
Binaries are available from the Release page.
$ wget https://github.com/marco-lancini/goscan/releases/download/v2.4/goscan_2.4_linux_amd64.zip
$ unzip goscan_2.4_linux_amd64.zip
$ wget https://github.com/marco-lancini/goscan/releases/download/v2.4/goscan_2.4_linux_386.zip
$ unzip goscan_2.4_linux_386.zip
After that, place the executable in your PATH
$ chmod +x goscan
$ sudo mv ./goscan /usr/local/bin/goscan
Build from source
Clone and spin up the project
$ git clone https://github.com/marco-lancini/goscan.git
$ cd goscan/
$ docker-compose up –build
$ docker-compose run cli /bin/bash
root@cli:/go/src/github.com/marco-lancini/goscan $ make init
root@cli:/go/src/github.com/marco-lancini/goscan $ make make setup
root@cli:/go/src/github.com/marco-lancini/goscan $ make build
To create a multi-platform binary, use the cross command via mak
root@cli:/go/src/github.com/marco-lancini/goscan $ make cross
GoScan supports all the main steps of network enumeration:
|Load targets||Add a single target via the CLI (must be a valid CIDR): |
|Host Discovery||Perform a Ping Sweep: |
|Port Scanning||Perform a port scan: |
|Service Enumeration||Dry Run (only show commands, without performing them): |
|Special Scans||EyeWitnessTake screenshots of websites, RDP services, and open VNC servers (KALI ONLY): |
|Utils||Show results: |
The Service Enumeration phase currently supports the following integrations:
|HTTP||nmapniktodirbEyeWitnesssqlmap [AGGRESSIVE]fimap [AGGRESSIVE]|