Nmap과 DNS를 활용한 Kali 정찰

Kali LinuxBeginner
지금 연습하기

소개

이 실습에서는 Kali Linux를 사용하여 네트워크 스캔 및 DNS 쿼리 기술에 중점을 둔 정찰의 핵심 요소를 배웁니다. 이 실습을 통해 강력한 네트워크 스캔 도구인 nmap을 사용하여 대상 시스템의 열린 포트와 서비스를 식별하고, dnsrecon을 사용하여 DNS 정보를 수집하는 실무 경험을 쌓게 됩니다. 초보자를 위해 설계된 이 실습은 독립적인 클라우드 호스트에서 실행되는 안전한 LabEx VM 환경 내에서 단계별 지침을 제공합니다. nmap으로 포트 스캔을 수행하고, 스크립트를 사용하여 서비스를 열거하며, DNS 레코드를 조회하고, 분석을 위해 결과를 저장하는 과정을 진행합니다. 터미널을 열면 자동으로 Kali Linux 컨테이너의 셸에 연결되므로, 컨테이너를 수동으로 시작하거나 진입할 필요 없이 바로 실습을 시작할 수 있습니다.

기본 Nmap 스캔 설치 및 실행

첫 번째 단계에서는 네트워크 스캔을 위한 강력한 도구인 nmap을 설치하고 사용하여 대상 시스템의 열린 포트를 식별하는 방법을 배웁니다. 포트 스캔은 정찰의 기본 기술로, 기기에서 어떤 서비스가 실행 중인지 파악하고 잠재적인 취약점을 발견하는 데 도움을 줍니다. 이 단계는 초보자를 위해 설계되었으며, 모든 세부 사항을 안내해 드립니다.

LabEx VM 환경에서 터미널을 열면 자동으로 Kali Linux 컨테이너의 셸에 연결됩니다. 컨테이너를 수동으로 시작하거나 셸에 진입할 필요가 없으며, 환경은 이미 설정되어 있습니다.

시작하기 전에 nmap이 무엇을 하는지 이해해 봅시다. Network Mapper의 약자인 nmap은 패킷을 보내고 응답을 분석하여 네트워크상의 호스트와 서비스를 발견하는 데 사용되는 도구입니다. 열린 포트는 종종 웹 서버나 SSH와 같이 실행 중인 서비스를 나타내며, 이는 추가 분석을 위한 진입점이 될 수 있습니다.

이제 nmap을 설치하고 기본 스캔을 수행해 보겠습니다. 다음 지침을 주의 깊게 따르십시오.

  1. 먼저 패키지 목록을 업데이트하여 최신 버전의 nmap을 설치할 수 있도록 합니다. 터미널에 다음 명령어를 입력하고 Enter를 누르십시오.

    apt update
    

    이 명령어는 사용 가능한 패키지 목록을 새로 고칩니다. 완료되는 데 몇 초 정도 걸릴 수 있으며, 업데이트 과정이 출력되는 것을 볼 수 있습니다.

  2. 다음으로, 다음 명령어를 입력하고 Enter를 눌러 nmap을 설치합니다.

    apt install -y nmap
    

    -y 플래그는 확인 메시지 없이 자동으로 설치를 진행합니다. 설치가 완료될 때까지 기다리십시오. 잠시 후 설치 진행 상황이 출력됩니다.

  3. nmap이 설치되면 localhost(사용자 자신의 컨테이너, IP 주소 127.0.0.1)를 대상으로 기본 스캔을 실행해 보겠습니다. 이는 연습하기에 안전한 대상입니다. 다음 명령어를 입력하고 Enter를 누르십시오.

    nmap localhost
    

    이 명령어는 localhost의 가장 일반적인 포트들을 스캔합니다. 몇 초 후 다음과 유사한 출력이 나타납니다(실제 출력은 다를 수 있음).

    Starting Nmap 7.91 ( https://nmap.org ) at ...
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00010s latency).
    Not shown: 997 closed ports
    PORT     STATE SERVICE
    80/tcp   open  http
    ...
    Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
    

    이 출력에서 Host is up은 대상에 연결할 수 있음을 확인해 줍니다. 표에는 열린 포트, 상태(open은 접근 가능함을 의미), 그리고 관련 서비스(예: 80번 포트의 http)가 나열됩니다. 이 정보는 시스템에서 어떤 서비스가 실행 중인지 이해하는 데 도움이 됩니다.

