sonertari / SSLproxy

Transparent SSL/TLS proxy for decrypting and diverting network traffic to other programs, such as UTM services, for deep SSL inspection
BSD 2-Clause "Simplified" License
377 stars 98 forks source link

Listening Program(Python) does not let sslproxy return response data #49

Closed barisunsalhn closed 1 year ago

barisunsalhn commented 1 year ago

Hi soner, whenever I delete sleep line, it omits response data(payload) . I see a blank page(status code is 200 but it shows, failed ERR_CONTENT_LENGTH_MISMATCH for chrome). Why is that the case? I want to see files list inside directory(with the python server I provided below - gist url- ). My listening program code:

import socket, traceback, time

HOST = ''
PORT = 8080
CLRF = '\r\n'

class InvalidRequest(Exception):
    pass

class Request(object):
    "A simple http request object"

    def __init__(self, raw_request):
        self._raw_request = raw_request

        self._respomse = self.parse_request()

    def parse_request(self):
        "Turn basic request headers in something we can use"
        temp = [i.strip() for i in self._raw_request.splitlines()]

        if -1 == str(temp[0]).find('HTTP'):
            raise InvalidRequest('Incorrect Protocol')
        startOfPort = temp[1].find(":",9)+1
        #portC= temp[1][startOfPort]
        endOfPort = temp[1].find(",")

        portC = temp[1][startOfPort:endOfPort] # find port from the first ip. Like SSLproxy: [127.0.0.1]:43631 [10.150.97.247]:44510,[10.150.97.248]:8443,s

        clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
        clientSocket.connect(("127.0.0.1",int(portC))); 
        clientSocket.sendall(str.encode(self._raw_request));

        time.sleep(0.4) #################  this is the line you should delete..
        dataR = clientSocket.recv(40960); # wait for 200 response.
        dataRDecoded = dataR.decode()
        if dataRDecoded.find("HTTP/1.0 200") ==0:
            clientSocket.close() 

            return dataR # return 200 to sslproxy.

        clientSocket.close()
        return 1

    def __repr__(self):
        return repr({'method': self._method, 'path': self._path, 'protocol': self._protocol, 'headers': self._headers})

# the actual server starts here
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.listen(5)

while True:
    try:
        clientsock, clientaddress = s.accept()
    except KeyboardInterrupt:
        raise
    except:
        traceback.print_exc()

    try:
        request = clientsock.recv(1024)
        request = Request(request.decode('utf-8'))
        clientsock.send(request._respomse)
    except(KeyboardInterrupt, SystemExit):
        raise
    except InvalidRequest:
        clientsock.send('HTTP/1.1 400 Bad Request' + CLRF)
        clientsock.send('Content-Type: text/html' + CLRF*2)
        clientsock.send('<h1>Invalid Request: %s</h1>' )
    except:
        traceback.print_exc()

    try:
        clientsock.close()
    except KeyboardInterrupt:
        raise
    except:
        traceback.print_exc()

My server code(0.0.0.0 instead of localhost):

https://gist.github.com/DannyHinshaw/a3ac5991d66a2fe6d97a569c6cdac534

My client code:

Just using firefox or chrome

SSLPROXY log(compiled with DDEBUG_PROXY flag and commented out log_finest_main_va("thr=%d, load=%zu, to=%u", tctx->id, tctx->load, tctx->timeout_count); log_finest_main_va("thr=%d, load=%lu, to=%u", tctx->id, tctx->load, tctx->timeout_count); lines, for condense log.):

#sslproxy -D4 -f sslproxy.conf 
SSLproxy v0.9.3-dirty (built 2022-11-08)
Copyright (c) 2017-2022, Soner Tari <sonertari@gmail.com>
https://github.com/sonertari/SSLproxy
Copyright (c) 2009-2019, Daniel Roethlisberger <daniel@roe.ch>
https://www.roe.ch/SSLsplit
Build info: V:GIT
Features: -DDEBUG_PROXY -DHAVE_NETFILTER
NAT engines: netfilter* tproxy
netfilter: IP_TRANSPARENT IP6T_SO_ORIGINAL_DST
Local process info support: no
compiled against OpenSSL 3.0.1 14 Dec 2021 (30000010)
rtlinked against OpenSSL 3.0.1 14 Dec 2021 (30000010)
OpenSSL has support for TLS extensions
TLS Server Name Indication (SNI) supported
OpenSSL is thread-safe with THREADID
OpenSSL has engine support
Using SSL_MODE_RELEASE_BUFFERS
SSL/TLS protocol availability: tls10 tls11 tls12 tls13 
SSL/TLS algorithm availability: !SHA0 RSA DSA ECDSA DH ECDH EC
OpenSSL option availability: SSL_OP_NO_COMPRESSION SSL_OP_NO_TICKET SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION SSL_OP_TLS_ROLLBACK_BUG
compiled against libevent 2.1.12-stable
rtlinked against libevent 2.1.12-stable
compiled against libnet 1.2
rtlinked against libnet 1.2
compiled against libpcap n/a
rtlinked against libpcap 1.10.0 (with TPACKET_V3)
compiled against sqlite 3.34.1
rtlinked against sqlite 3.34.1
12 CPU cores detected
Generated 2048 bit RSA key for leaf certs.
Global conn opts: negotiate>=tls10<=tls13|ALL:-aNULL|TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256|no ecdhcurve|no leafcrlurl|remove_http_referer|verify_peer|no user_auth_url|300|8192
proxyspecs:
- listen=[0.0.0.0]:8443 ssl|http netfilter
divert addr= [127.0.0.1]:8080
return addr= [127.0.0.1]:0
opts= conn opts: negotiate>=tls10<=tls13|ALL:-aNULL|TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256|no ecdhcurve|no leafcrlurl|remove_http_referer|no user_auth_url|300|8192
divert||
No Global CA loaded.
Loaded ProxySpec CA: '/C=TR/ST=TR/L=TR/O=TR/OU=TR/CN=TR/emailAddress=TR'
SSL/TLS leaf certificates taken from:
- Global connection drop
Privsep fastpath enabled
Created self-pipe [r=3,w=4]
Created chld-pipe [r=5,w=6]
Created socketpair 0 [p=7,c=8]
Created socketpair 1 [p=9,c=10]
Created socketpair 2 [p=11,c=12]
Created socketpair 3 [p=13,c=14]
Created socketpair 4 [p=15,c=16]
Created socketpair 5 [p=17,c=18]
Privsep parent pid 22165
Privsep child pid 22166
Using libevent backend 'epoll'
Event base supports: edge yes, O(1) yes, anyfd no
[FINEST] proxy_listener_setup: ENTER
Dropped privs to user - group - chroot -
Received privsep req type 00 sz 1 on srvsock 9
Inserted events:
Received privsep req type 00 sz 1 on srvsock 11
Received privsep req type 00 sz 1 on srvsock 13
  0x8304f8 [fd  4] Read Persist InternalReceived privsep req type 00 sz 1 on srvsock 15

