ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π΅ ΡΠ΅Π»ΠΈΠ·ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Mitmproxy 11, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΏΡΠΈΡ Π²Π°ΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ Π² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½ΠΈ ΠΏΠΎ HTTPS, Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡ, ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ΅Π» Π½Π° Mitmproxy Π΅ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° Π² ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΡΠΈΡΠ° ΠΌΡΠ΅ΠΆΠΎΠ²Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Python ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Ρ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ MIT.
ΠΠ° Π°Π½Π°Π»ΠΈΠ· Π½Π° HTTPS ΡΡΠ°ΡΠΈΠΊΠ° Mitmproxy ΡΠ΅ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π° Π½Π° ΡΡΠ°Π½Π·ΠΈΡΠ΅Π½ Π²ΡΠ·Π΅Π», Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΡ Π²Π°ΡΠ° ΠΈΡΠΊΠ°Π½ΠΈΡΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π³ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π° ΠΊΠ°ΡΠΎ ΡΠ²ΠΎΠΈ ΠΈΡΠΊΠ°Π½ΠΈΡ ΠΊΡΠΌ ΡΠ΅Π»Π΅Π²ΠΈΡ ΡΡΡΠ²ΡΡ. Π‘ ΠΈΡΠΊΠ°Π½ΠΈΡ ΡΡΡΠ²ΡΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½ Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°ΡΠ° ΡΠ΅ΡΠΈΡ, Mitmproxy ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° HTTPS Π²ΡΡΠ·ΠΊΠ°, Π° Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ΅Π»Π΅Π²ΠΈΡ ΡΡΡΠ²ΡΡ ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° ΡΠ°Π»ΡΠΈΠ²Π° Π²ΡΡΠ·ΠΊΠ° Ρ ΠΏΠΎΠ΄ΠΌΠ΅Π½Π΅Π½ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΡΠΈΠ΅ΡΠΈΡΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΡΠ°ΡΠΈΠΊ ΡΠ΅ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π° ΠΊΡΠΌ ΡΠ΅Π»Π΅Π²ΠΈΡ ΡΡΡΠ²ΡΡ, Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.

ΠΠ° ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠ΅Π· mitmproxy ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠ°ΡΠΎ ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π°Π΄ΡΠ΅ΡΠ° Π½Π° mitmproxy ΠΊΠ°ΡΠΎ HTTP ΠΏΡΠΎΠΊΡΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° Π±ΡΠ°ΡΠ·ΡΡΠ°, ΡΠ°Π±ΠΎΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° SOCKS5 ΠΏΡΠΎΠΊΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΡΠΎΠ»ΡΡΠ° Π½Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ ΠΏΡΠΎΠΊΡΠΈ ΠΏΡΠ΅Π΄ HTTP ΡΡΡΠ²ΡΡ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΡΠ°ΡΠ΅Π½ ΠΏΡΠΎΠ±ΠΈΠ² ΡΡΠ΅Π· ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΏΠ°ΠΊΠ΅ΡΠ΅Π½ ΡΠΈΠ»ΡΡΡ ΠΈΠ»ΠΈ Π·Π°Π²ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ. ΠΠ° Π΄Π° Π½Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ ΠΏΠΎΠ΄ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΏΡΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π΄ΠΎ ΠΈΠ·Ρ ΠΎΠ΄ΡΡΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΡ Π±ΡΠ°ΡΠ·ΡΡΠ° ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ° Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ°, Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° ΠΊΠΎΡΠ΅Π½ΠΎΠ²ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π½Π° mitmproxy, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ ΠΊΠ°ΠΊΡΠΎ ΡΡΡΠ½ΠΎ, ΡΠ°ΠΊΠ° ΠΈ ΡΡΠ΅Π· ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π² Π±ΡΠ°ΡΠ·ΡΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ Ρ ΠΎΡΡ mitm.it.

Mitmproxy ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° HTTP/2, HTTP/3, Websockets, Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ΅Π΄Π° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π² ΠΏΠΎΡΠΎΠΊΠ°, ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π·Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΡΠΊΠ°Π½ΠΈΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅, Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° TLS ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ Π·Π° ΠΏΡΠΈΡ Π²Π°ΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠΈΠΈ, ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π·Π°Π³Π»Π°Π²ΠΈΡΡΠ° ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, Π·Π° Π΄Π° ΡΠ΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΎΠ±ΡΠ°ΡΠ΅Π½ ΠΏΡΠΎΠΊΡΠΈ ΡΠ΅ΠΆΠΈΠΌ (Reverse proxy) Π·Π° ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΡΠΌ ΡΡΡΠ²ΡΡΠ°, ΡΠΏΠΈΡΡΡΠΈ Ρ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΎΡΠ³ΠΎΠ²ΠΎΡ), ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ ΠΈ Π·Π°Π³Π»Π°Π²ΠΈΡΡΠ° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ. ΠΠ° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° tcpdump ΠΊΠΎΠΌΠ°Π½Π΄Π½Π° ΡΡΠΈΠ»ΠΈΡΠ° mitmdump ΠΈ ΡΠ΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ mitmweb.


ΠΠ»ΡΡΠΎΠ²ΠΎΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ ΠΏΡΠ»Π½Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° 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
