Nmap таны хүссэн гэж бодож буй пакетыг үргэлж илгээдэггүй. Түүхий сокетууд боломжгүй үед энэ нь анхдагч SYN сканыг TCP connect сканаар сольдог тул энгийн хэрэглэгчээр ажиллуулах ба sudo-ийн дор ажиллуулах нь нэг портын тухай өөр асуултад хариулж болно. Үр дүн нь эрхийн асуудал мэт харагдах боловч ихэвчлэн арга барилын өөрчлөлт юм. Арга барилыг тодорхой болгох нь хоёр ажиллагааг харьцуулах цорын ганц арга юм.

Хоёр зонд, нэг порт, өөр кодын зам

SYN скан нь TCP толгойг өөрөө бүтээж, түүнийг түүхий сокетоос илгээж, цөмийн TCP стек дууссан холболтыг бүртгэхээс өмнө хариуг сүлжээнээс уншдаг. connect скан нь үйлдлийн системээс ердийн сокет нээхийг хүсч, connect() юу буцааж байгааг мэдээлдэг. Хоёулаа портыг нээлттэй гэж нэрлэж болох ч зөвхөн нэг нь хагас нээлттэй оролдлогыг үлдээдэг, зөвхөн нэг нь илгээгч процесстой холбоотой сокетын түвшний бодлогод захирагдана.

Түүхий замд CAP_NET_RAW хэрэгтэй тул энэ чадвар байхгүй үед анхдагч скан чимээгүй доройтдог. Nmap-ийн өөрийн скан хийх аргын лавлагаа энэ орлуулалтыг баримтжуулдаг: connect скан нь ямар ч тусгай эрх шаарддаггүй тул нөөц хувилбар юм. Орлуулалт ихэнх ажиллагаанд анхааруулгагүй болдог бөгөөд энэ нь түүнийг буруу уншихад маш хялбар болгодог. Нөөц хувилбар байгааг мэдсэний дараа «root-оор нээлттэй, хэрэглэгчээр хаалттай» гэдэг нь эрхийн алдаа мэт сонсогдохоо болиод хоёр өөр хэмжилт мэт сонсогдож эхэлдэг.

sudo сканд юу үнэхээр өөрчилдөг вэ

Эрх өсгөх нь түүхий сокетын замыг сэргээдэг бөгөөд энэ нь шийдвэрээс илүү ихийг өөрчилдөг. Эх порт сонгох, пакетын хугацаа, дахин илгээх зан байдал, шүүгдсэн хариуг ангилах арга бүгд өөр кодоос ирдэг. SYN-ийн хурдыг хязгаарладаг завсрын төхөөрөмж очих хост ижил байсан ч хоёр ажиллагааг тэгш бус харьцдаг.

Очих талын лог бичилт ч өөр байдаг. Дууссан гар барилт нь үйлчилгээ болон аливаа сокетын тооцоонд харагддаг бол дахин тохируулсан хагас нээлттэй зонд ихэвчлэн харагддаггүй. Хэрэв та логийг нь өөрөө уншдаг хосттой харьцуулж ажиллуулбал харж буй зөрүүний нэг хэсэг нь ажиглалт өөрөө юм.

Хоёр ажиллагаанд арга барилыг тогтмол бариарай

Хоёр дуудлагад ижил аргыг албадаж хэрэглэвэл харьцуулалт утга учиртай болж эхэлнэ. -sT туг connect сканыг тодорхой шаарддаг, -Pn хост илрүүлэлтийг, -n нэр шийдвэрлэлтийг хасдаг, ганц -p портын жагсаалтын зөрүүг хасдаг.

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

Хаяг ба портыг туршиж болох хостээр солино уу; дээрх баримт бичгийн хүрээ нь жишээ бөгөөд зорилт биш. Хоёр ажиллагаа одоо давхцаж байвал анхны зөрүү нь скан хийх аргаас гарсан. Хэрэв тэд давхцахгүй хэвээр байвал өөр зүйл трафикийг ангилж байгаа бөгөөд дараагийн хэсэг нь харах газар юм.

Бүртгэлийн контекст нь зөвхөн эрхийн туг биш

VPN байрлуулалт пакетуудыг UID-аар, cgroup-оор эсвэл сокетыг нээсэн процесстой холбоотой дүрмээр ангилж болно. Дараа нь root болон хэрэглэгчийн трафик өөр чиглүүлэлтийн хүснэгтээр гарч эсвэл өөр дүрмийн багцад тулж, скан хийх аргын ямар ч сахилга тэдгээрийг эвлэрүүлж чадахгүй.

Эрхийг бус, бодлогыг шалгаарай. Linux дээр nftables үүнийг meta skuid-оор, iptables эзэмшигчийн тохирлоор илэрхийлдэг бөгөөд аль нь ч нэг UID-г туннелээр илгээж болно, нөгөө нь физик анхдагч замыг үргэлжлүүлэн ашиглана.

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

Үр дүнг харьцуулахаасаа өмнө зондыг баталгаажуулаарай

Дүгнэлт хийхээсээ өмнө аль зонд ажилласныг нотлоорой. Nmap техникийг өөрийн гаралтад нэрлэдэг бөгөөд --reason төлөв бүрийн ард байгаа нотолгоог нэмдэг, энэ хэсэг нь гар барилт үнэхээр дууссан эсэхийг хэлдэг.

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

Нэг төлөвийг өөр шалтгаанаар мэдээлдэг хоёр ажиллагаа нь зөрчил биш, харин нэг шалтгаанаар өөр төлөвүүдийг мэдээлдэг хоёр ажиллагаа нь скан биш, чиглүүлэлт эсвэл бодлого руу заадаг. Очих, порт, нэрийн орон зай, хугацааг ижил байлгаад дараа нь нэг хувьсагчийг нэг удаа өөрчил. Үйлчилгээг root-оор ажиллуулах нь бодлогын зөрүүг засах биш; зорьсон бодлогыг үйлчилгээний эзэмшигчээр илэрхийлэх нь засвар юм.

Холбоотой нийтлэлүүд