NMAP을 통한 포트스캔
- 해킹의 일반적인 단계는 '정보수집 단계(FootPrinting)' -> '취약점 탐색 단계' -> '목록화 단계' ->
'해킹' -> 백도어 형성과 역추적 해피 단계 등으로 이루어 집니다.
(1) 정보수집단계 (FootPrinting)
: 여러 방법을 이용해서 공격 대상의 정보를 모으는 단계로
크게 사회공학적 정보수집(Social Engineering) 와 기술적 정보 수집(Scanning)로 나뉘어 집니다.
(2) 취약점 탐색단계
: 세간에 알려진 취약점을 탐색하며 이때 스캔툴 등을 이용해서 탐색을 합니다.
또는 자기만이 알고있는 제로데이 로 직접 탐색할 수 있습니다.
(3) 목록화 단계
: 수집된 자원들을 목록화(사용자, 그룹, 공유 디렉토리 등) 을 수행하며,
전 단계에 수집된 정보를 정리하는 단계 입니다.
(4) 해킹수행
: 실제로 작업(?) 하는 단계 이죠
(5) 백도어 형성 및 역추적 회피 단계
: 백도어란 뒷구멍 이라는 뜻으로 시스템 해킹에 성공하면 향후 재접속을 편리하게 하기 위해서 백도어를
형성 합니다 또한 역추적을 막기 위해서 Log 삭제 및 역추적의 단서를 제거하는 단계 입니다.
[ TCP , UDP Port ]
포트는 목적지 호스트까지 찾아온 패킷이 실제로 전달 되어야 할 응용 프로그램을 정확히 결정하기
위해서 사용하는 번호를 말합니다.
시스템에는 6만5천5백3십6개의 포트가 있으며, 0번 부터 1023번 포트가 Well Known 포트라고 불립니다.
Well Known 포트는 일상적으로 잘 알려진 서비스를 위해서 고유의 사용 용도가 정해져 있습니다.
1024번 부터 49151번 까지는 등록된 포트(Registered Port) 라고 하며 임의의 사용 용도를 위해서,
또는 클라이언트가 서버에 접속 시에 할당 받는 포트의 범위 입니다.
TCP 포트와 UDP 포트는 별도로 취급 되므로 동일한 번호를 가진 TCP 포트와 UDP 포트가 존재 할 수
있습니다.
[ 주요 포트별 서비스 내용 ]
여기 위에 쓰이는 포트는 숙지하고 있어야 합니다.
포트스캔 유형
(1) UDP Open Scan
- 포트가 열려 있을 경우에 아무런 응답이 없습니다.
- 포트가 닫혀 있을 경우에는 ICMP Unreachable 패킷 수신을 합니다.
(2) TCP Open Scan
- 포트가 열려 있을 경우에 세션을 수립 합니다.
- 포트가 닫혀 있을 경우에는 RST + ACK 패킷을 수신 합니다.
(3) TCP Half open Scan
- 포트가 열려 있을 경우에는 서버로부터 SYN + ACK 패킷을 받은 후에 , RST 패킷을 보내어 연결을
끊는 방법을 이용 합니다.
- 포트가 닫혀 있을 경우에는 Open Scan의 경우와 동일 합니다.
(4) ACK Scan
- 공격대상 호스트에 ACK 플래그가 설정된 패킷을 여러 번 전송하고 RST 응답 패킷을 확인하여 Windows 필드 값이
0 이 아니면 열린 포트로 가정 합니다.
(5) Fragmented TCP Scan
- Fragment 스캔 방식은 패킷을 분할 전송하여 방화벽이나 IDS를 통과한 후 대상 컴퓨터에서 패킷이 조합 되도록
하는 스캔 방식 입니다.
(6) Spoofed TCP Scan
- 공격자의 IP주소를 노출 시키지 않고 상대를 스캔하기 위해서 사용되는 방법으로서 조작된 Source IP 주소를
사용하여 생성한 패킷을 사용하므로 공격 당하는 상대는 공격자를 정확히 알기가 힘듭니다.
- 공격자는 자신에게 스캔한 결과가 돌아오지 않기 떄문에 공격 대상이 전송한 패킷을 스니핑 해서 스캔 결과를
확인 해야 합니다.
(7) 시간차 스캔
- 공격의 차단을 피하거나, 탐지를 회피하기 위해서 특정한 시간 간격으로 스캔 패킷을 보내는 기법 입니다.
- 공격대상 Network의 모든 시스템을 Scan하는 시간이 많이 필요 합니다.
(8) FIN , Xmas, Null Scan
- 포트가 열려 있을 경우에는 응답이 없습니다.
- 포트가 닫혀 있는 경우에만 RST 패킷이 되돌아 옵니다.
NMAP 을 통한 포트 스캔
NMAP 의 옵션을 참조해서 명령을 실행 합니다.
레드햇 리눅스에서 명령어를 입력해서 해당 아이피 주소의 컴퓨터의 운영체제 정보등을 수집 할 수 있었습니다.
이것은 NMAP 말고도 배너그래밍 기법을 통해서도 이루어 집니다.
* 배너 그래빙(Banner Grabbing)
: Telnet 과 같이 원격지의 시스템에 로그인을 시도하면 나타나는 안내문과 같은 메세지를 확인해서 정보를
파악하는 방법 입니다.
- CMD 창에서 telnet www.bpan.com 80 을 입력 합니다.
- 시꺼먼 화면이지만 HEAD / HTTP/1.0 이라고 입력후 엔터 두번 입력 합니다.
- 그러나 해당 아이피 주소의 서버에 대한 정보가 나옵니다.
- 넷크래프트 웹사이트( uptime.netcraft.com ) 에서도 도메인 주소를 입력하면, 운영체제와 서버등에 대한
정보를 수집 할 수 있습니다.
- NetScan Tools 를 이용해서 모대학의 아이피 정보도 수집 할 수 있습니다.