Path: blob/master/lib/remote/googlesearch_scanner.go
988 views
package remote12import (3"github.com/sundowndev/dorkgen"4"github.com/sundowndev/dorkgen/googlesearch"5"github.com/sundowndev/phoneinfoga/v2/lib/number"6)78const Googlesearch = "googlesearch"910type googlesearchScanner struct{}1112// GoogleSearchDork is the common format for dork requests13type GoogleSearchDork struct {14Number string `json:"number" console:"-"`15Dork string `json:"dork" console:"-"`16URL string `json:"url" console:"URL"`17}1819// GoogleSearchResponse is the output of Google search scanner.20// It contains all dorks created ordered by types.21type GoogleSearchResponse struct {22SocialMedia []*GoogleSearchDork `json:"social_media" console:"Social media,omitempty"`23DisposableProviders []*GoogleSearchDork `json:"disposable_providers" console:"Disposable providers,omitempty"`24Reputation []*GoogleSearchDork `json:"reputation" console:"Reputation,omitempty"`25Individuals []*GoogleSearchDork `json:"individuals" console:"Individuals,omitempty"`26General []*GoogleSearchDork `json:"general" console:"General,omitempty"`27}2829func NewGoogleSearchScanner() Scanner {30return &googlesearchScanner{}31}3233func (s *googlesearchScanner) Name() string {34return Googlesearch35}3637func (s *googlesearchScanner) Description() string {38return "Generate several Google dork requests for a given phone number."39}4041func (s *googlesearchScanner) DryRun(_ number.Number, _ ScannerOptions) error {42return nil43}4445func (s *googlesearchScanner) Run(n number.Number, _ ScannerOptions) (interface{}, error) {46res := GoogleSearchResponse{47SocialMedia: getSocialMediaDorks(n),48DisposableProviders: getDisposableProvidersDorks(n),49Reputation: getReputationDorks(n),50Individuals: getIndividualsDorks(n),51General: getGeneralDorks(n),52}5354return res, nil55}5657func getDisposableProvidersDorks(number number.Number) (results []*GoogleSearchDork) {58var dorks = []*googlesearch.GoogleSearch{59dorkgen.NewGoogleSearch().60Site("hs3x.com").61InText(number.International),62dorkgen.NewGoogleSearch().63Site("receive-sms-now.com").64InText(number.International).65Or().66InText(number.RawLocal),67dorkgen.NewGoogleSearch().68Site("smslisten.com").69InText(number.International).70Or().71InText(number.RawLocal),72dorkgen.NewGoogleSearch().73Site("smsnumbersonline.com").74InText(number.International).75Or().76InText(number.RawLocal),77dorkgen.NewGoogleSearch().78Site("freesmscode.com").79InText(number.International).80Or().81InText(number.RawLocal),82dorkgen.NewGoogleSearch().83Site("catchsms.com").84InText(number.International).85Or().86InText(number.RawLocal),87dorkgen.NewGoogleSearch().88Site("smstibo.com").89InText(number.International).90Or().91InText(number.RawLocal),92dorkgen.NewGoogleSearch().93Site("smsreceiving.com").94InText(number.International).95Or().96InText(number.RawLocal),97dorkgen.NewGoogleSearch().98Site("getfreesmsnumber.com").99InText(number.International).100Or().101InText(number.RawLocal),102dorkgen.NewGoogleSearch().103Site("sellaite.com").104InText(number.International).105Or().106InText(number.RawLocal),107dorkgen.NewGoogleSearch().108Site("receive-sms-online.info").109InText(number.International).110Or().111InText(number.RawLocal),112dorkgen.NewGoogleSearch().113Site("receivesmsonline.com").114InText(number.International).115Or().116InText(number.RawLocal),117dorkgen.NewGoogleSearch().118Site("receive-a-sms.com").119InText(number.International).120Or().121InText(number.RawLocal),122dorkgen.NewGoogleSearch().123Site("sms-receive.net").124InText(number.International).125Or().126InText(number.RawLocal),127dorkgen.NewGoogleSearch().128Site("receivefreesms.com").129InText(number.International).130Or().131InText(number.RawLocal),132dorkgen.NewGoogleSearch().133Site("receive-sms.com").134InText(number.International).135Or().136InText(number.RawLocal),137dorkgen.NewGoogleSearch().138Site("receivetxt.com").139InText(number.International).140Or().141InText(number.RawLocal),142dorkgen.NewGoogleSearch().143Site("freephonenum.com").144InText(number.International).145Or().146InText(number.RawLocal),147dorkgen.NewGoogleSearch().148Site("freesmsverification.com").149InText(number.International).150Or().151InText(number.RawLocal),152dorkgen.NewGoogleSearch().153Site("receive-sms-online.com").154InText(number.International).155Or().156InText(number.RawLocal),157dorkgen.NewGoogleSearch().158Site("smslive.co").159InText(number.International).160Or().161InText(number.RawLocal),162}163164for _, dork := range dorks {165results = append(results, &GoogleSearchDork{166Number: number.E164,167Dork: dork.String(),168URL: dork.URL(),169})170}171172return results173}174175func getIndividualsDorks(number number.Number) (results []*GoogleSearchDork) {176var dorks = []*googlesearch.GoogleSearch{177dorkgen.NewGoogleSearch().178Site("numinfo.net").179InText(number.International).180Or().181InText(number.E164).182Or().183InText(number.RawLocal),184dorkgen.NewGoogleSearch().185Site("sync.me").186InText(number.International).187Or().188InText(number.E164).189Or().190InText(number.RawLocal),191dorkgen.NewGoogleSearch().192Site("whocallsyou.de").193InText(number.RawLocal),194dorkgen.NewGoogleSearch().195Site("pastebin.com").196InText(number.International).197Or().198InText(number.E164).199Or().200InText(number.RawLocal),201dorkgen.NewGoogleSearch().202Site("whycall.me").203InText(number.International).204Or().205InText(number.E164).206Or().207InText(number.RawLocal),208dorkgen.NewGoogleSearch().209Site("locatefamily.com").210InText(number.International).211Or().212InText(number.E164).213Or().214InText(number.RawLocal),215dorkgen.NewGoogleSearch().216Site("spytox.com").217InText(number.RawLocal),218}219220for _, dork := range dorks {221results = append(results, &GoogleSearchDork{222Number: number.E164,223Dork: dork.String(),224URL: dork.URL(),225})226}227228return results229}230231func getSocialMediaDorks(number number.Number) (results []*GoogleSearchDork) {232var dorks = []*googlesearch.GoogleSearch{233dorkgen.NewGoogleSearch().234Site("facebook.com").235InText(number.International).236Or().237InText(number.E164).238Or().239InText(number.RawLocal),240dorkgen.NewGoogleSearch().241Site("twitter.com").242InText(number.International).243Or().244InText(number.E164).245Or().246InText(number.RawLocal),247dorkgen.NewGoogleSearch().248Site("linkedin.com").249InText(number.International).250Or().251InText(number.E164).252Or().253InText(number.RawLocal),254dorkgen.NewGoogleSearch().255Site("instagram.com").256InText(number.International).257Or().258InText(number.E164).259Or().260InText(number.RawLocal),261dorkgen.NewGoogleSearch().262Site("vk.com").263InText(number.International).264Or().265InText(number.E164).266Or().267InText(number.RawLocal),268}269270for _, dork := range dorks {271results = append(results, &GoogleSearchDork{272Number: number.E164,273Dork: dork.String(),274URL: dork.URL(),275})276}277278return results279}280281func getReputationDorks(number number.Number) (results []*GoogleSearchDork) {282var dorks = []*googlesearch.GoogleSearch{283dorkgen.NewGoogleSearch().284Site("whosenumber.info").285InText(number.E164).286InTitle("who called"),287dorkgen.NewGoogleSearch().288InTitle("Phone Fraud").289InText(number.International).290Or().291InText(number.E164).292Or().293InText(number.RawLocal),294dorkgen.NewGoogleSearch().295Site("findwhocallsme.com").296InText(number.E164).297Or().298InText(number.International),299dorkgen.NewGoogleSearch().300Site("yellowpages.ca").301InText(number.E164),302dorkgen.NewGoogleSearch().303Site("phonenumbers.ie").304InText(number.E164),305dorkgen.NewGoogleSearch().306Site("who-calledme.com").307InText(number.E164),308dorkgen.NewGoogleSearch().309Site("usphonesearch.net").310InText(number.RawLocal),311dorkgen.NewGoogleSearch().312Site("whocalled.us").313InURL(number.RawLocal),314dorkgen.NewGoogleSearch().315Site("quinumero.info").316InText(number.RawLocal).317Or().318InText(number.International),319dorkgen.NewGoogleSearch().320Site("uk.popularphotolook.com").321InURL(number.RawLocal),322}323324for _, dork := range dorks {325results = append(results, &GoogleSearchDork{326Number: number.E164,327Dork: dork.String(),328URL: dork.URL(),329})330}331332return results333}334335func getGeneralDorks(number number.Number) (results []*GoogleSearchDork) {336var dorks = []*googlesearch.GoogleSearch{337dorkgen.NewGoogleSearch().338InText(number.International).339Or().340InText(number.E164).341Or().342InText(number.RawLocal).343Or().344InText(number.Local),345dorkgen.NewGoogleSearch().346Group(dorkgen.NewGoogleSearch().347Ext("doc").348Or().349Ext("docx").350Or().351Ext("odt").352Or().353Ext("pdf").354Or().355Ext("rtf").356Or().357Ext("sxw").358Or().359Ext("psw").360Or().361Ext("ppt").362Or().363Ext("pptx").364Or().365Ext("pps").366Or().367Ext("csv").368Or().369Ext("txt").370Or().371Ext("xls")).372InText(number.International).373Or().374InText(number.E164).375Or().376InText(number.RawLocal),377}378379for _, dork := range dorks {380results = append(results, &GoogleSearchDork{381Number: number.E164,382Dork: dork.String(),383URL: dork.URL(),384})385}386387return results388}389390391