이 단계에서는 기본 포트 스캔을 위해 nmap을 설치하고 사용하는 방법을 배웠습니다. 안전한 대상을 대상으로 열린 포트를 식별함으로써 정찰의 첫걸음을 내디뎠습니다. 다음 단계에서는 스캔 결과를 저장하여 추가 분석을 수행하는 방법을 배웁니다. 다음 단계로 넘어가기 전에 nmap 명령어 실행에 익숙해지도록 하십시오.

Nmap 스캔 결과를 파일로 저장하기

nmap으로 기본 스캔을 수행했으므로, 이제 나중에 참조할 수 있도록 스캔 결과를 파일로 저장하는 방법을 배워보겠습니다. 결과를 저장하는 것은 정찰의 필수 기술로, 스캔을 다시 실행할 필요 없이 발견한 내용을 문서화하고 나중에 분석할 수 있게 해줍니다. 이 단계는 이전 단계에서 바로 이어지므로, 진행하기 전에 기본 nmap 스캔을 완료했는지 확인하십시오.

Linux의 출력 리다이렉션을 사용하면 명령어의 결과를 터미널에 표시하는 대신 파일로 저장할 수 있습니다. 이는 > 기호를 사용하여 수행하며, 지정된 파일에 출력을 기록하고 이미 파일이 존재할 경우 덮어씁니다. Kali Linux 컨테이너 내의 기본 작업 영역인 /root 디렉토리에 결과를 저장하겠습니다.

nmap 스캔 결과를 저장하려면 다음 지침을 따르십시오.

  1. localhost에 대해 다시 nmap 스캔을 수행하고 출력을 /root 디렉토리의 nmap_scan.txt라는 파일로 리다이렉션합니다. 터미널에 다음 명령어를 입력하고 Enter를 누르십시오.

    nmap localhost > /root/nmap_scan.txt
    

    > 기호는 nmap localhost 명령어의 출력을 /root/nmap_scan.txt 파일로 보냅니다. 결과가 파일로 저장되기 때문에 터미널에는 스캔 결과가 표시되지 않습니다. 스캔이 완료될 때까지 몇 초간 기다리십시오.

  2. 출력이 성공적으로 저장되었는지 확인하려면 다음 명령어를 입력하고 Enter를 눌러 파일 내용을 확인하십시오.

    cat /root/nmap_scan.txt
    

    다음과 유사한 출력이 나타나야 합니다(실제 출력은 다를 수 있음).

    Starting Nmap 7.91 ( https://nmap.org ) at ...
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00010s latency).
    Not shown: 997 closed ports
    PORT     STATE SERVICE
    80/tcp   open  http
    ...
    Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
    

    이는 스캔 결과가 /root/nmap_scan.txt에 성공적으로 저장되었음을 확인해 줍니다. 결과를 파일로 저장하는 것은 정찰 작업 중에 발견한 내용을 추적하는 실용적인 방법입니다.

이 단계에서는 문서화를 위해 nmap 출력을 파일로 리다이렉션하는 방법을 배웠습니다. 이 기술은 다음 단계에서 더 고급 스캔 기술을 다룰 때 유용하게 사용될 것입니다. 다음 단계로 넘어가기 전에 파일에 저장된 결과를 확인할 수 있는지 확인하십시오.

Nmap 스크립트를 이용한 서비스 열거

기본 스캔 기술을 바탕으로, 이 단계에서는 nmap 스크립트를 사용하여 열린 포트에서 실행 중인 서비스에 대한 자세한 정보를 수집하는 서비스 열거를 소개합니다. 서비스 열거는 알려진 취약점이 있을 수 있는 서비스의 특정 버전을 식별하는 데 도움이 되므로 정찰의 중요한 부분입니다. 이 단계는 nmap이 설치되어 있고 이전 스캔을 완료했다고 가정합니다.

서비스 열거는 단순히 열린 포트를 찾는 것을 넘어, 해당 포트에서 실행 중인 정확한 소프트웨어와 버전을 식별하는 것을 목표로 합니다. nmap은 NSE(Nmap Scripting Engine)라는 스크립팅 엔진을 제공하며, 여기에는 서비스 세부 정보와 잠재적인 문제를 감지하기 위한 사전 구축된 스크립트가 포함되어 있습니다. 이 단계에서는 버전 감지를 위해 -sV 플래그를 사용합니다.

