forked from houbbit/haveibeenpwned
-
Notifications
You must be signed in to change notification settings - Fork 0
/
hibp.py
133 lines (124 loc) · 13.1 KB
/
hibp.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#!/usr/bin/python hibp
# -*- coding: utf-8 -*-
# The version you're using was modified by Jeffrey Mustard | Contact: (https://github.com/JeffreyMustard)
# Original Author = Laurens Houben | Contact: (https://github.com/houbbit)
import requests
import time
import argparse
parser = argparse.ArgumentParser(description="Verify if email address has been pwned")
parser.add_argument("-a", dest="address",
help="Single email address to be checked")
parser.add_argument("-f", dest="filename",
help="File to be checked with one email addresses per line")
args = parser.parse_args()
rate = 1.5
server = "haveibeenpwned.com"
sslVerify = True
OKGREEN=('\033[92m')
WARNING=('\033[93m')
FAILRED=('\033[91m')
ENDC=('\033[0m')
blu3=('\033[94m')
p1nk=('\033[95m')
l1n3=(p1nk + "<==========================================================================================================================================================================================================================>")
address = str(args.address)
filename = str(args.filename)
print('\n')
print('\n')
print('\n')
print(l1n3)
print('\n')
print('\n')
print(blu3 + " `-:/+oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyoo+/:-` ")
print(blu3 + " `:+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+:. ")
print(blu3 + " `/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo/. ")
print(blu3 + " -oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo: ")
print(blu3 + " .oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo- ")
print(blu3 + " `+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+. `.......` /ydmmdo /ydmmdo ")
print(blu3 + " .yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy- +yyyydMM- `dN+. `` `dMo. `` ")
print(blu3 + " .yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy: :Md ./ooo/` yMo oMo .+- .+oo/` `/ooo/. `+/ `+/ ")
print(blu3 + " `yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy- yM/ :dmo//+mN: +yyyNMyyyyo` /yyyNMyyyyy` +Myyd+/oMm -yNy//+dM+ mM- /My ")
print(blu3 + " oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo` .MN` +My` `-dM: :::yMy::::: :::yMd::::: yMN: `dd :Nd. `-yMo oMy `mN- ")
print(blu3 + " .yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/ oMy `MMyyyyyy+. yM: yM: `NN- mMdyyyyy+. `MN` `dN: ")
print(blu3 + " +yyyyyyyyyyyyyyyyyyyyyyyyy+++yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo` .NN. -Mm .Mm .Mm /My `MM` yM+-mm- ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyy/ .yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. ydo++yNd- yMdo//+o+ yM+ oMo dM- oMmo//+oo :MmNy` ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyy- `yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. -+o+/. ./+o++/. `NN` `mM. // `:+oo+/- :MN/ ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyo. `yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. ``:yM/ ``:yM+ ``:yNy` ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyy/ `yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. /ddyo. :ddyo. :ddy+` ")
print(blu3 + " yyyyyyyyyyyyyyyyyyy/ oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. ")
print(blu3 + " yyyyyyyyyyyyyyyyyyy` `yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. ")
print(blu3 + " yyyyyyyyyyyyyyyyyyy `yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. ")
print(blu3 + " yyyyyyyyyyyyyyyyyyy/-..-/yyyyyyyyyyyy/-..-/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. -+/ :+/ -/- -Md ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+ oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. dNM: yNMy mM. yM/ ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+ oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. :M+My `ydoM+ +y: -yo -oydddyo +yyyMNyyyyy .+ydddyyy -y+`+yddy: .+ydddyNN` ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy:```.:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. dm dm.dy`yM. NN` yM/ +My-```.- ...dM+..... `yMy:``.yM+ +Mdmo-`-NM` oMy:``.yMy ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. :M+ +Mmy `Nd /My `NN` /Mmo:` .Mm yM+ `NN` yMd. `oo yMy mM. ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo//////////////oyyyy+//////////////yyyyyyyyyyyyy. dN` `y+ /Mo yM- yMy ./yyNm+ oMo .Mm yMy `NN` `NM` oMy ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. -yyyy` :yyyyyyyyyyyy. :Mo yM- `MN -dMM: .MN` dM: .Mm .yNM/ +My `MN` .yNMo ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy:``````````````/yyyy-``````````````+yyyyyyyyyyyy. oN` `Nm yMdydd/dM` -mdyyyyNy: /mNyyyy yMmydd/yM. mM. +Nmydm+yM: ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. ` `` `-.` `` `..--` `--.` `.-` `` `` .-` `` ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+.```-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. +yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy` :yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. :yyyyyyy: ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. :yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. `....-MN. `` ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. `+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. +My /Mo/ymdNNo ")
print(blu3 + " yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. .yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy. dM: yMNy- `MN ")
print(blu3 + " +yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy- /yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo` -Mm mMo `-- ")
print(blu3 + " .yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyooyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/ yM+ :Md ` ")
print(blu3 + " +yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo` .+. `oMy` yM/ /NMd` ")
print(blu3 + " `yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy- /ymmmdy: `yy` :dNy` ")
print(blu3 + " `yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy- ")
print(blu3 + " `yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo- ")
print(blu3 + " /yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+` ")
print(blu3 + " .oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo- ")
print(blu3 + " .+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy+- ")
print(blu3 + " `:oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo/. ")
print(blu3 + " `-+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyo+:` ")
print(blu3 + " .-/++oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyooooo+/:-.` ")
print('\n')
print(l1n3)
print('\n')
print('\n')
def main():
if address != "None":
checkAddress(address)
elif filename != "None":
email = [line.rstrip('\n') for line in open(filename)]
for email in email:
checkAddress(email)
else:
for email in lstEmail:
checkAddress(email)
def checkAddress(email):
sleep=rate
check=requests.get("https://" + server + "/api/v2/breachedaccount/" + email + "?includeUnverified=true",
verify=sslVerify)
if str(check.status_code) == "404":
print(OKGREEN + "[✓] " + email + " has not been breached." + ENDC)
time.sleep(sleep)
return False
elif str(check.status_code) == "200":
print(FAILRED + "[X] " + email + " has been breached!" + ENDC)
time.sleep(sleep)
return True
elif str(check.status_code) == "429":
print(WARNING + "[!] Rate limit exceeded, server instructed us to retry after " + check.headers['Retry-After'] + " seconds" + ENDC)
print(WARNING + " Refer to acceptable use of API: https://haveibeenpwned.com/API/v2#AcceptableUse" + ENDC)
sleep = float(check.headers['Retry-After'])
time.sleep(sleep)
checkAddress(email)
else:
print(WARNING + "[!] Something went wrong while checking " + email + ENDC)
time.sleep(sleep)
return True
if __name__ == "__main__":
main()
print('\n')
print('\n')
print(l1n3)
print('\n')
print('\n')