Nmap 출력 형식 변환

NmapBeginner
지금 연습하기

소개

이 랩에서는 Nmap 스캔 결과를 분석 및 보고를 용이하게 하기 위해 다양한 출력 형식으로 변환하는 방법을 배우게 됩니다. 이 랩에서는 nmap -oX를 사용하여 스캔 결과를 XML 로 저장한 다음, xsltproc를 사용하여 XML 출력을 브라우저에서 볼 수 있도록 HTML 로 변환하는 방법을 다룹니다.

또한 nmap -oG를 사용하여 스캔 결과를 grep 가능한 형식으로 저장하고, grep을 사용하여 IP 주소와 같은 특정 정보를 추출하여 추가 검토를 위해 텍스트 파일에 저장하는 방법도 살펴봅니다. 이를 통해 Nmap 스캔 출력에서 데이터를 효율적으로 추출하고 조작할 수 있습니다.

nmap -oX scan.xml 192.168.1.1 로 스캔을 XML 로 저장

이 단계에서는 Nmap 을 사용하여 스캔을 수행하고 결과를 XML 형식으로 저장하는 방법을 배우게 됩니다. XML (Extensible Markup Language, 확장성 마크업 언어) 은 사람이 읽을 수 있고 기계가 읽을 수 있는 형식으로 문서를 인코딩하기 위한 규칙 집합을 정의하는 마크업 언어입니다. Nmap 스캔 결과를 XML 형식으로 저장하면 다른 도구 및 스크립트에서 쉽게 구문 분석하고 분석할 수 있습니다.

먼저, 명령어를 이해해 보겠습니다.

nmap -oX scan.xml 192.168.1.1

  • nmap: Nmap 스캐너를 실행하는 명령어입니다.
  • -oX scan.xml: 이 옵션은 Nmap 에게 스캔 결과를 scan.xml이라는 파일에 XML 형식으로 저장하도록 지시합니다. -oX 옵션은 XML 출력 형식을 지정합니다.
  • 192.168.1.1: Nmap 이 스캔할 대상 IP 주소입니다. 필요한 경우 이 값을 스캔하려는 실제 IP 주소로 바꿉니다. 이 랩에서는 192.168.1.1을 사용합니다.

이제 LabEx VM 에서 명령어를 실행해 보겠습니다. Xfce 터미널을 열고 ~/project 디렉토리로 이동합니다. 이 디렉토리는 기본 작업 디렉토리입니다.

cd ~/project

다음으로, Nmap 명령을 실행하여 대상 IP 주소를 스캔하고 결과를 scan.xml에 저장합니다.

sudo nmap -oX scan.xml 192.168.1.1

Nmap 이 스캔을 실행하고 터미널에 진행 상황을 표시하는 것을 볼 수 있습니다. 출력에는 호스트 검색 및 포트 스캔과 같은 스캔의 다양한 단계가 표시됩니다.

스캔이 완료되면 ~/project 디렉토리에 scan.xml 파일이 생성되었는지 확인할 수 있습니다. ls 명령을 사용하여 디렉토리의 파일을 나열할 수 있습니다.

ls -l

파일 목록에 scan.xml이 표시되어야 합니다.

cat 명령 또는 nano와 같은 텍스트 편집기를 사용하여 scan.xml 파일의 내용을 볼 수도 있습니다.

cat scan.xml

또는

nano scan.xml

출력은 대상 IP 주소, 열린 포트 및 기타 정보를 포함하는 Nmap 스캔의 세부 정보를 담은 큰 XML 문서가 됩니다.

xsltproc /usr/share/nmap/nmap.xsl scan.xml -o scan.html 로 XML 을 HTML 로 변환

이 단계에서는 이전 Nmap 스캔의 XML 출력을 xsltproc를 사용하여 HTML 형식으로 변환하는 방법을 배우게 됩니다. xsltproc는 XSLT (Extensible Stylesheet Language Transformations, 확장 스타일시트 언어 변환) 스타일시트를 XML 문서에 적용하기 위한 명령줄 도구입니다. 이를 통해 XML 데이터를 HTML 과 같은 사람이 더 쉽게 읽을 수 있는 형식으로 변환할 수 있습니다.

명령어를 자세히 살펴보겠습니다.

xsltproc /usr/share/nmap/nmap.xsl scan.xml -o scan.html

  • xsltproc: XSLT 프로세서를 실행하는 명령어입니다.
  • /usr/share/nmap/nmap.xsl: Nmap 에서 제공하는 XSLT 스타일시트의 경로입니다. 이 스타일시트는 XML 데이터를 HTML 로 변환하는 방법을 정의합니다.
  • scan.xml: 이전 단계에서 생성한 입력 XML 파일입니다.
  • -o scan.html: 이 옵션은 변환된 HTML 문서의 출력 파일 이름을 지정합니다. -o 옵션은 output 을 의미합니다.