다음 지침에 따라 localhost에서 서비스를 열거해 보겠습니다.

  1. 버전 감지 기능을 사용하여 localhost에 대해 nmap 스캔을 실행합니다. 터미널에 다음 명령어를 입력하고 Enter를 누르십시오.

    nmap -sV localhost
    

    -sV 플래그는 nmap에게 열린 포트를 조사하여 자세한 서비스 및 버전 정보를 가져오도록 지시합니다. 스캔이 완료될 때까지 기다리십시오. 기본 스캔보다 몇 초 더 걸릴 수 있습니다. 다음과 유사한 출력이 나타나야 합니다(실제 출력은 다를 수 있음).

    Starting Nmap 7.91 ( https://nmap.org ) at ...
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00010s latency).
    Not shown: 997 closed ports
    PORT     STATE SERVICE VERSION
    80/tcp   open  http    Apache httpd 2.4.41 ((Ubuntu))
    ...
    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
    

    이 출력에서 80번 포트에서 실행 중인 서비스의 버전(예: Apache httpd 2.4.41)을 확인할 수 있습니다. 특정 버전에는 추가로 조사할 수 있는 알려진 취약점이 있을 수 있으므로 이 정보는 매우 가치가 있습니다.

  2. 이 버전 감지 스캔 결과를 /root 디렉토리의 service_scan.txt라는 파일로 저장합니다. 다음 명령어를 입력하고 Enter를 누르십시오.

    nmap -sV localhost > /root/service_scan.txt
    

    이전과 마찬가지로 > 기호는 출력을 지정된 파일로 리다이렉션합니다. 결과가 /root/service_scan.txt에 직접 저장되므로 터미널에서는 결과를 볼 수 없습니다.

  3. 파일 내용을 확인하여 출력이 저장되었는지 확인합니다. 다음 명령어를 입력하고 Enter를 누르십시오.

    cat /root/service_scan.txt
    

    위와 동일한 자세한 출력이 파일에 저장되어 나중에 참조할 수 있게 된 것을 확인할 수 있습니다.

이 단계에서는 nmap을 사용하여 서비스를 열거하고 대상에서 실행 중인 서비스에 대한 더 깊은 통찰력을 얻는 방법을 배웠습니다. 다음 단계에서는 다른 도구를 사용하여 DNS 정찰을 탐구할 것입니다. 다음 단계로 넘어가기 전에 버전 감지 스캔을 실행하고 결과를 저장하는 방법을 이해했는지 확인하십시오.

dnsrecon을 이용한 DNS 설치 및 쿼리

이 단계에서는 도메인에 대한 DNS 정보를 수집하는 도구인 dnsrecon을 사용하여 DNS 정찰에 집중합니다. DNS 열거는 서브도메인, 메일 서버 및 기타 인프라 세부 정보를 식별하는 데 도움이 되며, 이는 대상의 온라인 존재를 이해하는 데 매우 중요합니다. 이 단계는 초보자를 위해 설계되었으며 Kali Linux 컨테이너 셸 내에서 작업하고 있다고 가정합니다.

DNS(Domain Name System)는 example.com과 같은 도메인 이름을 컴퓨터가 통신에 사용하는 IP 주소로 변환합니다. DNS 레코드에는 호스트의 IP 주소(A 레코드), 메일 서버(MX 레코드) 등과 같은 정보가 포함됩니다. dnsrecon은 이러한 레코드를 쿼리하여 도메인 설정에 대한 세부 정보를 밝혀내는 도구입니다. 이 실습에서는 연습을 위해 안전한 대상인 example.com을 사용합니다.