Received privsep req type 00 sz 1 on srvsock 17
  0x8306d0 [fd  6] Read Persist Internal
  0x82ca58 [fd  7] Read Persist
  0x82b560 [sig 1] Signal Persist
  0x7f91a0 [sig 2] Signal Persist
  0x8189b0 [sig 3] Signal Persist
  0x8182e0 [sig 10] Signal Persist
  0x81bbd0 [sig 13] Signal Persist
  0x81c740 [sig 15] Signal Persist
  0x82bc60 [fd  -1] Persist Timeout=1667905659.390922
Active events:
Initialized 24 connection handling threads
Started 24 connection handling threads
Starting main event loop.
[FINEST] proxy_listener_acceptcb: ENTER, fd=105
[FINEST] proxy_conn_ctx_new: ENTER, fd=105
[FINEST] [0.0 fd=105 cfd=0] proxy_conn_ctx_new: Created new conn
[FINEST] [0.0 fd=105 cfd=0] pxy_thrmgr_assign_thr: ENTER
[FINEST] [0.0 fd=105 cfd=0] protossl_init_conn: ENTER
[FINEST] [0.0 fd=105 cfd=0] pxy_conn_init: ENTER
[FINEST] [0.0 fd=105 cfd=0] pxy_thr_attach: Adding conn
[FINER] [0.0 fd=105 cfd=0] check_fd_usage: descriptor_table_size=1024, dtablecount=107, reserve=10
[FINEST] [0.0 fd=105 cfd=0] pxy_conn_init: srcaddr= [10.150.97.247]:42280
[FINEST] [0.0 fd=105 cfd=0] protossl_fd_readcb: ENTER
SNI peek: [n/a] [complete], fd=105
[FINEST] [0.0 fd=105 cfd=0] pxy_conn_connect: ENTER
Connecting to [10.150.97.248]:8443
[FINEST] [0.0 fd=105 cfd=0] protossl_conn_connect: ENTER
[FINEST] [0.0 fd=105 cfd=0] protossl_bufferevent_setup: ENTER, fd=-1
[FINEST] [0.0 fd=105 cfd=0] protossl_bufferevent_setup: bufferevent_openssl_set_allow_dirty_shutdown, fd=-1
[FINEST] proxy_listener_acceptcb: ENTER, fd=107
[FINEST] proxy_conn_ctx_new: ENTER, fd=107
[FINEST] [0.1 fd=107 cfd=0] proxy_conn_ctx_new: Created new conn
[FINEST] [0.1 fd=107 cfd=0] pxy_thrmgr_assign_thr: ENTER
[FINEST] [1.1 fd=107 cfd=0] protossl_init_conn: ENTER
[FINEST] [1.1 fd=107 cfd=0] pxy_conn_init: ENTER
[FINEST] [1.1 fd=107 cfd=0] pxy_thr_attach: Adding conn
[FINER] [1.1 fd=107 cfd=0] check_fd_usage: descriptor_table_size=1024, dtablecount=109, reserve=10
[FINEST] [1.1 fd=107 cfd=0] pxy_conn_init: srcaddr= [10.150.97.247]:42292
[FINEST] [1.1 fd=107 cfd=0] protossl_fd_readcb: ENTER
SNI peek: [n/a] [complete], fd=107
[FINEST] [1.1 fd=107 cfd=0] pxy_conn_connect: ENTER
Connecting to [10.150.97.248]:8443
[FINEST] [1.1 fd=107 cfd=0] protossl_conn_connect: ENTER
[FINEST] [1.1 fd=107 cfd=0] protossl_bufferevent_setup: ENTER, fd=-1
[FINEST] [1.1 fd=107 cfd=0] protossl_bufferevent_setup: bufferevent_openssl_set_allow_dirty_shutdown, fd=-1
[FINEST] [0.0 fd=105 cfd=0] protossl_bev_eventcb_connected_srvdst: ENTER
===> Original server certificate:
Subject DN: /C=tr/ST=tr/L=tr/O=tr/OU=tr/CN=tr/emailAddress=tr
Common Names: tr
Fingerprint: 87:97:2C:90:A0:E1:F0:C7:89:959B:4A:F4:3B:11:BE:10:83:AE:EF
Certificate cache: MISS
===> Forged server certificate:
Subject DN: /C=tr/ST=tr/L=tr/O=tr/OU=tr/CN=tr/emailAddress=tr
Common Names: tr
Fingerprint: D8:75:99:25:B5:C1:A5:FD:7C:4069:93:E1:08:08:68:01:7B:05:CE
[FINEST] [0.0 fd=105 cfd=0] prototcp_bufferevent_setup: ENTER, fd=-1
[FINEST] [0.0 fd=105 cfd=0] protossl_bev_eventcb_connected_dst: ENTER
[FINEST] [0.0 fd=105 cfd=0] protossl_bufferevent_setup: ENTER, fd=105
[FINEST] [0.0 fd=105 cfd=0] protossl_bufferevent_setup: bufferevent_openssl_set_allow_dirty_shutdown, fd=105
[FINER] [0.0 fd=105 cfd=110] pxy_setup_child_listener: Finished setting up child listener, child_fd=110
[FINER] [0.0 fd=105 cfd=110] pxy_set_sslproxy_header: sslproxy_header= SSLproxy: [127.0.0.1]:35683,[10.150.97.247]:42280,[10.150.97.248]:8443,s
[FINER] [0.0 fd=105 cfd=110] protossl_enable_src: Enabling src
HTTPS connected to [10.150.97.248]:8443 TLSv1.3 TLS_AES_256_GCM_SHA384
CLIENT_RANDOM 231BE6F319039B5FFB3A138B441B96D7643664B7CABF27BF31C6A9237EAD1EA9 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
SSL session cache: MISS
[FINEST] [0.0 fd=105 cfd=110] prototcp_bev_writecb_dst: ENTER
SSL session cache: MISS
Client-side BEV_EVENT_ERROR
Error from bufferevent: 0:- 167773206:1046:sslv3 alert certificate unknown:20:SSL routines:0:-
Additional SSL error: 1:1:-:0:-:0:-
[FINE] [0.0 fd=105 cfd=110] prototcp_bev_eventcb_error_src: ENTER
[FINEST] [0.0 fd=105 cfd=110] pxy_try_close_conn_end: outbuflen == 0, terminate conn
[FINER] [0.0 fd=105 cfd=110] prototcp_bufferevent_free_and_close_fd: in=0, out=0, fd=109
[FINER] [0.0 fd=105 cfd=110] protossl_bufferevent_free_and_close_fd: in=0, out=0, fd=105
SSL_free() in state 0000002e = 002e = SSLERR (error) [accept socket]
[FINER] [0.0 fd=105 cfd=110] protossl_bufferevent_free_and_close_fd: fd=105, SSL_free() in state 0000002e = 002e = SSLERR (error) [accept socket]
[FINEST] [0.0 fd=105 cfd=110] pxy_try_disconnect: other->closed, terminate conn
HTTPS disconnected to [10.150.97.248]:8443, fd=105
HTTPS disconnected from [10.150.97.247]:42280, fd=105
[FINEST] [0.0 fd=105 cfd=110] pxy_conn_term: ENTER
[FINEST] [0.0 fd=105 cfd=110] pxy_conn_free: ENTER
[FINER] [0.0 fd=105 cfd=110] protossl_bufferevent_free_and_close_fd: in=0, out=0, fd=106
SSL_free() in state 00000001 = 0001 = SSLOK (SSL negotiation finished successfully) [connect socket]
[FINER] [0.0 fd=105 cfd=110] protossl_bufferevent_free_and_close_fd: fd=106, SSL_free() in state 00000001 = 0001 = SSLOK (SSL negotiation finished successfully) [connect socket]
[FINEST] [0.0 fd=105 cfd=110] pxy_conn_free_children: ENTER
[FINER] [0.0 fd=105 cfd=110] pxy_conn_free_children: Freeing child_evcl, children fd=-1
[FINEST] [0.0 fd=105 cfd=110] pxy_conn_ctx_free: ENTER
[FINEST] [0.0 fd=105 cfd=110] pxy_thr_detach: Removing conn
[FINEST] [0.0 fd=105 cfd=110] pxy_thr_detach: Cannot find conn in thr conns, empty
[FINEST] [1.1 fd=107 cfd=0] protossl_bev_eventcb_connected_srvdst: ENTER
===> Original server certificate:
Subject DN: /C=tr/ST=tr/L=tr/O=tr/OU=tr/CN=tr/emailAddress=tr
Common Names: tr
Fingerprint: 87:97:2C:90:A0:E1:F0:C7:89:959B:4A:F4:3B:11:BE:10:83:AE:EF
Certificate cache: HIT
===> Forged server certificate:
Subject DN: /C=tr/ST=tr/L=tr/O=tr/OU=tr/CN=tr/emailAddress=tr
Common Names: tr
Fingerprint: D8:75:99:25:B5:C1:A5:FD:7C:4069:93:E1:08:08:68:01:7B:05:CE
[FINEST] [1.1 fd=107 cfd=0] prototcp_bufferevent_setup: ENTER, fd=-1
[FINEST] [1.1 fd=107 cfd=0] protossl_bev_eventcb_connected_dst: ENTER
[FINEST] [1.1 fd=107 cfd=0] protossl_bufferevent_setup: ENTER, fd=107
[FINEST] [1.1 fd=107 cfd=0] protossl_bufferevent_setup: bufferevent_openssl_set_allow_dirty_shutdown, fd=107
[FINER] [1.1 fd=107 cfd=106] pxy_setup_child_listener: Finished setting up child listener, child_fd=106
[FINER] [1.1 fd=107 cfd=106] pxy_set_sslproxy_header: sslproxy_header= SSLproxy: [127.0.0.1]:39687,[10.150.97.247]:42292,[10.150.97.248]:8443,s
[FINER] [1.1 fd=107 cfd=106] protossl_enable_src: Enabling src
HTTPS connected to [10.150.97.248]:8443 TLSv1.3 TLS_AES_256_GCM_SHA384
CLIENT_RANDOM 41F1C893FF60F574CF6F01AFCFDCB5179058AC0C20C16ABEA059F460FF4B230F 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
SSL session cache: MISS
[FINEST] [1.1 fd=107 cfd=106] prototcp_bev_writecb_dst: ENTER
SSL session cache: MISS
Client-side BEV_EVENT_ERROR
Error from bufferevent: 0:- 167773206:1046:sslv3 alert certificate unknown:20:SSL routines:0:-
Additional SSL error: 1:1:-:0:-:0:-
[FINE] [1.1 fd=107 cfd=106] prototcp_bev_eventcb_error_src: ENTER
[FINEST] [1.1 fd=107 cfd=106] pxy_try_close_conn_end: outbuflen == 0, terminate conn
[FINER] [1.1 fd=107 cfd=106] prototcp_bufferevent_free_and_close_fd: in=0, out=0, fd=105
[FINER] [1.1 fd=107 cfd=106] protossl_bufferevent_free_and_close_fd: in=0, out=0, fd=107
SSL_free() in state 0000002e = 002e = SSLERR (error) [accept socket]
[FINER] [1.1 fd=107 cfd=106] protossl_bufferevent_free_and_close_fd: fd=107, SSL_free() in state 0000002e = 002e = SSLERR (error) [accept socket]
[FINEST] [1.1 fd=107 cfd=106] pxy_try_disconnect: other->closed, terminate conn
HTTPS disconnected to [10.150.97.248]:8443, fd=107
HTTPS disconnected from [10.150.97.247]:42292, fd=107
[FINEST] [1.1 fd=107 cfd=106] pxy_conn_term: ENTER
[FINEST] [1.1 fd=107 cfd=106] pxy_conn_free: ENTER
[FINER] [1.1 fd=107 cfd=106] protossl_bufferevent_free_and_close_fd: in=0, out=0, fd=108
SSL_free() in state 00000001 = 0001 = SSLOK (SSL negotiation finished successfully) [connect socket]
[FINER] [1.1 fd=107 cfd=106] protossl_bufferevent_free_and_close_fd: fd=108, SSL_free() in state 00000001 = 0001 = SSLOK (SSL negotiation finished successfully) [connect socket]
[FINEST] [1.1 fd=107 cfd=106] pxy_conn_free_children: ENTER
[FINER] [1.1 fd=107 cfd=106] pxy_conn_free_children: Freeing child_evcl, children fd=-1
[FINEST] [1.1 fd=107 cfd=106] pxy_conn_ctx_free: ENTER
[FINEST] [1.1 fd=107 cfd=106] pxy_thr_detach: Removing conn
[FINEST] [1.1 fd=107 cfd=106] pxy_thr_detach: Cannot find conn in thr conns, empty
[FINEST] proxy_listener_acceptcb: ENTER, fd=105
[FINEST] proxy_conn_ctx_new: ENTER, fd=105
[FINEST] [0.2 fd=105 cfd=0] proxy_conn_ctx_new: Created new conn
[FINEST] [0.2 fd=105 cfd=0] pxy_thrmgr_assign_thr: ENTER
[FINEST] [0.2 fd=105 cfd=0] protossl_init_conn: ENTER
[FINEST] [0.2 fd=105 cfd=0] pxy_conn_init: ENTER
[FINEST] [0.2 fd=105 cfd=0] pxy_thr_attach: Adding conn
[FINER] [0.2 fd=105 cfd=0] check_fd_usage: descriptor_table_size=1024, dtablecount=107, reserve=10
[FINEST] [0.2 fd=105 cfd=0] pxy_conn_init: srcaddr= [10.150.97.247]:44322
[FINEST] [0.2 fd=105 cfd=0] protossl_fd_readcb: ENTER
SNI peek: [n/a] [complete], fd=105
[FINEST] [0.2 fd=105 cfd=0] pxy_conn_connect: ENTER
Connecting to [10.150.97.248]:8443
[FINEST] [0.2 fd=105 cfd=0] protossl_conn_connect: ENTER
Attempt reuse dst SSL session
[FINEST] [0.2 fd=105 cfd=0] protossl_bufferevent_setup: ENTER, fd=-1
[FINEST] [0.2 fd=105 cfd=0] protossl_bufferevent_setup: bufferevent_openssl_set_allow_dirty_shutdown, fd=-1
[FINEST] [0.2 fd=105 cfd=0] protossl_bev_eventcb_connected_srvdst: ENTER
===> Original server certificate:
Subject DN: /C=tr/ST=tr/L=tr/O=tr/OU=tr/CN=tr/emailAddress=tr
Common Names: tr
Fingerprint: 87:97:2C:90:A0:E1:F0:C7:89:959B:4A:F4:3B:11:BE:10:83:AE:EF
Certificate cache: HIT
===> Forged server certificate:
Subject DN: /C=tr/ST=tr/L=tr/O=tr/OU=tr/CN=tr/emailAddress=tr
Common Names: tr
Fingerprint: D8:75:99:25:B5:C1:A5:FD:7C:4069:93:E1:08:08:68:01:7B:05:CE
[FINEST] [0.2 fd=105 cfd=0] prototcp_bufferevent_setup: ENTER, fd=-1
[FINEST] proxy_listener_acceptcb: ENTER, fd=108
[FINEST] proxy_conn_ctx_new: ENTER, fd=108
[FINEST] [0.3 fd=108 cfd=0] proxy_conn_ctx_new: Created new conn
[FINEST] [0.3 fd=108 cfd=0] pxy_thrmgr_assign_thr: ENTER
[FINEST] [1.3 fd=108 cfd=0] protossl_init_conn: ENTER
[FINEST] [1.3 fd=108 cfd=0] pxy_conn_init: ENTER
[FINEST] [1.3 fd=108 cfd=0] pxy_thr_attach: Adding conn
[FINEST] [0.2 fd=105 cfd=0] protossl_bev_eventcb_connected_dst: ENTER
[FINEST] [0.2 fd=105 cfd=0] protossl_bufferevent_setup: ENTER, fd=105
[FINEST] [0.2 fd=105 cfd=0] protossl_bufferevent_setup: bufferevent_openssl_set_allow_dirty_shutdown, fd=105
[FINER] [0.2 fd=105 cfd=110] pxy_setup_child_listener: Finished setting up child listener, child_fd=110
[FINER] [0.2 fd=105 cfd=110] pxy_set_sslproxy_header: sslproxy_header= SSLproxy: [127.0.0.1]:40005,[10.150.97.247]:44322,[10.150.97.248]:8443,s
[FINER] [0.2 fd=105 cfd=110] protossl_enable_src: Enabling src
HTTPS connected to [10.150.97.248]:8443 TLSv1.3 TLS_AES_256_GCM_SHA384
CLIENT_RANDOM 84A93809A51633BC36143BE8ED0FF6BBA27A00E561DCBA3E64D9B541C5D1410C 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
[FINER] [1.3 fd=108 cfd=0] check_fd_usage: descriptor_table_size=1024, dtablecount=111, reserve=10
[FINEST] [1.3 fd=108 cfd=0] pxy_conn_init: srcaddr= [10.150.97.247]:44332
[FINEST] [1.3 fd=108 cfd=0] protossl_fd_readcb: ENTER
SNI peek: [n/a] [complete], fd=108
[FINEST] [1.3 fd=108 cfd=0] pxy_conn_connect: ENTER
Connecting to [10.150.97.248]:8443
[FINEST] [1.3 fd=108 cfd=0] protossl_conn_connect: ENTER
[FINEST] [0.2 fd=105 cfd=110] prototcp_bev_writecb_dst: ENTER
Attempt reuse dst SSL session
[FINEST] [1.3 fd=108 cfd=0] protossl_bufferevent_setup: ENTER, fd=-1
[FINEST] [1.3 fd=108 cfd=0] protossl_bufferevent_setup: bufferevent_openssl_set_allow_dirty_shutdown, fd=-1
Client-side BEV_EVENT_ERROR
Error from bufferevent: 0:- 167773206:1046:sslv3 alert certificate unknown:20:SSL routines:0:-
Additional SSL error: 1:1:-:0:-:0:-
[FINE] [0.2 fd=105 cfd=110] prototcp_bev_eventcb_error_src: ENTER
[FINEST] [0.2 fd=105 cfd=110] pxy_try_close_conn_end: outbuflen == 0, terminate conn
[FINER] [0.2 fd=105 cfd=110] prototcp_bufferevent_free_and_close_fd: in=0, out=0, fd=107
[FINER] [0.2 fd=105 cfd=110] protossl_bufferevent_free_and_close_fd: in=0, out=0, fd=105
SSL_free() in state 0000002e = 002e = SSLERR (error) [accept socket]
[FINER] [0.2 fd=105 cfd=110] protossl_bufferevent_free_and_close_fd: fd=105, SSL_free() in state 0000002e = 002e = SSLERR (error) [accept socket]
[FINEST] [0.2 fd=105 cfd=110] pxy_try_disconnect: other->closed, terminate conn
HTTPS disconnected to [10.150.97.248]:8443, fd=105
HTTPS disconnected from [10.150.97.247]:44322, fd=105
[FINEST] [0.2 fd=105 cfd=110] pxy_conn_term: ENTER
[FINEST] [0.2 fd=105 cfd=110] pxy_conn_free: ENTER
[FINER] [0.2 fd=105 cfd=110] protossl_bufferevent_free_and_close_fd: in=0, out=0, fd=106
SSL_free() in state 00000001 = 0001 = SSLOK (SSL negotiation finished successfully) [connect socket]
[FINER] [0.2 fd=105 cfd=110] protossl_bufferevent_free_and_close_fd: fd=106, SSL_free() in state 00000001 = 0001 = SSLOK (SSL negotiation finished successfully) [connect socket]
[FINEST] [0.2 fd=105 cfd=110] pxy_conn_free_children: ENTER
[FINER] [0.2 fd=105 cfd=110] pxy_conn_free_children: Freeing child_evcl, children fd=-1
[FINEST] [0.2 fd=105 cfd=110] pxy_conn_ctx_free: ENTER
[FINEST] [0.2 fd=105 cfd=110] pxy_thr_detach: Removing conn
[FINEST] [0.2 fd=105 cfd=110] pxy_thr_detach: Cannot find conn in thr conns, empty
[FINEST] [1.3 fd=108 cfd=0] protossl_bev_eventcb_connected_srvdst: ENTER
===> Original server certificate:
Subject DN: /C=tr/ST=tr/L=tr/O=tr/OU=tr/CN=tr/emailAddress=tr
Common Names: tr
Fingerprint: 87:97:2C:90:A0:E1:F0:C7:89:959B:4A:F4:3B:11:BE:10:83:AE:EF
Certificate cache: HIT
===> Forged server certificate:
Subject DN: /C=tr/ST=tr/L=tr/O=tr/OU=tr/CN=tr/emailAddress=tr
Common Names: tr
Fingerprint: D8:75:99:25:B5:C1:A5:FD:7C:4069:93:E1:08:08:68:01:7B:05:CE
[FINEST] [1.3 fd=108 cfd=0] prototcp_bufferevent_setup: ENTER, fd=-1
[FINEST] [1.3 fd=108 cfd=0] protossl_bev_eventcb_connected_dst: ENTER
[FINEST] [1.3 fd=108 cfd=0] protossl_bufferevent_setup: ENTER, fd=108
[FINEST] [1.3 fd=108 cfd=0] protossl_bufferevent_setup: bufferevent_openssl_set_allow_dirty_shutdown, fd=108
[FINER] [1.3 fd=108 cfd=106] pxy_setup_child_listener: Finished setting up child listener, child_fd=106
[FINER] [1.3 fd=108 cfd=106] pxy_set_sslproxy_header: sslproxy_header= SSLproxy: [127.0.0.1]:39259,[10.150.97.247]:44332,[10.150.97.248]:8443,s
[FINER] [1.3 fd=108 cfd=106] protossl_enable_src: Enabling src
HTTPS connected to [10.150.97.248]:8443 TLSv1.3 TLS_AES_256_GCM_SHA384
CLIENT_RANDOM C4989E17FB09450B0E00A8D1EFE00977B50FEB12545719FA4D304A6FF4D3DC8F 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
[FINEST] [1.3 fd=108 cfd=106] prototcp_bev_writecb_dst: ENTER
Client-side BEV_EVENT_ERROR
Error from bufferevent: 0:- 167773206:1046:sslv3 alert certificate unknown:20:SSL routines:0:-
Additional SSL error: 1:1:-:0:-:0:-
[FINE] [1.3 fd=108 cfd=106] prototcp_bev_eventcb_error_src: ENTER
[FINEST] [1.3 fd=108 cfd=106] pxy_try_close_conn_end: outbuflen == 0, terminate conn
[FINER] [1.3 fd=108 cfd=106] prototcp_bufferevent_free_and_close_fd: in=0, out=0, fd=105
[FINER] [1.3 fd=108 cfd=106] protossl_bufferevent_free_and_close_fd: in=0, out=0, fd=108
SSL_free() in state 0000002e = 002e = SSLERR (error) [accept socket]
[FINER] [1.3 fd=108 cfd=106] protossl_bufferevent_free_and_close_fd: fd=108, SSL_free() in state 0000002e = 002e = SSLERR (error) [accept socket]
[FINEST] [1.3 fd=108 cfd=106] pxy_try_disconnect: other->closed, terminate conn
HTTPS disconnected to [10.150.97.248]:8443, fd=108
HTTPS disconnected from [10.150.97.247]:44332, fd=108
[FINEST] [1.3 fd=108 cfd=106] pxy_conn_term: ENTER
[FINEST] [1.3 fd=108 cfd=106] pxy_conn_free: ENTER
[FINER] [1.3 fd=108 cfd=106] protossl_bufferevent_free_and_close_fd: in=0, out=0, fd=109
SSL_free() in state 00000001 = 0001 = SSLOK (SSL negotiation finished successfully) [connect socket]
[FINER] [1.3 fd=108 cfd=106] protossl_bufferevent_free_and_close_fd: fd=109, SSL_free() in state 00000001 = 0001 = SSLOK (SSL negotiation finished successfully) [connect socket]
[FINEST] [1.3 fd=108 cfd=106] pxy_conn_free_children: ENTER
[FINER] [1.3 fd=108 cfd=106] pxy_conn_free_children: Freeing child_evcl, children fd=-1
[FINEST] [1.3 fd=108 cfd=106] pxy_conn_ctx_free: ENTER
[FINEST] [1.3 fd=108 cfd=106] pxy_thr_detach: Removing conn
[FINEST] [1.3 fd=108 cfd=106] pxy_thr_detach: Cannot find conn in thr conns, empty
[FINEST] proxy_listener_acceptcb: ENTER, fd=105
[FINEST] proxy_conn_ctx_new: ENTER, fd=105
[FINEST] [0.4 fd=105 cfd=0] proxy_conn_ctx_new: Created new conn
[FINEST] [0.4 fd=105 cfd=0] pxy_thrmgr_assign_thr: ENTER
[FINEST] [0.4 fd=105 cfd=0] protossl_init_conn: ENTER
[FINEST] [0.4 fd=105 cfd=0] pxy_conn_init: ENTER
[FINEST] [0.4 fd=105 cfd=0] pxy_thr_attach: Adding conn
[FINER] [0.4 fd=105 cfd=0] check_fd_usage: descriptor_table_size=1024, dtablecount=107, reserve=10
[FINEST] [0.4 fd=105 cfd=0] pxy_conn_init: srcaddr= [10.150.97.247]:44342
[FINEST] [0.4 fd=105 cfd=0] protossl_fd_readcb: ENTER
SNI peek: [n/a] [complete], fd=105
[FINEST] [0.4 fd=105 cfd=0] pxy_conn_connect: ENTER
Connecting to [10.150.97.248]:8443
[FINEST] [0.4 fd=105 cfd=0] protossl_conn_connect: ENTER
Attempt reuse dst SSL session
[FINEST] [0.4 fd=105 cfd=0] protossl_bufferevent_setup: ENTER, fd=-1
[FINEST] [0.4 fd=105 cfd=0] protossl_bufferevent_setup: bufferevent_openssl_set_allow_dirty_shutdown, fd=-1
[FINEST] [0.4 fd=105 cfd=0] protossl_bev_eventcb_connected_srvdst: ENTER
===> Original server certificate:
Subject DN: /C=tr/ST=tr/L=tr/O=tr/OU=tr/CN=tr/emailAddress=tr
Common Names: tr
Fingerprint: 87:97:2C:90:A0:E1:F0:C7:89:959B:4A:F4:3B:11:BE:10:83:AE:EF
Certificate cache: HIT
===> Forged server certificate:
Subject DN: /C=tr/ST=tr/L=tr/O=tr/OU=tr/CN=tr/emailAddress=tr
Common Names: tr
Fingerprint: D8:75:99:25:B5:C1:A5:FD:7C:4069:93:E1:08:08:68:01:7B:05:CE
[FINEST] [0.4 fd=105 cfd=0] prototcp_bufferevent_setup: ENTER, fd=-1
[FINEST] [0.4 fd=105 cfd=0] protossl_bev_eventcb_connected_dst: ENTER
[FINEST] [0.4 fd=105 cfd=0] protossl_bufferevent_setup: ENTER, fd=105
[FINEST] [0.4 fd=105 cfd=0] protossl_bufferevent_setup: bufferevent_openssl_set_allow_dirty_shutdown, fd=105
[FINER] [0.4 fd=105 cfd=108] pxy_setup_child_listener: Finished setting up child listener, child_fd=108
[FINER] [0.4 fd=105 cfd=108] pxy_set_sslproxy_header: sslproxy_header= SSLproxy: [127.0.0.1]:43297,[10.150.97.247]:44342,[10.150.97.248]:8443,s
[FINER] [0.4 fd=105 cfd=108] protossl_enable_src: Enabling src
HTTPS connected to [10.150.97.248]:8443 TLSv1.3 TLS_AES_256_GCM_SHA384
CLIENT_RANDOM 1454AAAE304C3BDB3CC3DD474CB6A9B6506E589C88D11545875AFEF3D8E30E6E 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
[FINEST] [0.4 fd=105 cfd=108] prototcp_bev_writecb_dst: ENTER
[FINEST] [0.4 fd=105 cfd=108] prototcp_bev_eventcb_connected_src: ENTER
HTTPS connected to [10.150.97.248]:8443 TLSv1.3 TLS_AES_128_GCM_SHA256
CLIENT_RANDOM 38837D5966E7F331D3899FA28CF75FB91E9A921875A71628543842093E4DF017 FEBB2550B28AE9D1CFE44EA158C58EDECE30AF78E663346AB9294A54B4F2140700000000000000000000000000000000
[FINEST] [0.4 fd=105 cfd=108] protohttp_bev_readcb_src: ENTER, size=651
[FINEST] [0.4 fd=105 cfd=108] protohttp_bev_readcb_src: HTTP Request Header, size=651
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: GET / HTTP/1.1
[FINER] [0.4 fd=105 cfd=108] protohttp_filter_request_header: INSERT= SSLproxy: [127.0.0.1]:43297,[10.150.97.247]:44342,[10.150.97.248]:8443,s
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Host: 10.150.97.248:8443
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Connection: keep-alive
[FINER] [0.4 fd=105 cfd=108] protohttp_filter_request_header: REPLACE= Connection: close
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Cache-Control: max-age=0
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: sec-ch-ua: "Chromium";v="107", "Not=A?Brand";v="24"
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: sec-ch-ua-mobile: ?0
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: sec-ch-ua-platform: "Linux"
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Upgrade-Insecure-Requests: 1
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Sec-Fetch-Site: none
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Sec-Fetch-Mode: navigate
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Sec-Fetch-User: ?1
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Sec-Fetch-Dest: document
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Accept-Encoding: gzip, deflate, br
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Accept-Language: en-US,en;q=0.9
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: 
[FINEST] [0.4 fd=105 cfd=108] prototcp_bev_writecb_dst: ENTER
[FINEST] [0.4 fd=105 cfd=108] pxy_listener_acceptcb_child: ENTER, fd=109, ctx->child_fd=108
[FINEST] [0.4 fd=105 cfd=108] pxy_listener_acceptcb_child: peer addr=[127.0.0.1]:34762, fd=109
[FINER] [0.4 fd=105 cfd=108] check_fd_usage: descriptor_table_size=1024, dtablecount=111, reserve=10
[FINEST] [0.4 fd=105 cfd=108] pxy_conn_ctx_new_child: ENTER, fd=109
[FINEST] [0.4 fd=105 cfd=108] pxy_conn_attach_child: Adding child conn
[FINEST] [0.4 fd=105 cfd=108] prototcp_bufferevent_setup_child: ENTER, fd=109
[FINEST] [0.4 fd=105 cfd=108] protossl_connect_child: ENTER
[FINEST] [0.4 fd=105 cfd=108] prototcp_disable_srvdst: ENTER
[FINEST] [0.4 fd=105 cfd=108] prototcp_bev_eventcb_connected_dst_child: ENTER
Child connecting to [10.150.97.248]:8443
[FINEST] [0.4 fd=105 cfd=108] protohttp_bev_readcb_src_child: ENTER, size=720
[FINEST] [0.4 fd=105 cfd=108] protohttp_bev_readcb_src_child: HTTP Request Header, size=720
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: GET / HTTP/1.1
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: SSLproxy: [127.0.0.1]:43297,[10.150.97.247]:44342,[10.150.97.248]:8443,s
[FINER] [0.4 fd=105 cfd=108] protohttp_filter_request_header: REMOVE= SSLproxy: [127.0.0.1]:43297,[10.150.97.247]:44342,[10.150.97.248]:8443,s
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Host: 10.150.97.248:8443
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Connection: close
[FINER] [0.4 fd=105 cfd=108] protohttp_filter_request_header: REPLACE= Connection: close
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Cache-Control: max-age=0
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: sec-ch-ua: "Chromium";v="107", "Not=A?Brand";v="24"
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: sec-ch-ua-mobile: ?0
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: sec-ch-ua-platform: "Linux"
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Upgrade-Insecure-Requests: 1
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Sec-Fetch-Site: none
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Sec-Fetch-Mode: navigate
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Sec-Fetch-User: ?1
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Sec-Fetch-Dest: document
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Accept-Encoding: gzip, deflate, br
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: Accept-Language: en-US,en;q=0.9
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_request_header: 
[FINEST] [0.4 fd=105 cfd=108] prototcp_bev_writecb_src_child: ENTER
[FINEST] [0.4 fd=105 cfd=108] prototcp_bev_writecb_dst_child: ENTER
[FINEST] [0.4 fd=105 cfd=108] protohttp_bev_readcb_dst_child: ENTER, size=155
[FINEST] [0.4 fd=105 cfd=108] protohttp_bev_readcb_dst_child: HTTP Response Header, size=155
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_response_header: HTTP/1.0 200 OK
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_response_header: Server: SimpleHTTP/0.6 Python/3.10.6
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_response_header: Date: Tue, 08 Nov 2022 10:06:38 GMT
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_response_header: Content-type: text/html; charset=utf-8
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_response_header: Content-Length: 605
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_response_header: 
[FINEST] [0.4 fd=105 cfd=108] prototcp_bev_writecb_src_child: ENTER
[FINEST] [0.4 fd=105 cfd=108] prototcp_bev_eventcb_eof_src_child: ENTER
evbuffer size at EOF: i:0 o:0 i:0 o:0
[FINEST] [0.4 fd=105 cfd=108] prototcp_bev_eventcb_eof_src_child: !dst.closed, terminate conn
[FINEST] [0.4 fd=105 cfd=108] pxy_try_close_conn_end: outbuflen == 0, terminate conn
[FINER] [0.4 fd=105 cfd=108] protossl_bufferevent_free_and_close_fd: in=0, out=0, fd=106
SSL_free() in state 00000001 = 0001 = SSLOK (SSL negotiation finished successfully) [connect socket]
[FINER] [0.4 fd=105 cfd=108] protossl_bufferevent_free_and_close_fd: fd=106, SSL_free() in state 00000001 = 0001 = SSLOK (SSL negotiation finished successfully) [connect socket]
[FINER] [0.4 fd=105 cfd=108] prototcp_bufferevent_free_and_close_fd: in=0, out=0, fd=109
[FINEST] [0.4 fd=105 cfd=108] pxy_try_disconnect_child: other->closed, terminate conn
Child HTTPS disconnected to [10.150.97.248]:8443, child fd=109, fd=105
Child HTTPS disconnected from [10.150.97.247]:44342, child fd=109, fd=105
[FINEST] [0.4 fd=105 cfd=108] pxy_conn_term_child: ENTER
[FINEST] [0.4 fd=105 cfd=108] pxy_conn_free_child: ENTER
[FINEST] [0.4 fd=105 cfd=108] pxy_conn_detach_child: Removing child conn
[FINEST] [0.4 fd=105 cfd=108] pxy_conn_detach_child: Cannot find child in conn children, empty
[FINEST] [0.4 fd=105 cfd=108] pxy_conn_ctx_free_child: ENTER
[FINEST] [0.4 fd=105 cfd=108] pxy_conn_free_children: ENTER
[FINER] [0.4 fd=105 cfd=108] pxy_conn_free_children: Freeing child_evcl, children fd=-1
[FINEST] [0.4 fd=105 cfd=108] protohttp_bev_readcb_dst: ENTER, size=155
[FINEST] [0.4 fd=105 cfd=108] protohttp_bev_readcb_dst: HTTP Response Header, size=155
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_response_header: HTTP/1.0 200 OK
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_response_header: Server: SimpleHTTP/0.6 Python/3.10.6
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_response_header: Date: Tue, 08 Nov 2022 10:06:38 GMT
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_response_header: Content-type: text/html; charset=utf-8
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_response_header: Content-Length: 605
[FINEST] [0.4 fd=105 cfd=108] protohttp_filter_response_header: 
CONN: https 10.150.97.247 44342 10.150.97.248 8443 10.150.97.248:8443 GET / 200 605 sni:- names:tr sproto:TLSv1.3:TLS_AES_128_GCM_SHA256 dproto:TLSv1.3:TLS_AES_256_GCM_SHA384 origcrt:87972C90A0E1F0C789959B4AF43B11BE1083AEEF usedcrt:D8759925B5C1A5FD7C406993E1080868017B05CE user:-
[FINEST] [0.4 fd=105 cfd=108] prototcp_bev_eventcb_eof_dst: ENTER
evbuffer size at EOF: i:0 o:0 i:0 o:0
[FINEST] [0.4 fd=105 cfd=108] prototcp_bev_eventcb_eof_dst: !src.closed, terminate conn
[FINEST] [0.4 fd=105 cfd=108] pxy_try_close_conn_end: outbuflen == 0, terminate conn
[FINER] [0.4 fd=105 cfd=108] protossl_bufferevent_free_and_close_fd: in=0, out=0, fd=105
SSL_free() in state 00000001 = 0001 = SSLOK (SSL negotiation finished successfully) [accept socket]
[FINER] [0.4 fd=105 cfd=108] protossl_bufferevent_free_and_close_fd: fd=105, SSL_free() in state 00000001 = 0001 = SSLOK (SSL negotiation finished successfully) [accept socket]
[FINER] [0.4 fd=105 cfd=108] prototcp_bufferevent_free_and_close_fd: in=0, out=0, fd=107
[FINEST] [0.4 fd=105 cfd=108] pxy_try_disconnect: other->closed, terminate conn
HTTPS disconnected to [10.150.97.248]:8443, fd=105
HTTPS disconnected from [10.150.97.247]:44342, fd=105
[FINEST] [0.4 fd=105 cfd=108] pxy_conn_term: ENTER
[FINEST] [0.4 fd=105 cfd=108] pxy_conn_free: ENTER
[FINEST] [0.4 fd=105 cfd=108] pxy_conn_free_children: ENTER
[FINEST] [0.4 fd=105 cfd=108] pxy_conn_ctx_free: ENTER
[FINEST] [0.4 fd=105 cfd=108] pxy_thr_detach: Removing conn
[FINEST] [0.4 fd=105 cfd=108] pxy_thr_detach: Cannot find conn in thr conns, empty

