Nmap 명령 및 자격 증명 없는 디스커버리를 사용하여 수집된 데이터
Nmap은 데이터를 수집할 때 단계별로 실행되며, 애플리케이션 및 장치 탐색을 위한 두 가지 패턴을 사용하여 제어된 안전한 명령 집합을 실행합니다.
호스트 검색에서 Nmap이 반환한 데이터
- 운영 체제 제품군: 운영 체제 제품군이 지원되는 6가지 서버 운영 체제 제품군 중 하나이면 적합한 서버 클래스와 연관된 호스트 CI가 호스트 CI 만들기 또는 업데이트를 위해 사용됩니다. Nmap에서 반환된 운영 체제 제품군이 지원되는 서버 운영 체제 중 하나가 아니면 기본 하드웨어 [cmdb_ci_hardware] 클래스를 사용하여 호스트 CI가 생성 또는 업데이트됩니다.
- MAC 주소: 스캔한 호스트가 Nmap 명령을 실행 중인 Windows MID 서버 호스트와 동일한 서브넷에 있으면 Nmap이 원격 호스트의 MAC 주소를 반환합니다.
호스트 검색 중 Nmap에서 실행되는 명령
| 명령 | 설명 |
|---|---|
| -PS | TCP SYN 옵션은 호스트가 온라인 상태인지 확인합니다. 이 옵션은 스캔 목록에서 지정된 모든 포트로 SYN 플래그가 설정된 비어 있는 원시 TCP 패킷을 전송합니다. Nmap은 SYN/ACK TCP 패킷이 반환되고 RST가 반환되어 포트가 닫혀 있음을 나타낼 때 호스트를 온라인 상태로 보고합니다. Nmap 호스트 컴퓨터는 SYN/ACK 응답이 해당 관점에서 예상되지 않기 때문에 ACK 대신 RST로 nascent 연결을 분해합니다. 여러 포트 프로브가 지정된 경우 병렬로 전송됩니다. 요구 사항:
|
| -PA | 패킷 필터링 장치를 검색합니다. 이 옵션은 지정된 포트 목록을 사용한 TCP ACK 호스트 검색입니다. 정의된 목록이 없으면 기본 포트 80이 사용됩니다. Nmap은 ACK 플래그가 설정된 비어 있는 원시 TCP 패킷을 전송합니다. 이 작업은 설정된 TCP 연결을 통해 데이터를 확인하여 원격 호스트가 RST 패킷으로 응답하게 만듭니다. 원격 호스트가 RST 패킷으로 응답하면 Nmap은 호스트가 온라인 상태임을 알 수 있습니다. ACK ping 프로브는 상태 비저장 패킷 필터링, 방화벽 및 라우터와 같은 네트워크 엔터티, 호스트 라우팅 테이블/방화벽 소프트웨어에 의한 TCP SYN 패킷의 패킷 필터링을 통과할 수 있습니다. 상태 저장 방화벽은 예상치 않은 패킷을 삭제하여, ACK 패킷을 삭제시키고, SYN TCP 프로브가 통과할 가능성을 높입니다. 요구 사항:
주: Ping SYN(-PS) 및 Ping ACK(-PA) 패킷 유형 모두 동일한 스캔 시도에 구성될 수 있습니다. |
| -O | 벤더 이름, 기본 OS, OS 세대, 라우터 또는 스위치와 같은 장치 유형을 제공하는 원격 hostm에 대해 OS 검색을 사용하도록 설정합니다. Nmap은 TCP/IP 스택 핑거프린트를 사용하여 호스트에서 실행 중인 OS 제품군을 확인합니다. Nmap은 일련의 TCP 및 UPD 패킷을 호스트로 전송하고 응답을 검사합니다. 응답을 철저히 테스트한 후 Nmap은 해당 nmap-os-db 데이터베이스에 대해 결과를 비교하고 일치 항목이 있으면 OS 상세 정보를 출력합니다. Nmap이 O를 추측할 수 없고 하나 이상의 열린 포트와 하나의 닫힌 포트가 발견되면 지문과 nmap.org에 제출하기 위한 URL을 생성합니다. OS 검색에는 NSE(Nmap 스크립팅 엔진)의 스크립트가 사용되지 않습니다. OS 검색은 애플리케이션/서비스 버전 검색 후에 실행되어 OS 검색의 정확도에 도움이 됩니다. 하지만 두 스캔 유형은 결과가 모순적일 수 있습니다. OS 검색은 TCP 전송 계층에서 실행되고, 애플리케이션/서비스 버전 검색은 TCP 스택의 높은 수준에서 실행됩니다. 요구 사항:
|
| -p | 검색할 포트 목록입니다. |
| -T4 | Nmap의 적극적인 타이밍 템플릿입니다. |
| -v | 자세한 상세 정보를 사용하도록 설정합니다. 이 명령은 일반적으로 표준 출력 뷰어에 대한 진행 상태 표시를 제공하기 위해 사용됩니다. 하지만 NSE(Nmap 스크립팅 엔진) 스크립트가 추가 상세 정보를 제공하도록 만들 수 있습니다. |
| -Pn | 기본 ping을 사용하지 않도록 설정합니다. 이 명령은 초기 Nmap 호스트 검색 스캔 단계를 건너뛰고 모든 호스트를 온라인 상태인 것처럼 처리합니다. 기본 검색 프로브로 실행되는 포트 집합이 열린 포트를 찾지 못할 경우에도 포트 스캔을 수행하려면 이 명령을 사용합니다. |
| -r | 임의 스캔 없이 포트를 연속적으로 스캔합니다. |
| --reason | Nmap이 포트를 특정 상태로 분류한 이유를 설명합니다. |
| --system-dns | DNS 이름 서버 대신 역방향 DNS 조회를 위해 운영 체제의 DNS 확인자를 사용합니다. 여러 rDNS 요청이 병렬로 수행되는 반면에 한 번에 하나의 IP 주소만 확인할 수 있기 때문에 이 옵션은 DNS 서버를 사용하는 것보다 느립니다. 하지만 반환되는 값은 호스트 CI를 만들기 위해 사용되는 MID 서버에서 반환되는 값과 일치합니다. |
| -X - | stdout을 XML 파일로 리디렉션합니다. |
| 2> <file-path> | Nmap이 stderr에 기록한 오류 메시지를 지정된 파일로 리디렉션합니다. |
애플리케이션 검색 중 Nmap이 반환하는 데이터
- 포트 상태:
- 열림: 애플리케이션이 포트에서 현재 TCP(또는 UDP) 패킷을 수신하는 중입니다.
- 열림|필터링됨: Nmap이 포트가 열려 있거나 필터링되었는지 확인할 수 없습니다. 열리 포트는 Nmap의 UDP, IP 프로토콜, FIN, NULL 및 Xmas 스캔을 사용할 때 응답을 반환하지 않을 수 있습니다.
- 서비스 이름: 서비스 포트에서 현재 TCP(또는 UDP) 패킷을 수신 중인 서비스의 이름입니다.
- 서비스 제품: Nmap에서 식별된 대로 열린 포트에서 실행 중인 애플리케이션의 이름입니다.
- 추가 서비스 정보: 검색이 애플리케이션 식별을 위해 사용할 수 있는 Nmap에서 반환되는 모든 추가 정보입니다.
애플리케이션 검색 중 Nmap에서 실행되는 명령
MID 서버는 원격 호스트에 대해 하나의 IP 주소와 스캔할 포트를 Nmap 명령으로 전달합니다. Nmap은 포트에서 현재 수신 대기 중인 애플리케이션을 식별하려고 시도한 후 새 CI를 만들어야 하는지 또는 기존 CI를 업데이트해야 하는지 여부를 결정합니다. 호스트가 Nmap에서 작동 중인 것으로 보고되어야 합니다.
- 서비스 제품
- 서비스 이름
- 추가 서비스 정보
- 스캔한 포트 상태주:서비스 제품 및 서비스 이름 값은 NULL일 수 없으며, 서비스 이름은 물음표로 끝날 수 없습니다. Nmap은 스캔한 포트에서 수신 대기 중인 애플리케이션을 추측할 때 서비스 이름에 물음표를 추가합니다. Nmap이 정적 nmap-services 레지스트리 파일에서 애플리케이션 이름을 검색할 수 없으면 인스턴스가 애플리케이션 CI를 만들거나 업데이트하지 않습니다.
| 명령 | 설명 |
|---|---|
| -sS | TCP SYN(stealth) 포트 스캔입니다. 이 옵션은 기본 스캔 옵션이며 TCP 연결을 완료하지 않습니다. 스캔 작업 시에는 열림, 닫힘 또는 필터링됨 상태의 포트를 구분할 수 있습니다. TCP SYN 스캔은 연결을 설정하기 전 요청을 중단하는 반열림 재설정을 구현합니다. SYN/ACK가 반환되면 포트가 열림 상태입니다(애플리케이션이 수신 대기 중임). RST가 반환되면 포트가 닫힘 상태입니다. 여러 번 재전송한 후에도 응답이 수신되지 않으면 포트가 필터링됨으로 표시됩니다. ICMP 연결 불가능 오류(유형 3, 코드 1,2,3,9,10,13)가 수신된 경우에도 포트가 필터링됨으로 표시됩니다. 요구 사항:
|
| -sV | 프로브는 포트를 열어서 서비스 프로토콜, 애플리케이션 이름, 버전 번호, 호스트 이름, 장치 유형, OS 제품군 및 SSH 프로토콜 버전과 같은 기타 상세 정보를 확인합니다. Nmap이 응답을 수신할 때 nmap.org에 제출할 지문 및 URL을 출력하는 데이터베이스에 대해 일치하는지 비교할 수 없습니다. 정적 nmap-services 레지스트리 파일의 포트 번호를 확인하여 포트에서 현재 수신 대기 중일 수 있는 애플리케이션 서비스 이름을 결정합니다. Nmap으로 반환된 서비스에는 물음표가 추가되어 Nmap에서 해당 ID가 추측되었음을 나타냅니다. Nmap이 열린 포트에서 실행 중인 애플리케이션에서 추측을 수행할 때는 인스턴스가 애플리케이션 CI를 만들거나 업데이트하지 않습니다. 주: 이 명령에는 원시-패킷 권한이 필요하지 않습니다. |
| --datadir | 애플리케이션/버전 검색 중 실행할 안전한 Nmap 스크립트 집합이 포함된 디렉터리 경로입니다. |
| -p | 스캔할 단일 포트입니다. |
| -T4 | Nmap의 적극적인 타이밍 템플릿입니다. |
| -v | 자세한 상세 정보를 사용하도록 설정합니다. 이 명령은 일반적으로 표준 출력 뷰어에 대한 진행 상태 표시를 제공하기 위해 사용됩니다. 하지만 NSE(Nmap 스크립팅 엔진) 스크립트가 추가 상세 정보를 제공하도록 만들 수 있습니다. |
| -Pn | 기본 ping을 사용하지 않도록 설정합니다. 이 명령은 초기 Nmap 호스트 검색 스캔 단계를 건너뛰고 모든 호스트를 온라인 상태인 것처럼 처리합니다. 기본 검색 프로브로 실행되는 포트 집합이 열린 포트를 찾지 못할 경우에도 포트 스캔을 수행하려면 이 명령을 사용합니다. |
| -r | 임의 스캔 없이 포트를 연속적으로 스캔합니다. |
| --reason | Nmap이 포트를 특정 상태로 분류한 이유를 설명합니다. |
| --system-dns | DNS 이름 서버 대신 역방향 DNS 조회를 위해 운영 체제의 DNS 확인자를 사용합니다. 여러 rDNS 요청이 병렬로 수행되는 반면에 한 번에 하나의 IP 주소만 확인할 수 있기 때문에 이 옵션은 DNS 서버를 사용하는 것보다 느립니다. 하지만 반환되는 값은 호스트 CI를 만들기 위해 사용되는 MID 서버에서 반환되는 값과 일치합니다. |
| -X - | stdout을 XML 파일로 리디렉션합니다. |
| 2> <file-path> | Nmap이 stderr에 기록한 오류 메시지를 지정된 파일로 리디렉션합니다. |