Skip to content

dy-fi/Salvo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Salvo (or rather... Salgo) 💣🔫

Codacy Badge Go Report Card

Disclaimer: It is illegal to scan networks if you don't have explicit consent from the network owner. I'm not responsible for what you do with this package or the individual modules, but I'll be very sad if you use it incorrectly

A package leverages Go concurrency for more efficient scanning.

  • randomized request times
  • randomized port order

Coming Soon:

  • Source IP spoofing by manual packet construction

Doc Site

Hosted on its own site here

Author

Dylan Finn - LinkedIn - GitHub

License

This project is licensed under the MIT License - see the LICENSE.md file for details


Installation Instructions

go get github.com/dy-fi/salvo

Quick Start Scan Recipe

This is a TCP full scan of the current host on port 80 (http) and 443 (https)

import (
	"fmt"
	"os"
	"net"
)

func main() {
	// environment data
	host, err := os.Hostname()
	addrs,err := net.LookupHost(host)
	if err != nil {
		fmt.Printf("Error: can't get host \n%v", err)
	}

	conns := []string{}
	ports := []int{}

	for i := 8000; i > 0; i-- {
		ports = append(ports, i)
	}

	for _, v := range addrs {
		conns = PortScan("tcp", v, ports)
	}

	if len(conns) == 0 {
		fmt.Println("No ports were detected")
	} else {
		for _, v := range conns {
			fmt.Println(v + "\n")
		}
	}
}

Documentation

PortScan

func PortScan(protocol string, tgthost string, tgtports []int) ([]string)

PortScan dials host:port addresses concurrently and returns a list of successes

param description
protocol string i.e. "tcp"
tgthost string target host hostname
tgtports ports to scan

About

Salvo is a package that leverages Go concurrency for more efficient scanning.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages