Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีเรียกใช้ Nmap โดยไม่ต้องรูทหรือ Sudo

วิธีเรียกใช้ Nmap โดยไม่ต้องรูทหรือ Sudo

Nmap ย่อมาจาก Network Mapper เป็นหนึ่งใน portmapper และเครื่องมือสแกนเครือข่ายที่ใช้มากที่สุด แม้ว่าจะสามารถเรียกใช้ฟังก์ชันพื้นฐานบางอย่างของ Nmap ในฐานะผู้ใช้ที่ไม่มีสิทธิพิเศษ/ผู้ใช้ปกติได้ แต่การใช้คุณลักษณะขั้นสูงส่วนใหญ่ต้องใช้สิทธิ์รูทหรือ sudo

ตัวอย่างเช่น คุณลักษณะการสแกนพอร์ตขั้นสูงบางอย่าง เช่น NULL, Stealth SYN Scan และอื่นๆ อีกมากมายสามารถทำงานได้โดยใช้สิทธิ์ของรูทเท่านั้น เนื่องจาก Nmap จำเป็นต้องเข้าถึงข้อมูลแพ็คเก็ตดิบเพื่อให้คุณได้ผลลัพธ์ที่เพียงพอ/ใช้งานได้

เมื่อใดก็ตามที่คุณพยายามเรียกใช้คุณสมบัติขั้นสูงดังกล่าวโดยไม่มีสิทธิ์ sudo เครื่องมือจะแจ้งให้คุณทราบด้วยข้อความ “ต้องการสิทธิ์รูท”

วิธีเรียกใช้ Nmap โดยไม่ต้องรูทหรือ Sudo

น่าเสียดายที่ต้องใช้ sudo เพื่อเรียกใช้ Nmap อาจเป็นปัญหาได้ โดยเฉพาะถ้าคุณไม่ได้อยู่ในกลุ่ม sudo

โชคดีที่คุณสามารถใช้ความสามารถเพื่อเรียกใช้ Nmap ได้โดยไม่ต้องใช้สิทธิ์รูทหรือ sudo

ความสามารถคืออะไร

ความสามารถของ Linux คือแอตทริบิวต์เคอร์เนลของ Linux ที่อนุญาตให้โปรแกรมและกระบวนการใช้สิทธิ์ที่สงวนไว้สำหรับผู้ใช้รูทเป็นอย่างอื่น

โดยพื้นฐานแล้ว ความสามารถของ Linux จะแชร์พลังหรือสิทธิ์ของผู้ใช้รูท ทำให้กระบวนการที่ไม่มีสิทธิ์ทำงานเป็นสิทธิ์พิเศษได้ ซึ่งหมายความว่าจะไม่ผ่านการตรวจสอบสิทธิ์

มีความสามารถ Linux มากมาย คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับความสามารถของ Linux ในหน้าคู่มือ

สาระสำคัญของคู่มือนี้คือการแสดงวิธีใช้ความสามารถสามอย่าง:CAP_NET_RAW, CAP_NET_ADMIN และ CAP_NET_BIND_SERVICE เพื่อให้ Nmap มีสิทธิ์ที่จำเป็นในการรันโดยไม่ต้องตรวจสอบสิทธิ์ผู้ใช้รูท

หมายเหตุ: โปรดใช้ความระมัดระวังเมื่อตั้งค่าความสามารถระดับสูง เนื่องจากผู้ใช้ที่เป็นอันตรายสามารถใช้ประโยชน์จาก Scripting Engine ของ Nmap เพื่อเข้าถึงสิทธิ์ sudo แบบเต็มและใช้สคริปต์เพื่อใช้ประโยชน์จากช่องโหว่ของโฮสต์ในพื้นที่ ดังนั้น โปรดใช้การตั้งค่าเหล่านี้อย่างระมัดระวังหรือจำกัดการเข้าถึงของ Nmap เฉพาะบางกลุ่ม

ต่อไปนี้เป็นความสามารถของ Linux ที่เรามอบให้กับ Nmap เพื่อขจัดความจำเป็นในการอนุญาต sudo และรูท

  • CAP_NET_RAW: การตั้งค่าความสามารถนี้ทำให้กระบวนการเข้าถึงและใช้ข้อมูลแพ็คเก็ตดิบและซ็อกเก็ตได้
  • CAP_NET_ADMIN: ความสามารถนี้ทำให้กระบวนการมีความสามารถในการทำกิจกรรมเครือข่ายต่างๆ เช่น การดูแลไฟร์วอลล์ IP การกำหนดค่าอินเทอร์เฟซ ตั้งค่าประเภทบริการของ TOS เปลี่ยนตารางเส้นทาง ฯลฯ
  • CAP_NET_BIND_SERVICE: ความสามารถนี้ผูกซ็อกเก็ตกับพอร์ตที่มีสิทธิพิเศษของโดเมนอินเทอร์เน็ต