SSLPROXY.conf

ProxySpec {
    Proto https
    Addr 0.0.0.0       # inline
    Port 8443       # comments
    DivertPort 8080 # allowed
    CACert ca.crt
#    Divert no
#    Passthrough yes
#    TargetAddr 127.0.0.1
#    TargetPort 5555
    CAKey ca.key
    VerifyPeer no
}

Sysctl:

sysctl net.ipv4.conf.all.forwarding=1
sysctl net.ipv4.conf.enp0s25.forwarding=1
#sysctl net.ipv4.conf.lo.forwarding = 0
sysctl net.ipv4.ip_forward=1

route

added route for client to pass on mitm device,
added route for server to pass on mitm device.

Chrome and firefox ss will be provided in comment.

barisunsalhn commented 1 year ago

Screenshot from 2022-11-08 10-12-31 Screenshot from 2022-11-08 10-13-09

barisunsalhn commented 1 year ago

Solved it:

import socket, traceback, time

HOST = ''
PORT = 8080
CLRF = '\r\n'

class InvalidRequest(Exception):
    pass

class Request(object):
    "A simple http request object"

    def __init__(self, raw_request):
        self._raw_request = raw_request

        self._respomse = self.parse_request()

    def parse_request(self):
        "Turn basic request headers in something we can use"
        temp = [i.strip() for i in self._raw_request.splitlines()]

        if -1 == str(temp[0]).find('HTTP'):
            raise InvalidRequest('Incorrect Protocol')
        startOfPort = temp[1].find(":",9)+1
        #portC= temp[1][startOfPort]
        endOfPort = temp[1].find(",")
        portC = temp[1][startOfPort:endOfPort]
        clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
        clientSocket.connect(("127.0.0.1",int(portC)));
        clientSocket.sendall(str.encode(self._raw_request));
        #time.sleep(0.001)
        data = bytearray()
        while True:
            data_chunk = clientSocket.recv(1024)
            if data_chunk:
                data.extend(data_chunk)
            else:
                break
        #dataR = clientSocket.recv(40960);
        dataRDecoded = bytes(data).decode()
        if dataRDecoded.find("HTTP/1.0 200") ==0:
            clientSocket.close()
            return data
        clientSocket.close()

        return 1

    def __repr__(self):
        return repr({'method': self._method, 'path': self._path, 'protocol': self._protocol, 'headers': self._headers})

# the actual server starts here
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.listen(5)

while True:
    try:
        clientsock, clientaddress = s.accept()
    except KeyboardInterrupt:
        raise
    except:
        traceback.print_exc()

    try:
        request = clientsock.recv(1024)
        request = Request(request.decode('utf-8'))
        clientsock.send(request._respomse)
    except(KeyboardInterrupt, SystemExit):
        raise
    except InvalidRequest:
        clientsock.send('HTTP/1.1 400 Bad Request' + CLRF)
        clientsock.send('Content-Type: text/html' + CLRF*2)
        clientsock.send('<h1>Invalid Request: %s</h1>' )
    except:
        traceback.print_exc()

    try:
        clientsock.close()
    except KeyboardInterrupt:
        raise
    except:
        traceback.print_exc()