Spaces:
Runtime error
Runtime error
Niv Sardi
commited on
Commit
·
0acb617
1
Parent(s):
6120e5b
add openfish
Browse files- python/openfish.py +58 -0
python/openfish.py
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python
|
| 2 |
+
import requests
|
| 3 |
+
|
| 4 |
+
import concurrent.futures
|
| 5 |
+
from progress.bar import ChargingBar
|
| 6 |
+
|
| 7 |
+
from common import defaults,mkdir
|
| 8 |
+
|
| 9 |
+
PARALLEL = 20
|
| 10 |
+
|
| 11 |
+
def get(json):
|
| 12 |
+
return requests.post('http://puppet:8000/screenshot',
|
| 13 |
+
json=json)
|
| 14 |
+
|
| 15 |
+
def download_all(feed, n_workers=PARALLEL, dest=defaults.FISH_PATH):
|
| 16 |
+
mkdir.make_dirs([dest])
|
| 17 |
+
res = requests.get(feed)
|
| 18 |
+
with concurrent.futures.ThreadPoolExecutor(max_workers = n_workers) as executor:
|
| 19 |
+
futures = {executor.submit(get, {
|
| 20 |
+
'url': u,
|
| 21 |
+
'path': f'''{dest}/{u
|
| 22 |
+
.replace('http://', '')
|
| 23 |
+
.replace('https://', '')
|
| 24 |
+
.replace('/', '_')
|
| 25 |
+
.replace('&', '_')
|
| 26 |
+
.replace('=', '_')
|
| 27 |
+
.replace('?', '_')
|
| 28 |
+
}.png'''
|
| 29 |
+
}): u for u in res.text.split('\n')}
|
| 30 |
+
print(f'will get {len(futures)} domains')
|
| 31 |
+
bar = ChargingBar('Processing', max=len(futures), suffix='%(index)d/%(max)d')
|
| 32 |
+
for f in concurrent.futures.as_completed(futures):
|
| 33 |
+
url = futures[f]
|
| 34 |
+
try:
|
| 35 |
+
ret = f.result()
|
| 36 |
+
except:
|
| 37 |
+
print(f'{url} generated an exception')
|
| 38 |
+
else:
|
| 39 |
+
print(ret)
|
| 40 |
+
bar.next()
|
| 41 |
+
bar.finish()
|
| 42 |
+
|
| 43 |
+
if __name__ == '__main__':
|
| 44 |
+
import argparse
|
| 45 |
+
|
| 46 |
+
parser = argparse.ArgumentParser(description='screenshot openfish open list')
|
| 47 |
+
parser.add_argument('--parallel', metavar='parallel', type=int,
|
| 48 |
+
default=PARALLEL,
|
| 49 |
+
help='number of concurrent jobs')
|
| 50 |
+
parser.add_argument('--feed', metavar='feed', type=str,
|
| 51 |
+
default='https://raw.githubusercontent.com/mitchellkrogza/Phishing.Database/master/phishing-links-ACTIVE-TODAY.txt',
|
| 52 |
+
help='''
|
| 53 |
+
fishing feed to use we recomend
|
| 54 |
+
- https://github.com/mitchellkrogza/Phishing.Database/blob/master/phishing-links-ACTIVE-TODAY.txt
|
| 55 |
+
- https://openphish.com/feed.txt
|
| 56 |
+
''')
|
| 57 |
+
args = parser.parse_args()
|
| 58 |
+
download_all(args.feed, n_workers=args.parallel)
|