네트워크 서비스 스캐닝 배너 그래빙(Banner Grabbing), 프로빙(Probing)

agnusdei·2025년 5월 6일
0

Offensive Security

목록 보기
17/29

모의해킹(침투 테스트)에서 네트워크 서비스 스캐닝은 매우 중요한 단계이며, 그 중에서도 **배너 그래빙(Banner Grabbing)**과 **프로빙(Probing)**은 시스템이 어떤 서비스를 실행 중인지 식별하는 데 필수적인 기술입니다. 두 기술은 모두 서비스 식별 및 취약점 탐지를 목적으로 하지만, 방법과 결과가 다릅니다.


🔍 1. 배너 그래빙 (Banner Grabbing)

✅ 개념

  • **배너(Banner)**란: 네트워크 서비스가 연결 시 응답으로 보내주는 정보 문자열
  • 예를 들어, 웹 서버나 FTP 서버에 접속하면 서버 이름, 버전, 운영체제 등이 자동으로 반환됨
  • 패시브 방식과 액티브 방식으로 나뉘며, 일반적으로 액티브 배너 그래빙을 많이 사용

✅ 원리

  • TCP 포트에 접속해 초기 응답 메시지 수신
  • 이 응답 문자열에서 서버 종류, 버전, 운영체제, 응용프로그램 등 정보 추출
  • 공격자는 이 정보를 바탕으로 공격 가능한 취약점을 탐색함

✅ 예시 (도구 및 명령어)

🔹 netcat 이용 (수동)

nc 1.1.1.1 21
  • FTP 서버에 접속하면 예: 220 (vsFTPd 3.0.3) 같은 응답이 나타남

🔹 telnet 이용

telnet 1.1.1.1 80
GET / HTTP/1.1
Host: 1.1.1.1
  • 웹 서버가 어떤 응답을 주는지 확인 가능

🔹 Nmap으로 자동화된 배너 그래빙

nmap -sV -p 21,22,80,443 1.1.1.1
  • -sV: 서비스 버전 탐지 (배너 포함)

🛠️ 공격자가 배너 그래빙을 사용하는 방식

  1. 포트 스캔으로 열린 포트 확인
  2. netcat, telnet, curl, nmap 등을 사용해 접속
  3. 반환된 배너 문자열에서 서비스 이름 및 버전 파악
  4. Exploit DB, CVE DB에서 해당 버전에 대한 취약점 검색
  5. 익스플로잇 또는 버그 활용해 공격 시도

🔍 2. 프로빙 (Probing)

✅ 개념

  • 프로빙은 단순 접속이 아닌, 의도적으로 요청을 보내고 반응을 분석하여 서비스 종류나 동작 방식을 식별하는 방식
  • 보통 프로토콜을 이해하고 있어야 하며, 배너가 없더라도 서비스 감지가 가능
  • 서비스 탐지, 취약점 확인, 백도어 존재 여부까지도 탐색 가능

✅ 예시 (도구 및 명령어)

🔹 nmap 스크립트 기반 스캔 (NSE)

nmap -sV --script=banner,ftp-anon,http-methods -p 21,80 1.1.1.1
  • --script: 프로빙 스크립트를 이용한 고급 탐지
  • 예: FTP에 접속해 익명 로그인 가능한지 검사

🔹 curl 명령 (HTTP probing)

curl -I http://1.1.1.1
  • HTTP 헤더 분석: 서버 종류, 리다이렉션 여부, 보안정책 등 확인

🔹 특정 프로토콜의 handshake 시도

openssl s_client -connect 1.1.1.1:443
  • TLS 버전, 인증서, 암호 스위트 등을 확인 (SSL 서비스 프로빙)

🛠️ 공격자가 프로빙을 사용하는 방식

  1. 배너가 없거나 위장된 서비스에서 진짜 정체를 알아내기 위해 프로빙 수행
  2. HTTP/FTP/SMTP 등 프로토콜 명령을 수동으로 전송해 응답 분석
  3. nmap 스크립트를 활용해 다양한 조건을 시뮬레이션 (익명 로그인, 디렉터리 탐색 등)
  4. 서비스를 정밀하게 파악한 뒤, 특정 버전이나 설정에 따라 공격 경로 설계

🎯 배너 그래빙 vs. 프로빙 요약

항목배너 그래빙프로빙
방식서비스의 초기 응답(배너) 읽음실제 명령/요청을 보내고 반응 분석
난이도쉬움다소 복잡 (프로토콜 이해 필요)
탐지 가능성낮음보통 중간
탐지 대상서비스 이름/버전숨겨진 설정, 응답 동작 등
도구nmap, netcat, telnetnmap (NSE), curl, openssl 등

