-
-
Save weiyang-github/f8b94d29b86caba902631c7b87654e83 to your computer and use it in GitHub Desktop.
Revisions
-
WangYihang revised this gist
Oct 12, 2017 . 1 changed file with 12 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -13,7 +13,7 @@ def handle(buffer): return buffer def transfer(src, dst, direction): src_name = src.getsockname() src_address = src_name[0] src_port = src_name[1] @@ -26,11 +26,16 @@ def transfer(src, dst): print "[-] No data received! Breaking..." break # print "[+] %s:%d => %s:%d [%s]" % (src_address, src_port, dst_address, dst_port, repr(buffer)) if direction: print "[+] %s:%d >>> %s:%d [%d]" % (src_address, src_port, dst_address, dst_port, len(buffer)) else: print "[+] %s:%d <<< %s:%d [%d]" % (dst_address, dst_port, src_address, src_port, len(buffer)) dst.send(handle(buffer)) print "[+] Closing connecions! [%s:%d]" % (src_address, src_port) src.shutdown(socket.SHUT_RDWR) src.close() print "[+] Closing connecions! [%s:%d]" % (dst_address, dst_port) dst.shutdown(socket.SHUT_RDWR) dst.close() @@ -50,17 +55,20 @@ def server(local_host, local_port, remote_host, remote_port, max_connection): print "[+] Tunnel connected! Tranfering data..." # threads = [] s = threading.Thread(target=transfer, args=( remote_socket, local_socket, False)) r = threading.Thread(target=transfer, args=( local_socket, remote_socket, True)) # threads.append(s) # threads.append(r) s.start() r.start() print "[+] Releasing resources..." remote_socket.shutdown(socket.SHUT_RDWR) remote_socket.close() local_socket.shutdown(socket.SHUT_RDWR) local_socket.close() print "[+] Closing server..." server_socket.shutdown(socket.SHUT_RDWR) server_socket.close() print "[+] Server shuted down!" -
WangYihang revised this gist
Oct 11, 2017 . 1 changed file with 9 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -12,6 +12,7 @@ def handle(buffer): return buffer def transfer(src, dst): src_name = src.getsockname() src_address = src_name[0] @@ -38,8 +39,8 @@ def server(local_host, local_port, remote_host, remote_port, max_connection): server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server_socket.bind((local_host, local_port)) server_socket.listen(max_connection) print '[+] Server started [%s:%d]' % (local_host, local_port) print '[+] Connect to [%s:%d] to get the content of [%s:%d]' % (local_host, local_port, remote_host, remote_port) while True: local_socket, local_address = server_socket.accept() print '[+] Detect connection from [%s:%s]' % (local_address[0], local_address[1]) @@ -48,8 +49,10 @@ def server(local_host, local_port, remote_host, remote_port, max_connection): remote_socket.connect((remote_host, remote_port)) print "[+] Tunnel connected! Tranfering data..." # threads = [] s = threading.Thread(target=transfer, args=( remote_socket, local_socket,)) r = threading.Thread(target=transfer, args=( local_socket, remote_socket,)) # threads.append(s) # threads.append(r) s.start() @@ -61,6 +64,7 @@ def server(local_host, local_port, remote_host, remote_port, max_connection): server_socket.close() print "[+] Server shuted down!" def main(): if len(sys.argv) != 5: print "Usage : " @@ -77,5 +81,6 @@ def main(): MAX_CONNECTION = 0x10 server(LOCAL_HOST, LOCAL_PORT, REMOTE_HOST, REMOTE_PORT, MAX_CONNECTION) if __name__ == "__main__": main() -
WangYihang revised this gist
Oct 11, 2017 . 1 changed file with 53 additions and 36 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -6,21 +6,11 @@ import socket import threading import sys def handle(buffer): return buffer def transfer(src, dst): src_name = src.getsockname() @@ -30,35 +20,62 @@ def transfer(src, dst): dst_address = dst_name[0] dst_port = dst_name[1] while True: buffer = src.recv(0x400) if len(buffer) == 0: print "[-] No data received! Breaking..." break # print "[+] %s:%d => %s:%d [%s]" % (src_address, src_port, dst_address, dst_port, repr(buffer)) print "[+] %s:%d => %s:%d => Length : [%d]" % (src_address, src_port, dst_address, dst_port, len(buffer)) dst.send(handle(buffer)) print "[+] Closing connecions! [%s:%d]" % (src_address, src_port) src.close() print "[+] Closing connecions! [%s:%d]" % (dst_address, dst_port) dst.close() def server(local_host, local_port, remote_host, remote_port, max_connection): server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server_socket.bind((local_host, local_port)) server_socket.listen(max_connection) print '[+] Server started [%s:%d]' %(local_host, local_port) print '[+] Connect to [%s:%d] to get the content of [%s:%d]' %(local_host, local_port, remote_host, remote_port) while True: local_socket, local_address = server_socket.accept() print '[+] Detect connection from [%s:%s]' % (local_address[0], local_address[1]) print "[+] Trying to connect the REMOTE server [%s:%d]" % (remote_host, remote_port) remote_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) remote_socket.connect((remote_host, remote_port)) print "[+] Tunnel connected! Tranfering data..." # threads = [] s = threading.Thread(target=transfer,args=(remote_socket, local_socket,)) r = threading.Thread(target=transfer,args=(local_socket, remote_socket,)) # threads.append(s) # threads.append(r) s.start() r.start() print "[+] Releasing resources..." remote_socket.close() local_socket.close() print "[+] Closing server..." server_socket.close() print "[+] Server shuted down!" def main(): if len(sys.argv) != 5: print "Usage : " print "\tpython %s [L_HOST] [L_PORT] [R_HOST] [R_PORT]" % (sys.argv[0]) print "Example : " print "\tpython %s 127.0.0.1 8888 127.0.0.1 22" % (sys.argv[0]) print "Author : " print "\tWangYihang <[email protected]>" exit(1) LOCAL_HOST = sys.argv[1] LOCAL_PORT = int(sys.argv[2]) REMOTE_HOST = sys.argv[3] REMOTE_PORT = int(sys.argv[4]) MAX_CONNECTION = 0x10 server(LOCAL_HOST, LOCAL_PORT, REMOTE_HOST, REMOTE_PORT, MAX_CONNECTION) if __name__ == "__main__": main() -
WangYihang revised this gist
Oct 11, 2017 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -13,12 +13,12 @@ REMOTE_HOST = "192.168.187.130" REMOTE_PORT = 80 MAX_CONNECTION = 0x100 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server_socket.bind((LOCAL_HOST, LOCAL_PORT)) server_socket.listen(MAX_CONNECTION) print '[+] Server started [%s:%d]' %(LOCAL_HOST, LOCAL_PORT) -
WangYihang created this gist
Oct 11, 2017 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,64 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # Tcp Port Forwarding (Reverse Proxy) # Author : WangYihang <[email protected]> import socket import threading LOCAL_HOST = "127.0.0.1" LOCAL_PORT = 8888 REMOTE_HOST = "192.168.187.130" REMOTE_PORT = 80 MAX_socket = 0x100 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server_socket.bind((LOCAL_HOST, LOCAL_PORT)) server_socket.listen(MAX_socket) print '[+] Server started [%s:%d]' %(LOCAL_HOST, LOCAL_PORT) def transfer(src, dst): src_name = src.getsockname() src_address = src_name[0] src_port = src_name[1] dst_name = dst.getsockname() dst_address = dst_name[0] dst_port = dst_name[1] while True: buffer = src.recv(0x100) if len(buffer) == 0: print "[-] No data received! Breaking..." break print "[+] %s:%d => %s:%d [%s]" % (src_address, src_port, dst_address, dst_port, repr(buffer)) dst.send(buffer) print "[+] Closing connecions! [%s:%d]" % (src_address, src_port) src.close() print "[+] Closing connecions! [%s:%d]" % (dst_address, dst_port) dst.close() while True: local_socket, local_address = server_socket.accept() # print '[+] Detect connection from [%s]' % local_address print "[+] Trying to connect the REMOTE server [%s:%d]" % (REMOTE_HOST, REMOTE_PORT) remote_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) remote_socket.connect((REMOTE_HOST, REMOTE_PORT)) print "[+] Tunnel connected! Tranfering data..." # threads = [] s = threading.Thread(target=transfer,args=(remote_socket, local_socket,)) r = threading.Thread(target=transfer,args=(local_socket, remote_socket,)) # threads.append(s) # threads.append(r) s.start() r.start() print "[+] Releasing resources..." remote_socket.close() local_socket.close() print "[+] Closing server..." server_socket.close() print "[+] Server shuted down!"