Port

🔍 포트 정보 수집이 왜 중요할까?

Kali Linux를 활용한 모의 해킹(Penetration Testing)이나 침투 테스트에서 가장 기본이자 중요한 단계 중 하나는 **포트 스캐닝(port scanning)**입니다.
그런데 그 전에 먼저, “포트(port)“가 무엇인지 정확히 알고 넘어가는 게 중요하겠죠?


컴퓨터 간 통신은 IP 주소와 포트 번호를 통해 이루어집니다.

  • IP 주소: 한 대의 컴퓨터(혹은 장비)를 식별하는 주소 (예: 192.168.0.10)
  • 포트 번호: 그 컴퓨터 안에서 실행 중인 **특정 서비스(프로그램)**를 식별하는 번호

예를 들어, 당신이 한 집에 여러 개의 방(서비스)이 있다고 생각해보세요.
택배는 집 주소(IP)만으로는 정확히 어디에 둘지 알 수 없죠.
포트 번호는 각 방에 해당하는 문 번호입니다.

포트 번호 서비스 설명
21 FTP 파일 전송 프로토콜
22 SSH 원격 접속 (터미널)
80 HTTP 일반 웹 서비스
443 HTTPS 보안 웹 서비스 (SSL/TLS)
3306 MySQL 데이터베이스 접속용 포트

운영 체제는 포트 번호(0~65535)를 기준으로 수많은 서비스를 구분하고 관리합니다.


포트는 단순한 숫자가 아닙니다.
포트가 열려 있다는 건, 그 시스템이 외부와 통신할 수 있는 문이 열려 있다는 뜻입니다.

열린 포트를 통해 어떤 서비스가 실행 중인지 파악할 수 있습니다.

예: 22번 포트가 열려 있다면 SSH 접속이 가능할 수 있습니다.

nmap 같은 도구는 버전까지 식별해줍니다 → 이를 통해 취약한 버전인지 확인 가능


오래된 소프트웨어나 설정이 잘못된 서비스가 열린 포트를 통해 외부에 노출되면? → 공격자가 그 포트를 통해 시스템을 침투할 수 있습니다.

Apache 2.2가 80번 포트에서 동작 중 → 이미 공개된 취약점이 있을 수 있음

MySQL이 외부 포트로 열려 있음 → 무차별 대입 공격 시도 가능


일부 포트는 방화벽에 의해 허용되어 있는 경우가 있습니다.

이 포트를 활용해 내부 네트워크로 들어가거나, 다른 시스템으로 이동하는 수평 이동 lateral movement이 가능합니다.


포트가 열려 있고, 해당 서비스가 취약하거나 잘못 구성되어 있으면? → 공격자는 그것을 공격 벡터로 삼을 수 있습니다.

FTP(21번) 서비스가 익명 로그인 허용 → 파일 업로드/다운로드 가능 SMB(445번) 서비스가 열려 있음 → EternalBlue 같은 악명 높은 공격 가능


포트 스캔은 건물의 모든 문을 두드려보고, 어디가 열려 있는지를 확인하는 작업입니다.

열린 포트를 통해:

  • 실행 중인 서비스 정보
  • 운영 체제 추정
  • 방화벽 설정 여부
  • 기타 인프라 구조

등 다양한 정보를 간접적으로 수집할 수 있습니다.


도구 설명
nmap 대표적인 포트 스캐너 (서비스 식별 가능)
masscan 초고속 포트 스캐너
netcat (nc) 포트 연결 및 테스트 도구
enum4linux, nikto, gobuster 열린 포트 기반 서비스에 대한 정보 수집

# 1. 전체 포트 스캔
nmap -sS -p- <타겟 IP>

# 2. 열린 포트의 서비스 및 버전 식별
nmap -sV -p <열린 포트 목록> <타겟 IP>

# 3. 탐색된 서비스 버전에 맞는 취약점 검색
searchsploit <서비스명>