Как декодировать RAW-загрузку пакета python scapy

Я пытался декодировать эти типы пакетов в течение некоторого времени, я провел обширное исследование, но не смог «декодировать» определенные scapy-пакеты. Я тестировал свою сеть, затем смотрел результаты в scapy и получал эти закодированные части пакетов на уровне RAW. Ниже приведен один из них. Кто-нибудь знает, как перевести это в простой читаемый человеческий текст?

Загрузочная часть пакета RAW:

<Raw  load="\x17\x03\x03\x01\x1d\x00\x00\x00\x00\x00\x00\x00\x15\xc1\r\xe9\x83\\\xef\x9cvj\x02\x03\xde\x10m8\x9b\xda;8\xa5\xc2\x8eB\xafi\xc0\x1f\xba\xc95\x04\xdb\xd1\xd4,\x04\xcc\x1f/\xb8'\xa5\xd02\xe0dj'\xbd\x96\xdd\xf7\x1bL\xc4\x88<\x83\x81y\xe0\x02L\xc31\xe9\xdb\x15!x8\xf3\xb3\xd3J\x01\xf9]\x93\x12\xeec\xdcY\x81H\x08=.\xf3,\x145\x9cH\r\xa3RE\x99\xef_I\xd4+\x03\\@\xc5\x92\xcc\xe3<N\xad\xad\xbfj\xbb\xca\x93\x15VV\x84\x83\xd6\xeb\xb4 \x8e\xd4\x0fm\xcf\xb7\xe9\x11\xd7\x01\xa3\x9c\x84\x02@j\x96\x80{\xae{\x13\x8b\x9em\x14\x04\xa8\xbf\xdcY\xe6+\x8e\xe18\xb4\x02\xe4E\x8eZ\x80;\xf6I;\xe8\n\x1e\x92F\xf2TBp\xd6\xd6\xfa.\xb9pp;sS\x11l\xd9#\x1dOJ\xad\xd8E\xf1_\x1e\xcc\r\x9b1\x81\xa1H\xe1\xfd\xe9@\x91\xfd\xd7|G-\x08\x94>Fw\x9f]g\x97\xe4,\xc8\x8f\x89\x10\xb7\xb5\xec\xe2\x1cL'\xdd:#\x8e\x9b?\xa0\x1aA\xfez\xe9:\xbe\xe1\x96QW\x98\\\x9c\x10vve&\xe6\x93C" |>>>>

person John Doe    schedule 29.12.2017    source источник


Ответы (1)


Вероятно, это пакет SSL/TLS. Если вы используете последнюю версию Scapy, вы можете загрузить слой "tls" и проанализировать ваши данные:

>>> data = b"\x17\x03\x03\x01\x1d\x00\x00\x00\x00\x00\x00\x00\x15\xc1\r\xe9\x83\\\xef[...]"
>>> load_layer('tls')
>>> TLS(data)
<TLS  type=application_data version=TLS 1.2 len=285 iv='' msg=[<TLSApplicationData  data="[...]" |>] padlen=None |>

Как вы можете видеть, кроме трех декодированных полей (тип пакета TLS, версия TLS и длина данных), нет ничего, что вы могли бы «перевести [...] в простой читаемый человеком текст», поскольку это фактически зашифровано. Для этого вам понадобится сеансовый ключ для расшифровки сообщений.

person Pierre    schedule 29.12.2017
comment
Спасибо, 2 вопроса, один. Когда я набираю TLS после загрузки слоя tls, я получаю сообщение об ошибке: Traceback (последний последний вызов): файл ‹console›, строка 1, в ‹module› NameError: name 'TLS' is not определено, и мой второй вопрос заключается в том, как мне получить сеансовый ключ, и как только я это сделаю, как мне расшифровать трафик? - person John Doe; 31.12.2017
comment
Это два разных вопроса, которые следует задавать как таковые. Это не то, как комментарии должны использоваться. - person Pierre; 31.12.2017
comment
плюс 1 за способ использовать конструкторы Scapy, о которых я не думал! - person David Hoelzer; 31.12.2017