Mitre ATT&CK -Reconnaissance(정찰)
■ 개요
- 취약점 진단&모의 해킹 초기 과정으로, 진단하고자 하는 대상에 취약점 또는 특이사항이 있는지 검색 및 확인하는 과정
- 네트워크 정보, 웹 서버 버전, 취약점 정보 등을 해당 과정에서 확인
- Mitre Att&ck Reconnaissance(정찰) 과정으로 명시
- shodan, nmap, dirbuster, GooFuzz 등 다양한 점검 도구들을 통해 진단하고자 하는 대상의 정보 수집 필요
■ 정보 수집 단계에서 자주 사용하는 도구
1. Shodan
- 정보수집 단계에서 외부에 Open되어 있는 정보들을 UI상으로 보기 쉽게 제공
- 시스템 배너정보로부터 메타데이터들을 이용하여 특정 디바이스, 컴퓨터, 라우터, 서버의 정보 등을 검색 가능
- 특정 시스템 대상으로 공격 대상을 검색할 시에 유용하게 활용 가능
- 구글과 달리 웹 콘텐츠에 색인을 생성하지 않고, 인터넷을 사용하는 서버 또는 장비를 열러 있는 포트를 통해 배너 그래빙으로 정보 수집 후 색인을 생성하여 클라이언트에 반환하는 형식
- 반환된 데이터는 Shodan 웹 인터페이스를 통해 사용자에게 장비에 대한 정보, 지원하는 서비스 등으로 보여줌
- 장점 : 점검하고자 하는 대상에 부하 최소화, 외부에 Open 되어 있는 포트 정보를 손쉽게 획득 가능
- 단점 : 쇼단을 악용하여 해킹 위험 존재, 쇼단 추가 기능 사용 원할 시, 추가 비용 결제 필요
□ 쇼단 서비스 검색 옵션
필터 | 설명 |
city | 입력한 도시에서의 검색 결과 |
country | 입력한 나라에서의 검색 결과 |
geo | 입력한 위도/경도 좌표 근처에 검색 결과 |
hostname | 입력한 호스트네임이 포함되는 결과 |
net | 입력한 Class에 맞는 검색 결과 |
os | 입력한 os를 포함하는 정보 |
port | 입력한 포트와 일치하는 검색결과 |
title | HTML의 title과 일치하는 정보 검색 |
ip | 넷필터명을 기준으로 검색 |
isp | ISP를 기준으로 검색 |
region | 주 이름을 기준으로 검색 |
version | 제품 버전을 기준으로 검색 |
vuln | 취약점 CVE ID를 기준으로 검색 |
□ 쇼단 서비스 검색 옵션 예시
예시 1(hostname값을 통한 검색) |
![]() |
예시 2(net값을 통한 검색) |
![]() |
2. nmap
- 정보수집 단계에서 점검하고자 하는 대상의 Open된 포트 정보를 수집할 때 사용
- 포트 정보 이외에도 nmap NSE(Nmap Scripting Engine)을 사용하여 Web, SMB, RPC 등 다양한 서비스를 점검 및 취약점을 찾을 수 있음
- 취약점 점검&모의해킹 과정에서 자주 사용하는 도구로, 활용 가치가 많음
□ nmap 자주 사용하는 스캐닝 옵션
옵션 | 설명 |
-sT | TCP Connect 스캔 |
-sU | UDP 스캔 |
-sS | stealth scan |
-sF, -sX, -sN |
대상 시스템에서 로깅하지 않고 정보를 수집하는데 사용되는 스캔 - FIN : 해당 플래그를 사용할 경우 3 handshake 과정에서 ACK가 아닌 RST 플래그 전달 - X-mas : FIN,URG,PUSH 플래그를 보내 서버측에서 비정상 패킷으로 판단해서 RST 패킷을 전달 - Null : TCP 플래그를 설정하지 않고 보내 서버측에서 비정상 패킷으로 판단해서 RST 패킷을 전달 |
-sA | TCP ACK 스캔 |
□ nmap 자주 사용하는 포트 사양 및 스캔 순서
옵션 | 설명 |
-p <port ranges] | 지정된 포트만 스캔 |
--exclude-ports <port ranges> | 지정된 포트를 제외한 후 스캔 |
-F | 고속모드로 스캔 |
--top-ports <number> | 지정한 숫자만큼 common 포트 스캔 |
-T <0~5> | 스캔 속도 설정(높을수록 빠름) |
□ nmap 자주 사용하는 서비스/버전 탐색 옵션
옵션 | 설명 |
-sV | 포트의 서비스/버전 정보를 확인 |
-allports | 제외없이 모든 포트 스캔 |
--version-intensity <level> | 버전 정보 확인 레벨 지정(0~9) |
--version-light | 레벨 2의 intensity로 스캔 |
--version-all | 레벨 9의 intensity로 스캔 |
--version-trace | 스캐닝 활동에 발견된 모든 버전 정보 출력(디버깅용) |
□ nmap 자주 사용하는 스크립트 스캔 옵션(nmap NSE)
옵션 | 설명 |
-sC | 기본 스크립트로 대상 스캔 |
--script <Lua scripts> | Lua 스크립트로 대상 스캔 |
--script-updatedb | 스크립트 데이터베이스 업데이트 |
--script=http-enum <target> | http/https 웹 서비스만 스캔 |
--script=http-methods | http method 활용 확인 |
□ nmap 사용 예시
예시 1(포트를 지정해서 스캔) |
![]() |
예시 2(nmap NSE를 사용하여 점검하고자 하는 서버 취약점 확인) |
![]() |
3. nikto
- 웹(HTTP/HTTPS) 취약점 점검에 사용되는 자동화 점검 도구로서, 웹에 취약한 설정 및 경로 등을 표출
- 기타 웹 취약점 점검 도구(Acunetix, Appscan)의 경우, 서버에 부하 및 영향을 많이 줄 수 있지만, nikto의 경우 서버에 크게 영향을 주지 않는다는 장점 존재
- 다른 웹 취약점 점검 도구에 비해 발견할 수 있는 취약점이 한정적이라는 단점 존재
- 취약점 점검&모의해킹 과정에서 자주 사용하는 도구로, 활용 가치가 많음
□ nikto 옵션
- nikto –h [점검하고자 하는 IP / 도메인]
□ nikto 사용 예시
예 시 |
![]() |
4. Dirbuster
- 웹(HTTP/HTTPS) 취약점 점검에 사용되는 자동화 점검 도구로서, 등록되어 있는 사전 파일로 웹 서버를 스캔하여 경로 등을 찾을 수 있는 점검 도구
- 취약점 점검&모의해킹 과정에서 자주 사용하는 도구로, 활용 가치가 많음
예 시 |
![]() |
![]() |
5. gobuster
- 웹(HTTP/HTTPS) 취약점 점검에 사용되는 자동화 점검 도구로서, 등록되어 있는 사전 파일로 웹 서버를 스캔하여 경로 등을 찾을 수 있는 점검 도구
- 디렉토리 스캔 뿐만 아니라, DNS, S3, TFTP 등을 스캔할 수 있는 도구
- 취약점 점검&모의해킹 과정에서 자주 사용하는 도구로, 활용 가치가 많음
예 시 |
![]() |
6. arp-scan
- 모의 해킹 과정에서 내부 침투 후 내부 네트워크 스캔을 하기 위해 사용
- 내부 ARP 통신하는 IP 주소 등의 정보를 수집할 수 있음
예 시 |
![]() |
7. wpscan
- 워드프레스 기반 웹사이트를 스캔하는 도구로, 해당 사이트의 보안 취약점 및 워드프레스 플러그인, 테마, 사용자 등을 정보 수집할 수 있는 도구
- 취약점 점검&모의해킹 과정에서 자주 사용하는 도구로, 활용 가치가 많음
옵션 | 설명 |
--url | 점검하고자 하는 url 입력 |
--enumerate p | 플러그인 스캔 |
--enumerate t | 테마 스캔 |
--enumerate u | 사용자 스캔 |
--passwords wordlists.txt | 사용자 계정 사전 대입 공격 |
예시 1(워드프레스 테마 스캔) |
명령어 : wpcan --url [점검하고자 하는 URL] --enumerate t![]() |
예시 2(워드프레스 사용자 스캔) |
명령어 : wpcan --url [점검하고자 하는 URL] --enumerate u![]() |
예시 3(사용자 계정 사전 대입 공격) |
명령어 : wpscan --url [점검하고자 하는 URL] --passwords [패스워드 사전 파일] --usernames [계정명]![]() |
9. owasp-zap
- 자동화 점검 도구 및 웹 프록시 도구로 디렉토리 스캔, 포트 스캔, 크롤링 등을 수행할 수 있는 도구
- 취약점 점검&모의해킹 과정에서 자주 사용하는 도구로, 활용 가치가 많음
예시 |
![]() |
![]() |
- 이외에도 구글링 검색 도구인 Goofuzz, 웹 프록시 도구인 burp suite 등이 있으니 상황에 맞게 적절한 도구등을 사용해서 정보 수집 진행 필요