Nmap 출력 형식 관리

NmapBeginner
지금 연습하기

소개

이 랩에서는 Nmap 에서 출력 형식을 관리하는 방법을 배우는 것을 목표로 합니다. 먼저 IP 주소 192.168.1.1에 대한 기본적인 스캔을 수행하여 열린 포트와 서비스에 대한 정보를 수집합니다. 그런 다음, 일반 텍스트, XML, grepable 출력 등 다양한 형식으로 스캔 결과를 저장하고, 기존 파일에 출력을 추가하는 방법도 배웁니다. 마지막으로, Xfce 텍스트 편집기에서 결과를 엽니다.

nmap 192.168.1.1 로 기본 스캔 실행

이 단계에서는 Nmap 을 사용하여 IP 주소 192.168.1.1에 대한 기본 스캔을 수행합니다. Nmap 은 패킷을 전송하고 응답을 분석하여 컴퓨터 네트워크에서 호스트와 서비스를 검색하는 데 사용되는 강력한 네트워크 스캔 도구입니다. 기본 스캔은 열린 포트 및 운영 체제 세부 정보와 같은 대상에 대한 정보를 제공합니다.

먼저, nmap 명령의 기본 구문을 이해해 보겠습니다.

nmap [target]

여기서 [target]은 스캔하려는 IP 주소 또는 호스트 이름입니다.

이제 192.168.1.1에 대한 기본 스캔을 실행해 보겠습니다. 터미널을 열고 다음 명령을 실행합니다.

nmap 192.168.1.1

이 명령은 대상 IP 주소에 대한 스캔을 시작합니다. Nmap 은 어떤 포트가 열려 있는지, 어떤 서비스가 실행 중인지, 그리고 잠재적으로 대상의 운영 체제를 확인하려고 시도합니다.

출력은 다음과 유사하게 보일 것입니다 (정확한 출력은 대상 시스템에 따라 다릅니다).

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh

Nmap done: 1 IP address (1 host up) scanned in 2.18 seconds

이 출력은 호스트 192.168.1.1이 활성 상태이며 포트 22 (SSH) 가 열려 있음을 보여줍니다. "Not shown: 999 closed ports" 줄은 Nmap 이 출력을 간결하게 유지하기 위해 999 개의 닫힌 포트를 표시하지 않았음을 나타냅니다.

nmap -oN scan.txt 127.0.0.1 로 일반 파일에 저장

이 단계에서는 -oN 옵션을 사용하여 Nmap 스캔의 출력을 일반 텍스트 파일에 저장합니다. 이는 나중에 분석하거나 보고할 수 있도록 스캔 결과를 저장하는 데 유용합니다.

-oN 옵션은 Nmap 에게 출력을 사람이 읽을 수 있는 형식으로 지정된 파일에 저장하도록 지시합니다. 구문은 다음과 같습니다.

nmap -oN <filename> <target>

여기서 <filename>은 출력을 저장하려는 파일의 이름이고, <target>은 스캔하려는 IP 주소 또는 호스트 이름입니다.

이 경우 127.0.0.1 (localhost) 을 스캔하고 출력을 ~/project 디렉토리의 scan.txt라는 파일에 저장합니다.

터미널을 열고 다음 명령을 실행합니다.

nmap -oN scan.txt 127.0.0.1

스캔이 완료된 후 텍스트 편집기 또는 cat 명령을 사용하여 scan.txt 파일의 내용을 볼 수 있습니다. 예를 들어:

cat scan.txt

출력은 다음과 유사합니다 (정확한 출력은 다를 수 있습니다).

## Nmap 7.80 scan initiated Tue Oct 27 10:00:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http

## Nmap done at Tue Oct 27 10:00:02 2023 -- 1 IP address (1 host up) scanned in 2.00 seconds

이 출력은 터미널에서 볼 수 있는 정보와 동일하지만, 이제는 나중에 참조할 수 있도록 scan.txt 파일에 저장됩니다.

nmap -oX scan.xml 192.168.1.1 로 XML 생성

