forked from BitTheByte/Monitorizer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmonitor.py
52 lines (41 loc) · 1.45 KB
/
monitor.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
from datetime import timedelta
from datetime import datetime
from time import sleep
import monitorizer
monitorizer.set_slack_channel("GLDXXXXX")
monitorizer.set_slack_token("xoxb-XXXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXXXXXXXXXX")
scanners = [
monitorizer.subfinder,
monitorizer.sublist3r,
monitorizer.dnsrecon,
monitorizer.dnscan,
monitorizer.amass,
]
monitorizer.slackmsg("Monitorizer framework v1 started :tada:")
while 1:
try:
for target in [t.strip() for t in open("watch_list","r").readlines()]:
if not target: continue
report_name = str(datetime.now().strftime("%Y%m%d_%s"))
report_path = "reports/%s_%s" % (target,report_name)
monitorizer.log("<{}> ::: {}".format(target,report_path))
newscan = monitorizer.mutliscan(scanners, target, output=report_path)
oldscan = monitorizer.read_reports(target,exclude=[report_name])
if not len(oldscan):
monitorizer.log("<{}> first Scan".format(target))
diff = []
else:
diff = newscan - oldscan
for new in diff:
if not monitorizer.NXDOMAIN(new):
monitorizer.log("Found: %s" % new)
monitorizer.slackmsg(msg="Found: %s " % new)
monitorizer.clean_temp()
time = datetime.today()
future = datetime(time.year,time.month,time.day,2,0)
if time.hour >= 2:
future += timedelta(hours=12)
monitorizer.log("next scan after {} second(s)".format( (future-time).seconds) )
sleep((future-time).seconds)
except Exception as e:
monitorizer.slackmsg("FATEL ERROR: %s" % str(e))