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 په توګه چلول د تګلارې ناهمغړیتوب سمون نه دی؛ سمون دا دی چې مطلوبه تګلاره د خدمت د مالک له لارې څرګنده شي۔

اړوندې مقالې