Nmap SYN 스캔 이해 및 수행
이제 대상 서비스가 실행 중이므로 SYN 스캔에 대해 자세히 알아보겠습니다. SYN 스캔은 네트워크 보안 테스트의 중요한 부분으로, 대상 시스템에서 열린 포트를 발견할 수 있게 해줍니다. 이 섹션에서는 SYN 스캔이 어떻게 작동하는지 배우고, 강력한 네트워크 스캔 도구인 Nmap 을 사용하여 HTTP 서버에 대해 SYN 스캔을 수행하는 방법을 배우겠습니다.
SYN 스캔이란?
실제 스캔을 시작하기 전에 SYN 스캔의 기본 메커니즘을 이해하는 것이 중요합니다. 이를 위해 먼저 일반적인 TCP 연결이 어떻게 설정되는지 살펴보겠습니다.
일반적인 TCP 연결
일반적인 TCP 연결에서는 3-way 핸드셰이크가 발생합니다. 이는 클라이언트와 서버 간의 안정적인 연결을 설정하기 위한 기본적인 프로세스입니다.
- 1 단계: 클라이언트에서 SYN 패킷 전송
클라이언트는 SYN (synchronize) 패킷을 서버로 전송하여 연결을 시작합니다. 이 패킷은 대화를 시작하라는 요청과 같으며, 서버가 통신할 준비가 되었는지 묻습니다.
- 2 단계: 서버에서 SYN-ACK 패킷 전송
SYN 패킷을 수신하면 서버가 사용 가능하고 통신할 의사가 있는 경우 SYN-ACK (synchronize-acknowledge) 패킷으로 응답합니다. 이 패킷은 클라이언트의 요청을 확인하고 서버가 연결을 시작할 준비가 되었음을 나타냅니다.
- 3 단계: 클라이언트에서 ACK 패킷 전송
마지막으로, 클라이언트는 ACK (acknowledge) 패킷을 전송하여 3-way 핸드셰이크를 완료합니다. 이 단계 이후 TCP 연결이 완전히 설정되고 클라이언트와 서버 간에 데이터를 교환할 수 있습니다.
SYN 스캔 프로세스
반면에 SYN 스캔은 다른 접근 방식을 사용합니다.
- 1 단계: Nmap 에서 SYN 패킷 전송
스캔 도구인 Nmap 은 초기 SYN 패킷을 대상 포트로 전송합니다. 이는 일반적인 TCP 연결의 첫 번째 단계와 유사합니다.
- 2 단계: 대상에서 SYN-ACK 응답
대상 포트가 열려 있으면 일반적인 TCP 연결과 마찬가지로 SYN-ACK 패킷으로 응답합니다.
- 3 단계: Nmap 에 의한 연결 종료
핸드셰이크를 완료하기 위해 최종 ACK 패킷을 전송하는 대신 Nmap 은 연결을 종료합니다. 이렇게 하면 전체 연결이 설정되지 않으므로 스캔을 탐지하기가 더 어렵습니다. 또한, 스캔되는 각 포트에 대해 전체 3-way 핸드셰이크를 완료하는 전체 연결 스캔보다 빠릅니다.
SYN 스캔 수행
1 단계: 프로젝트 디렉토리로 이동
먼저, 올바른 프로젝트 디렉토리에 있는지 확인해야 합니다. 스캔 결과를 이 디렉토리 내의 파일에 저장할 것이므로 중요합니다. 프로젝트 디렉토리로 이동하려면 터미널에서 다음 명령을 실행합니다.
cd /home/labex/project
2 단계: SYN 스캔 실행
이제 Nmap 을 사용하여 SYN 스캔을 수행할 준비가 되었습니다. 터미널에서 다음 명령을 실행합니다.
sudo nmap -sS localhost -p 8080 > /home/labex/project/nmap-syn-scan-results.txt
이 명령을 분석하여 각 부분이 무엇을 하는지 이해해 보겠습니다.
sudo: 이 명령은 권한을 높여 후속 명령을 실행하는 데 사용됩니다. SYN 스캔은 원시 네트워크 패킷을 전송하는 것과 관련되므로 루트 권한이 필요하므로 nmap 명령을 실행하려면 sudo를 사용해야 합니다.
nmap: 이것은 우리가 사용하고 있는 네트워크 스캔 도구입니다. Nmap 은 네트워크 탐색 및 보안 감사에 널리 사용됩니다.
-sS: 이 옵션은 SYN 스캔을 수행하려는 것을 지정합니다.
localhost: 이것은 스캔 대상입니다. 이 경우 자체 머신을 스캔하고 있습니다.
-p 8080: 이 옵션은 Nmap 에 포트 8080 만 스캔하도록 지시합니다. 로컬 머신에서 이 특정 포트가 열려 있는지 확인하는 데 관심이 있습니다.
> /home/labex/project/nmap-syn-scan-results.txt: 이 명령 부분은 nmap-syn-scan-results.txt라는 파일로 nmap 스캔의 출력을 프로젝트 디렉토리로 리디렉션합니다. 이렇게 하면 나중에 결과를 검토할 수 있습니다.
3 단계: 스캔 결과 보기
스캔이 완료되면 결과를 볼 수 있습니다. 터미널에서 다음 명령을 실행합니다.
cat /home/labex/project/nmap-syn-scan-results.txt
다음과 유사한 출력이 표시됩니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-18 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
이 출력은 귀중한 정보를 제공합니다. 포트 8080 이 로컬 머신에서 열려 있고 HTTP 서비스를 실행하고 있음을 확인합니다. 이 정보는 추가 보안 분석 또는 네트워크 문제 해결에 사용할 수 있습니다.