Puncte:0

Trimiterea imaginilor prin protocolul DNS

drapel kz
Avv

Protocolul HTTP la nivelul aplicației poate transporta audio, imagini etc. în corp peste 1 sau mai multe răspunsuri TCP în cazul în care dimensiunea fișierului depășește 4 MB (dimensiunea corpului răspunsului HTTP dacă nu mă înșel).

Acum, pentru serverul DNS, știu că este folosit pentru rezolvarea numelor de gazdă, dar poate fi folosit pentru a transporta imagini sau alte fișiere multimedia în corpul său, vă rog?

Mulțumesc.

Massimo avatar
drapel ng
Probabil că este *posibil din punct de vedere tehnic* într-un mod foarte complicat (vezi https://en.wikipedia.org/wiki/IP_over_Avian_Carriers). Dar de ce ar face cineva asta, în afară de „Vreau să văd dacă pot să funcționeze”?
SamErde avatar
drapel gg
Nu cred că veți găsi un caz de utilizare legitim pentru a face acest lucru și nu unul care este susținut de vreo implementare a specificației protocolului DNS. Ați încercat IPoAC? ;)
Avv avatar
drapel kz
Avv
Multumesc pentru informatie.
Patrick Mevzek avatar
drapel cn
Deoarece există „implementari” de TCP peste DNS, din punct de vedere tehnic, puteți schimba prin el orice doriți (și este folosit într-un fel pentru a exfiltra datele după o exploatare). Dar de ce ai vrea să faci asta, aceasta este întrebarea interesantă? DNS este un protocol de distribuire a datelor (asemănător cu o bază de date descentralizată cu consistență scăzută/lentă) care este necesar în principal pentru a descoperi și găsi servicii. Nu este adaptat pentru alte nevoi, cum ar fi trimiterea de fișiere arbitrare, unde HTTP/FTP/SCP/etc. sunt adaptate pentru asta. De asemenea, rețineți că DNS funcționează peste UDP ȘI TCP și UDP nu are controale de transport
drapel vn
https://www.akamai.com/blog/news/introduction-to-dns-data-exfiltration
Puncte:3
drapel ar

Protocolul HTTP la nivelul aplicației poate transporta audio, imagini etc. în corp peste 1 sau mai multe răspunsuri TCP în cazul în care dimensiunea fișierului depășește 4 MB (dimensiunea corpului răspunsului HTTP dacă nu mă înșel).

În primul rând pachetele sunt mici; de obicei, MTU este de 1500 de octeți și aceasta include anteturi, așa că, în mod realist, fiecare pachet are aproximativ 12-1450 de octeți. Orice mai mare este trimis ca pachete TCP multiple.

În plus, protocoalele moderne, cum ar fi QUIC (și prin extensie HTTP/3) utilizează UDP pentru a transporta date, mutând gestionarea pachetelor pierdute în aplicație.

Acum, pentru serverul DNS, știu că este folosit pentru rezolvarea numelor de gazdă, dar poate fi folosit pentru a transporta imagini sau alte fișiere multimedia în corpul său, vă rog?

Sigur. Creați o înregistrare TXT cu o imagine sau similar. DNS transportă date. Nu îi pasă în mod deosebit de care sunt datele, în cazul înregistrărilor TXT. Pentru alte înregistrări, cum ar fi A, AAAA și așa mai departe, există anumite constrângeri tehnice cu privire la datele pe care le așteaptă protocolul. Înregistrările TXT pot avea până la 255 de octeți, dar puteți avea un număr nelimitat dintre ele.