이제 LabEx VM 에서 명령어를 실행해 보겠습니다. ~/project 디렉토리에 있는지 확인합니다. 그렇지 않은 경우 다음을 사용하여 이동합니다.

cd ~/project

다음으로, xsltproc 명령을 실행하여 scan.xml 파일을 scan.html로 변환합니다.

xsltproc /usr/share/nmap/nmap.xsl scan.xml -o scan.html

이 명령어는 scan.xml 파일을 읽고, nmap.xsl 스타일시트를 적용하여, 동일한 디렉토리에 scan.html이라는 HTML 파일을 생성합니다.

명령이 완료된 후, scan.html 파일이 ~/project 디렉토리에 생성되었는지 확인할 수 있습니다. ls 명령을 사용하여 디렉토리의 파일을 나열할 수 있습니다.

ls -l

파일 목록에 scan.html이 표시되어야 합니다.

cat 명령 또는 nano와 같은 텍스트 편집기를 사용하여 scan.html 파일의 내용을 볼 수도 있습니다.

cat scan.html

또는

nano scan.html

출력은 서식이 지정된 Nmap 스캔 결과를 포함하는 HTML 문서가 됩니다.

Xfce 브라우저에서 HTML 파일 열기

이 단계에서는 이전 단계에서 생성한 scan.html 파일을 Xfce 웹 브라우저를 사용하여 엽니다. 이렇게 하면 Nmap 스캔 결과를 시각적으로 보기 좋고 탐색하기 쉬운 형식으로 볼 수 있습니다.

Xfce 브라우저에서 HTML 파일을 열려면 xdg-open 명령을 사용할 수 있습니다. 이 명령은 데스크톱에 독립적으로 파일을 연결된 애플리케이션으로 여는 방법입니다.

먼저, ~/project 디렉토리에 있는지 확인합니다. 그렇지 않은 경우 다음을 사용하여 이동합니다.

cd ~/project

다음으로, 다음 명령을 실행하여 Xfce 브라우저에서 scan.html 파일을 엽니다.

xdg-open scan.html

이 명령은 Xfce 에서 기본 웹 브라우저를 실행하고 scan.html 파일의 내용을 표시합니다. 대상 IP 주소, 열린 포트 및 기타 세부 정보에 대한 정보를 포함하여 Nmap 스캔 결과의 서식이 지정된 보고서를 볼 수 있습니다.

이제 브라우저에서 스캔 결과를 검토할 수 있습니다. HTML 형식은 원시 XML 출력에 비해 정보를 읽고 이해하기 더 쉽게 만듭니다.

nmap -oG scan.grep 127.0.0.1 로 grep 가능한 출력 저장

이 단계에서는 또 다른 Nmap 스캔을 수행하지만, 이번에는 출력을 "grep 가능한" 형식으로 저장합니다. 이 형식은 grep과 같은 도구로 쉽게 구문 분석할 수 있도록 특별히 설계되어 스캔 결과에서 특정 정보를 간단하게 추출할 수 있습니다.

Nmap 명령의 -oG 옵션은 출력을 grep 가능한 형식으로 저장하도록 지정합니다.

명령어를 자세히 살펴보겠습니다.

nmap -oG scan.grep 127.0.0.1

  • nmap: Nmap 스캐너를 실행하는 명령어입니다.
  • -oG scan.grep: 이 옵션은 Nmap 에게 grep 가능한 형식으로 출력을 scan.grep이라는 파일에 저장하도록 지시합니다.
  • 127.0.0.1: 스캔 대상 IP 주소입니다. 127.0.0.1은 루프백 주소로, 로컬 머신을 나타냅니다.

이제 LabEx VM 에서 명령어를 실행해 보겠습니다. ~/project 디렉토리에 있는지 확인합니다. 그렇지 않은 경우 다음을 사용하여 이동합니다.

cd ~/project

다음으로, grep 가능한 출력을 저장하기 위해 Nmap 명령을 실행합니다.

nmap -oG scan.grep 127.0.0.1

이 명령은 루프백 주소 (127.0.0.1) 를 스캔하고 결과를 grep 가능한 형식으로 scan.grep 파일에 저장합니다.

명령이 완료된 후, scan.grep 파일이 ~/project 디렉토리에 생성되었는지 확인할 수 있습니다. ls 명령을 사용하여 디렉토리의 파일을 나열할 수 있습니다.

ls -l

파일 목록에 scan.grep이 표시되어야 합니다.

cat 명령 또는 nano와 같은 텍스트 편집기를 사용하여 scan.grep 파일의 내용을 볼 수도 있습니다.

cat scan.grep

또는

nano scan.grep

출력은 grep으로 쉽게 구문 분석할 수 있는 형식으로 Nmap 스캔 결과를 포함하는 텍스트 파일이 됩니다.

grep "Host" scan.grep > hosts.txt 로 IP 주소 추출

