From 621192998e2aef51b5ba188490b8f2d044beff9a Mon Sep 17 00:00:00 2001 From: Harshil Date: Mon, 16 Apr 2018 06:56:53 +0200 Subject: [PATCH] basic client-server implementation --- server.py | 43 ---------------------------------- simple-client-server/README.md | 6 +++++ simple-client-server/client.py | 14 +++++++++++ simple-client-server/server.py | 21 +++++++++++++++++ 4 files changed, 41 insertions(+), 43 deletions(-) delete mode 100644 server.py create mode 100644 simple-client-server/README.md create mode 100644 simple-client-server/client.py create mode 100644 simple-client-server/server.py diff --git a/server.py b/server.py deleted file mode 100644 index 578c24285..000000000 --- a/server.py +++ /dev/null @@ -1,43 +0,0 @@ -# all imports - including #s -import socket -#import os -#import sys -#import subprocess -# end of imports -# the below classes will clarify what information is for the attacker and client -class Termrequire: - host = socket.gethostname() - port = 3333 # fake numeral for the moment -class Clientrequire: - host = socket.gethostname() - port = 2222 # fake numeral for the moment -#CORE REQUIREMENTS OF PROGRAM: -### host ip = server ip -### potential connection hosts info (host, port) -### user.config -### user.config -# using SERVER for connections and linux meterpreter sessions -# SERVER DETAILS: - #5 client availability for pivoting #although that is not yet available in a regular form of - #exploitation - we have to go with what we have. - -# #learnmore - USER_CONFIG -# server ip will be displayed every connection at version 2.0 -# terminal attacker socket object creation -t = socket.socket(socket.AF_INET, socket.SOCK_STREAM) -# terminal attacker socket binding -t.bind() -# terminal attacker socket listen -t.listen() -# client socket object creation -s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) -# binding information with s.bind method -s.bind() -#listening for connections with s.listen method -s.listen(1) -# server_functionality waits for terminal shell and then gets client information connectivity -def func4client(): - s.accept() -# terminal functionality for attacker - I will definitely customize it soon. Maybe tkinter? -def func4term(): - t.accept() \ No newline at end of file diff --git a/simple-client-server/README.md b/simple-client-server/README.md new file mode 100644 index 000000000..f51947f21 --- /dev/null +++ b/simple-client-server/README.md @@ -0,0 +1,6 @@ +# simple client server + +#### Note: +- Run **`server.py`** first. +- Now, run **`client.py`**. +- verify the output. diff --git a/simple-client-server/client.py b/simple-client-server/client.py new file mode 100644 index 000000000..c91e6233a --- /dev/null +++ b/simple-client-server/client.py @@ -0,0 +1,14 @@ +# client.py + +import socket + +HOST, PORT = '127.0.0.1', 1400 + +s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +s.connect((HOST, PORT)) + +s.send(b'Hello World') +data = s.recv(1024) + +s.close() +print(repr(data.decode('ascii'))) diff --git a/simple-client-server/server.py b/simple-client-server/server.py new file mode 100644 index 000000000..c6b661d99 --- /dev/null +++ b/simple-client-server/server.py @@ -0,0 +1,21 @@ +# server.py + +import socket + +HOST, PORT = '127.0.0.1', 1400 + +s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +s.bind((HOST, PORT)) +s.listen(1) + +conn, addr = s.accept() + +print('connected to:', addr) + +while 1: + data = conn.recv(1024) + if not data: + break + conn.send(data + b' [ addition by server ]') + +conn.close()