sudo உடன் இயக்கும்போது போர்ட் ஸ்கேன் ஏன் மாறுகிறது
raw சாக்கெட்டுகள் கிடைக்காதபோது, Nmap SYN ஸ்கேனுக்குப் பதிலாக TCP connect ஸ்கேனை அமைதியாகப் பயன்படுத்துகிறது, எனவே root மற்றும் சாதாரண பயனர் வெவ்வேறு பாதைகளை அளவிடுகின்றனர்.
Nmap எப்போதும் நீங்கள் கேட்டதாக நினைக்கும் பாக்கெட்டை அனுப்புவதில்லை. raw சாக்கெட்டுகள் கிடைக்காதபோது இது இயல்புநிலை SYN ஸ்கேனுக்குப் பதிலாக TCP connect ஸ்கேனை வைக்கிறது, எனவே சாதாரண பயனராக இயக்குவதும் sudo கீழ் இயக்குவதும் ஒரே போர்ட் பற்றி வெவ்வேறு கேள்விகளுக்குப் பதிலளிக்கலாம். முடிவுகள் அனுமதி-சிக்கல் போலத் தோன்றுகின்றன, ஆனால் பொதுவாக அவை முறையின் மாற்றம். முறையை வெளிப்படையாக்குவதே இரு இயக்கங்களையும் ஒப்பிடுவதற்கான ஒரே வழி.
இரு ஆய்வுகள், ஒரு போர்ட், வெவ்வேறு குறியீட்டுப் பாதைகள்
SYN ஸ்கேன் TCP தலைப்பைத் தானே உருவாக்கி, raw சாக்கெட்டிலிருந்து அனுப்பி, கர்னலின் TCP அடுக்கு முடிந்த இணைப்பைப் பதிவு செய்வதற்கு முன்பே வலையமைப்பிலிருந்து பதிலைப் படிக்கிறது. connect ஸ்கேன் இயங்குதளத்தை ஒரு சாதாரண சாக்கெட்டைத் திறக்கச் சொல்லி, connect() என்ன திருப்பித் தருகிறது என்பதைத் தெரிவிக்கிறது. இரண்டும் ஒரு போர்ட்டைத் திறந்ததாகக் கூறலாம், ஆனால் பாதி-திறந்த முயற்சியை ஒன்று மட்டுமே விட்டுச் செல்கிறது, அனுப்பும் செயல்முறையுடன் இணைந்த சாக்கெட்-நிலைக் கொள்கைக்கு ஒன்று மட்டுமே உட்பட்டது.
raw பாதைக்கு CAP_NET_RAW தேவை, எனவே அந்த திறன் இல்லாதபோது இயல்புநிலை ஸ்கேன் அமைதியாகப் பலவீனமடைகிறது. Nmap இன் சொந்த ஸ்கேன் நுட்பங்கள் குறிப்பு இந்த மாற்றீட்டைப் பதிவு செய்கிறது: connect ஸ்கேன் மாற்று வழி, ஏனெனில் அதற்கு எந்தச் சிறப்பு அனுமதியும் தேவையில்லை. பெரும்பாலான இயக்கங்களில் இந்த மாற்றம் எச்சரிக்கையின்றி நிகழ்கிறது, அதுவே இதைத் தவறாகப் படிக்க எளிதாக்குகிறது. மாற்று வழி உள்ளது என்று தெரிந்த பிறகு, “root ஆகத் திறந்தது, பயனராக மூடப்பட்டது” என்பது அனுமதி-பிழை போலத் தோன்றுவதை நிறுத்தி இரு வெவ்வேறு அளவீடுகள் போலத் தோன்றத் தொடங்குகிறது.
ஸ்கேனில் sudo உண்மையில் மாற்றுவது என்ன
அனுமதிகளை உயர்த்துவது raw சாக்கெட் பாதையை மீட்டெடுக்கிறது, அது தீர்ப்பை விட அதிகத்தை மாற்றுகிறது. மூல போர்ட் தேர்வு, பாக்கெட் நேரம், மறுஅனுப்பீட்டு நடத்தை மற்றும் வடிகட்டப்பட்ட பதிலின் வகைப்பாடு அனைத்தும் வெவ்வேறு குறியீட்டிலிருந்து வருகின்றன. 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 ஆக இயக்குவது கொள்கை-பொருந்தாமையின் சரிசெய்தல் அல்ல; விரும்பிய கொள்கையைச் சேவையின் உரிமையாளர் மூலம் வெளிப்படுத்துவதே சரிசெய்தல்.