Intro

얼마 전 화제가 된 토스의 동영상.
“지금부터 토스를 해킹합니다.”

토스의 안정성을 어필하기 위해, 토스가 해킹을 의뢰한 해커팀의 해킹 과정과 결과를 보여주는 영상이다.


여기서 해커팀이 토스 서버에 침투할 수 있는 경로를 찾기 위해 “nmap”과 “sqlmap”을 사용했다.

nmap은 특정 서버의 포트 정보를 쭉 훑어보고, 어떤 서버가 열려있고 어떤 서버가 닫혀있는지를 확인하는 “포트 스캐너” 의 일종이다.

sqlmap은 특정 포트에 무작위 대입을 통해 그 포트로 진입을 시도하는 것이고.

오늘은 이 중 nmap 방법을 살펴본다.



nmap

Nmap은 컴퓨터와 서비스를 찾아 “네트워크 지도”를 만드는 포토 스캐너의 일종이다.
자신을 광고하는 서비스 뿐 아니라, 자신을 광고하지 않는 수동적인 서비스도 찾아낼 수 있다.
더불어 운영 체제, 장치 종류, 운영 시간, 소프트웨어 정보, 방화벽 기술 등의 정보도 알아낼 수 있다는 특징이 있다.

Nmap의 기능

(1) 호스트 탐지 기능
네트워크상의 컴퓨터들을 확인한다.

(2) 포트 스캔
스캔된 컴퓨터(들)의 열린 포트들을 나열한다.

(3) 버전 탐지
응용 프로그램 이름과 버전을 탐지한다.

(4) 운영체제 탐지
서비스가 실행되는 운영체제와 네트워크 장치의 하드웨어 특성을 확인한다.

Nmap의 설치

1
2
3
4
5
6
7
8
9
10
// 리눅스 : 패키지 관리 라이브러리를 통해 설치
$ sudo apt-get install nmap
$ sudo yum install nmap

// 윈도우 : Nmap 실행파일을 다운로드받아 설치
https://nmap.org/download#windows
설치시 register 등록하면 cmd에서 호출 가능

// 맥 : brew를 통해 설치
$ brew install nmap

Nmap 명령어

nmap은 콘솔에서 아래와 같이 사용한다.

1
nmap <옵션> <호스트>

옵션은 아래와 같다.

옵션 설명
-A OS, 버전, 스크립트 스캐닝 등 종합 세트
-p 특정 포트만 지정하여 스캔한다.
예를 들어 22번 SSH 등
-sV 해당 호스트의 포트를 통해 어떤 버전의 어떤 프로그램이
동작하고 있는지 상세하게 스캔
운영체제도 알 수 있다.
-O 스캔을 통해 운영체제를 확인한다.
-f 패킷을 단편화해 보내는 방법.
방화벽이 스캔 패킷을 차단하는 걸 피하기 위함.
-S 스캔에 가짜 IP를 사용하는 경우
-sP Ping을 이용한 스캔
-Pn Ping을 사용하지 않는 방법.
보안 문제로 Ping을 무시하는 호스트를 스캔할 수 있는 확률을 높인다.
-PU 빈 UDP 패킷을 이용하는 방법.
TCP 필터링을 피해간다.
-sT TCP 연결을 이용한 포트스캔
일반적인 3-Way-Handshake 방식을 이용한다. 로그 남음.
-sS TCP SYN 스캔(스텔스 스캔)
-sN TCP Null 스캔
스텔스 스캔의 일종
-sF Fin 스캔
스텔스 스캔의 일종
-sX Xmas 스캔
스텔스 스캔의 일종
-sU UDP 방식을 이용한 스캔

사용예

IP와 포트번호는 XXX로 마스킹

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ nmap -A XXX.XXX.XXX.XXX

>>> Starting Nmap 7.94 ( https://nmap.org ) at 2023-07-23 23:46 대한민국 표준시
>>> Nmap scan report for XXX.XXX.XXX.XXX
>>> Host is up (0.00s latency).
>>> Not shown: XXX closed tcp ports (reset)
>>> PORT     STATE SERVICE
>>> XXX/tcp  open  msrpc
>>> XXX/tcp  open  netbios-ssn
>>> XXX/tcp  open  microsoft-ds
>>> XXXX/tcp open  mysql
>>> 
>>> | mysql-info:
>>> | Protocol: XX
>>> | Version: 11.1.0-MariaDB
>>> | ...


Reference

지금부터 토스를 해킹합니다. : https://www.youtube.com/watch?v=tAqgvP07RnQ
Nmap : https://ko.wikipedia.org/wiki/Nmap
Nmap 명령어 : https://namu.wiki/w/nmap
Nmap 명령어 : https://hj-kwon.tistory.com/29
Nmap 명령어 : https://my-devblog.tistory.com/30