Patrick Mevzek avatar
drapel cn
„Înregistrările TXT pot avea până la 255 de octeți, dar puteți avea un număr nelimitat dintre ele.” Nu este tocmai corect. Da, puteți avea mai multe înregistrări TXT. Dar o înregistrare TXT dată **NU ESTE** limitată la 255 de octeți. Pe fir folosește „șir de caractere” care are cel mult 255 de octeți, dar poate avea mai mult de unul dintre aceștia. Deci, din punct de vedere tehnic, la nivel DNS, o înregistrare TXT este aproape nelimitată (sau mai precis până la 65535 de octeți, deoarece fiecare înregistrare are o RDLENGTH pe 16 biți care stochează lungimea conținutului).Căutați în înregistrarea TXT a `icann.org` există doar unul, dar cu mult mai mult de 255 de octeți...
Avv avatar
drapel kz
Avv
@PatrickMevzek. Mulțumesc. Deci puteți trimite 65535 de octeți cu o singură solicitare DNS? De obicei, cererea DNS este făcută pentru a rezolva numele gazdei, dar vrei să spui că poți adăuga date arbitrare cu o solicitare la serverul DNS prin protocolul DNS, te rog?
vidarlo avatar
drapel ar
@PatrickMevzek mulțumesc pentru clarificare!
vidarlo avatar
drapel ar
@Avv Puteți transporta date arbitrare folosind *orice* protocol. Dacă doriți, puteți codifica o imagine ca adrese IPv4 și le puteți expedia prin DNS. Sau le puteți codifica Base64 și le trimiteți ca telegrame.
Patrick Mevzek avatar
drapel cn
@Avv „De obicei, cererea DNS este făcută pentru a rezolva numele gazdei”. Nu. DNS-ul este o bază de date descentralizată online, cuplată liber. UNA dintre utilizările sale este de a rezolva numele de gazdă în adrese IP, dar este departe de a fi singura. Uitați-vă la înregistrările „TXT” sau „SRV”, de exemplu pentru alte utilizări. „dar vrei să spui că poți adăuga date arbitrare cu o solicitare la serverul DNS” Da, dar serverul DNS nu are niciun motiv să accepte interogarea ta și să facă ceva cu ea.
Avv avatar
drapel kz
Avv
@PatrickMevzek. Mulțumesc pentru clarificarea confuziei.
Avv avatar
drapel kz
Avv
@vidarlo. Apreciat.
Avv avatar
drapel kz
Avv
@PatrickMevzek. Ultima intrebare va rog. Ați explicat mai mult decât am nevoie, dar pentru DNS ați menționat că putem trimite imaginea ca IP ca și cum trimitem IP pentru a rezolva, dar este de fapt o imagine, așa că, acestea fiind spuse, DNS solicită deja ca IP sursă a dispozitivului nostru, Deci, de ce trebuie să adăugăm și IP-ul pe care vrem să îl rezolvăm în corpul DNS-ului? Dacă nu este cazul, atunci înseamnă că schimbăm IP-ul sursă al solicitării la serverul DNS la imagine (biții IP reprezintă date de imagine), vă rog?
vidarlo avatar
drapel ar
Ignorați IP-ul sursă pentru un moment. Punctul de bază este că protocolul constă dintr-o interogare și răspuns și că interogarea și răspunsul pot conține date. De asta ai nevoie pentru a transfera date.
Patrick Mevzek avatar
drapel cn
@Avv Îmi pare rău, nu vă înțeleg întrebarea și am mers destul de departe de a fi ontopic aici. Cu toate acestea, amintiți-vă că clientul din protocolul DNS este de obicei soluția recursivă și adresa sa IP este cea pe care serverele de nume autorizate o vor vedea, nu adresa IP a clientului ca în uman/browser/etc. fac schimb de internet. De asemenea, un IP are doar 32 sau 128 de biți, așa că va fi greu să codificați o imagine în aceasta. Nu sunt sigur ce ai menționat asta. Puteți stoca date „arbitrare” în DNS folosind înregistrarea „TXT”. Este o formă liberă, așa că puteți baza64 un flux binar acolo, de exemplu.
Avv avatar
drapel kz
Avv
@PatrickMevzek. Ați spus: „De asemenea, un IP are doar 32 sau 128 de biți, deci va fi greu să codificați o imagine în asta.”, dar vidarlo a spus „Înțeleg că puteți transporta date arbitrare folosind orice protocol. Dacă doriți, puteți codifica o imagine. imaginea ca adrese IPv4 și le trimiteți prin DNS. Sau le puteți codifica Base64 și le trimiteți ca telegrame." Așa că m-am încurcat. Multumesc oricum.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.