Эй, я пытаюсь автоматизировать инструмент для проведения разведки. Я использую URL для хранения URL с https://
, но есть инструмент whois and sublist3r
, которому нужен адрес без https://
, поэтому я нарезал строку, но когда я запускаюинструмент выходит из строя и отключает мой терминал, который я могу напечатать, но не вижу результатов.
import (
"fmt"
"log"
"os/exec"
"sync"
)
var url string
var wg sync.WaitGroup
var ip string
var nsurl string
func nikto(outChan chan<- []byte) {
cmd := exec.Command("nikto", "-h", url)
bs, err := cmd.Output()
if err != nil {
log.Fatal(err)
}
outChan <- bs
wg.Done()
}
func whois(outChan chan<- []byte) {
cmd := exec.Command("whois",nsurl)
bs, err := cmd.Output()
if err != nil {
log.Fatal(err)
}
outChan <- bs
wg.Done()
}
func nmap (outChan chan<-[]byte) {
cmd := exec.Command("nmap","-sC","-sV","-oA","nmap",ip)
// cmd := exec.Command("nmap","-h")
bs,err := cmd.Output()
if err != nil {
log.Fatal(err)
}
outChan <- bs
wg.Done()
}
func sniper(outChan chan<-[]byte){
cmd:=exec.Command("sniper","-t",url)
bs,err := cmd.Output()
if err!=nil{
log.Fatal(err)
}
outChan <- bs
wg.Done()
}
func sublist3r(outChan chan<-[]byte) {
cmd := exec.Command("sublist3r","-d",nsurl)
bs,err := cmd.Output()
if err!=nil {
log.Fatal(err)
}
outChan <- bs
wg.Done()
}
func inspy (outChan chan<-[]byte){
cmd := exec.Command("inspy","--empspy","/opt/wordlists/wordlists/title-list-large.txt",url)
bs,err := cmd.Output()
if err!=nil {
log.Fatal(err)
}
outChan <- bs
wg.Done()
}
func wig (outChan chan<-[]byte){
//nsurl = url[8:]
cmd := exec.Command("wig",url)
bs,err := cmd.Output()
if err!=nil{
log.Fatal(err)
}
outChan <- bs
wg.Done()
}
func main() {
outChan := make(chan []byte)
fmt.Printf("Please input URL with https:// \n")
fmt.Scanln(&url)
fmt.Printf("Please input IP \n")
fmt.Scanln(&ip)
nsurl = url[8:]
wg.Add(1)
go nikto(outChan)
wg.Add(1)
go whois(outChan)
wg.Add(1)
go nmap(outChan)
wg.Add(1)
go sniper(outChan)
wg.Add(1)
go sublist3r(outChan)
wg.Add(1)
go inspy(outChan)
wg.Add(1)
go wig(outChan)
for i := 0; i <7 ; i++ {
bs := <-outChan
fmt.Println(string(bs))
}
close(outChan)
wg.Wait()
}