Scanarea brută Nmap eșuează prin VPN, dar conexiunea -sT funcționează?
O scanare brută de pachete și o conexiune TCP obișnuită necesită privilegii diferite. Rulează mai ântâi verificarea conexiunii, citește fiecare opțiune literal și oprește-te la rezultat.
O pagină se încarcă prin tunel în timp ce o scanare de porturi raportează că gazda este căzută, iar primul instinct este că VPN-ul blochează ceva. De obicei nu blochează nimic nou. Cele două teste cer sistemului de operare capacități diferite, și doar unul dintre ele are nevoie de acces brut la pachete. Stabilește ce capacitate a eșuat înainte de a atinge tunelul.
Separă capacitatea de tunel
O aplicație obișnuită cere nucleului să deschidă o conexiune TCP, iar nucleul face strângerea de mână fără privilegii speciale. O scanare brută construiește pachetele singură, ceea ce necesită un socket brut sau un driver de captură în funcție de platformă. Sunt întrebări despre permisiuni și drivere, și există indiferent dacă un VPN este conectat sau nu.
Această distincție explică asimetria obișnuită. curl reușește pentru că traseul socketului funcționează, în timp ce scanarea SYN eșuează pentru că procesul nu poate deschide un socket brut pe interfața tunelului. Explică și cazul invers, în care o scanare brută raportează filtrat pentru că traseul aruncă sonda, în timp ce traseul aplicației rămâne bun.
Niciunul dintre rezultate nu descrie serviciul la distanță. Ambele descriu o singură cale sub o singură metodă, așa că ține metoda legată de concluzie.
Rulează verificarea conexiunii pe o singură gazdă aprobată
Alege singura gazdă pe care o acoperă sarcina ta, apoi folosește modul care nu necesită acces brut. Ținta exemplului de aici este 198.51.100.24, spațiu de documentație rezervat pentru acest tip de ilustrare.
O linie, o gazdă, un port, nicio etapă de descoperire:
nmap -sT -Pn -p 443 --unprivileged 198.51.100.24-sT selectează o conexiune TCP completă, deci parcurge același traseu al nucleului pe care îl folosește o aplicație și nu necesită driver de captură. -Pn sare peste descoperirea gazdelor; nmap tot face rezolvare la nivel de legătură pentru țintele din segmentul local, deci opțiunea nu este o promisiune de trafic preliminar zero. --unprivileged îi spune nmap să presupună că nu are drepturi brute sau de ascultare, ceea ce schimbă metoda și nu acordă nimic.
Citește fiecare opțiune ca o singură schimbare, nu ca o reparație
Tratează fiecare opțiune ca o afirmație despre metodă. Niciuna dintre -sT, -Pn sau --unprivileged nu adaugă o rută, nu deschide un firewall la distanță și nu validează un certificat. Scanarea de conexiune finalizează și o strângere de mână reală pe care serviciul o înregistrează, așa că o verificare aprobată și o baleiere neaprobată arată la fel de pe server, în afară de scop și ritm. Acumularea de opțiuni până se schimbă ieșirea este modul în care o problemă de metodă ajunge înregistrată ca descoperire de rețea.
Când ieșirea spune închis, ceva a răspuns cu un reset, și aceasta este o descoperire diferită de tăcere. Când ieșirea spune filtrat, un dispozitiv a aruncat sonda sau răspunsul ei, iar VPN-ul poate fi incidental. Notează formularea exactă, pentru că un verdict al etapei de descoperire și o defecțiune la nivelul sondei indică straturi diferite.
Dacă un mod privilegiat este cu adevărat necesar, proprietarul platformei decide dacă privilegiul, driverul și aranjamentul interfețelor sunt acceptate. Ridicarea aceleiași invocări nu îi schimbă metoda.
Oprește-te la rezultatul transportului, apoi testează serviciul
O strângere de mână finalizată răspunde la o singură întreâmbare despre o adresă, un port, o sursă și un moment. Nu dovedește că backend-ul este sănătos, pentru că un balanceator de încărcare sau un proxy frontal poate accepta conexiunea în timp ce aplicația din spate este oprită.
Continuă cu clientul propriu al serviciului, astfel încât identitatea TLS și comportamentul aplicației să fie observate ca fapte separate:
openssl s_client -connect 198.51.100.24:443 -servername staging.example.net </dev/null 2>/dev/null | openssl x509 -noout -subject -dates
curl -sS -o /dev/null -w '%{http_code}\n' https://staging.example.net/healthÎncă un obicei păstrează rezultatul util. Notează comanda exactă, adresa de sursă folosită și momentul, pentru că un rezultat de transport fără acel context nu poate fi reprodus sau comparat.
Dacă certificatul numește o gazdă la care nu te așteptai, transportul a funcționat și rutarea nu a fost niciodată problema; defecțiunea este în găzduirea virtuală sau în DNS. Dacă strângerea de mână eșuează, înregistrează șirul local de eroare în loc să generalizezi despre tunel. Ține nota despre scop lângă rezultat, pentru că următoarea persoană trebuie să știe ce metodă l-a produs.