Мой интернет-провайдер, похоже, выполняет DNS-запросы MITMing, может кто-нибудь объяснить, как они это делают технически?

Я нажал на это, потому что raw.githubusercontent.com, кажется, заблокирован в моей стране с DNS-серверами 8.8.8.8 или 1.1.1.1, он разрешается до 202.83.21.15, это IP-адрес моего интернет-провайдера, а не raw.githubusercontent.com

      $ dig +dnssec @8.8.8.8 raw.githubusercontent.com 

; <<>> DiG 9.18.10 <<>> +dnssec @8.8.8.8 raw.githubusercontent.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33984
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;raw.githubusercontent.com.     IN      A

;; ANSWER SECTION:
raw.githubusercontent.com. 10   IN      A       202.83.21.15

;; Query time: 0 msec
;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP)
;; WHEN: Fri Jan 06 11:00:10 IST 2023
;; MSG SIZE  rcvd: 84

Whois неправильного IP

      whois -H 202.83.21.15
% [whois.apnic.net]
% Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html

% Information related to '202.83.21.0 - 202.83.21.254'

% Abuse contact for '202.83.21.0 - 202.83.21.254' is 'abuse@actcorp.in'

inetnum:        202.83.21.0 - 202.83.21.254
netname:        CableLite
descr:          Broad Band Internet Service Provider, India
country:        IN
geoloc:         12.984080 77.579818
admin-c:        IA145-AP
tech-c:         IT120-AP
abuse-c:        AC1823-AP
status:         ALLOCATED NON-PORTABLE
mnt-by:         MAINT-IN-ACT
mnt-irt:        IRT-CABLELITE-IN
last-modified:  2021-01-15T11:13:16Z
source:         APNIC

irt:            IRT-CABLELITE-IN
address:        Atria Convergence Technologies Pvt Ltd
address:        # 1, 2nd Floor, Indian Express Building,
address:        Queen's Road, Bangalore - 560 001
e-mail:         apnic@actcorp.in
abuse-mailbox:  abuse@actcorp.in
admin-c:        IA145-AP
tech-c:         IT120-AP
....

Тот же веб-сайт, когда я запрашиваю DoH, я получаю правильный IP-адрес

      curl -H 'accept: application/dns-json' 'https://cloudflare-dns.com/dns-query?name=raw.githubusercontent.com&type=A' 2>/dev/null | jq .Answer[0]
{
  "name": "raw.githubusercontent.com",
  "type": 1,
  "TTL": 446,
  "data": "185.199.111.133"
}

2 ответа

Как видно из вашего ответа,не использует dnssec.

Таким образом, аутентификация ответа не осуществляется, и ваш интернет-провайдер может свободно отвечать на запрос так, как он хочет.

Это можно сделать, используя их DNS-серверы, переписывая ответы с других DNS-серверов или перенаправляя весь DNS-трафик на их DNS-серверы.

как они это делают технически

Возможность определять маршруты, по которым пересылать пакеты, является основной функцией маршрутизаторов, например тех, которые используют интернет-провайдеры. Обычно маршрутизаторы интернет-провайдера изучают все свои маршруты через BGP от других интернет-провайдеров, но интернет-провайдеру легко определить статический маршрут, который перенаправляет все пакеты для «8.8.8.8» в другом направлении — например, на локальный DNS-сервер, который они используют. Я настроил и назначил 8.8.8.8 в качестве IP-адреса. (Вы можете сделать это дома с помощью.)

Есть несколько других способов сделать это; например, маршрутизатор может поддерживать DNAT (возможность фактического изменения IP-адреса назначения в пакетах) — именно так работает «переадресация портов» в вашем домашнем шлюзе, но тот же тип DNAT может использоваться маршрутизатором в любом месте пути для перенаправления пакетов. предназначен для одного IP-адреса на другой (например, перезапись «8.8.8.8» на «9.9.9.9»).

Другие вопросы по тегам