BLOG
Tracefield · 02
Tracefield · 01
블로그 · 14
Vibe Audit · 04
Vibe Audit · 03
Vibe Audit · 02
Vibe Audit · 01
출판편집자 · 01
StudyTree · 01
SecurityOps · 02
SecurityOps · 01
AI챗봇 · 04
AI챗봇 · 03
AI챗봇 · 02
AI챗봇 · 01
퍼플심 · 04
퍼플심 · 03
퍼플심 · 02
퍼플심 · 01
블로그 · 13
rootscan · 07
rootscan · 06
블로그 · 12
블로그 · 11
블로그 · 10
블로그 · 09
블로그 · 08
블로그 · 07
블로그 · 06
블로그 · 05
블로그 · 04
블로그 · 03
블로그 · 02
블로그 · 01
rootscan · 05
rootscan · 04
rootscan · 03
asmspeak · 03
asmspeak · 02
rootscan · 02
asmspeak · 01
rootscan · 01
웹보안도구 · 02
웹보안도구 · 01
루트캠프 · 02
루트캠프 · 01
All notes 167
서비스 스캐닝
1. 개요
포트 스캐닝이 "문이 열려 있는가?"를 보는 단계라면, 서비스 스캐닝은 "그 문 뒤에 어떤 서비스가 있고, 버전은 무엇인가?"를 확인하는 단계다.
- 포트 번호만으로 실제 서비스를 단정할 수는 없다. 예를 들어 2222 포트에서 SSH가 돌 수도 있고, 웹 서비스가 돌아갈 수도 있다.
- 목표: 정확한 서비스명과 버전 정보를 확보해, 이후 취약점(CVE) 확인으로 이어지게 만드는 것이다.
2. 배너 그래빙(Banner Grabbing)
서비스에 연결했을 때 서버가 보내주는 초기 환영 메시지(Banner)를 수집하는 기법이다.
2.1 패시브 배너 그래빙(Passive Banner Grabbing)
단순히 TCP 연결(3-Way Handshake)을 맺고, 서버가 먼저 보내는 메시지를 기다리는 방식이다.
동작 예시는 아래처럼 볼 수 있다.
(Connect)
Server: "220 (vsFTPd 3.0.3)" <-- 이것이 배너
서버가 자발적으로 정보를 노출하는 경우 유용하고, Nmap -sT에서도 일부는 자연스럽게 확인된다.
2.2 액티브 서비스 프로빙(Active Service Probing)
보안 설정이 된 서버는 연결만 해서는 아무 말도 하지 않는 경우가 많다.
이럴 때는 Nmap이 다양한 프로브 패킷(Probe Packets)을 보내고, 돌아오는 응답 패턴(Response Pattern)을 비교해 서비스를 추정한다.
- 도구:
nmap -sV [IP] - 참고: Nmap은
nmap-service-probes데이터베이스를 바탕으로 미지의 응답을 서비스 시그니처와 매칭한다.
3. Nmap 스크립트 엔진(Nmap Scripting Engine, NSE)
Nmap 기능을 확장하는 스크립트 도구다. Lua 언어로 작성된다.
- 기본 스크립트 실행:
nmap -sC [IP]또는--script=default
가장 보편적으로 쓰는 기본 스크립트 세트를 실행한다. - 예시: FTP 서비스가 보이면
ftp-anon같은 스크립트가 익명 로그인(Anonymous Login) 여부를 바로 확인해 주기도 한다. - 경로: 리눅스 기준
/usr/share/nmap/scripts/에 저장된다.
4. 수동 점검과 클라이언트 활용
자동화 도구(Nmap)가 실패하거나 정밀 분석이 필요할 때 사용한다.
4.1 넷캣(Netcat, nc)
서버와 직접 대화하듯 응답을 확인할 때는 nc가 단순하고 편하다.
nc [IP] [PORT]
(연결 후 HELP, HEAD / HTTP/1.0 등의 명령어 입력)
Wireshark를 함께 보면 주고받는 패킷 안에서 추가 헤더나 에러 메시지 같은 단서를 찾기 좋다.
4.2 전용 클라이언트(Native Clients)
프로토콜 전용 클라이언트를 쓰면 더 자연스러운 응답을 얻을 때가 많다.
- FTP:
ftp [IP] - Web:
curl -v [URL]또는 웹 브라우저 - SMB/Samba:
enum4linux,crackmapexec
5. 실무에서는?
핵심은 Nmap 결과만 그대로 받아 적고 끝내지 않는 것이다.
-sV,-sC로 먼저 전체 윤곽을 잡는다.- 중요 포트나 식별이 애매한 서비스는
nc나 전용 클라이언트로 직접 확인한다. - 수집한 서비스명과 버전 정보는 나중에 취약점 검색에 바로 쓸 수 있게 정리해 둔다.

