diff --git a/cli/parser.go b/cli/parser.go
@@ -3,10 +3,12 @@ package cli
import (
"fmt"
"os"
+ "strings"
"github.com/spf13/cobra"
- helpers "evil.djnn.sh/djnn/yellow/helpers"
+ "evil.djnn.sh/djnn/yellow/helpers"
+ "evil.djnn.sh/djnn/yellow/osint"
)
func GetParser(opts *StandardOptions) *cobra.Command {
@@ -14,7 +16,7 @@ func GetParser(opts *StandardOptions) *cobra.Command {
var osintCmd = &cobra.Command{
Use: "osint",
Short: "Run OSINT tools to retrieve IP addresses and interesting assets",
- Long: "Runs subfinder & dnsx on all domains to find subdomains which are passed to httpx. Also runs google dorks.",
+ Long: "Runs dorks, subfinder, assetfinder & dnsx on all domains to find subdomains & assets, which are passed on to httpx and finally gowitness",
Args: cobra.MinimumNArgs(0),
Run: func(cmd *cobra.Command, args []string) {
@@ -24,32 +26,32 @@ func GetParser(opts *StandardOptions) *cobra.Command {
os.Exit(1)
}
- helpers.CheckProxy(opts.Proxy)
- helpers.DisplayNetInfo()
+ helper.CheckProxy(opts.Proxy)
+ helper.DisplayNetInfo()
- if opts.OutDirName == "" || !helpers.Exists(opts.OutDirName) {
+ if opts.OutDirName == "" || !helper.Exists(opts.OutDirName) {
println("[!] collected assets will be sent to current working directory")
}
- /*
- createOutDirectory()
- checkProxy()
- displayNetInfo()
+ osintOpts := osint.OsintOpts{}
+ osintOpts.SetDomain(opts.OutDirName)
+ osintOpts.SetScanPath(opts.OutDirName)
+ osintOpts.SetProxy(opts.Proxy)
+ osintOpts.SetDryRun(opts.RunDry)
- if targetPath == "" {
- scanDomain(domain)
- return
- }
-
- scanner := loadTargetFile()
- defer scanner.Close()
+ if opts.TargetFilePath == "" {
+ osintOpts.Run()
+ return
+ }
- for scanner.Scan() {
- targetDomain := scanner.Text()
- scanDomain(targetDomain)
- }
- */
+ scanner := helper.LoadTargetFile(opts.TargetFilePath)
+ defer scanner.Close()
+ for scanner.Scan() {
+ targetDomain := scanner.Text()
+ osintOpts.SetDomain(targetDomain)
+ osintOpts.Run()
+ }
},
}
@@ -66,24 +68,14 @@ func GetParser(opts *StandardOptions) *cobra.Command {
os.Exit(1)
}
- dirname := helpers.ReplaceWithHyphen(opts.OutDirName)
- fmt.Println("[+] setting up directory architecture for", dirname)
-
- _ = os.MkdirAll(dirname, 0775)
- helpers.CreateDirectory(dirname, []helpers.Folder{
- {
- Name: "scans",
- Children: helpers.FolderNameFactory("nmap", "infra", "web", "ssl", "screenshots", "nessus"),
- },
- {
- Name: "extracted",
- Children: helpers.FolderNameFactory("assets", "creds", "code"),
- },
- {
- Name: "www",
- Children: helpers.FolderNameFactory("exploits", "tools"),
- },
- })
+ if strings.Contains(opts.OutDirName, ",") {
+ directories := strings.Split(opts.OutDirName, ",")
+ for _, d := range directories {
+ helper.SetUpDirectoryArchitecture(d)
+ }
+ } else {
+ helper.SetUpDirectoryArchitecture(opts.OutDirName)
+ }
fmt.Println("[+] Done. Happy hunting :)~")
},
@@ -91,10 +83,10 @@ func GetParser(opts *StandardOptions) *cobra.Command {
defaults := GetDefaultOptions()
var rootCmd = createDirectories
- rootCmd.Flags().StringVarP(&opts.OutDirName, "dir-name", "d", defaults.OutDirName, "Pentest target, will be the name of the directories created, for instance")
+ rootCmd.Flags().StringVarP(&opts.OutDirName, "dir-name", "d", defaults.OutDirName, "Directory name to create (you can also put multiple names and separate them with a ,)")
rootCmd.AddCommand(osintCmd)
- osintCmd.Flags().StringVarP(&opts.OutDirName, "dir-name", "d", defaults.OutDirName, "Pentest target, will be the name of the directories created, for instance")
+ osintCmd.Flags().StringVarP(&opts.OutDirName, "dir-name", "d", defaults.OutDirName, "Outfile directory name (if no target-file is specified, will also be target domain)")
osintCmd.Flags().StringVarP(&opts.Proxy, "proxy", "p", defaults.Proxy, "Proxy URL (used for the tools supporting it. Other will prompt a warning msg)")
osintCmd.Flags().BoolVarP(&opts.RunDry, "dry", "", defaults.RunDry, "Run a dry-run (test mode)")
osintCmd.Flags().BoolVarP(&opts.UseHttpInsecure, "insecure", "k", defaults.UseHttpInsecure, "Ignore SSL warnings and force http")
diff --git a/go.mod b/go.mod
@@ -2,9 +2,28 @@ module evil.djnn.sh/djnn/yellow
go 1.23
-require github.com/spf13/cobra v1.8.1
+require (
+ github.com/bogdzn/gork v0.0.5
+ github.com/spf13/cobra v1.8.1
+)
require (
+ github.com/PuerkitoBio/goquery v1.5.0 // indirect
+ github.com/andybalholm/cascadia v1.0.0 // indirect
+ github.com/antchfx/htmlquery v1.0.0 // indirect
+ github.com/antchfx/xmlquery v1.0.0 // indirect
+ github.com/antchfx/xpath v1.0.0 // indirect
+ github.com/gobwas/glob v0.2.3 // indirect
+ github.com/gocolly/colly/v2 v2.0.1 // indirect
+ github.com/golang/protobuf v1.5.2 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
+ github.com/kennygrant/sanitize v1.2.4 // indirect
+ github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca // indirect
github.com/spf13/pflag v1.0.5 // indirect
+ github.com/temoto/robotstxt v1.1.1 // indirect
+ golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d // indirect
+ golang.org/x/text v0.3.7 // indirect
+ golang.org/x/time v0.2.0 // indirect
+ google.golang.org/appengine v1.6.7 // indirect
+ google.golang.org/protobuf v1.27.1 // indirect
)
diff --git a/go.sum b/go.sum
@@ -1,10 +1,79 @@
+github.com/PuerkitoBio/goquery v1.5.0 h1:uGvmFXOA73IKluu/F84Xd1tt/z07GYm8X49XKHP7EJk=
+github.com/PuerkitoBio/goquery v1.5.0/go.mod h1:qD2PgZ9lccMbQlc7eEOjaeRlFQON7xY8kdmcsrnKqMg=
+github.com/andybalholm/cascadia v1.0.0 h1:hOCXnnZ5A+3eVDX8pvgl4kofXv2ELss0bKcqRySc45o=
+github.com/andybalholm/cascadia v1.0.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
+github.com/antchfx/htmlquery v1.0.0 h1:O5IXz8fZF3B3MW+B33MZWbTHBlYmcfw0BAxgErHuaMA=
+github.com/antchfx/htmlquery v1.0.0/go.mod h1:MS9yksVSQXls00iXkiMqXr0J+umL/AmxXKuP28SUJM8=
+github.com/antchfx/xmlquery v1.0.0 h1:YuEPqexGG2opZKNc9JU3Zw6zFXwC47wNcy6/F8oKsrM=
+github.com/antchfx/xmlquery v1.0.0/go.mod h1:/+CnyD/DzHRnv2eRxrVbieRU/FIF6N0C+7oTtyUtCKk=
+github.com/antchfx/xpath v1.0.0 h1:Q5gFgh2O40VTSwMOVbFE7nFNRBu3tS21Tn0KAWeEjtk=
+github.com/antchfx/xpath v1.0.0/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk=
+github.com/bogdzn/gork v0.0.5 h1:TZSgOZusNLjBln63egugGtxZnZtVXvXZ5HHFEKTVnZ4=
+github.com/bogdzn/gork v0.0.5/go.mod h1:SzLFtdsDZ0iVyF6ALfEvuo5niTvdRKuavvmAcpMivao=
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
+github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
+github.com/gocolly/colly/v2 v2.0.1 h1:GGPzBEdrEsavhzVK00FQXMMHBHRpwrbbCCcEKM/0Evw=
+github.com/gocolly/colly/v2 v2.0.1/go.mod h1:ePrRZlJcLTU2C/f8pJzXfkdBtBDHL5hOaKLcBoiJcq8=
+github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
+github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
+github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
+github.com/jawher/mow.cli v1.1.0/go.mod h1:aNaQlc7ozF3vw6IJ2dHjp2ZFiA4ozMIYY6PyuRJwlUg=
+github.com/kennygrant/sanitize v1.2.4 h1:gN25/otpP5vAsO2djbMhF/LQX6R7+O1TB4yv8NzpJ3o=
+github.com/kennygrant/sanitize v1.2.4/go.mod h1:LGsjYYtgxbetdg5owWB2mpgUL6e2nfw2eObZ0u0qvak=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca h1:NugYot0LIVPxTvN8n+Kvkn6TrbMyxQiuvKdEwFdR9vI=
+github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca/go.mod h1:uugorj2VCxiV1x+LzaIdVa9b4S4qGAcH6cbhh4qVxOU=
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
+github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/temoto/robotstxt v1.1.1 h1:Gh8RCs8ouX3hRSxxK7B1mO5RFByQ4CmJZDwgom++JaA=
+github.com/temoto/robotstxt v1.1.1/go.mod h1:+1AmkuG3IYkh1kv0d2qEB9Le88ehNO0zwOr3ujewlOo=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
+golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d h1:LO7XpTYMwTqxjLcGWPijK3vRXg1aWdlNOVOHRq45d7c=
+golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/time v0.2.0 h1:52I/1L54xyEQAYdtcSuxtiT84KGYTBGXwayxmIpNJhE=
+golang.org/x/time v0.2.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
+google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
+google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
+google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/helpers/directories.go b/helpers/directories.go
@@ -10,6 +10,27 @@ type Folder struct {
Children []Folder
}
+func SetUpDirectoryArchitecture(target string) {
+ dirname := ReplaceWithHyphen(target)
+ fmt.Println("[+] setting up directory architecture for", dirname)
+
+ _ = os.MkdirAll(dirname, 0775)
+ CreateDirectory(dirname, []Folder{
+ {
+ Name: "scans",
+ Children: FolderNameFactory("nmap", "infra", "web", "ssl", "screenshots", "nessus"),
+ },
+ {
+ Name: "extracted",
+ Children: FolderNameFactory("assets", "creds", "code"),
+ },
+ {
+ Name: "www",
+ Children: FolderNameFactory("exploits", "tools"),
+ },
+ })
+}
+
func Exists(path string) bool {
_, err := os.Stat(path)
if err == nil {
diff --git a/helpers/file.go b/helpers/file.go
@@ -0,0 +1,32 @@
+package helper
+
+import (
+ "bufio"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "os"
+ "strings"
+)
+
+type FileScanner struct {
+ io.Closer
+ *bufio.Scanner
+}
+
+func LoadTargetFile(targetPath string) *FileScanner {
+ file, err := os.Open(targetPath)
+ if err != nil {
+ fmt.Printf("%v, %+v", err, targetPath)
+ }
+
+ scanner := bufio.NewScanner(file)
+ body, err := ioutil.ReadFile(targetPath)
+ if err != nil {
+ fmt.Printf("%v, %+v", err, targetPath)
+ }
+
+ fmt.Println("Loaded target: \n%v", strings.Replace(string(body), "\n", ", ", -1))
+
+ return &FileScanner{file, scanner}
+}
diff --git a/helpers/net.go b/helpers/net.go
@@ -6,8 +6,22 @@ import (
"net/http"
"net/url"
"os"
+ "strings"
)
+func ParseDomain(website string) string {
+ if strings.HasPrefix(website, "http") {
+ parsedUrl, err := url.Parse(website)
+ if err != nil {
+ fmt.Printf("%s", err)
+ }
+
+ website = parsedUrl.Host
+ }
+
+ return website
+}
+
func GetHttpTransport() *http.Transport {
var proxy = os.Getenv("HTTP_PROXY")
url, err := url.Parse(proxy)
diff --git a/osint/dorks.go b/osint/dorks.go
@@ -0,0 +1,36 @@
+package osint
+
+import (
+ "fmt"
+
+ dorks "github.com/bogdzn/gork/cmd"
+)
+
+type Dorks struct {
+ outfile string
+ proxy string
+}
+
+func (d *Dorks) Info(url string) {
+ fmt.Println("[+] Running dorks on %s", url)
+}
+
+func (d *Dorks) Configure(c interface{}) {
+ d.outfile = c.(map[string]interface{})["outfile"].(string)
+ d.proxy = c.(map[string]interface{})["proxy"].(string)
+}
+
+func (d *Dorks) Run(domain string) {
+ opts := &dorks.Options{
+ Proxy: d.proxy,
+ Outfile: d.outfile,
+ AppendResults: false,
+ Extensions: dorks.DefaultFileExtensions(),
+ Exclusions: dorks.DefaultExclusions(),
+ UserAgent: dorks.DefaultUserAgent(),
+ Target: domain,
+ }
+
+ dorks.Run(opts)
+ fmt.Printf("[OSINT %s] Dorks are stored in %s", domain, d.outfile)
+}
diff --git a/osint/run.go b/osint/run.go
@@ -1 +1,72 @@
package osint
+
+import (
+ "fmt"
+)
+
+type OsintOpts struct {
+ domain string
+ scanPath string
+ proxy string
+ dryRun bool
+}
+
+func (opts *OsintOpts) SetDomain(domain string) {
+ opts.domain = domain
+}
+
+func (opts *OsintOpts) SetScanPath(data string) {
+ opts.scanPath = data
+}
+
+func (opts *OsintOpts) SetProxy(data string) {
+ opts.proxy = data
+}
+
+func (opts *OsintOpts) SetDryRun(data bool) {
+ opts.dryRun = data
+}
+
+func (opts OsintOpts) runGoogleDorks() {
+
+ dorks := Dorks{}
+ dorksCfg := make(map[string]interface{})
+
+ dorksOutfile := fmt.Sprintf("%s/dorks_%s.txt", opts.scanPath, opts.domain)
+ dorksCfg["outfile"] = dorksOutfile
+ dorksCfg["proxy"] = opts.proxy
+
+ dorks.Configure(dorksCfg)
+ dorks.Info(opts.domain)
+ if !opts.dryRun {
+ dorks.Run(opts.domain)
+ }
+}
+
+func (opts OsintOpts) runAssetfinder() {
+
+}
+
+func (opts OsintOpts) runDnsx() {
+
+}
+
+func (opts OsintOpts) runHttpx() {
+
+}
+
+func (opts OsintOpts) runGowitness() {
+
+}
+
+func (opts OsintOpts) Run() {
+ fmt.Printf("\n[OSINT] domain: %s\n\n", opts.domain)
+
+ opts.runGoogleDorks()
+ opts.runAssetfinder()
+ opts.runDnsx()
+ opts.runHttpx()
+ opts.runGowitness()
+
+ fmt.Printf("[OSINT %s] done.\n", opts.domain)
+}
| | | | | | | |