본문 바로가기

Security/Network Hacking

풋프린팅(Footprinting)과 스캔(Scan)

풋프린팅(Footprinting)

- 풋프린트(Footprint)는 발자국을 뜻하며, 풋프린팅(Footprinting)은 그 발자국을 살펴보는 것이다.

- 발자국을 살펴보아야 그 경로는 어디로 향하고, 사람인지 동물인지 정보를 알 수 있다.

- 이렇게 해킹을 하기위해 모든 정보들을 체계적이고 조직적으로 모으기 위해 풋 프린팅은 반드시 필요하다.

- 특정 기술이나 구성에 관한 중요한 정보들을 작은 것일지라도 놓치지 않도록 하기 위한 것이다.

 

 

 

공격자들이 사용하는 기법과 확인 가능한 정보들

사용기법

확인 정보

인터넷

도메인 이름(Domain Name)

네트워크 블록(Network Blocks)

인터넷을 통해 접속 가능한 시스템의 특정 IP 주소

시스템의 구조

접속제어 매커니즘과 관련 접속 제어 리스트

침입 탐지 시스템(IDSec)

시스템 목록(사용자/그룹 이름시스템 배너, SNMP정보)

인트라넷

사용 중인 네트워킹 프로토콜(IP, IPX )

내부 도메인 이름(Internal Domain Name)

네트워크 블록(Network Blocks)

인트라넷 통해 접속 가능한 시스템의 특정 IP 주소

확인된 각 시스템에서 동작중인 서비스(TCP, UDP)

시스템 구조

접속제어 매커니즘과 관련 접속 제어 리스트

침입 감지 시스템(IDSes)

시스템 목록(사용자/그룹이름시스템 배너)

엑스트라넷

연결 출발지와 목적지

연결 형식

접속 제어 매커니즘

원격접속

아날로그/디지털 전화 번호들

원격 시스템 형식

인증 매커니즘

 

 

 

스캔(SCAN)

- 서비스를 제공하는 서버의 작동 여부와 그 서버가 제공하고 있는 서비스를 확인하기 위한 것이다.

- TCP 기반의 프로토콜의 경우 3Way-Handshaking 등으로 요청(Request)을 보내면 응답(Response)을 전달한다.

- 이것을 통해 요청을 하여 응답을 받아 동작여부를 확인하고 서비스 등을 확인하여 정보수집을 하는 것이다.

 

※ 주의 : 우리나라에서 스캐닝을 하는 것은 엄연히 불법이다. 실습 시에는 반드시 임시로 서버를 구축하고 서비스를 하여 테스트 해야한다.

 

ICMP의 유틸리티 Ping을 이용한 스캔

- 네트워크와 시스템이 정상적으로 작동하는지 확인하기 위한 ICMP(Internet Control Messaging Protocol)프로토콜의 유틸리티이다.

- 기본적으로 TCP/IP 네트워크에서 사용된다.

 

운영체제별 Mom Echo ICMP 패킷의 작동 여부

운영체제

ICMP Request Packet

ICMP Reply Packet TTL

리눅스 커널 2.2 ~ 2.4

255

64

리눅스 커널 2.0

64

64

FreeBSD

255

255

솔라리스

255

255

HP-UX

255

255

Windows 95

32

32

Windows 98, NT, 2000

128

128

 

 

 

 TCP와 UDP를 이용한 스캔

- TCP와 UDP를 이용한 스캔은 시스템 자체의 활성화 여부가 아닌 포트 스캔을 하는 것이다.

- TCP 프로토콜은 기본적으로 3way-handshaking을 이용한 스캔을 한다.

- UDP는 포트가 닫혀있는 경우 공격대상은 ICMP 패킷을 보내지만, 열려 있는 경우에는 ICMP 패킷을 보내지 않는다.

 

※ TCP 패킷에 대한 링크 참고 - TCP 특징 및 헤더

 

TCP Open 스캔

- Open 스캔은 3way-handshaking 과정을 거치는 과정에서 상대방 시스템에 로그 기록이 남는다.

- 먼저 동작 예상 포트에 세션을 생성하기 위한 SYN 패킷을 보낸다.

- 포트가 열려있는 경우에는 서버에서 SYN + ACK 패킷이 돌아오고 공격자는 다시 ACK 패킷을 보낸다.

- 포트가 닫혀있는 경우에는 공격자가 SYN패킷을 보내면 RST + ACK 패킷이 돌아오고 공격자는 아무 패킷도 보내지 않는다.

 

 

 스텔스(Stealth) 스캔

 - 스텔스 스캔은 세션을 완전히 성릭하지 않고, 공격대상 시스템의 포트 활성화 여부를 알아내기 때문에 공격 대상 시스템의 포트 활성화 여부를

   알아내기 때문에 공격 대상 시스템이 로그 정보가 남지 않는다.

 - 따라서 공격 대상의 시스템 관리자는 어떤 IP를 가진 공격자가 자신의 시스템을 스캔하였는지 확인할 수 없다.

 

 

TCP Half Open 스캔

- 스텔스 스캔의 대표적인 형태로서 완전한 세션을 성립하지 않고 포트의 활성화 여부만을 확인하기 때문에 로그가 남지 않는다.

- 먼저 SYN 패킷을 보내고 포트가 열려 있을 경우 서버는 SYN + ACK 패킷을 보내고 공격자는 즉시 연결을 끊는 RST(Reset) 패킷을 보낸다.

 

 

 

- 스텔스의 다른 방법으로 FIN, NULL, XMAS가 있다.

