Nmap ei saada alati paketti, mida te arvate end tellinud olevat. Kui toored soklid pole saadaval, asendab see vaikimisi SYN-skaneerimise TCP connect-skaneerimisega, nii et tavakasutajana käivitamine ja sudo all käivitamine võivad sama pordi kohta vastata erinevatele küsimustele. Tulemused näevad välja nagu õiguste probleem, kuid tavaliselt on need meetodi muutus. Meetodi selgesõnaliseks tegemine on ainus viis neid kahte käivitust üldse võrrelda.

Kaks sondi, üks port, erinevad kooditeed

SYN-skaneerimine ehitab TCP-päise ise, saadab selle toorest soklist ja loeb vastuse võrgust enne, kui kerneli TCP-pinu üldse lõpetatud ühenduse registreerib. Connect-skaneerimine palub operatsioonisüsteemil avada tavaline sokkel ja teatab, mida connect() tagastab. Mõlemad võivad nimetada pordi avatuks, kuid ainult üks jätab poolavatud katse ja ainult üks allub sokli tasandi poliitikale, mis on seotud saatva protsessiga.

Toores tee vajab CAP_NET_RAW, mistõttu vaikimisi skaneerimine halveneb vaikselt, kui see võimekus puudub. Nmap enda skaneerimistehnikate viide dokumenteerib asenduse: connect-skaneerimine on varuvariant, sest see ei vaja üldse eriõigusi. Asendus toimub enamikus käivitustes ilma hoiatuseta, ja just see teeb selle nii kergesti valesti loetavaks. Kui tead, et varuvariant on olemas, ei kõla “rootina avatud, kasutajana suletud” enam õiguste veana, vaid kahe erineva mõõtmisena.

Mida sudo skaneerimises tegelikult muudab

Õiguste tõstmine taastab toore sokli tee, ja see muudab rohkem kui otsuse. Lähtepordi valik, pakettide ajastus, edastuskorduse käitumine ja filtreeritud vastuse liigitamise viis pärinevad kõik erinevast koodist. SYN-e piirav vahendaja kohtleb neid kahte käivitust ebavõrdselt ka siis, kui sihtarvuti on identne.

Logimine sihtkoha poolel erineb samuti. Lõpetatud kätlus on teenusele ja igale sokliarvestusele nähtav, samas kui lähtestatud poolavatud sond sageli ei ole. Kui võrdled käivitusi vastu hosti, mille logisid sa ka loed, on osa nähtavast erinevusest vaatlus ise.

Hoia meetod mõlemas käivituses muutumatuna

Sunniviisiliselt sama tehnika mõlemas kutses ja võrdlus hakkab midagi tähendama. Lipp -sT nõuab connect-skaneerimist selgesõnaliselt, -Pn eemaldab hostide avastamise, -n eemaldab nimede lahendamise ja üksik -p eemaldab pordinimekirja erinevused.

nmap -sT -Pn -n -p 8443 198.51.100.77
sudo nmap -sT -Pn -n -p 8443 198.51.100.77

Asenda aadress ja port hostiga, mida sul on lubatud testida; ülalolev dokumentatsioonivahemik on näidis, mitte sihtmärk. Kui kaks käivitust nüüd ühtivad, tuli algne erinevus skaneerimismeetodist. Kui need ikka ei ühti, liigitab liiklust miski muu, ja järgmine jaotis on koht, kuhu vaadata.

Konto kontekst ei ole ainult õiguste lipp

VPN-i juurutus saab pakette liigitada UID-i, cgroupi või sokli avanud protsessiga seotud reegli järgi. Siis väljuvad rooti liiklus ja kasutaja liiklus erinevate marsruutimistabelite kaudu või tabavad erinevaid reeglistikke, ja ükski skaneerimismeetodi distsipliin ei lepita neid.

Uuri poliitikat, mitte õigust. Linuxis väljendab nftables seda meta skuid abil ja iptables omaniku vastendusega, ning kumbki saab saata ühe UID-i tunnelisse, samal ajal kui teine kasutab edasi füüsilist vaiketeed.

sudo nft list ruleset | grep -n skuid
sudo iptables-save | grep -n uid-owner
ip rule show
ip route get 198.51.100.77

Kinnita sond enne tulemuste võrdlemist

Enne järelduste tegemist tõesta, milline sond jooksis. Nmap nimetab tehnika oma väljundis ja --reason lisab iga oleku taha tõendi, mis on see osa, mis ütleb, kas kätlus tegelikult lõppes.

nmap --reason -sT -Pn -n -p 8443 198.51.100.77
sudo nmap --reason -sS -Pn -n -p 8443 198.51.100.77
getcap "$(command -v nmap)"
capsh --print | grep -i net_raw

Kaks käivitust, mis teatavad sama olekut erinevatel põhjustel, ei ole vastuolu, ja kaks käivitust, mis teatavad erinevaid olekuid samal põhjusel, viitavad marsruutimisele või poliitikale, mitte skaneerimisele. Hoia sihtkoht, port, nimeruum ja ajastus identsed, seejärel muuda korraga üht muutujat. Teenuse käivitamine rootina ei ole poliitika lahknevuse parandus; parandus on väljendada kavatsetud poliitikat teenuse omaniku kaudu.

Seotud artiklid