Nmap həmişə sizin istədiyinizi düşündüyünüz paketi göndərmir. Xam soketlər əlçatan olmadıqda o, standart SYN skanını TCP connect skanı ilə əvəz edir, buna görə adi istifadəçi kimi və sudo altında işlətmə eyni port haqqında fərqli suallara cavab verə bilər. Nəticələr səlahiyyət problemi kimi görünür, halbuki onlar adətən metod dəyişikliyidir. Metodu açıq etmək iki işlətməni ümumiyyətlə müqayisə etməyin yeganə yoludur.

İki zond, bir port, fərqli kod yolları

SYN skanı TCP başlığını özü qurur, onu xam soketdən göndərir və kernelin TCP yığını tamamlanmış bağlantını qeyd etməzdən əvvəl cavabı şəbəkədən oxuyur. Connect skanı əməliyyat sistemindən adi soket açmağı xahiş edir və connect() nə qaytarırsa, onu bildirir. Hər ikisi portu açıq adlandıra bilər, lakin yalnız biri yarım-açıq cəhd buraxır və yalnız biri göndərən prosesə bağlı soket səviyyəli siyasətə tabedir.

Xam yol CAP_NET_RAW tələb edir, buna görə bu imkan olmadıqda standart skan səssizcə zəifləyir. Nmapın öz skan texnikası arayışı bu əvəzləməni sənədləşdirir: connect skanı heç bir xüsusi səlahiyyət tələb etmədiyi üçün ehtiyat variantdır. Əvəzləmə əksər işlətmələrdə xəbərdarlıq olmadan baş verir və bu, onu səhv oxumağı çox asan edir. Ehtiyat variantın mövcud olduğunu bildikdən sonra «root kimi açıq, istifadəçi kimi bağlı» səlahiyyət səhvi kimi səslənmir və iki fərqli ölçmə kimi səslənməyə başlayır.

sudo skanda əslində nəyi dəyişir

Səlahiyyətləri qaldırmaq xam soket yolunu bərpa edir və bu, hökmdən çoxunu dəyişir. Mənbə portunun seçimi, paket vaxtlaması, yenidən ötürmə davranışı və filtrlənmiş cavabın təsnifatı hamısı fərqli koddan gəlir. SYN-ləri məhdudlaşdıran aralıq cihaz, təyinat hostu eyni olsa belə, iki işlətməyə bərabər olmayan münasibət göstərir.

Hədəf tərəfindəki jurnallaşdırma da fərqlənir. Tamamlanmış əl sıxışması xidmətə və hər hansı soket hesabatına görünür, sıfırlanmış yarım-açıq zond isə çox vaxt görünmür. Əgər işlətmələri jurnallarını da oxuduğunuz hostla müqayisə etsəniz, gördüyünüz fərqin bir hissəsi müşahidənin özüdür.

Metodu hər iki işlətmədə sabit saxlayın

Hər iki çağırışda eyni texnikanı məcburi edin və müqayisə məna daşımağa başlayacaq. -sT bayrağı connect skanını açıq şəkildə tələb edir, -Pn host kəşfini, -n ad həllini çıxarır və tək -p port siyahısı fərqlərini çıxarır.

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

Ünvanı və portu sınamağa səlahiyyətiniz olan hostla dəyişdirin; yuxarıdakı sənədləşdirmə diapazonu hədəf deyil, yalnız nümunədir. Əgər iki işlətmə indi razılaşırsa, ilkin fərq skan metodundan qaynaqlanırdı. Hələ də razılaşmırlarsa, trafiki başqa bir şey təsnif edir və növbəti bölmə axtarılası yerdir.

Hesab konteksti yalnız səlahiyyət bayrağı deyil

VPN yerləşdirməsi paketləri UID-ə, cgroup-a və ya soketi açan prosesə bağlı qaydaya görə təsnif edə bilər. Sonra root trafiki və istifadəçi trafiki fərqli yönləndirmə cədvəllərindən çıxır və ya fərqli qayda dəstlərinə düşür, və skan-metodu intizamının heç bir miqdarı onları uzlaşdıra bilməz.

Səlahiyyətə deyil, siyasətə baxın. Linuxda nftables bunu meta skuid ilə, iptables isə sahib uyğunluğu ilə ifadə edir və hər ikisi bir UID-ni tuneldən aşağı göndərə bilər, digəri isə fiziki defolt marşrutdan istifadə etməyə davam edir.

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

Nəticələri müqayisə etməzdən əvvəl zondun özünü təsdiqləyin

Nəticə çıxarmazdan əvvəl hansı zondun işlədiyini sübut edin. Nmap texnikanı öz çıxışında adlandırır və --reason hər vəziyyətin arxasındakı dəlili əlavə edir, bu da əl sıxışmasının həqiqətən tamamlanıb-tamamlanmadığını sizə deyən hissədir.

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

Eyni vəziyyəti fərqli səbəblərə görə bildirən iki işlətmə ziddiyyət deyil, eyni səbəbə görə fərqli vəziyyətlər bildirən iki işlətmə isə skana deyil, yönləndirməyə və ya siyasətə işarə edir. Təyinatı, portu, ad sahəsini və vaxtlamanı eyni saxlayın, sonra bir dəyişəni bir dəfə dəyişin. Xidməti root kimi işlətmək siyasət uyğunsuzluğunun düzəlişi deyil; düzəliş, nəzərdə tutulan siyasəti xidmətin sahibi vasitəsilə ifadə etməkdir.

Əlaqəli məqalələr