Network Mapper의 줄임말인 Nmap은 가장 많이 사용되는 portmapper 및 네트워크 스캐닝 도구 중 하나입니다. 권한이 없는/일반 사용자로 Nmap의 기본 기능 중 일부를 실행할 수 있지만 대부분의 고급 기능을 사용하려면 루트 또는 sudo 권한이 필요합니다.
예를 들어 NULL, Stealth SYN Scan 등과 같은 일부 고급 포트 스캔 기능은 Nmap이 원시 패킷 데이터에 액세스하여 적절하고 사용 가능한 결과를 제공해야 하기 때문에 루트 권한으로만 작동할 수 있습니다.
sudo 권한 없이 이러한 고급 기능을 실행하려고 할 때마다 이 도구는 “루트 권한이 필요합니다”라는 메시지를 표시합니다.
불행하게도 Nmap을 실행하기 위해 sudo를 사용해야 하는 것은 특히 sudo 그룹에 속해 있지 않은 경우 문제가 될 수 있습니다.
다행스럽게도 기능을 사용하여 루트 또는 sudo 권한 없이 Nmap을 실행할 수 있습니다.
기능이란 무엇입니까?
Linux 기능은 프로그램과 프로세스가 루트 사용자를 위해 예약된 권한을 활용할 수 있도록 하는 Linux 커널 속성입니다.
본질적으로 Linux 기능은 루트 사용자 권한 또는 권한을 공유하므로 권한이 없는 프로세스가 권한이 있는 프로세스로 실행될 수 있으므로 권한 검사를 거치지 않습니다.
수많은 Linux 기능이 있습니다. 당신은 할 수 있습니다 매뉴얼 페이지에서 Linux 기능에 대해 자세히 알아보십시오.
이 가이드의 핵심은 CAP_NET_RAW, CAP_NET_ADMIN 및 CAP_NET_BIND_SERVICE의 세 가지 기능을 사용하여 Nmap이 루트 사용자 권한을 확인하지 않고 실행하는 데 필요한 권한을 부여하는 방법을 보여주는 것입니다.
메모: 악의적인 사용자가 Nmap의 스크립팅 엔진을 악용하여 전체 sudo 권한에 액세스하고 스크립트를 사용하여 로컬 호스트 취약성을 악용할 수 있으므로 높은 기능을 설정할 때 주의하십시오. 따라서 이러한 설정을 신중하게 사용하거나 특정 그룹에 대한 Nmap의 액세스를 제한하십시오.
다음은 sudo 및 루트 권한의 필요성을 제거하기 위해 Nmap에 부여한 Linux 기능입니다.
- 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

이제 libcap을 설치했으므로 다음을 사용할 수 있습니다. setcap Linux 기능을 수정하는 명령입니다.
2단계: Nmap 기능 설정
루트 사용자 권한 없이 실행할 수 있는 Nmap 기능을 설정하려면 다음 명령을 실행합니다.
sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip $(which nmap)
기능을 설정하면 다음을 사용하여 기능이 적용되었는지 확인할 수 있습니다. getcap 명령.
getcap $(which nmap)

메모: Nmap 설치 폴더의 전체 경로를 지정하는 것이 필수적입니다.
3단계: 권한 플래그와 함께 Nmap 실행
이제 이 세 가지 기능이 설정되었으므로 권한 플래그를 사용하여 Nmap에 이러한 기능이 있음을 알리면 sudo 권한 없이 Nmap을 실행할 수 있습니다. 그렇게 하려면 다음을 실행하십시오.
nmap --privileged -sS 192.168.0.112

메모: 사용하셔야 합니다. --privileged 그렇지 않으면 Nmap은 이러한 권한이 있음을 알지 못합니다.
입력하는 데 걸리는 시간을 절약하고 싶다면 nmap --privileged매번 플래그를 지정하면 내보내기 행을 다음에 추가하여 NMAP_PRIVILEGED 환경 변수를 영구적으로 설정할 수 있습니다.
- ~/.xsessionrc: 이것은 대부분의 데스크톱/그래픽 환경에서 작동하며 쉘과 터미널에서 상속할 수 있습니다.
- ~/.프로필: 이것은 로그인이 필요한 쉘에서 작동합니다.
- ~/.bashrc: bash에서 작동
- ~/.gnomerc: 그놈에서만 작동
마무리
대부분의 Nmap 포트 스캔 및 호스트 검색 방법에는 루트 또는 sudo 권한이 필요합니다. 자습서에서 설명한 것처럼 이 기능을 재정의하고 루트나 sudoers 그룹에 속하지 않고 Nmap을 실행할 수 있습니다. 사용할 수 있는 최고의 Linux 포트 스캐너를 확인하십시오.
우리의 활동을 지원해주세요 ❤️
이 글이 마음에 드셨다면, 앞으로도 좋은 콘텐츠를 계속 발행할 수 있도록 팁을 남겨주세요.




















