Pam mae sgan porth yn newid pan gaiff ei redeg gyda sudo
Pan nad yw socedi crai ar gael, mae Nmap yn dawel yn rhoi sgan TCP connect yn lle sgan SYN, felly mae root a defnyddiwr cyffredin yn mesur llwybrau gwahanol.
Nid yw Nmap bob amser yn anfon y pecyn yr ydych yn credu yr oeddech wedi gofyn amdano. Pan nad yw socedi crai ar gael, mae’n rhoi sgan TCP connect yn lle’r sgan SYN rhagosodedig, felly gall rhedeg fel eich defnyddiwr arferol a rhedeg dan sudo ateb cwestiynau gwahanol am yr un porth. Mae’r canlyniadau’n edrych fel problem freintiau, ac fel arfer maent yn newid dull. Gwneud y dull yn eglur yw’r unig ffordd i gymharu’r ddau rediad o gwbl.
Dau chwiliedydd, un porth, llwybrau cod gwahanol
Mae sgan SYN yn adeiladu’r pennawd TCP ei hun, yn ei anfon o soced crai, ac yn darllen yr ateb oddi ar y wifren cyn i stac TCP y cnewyllyn gofnodi cysylltiad gorffenedig o gwbl. Mae sgan connect yn gofyn i’r system weithredu agor soced cyffredin ac yn adrodd beth bynnag a ddychwel connect(). Gall y ddau alw porth yn agored, ond dim ond un sy’n gadael ymgais hanner-agored a dim ond un sy’n ddarostyngedig i bolisi ar lefel soced sydd ynghlwm wrth y broses anfon.
Mae’r llwybr crai angen CAP_NET_RAW, a dyna pam mae’r sgan rhagosodedig yn dirywio’n dawel pan fo’r gallu hwnnw ar goll. Mae cyfeirlyfr technegau sganio Nmap ei hun yn dogfennu’r amnewid: sgan connect yw’r cwymp yn ôl oherwydd nid oes arno angen unrhyw freintiau arbennig o gwbl. Mae’r newid yn digwydd heb rybudd yn y rhan fwyaf o rediadau, a dyna sy’n ei wneud mor hawdd i’w gamddarllen. Unwaith y gwyddoch fod y cwymp yn ôl yn bodoli, mae “agored fel root, caeëdig fel defnyddiwr” yn peidio â swnio fel nam ar freintiau ac yn dechrau swnio fel dau fesuriad gwahanol.
Beth mae sudo yn ei newid mewn gwirionedd yn y sgan
Mae codi freintiau yn adfer y llwybr soced crai, ac mae hynny’n newid mwy na’r dyfarniad. Dewis porth ffynhonnell, amseru pecynnau, ymddygiad ail-drosglwyddo a’r ffordd y caiff ateb wedi’i hidlo ei ddosbarthu i gyd yn dod o god gwahanol. Mae bocs canol sy’n cyfyngu cyfradd SYN yn trin y ddau rediad yn annheg hyd yn oed pan fo’r gwesteiwr cyrchfan yr un fath.
Mae logio ar ochr y targed yn gwyro hefyd. Mae ysgwyd llaw gorffenedig yn weladwy i’r gwasanaeth ac i unrhyw gyfrifo soced, tra nad yw chwiliedydd hanner-agored wedi’i ailosod yn aml. Os ydych yn cymharu rhediadau yn erbyn gwesteiwr y byddwch hefyd yn darllen ei logiau, mae rhan o’r gwahaniaeth a welwch yn yr arsylwad ei hun.
Cadwch y dull yn gyson yn y ddau rediad
Gorfodwch yr un dechneg yn y ddau alwad ac mae’r gymhariaeth yn dechrau golygu rhywbeth. Mae’r faner -sT yn gofyn am sgan connect yn eglur, mae -Pn yn tynnu darganfod gwesteiwyr, mae -n yn tynnu datrys enwau, ac mae un -p yn tynnu gwahaniaethau rhestr porthladdoedd.
nmap -sT -Pn -n -p 8443 198.51.100.77
sudo nmap -sT -Pn -n -p 8443 198.51.100.77
Cyfnewidiwch y cyfeiriad a’r porth am westeiwr yr ydych wedi’ch awdurdodi i’w brofi; mae’r amrediad dogfennu uchod yn ddeiliad lle, nid yn darged. Os yw’r ddau rediad nawr yn cytuno, roedd y gwahaniaeth gwreiddiol yn dod o ddull y sgan. Os ydynt yn dal i anghytuno, mae rhywbeth arall yn dosbarthu’r traffig, a’r adran nesaf yw’r lle i chwilio.
Nid yw cyd-destun cyfrif yn faner freintiau yn unig
Gall defnydd VPN ddosbarthu pecynnau yn ôl UID, yn ôl cgroup, neu yn ôl rheol sydd ynghlwm wrth y broses a agorodd y soced. Yna mae traffig root a thraffig defnyddiwr yn gadael trwy wahanol dablau llwybro neu’n taro gwahanol setiau rheolau, ac nid oes unrhyw ddisgyblaeth dull sgan yn eu cysoni.
Archwiliwch y polisi yn hytrach na’r fraint. Ar Linux, mae nftables yn mynegi hyn gyda meta skuid ac mae iptables gyda’r paru perchennog, a gall y naill neu’r llall anfon un UID i lawr twnnel tra bo’r llall yn parhau i ddefnyddio’r llwybr rhagosodedig corfforol.
sudo nft list ruleset | grep -n skuid
sudo iptables-save | grep -n uid-owner
ip rule show
ip route get 198.51.100.77
Cadarnhewch y chwiliedydd cyn cymharu canlyniadau
Cyn dod i gasgliadau, profwch pa chwiliedydd a redodd. Mae Nmap yn enwi’r dechneg yn ei allbwn ei hun, ac mae --reason yn ychwanegu’r dystiolaeth y tu ôl i bob cyflwr, sef y rhan sy’n dweud wrthych a gwblhawyd ysgwyd llaw mewn gwirionedd.
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
Nid yw dau rediad sy’n adrodd yr un cyflwr am wahanol resymau yn wrthgyferbyniad, ac mae dau rediad sy’n adrodd gwahanol gyflwr am yr un rheswm yn pwyntio at lwybro neu bolisi yn hytrach nag at y sgan. Cadwch y cyrchfan, y porth, y gofod enwau a’r amseru yn unfath, ac yna newidiwch un newidyn ar y tro. Nid yw rhedeg y gwasanaeth fel root yn atgyweiriad ar gyfer anghysondeb polisi; yr atgyweiriad yw mynegi’r polisi bwriadedig trwy berchennog y gwasanaeth.