- FIN의 경우 FIN(Finksh)패킷을 보내는 것으로서, 포트가 열린 경우 응답이 없고, 포트가 닫힌 경우에만 RST패킷이 되돌아 온다.

- NULL은 플래그(flag)값을 설정하지 않고 보낸 패킷이며 FIN과 같은 결과가 나온다.

- XMAS는 ACK, FIN, RST, SYN, URG 플래그들의 조합(크리스마스 선물꾸러미)플래그를 모두 설정하여 보낸 패킷으로 FIN과 같은 결과이다.

 

 

 

UDP 스캔

- TCP와는 달리 UDP는 3way-handshaking을 하지 않는다.

- 포트가 닫힌 경우에는 공격 대상이 ICMP Unreachable을 보내지만, 열린 경우에는 보내지 않는다.

- 그러나 응답이 없다고 해서 열려있는 포트라고 확신할 수는 없다. UDP는 라우터나 방화벽을 지나 손실 될 경우도 있기 떄문이다.

 

 

 

[실습] fping, nmap, sing을 이용하여 포트 스캔을 수행하시오.

 

다음과 같은 명령어로 각각의 패키지를 설치한다.

yum install fping.i686

yum install sing.i686

yum install nmap.i686

윈도우용 nmap은 http://nmap.org/download.html에서 다운로드 받는다.

 

yum 사용법
? yum은 redhat에서 사용하는 rpm 패키지를 자동으로 다운받아서 설치.

#yum list 패키지명 => 패키지가 있는지 찾기
#yum install 패키지명 => 해당 패키지 설치
#yum erase 패키지명 => 시스템에서 패키지 지우기

 

 

sing을 이용하여 스캔

- 상대 시스템의 활성화 여부를 확인하기 위해 ICMP 프로토콜을 이용하여 스캔을 할 수 있다.

 

ICMP Timestamp 스캔
#sing -c 1 -tstamp 192.168.10.190

 

 

fping을 이용하여 스캔

- 네트워크에 활성화된 IP 보기
#fping -g 192.168.10.0/24 > /fping.txt

 

 

 

nmap 포트 스캔을 이용하여 스캔

1. Open 스캔 / Connect() 스캔
#nmap -sT -P0 -p 1-1024 -T3 192.168.10.190
(참고: -p 옵션은 포트를 지정... -p 옵션이 없으면 모든 포트 스캔)
(참고2: -T 옵션 0:Paranoid / 1:Sneaky / 2:Polite / 3:Normal
  4:Aggressive / 5: Insane)

2. Half Open 스캔 / SYN 스캔
#nmap -sS -P0 -p 1-1024 -T3 192.168.10.190

3. FIN 스캔
#nmap -sF -P0 -p 1-1024 -T3 192.168.10.190

4. NULL 스캔
#nmap -sN -P0 -p 1-1024 -T3 192.168.10.190

5. XMAS 스캔
#nmap -sX -P0 -p 1-1024 -T3 192.168.10.190

6. ACK 스캔
#nmap -sA -P0 -p 1-1024 -T3 192.168.10.190

7. Window 스캔 (Window 크기 분석)
#nmap -sW -P0 -p 1-1024 -T3 192.168.10.190

8. Decoy 스캔
#nmap -sS -P0 -p 1-1024  -D 192.168.11.11 -T3 192.168.10.190

9. UDP 스캔
#nmap -sU -P0 -p 1-1024 -T3 192.168.10.190

 

 

 

 

윈도우 용 nmap 포트 스캔을 이용하여 스캔

 

 

 

운영체제 탐지

- 운영체제 시스템을 확인하는 방법으로 배너그래빙(Banner Grabbing)을 이용한다.

- 배너(banner)는 시스템에 대한 간단한 역할이나 기관등을 서술한 안내문과 비슷한 것이다.

- 결론을 말하자면, 배너 그래빙을 통해 상대 시스템의 배너를 확인하여 그 시스템의 대한 정보를 얻어오는 것이다.

 

 

[실습] Netcraft와 텔넷 시도를 통해 배너그래빙을 하시오.

 

넷크래프트를 통해 배너그래빙하기

www.NetCraft.com 사이트를 통해 어떤 사이트가 어떤 종류의 서버와 개발툴을 써서 사용중인지 알아낼 수 있다.

 

결과화면

 

 

FTP에 대해 배너 그래빙하기

- telnet [공격대상 IP] [공격대상 포트 번호]와 같이 입력한다.

- 현재 192.168.10.190은 FTP 서비스를 하고 있는 상태이다.

- 서버로스를 이용하여 FTP 포트를 사용하고 있음을 알 수있고 공격을 해야한다면 서버로스의 약점을 이용하여 해야할 것이다.

 

 

방화벽과 침입 탐지 시스템의 탐지

- traceroute(윈도우에서는 tracert)명령어를 사용하면 * * * 과 같이 나오는 경우가 있는데 방화벽을 사용하거나 라우터 필터링의 경우이다.

- 따라서 공격자는 그 특징을 이용하여 어디에 방화벽이 있고 라우터 필터링을 하고 있는지 가늠할 수 있다.

 

윈도우 상에서 tracert를 사용한 경우

 

VisualRoute를 이용한 경우

 

 

 

'Security > Network Hacking' 카테고리의 다른 글

스니핑(Sniffing) - Part 1  (0) 2012.07.13
목록화(Enumeration)  (0) 2012.07.13
[무선해킹] 802.11 WPA 크랙  (0) 2012.07.12
[무선해킹] wep 해킹  (0) 2012.07.12
TCP Session Hijacking  (0) 2012.07.12