이 단계에서는 이전 단계에서 생성한 scan.grep 파일에서 "Host"라는 단어가 포함된 줄을 추출하기 위해 grep 명령을 사용합니다. 이러한 줄에는 스캔된 호스트의 IP 주소가 포함되어 있습니다. 그런 다음 추출된 줄을 hosts.txt라는 새 파일에 저장합니다.

grep 명령은 텍스트 파일에서 특정 패턴을 검색하는 강력한 도구입니다. 이 경우, "Host"라는 단어가 포함된 줄을 찾기 위해 사용합니다.

> 기호는 출력 리디렉션을 위해 사용됩니다. grep 명령의 출력을 가져와 지정된 파일 (hosts.txt) 에 저장합니다. 파일이 이미 존재하는 경우 덮어쓰여집니다.

명령어를 자세히 살펴보겠습니다.

grep "Host" scan.grep > hosts.txt

  • grep: 파일에서 패턴을 검색하는 명령어입니다.
  • "Host": 검색하려는 패턴입니다. 이 경우, "Host"라는 단어가 포함된 줄을 검색합니다.
  • scan.grep: 검색할 파일입니다.
  • >: 출력 리디렉션 연산자입니다. grep 명령의 출력을 가져와 지정된 파일에 저장합니다.
  • hosts.txt: 출력을 저장할 파일입니다.

이제 LabEx VM 에서 명령어를 실행해 보겠습니다. ~/project 디렉토리에 있는지 확인합니다. 그렇지 않은 경우 다음을 사용하여 이동합니다.

cd ~/project

다음으로, IP 주소를 추출하여 hosts.txt 파일에 저장하기 위해 grep 명령을 실행합니다.

grep "Host" scan.grep > hosts.txt

이 명령은 scan.grep 파일에서 "Host"를 포함하는 줄을 검색하고 해당 줄을 hosts.txt라는 새 파일에 저장합니다.

명령이 완료된 후, hosts.txt 파일이 ~/project 디렉토리에 생성되었는지 확인할 수 있습니다. ls 명령을 사용하여 디렉토리의 파일을 나열할 수 있습니다.

ls -l

파일 목록에 hosts.txt가 표시되어야 합니다.

cat 명령 또는 nano와 같은 텍스트 편집기를 사용하여 hosts.txt 파일의 내용을 볼 수도 있습니다.

cat hosts.txt

또는

nano hosts.txt

출력은 "Host"라는 단어를 포함하는 scan.grep의 줄을 포함하는 텍스트 파일이 됩니다. 이러한 줄에는 스캔된 호스트의 IP 주소가 포함됩니다.

Xfce 터미널에서 추출된 데이터 검토

이 단계에서는 Xfce 터미널을 사용하여 hosts.txt 파일에서 추출된 데이터를 검토합니다. 이를 통해 Nmap 스캔 중에 식별된 IP 주소를 확인할 수 있습니다.

cat 명령을 사용하여 터미널에서 직접 hosts.txt 파일의 내용을 표시할 수 있습니다. 또는 nano와 같은 텍스트 편집기를 사용하여 파일을 열고 데이터를 검토할 수 있습니다.

먼저, ~/project 디렉토리에 있는지 확인합니다. 그렇지 않은 경우 다음을 사용하여 이동합니다.

cd ~/project

cat 명령을 사용하여 hosts.txt 파일의 내용을 보려면 다음 명령을 실행합니다.

cat hosts.txt

이렇게 하면 터미널에 hosts.txt 파일의 내용이 표시됩니다. "Host:"로 시작하고 IP 주소 및 기타 정보가 뒤따르는 줄을 볼 수 있습니다.

또는 nano 텍스트 편집기를 사용하여 hosts.txt 파일을 열려면 다음 명령을 실행합니다.

nano hosts.txt

이렇게 하면 hosts.txt 파일이 nano 편집기에서 열립니다. 그런 다음 파일을 스크롤하여 추출된 데이터를 검토할 수 있습니다. nano를 종료하려면 Ctrl+X를 누른 다음 Y를 눌러 저장하고 (변경한 경우) Enter를 누릅니다.

추출된 데이터를 검토하여 grep 명령이 scan.grep 파일에서 IP 주소를 포함하는 줄을 성공적으로 추출했는지 확인할 수 있습니다.

요약

이 랩에서는 Nmap 을 사용하여 스캔 결과를 다양한 형식으로 저장하는 방법을 배웠습니다. 먼저, Nmap 스캔을 수행하고 -oX 옵션을 사용하여 XML 형식으로 출력을 저장하여 scan.xml 파일을 생성했습니다. 이를 통해 다른 도구에서 쉽게 구문 분석하고 분석할 수 있습니다.

다음으로, 이 랩에서는 xsltprocnmap.xsl 스타일시트를 사용하여 XML 출력을 HTML 로 변환하여 사람이 읽을 수 있는 scan.html 파일을 생성하는 과정을 안내합니다. 마지막으로, grep을 사용하여 출력을 grep 가능한 형식으로 저장하고 IP 주소와 같은 특정 정보를 추출하는 방법을 배우게 됩니다.