dnsrecon을 설치하고 사용하려면 다음 지침을 따르십시오.

  1. 패키지 목록을 업데이트하여 최신 버전의 dnsrecon을 설치할 수 있도록 합니다. 터미널에 다음 명령어를 입력하고 Enter를 누르십시오.

    apt update
    

    이 명령어는 패키지 목록을 새로 고칩니다. 프로세스가 완료될 때까지 기다리십시오. 업데이트 진행 상황이 출력됩니다.

  2. 다음 명령어를 입력하고 Enter를 눌러 dnsrecon을 설치합니다.

    apt install -y dnsrecon
    

    -y 플래그는 자동으로 설치를 확인합니다. 설치가 완료될 때까지 기다리십시오. 몇 초 정도 걸립니다. 설치 진행 상황이 출력됩니다.

  3. 설치가 완료되면 example.com에 대해 기본 DNS 열거를 실행합니다. 다음 명령어를 입력하고 Enter를 누르십시오.

    dnsrecon -d example.com
    

    -d 옵션은 쿼리할 도메인을 지정합니다. 명령어를 실행하면 다음과 유사한 출력이 나타납니다(실제 출력은 다를 수 있음).

    [*] Performing General Enumeration of Domain: example.com
    [*] DNSSEC is not configured for example.com
    [*] SOA ns.icann.org 199.4.138.53
    [*] NS ns.icann.org 199.4.138.53
    [*] A example.com 93.184.216.34
    [*] AAAA example.com 2606:2800:220:1:248:1893:25c8:1946
    [*] MX example.com 0 .
    [*] TXT example.com "v=spf1 -all"
    [*] Enumeration Complete.
    

    이 출력은 example.com에 대한 다양한 DNS 레코드를 보여주며, 구성에 대한 통찰력을 제공합니다.

    • SOA (Start of Authority): 영역에 대한 관리 정보를 포함합니다.
    • NS (Name Server): 도메인에 대해 권한이 있는 서버를 나열합니다.
    • A (Address): 도메인 이름을 IPv4 주소로 매핑합니다.
    • AAAA (IPv6 Address): 도메인 이름을 IPv6 주소로 매핑합니다.
    • MX (Mail Exchanger): 도메인의 이메일을 수신할 책임이 있는 메일 서버를 지정합니다.
    • TXT (Text): 임의의 텍스트를 보관하며, 여기 표시된 SPF(Sender Policy Framework, v=spf1 -all)와 같은 확인 목적으로 자주 사용됩니다.
  4. DNS 열거 결과를 /root 디렉토리의 dns_results.txt라는 파일로 저장합니다. 다음 명령어를 입력하고 Enter를 누르십시오.

    dnsrecon -d example.com > /root/dns_results.txt 2>&1
    

    > 기호는 출력을 지정된 파일로 리다이렉션하고, 2>&1은 표준 오류를 같은 파일에 캡처합니다. dnsrecon은 스캔 세부 정보를 표준 오류로 출력할 수 있으므로, 두 출력 스트림을 모두 저장하면 /root/dns_results.txt에 빈 파일 대신 전체 결과가 포함되도록 할 수 있습니다.

  5. 파일 내용을 확인하여 출력이 저장되었는지 확인합니다. 다음 명령어를 입력하고 Enter를 누르십시오.

    cat /root/dns_results.txt
    

    위와 동일한 DNS 열거 결과가 파일에 저장되어 있는 것을 확인할 수 있습니다.

이 단계에서는 dnsrecon을 사용한 DNS 정찰을 소개하고 중요한 도메인 정보를 수집하는 방법을 보여주었습니다. 다음 단계에서는 모든 발견 사항을 하나의 요약 파일로 결합할 것입니다. 다음 단계로 넘어가기 전에 저장된 DNS 결과를 확인할 수 있는지 확인하십시오.

요약

이 실습에서는 Kali Linux 도구를 사용하여 대상 시스템에 대한 정보를 수집하는 필수 정찰 기술을 배웠습니다. 먼저 nmap을 설치하고 안전한 로컬 대상(localhost)에 대해 기본 포트 스캔을 수행하여 열린 포트와 우리가 설치한 Apache 웹 서버와 같은 관련 서비스를 식별했습니다. 그런 다음 문서화를 위해 이러한 결과를 파일로 저장했습니다. 이어서 nmap 스크립트를 사용하여 서비스 열거를 통해 자세한 버전 정보를 파악하고, dnsrecon을 사용하여 example.com에 대한 도메인 레코드를 쿼리하는 DNS 정찰을 수행했습니다. 네트워크 스캔 및 정보 수집에 관한 이러한 기초 기술은 모의 해킹 및 네트워크 보안 감사에 매우 중요합니다.