├── README.md ├── arithmo-gather.py ├── arithmo_gather.jpg ├── requirements.txt └── screenshots ├── CC.jpg ├── IFSC.jpg ├── header.txt ├── micr.jpg └── phone.png /README.md: -------------------------------------------------------------------------------- 1 | # Arithm0-Gath3r 2 | ### Numbers in Your Documents can reveal your personal informations. "Especially banking informations! " 3 | 4 | ### This tool is an OSINT tool to gather informations from CreditCard number, BIN code, MICR number, IFSC code , Phone number 5 | 6 | ### It can be useful for OSINT researchers, Dumpster diving , hackers , and Law & enforcement officers 7 | ![Arithmo-Gather Screenshot](https://github.com/febinrev/arithmo-gather/raw/master/arithmo_gather.jpg) 8 | 9 | ## Disclaimer : It is only for Educational Purposes!! 10 | 11 | 12 | ----------------------------------------------------------------------------------------------------------------------------------- 13 | ### Note : Feel free to modify my code and make your own! But give me a credit before You use my code. 14 | 15 | ## Usage: 16 | ------------------------------------------------------------------------------------------------------------------------------ 17 | $ pip3 install -r requirements.txt 18 | $ python3 arithmo-gather.py 19 | 20 | [Then Enter the Appropriate option number and enter the Code/number like CC or PhoneNumber to gather the informations about it!!] 21 | 22 | ## Examples: 23 | #### Credit Card informations 24 | ![CC info](screenshots/CC.jpg) 25 | 26 | #### IFSC code informations 27 | ![IFSC info](screenshots/IFSC.jpg) 28 | 29 | #### MICR number informations 30 | ![MICR info](screenshots/micr.jpg) 31 | 32 | #### Phone number informations 33 | ![Phone info](screenshots/phone.png) 34 | 35 | ### TroubleShoot: 36 | ------------------------------------------------------------------------------------------------------------------------------- 37 | * If you are constantly facing errors it may be caused due to API key expiry. 38 | * So if you want to run it more smoothly and efficiently it is recommended to use your own API keys from bincodes.com and numverify.com . 39 | * Paste the api key of bincodes.com in the " key1 " variable and numverify.com api key in " pkey " variable. 40 | Both variables are declared at the beginning of the source code. 41 | -------------------------------------------------------------------------------- /arithmo-gather.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import readline 3 | import requests 4 | from bs4 import BeautifulSoup 5 | import binlist 6 | import json 7 | import phonenumbers 8 | from phonenumbers import carrier 9 | from phonenumbers import timezone 10 | from phonenumbers import geocoder 11 | 12 | key1="e4b4ac1c7eb77ef45f4a867728cfa2f7" 13 | pkey="38d492d349e67433b3a2a229fd784821" 14 | 15 | 16 | def CC(cc): 17 | if cc.isdigit() and len(cc)==16: 18 | print("\n........................\n") 19 | checkbin=binlist.BIN(str(cc)[0:6]) 20 | credit_card=checkbin.lookup().verbose_name 21 | print(f"CREDIT CARD : {credit_card} ") 22 | if checkbin.lookup().active==True: 23 | print("Current Status : ACTIVE! ") 24 | else: 25 | print("Current Status : Not ACTIVE!") 26 | print("Fetching Informations.....\n") 27 | try: 28 | 29 | result=requests.get(f"https://api.bincodes.com/cc/?format=json&api_key={key1}&cc={cc}") 30 | online_check=json.loads(result.text) 31 | print(f""" 32 | BIN : {cc[0:6]} 33 | BANK : {online_check['bank']} 34 | CARD : {online_check['card']} 35 | TYPE : {online_check['type']} 36 | LEVEL : {online_check['level']} 37 | COUNTRY : {online_check['country']} 38 | COUNTRY_CODE : {online_check['countrycode']} 39 | BANK_WESBSITE : {online_check['website']} 40 | PHONE : {online_check['phone']} 41 | VALID : {online_check['valid']} 42 | """) 43 | except: 44 | print("Cannot fetch informations!! Check Your Internet And Try Again later!!") 45 | else: 46 | print("failed! Invalid CC!!") 47 | def Bin(Bin): 48 | if Bin.isdigit() and len(Bin)==6: 49 | print("\nLuhn Algorithm check Success\n") 50 | checkbin=binlist.BIN(Bin) 51 | credit_card=checkbin.lookup().verbose_name 52 | print(f"CREDIT CARD : {credit_card} ") 53 | if checkbin.lookup().active==True: 54 | print("Current Status : ACTIVE! ") 55 | else: 56 | print("Current Status : Not ACTIVE!") 57 | print("Fetching Informations.....\n") 58 | try: 59 | online_check=requests.get(f"https://api.bincodes.com/bin/?format=json&api_key={key1}&bin={Bin}") 60 | result=json.loads(online_check.text) 61 | print(f""" 62 | BIN : {result['bin']} 63 | BANK : {result['bank']} 64 | CARD : {result['card']} 65 | TYPE : {result['type']} 66 | LEVEL : {result['level']} 67 | COUNTRY : {result['country']} 68 | COUNTRY_CODE : {result['countrycode']} 69 | BANK_WESBSITE : {result['website']} 70 | PHONE : {result['phone']} 71 | VALID : {result['valid']} 72 | """) 73 | except: 74 | print("Cannot fetch informations!! Check Your Internet And Try Again later!!") 75 | else: 76 | print("Length/value exception! Invalid BIN!!") 77 | def ifsc(ifsc): 78 | if len(ifsc)==11 and ifsc.isalnum(): 79 | if ifsc.isupper(): 80 | ifsc=ifsc 81 | elif ifsc.islower(): 82 | ifsc=ifsc.upper() 83 | try: 84 | print("\nGathering info....\n") 85 | data1=BeautifulSoup(requests.post("https://bank.codes/india-ifsc-code-checker/",data={'ifsc':ifsc}).text , "html.parser") 86 | data=data1.find('table') 87 | for script in data(["script","style"]): 88 | script.extract() 89 | display=data.get_text() 90 | print(display.strip().replace("Bank","Bank ").replace("Branch","Branch ").replace("Address","Address ").replace("City","City ").replace("State","State ").replace("Contact","Contact ").replace("District","District ").replace("MICR Number","MICR Number ").replace("IFSC Code","IFSC Code ")) 91 | except: 92 | print("Cannot fetch info!! Something Error! check internet and try again!") 93 | else: 94 | print("Length/Alpha numeric exception!! Invalid IFSC!") 95 | def micr(micr): 96 | if micr.isdigit() and len(micr)==9: 97 | try: 98 | print("\nGathering info....\n") 99 | data=BeautifulSoup(requests.get(f"https://micr.bankifsccode.com/{micr}").text, "html.parser") 100 | for script in data(["script","style"]): 101 | script.extract() 102 | display=data.get_text() 103 | start=display.strip().find("MICR Code:-") 104 | repl="""2010 - 20, BankIFSCcode.comDisclaimer: - We have tried our best to keep the latest information updated as available from RBI, users are requested to confirm information with the respective bank before using the information provided. The author reserves the right not to be responsible for the topicality, correctness, completeness or quality of the information provided. Liability claims regarding damage caused by the use of any information provided, including any kind of information which is incomplete or incorrect, will therefore be rejected.""" 105 | result=display.strip()[start:].replace("HOME","").replace(repl,"").replace("|","").replace("LOCATE ANY BRANCH IN INDIA (Select Bank Name - State - District - branch to see Details)","").replace("Find Branch Details/Address/MICR Code By IFSC Code","").replace("Find IFSC/Branch Details By MICR Code","").replace("ALL INDIA BANK LIST","").replace("HELP/CONTACT US","").strip() 106 | print(result.replace("Bank"," Bank").replace("Branch"," Branch").replace("Address"," Address").replace("City"," City").replace("State"," State").replace("Contact"," Contact").replace("District"," District").replace("MICR Code"," MICR Code").replace("IFSC Code"," IFSC Code").replace(" ","\n").replace("(Click here for all the branches of","").replace(" District)","").replace("\n IFSC Code represent"," IFSC Code represent").replace("\n Branch code."," Branch code.")) 107 | except: 108 | print("Cannot fetch info!! Something Error! check Internet And try again!") 109 | else: 110 | print("Invalid MICR number!!") 111 | 112 | 113 | 114 | def num(num): 115 | if num.startswith("+"): 116 | number=phonenumbers.parse(num,None) 117 | else: 118 | num="+"+num 119 | number=phonenumbers.parse(num,None) 120 | try: 121 | print(f"""\nBasic Informations... 122 | 123 | NUMBER : {num} 124 | VALID : {phonenumbers.is_valid_number(number)} 125 | POSSIBLE NUMBER : {phonenumbers.is_possible_number(number)} 126 | CARRIER/ISP : {carrier.name_for_number(number,'en')} 127 | COUNTRY/LOCATION : {geocoder.description_for_number(number,'en')} 128 | TIMEZONES : {timezone.time_zones_for_number(number)} 129 | 130 | """) 131 | except: 132 | print("Something Error!!") 133 | 134 | try: 135 | print("Additional Informations....") 136 | online_check=requests.get(f"http://apilayer.net/api/validate?access_key={pkey}&number={num}&format=1") 137 | result=json.loads(online_check.text) 138 | print(f""" 139 | NUMBER : {result['number']} 140 | LOCAL_FORMAT : {result['local_format']} 141 | INTERNATIONAL_FROMAT : {result['international_format']} 142 | COUNTRY_PREFIX : {result['country_prefix']} 143 | COUNTRY_CODE : {result['country_code']} 144 | COUNTRY NAME : {result['country_name']} 145 | LOCATION : {result['location']} 146 | CARRIER : {result['carrier']} 147 | LINE_TYPE : {result['line_type']} 148 | """) 149 | except: 150 | print("Something Error!!") 151 | 152 | 153 | 154 | print(""" 155 | ╔═╗╦═╗╦┌┬┐╦ ╦╔╦╗┌─┐ ╔═╗┌─┐╔╦╗┬ ┬╔═╗┬─┐ 156 | ╠═╣╠╦╝║ │ ╠═╣║║║│ │───║ ╦├─┤ ║ ├─┤║╣ ├┬┘ 157 | ╩ ╩╩╚═╩ ┴ ╩ ╩╩ ╩└─┘ ╚═╝┴ ┴ ╩ ┴ ┴╚═╝┴└─ 158 | .-----< Coded by FEBIN >------. 159 | | Gather Info from numbers | 160 | |Every numbers could reveal | 161 | | the personal Informations | 162 | '-----------------------------' 163 | """) 164 | print(""" 165 | Available Options:> 166 | 167 | [1] Credit Card number info 168 | [2] BIN info (first 6 digits of CC) 169 | [3] IFSC Code info (India only) 170 | [4] MICR number info 171 | [5] Phone Number Info 172 | 173 | """) 174 | try: 175 | choice=input("Enter the option :> ").strip() 176 | if choice=="1": 177 | cc=input("ENTER THE CREDIT CARD NUMBER : ").strip() 178 | CC(cc) 179 | elif choice=="2": 180 | binnum=input("ENTER THE BIN CODE [first 6 digits of the CC] : ").strip() 181 | Bin(binnum) 182 | elif choice=="3": 183 | ifsccode=input("ENTER THE IFSC CODE : ").strip() 184 | ifsc(ifsccode) 185 | elif choice=="4": 186 | micrnum=input("ENTER THE MICR NUMBER : ").strip() 187 | micr(micrnum) 188 | elif choice=="5": 189 | number=input("ENTER THE PHONE NUMBER [with country prefix eg: +91 ] : ").strip() 190 | num(number) 191 | else: 192 | print("Invalid Choice!!") 193 | except KeyboardInterrupt: 194 | print("\n User Interrupted!! Bye!") 195 | except: 196 | 197 | print("Something Went Wrong") 198 | 199 | 200 | 201 | 202 | 203 | -------------------------------------------------------------------------------- /arithmo_gather.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/febinrev/arithmo-gather/9cac81b2167817e09b9db162d7c9ceb3898d0d2d/arithmo_gather.jpg -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | binlist 2 | requests 3 | bs4 4 | phonenumbers 5 | readline 6 | -------------------------------------------------------------------------------- /screenshots/CC.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/febinrev/arithmo-gather/9cac81b2167817e09b9db162d7c9ceb3898d0d2d/screenshots/CC.jpg -------------------------------------------------------------------------------- /screenshots/IFSC.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/febinrev/arithmo-gather/9cac81b2167817e09b9db162d7c9ceb3898d0d2d/screenshots/IFSC.jpg -------------------------------------------------------------------------------- /screenshots/header.txt: -------------------------------------------------------------------------------- 1 | example 2 | -------------------------------------------------------------------------------- /screenshots/micr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/febinrev/arithmo-gather/9cac81b2167817e09b9db162d7c9ceb3898d0d2d/screenshots/micr.jpg -------------------------------------------------------------------------------- /screenshots/phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/febinrev/arithmo-gather/9cac81b2167817e09b9db162d7c9ceb3898d0d2d/screenshots/phone.png --------------------------------------------------------------------------------