parent
d53e7a081b
commit
0d45c22d86
9 changed files with 184 additions and 40 deletions
@ -0,0 +1,24 @@ |
||||
import re |
||||
from time import sleep |
||||
from getpass import getpass |
||||
|
||||
from bs4 import BeautifulSoup |
||||
from arango import ArangoClient |
||||
import requests |
||||
from urllib.parse import urlencode |
||||
|
||||
|
||||
|
||||
def check_ip(): |
||||
""" |
||||
Checks the current IP. |
||||
""" |
||||
url = f'https://mrkoll.se/resultat?n={46706111785}' |
||||
proxies = {'https': 'http://sgz2bkt7:TtLyyPGKMmjabg7R_country-Sweden@proxy.proxy-cheap.com:31112'} |
||||
ip = requests.get(url, proxies=proxies).text |
||||
|
||||
return ip |
||||
|
||||
print(check_ip()) |
||||
|
||||
|
||||
@ -0,0 +1,104 @@ |
||||
""" |
||||
Skript för att söka i FB-läckan. |
||||
""" |
||||
|
||||
import re |
||||
import paramiko |
||||
import arangodb |
||||
from getpass import getpass |
||||
from sshtunnel import open_tunnel |
||||
import paramiko |
||||
from termcolor import cprint |
||||
|
||||
def search(db, attribute, value): |
||||
""" |
||||
Search for attribute in db. |
||||
Returns list of matching documents. |
||||
""" |
||||
|
||||
if '%' in value or '_' in value: |
||||
match = 'like' |
||||
else: |
||||
match = '==' |
||||
|
||||
cursor = db.aql.execute( |
||||
f""" |
||||
FOR doc IN leak |
||||
FILTER doc.@attribute {match} @value |
||||
RETURN doc |
||||
""", |
||||
bind_vars={"attribute": attribute, "value": value}, |
||||
) |
||||
return [doc for doc in cursor] |
||||
|
||||
pwd_key = getpass(f"Password key: ") |
||||
|
||||
with open_tunnel( |
||||
("studio-garda.asuscomm.com", 2200), |
||||
ssh_username="Lasse", |
||||
ssh_pkey=paramiko.RSAKey.from_private_key_file( |
||||
"/Users/Lasse/.ssh/id_rsa", password=pwd_key |
||||
), |
||||
ssh_private_key_password=pwd_key, |
||||
remote_bind_address=("127.0.0.1", 8529), |
||||
) as server: |
||||
# server.start() |
||||
port_arango = server.local_bind_port |
||||
|
||||
db = arangodb.arango_connect( |
||||
"gruel-ADOBE-foolish-winy-borax", |
||||
username="Leak", |
||||
host_arango="http://127.0.0.1", |
||||
port_arango=port_arango, |
||||
) |
||||
|
||||
cprint("\n\nVad vill du söka efter?", attrs=['bold']) |
||||
print("1 - Telefonnummer") |
||||
print("2 - Facebook-ID") |
||||
print('3 - Namn') |
||||
print("4 - Arbete") |
||||
print('5 - Bostadsort') |
||||
print("6 - Födelseort") |
||||
print("7 - Epost") |
||||
|
||||
# Få input för attribut |
||||
attribute = input("\n>>> ") |
||||
attributes = { |
||||
"1": ("telefonnummer", "phone"), |
||||
"2": ("Facebook-ID", "_key"), |
||||
"3": ("namn", "full_name"), |
||||
"4": ("arbete", "work"), |
||||
"5": ('bostadsort', "lives_in"), |
||||
"6": ('födelseort', 'from'), |
||||
"7": ('epost', 'email') |
||||
} |
||||
|
||||
# Bestäm n- eller t-form och få input för värde. |
||||
if attribute in ['5', '6', '7']: |
||||
genus = 'n' |
||||
else: |
||||
genus = 't' |
||||
|
||||
cprint(f"\nVilke{genus} {attributes[attribute][0]}? ", attrs=['bold']) |
||||
cprint('Använd % för att ersätta flera okända tecken, _ för att ersätta ett.', attrs=['dark']) |
||||
value = input('\n>>> ') |
||||
|
||||
if attribute == '1': # telefonnummer |
||||
value = ''.join(re.findall(r'\d+', value)) |
||||
if value[0] == '0': |
||||
value = f'46{value[1:]}' |
||||
elif attribute == '3': # namn |
||||
value = value.upper() |
||||
|
||||
# Sök i databasen. |
||||
result = search(db, attributes[attribute][1], value) |
||||
|
||||
# Presentera reultaten #TODO hur vill man få dem? Spara ner? |
||||
for i in result: |
||||
print('\n', i['full_name']) |
||||
for key, value in i.items(): |
||||
print(f'{key}: {value}') |
||||
print(f'https://facebook.com/{i["_key"]}') |
||||
|
||||
print(f'\nAntal träffar: {len(result)}\n') |
||||
|
||||
Loading…
Reference in new issue