ความสามารถของ Linux ถูกกำหนดเป็นชุด "มีประสิทธิภาพ" "สืบทอดได้" "อนุญาต" และ "แวดล้อม" สำหรับเธรดและไฟล์ตามลำดับ เพื่อให้ Nmap มีความสามารถที่จำเป็นในการรันโดยไม่มีสิทธิ์รูทหรือ sudo เรากำลังใช้ eip ซึ่งทำให้ Nmap ใช้ความสามารถเหล่านี้ได้โดยไม่คำนึงว่าผู้ใช้คนใดจะเรียกใช้

ขั้นตอนที่ 1:ติดตั้ง libcap

ในการตั้งค่าความสามารถของ Linux คุณต้องติดตั้งแพ็คเกจ libcap แพ็คเกจนี้อนุญาตให้คุณใช้คำสั่ง setcap ใช้คำสั่ง:

sudo apt-get install libcap2-bin
วิธีเรียกใช้ Nmap โดยไม่ต้องรูทหรือ Sudo

ตอนนี้เราได้ติดตั้ง libcap แล้ว เราสามารถใช้ setcap คำสั่งแก้ไขความสามารถของลินุกซ์

ขั้นตอนที่ 2:ตั้งค่าความสามารถของ Nmap

ในการตั้งค่าความสามารถของ Nmap ที่จะอนุญาตให้เรียกใช้โดยไม่มีสิทธิ์ผู้ใช้รูท ให้ดำเนินการคำสั่ง:

sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip $(which nmap)

เมื่อคุณตั้งค่าความสามารถแล้ว คุณสามารถยืนยันได้โดยใช้ getcap คำสั่ง

getcap $(which nmap)
วิธีเรียกใช้ Nmap โดยไม่ต้องรูทหรือ Sudo

หมายเหตุ: จำเป็นต้องระบุพาธแบบเต็มไปยังโฟลเดอร์การติดตั้ง Nmap ของคุณ

ขั้นตอนที่ 3:เรียกใช้ Nmap ด้วยแฟล็กสิทธิ์

ตอนนี้เรามีชุดความสามารถทั้งสามนี้แล้ว เราสามารถเรียกใช้ Nmap โดยไม่ต้องใช้สิทธิ์ sudo โดยใช้แฟล็กสิทธิ์เพื่อให้ Nmap รู้ว่ามีความสามารถเหล่านี้ ในการทำเช่นนั้น ให้ดำเนินการ:

nmap --privileged -sS 192.168.0.112
วิธีเรียกใช้ Nmap โดยไม่ต้องรูทหรือ Sudo

หมายเหตุ :คุณต้องใช้ --privileged มิฉะนั้น Nmap จะไม่ทราบว่ามีสิทธิ์เหล่านี้

หากคุณต้องการประหยัดเวลาในการพิมพ์ nmap --privileged ตั้งค่าสถานะทุกครั้ง คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม NMAP_PRIVILEGED อย่างถาวรโดยเพิ่มบรรทัดการส่งออกไปที่:

  • ~/.xsessionrc: ใช้งานได้กับเดสก์ท็อป/สภาพแวดล้อมแบบกราฟิกส่วนใหญ่ และสามารถสืบทอดโดยเชลล์และเทอร์มินัล
  • ~/.profile: ใช้ได้กับเชลล์ที่ต้องการการเข้าสู่ระบบ
  • ~/.bashrc: ทำงานเพื่อทุบตี
  • ~/.gnomerc: ใช้ได้กับ GNOME
  • . เท่านั้น

บทสรุป

การสแกนพอร์ต Nmap และวิธีค้นหาโฮสต์ส่วนใหญ่ต้องการสิทธิ์รูทหรือ sudo ตามที่กล่าวไว้ในบทช่วยสอน คุณสามารถแทนที่ฟังก์ชันนี้และเรียกใช้ Nmap โดยไม่ต้องรูทหรือในกลุ่ม sudoers ลองดูเครื่องสแกนพอร์ต Linux ที่ดีที่สุดที่คุณสามารถใช้ได้