![]() |
|
usable netcat in 99 lines of python - Printable Version +- Sinisterly (https://sinister.li) +-- Forum: Coding (https://sinister.li/Forum-Coding) +--- Forum: Python (https://sinister.li/Forum-Python) +--- Thread: usable netcat in 99 lines of python (/Thread-usable-netcat-in-99-lines-of-python) Pages:
1
2
|
RE: usable netcat in 99 lines of python - Equinox - 08-22-2015 (08-22-2015, 08:53 PM)lola Wrote: Also don't ask me to share some of my code. I'm rewriting your atrocity, I'll post it when I'm done. For someone who is bitching about dirtied up code and wanting to clean it, you sure are slow. There's no point in rewriting it, just making it cleaner will suffice. Code: import sys
import socket
import getopt
import threading
import subprocess
l = False
c = False
u = False
e = ""
t = ""
d = ""
p = 0
def RC(C):
C = C.rstrip()
try:
O = subprocess.check_output(C, stderr=subprocess.STDOUT, shell=True)
except:
O = "exe fail\n"
return O
def CH(CS):
global u,e,c
if len(d):
fb = ""
while True:
da = CS.recv(1024)
if not da:
break
else:
fb += da
try:
file_descriptor = open(d, "wb")
file_descriptor.write(fb)
filedescriptor.close()
CS.send("Pass %s\n" % d)
except:
CS.send("Fail %s\n" % d)
if len(e):
op=RC(e)
CS.send(op)
if c:
while True:
CS.send(": ")
cb = ""
while "\n" not in cb:
cb += CS.recv(1024)
r = RC(cb)
CS.send(r)
def SL():
global t,p
if not len(t):
t = "0.0.0.0"
S = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
S.bind((t, p))
S.listen(5)
while True:
client_socket, addr = S.accept()
client_thread = threading.Thread(target=CH, args=(client_socket,))
client_thread.start()
def sn(bu):
cl = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
cl.connect((t,p))
if len(bu):
cl.send(bu)
while True:
recv_len=1
re = ""
while recv_len:
da = cl.recv(4096)
recv_len = len(da)
re += da
if recv_len < 4096:
break
print re,
bu=raw_input("")
bu+="\n"
cl.send(bu)
except:
print "Excpt"
cl.close()
def use():
print "Use: nc.py -t target_host -p port"
print "-l listen"
print "-e exec=file"
print "-c command"
print "-u upload=path"
sys.exit(0)
def main():
global l,p,e,c,d,t
if not len(sys.argv[1:]):
use()
try:
opts, args=getopt.getopt(sys.argv[1:], "hle:t:p:cu:")
except getopt.GetoptError as err:
print str(err)
use()
for o, a in opts:
if o in ("-h"):
use()
elif o in ("-l"):
l = True
elif o in ("-e"):
e = a
elif o in ("-c"):
c = True
elif o in ("-u"):
d = a
elif o in ("-t"):
t = a
elif o in ("-p"):
p = int(a)
else:
assert False, "bad option"
if not l and len(t) and p > 0:
bu = sys.stdin.read()
sn(bu)
if l:
SL()
main()RE: usable netcat in 99 lines of python - lola - 08-22-2015 (08-22-2015, 09:41 PM)Stocking Wrote: For someone who is bitching about dirtied up code and wanting to clean it, you sure are slow. There's no point in rewriting it, just making it cleaner will suffice. I already had cleaned it up before I posted in this thread, way ahead of you. I'm completely rewriting it. RE: usable netcat in 99 lines of python - Equinox - 08-22-2015 (08-22-2015, 09:44 PM)lola Wrote: I already had cleaned it up before I posted in this thread, way ahead of you. I'm completely rewriting it. I had to run and do some errands, I just got back and did that. RE: usable netcat in 99 lines of python - Dyme - 08-22-2015 https://github.com/infodox/python-pty-shells RE: usable netcat in 99 lines of python - A5^ - 08-22-2015 Code: l = False
c = False
u = False
e = ""
t = ""
d = ""
p = 0what is optparse |