yellow.git


yellow

~ opinionated web scanning pipeline for pentesters in a hurry
git clone https://github.com/djnnvx/yellow.git
log | files | refs | archive | README | LICENSE

run.go (873B)

      1 package prune
      2 
      3 import (
      4 	"fmt"
      5 
      6 	"evil.djnn.sh/djnn/yellow/core"
      7 	helper "evil.djnn.sh/djnn/yellow/helpers"
      8 )
      9 
     10 type PruneOpts struct {
     11 	Proxy         string
     12 	DryRun        bool
     13 	ForceInsecure bool
     14 
     15 	InFilePath  string
     16 	OutFilePath string
     17 }
     18 
     19 func (opts *PruneOpts) Run() {
     20 
     21 	helper.CheckProxy(opts.Proxy)
     22 	helper.DisplayNetInfo()
     23 
     24 	results := make([]string, 0)
     25 	scanner := helper.LoadTargetFile(opts.InFilePath)
     26 	defer scanner.Close()
     27 
     28 	for targetDomain := range scanner.Lines() {
     29 		if target, ok := helper.ResolveWebTarget(targetDomain, opts.ForceInsecure); ok {
     30 			fmt.Printf("[+] %s is alive (%s)!\n", targetDomain, target)
     31 			results = append(results, targetDomain)
     32 		}
     33 	}
     34 
     35 	if err := core.WriteLines(opts.OutFilePath, results); err != nil {
     36 		fmt.Printf("Error writing to file: %v\n", err)
     37 		return
     38 	}
     39 
     40 	fmt.Printf("[+] Done. Saved %d alive domains\n", len(results))
     41 }