Files
sigma-rules/rta/hosts_file_modify.py
T
2021-03-03 22:12:11 -09:00

56 lines
1.4 KiB
Python

# Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
# or more contributor license agreements. Licensed under the Elastic License
# 2.0; you may not use this file except in compliance with the Elastic License
# 2.0.
# Name: Hosts File Modified
# RTA: hosts_file_modify.py
# ATT&CK: T1492
# Description: Modifies the hosts file
import os
import random
import time
from string import ascii_letters
from . import common
def main():
hosts_files = {
common.WINDOWS: "C:\\Windows\\system32\\drivers\\etc\\hosts",
common.LINUX: "/etc/hosts",
common.MACOS: "/private/etc/hosts"
}
hosts_file = hosts_files[common.CURRENT_OS]
backup = os.path.abspath(hosts_file + '_backup')
common.log("Backing up original 'hosts' file.")
common.copy_file(hosts_file, backup)
# add randomness for diffs for FIM module
randomness = ''.join(random.sample(ascii_letters, 10))
entry = [
'',
'# RTA hosts_modify was here',
'# 8.8.8.8 https://www.{random}.google.com'.format(random=randomness)
]
with open(hosts_file, 'a') as f:
f.write('\n'.join(entry))
common.log('Updated hosts file')
with open(hosts_file, 'r') as f:
common.log(f.read())
time.sleep(2)
# cleanup
common.log("Restoring hosts from backup copy.")
common.copy_file(backup, hosts_file)
os.remove(backup)
if __name__ == "__main__":
exit(main())