49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
import datetime
|
|
import dotenv
|
|
import json
|
|
import requests
|
|
import socket
|
|
import utils.database
|
|
import utils.teamsconnector
|
|
|
|
def main():
|
|
utils.database.createdatabasefile()
|
|
current_date = datetime.date.today()
|
|
month = current_date.month
|
|
year = current_date.year
|
|
try:
|
|
response = requests.get(f'https://api.ransomware.live/v2/victims/{year}/{month}')
|
|
except Exception as e:
|
|
print(e)
|
|
json_parse = json.loads(response.content)
|
|
format_date_string = "%Y-%m-%d %H:%M:%S.%f"
|
|
for vic in json_parse:
|
|
date_object = datetime.datetime.strptime(vic['discovered'], format_date_string)
|
|
date = date_object.date()
|
|
if current_date == date:
|
|
sqlresult = utils.database.checkdatabase(vic['victim'], vic['discovered'])
|
|
if sqlresult is False:
|
|
vendor = vic['victim']
|
|
date_added = vic['discovered']
|
|
domain = vic['domain']
|
|
group = vic['group']
|
|
try:
|
|
if domain != "" and " " not in domain:
|
|
ip_address = socket.getaddrinfo(domain, 0, 0, 0, 0)
|
|
unique_ips = list(set([addr[-1][0] for addr in ip_address]))
|
|
else:
|
|
unique_ips = "Unknown"
|
|
except:
|
|
unique_ips = "Unknown"
|
|
print("=== Victim Added ===")
|
|
print(f"""
|
|
Vendor: {vendor}
|
|
Date: {date_added}
|
|
Domain: {domain}
|
|
IP Addresses: {str(unique_ips).replace('[','').replace(']', '')}
|
|
Attack Group: {group}
|
|
""")
|
|
utils.teamsconnector.teamswebhook(vic['victim'], vic['discovered'], vic['domain'], vic['group'], unique_ips, vic['description'])
|
|
|
|
if __name__ == "__main__":
|
|
main() |