Выпуск HTTPS-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Mitmproxy 11 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ HTTP/3

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Ρ€Π΅Π»ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Mitmproxy 11, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ инструмСнтарий для ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ соСдинСний, установлСнных ΠΏΠΎ HTTPS, с возмоТностями инспСктирования, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ воспроизвСдСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Mitmproxy являСтся организация отслСТивания Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… систСмах ΠΈ диагностика ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, выявлСниС скрытой сСтСвой активности ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ тСксты ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написаны Π½Π° языкС Python ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT.

Для Π°Π½Π°Π»ΠΈΠ·Π° HTTPS-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Mitmproxy размСщаСтся Π½Π° Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚Π½ΠΎΠΌ ΡƒΠ·Π»Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ запросы ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ транслируСт ΠΈΡ… Π² отправляСмыС ΠΎΡ‚ сСбя запросы ΠΊ Ρ†Π΅Π»Π΅Π²ΠΎΠΌΡƒ сСрвСру. Π‘ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΌ Π² процСссС клиСнтского сСанса сСрвСром Mitmproxy устанавливаСт ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ HTTPS-соСдинСниС, Π° с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ сСрвСра устанавливаСтся Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ соСдинСниС с подставным SSL-сСртификатом, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° Π»Π΅Ρ‚Ρƒ. ΠŸΡ€ΠΈΠ½ΡΡ‚Ρ‹ΠΉ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ пСрСнаправляСтся Ρ†Π΅Π»Π΅Π²ΠΎΠΌΡƒ сСрвСру, Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ.

Выпуск HTTPS-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Mitmproxy 11 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ HTTP/3

Для пСрСнаправлСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· mitmproxy поддСрТиваСтся нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ адрСса mitmproxy Π² качСствС HTTP-прокси Π² настройках Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Ρ€Π°Π±ΠΎΡ‚Π° Π² Π²ΠΈΠ΄Π΅ SOCKS5-прокси, использованиС Π² Ρ€ΠΎΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси ΠΏΠ΅Ρ€Π΅Π΄ HTTP-сСрвСром ΠΈ организация ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ проброса ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΈΠ»ΠΈ заворачивания ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ соСдинСнии с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ подставной сСртификат Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ» ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ соСдинСния, Π² систСму ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ прСдлагаСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ сСртификат mitmproxy, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π² Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ хост mitm.it.

Выпуск HTTPS-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Mitmproxy 11 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ HTTP/3

Mitmproxy ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ HTTP/2, HTTP/3, Websockets, Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ порядка слСдования ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ скриптов-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° Π»Π΅Ρ‚Ρƒ, сохранСниС запросов для дальнСйшСго ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ воспроизвСдСния, Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ TLS-сСртификатов для ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… сСансов, чистку Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ€Π΅ΠΆΠΈΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ проксирования (Reverse proxy) для пСрСнаправлСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° сСрвСр, списки Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… запросов, Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ запросов (Π² Ρ‚ΠΎΠΌ числС для ΠΎΡ‚Π΄Π°Ρ‡ΠΈ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²), ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ содСрТимого ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π½Π° основС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Для Π°Π½Π°Π»ΠΈΠ·Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° прСдлагаСтся похоТая Π½Π° tcpdump ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки mitmdump ΠΈ web-интСрфСйс mitmweb.

Выпуск HTTPS-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Mitmproxy 11 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ HTTP/3
Выпуск HTTPS-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Mitmproxy 11 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ HTTP/3

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии являСтся полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP/3, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ задСйствован ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC (Quick UDP Internet Connections) Π² качСствС транспорта для HTTP/2 (QUIC прСдставляСт собой надстройку Π½Π°Π΄ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ UDP, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… соСдинСний ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, эквивалСнтныС TLS/SSL). Π’ Mitmproxy для HTTP/3 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси. Π Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π΅ HTTP/3 протСстирована Π² Firefox, Chrome ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсиях cURL.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ измСнСния Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ связаны с ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ DNS Π² контСкстС размСщСния Π² DNS записСй для HTTPS ΠΈ ECH (Encrypted Client Hello). Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° запроса DNS-записСй, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ A/AAAA (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ECH информация ΠΎΠ± ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ ΠΊΠ»ΡŽΡ‡Π΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ пСрСдаётся Π² DNS-записи HTTPSSVC). Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ чистки ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ECH ΠΈΠ· HTTPS-записСй Π² DNS. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с DNS осущСствлён ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Hickory, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° языкС Rust ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Let’s Encrypt. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° DNS-over-TCP. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° опция для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ настроСк ΠΈΠ· /etc/hosts.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru