c0d3dsk1lls

C0D3D-Recon CodedSkills.net

Aug 7th, 2022
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 33.99 KB | None | 0 0
  1. #! /usr/bin/env python3
  2. # Authors: C0MPL3XDEV & JProgrammer-it
  3. # Support me with follow my instagram page and github page
  4. # Disclaimer: please dont edit or recode the original source code !
  5. # Last update: 21/09/2021 - version 1.1
  6.  
  7. import os
  8. import sys
  9. import re
  10. import json
  11. import requests
  12. import textwrap
  13. import socket
  14. from lxml.html import fromstring
  15. from getpass import getpass
  16. from shutil import which
  17. from threading import Thread
  18. from time import sleep
  19. from bs4 import BeautifulSoup
  20. from tabulate import tabulate
  21. import pyperclip
  22. import requests
  23. import random
  24. import string
  25. import time
  26. import sys
  27. import re
  28. import os
  29.  
  30.  
  31. r = "\033[31m"
  32. g = "\033[32m"
  33. y = "\033[33m"
  34. b = "\033[34m"
  35. p = "\033[35m"
  36. d = "\033[2;37m"
  37. w = "\033[0m"
  38. lr = "\u001b[38;5;196m"
  39.  
  40. W = f"{w}\033[1;47m"
  41. R = f"{w}\033[1;41m"
  42. G = f"{w}\033[1;42m"
  43. Y = f"{w}\033[1;43m"
  44. B = f"{w}\033[1;44m"
  45.  
  46.  
  47. mail_printate = []
  48. configs = json.loads(open("configs/config.json", "r").read())
  49. home = os.getenv("HOME")
  50. cookifile = f"{home}/.cookies"
  51. space = "         "
  52. lines =  space + "-"*44
  53. apihack = "https://api.hackertarget.com/{}/?q={}"
  54. mbasic = "https://mbasic.facebook.com{}"
  55. graph = "https://graph.facebook.com{}"
  56. userrecon_num = 0
  57. userrecon_working = 0
  58. userrecon_results = []
  59. check_email_num = 0
  60. headers = {"User-Agent":"Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (S60; SymbOS; Opera Mobi/23.334; U; id) Presto/2.5.25 Version/10.54"}
  61. logo = f"""
  62.    ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##
  63.    ##      #########\  ########  -+#######\\--   ##########   #######\\       ##
  64.    ##      ##-          ##|--|##    ##-     ##   ##           ##-     ##     ##
  65.    ##      ##           ##|  |##  -+##    +--##  #######      ##       ##    ##
  66.    ##      ##-        +-##|--|##    ##-     ##   ##           ##-     ##     ##
  67.    ##      #########/   ########   -#######//-  +##########   #######//      ##
  68.    ##                                                                        ##                                                                  
  69.    ##                                                                        ##                            
  70.    ##                   ##   //                                              ##
  71.    ##      /#######\\    ##  //    ######     ##      ##       /#######\\      ##
  72.    ##     ||-----       ## //       ##       ##      ##      ||-----         ##
  73.    ##      \\#######\\    ## \\        ##       ##      ##       \\#######\\      ##
  74.    ##       ------||    ##  \\       ##       ##      ##        ------||      ##
  75.    ##     \\######//     ##   \\    ######     #####   #####   \\######//       ##
  76.    ##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++##
  77.                              https://codedskills.net
  78. """
  79.  
  80. def menu():
  81.     os.system("clear")
  82.     print(logo)
  83.     print(f"""
  84.         {W}\033[2;30m Choose number or type exit for exiting {w}
  85.    
  86.        {w}{b}  01{w} Userrecon     {d} Username reconnaissance
  87.        {w}{b}  02{w} Facedumper    {d} Dump facebook information
  88.        {w}{b}  03{w} Mailfinder    {d} Find email with name
  89.        {w}{b}  04{w} Godorker      {d} Dorking with google search
  90.        {w}{b}  05{w} Phoneinfo     {d} Phone number information
  91.        {w}{b}  06{w} DNSLookup     {d} Domain name system lookup
  92.        {w}{b}  07{w} Whoislookup   {d} Identify who is on domain
  93.        {w}{b}  08{w} Sublookup     {d} Subnetwork lookup
  94.        {w}{b}  09{w} Hostfinder    {d} Find host domain
  95.        {w}{b}  10{w} DNSfinder     {d} Find host domain name system
  96.        {w}{b}  11{w} RIPlookup     {d} Reverse IP lookup
  97.        {w}{b}  12{w} IPlocation    {d} IP to location tracker
  98.        {w}{b}  13{w} Bitly Bypass  {d} Bypass all bitly urls
  99.        {w}{b}  14{w} Github Lookup {d} Dump GitHub information
  100.        {w}{b}  15{w} TempMail {d}      Generate Temp Mail and Mail Box
  101.        {w}{b}  00{w} Exit          {d} bye bye ):
  102.        """)
  103.     mainmenu()
  104.  
  105. def mainmenu():
  106.     while True:
  107.         try:
  108.             cmd = input(f"{space}{w}{b}>{w} choose:{b} ")
  109.             if int(len(cmd)) < 6:
  110.                 if cmd in ("exit","Exit", "00", "0"): exit(r+space+"* Exiting !"+w)
  111.                 elif cmd in ("1","01"): userrecon()
  112.                 elif cmd in ("2","02"): fb.facedumper()
  113.                 elif cmd in ("3","03"): mailfinder()
  114.                 elif cmd in ("4","04"): godorker()
  115.                 elif cmd in ("5","05"): phoneinfo()
  116.                 elif cmd in ("6","06"): infoga("dnslookup")
  117.                 elif cmd in ("7","07"): infoga("whois")
  118.                 elif cmd in ("8","08"): infoga("subnetcalc")
  119.                 elif cmd in ("9","09"): infoga("hostsearch")
  120.                 elif cmd in ("10"): infoga("mtr")
  121.                 elif cmd in ("11"): infoga("reverseiplookup")
  122.                 elif cmd in ("12"): iplocation()
  123.                 elif cmd in ("14"): github_lookup()
  124.                 elif cmd in ("13"): bypass_bitly()
  125.                 elif cmd in ("15"): temp_mail_gen()
  126.             else: continue
  127.         except KeyboardInterrupt:
  128.             exit(f"{r}\n{space}* Aborted !")
  129.  
  130. def display_progress(iteration, total, text=""):
  131.     bar_max_width = 40  # chars
  132.     bar_current_width = bar_max_width * iteration // total
  133.     bar = "█" * bar_current_width + " " * (bar_max_width - bar_current_width)
  134.     progress = "%.1f" % (iteration / total * 100)
  135.     print(f"{space}{iteration}/{total} |{bar}| {progress}% {text}", end="\r")
  136.     if iteration == total:
  137.         print()
  138.  
  139. def send_req(url, username):
  140.     try:
  141.         req = requests.get(url.format(username), headers=headers)
  142.     except requests.exceptions.Timeout: pass
  143.     except requests.exceptions.TooManyRedirects: pass
  144.     except requests.exceptions.ConnectionError: pass
  145.     global userrecon_num, userrecon_results, userrecon_working
  146.     userrecon_num += 1
  147.    
  148.  
  149.     if req.status_code == 200: color = g; userrecon_working += 1
  150.     elif req.status_code == 404: color = r
  151.     else: color = y
  152.  
  153.     percent = 71/100*userrecon_num
  154.     display_progress(userrecon_num, 71, f"FOUND: {userrecon_working}")
  155.  
  156.     userrecon_results.append(f"  {space}{b}[{color}{req.status_code}{b}] {userrecon_num}/71 {w}{url.format(username)}")
  157.  
  158. def check_email(email, api, total, ok, f):
  159.  
  160.     response = requests.get("https://isitarealemail.com/api/email/validate",params = {'email': email}, headers = {'Authorization': "Bearer " + api })
  161.     status = response.json()['status']
  162.    
  163.     if status == 'invalid': color = r; back_color = R
  164.     elif status == 'unknown': color = y; back_color = Y
  165.     else: color = g; back_color = G
  166.    
  167.  
  168.     global check_email_num
  169.     check_email_num += 1
  170.     if status == "valid":
  171.         ok.append(email)
  172.         f.write(email+"\n")
  173.         print_space = "  "
  174.     else:
  175.         print_space = " "
  176.  
  177.     #if check_email_num < 0:
  178.  
  179.     print(f"{space}{back_color}{w}{print_space}{status.upper()}{print_space}{w}{b} {check_email_num}/{total}{w} Status: {color}{status}{w} Email: {email}")
  180.    
  181.  
  182. def iplocation():
  183.     print(f"{space}{b}>{w} local IP: {os.popen('curl ifconfig.co --silent').readline().strip()}")
  184.     x = input(f"{space}{b}>{w} enter IP:{b} ")
  185.     if x.split(".")[0].isnumeric(): pass
  186.     else: menu()
  187.     print(w+lines)
  188.     req = requests.get("https://ipinfo.io/"+x+"/json").json()
  189.     try: ip = "IP: "+req["ip"]
  190.     except KeyError: ip = ""
  191.     try: city = "CITY: "+req["city"]
  192.     except KeyError: city = ""
  193.     try: country = "COUNTRY: "+req["country"]
  194.     except KeyError: country = ""
  195.     try: loc = "LOC: "+req["loc"]
  196.     except KeyError: loc = ""
  197.     try: org = "ORG: "+req["org"]
  198.     except KeyError: org = ""
  199.     try: tz = "TIMEZONE: "+req["timezone"]
  200.     except KeyError: tz = ""
  201.     z = [ip, city, country, loc, org, tz]
  202.     for res in z:
  203.         print(f"{space}{b}-{w} {res}")
  204.     print(w+lines)
  205.     getpass(space+"press enter for back to previous menu ")
  206.     menu()
  207.  
  208. def infoga(opt):
  209.     x = input(f"{space}{b}>{w} enter domain or IP:{b} ")
  210.     if not x: menu()
  211.     if x.split(".")[0].isnumeric(): x = socket.gethostbyname(x)
  212.     else: pass
  213.     print(w+lines)
  214.     req = requests.get(apihack.format(opt,x),stream=True)
  215.     for res in req.iter_lines():
  216.         print(f"{space}{b}-{w} {res.decode('utf-8')}")
  217.     print(w+lines)
  218.     getpass(space+"press enter for back to previous menu ")
  219.     menu()
  220.  
  221. def phoneinfo():
  222.     no = input(f"{space}{b}>{w} enter number:{b} ")
  223.     api_key = configs['veriphone-api-key']
  224.     if api_key == "":
  225.         api_key = input(f"{space}{w}{b}>{w} enter your api key (https://veriphone.io) :{b} ")
  226.         with open("configs/config.json", "w") as configs_file:
  227.             configs["veriphone-api-key"] = api_key
  228.             configs_file.write(json.dumps(configs))
  229.     if not no: menu()
  230.     print(w+lines)
  231.  
  232.     url = "https://api.veriphone.io/v2/verify?phone={}&key=" + api_key
  233.     req = requests.get(url.format(no))
  234.     res = json.loads(req.text)
  235.    
  236.     for info in res:
  237.         print(f"{space}{b}-{w} {info}{' '*(23-len(info))}:    {y}{res[info]}{w}")
  238.    
  239.     print(w+lines)
  240.     print(f"{space}{B} DONE {R} {no} {w}")
  241.    
  242.     getpass(space+"press enter for back to previous menu ")
  243.     menu()
  244.  
  245. def godorker():
  246.     dork = input(f"{space}{b}>{w} enter dork (inurl/intext/etc):{b} ").lower()
  247.     if not dork: menu()
  248.     print(w+lines)
  249.     urls = []
  250.     s = search(dork,num_results=30)
  251.     for line in s:
  252.         urls.append(line)
  253.     f = open("result_godorker.txt","w")
  254.     f.write("# Dork: "+dork+"\n\n")
  255.     for url in urls:
  256.         try:
  257.             req = requests.get(url,headers=headers)
  258.             res = fromstring(req.content)
  259.             string = res.findtext(".//title")
  260.             wrapper = textwrap.TextWrapper(width=47)
  261.             dedented_text = textwrap.dedent(text=string)
  262.             original = wrapper.fill(text=dedented_text)
  263.             shortened = textwrap.shorten(text=original, width=47)
  264.             title = wrapper.fill(text=shortened)
  265.             f.write(url+"\n")
  266.             print(f"{space}{B} FOUND {w} {str(title)}\n{space}{d}{url}{w}")
  267.         except TypeError: pass
  268.         except requests.exceptions.InvalidSchema: break
  269.         except requests.exceptions.ConnectionError: break
  270.         except KeyboardInterrupt: break
  271.     f.close()
  272.     print(w+lines)
  273.     print(f"{space}{b}>{w} {str(len(url))} retrieved as: {y}result_godorker.txt{w}")
  274.     getpass(space+"press enter for back to previous menu ")
  275.     menu()
  276.  
  277. def mailfinder():
  278.     fullname = input(f"{space}{b}>{w} enter name:{b} ").lower()
  279.     if not fullname: menu()
  280.     data = [
  281.         "gmail.com",
  282.         "yahoo.com",
  283.         "hotmail.com",
  284.         "aol.com",
  285.         "msn.com",
  286.         "comcast.net",
  287.         "live.com",
  288.         "rediffmail.com",
  289.         "ymail.com",
  290.         "outlook.com",
  291.         "cox.net",
  292.         "googlemail.com",
  293.         "rocketmail.com",
  294.         "att.net",
  295.         "facebook.com",
  296.         "bellsouth.net",
  297.         "charter.net",
  298.         "sky.com",
  299.         "earthlink.net",
  300.         "optonline.net",
  301.         "qq.com",
  302.         "me.com",
  303.         "gmx.net",
  304.         "mail.com",
  305.         "ntlworld.com",
  306.         "frontiernet.net",
  307.         "windstream.net",
  308.         "mac.com",
  309.         "centurytel.net",
  310.         "aim.com",
  311.         ]
  312.     listuser = [
  313.         fullname.replace(" ",""),
  314.         fullname.replace(" ","")+"123",
  315.         fullname.replace(" ","")+"1234",
  316.         fullname.replace("i", "1"),
  317.         fullname.replace("a", "4"),
  318.         fullname.replace("e", "3"),
  319.         fullname.replace("i", "1").replace("a", "4").replace("e", "3"),
  320.         fullname.replace("i", "1").replace("a", "4"),
  321.         fullname.replace("i", "1").replace("e", "3"),
  322.         fullname.replace("a", "4").replace("e", "3"),
  323.         ]
  324.    
  325.     names = []
  326.     for name in fullname.split(" "):
  327.         listuser.append(name)
  328.         listuser.append(name+"123")
  329.         listuser.append(name+"1234")
  330.         names.append(name)
  331.    
  332.     f = open("result_mailfinder.txt","w")
  333.     ok = []
  334.     results = []
  335.     try:
  336.         api = configs["real-email-api-key"]
  337.         if api == "":
  338.             api = input(f"{space}{w}{b}>{w} enter your api key (https://isitarealemail.com) :{b} ")
  339.             with open("configs/config.json", "w") as configs_file:
  340.                 configs["real-email-api-key"] = api
  341.                 configs_file.write(json.dumps(configs))
  342.         print(w+lines)
  343.         for user in listuser:
  344.             for domain in data:
  345.                 email = user + "@" + domain
  346.                
  347.  
  348.                 Thread(target=check_email, args=(email, api, len(data)*len(listuser), ok, f)).start()
  349.                 sleep(0.20)
  350.  
  351.         global check_email_num
  352.         while check_email_num != len(data)*len(listuser):
  353.             pass
  354.  
  355.         for result in results:
  356.             print(result)
  357.         check_email_num = 0
  358.     except KeyboardInterrupt:
  359.         print("ERROR")
  360.         print("\r"),;sys.stdout.flush()
  361.         pass
  362.     f.close()
  363.     print(w+lines)
  364.     print(f"{space}{b}>{w} {str(len(ok))} retrieved as: {y}result_mailfinder.txt{w}")
  365.     getpass(space+"press enter for back to previous menu ")
  366.     menu()
  367.  
  368. def userrecon():
  369.     global userrecon_results, userrecon_working, userrecon_num
  370.     username = input(f"{space}{w}{b}>{w} enter username:{b} ").lower()
  371.     if not username: menu()
  372.     urllist = [
  373.         "https://facebook.com/{}",
  374.         "https://instagram.com/{}",
  375.         "https://twitter.com/{}",
  376.         "https://youtube.com/{}",
  377.         "https://vimeo.com/{}",
  378.         "https://github.com/{}",
  379.         "https://plus.google.com/{}",
  380.         "https://pinterest.com/{}",
  381.         "https://flickr.com/people/{}",
  382.         "https://vk.com/{}",
  383.         "https://about.me/{}",
  384.         "https://disqus.com/{}",
  385.         "https://bitbucket.org/{}",
  386.         "https://flipboard.com/@{}",
  387.         "https://medium.com/@{}",
  388.         "https://hackerone.com/{}",
  389.         "https://keybase.io/{}",
  390.         "https://buzzfeed.com/{}",
  391.         "https://slideshare.net/{}",
  392.         "https://mixcloud.com/{}",
  393.         "https://soundcloud.com/{}",
  394.         "https://badoo.com/en/{}",
  395.         "https://imgur.com/user/{}",
  396.         "https://open.spotify.com/user/{}",
  397.         "https://pastebin.com/u/{}",
  398.         "https://wattpad.com/user/{}",
  399.         "https://canva.com/{}",
  400.         "https://codecademy.com/{}",
  401.         "https://last.fm/user/{}",
  402.         "https://blip.fm/{}",
  403.         "https://dribbble.com/{}",
  404.         "https://en.gravatar.com/{}",
  405.         "https://foursquare.com/{}",
  406.         "https://creativemarket.com/{}",
  407.         "https://ello.co/{}",
  408.         "https://cash.me/{}",
  409.         "https://angel.co/{}",
  410.         "https://500px.com/{}",
  411.         "https://houzz.com/user/{}",
  412.         "https://tripadvisor.com/members/{}",
  413.         "https://kongregate.com/accounts/{}",
  414.         "https://{}.blogspot.com/",
  415.         "https://{}.tumblr.com/",
  416.         "https://{}.wordpress.com/",
  417.         "https://{}.devianart.com/",
  418.         "https://{}.slack.com/",
  419.         "https://{}.livejournal.com/",
  420.         "https://{}.newgrounds.com/",
  421.         "https://{}.hubpages.com",
  422.         "https://{}.contently.com",
  423.         "https://steamcommunity.com/id/{}",
  424.         "https://www.wikipedia.org/wiki/User:{}",
  425.         "https://www.freelancer.com/u/{}",
  426.         "https://www.dailymotion.com/{}",
  427.         "https://www.etsy.com/shop/{}",
  428.         "https://www.scribd.com/{}",
  429.         "https://www.patreon.com/{}",
  430.         "https://www.behance.net/{}",
  431.         "https://www.goodreads.com/{}",
  432.         "https://www.gumroad.com/{}",
  433.         "https://www.instructables.com/member/{}",
  434.         "https://www.codementor.io/{}",
  435.         "https://www.reverbnation.com/{}",
  436.         "https://www.designspiration.net/{}",
  437.         "https://www.bandcamp.com/{}",
  438.         "https://www.colourlovers.com/love/{}",
  439.         "https://www.ifttt.com/p/{}",
  440.         "https://www.trakt.tv/users/{}",
  441.         "https://www.okcupid.com/profile/{}",
  442.         "https://www.trip.skyscanner.com/user/{}",
  443.         "http://www.zone-h.org/archive/notifier={}",
  444.         ]
  445.    
  446.     print(w+lines)
  447.     for url in urllist:
  448.         Thread(target=send_req, args=(url, username)).start()
  449.         sleep(0.7)
  450.     while True:
  451.         if userrecon_num == len(urllist):
  452.             break
  453.     print()
  454.     for user in userrecon_results:
  455.         print(user)
  456.     userrecon_results = []
  457.     userrecon_working = 0
  458.     userrecon_num = 0    
  459.     print(w+lines)
  460.     getpass(space+"press enter for back to previous menu ")
  461.     menu()
  462.  
  463. def bypass_bitly():
  464.     print(w+lines)
  465.     bitly_url = input(f"{space}{w}{b}>{w} Bitly URL: {b}")
  466.     bitly_code = requests.get(bitly_url, allow_redirects=False)
  467.     soup = BeautifulSoup(bitly_code.text, features="lxml")
  468.     original_link = soup.find_all('a', href=True)[0]['href']
  469.     print(f"{space}{B} DONE {w} Original URL: \u001b[38;5;32m{original_link}")
  470.     print(w+lines)
  471.     getpass(space+"press enter for back to previous menu ")
  472.     menu()
  473.  
  474. def github_lookup():
  475.     print(w+lines)
  476.     github_username = input(f"{space}{w}{b}>{w} Github username: {b}")
  477.     print(w)
  478.     req = requests.get(f"https://api.github.com/users/{github_username}")
  479.     res = json.loads(req.text)
  480.     table = []
  481.     for info in res:
  482.         table.append([str(info), str(res[info])])
  483.     headers = ["info", "content"]
  484.     for line in tabulate(table, headers, tablefmt="fancy_grid").splitlines():
  485.         print(' '*int(len(space)/2) + line)
  486.     #    print(f"{space}{b}-{w} {info}{' '*(23-len(info))}:    {y}{res[info]}{w}")
  487.     print(w+lines)
  488.     getpass(space+"press enter for back to previous menu ")
  489.     menu()
  490.    
  491. class Facebook():
  492.    
  493.     def user_token(self):
  494.         x = requests.get('https://m.facebook.com/composer/ocelot/async_loader/?publisher=feed#_=_', headers = {
  495.             'user-agent'                : 'Mozilla/5.0 (Linux; Android 8.1.0; MI 8 Build/OPM1.171019.011) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.86 Mobile Safari/537.36', # don't change this user agent.
  496.             'referer'                   : 'https://m.facebook.com/',
  497.             'host'                      : 'm.facebook.com',
  498.             'origin'                    : 'https://m.facebook.com',
  499.             'upgrade-insecure-requests' : '1',
  500.             'accept-language'           : 'id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7',
  501.             'cache-control'             : 'max-age=0',
  502.             'accept'                    : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
  503.             'content-type'              : 'text/html; charset=utf-8'
  504.         }, cookies={"cookie":open(cookifile).read()})
  505.         find = re.search("(EAAA\w+)",x.text)
  506.         if find == None:
  507.             exit(r+"[!] failed to get session token"+w)
  508.         else:
  509.             return find.group(1)
  510.    
  511.     def facedumper(self):
  512.         try:
  513.             coki = open(cookifile).read()
  514.         except FileNotFoundError:
  515.             while True:
  516.                 coki = getpass(f"{space}{b}>{w} enter facebook cookies (hidden input): ")
  517.                 if coki: break
  518.                 else: continue
  519.         cookies = {"cookie":coki}
  520.         req = requests.get(mbasic.format("/me",verify=False),cookies=cookies).content
  521.         if "mbasic_logout_button" in str(req):
  522.             if "Apa yang Anda pikirkan sekarang" in str(req):
  523.                 with open(cookifile,"w") as f:
  524.                     f.write(cookies["cookie"])
  525.                 f.close()
  526.             else:
  527.                 try:
  528.                     requests.get(mbasic.format(parser(req,"html.parser").find("a",string="Bahasa Indonesia")["href"]),cookies=cookies)
  529.                     x = parser(requests.get(mbasic.format("/termuxhackers.id"),cookies=cookies).content,"html.parser").find("a",string="Ikuti")["href"]
  530.                     sesi.get(mbasic.format(x),cookies=cookies)
  531.                 except: pass
  532.         else:
  533.             exit(r+"* invalid credentials: cookies"+w)
  534.             sleep(3)
  535.             menu()
  536.         print(f"""
  537.        {w}{b}  01{w} Dump all     {d} Dump all info from friendlist
  538.        {w}{b}  02{w} Dump uid     {d} Dump user id from friendlist
  539.        {w}{b}  03{w} Dump email   {d} Dump email from friendlist
  540.        {w}{b}  04{w} Dump phone   {d} Dump phone from friendlist
  541.        {w}{b}  05{w} Dump birthday{d} Dump birthday from friendlist
  542.        {w}{b}  06{w} Dump location{d} Dump location from friendlist
  543.        """)
  544.         while True:
  545.             usr = input(f"{space}{w}{b}>{w} choose: {b}")
  546.             if not usr: menu()
  547.             if usr in ("1","01"):
  548.                 fb.dump_all()
  549.             elif usr in ("2","02"):
  550.                 fb.dump_id()
  551.             elif usr in ("3","03"):
  552.                 fb.dump_email()
  553.             elif usr in ("4","04"):
  554.                 fb.dump_phone()
  555.             elif usr in ("5","05"):
  556.                 fb.dump_birthday()
  557.             elif usr in ("6","06"):
  558.                 fb.dump_location()
  559.             else: continue
  560.        
  561.     def dump_all(self):
  562.         token = fb.user_token()
  563.         req = requests.get(graph.format("/v3.2/me/friends/?fields=name,email&access_token="+token+"&limit=5000"),headers=headers)
  564.         res = json.loads(req.text)
  565.         print(w+lines)
  566.         i = 0
  567.         for data in res["data"]:
  568.             try:
  569.                 i += 1
  570.                 REQ = requests.get(graph.format("/"+data["id"]+"?access_token="+token+"&limit=5000"),headers=headers)
  571.                 RES = json.loads(REQ.text)
  572.                 id = data["id"]
  573.                 name = data["name"]
  574.                 print(f"{space}{B} DONE {R} {str(i)} {w}")
  575.                 print(f"{space}{b}-{w} Name: {name}")
  576.                 print(f"{space}{b}-{w} ID: {id}")
  577.                 try: print(f"{space}{b}-{w} Email: {RES['email']}")
  578.                 except KeyError: pass
  579.                 try: print(f"{space}{b}-{w} Email: {RES['phone']}")
  580.                 except KeyError: pass
  581.                 try: print(f"{space}{b}-{w} Email: {RES['birthday']}")
  582.                 except KeyError: pass
  583.                 try:
  584.                     location = RES["location"]["name"]
  585.                     print(f"{space}{b}-{w} Location: {location}")
  586.                 except KeyError: pass
  587.             except KeyboardInterrupt: break
  588.         print(w+lines)
  589.         getpass(space+"press enter for back to previous menu ")
  590.         menu()
  591.        
  592.     def dump_id(self):
  593.         token = fb.user_token()
  594.         req = requests.get(graph.format("/v3.2/me/friends/?fields=name,email&access_token="+token+"&limit=5000"),headers=headers)
  595.         res = json.loads(req.text)
  596.         listid = []
  597.         print(w+lines)
  598.         f = open("dump_idfriends.txt","w")
  599.         for data in res["data"]:
  600.             try:
  601.                 id = data["id"]
  602.                 name = data["name"]
  603.                 print(f"{space}{B} DONE {w} ID: {id} {r}->{w} {name}")
  604.                 listid.append(data["id"])
  605.                 f.write(id+"|"+name+"\n")
  606.             except KeyboardInterrupt:
  607.                 break
  608.         f.close()
  609.         print(w+lines)
  610.         print(f"{space}{b}>{w} {str(len(listid))} retrieved as: {y}dump_idfriends.txt{w}")
  611.         getpass(space+"press enter for back to previous menu ")
  612.         menu()
  613.  
  614.     def dump_email(self):
  615.         token = fb.user_token()
  616.         req = requests.get(graph.format("/v3.2/me/friends/?fields=name,email&access_token="+token+"&limit=5000"),headers=headers)
  617.         res = json.loads(req.text)
  618.         listmail = []
  619.         print(w+lines)
  620.         f = open("dump_email.txt","w")
  621.         for data in res["data"]:
  622.             try:
  623.                 REQ = requests.get(graph.format("/"+data["id"]+"?access_token="+token+"&limit=5000"),headers=headers)
  624.                 RES = json.loads(REQ.text)
  625.                 try:
  626.                     name = RES["name"]
  627.                     email = RES["email"]
  628.                     print(f"{space}{B} DONE {w} Email: {email} {r}->{w} {name}")
  629.                     listmail.append(email)
  630.                     f.write(email+"|"+RES['id']+"|"+name+"\n")
  631.                 except KeyError: pass
  632.             except KeyboardInterrupt:
  633.                 break
  634.         f.close()
  635.         print(w+lines)
  636.         print(f"{space}{b}>{w} {str(len(listmail))} retrieved as: {y}dump_email.txt{w}")
  637.         getpass(space+"press enter for back to previous menu ")
  638.         menu()
  639.  
  640.     def dump_phone(self):
  641.         token = fb.user_token()
  642.         req = requests.get(graph.format("/v3.2/me/friends/?fields=name,email&access_token="+token+"&limit=5000"),headers=headers)
  643.         res = json.loads(req.text)
  644.         listphone = []
  645.         print(w+lines)
  646.         f = open("dump_phone.txt","w")
  647.         for data in res["data"]:
  648.             try:
  649.                 REQ = requests.get(graph.format("/"+data["id"]+"?access_token="+token+"&limit=5000"),headers=headers)
  650.                 RES = json.loads(REQ.text)
  651.                 try:
  652.                     name = RES["name"]
  653.                     phone = RES["mobile_phone"]
  654.                     print(f"{space}{B} DONE {w} Phone: {phone} {r}->{w} {name}")
  655.                     listphone.append(phone)
  656.                     f.write(phone+"|"+RES['id']+"|"+name+"\n")
  657.                 except KeyError: pass
  658.             except KeyboardInterrupt:
  659.                 break
  660.         f.close()
  661.         print(w+lines)
  662.         print(f"{space}{b}>{w} {str(len(listphone))} retrieved as: {y}dump_phone.txt{w}")
  663.         getpass(space+"press enter for back to previous menu ")
  664.         menu()
  665.  
  666.     def dump_birthday(self):
  667.         token = fb.user_token()
  668.         req = requests.get(graph.format("/v3.2/me/friends/?fields=name,email&access_token="+token+"&limit=5000"),headers=headers)
  669.         res = json.loads(req.text)
  670.         listday = []
  671.         print(w+lines)
  672.         f = open("dump_birthday.txt","w")
  673.         for data in res["data"]:
  674.             try:
  675.                 REQ = requests.get(graph.format("/"+data["id"]+"?access_token="+token+"&limit=5000"),headers=headers)
  676.                 RES = json.loads(REQ.text)
  677.                 try:
  678.                     name = RES["name"]
  679.                     day = RES["birthday"]
  680.                     print(f"{space}{B} DONE {w} Birthday: {day} {r}->{w} {name}")
  681.                     listday.append(day)
  682.                     f.write(day+"|"+RES['id']+"|"+name+"\n")
  683.                 except KeyError: pass
  684.             except KeyboardInterrupt:
  685.                 break
  686.         f.close()
  687.         print(w+lines)
  688.         print(f"{space}{b}>{w} {str(len(listday))} retrieved as: {y}dump_birthday.txt{w}")
  689.         getpass(space+"press enter for back to previous menu ")
  690.         menu()
  691.  
  692.     def dump_location(self):
  693.         token = fb.user_token()
  694.         req = requests.get(graph.format("/v3.2/me/friends/?fields=name,email&access_token="+token+"&limit=5000"),headers=headers)
  695.         res = json.loads(req.text)
  696.         listloc = []
  697.         print(w+lines)
  698.         f = open("dump_location.txt","w")
  699.         for data in res["data"]:
  700.             try:
  701.                 REQ = requests.get(graph.format("/"+data["id"]+"?access_token="+token+"&limit=5000"),headers=headers)
  702.                 RES = json.loads(REQ.text)
  703.                 try:
  704.                     name = RES["name"]
  705.                     loc = RES["location"]["name"]
  706.                     f.write(loc+"|"+RES['id']+"|"+name+"\n")
  707.                     listloc.append(loc)
  708.                     print(f"{space}{B} DONE {w} Location: {loc} {r}->{w} {name}")
  709.                 except KeyError: pass
  710.             except KeyboardInterrupt:
  711.                 break
  712.         f.close()
  713.         print(w+lines)
  714.         print(f"{space}{b}>{w} {str(len(listloc))} retrieved as: {y}dump_location.txt{w}")
  715.         getpass(space+"press enter for back to previous menu ")
  716.         menu()
  717.  
  718. def settings():
  719.     os.system("clear")
  720.     print(f"""{r}
  721.      .---.        .-----------
  722.     /     \ __  /    ------
  723.    / /     \(  )/    -----          
  724.   //////   ' \/ `   ---            ┏───────────────────────────────┓
  725.  //// / // :    : ---              │     WELCOME TO E4GL30S1NT     │
  726. // /   /  /`    '--                │    {lr}https://c0mpl3x.web.app/{r}   │
  727. //          //..\\                   │ {lr}https://JProgrammerIt.web.app{r} │
  728.       ====UU====UU====             └───────────────────────────────┘
  729.           '//||\\`
  730.             ''``
  731.  {lr}Simple Information Gathering Toolkit{w}    
  732.  {lr}Authors: {w}{r}@C0MPL3XDEV{lr} & {w}{r}@JProgrammer-it{w}
  733. """)
  734.     print(f"""\
  735.         {w}{R} \033[1mSETTINGS CHANGER MODE {w}
  736. """)
  737.     setting_num = 0
  738.     configs_num = {}
  739.     for setting in configs:
  740.         if setting != "headers":
  741.             setting_num += 1
  742.             configs_num[str(setting_num)] = setting
  743.             print(f"         {w}{r}  0{setting_num} {setting}" + ' '*(20-len(setting)) +  f"{lr}:  \"{configs[setting]}\" ")
  744.     setting = "exit".upper()
  745.     print(f"         {w}{r}  00{r} {setting}" + ' '*(20-len(setting)) +  f"{lr}:  bye bye ): ")
  746.  
  747.     option = ""
  748.     while option not in configs_num:
  749.         option = input(f"{space}{lr}>{r} What do you want to change?{lr} ")
  750.         if option in ("0", "00"):
  751.             sys.exit()
  752.    
  753.     new_value = input(f"{space}{lr}>{r} Insert the new value of {configs_num[option]} :{lr} ")
  754.     configs[configs_num[option]] = new_value
  755.     with open("configs/config.json", "w") as configs_file:
  756.         configs_file.write(json.dumps(configs))
  757.  
  758. def temp_mail_gen():
  759.     API = 'https://www.1secmail.com/api/v1/'
  760.     domainList = ['1secmail.com', '1secmail.net', '1secmail.org']
  761.     domain = random.choice(domainList)
  762.  
  763.     def extract():
  764.         getUserName = re.search(r'login=(.*)&',newMail).group(1)
  765.         getDomain = re.search(r'domain=(.*)', newMail).group(1)
  766.         return [getUserName, getDomain]
  767.  
  768.  
  769.     def deleteMail():
  770.         url = 'https://www.1secmail.com/mailbox'
  771.         data = {
  772.             'action': 'deleteMailbox',
  773.             'login': f'{extract()[0]}',
  774.             'domain': f'{extract()[1]}'
  775.         }
  776.  
  777.         print("Disposing your email address - " + mail + '\n')
  778.         req = requests.post(url, data=data)
  779.  
  780.     def checkMails():
  781.         global mail_printate
  782.         reqLink = f'{API}?action=getMessages&login={extract()[0]}&domain={extract()[1]}'
  783.         req = requests.get(reqLink).json()
  784.         if len(req) != 0:
  785.             idList = []
  786.             for i in req:
  787.                 for k,v in i.items():
  788.                     if k == 'id':
  789.                         mailId = v
  790.                         idList.append(mailId)
  791.  
  792.  
  793.             current_directory = os.getcwd()
  794.             final_directory = os.path.join(current_directory, r'All Mails')
  795.             if not os.path.exists(final_directory):
  796.                 os.makedirs(final_directory)
  797.  
  798.             for i in idList:
  799.                 if not i in mail_printate:
  800.                     mail_printate.append(i)
  801.                     msgRead = f'{API}?action=readMessage&login={extract()[0]}&domain={extract()[1]}&id={i}'
  802.                     req = requests.get(msgRead).json()
  803.                     for k,v in req.items():
  804.                         if k == 'from': sender = v
  805.                         if k == 'subject': subject = v
  806.                         if k == 'date': date = v
  807.                         if k == 'textBody': content = v
  808.  
  809.                     table = [["From", sender], ["Subject", subject], ["Content", content], ["Date", date]]
  810.                     headers = ["info", "content"]
  811.                     for line in tabulate(table, tablefmt="fancy_grid").splitlines():
  812.                         print(space + "   " + w + line)
  813.                     print()
  814.  
  815.  
  816.     try:
  817.         email_name = input(f"{space}{b}>{w} Insert a custom name for the email:{b} ")
  818.         newMail = f"{API}?login={email_name}&domain={domain}"
  819.         reqMail = requests.get(newMail)
  820.         mail = f"{extract()[0]}@{extract()[1]}"
  821.         print(f"{space}{b}>{w} Temp mail: {b}{mail}")
  822.         getpass(f"{space}{b}> {w}Press enter to continue")
  823.         print(f"{space}{b}-------------------[ INBOX ]-------------------\n")
  824.         while True:
  825.             checkMails()
  826. #            time.sleep(1)
  827.  
  828.     except(KeyboardInterrupt):
  829.         deleteMail()
  830.         exit(f"{r}\n{space}* Aborted !")
  831.  
  832.  
  833. if __name__ == "__main__":
  834.     arg = sys.argv
  835.     fb = Facebook()
  836.     if len(arg) == 1: menu()
  837.     elif len(arg) == 2:
  838.         if arg[1] == "update":
  839.             if which("termux-setup-storage"): path = "$PREFIX/bin/E4GL30S1NT"
  840.             else:
  841.                 if os.path.isdir("/usr/local/bin/"): path = "/usr/local/bin/E4GL30S1NT"
  842.                 else: path = "/usr/bin/sigit"
  843.             os.system(f"wget https://raw.githubusercontent.com/C0MPL3XDEV/E4GL3OS1NT/main/E4GL30S1NT.py -O {path} && chmod +x {path}")
  844.             print(f"{b}>{w} wrapper script have been updated")
  845.         elif arg[1] in ("settings", "configs"):
  846.             settings()
  847.  
  848.         elif arg[1] in ("01", "1", "02", "2", "03", "3", "04", "4", "05", "5", "06", "6", "07", "7", "08", "8", "09", "9", "10", "11", "12", "13", "14"):
  849.             print(logo)
  850.             if arg[1] in ("1","01"): userrecon()
  851.             elif arg[1] in ("2","02"): fb.facedumper()
  852.             elif arg[1] in ("3","03"): mailfinder()
  853.             elif arg[1] in ("4","04"): godorker()
  854.             elif arg[1] in ("5","05"): phoneinfo()
  855.             elif arg[1] in ("6","06"): infoga("dnslookup")
  856.             elif arg[1] in ("7","07"): infoga("whois")
  857.             elif arg[1] in ("8","08"): infoga("subnetcalc")
  858.             elif arg[1] in ("9","09"): infoga("hostsearch")
  859.             elif arg[1] in ("10"): infoga("mtr")
  860.             elif arg[1] in ("11"): infoga("reverseiplookup")
  861.             elif arg[1] in ("12"): iplocation()
  862.             elif arg[1] in ("14"): github_lookup()
  863.             elif arg[1] in ("13"): bypass_bitly()
  864.             elif arg[1] in ("15"): temp_mail_gen()
  865.         else: exit(r+"* no command found for: "+str(arg[1:]).replace("[","").replace("]",""))
  866.     else: exit(r+"* no command found for: "+str(arg[1:]).replace("[","").replace("]",""))                  
  867.  
Add Comment
Please, Sign In to add comment