이 단계에서는 Nmap 스캔의 결과를 포함하는 XML 파일을 생성합니다. XML 형식은 스캔 결과를 프로그래밍 방식으로 구문 분석하는 데 유용하며, Nmap 을 다른 도구나 스크립트와 더 쉽게 통합할 수 있도록 합니다.

-oX 옵션은 Nmap 에게 출력을 XML 형식으로 지정된 파일에 저장하도록 지시합니다. 구문은 다음과 같습니다.

nmap -oX <filename> <target>

여기서 <filename>은 생성하려는 XML 파일의 이름이고, <target>은 스캔하려는 IP 주소 또는 호스트 이름입니다.

이 경우 192.168.1.1을 스캔하고 출력을 ~/project 디렉토리의 scan.xml이라는 파일에 저장합니다.

터미널을 열고 다음 명령을 실행합니다.

nmap -oX scan.xml 192.168.1.1

스캔이 완료된 후 텍스트 편집기 또는 cat 명령을 사용하여 scan.xml 파일의 내용을 볼 수 있습니다. 그러나 XML 파일이므로 많은 마크업을 포함하며 일반 텍스트 편집기에서 쉽게 읽을 수 없을 수 있습니다.

cat scan.xml

출력은 호스트 세부 정보, 열린 포트, 서비스 버전 등을 포함하여 스캔에 대한 자세한 정보를 담고 있는 대규모 XML 문서가 됩니다. xmllint와 같은 도구를 사용하여 XML 파일을 형식화하고 유효성을 검사하거나, xml.etree.ElementTree와 같은 라이브러리를 사용하여 Python 과 같은 프로그래밍 언어를 사용하여 데이터를 구문 분석할 수 있습니다.

이 XML 출력은 사람이 읽을 수 있도록 설계된 것이 아니라 자동 처리를 위해 설계되었습니다.

nmap -oG scan.grep 127.0.0.1 로 grep 가능한 출력 생성

이 단계에서는 Nmap 스캔에서 grep 가능한 출력 파일을 생성합니다. 이 형식은 grep, awk, sed와 같은 명령줄 도구로 쉽게 구문 분석할 수 있도록 특별히 설계되어 스크립팅 및 자동 분석에 편리합니다.

-oG 옵션은 Nmap 에게 출력을 grep 가능한 형식으로 지정된 파일에 저장하도록 지시합니다. 구문은 다음과 같습니다.

nmap -oG <filename> <target>

여기서 <filename>은 grep 가능한 출력을 저장하려는 파일의 이름이고, <target>은 스캔하려는 IP 주소 또는 호스트 이름입니다.

이 경우 127.0.0.1 (localhost) 을 스캔하고 출력을 ~/project 디렉토리의 scan.grep이라는 파일에 저장합니다.

터미널을 열고 다음 명령을 실행합니다.

nmap -oG scan.grep 127.0.0.1

스캔이 완료된 후 텍스트 편집기 또는 cat 명령을 사용하여 scan.grep 파일의 내용을 볼 수 있습니다.

cat scan.grep

출력은 grep으로 쉽게 구문 분석할 수 있는 형식입니다. 예를 들어:

## Nmap 7.80 scan initiated Tue Oct 27 10:00:00 2023
## Nmap scan report for localhost (127.0.0.1)
Host: 127.0.0.1 (localhost) Status: Up
Host: 127.0.0.1 (localhost) Ports: 22/open/tcp//ssh///, 80/open/tcp//http///
## Nmap done at Tue Oct 27 10:00:02 2023 -- 1 IP address (1 host up) scanned in 2.00 seconds

이제 grep을 사용하여 파일에서 특정 정보를 검색할 수 있습니다. 예를 들어, 열린 모든 포트를 찾으려면 다음 명령을 사용할 수 있습니다.

grep "Ports:" scan.grep

그러면 열린 포트가 포함된 줄이 출력됩니다.

Host: 127.0.0.1 (localhost) Ports: 22/open/tcp//ssh///, 80/open/tcp//http///

grep 가능한 출력 형식은 추가 처리를 위해 Nmap 스캔 결과에서 특정 데이터를 추출하는 간단하고 효율적인 방법을 제공합니다.

nmap -oN scan.txt --append-output 192.168.1.1 로 출력 추가

