소개
정보 수집은 명확한 대상과 범위에서 시작합니다. 포트 번호, 포트 상태, 애플리케이션 지문, 취약점 결론은 서로 다른 것을 설명하므로 서로 대체할 수 있는 것으로 취급해서는 안 됩니다.
준비된 로컬 DNS 및 HTTP 서비스로 작은 Nmap 작업 흐름을 연습합니다. 대상을 해석하고 할당된 포트만 스캔하고 서비스를 식별하고 분석을 위해 출력을 보관하세요.
대상을 해석하고 선택한 포트 스캔하기
이 단계에서는 명시적으로 제공된 교육 대상을 해석하고 작은 포트 집합에 TCP connect 스캔을 사용합니다.
Kali에 들어가 공유 작업 공간을 선택하세요.
kali
cd /home/labex/project
승인된 대상은 로컬 교육용 DNS 서버가 제공하는 training-target.test입니다. 앞선 실습의 DNS 작업 흐름으로 A 레코드를 해석하세요.
dig @127.0.0.1 -p 5353 +short training-target.test A
응답은 컨테이너의 루프백 주소인 127.0.0.1입니다. 해당 주소의 포트 8000, 8081, 9999만 범위에 포함됩니다. 호스트, 게이트웨이, 공개 시스템을 스캔하지 마세요.
Nmap은 호스트와 서비스 정보를 탐색합니다. -sT 옵션은 일반 TCP 연결 시도를 사용하므로 일반 학습자로 이 스캔을 실행할 수 있습니다. -p는 요청한 포트 집합을 제한하고 쉼표는 포트 번호를 구분합니다. -oN은 뒤의 파일 이름에 일반적인 사람이 읽기 쉬운 출력을 저장합니다.
nmap -sT -p 8000,8081,9999 -oN ports.txt 127.0.0.1
스캔이 끝날 때까지 기다리세요. 포트 8000과 8081은 open, 포트 9999는 closed로 보고되어야 합니다. open은 서비스가 TCP 연결을 받는다는 뜻입니다. closed는 대상이 응답했지만 그 포트에서 연결을 받는 서비스가 없다는 뜻입니다. 반면 filtered 결과는 탐사나 응답이 차단되어 Nmap이 상태를 결정할 수 없었다는 뜻입니다.
저장한 보고서를 읽으세요.
cat ports.txt
대상을 식별하고 요청한 포트 행을 포함해야 합니다. 버전 탐지가 없으면 SERVICE 이름은 Nmap의 관례적인 포트 이름 표에서 나올 수 있습니다. 실제 수신 대기 중인 애플리케이션의 증거 대신 단서로 다루세요.
서비스를 식별하고 열린 포트 기록 추출하기
이 단계에서는 서비스 버전 탐사를 사용하고 간결한 발견 사항 집합을 저장합니다.
-sV 옵션은 Nmap에 열린 서비스를 탐사하여 애플리케이션 정보를 얻도록 요청합니다. 이는 서비스/버전 탐지이며 Nmap Scripting Engine(NSE)이 아니고, 그 자체로 취약점을 확인하지 않습니다. 탐사를 열린 교육용 포트 두 개로 제한하세요.
nmap -sT -sV -p 8000,8081 -oN services.txt 127.0.0.1
제공된 서비스는 Python HTTP 서버입니다. 결과는 HTTP를 식별해야 하며 Python이나 서버 버전 세부 정보가 포함될 수 있습니다. 정확한 도구 및 해석기 버전은 환경 유지보수에 따라 바뀔 수 있습니다.
저장된 버전 보고서를 읽으세요.
cat services.txt
서비스 증거를 ports.txt의 관례적 이름과 비교하세요. 기본값이 아닌 포트에서도 HTTP를 실행할 수 있으며 포트 번호는 애플리케이션 신원이 아닙니다.
이미 배운 텍스트 필터링 작업 흐름으로 열린 포트 행을 추출하세요. open 양쪽의 공백은 상태 열에 초점을 맞추도록 합니다.
grep ' open ' services.txt > open-services.txt
cat open-services.txt
열린 포트 두 개에 대해 각각 한 행이 보여야 합니다. 이 행은 관찰된 노출과 서비스 정보를 기록하며 어느 서비스가 악용 가능하다는 증거는 아닙니다. 원래 맥락을 다시 볼 수 있도록 간결한 발견 사항과 함께 전체 보고서를 보관하세요.
요약
승인된 대상을 해석하고 범위를 좁힌 TCP connect 스캔을 수행하고 열린 상태와 닫힌 상태를 해석하고 서비스 버전 탐사를 사용했습니다. 전체 보고서를 보존하고 간결한 열린 서비스 행을 추출하면서 탐색과 취약점 확인을 혼동하지 않았습니다.