🔐 실전 예시 흐름 (공격자 관점)

  1. nmap -sS -p- 1.1.1.1 → 포트 식별
  2. nmap -sV -sC -p 21,80,443 1.1.1.1 → 배너 + 기본 스크립트
  3. nc 1.1.1.1 21, curl -I, openssl 등으로 수동/정밀 프로빙
  4. 버전 정보 기반으로 exploit-db, CVE, searchsploit 검색
  5. 공격 대상 결정 후 Metasploit 등으로 취약점 익스플로잇

🧒 어린이용 요약

배너 그래빙은 마치 문을 열자마자 "안녕하세요! 저는 웹서버 1.2.3이에요!" 라고 말하는 걸 듣는 거고요,

프로빙은 "이 사람 누구지?" 싶을 때, 질문을 던져서 대답을 듣고 알아내는 거예요!

공격자는 이걸로 그 시스템이 뭘 쓰는지 알아보고, 약한 점이 있는지 찾는 거예요.

🔍 네트워크 서비스 스캐닝의 현실적 제한과 보안 대응 방식

✅ 1. 배너 그래빙(Banner Grabbing)의 한계

배너 그래빙은 서버와의 TCP 연결이 성립되었을 때, 서버가 자동으로 보내는 응답 메시지를 받아 소프트웨어의 이름과 버전 정보 등을 수집하는 기법입니다.

그러나 다음과 같은 이유로 실패할 수 있습니다:

상황설명
배너 비활성화 설정서비스가 기본적으로 배너 출력 기능을 꺼두었거나, 설정을 통해 출력을 차단
접속 후 요청 필요일부 서비스는 연결만으로는 배너를 보내지 않고, 특정 명령어나 프로토콜 요청 후에만 응답
고의적 위장보안을 의식한 시스템에서는 배너를 의도적으로 허위 정보로 설정
접근 제어특정 IP만 실제 응답을 하도록 구성되어 있으며, 외부 요청에는 배너 자체를 숨김

📌 예시

서비스배너 출력 특성
FTP (vsftpd, proftpd 등)기본적으로 접속 직후 배너 출력함
SSH기본적으로 OpenSSH 등의 버전 표시, 설정으로 숨김 가능
HTTP (Apache, Nginx)서버 헤더에 포함, 보안 설정으로 제거 가능 (ServerTokens, ServerSignature)
SMTP접속 시 220 메시지에 배너 포함, 스팸 우회 방지 위해 숨기기도 함
MySQL/PostgreSQL정상 클라이언트 프로토콜로 접속하지 않으면 아무 것도 응답 안 함

⚔️ 2. 공격자(모의해커)는 어떻게 대응하는가?

🛠️ 접근 전략

  1. 기본 배너 수집 시도

    • telnet, nc, nmap -sV, curl, wget 등을 통해 포트에 접속 후 배너 확인
    • 예: nc target.com 80, curl -I http://target.com
  2. 스캐닝 도구 고급 옵션 활용

    • nmap-sV + --version-all, --script=banner 등 적극 탐지 옵션 사용
    • masscan 등으로 빠르게 포트만 스캔 후, 상세 분석은 nmap으로
  3. 전용 클라이언트 사용

    • MySQL은 mysql, FTP는 ftp, SSH는 ssh 클라이언트 등으로 접속 시도
    • 프로토콜을 정확히 맞춰야 배너가 응답되는 경우 많음
  4. 우회/추측 기법 사용

    • http://target.com/robots.txt 요청
    • 일반적인 취약 경로 (/admin, /server-status) 등 접속
    • TLS 핸드셰이크 중 서버 인증서 정보 확인으로 추측 (예: openssl s_client 사용)
  5. 보안 우회 탐지

    • TTL, 패킷 크기, 핸드셰이크 응답 시간 등으로 OS 및 미탐지 서비스 추론

🔒 실제 보안 장비나 어플라이언스는?

✅ 보안 강화된 시스템의 특징

보안 구성 예시설명
배너 제거/etc/ssh/sshd_config에서 Banner, Version 숨김
서버 헤더 제거Apache, Nginx에서 Server: Apache/2.4.41 같은 문자열 제거
IPS/IDS로 포트 필터링포트 열려 있어도 트래픽 차단 또는 응답 없음 처리
Port Knocking올바른 패킷 순서 없으면 포트 열리지 않음
Proxy 앞단 설정리버스 프록시가 배너를 제거하고 대신 응답함

📌 관련 명령어 예시

# 일반 배너 수집
nc target.com 21
telnet target.com 25
curl -I http://target.com
openssl s_client -connect target.com:443

# nmap으로 서비스 탐지
nmap -sV --script=banner -p 21,22,80 target.com

🧒 어린이용 요약

어떤 컴퓨터랑 이야기하려고 하면, 보통 "나는 누구야!" 하고 자기소개를 해요.
근데 보안에 민감한 컴퓨터는 낯선 사람에게는 **아무 말도 안 하거나**, **거짓말**을 해요!
그래서 해커들은 자기가 직접 말도 걸어보고, 편지도 보내보고, 힌트를 모아서 정체를 알아내는 거예요.

0개의 댓글