Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ блиТайшиС ΡƒΠ·Π»Ρ‹ Π² сСти

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ блиТайшиС ΡƒΠ·Π»Ρ‹ Π² сСти

Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ влияниС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ сСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с ΡΠ΅Ρ‚ΡŒΡŽ. Π§Π΅ΠΌ мСньшС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ справСдливо для любого сСтСвого сСрвиса, начиная ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ сайта ΠΈ заканчивая Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ сСтСвым Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ слуТит систСма Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ (DNS). DNS ΠΏΠΎ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ своСй являСтся распрСдСлСнной систСмой, ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ разбросаны ΠΏΠΎ всСй ΠΏΠ»Π°Π½Π΅Ρ‚Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ просто Π·Π°ΠΉΡ‚ΠΈ Π½Π° любой сайт, сначала Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ IP-адрСс.

Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ вСсь процСсс рСкурсивного ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° ΠΏΠΎ β€œΠ΄Π΅Ρ€Π΅Π²Ρƒβ€ Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Ρ… Π·ΠΎΠ½, Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΡΡŒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ для прСобразования Π΄ΠΎΠΌΠ΅Π½Π° Π² IP-адрСс Π½Π°ΠΌ трСбуСтся DNS Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ всю эту Ρ€Π°Π±ΠΎΡ‚Ρƒ Π·Π° нас.

Π˜Ρ‚Π°ΠΊ, Π³Π΄Π΅ ΠΆΠ΅ Π²Π·ΡΡ‚ΡŒ адрСс DNS Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€Π°?

  1. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ прСдоставляСт адрСс своСго DNS Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€Π°.
  2. Найти Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ адрСс ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€Π°.
  3. ΠŸΠΎΠ΄Π½ΡΡ‚ΡŒ свой ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный Π² ваш домашний Ρ€ΠΎΡƒΡ‚Π΅Ρ€.

Π›ΡŽΠ±ΠΎΠΉ ΠΈΠ· этих Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π±Π΅Π·Π·Π°Π±ΠΎΡ‚Π½Ρ‹ΠΌ сСрфингом ΠΏΠΎ всСмирной ΠΏΠ°ΡƒΡ‚ΠΈΠ½Π΅, Π½ΠΎ Ссли Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ большоС количСство Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π² IP, Ρ‚ΠΎ ΠΊ Π²Ρ‹Π±ΠΎΡ€Ρƒ Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€Π° стоит ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Как я ΡƒΠΆΠ΅ писал, ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°, сущСствуСт мноТСство ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… адрСсов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π²ΠΎΡ‚ с этим списком. НСкоторыС ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠΌΠ΅ΡŽΡ‚ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€ β€œΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽβ€.

Когда список нСбольшой, Ρ‚ΠΎ Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ β€œΠΏΡ€ΠΎΠΏΠΈΠ½Π³ΠΎΠ²Π°Ρ‚ΡŒβ€ Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ врСмя Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ, Π½ΠΎ Ссли хотя Π±Ρ‹ Π²Π·ΡΡ‚ΡŒ список, упомянутый Π²Ρ‹ΡˆΠ΅, Ρ‚ΠΎ это занятиС ΡƒΠΆΠ΅ становится малоприятным.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для облСгчСния этой Π·Π°Π΄Π°Ρ‡ΠΈ, я прСисполнСнный синдромом самозванца набросал Π½Π° Go proof-of-concept своСй ΠΈΠ΄Π΅ΠΈ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ get-closer.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° я Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ вСсь список Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€ΠΎΠ², Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΡΡŒ лишь Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярными.

$ get-closer ping -f dnsresolver.txt -b=0 --count=10
Closest hosts:
	1.0.0.1 [3.4582ms]
	8.8.8.8 [6.7545ms]
	1.1.1.1 [12.6773ms]
	8.8.4.4 [16.6361ms]
	9.9.9.9 [40.0525ms]

Π’ своё врСмя, ΠΊΠΎΠ³Π΄Π° я Π²Ρ‹Π±ΠΈΡ€Π°Π» для сСбя Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€, Ρ‚ΠΎ ограничивался лишь ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ основных адрСсов (1.1.1.1, 8.8.8.8, 9.9.9.9),- вСдь ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ красивыС, Π΄Π° ΠΈ Ρ‡Π΅Π³ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… нСкрасивых адрСсов.

Но Ρ€Π°Π· появился Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ способ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, Ρ‚ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ список…

Как ΠΏΠΎΠΊΠ°Π·Π°Π» тСст, ΠΌΠ½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ большС β€œΡ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉβ€ адрСс Cloudflare, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π²ΠΎΡ‚ΠΊΠ½ΡƒΡ‚ Π² spb-ix, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ для мСня Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±Π»ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ msk-ix, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΡ‚ΠΊΠ½ΡƒΡ‚ красивый 1.1.1.1

Π Π°Π·Π½ΠΈΡ†Π°, ΠΊΠ°ΠΊ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, сущСствСнная, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ самому быстрому Π»ΡƒΡ‡ΠΈΠΊΡƒ свСта Π½Π΅ удаСтся Π΄ΠΎΠ±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΈΠ· ΠŸΠΈΡ‚Π΅Ρ€Π° Π΄ΠΎ ΠœΠΎΡΠΊΠ²Ρ‹ мСньшС Ρ‡Π΅ΠΌ Π·Π° 10 мс.

Помимо простого ΠΏΠΈΠ½Π³Π°, Π² PoC Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ http ΠΈ tcp, Π° Ρ‚Π°ΠΊΠΆΠ΅ врСмя прСобразования Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π² IP Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€.

Π’ ΠΏΠ»Π°Π½Π°Ρ… Π΅ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ количСства ΡƒΠ·Π»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ хостами ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ traceroute, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ хосты, Π΄ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… имССтся Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΡƒΡ‚ΡŒ.

Код сырой, Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΊΡƒΡ‡ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ, Π½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ сносно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° чистых Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΡƒΠ΄Ρƒ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚Π΅Π»Π΅Π½ Π·Π° любой Ρ„ΠΈΠ΄Π±Π΅ΠΊ, Π·Π²Π΅Π·Π΄Ρ‹ Π½Π° Π³ΠΈΡ‚Ρ…Π°Π±Π΅, Π° Ссли ΠΊΠΎΠΌΡƒ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ идСя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ Π²Π΅Π»ΠΊΠ°ΠΌ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€Ρ‹.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