Outlook Packing Sniffing - > Обмен с использованием MAPI
Я пытаюсь реализовать перехват пакетов для трафика от клиента Outlook на сервер Exchange. Насколько я могу судить, эта связь использует MAPI через HTTPS (Outlook где угодно). Я не думаю, что я использую MAPI поверх RPC.
Трафик выглядит как TLS, который я могу декодировать в wireshark, так как у меня загружен соответствующий сертификат. Я не могу просмотреть исходное содержимое письма, отправленного во время теста, оно все еще закодировано.
Как я могу декодировать сообщения, чтобы я мог читать исходный контент в виде обычного текста?
Я создаю временные файлы для каждого потока, который обрабатывается, и храню их без чанкования и ssl-декодирования. Пример ниже. Если я просматриваю указанные файлы меньше, они кажутся двоичными:
ОБРАБОТКА
СДЕЛАННЫЙ
X-StartTime: пт, 16 декабря 2016 23:17:12 GMT
X-ElapsedTime: 5
^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ B ^ @ ^ @ ^ @ ^ @ ^ E ^ @<9В>^ В ^ А ^ Е<80><9F>^@^D^D^ С ^ А ^ @ ^ @ ^ @ ^ А ^ А ^ Ctestets)^@ S ^ @ У ^@^Q^@ ч ^@^V^@ р ^ @ ^ @ ^ A ^@^Q^@ ^ B ^ A ^ @ ^ E ^ @ ^ @ ^ O ^ B ^ A ^ C ^ @ ^ @ 9 ^ C ^ @ ^ O ^ C ^ @ ^ E9 ^^ @ ^ X ^ @ ^ X ^ @ ^ @: ^ C ^ @ q: ^ B ^ A ^ @ ^ @ ^ U ^ D ^ A = ^ C ^ @ ^ X ^ A^^ @ 8 ^ @ ^ X ^ @ X ^ @ ^ A` ^^ @ f ^ A ^ A ^ D ^ @ ^ @> ^ D ^ F ^ @ ^ H ^ @ ^ @ ^ @ ^ @ / o = ExchangeLabs / ou ~ ^ @ Administra ^ @ ^ @ ^ @ ^ @ tive Group (FYDIBOHF23SPDLT) / cn = ^ @ ^ @ ^ @ Recipientsi ^ @ cfb4ddc8c1ba4733a3d23 ^ @ ^ @ ^ @ ^ @ 4e1321845da-shayne.civi ^ @ S ^ @ h ^ @ a ^ @ y ^ @ X ^ ^ U ^ @ n ^ @ e ^ @ ^ @ C ^ @ i ^ @ v ^ X ^ @ t<98>^@ r<88>^ @ s ^ X ^ @ ^ @ (^ @ ^^ A<80>. ^ @ c ^ @ ^^ A ^ Q ^ @ ^ @<9D>0 ^ @ ^ @ w ^ @ ^ @ ^ @ ܧ @ B ^ P ^ Z ^ H ^ @ + /<82>* ^ K ^ @ ^ @ O ^ Gh<9D> ^ D ^ D<82>^ A ^ @<80>^ P ^ A ^ @@<87>^ K @ ^ @ w (^ @ ^ @ ^ Zd ^ @ g (^ @) ^ Atx ^ @ o ^ @ k ^ @<89>^ Ao ^ @ m @ ^ B? ^ B ^^ A ^ M ^ M ^ A ^ @ ^ P ^ @ & ^? _ ^ ON<98 > h5 ^ GZ] w<83>~ ^ @ ^ B ^ @ ^ W ^ R ^ K5 ^ Ko ^ C ^ F ^ M / 8 ^ @ = ^ @ E ^ @ x<88>^ @<89>^ Bnz ^ ALH ^ @ b8 ^ A ^ @ u ^ @ i ^ @ A ^ @@ ^ Bm<88>^ Cn ^ X ^ @ s ^ Br ^ @ tX ^ @ v ^ @ Gx ^ @ ^ ApX ^ @ (^ @ Р ^ @ У ^@D^@ Я ^@B^@O^@ BESC^EEHh^@2^@3X^ ГП<98>^@ л ^ @ Т ^@)(^CC8 ^ В =^@R^AI^Fp^X^@<99>^Et^B^@ с ^ @ е<88>^D4GU^CdX^@8^X^@1x^@ а<88>^@7ч ^B3H^@3^@^B4^A18^@2(^@8h^@5^@a^@-X^B^E<8F> ^A^@^@^P^@^@^G<93> ^W^@^Vs l<82>/<8A>MR]Oˌ^Sx^@^@^DUB^V^@^@^L^@^@^@^@^A^C^@^@^A^@^@^@^@
Я прочитал всю документацию https://msdn.microsoft.com/en-us/library/cc425499(v=exchg.80).aspx об этих протоколах, которые смог найти.
РЕДАКТИРОВАТЬ:
С помощью программы под названием fiddler и ее инспекторов Office, в частности MAPIInspector, я могу просматривать почти всю необходимую мне информацию.
https://github.com/OfficeDev/Office-Inspectors-for-Fiddler
Я могу просматривать в виде простого текста: тему, список получателей, информацию об отправителе, имена вложенных файлов, содержимое вложенных файлов и многое другое, но я все еще не могу найти текст сообщения.
Я считаю, что сообщение хранится в: ExecuteRequestBody->ROPBuffer->Payload->ROPList->ROPWriteStreamRequest->Data.
Я считаю, что ROPWriteStreamRequest - это то, что мне нужно.
Содержимое зашифровано и / или запутано. Мне удалось найти алгоритм запутывания для RPC, который равен XOR 0xA5, но я не уверен, делается ли это до или после сжатия. Я подозреваю, что алгоритм сжатия LZ77.
1 ответ
ExecuteRequestBody->ROPBuffer->Payload->ROPList->ROPWriteStreamRequest->Data сохранили содержимое вложения. Содержимое электронной почты хранится в RopSetPropertiesRequest->PropertyValues-> 11-й TaggedPropertyValue (тегом свойства которого является PidTagBodyHtml). Содержание в формате HTML.