이 단계에서는 Nmap 스캔의 출력을 기존 파일에 추가합니다. 이는 이전 결과를 덮어쓰지 않고 여러 스캔의 결과를 단일 파일로 결합하려는 경우에 유용합니다.

-oN 옵션을 사용하여 출력을 일반 형식으로 저장하고, --append-output 옵션을 사용하여 출력을 지정된 파일에 추가합니다.

먼저, 이전 단계에서 127.0.0.1을 스캔한 결과로 scan.txt라는 파일을 생성했음을 기억해 봅시다. 이제 192.168.1.1을 스캔한 결과를 동일한 파일에 추가합니다.

터미널을 열고 다음 명령을 실행합니다.

nmap -oN scan.txt --append-output 192.168.1.1

스캔이 완료되면 출력이 scan.txt 파일에 추가됩니다. 텍스트 편집기 또는 cat 명령을 사용하여 scan.txt 파일의 내용을 볼 수 있습니다.

cat scan.txt

파일에서 두 스캔의 결과를 모두 볼 수 있습니다. 첫 번째 부분은 127.0.0.1의 스캔이고, 두 번째 부분은 192.168.1.1의 스캔입니다.

--append-output 옵션은 새 스캔 결과가 파일의 끝에 추가되어 이전 내용을 보존하도록 합니다. 이는 --append-output 없이 -oN scan.txt 192.168.1.1을 사용하는 것과는 다릅니다. --append-output 없이 사용하면 기존 scan.txt 파일이 덮어쓰여집니다.

Xfce 텍스트 편집기에서 결과 열기

이 단계에서는 Nmap 스캔 결과를 Xfce 텍스트 편집기에서 엽니다. 이를 통해 그래픽 환경에서 스캔 출력을 보고 분석할 수 있습니다.

Xfce 텍스트 편집기는 mousepad라고 합니다. scan.txt, scan.xml, scan.grep과 같이 이전 단계에서 생성한 파일을 여는 데 사용할 수 있습니다.

터미널에서 mousepad로 파일을 열려면 다음 명령을 사용합니다.

mousepad <filename>

여기서 <filename>은 열려는 파일의 이름입니다.

먼저 scan.txt 파일을 열어 보겠습니다. 터미널에서 다음 명령을 실행합니다.

mousepad scan.txt

그러면 scan.txt 파일이 mousepad 텍스트 편집기에서 열립니다. 이제 파일을 스크롤하여 Nmap 스캔 결과를 검사할 수 있습니다.

다음으로 scan.xml 파일을 열어 보겠습니다. 터미널에서 다음 명령을 실행합니다.

mousepad scan.xml

그러면 scan.xml 파일이 mousepad에서 열립니다. 이 파일에는 스크립트 및 기타 도구로 구문 분석하는 데 유용한 XML 형식의 스캔 결과가 포함되어 있습니다.

마지막으로 scan.grep 파일을 열어 보겠습니다. 터미널에서 다음 명령을 실행합니다.

mousepad scan.grep

그러면 scan.grep 파일이 mousepad에서 열립니다. 이 파일에는 grep과 같은 명령줄 도구를 사용하여 결과를 검색하고 필터링하는 데 유용한 grep 가능한 형식의 스캔 결과가 포함되어 있습니다.

mousepad와 같은 텍스트 편집기를 사용하면 그래픽 환경에서 Nmap 스캔 결과를 편리하게 보고 분석할 수 있습니다.

요약

이 랩에서는 참가자들이 Nmap 에서 출력 형식을 관리하는 방법을 배웠습니다. 그들은 먼저 IP 주소 192.168.1.1에 대한 기본 스캔을 수행하여 열린 포트 및 서비스에 대한 정보를 수집했습니다. 그런 다음 -oN을 사용하여 일반 텍스트, -oX를 사용하여 XML, -oG를 사용하여 grep 가능한 출력 등 다양한 형식으로 스캔 결과를 저장했습니다. 또한 --append-output 옵션을 사용하여 기존 파일에 출력을 추가하는 방법도 배웠습니다. 마지막으로 검토를 위해 Xfce 텍스트 편집기에서 결과를 열었습니다.