Computer >> 컴퓨터 >  >> 체계 >> Linux

루트 또는 Sudo 없이 Nmap을 실행하는 방법

루트 또는 Sudo 없이 Nmap을 실행하는 방법

Network Mapper의 약자인 Nmap은 가장 많이 사용되는 포트매퍼 및 네트워크 스캐닝 도구 중 하나입니다. Nmap의 기본 기능 중 일부는 권한이 없는/일반 사용자로 실행할 수 있지만 대부분의 고급 기능을 사용하려면 루트 또는 sudo 권한이 필요합니다.

예를 들어, NULL, Stealth SYN Scan 및 기타 많은 고급 포트 스캔 기능은 루트 권한으로만 작동할 수 있습니다. Nmap은 적절하고 사용 가능한 결과를 제공하기 위해 원시 패킷 데이터에 액세스해야 하기 때문입니다.

sudo 권한 없이 이러한 고급 기능을 실행하려고 할 때마다 도구는 "루트 권한이 필요합니다"라는 메시지를 표시합니다.

루트 또는 Sudo 없이 Nmap을 실행하는 방법

불행히도 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 기능은 스레드와 파일에 대해 각각 "효과적", "상속 가능", "허용됨" 및 "주변" 세트로 할당됩니다. 루트 또는 sudo 권한 없이 실행하는 데 필요한 기능을 Nmap에 제공하기 위해 eip를 사용하고 있습니다. , 따라서 Nmap은 어떤 사용자가 실행하든 상관없이 이러한 기능을 사용할 수 있습니다.

1단계:libcap 설치

Linux 기능을 설정하려면 libcap 패키지를 설치해야 합니다. 이 패키지를 사용하면 setcap 명령을 사용할 수 있습니다. 다음 명령을 사용하십시오.

sudo apt-get install libcap2-bin
루트 또는 Sudo 없이 Nmap을 실행하는 방법

이제 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)
루트 또는 Sudo 없이 Nmap을 실행하는 방법

참고: Nmap 설치 폴더의 전체 경로를 지정하는 것이 필수적입니다.

3단계:권한 플래그로 Nmap 실행

이제 이 세 가지 기능이 설정되었으므로 Nmap에 이러한 기능이 있음을 알리기 위해 권한 플래그를 사용하여 sudo 권한 없이 Nmap을 실행할 수 있습니다. 그렇게 하려면 다음을 실행하십시오.

nmap --privileged -sS 192.168.0.112
루트 또는 Sudo 없이 Nmap을 실행하는 방법

참고 :--privileged를 사용해야 합니다. 옵션을 선택하지 않으면 Nmap이 이러한 권한이 있는지 알 수 없습니다.

nmap --privileged를 입력하는 데 걸리는 시간을 절약하려면 플래그를 매번 다음 위치에 추가하여 NMAP_PRIVILEGED 환경 변수를 영구적으로 설정할 수 있습니다.

  • ~/.xsessionrc: 이것은 대부분의 데스크탑/그래픽 환경에서 작동하며 셸과 터미널에서 상속할 수 있습니다.
  • ~/.프로필: 이것은 로그인이 필요한 쉘에서 작동합니다.
  • ~/.bashrc: bash에서 작동합니다.
  • ~/.gnomerc: 그놈에서만 작동

마무리

대부분의 Nmap 포트 스캔 및 호스트 검색 방법에는 루트 또는 sudo 권한이 필요합니다. 튜토리얼에서 논의된 바와 같이, 이 기능을 재정의하고 루트나 sudoers 그룹 없이 Nmap을 실행할 수 있습니다. 사용할 수 있는 최고의 Linux 포트 스캐너를 확인하십시오.