1 / 41

Chapter 06

Chapter 06. 풋프린팅과 스캔. 200 22173 류재민. 학습 목표. 풋프린팅 (footprinting) 을 이해한다 . 포트와 서비스의 관계를 이해한다 . 여러 가지 스캔 기술을 이해하고 실행할 수 있다 . 방화벽과 IDS 를 탐지할 수 있다 . 운영체제를 탐지할 수 있다. Section 01. 풋프린팅. 해킹에서 공격 대상의 정보를 모으는 방법 매우 다양한 기법이 있으며 , 매우 넓은 의미가 포함 사회 공학 (Social Engineering)

brian-russo
Download Presentation

Chapter 06

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 06 풋프린팅과 스캔 20022173 류재민

  2. 학습 목표 • 풋프린팅(footprinting)을 이해한다. • 포트와 서비스의 관계를 이해한다. • 여러 가지 스캔 기술을 이해하고 실행할 수 있다. • 방화벽과 IDS를 탐지할 수 있다. • 운영체제를 탐지할 수 있다.

  3. Section 01. 풋프린팅 • 해킹에서 공격 대상의 정보를 모으는 방법 • 매우 다양한 기법이 있으며, 매우 넓은 의미가 포함 • 사회 공학(Social Engineering) 기술적인 방법이 아닌, 개인적인 인간 관계, 업무적 관계 등을 이용하는 방법에서부터 어깨 넘어 훔쳐보기 등정보를 획득하는데 이용 가능한 비 기술적인 경로를 이용해서 정보를 모으는 방법

  4. Section 02. 포트 • 시스템에는 65535개의 포트가 있으며, 0번부터 1023번까지의 1024개의 포트를 Well Known포트라고 부른다. Well Known포트는 일상적으로 잘 알려진 서비스를 위해 고유의용도가 있다. • 보통 0번 포트는 쓰지 않으며, 1024번 포트부터 65534 포트는 임의의 사용 용도를 위해서, 또는 클라이언트가 서버에 접속 시에 할당 받는 포트의 범위 이다.

  5. Well Known 포트 (1/2)

  6. Well Known 포트 (2/2)

  7. 데몬(daemon) • 시스템의 사용자 인터페이스에는 나타나지 않지만, 서비스가 요청되었을 때 이에 반응할 수 있도록 항상 실행되는 프로그램 • 따라서 웹 서비스에 대한 데몬과 FTP 서비스를 위한 데몬이 별도로 존재한다. 각각의 데몬을 실행해야만 포트가 열리며, 해당포트에서 적절한 서비스를 제공받을 수 있다. • 각각의 데몬은 하나의 프로그램이기 때문에 취약점이 존재할 수 있는데, 이러한 점을 이용하여 해커는 공격 대상 시스템에 침투한다.

  8. Section 03. 스캔 • 스캔은 서비스를 제공하는 서버의 작동 여부와 제공하고 있는 서비스를 확인하기 위한 것이다. TCP 기반의 프로토콜은 기본적으로 질의(Request)를 보내면 응답(Response)을 보낸다. • 스캐닝은 이러한 기본적인 메커니즘에 기본 하는 것으로, 열려있는 포트, 제공하는 서비스, 동작중인 데몬의 버전, 운영체제의 버전, 취약점 등 다양한 정보를 얻어내는 것이 가능하다.

  9. Ping /ICMP • Ping 네트워크와 시스템이 정상적으로 작동하는지 확인하기 위한 간단한 유틸리티로 개발되었다. ICMP를 사용한다. • ICMP(Internet Control Messaging Protocol) 호스트 서버와 인터넷 게이트웨이 사이에서 메시지를 알려주고 오류를 알려주는 프로그램

  10. ICMP 스캔 • ICMP를 이용한 스캔 방법에는 다음의 네 가지가 있다. - Echo Request(Type 8)와 Echo Reply(Type 0)을 이용한 방법 - Timestamp Request(Type 13)와 Timestamp Reply(Type 14)을 이용하는 방법 - Information Request(Type 15)와 Information Reply(Type 16)을 이용하는 방법 - ICMP Address Mask Request(Type 17)와 ICMP Address Mask Reply(Type 18)을 이용하는 방법

  11. Echo Request(Type 8),Echo Reply(Type 0)

  12. Timestamp Request(Type 13),Timestamp Reply(Type 14) • Timestamp Request는 원격지 시스템의 현재 시간을 알아보기 위한 패킷이다. Timestamp 패킷은 송신자의 패킷 전송시간(Originate Timestamp)과 수신자가 패킷을 받은 시간(ReceiveTimestamp), 수신자가 송신자에게 응답 할 때의 시간(Transmit Timestamp)으로 공격대상의 현재 시스템 시간을 알 수 있다. • 하지만, Timestamp Request 패킷에 Reply 패킷을 돌려보내오는 시스템이 시간만 알려준다고 생각할 수는 없다. 상대 시스템이 Reply 패킷이 돌아온다는 것은 상대 시스템이 활성화되어 있음을 말하는 것이다.

  13. Information Request(Type 15), Information Reply(Type 16) • Information Request와 Reply 패킷은 메인 프레임의 터미널과 같이 부팅할 때 자신의 디스크가 없는 시스템에 스스로 설정할 수 있도록 하는 패킷으로, 자신의 네트워크를 찾기 위해 개발되었다. 기본적인 목적은 RARP, Bootp, DHCP와 같은 프로토콜과 같으나 다른 프로토콜을 이용한 방법에 비해 원시적이라고 할 수 있다. 이 방법 역시 Timestamp 패킷과 마찬가지로 죽어있는 시스템이 Reply 패킷을 보내오지는 않을 것이다.

  14. ICMP Address Mask Request(Type 17), ICMP Address Mask Reply(Type 18) • ICMP Address Mask Request와 Reply 패킷은 Information Request 패킷과 같이 터미널이 부팅될 때 자신이 속해 있는 네트워크의 서브넷 마스크를 알기 위해서 보내는 프로토콜이다. 위의 두 가지 방법과 마찬가지로 Reply 패킷을 돌려보내오는지 확인함으로써, 상대 시스템의 활성화 여부를 확인한다.

  15. UDP 스캔 • 포트가 열려있을 경우, 아무런 응답이 없으며, 포트가 닫혀 있을 경우에는 ICMP Unreachable 패킷을 받게 된다.

  16. TCP Open 스캔 • 포트가 열려있는 경우, 세션이 성립되며, 포트가 닫혀 있을 경우에는 RST+ACK 패킷을 받게 된다.

  17. Reverse Ident 스캔 • 세션이 성립한 상태에서 원격지 서버에서 데몬을 실행하고 있는 프로세스의 소유권자를 확인하기 위한것 • 세션이 성립한 뒤에 113번 포트를 연다. 113번 포트는 사용자 인증을 위해 사용되는 포트지만, 보통의 경우 이 서비스는 중지되어 있다.

  18. Stealth 스캔 • Open 스캔처럼 세션을 완전히 성립하지 않고, 공격 대상 시스템의포트의 활성화 여부를 알아내기 때문에 로그 정보가 남지 않는다. 공격 대상의 시스템 관리자는 어떤 IP를 가진 공격자가 자신의 시스템을 스캔했는지 확인할 수 없다. • 스텔스 스캔은 이처럼 단순히 로그를 남기지 않는 것만이 아니라, 공격 대상을 속이고 자신의 위치를 숨기는 스캔 모두를 통칭한다.

  19. Stealth 스캔 : TCP Half Open 스캔 • 포트가 열려있을 경우, 서버로부터 SYN+ACK 패킷을 받은 후, RST(Reset) 패킷을 보내어 연결을 끊는다. 포트가 닫혀있을 경우에는 Open 스캔의 경우와 같다.

  20. Stealth 스캔 : FIN, Xmas, Null 스캔 • 포트가 열려있을 경우에는 응답이 없고, 포트가 닫혀 있는 경우에만 RST 패킷이 되돌아온다.

  21. 기타 스캔 방법 (1/2) • ACK 패킷을 이용하는 방법 공격자로부터 받은 RST 패킷을 분석하여 상대 시스템의 활성화 여부 확인 • TCP를 패킷을 이용한 스캔 방법 SYN 패킷을 이용한 스캔 방법은 세션을 성립하기 위한 정당한 패킷과 구별 불가능 • Stealth : TCP 단편화 방법 20바이트의 TCP 헤더를 두개의 패킷으로 나누어 보냄으로서 방화벽을 통과함

  22. 기타 스캔 방법 (2/2) • 시간차를 이용한 스캔 • Paranoid : 5 ~ 10분 간격으로 패킷을 보냄 • Sneaky : WAN=15, LAN=5초단위로 패킷을 보냄 • Polite : 0.4초 단위로 패킷을 보냄 • Normal : 정상적인 경우 • Aggressive : 호스트에 대한 최대 타임아웃은 5분이며, 패킷당 1.25초까지 응답을 기다림 • Insane : 호스트에 대한 최대 타임아웃은 75초이며, 패킷당 0.3초까지 응답을 기다림(방화벽과IDS의 네트워크 카드가 100Mbps 이상이 아니면 탐지 불가 • FTP 바운스(bounce) 스캔 취약한 FTP서버에서는 Port명령을 통해 다른 포트에 대한 활성화 여부 확인, 방화벽 내에 취약한 FTP서버 존재시 사용

  23. Fping을 이용한 스캔 Fping을 이용하여 특정 네트워크에서 활성화된 시스템 확인

  24. Sing을 이용한 스캔(1/2)

  25. Sing을 이용한 스캔(2/2)

  26. NMAP을 이용한 스캔(1/3)

  27. NMAP을 이용한 스캔(2/3)

  28. NMAP을 이용한 스캔(3/3)

  29. NMAP을 이용하여 가능한 스캔

  30. Section 04. 운영체제의 탐지 • 배너 그래핑(Banner Grabbing) Banner Grabbing은 Telnet과 같이 원격지의 시스템에 로그인을 시도하면 나타나는 안내문과 같은 것이다. • 23번 포트에 탤넷 접속을 시도한 위의 화면에서는 운영체제의 버전과 커널 버전을 확인할 수 있다. 이러한 배너 그래빙은 23번 포트 외에도 21,25,110,143 포트에서도 가능하다.

  31. TCP/IP 프로토콜에 대한 반응 • Fin 스캔을 이용한다. Fin 스캔은 모든 운영체제에 적용되는 것은 아니다. 적용되는 운영체제는 윈도우, BSD, Cisco, Iris등으로, Fin 스캔의 가능 여부에 따라 운영체제를 판별할 수 있다. • 세션 연결 시 TCP 패킷의 시퀀스 넘버 생성을 관찰 - 윈도우 : 시간에 따른 시퀀스 넘버 생성 - 리눅스 : 완전한 랜덤 - FreeBSD, Digital-Unix, IRIX, Solaris : 시간에 따른 랜덤한 증분

  32. 넷크래프트 이용

  33. Section 05. 방화벽과 침입 탐지 시스템의 탐지 • 방화벽은 침입자를 차단하는 일차적은 방어선이다. 모든 클라이언트가 접속을 시도하면, 그 연결은 모두 방화벽을 거치는 것이 원칙이다. 또한 방화벽은 이 모든 접속들에 대한 허용과 차단을 결정한다. • 침입 탐지 시스템(IDS, Intrusion Detection System)은 방화벽이 막을 수 없거나 차단에 실패한 공격에 대한 탐지를 하여 관리자에게 알려주는 역할을 한다.

  34. Traceroute / Tracert을 이용한 방법(1/3) • Traceroute의 원리 • UDP와 ICMP, 그리고 IP의 TTL 값을 이용 • a.a.a.a 에서 b.b.b.b까지 traceroute할 경우의 동작순서 1. Traceroute 프로그램은 TTL 밧을 1로 설정하고 포트 번호를 33435번으로 하여 UDP 패킷을 한 번에 세 개씩 보낸다. 2. 첫 번째 라우터는 1로 설정된 TTL 값을 0으로 줄이고, 출발지 주소로 ICMP Time Exceed 메시지(Type 11)를 보낸다. 3. a.a.a.a 에서 이 패킷을 보고, 첫 번째 라우터까지의 시간을 알아낼 수 있다. 4. 다시 두 번째 라우터까지는 TTL 값을 2로 설정하여 보내고, 첫 번째 라우터와 같은 과정을 두번째 라우터가 하게 된다. 5. 이 과정을 반복하여 목적지 시스템에 도달하게 되면 ICMP Port Unreachable(Type 3)패킷이 돌아오게 되고 모든 과정이 끝난다.

  35. Traceroute / Tracert을 이용한 방법(2/3) • 목표 IP에 대해 traceroute를 시도할 경우, ICMP Time Exceed Message가 돌아오지 않고, * 로 표시된 부분에 방화벽이 존재할 수 있다.

  36. Traceroute / Tracert을 이용한 방법(3/3)

  37. Sam Spade를 이용한 traceroute

  38. Port 스캔을 이용하는 방법(1/2) • 각각의 방화벽과 IDS는 운영을 위해 특정한 포트를 활성화시키고 있다. 특정 포트에 대한 탐지를 통해 방화벽과 IDS의 종류까지 알아낼 수 있다. [방화벽에서 열린 포트]

  39. Port 스캔을 이용하는 방법(1/2) • 하지만 일반적인 스캔 방법으로 포트를 확인할 수 있는 것은 아니다. 이 포트들을 찾아내려면 집중적인 스캔 방법이 필요하다. [IDS에서 열린 포트]

  40. 방화벽의 ACL(Access Control List)를 알아내는 방법(1/2) 1. 방화벽이 탐지되면 방화벽까지의 TTL보다 1만큼 더 큰 TTL 값을 생성하여 보낸다. 2. 방화벽이 패킷을 차단할 경우 아무런 패킷도 돌아오지 않는다.

  41. 방화벽의 ACL(Access Control List)를 알아내는 방법(2/2) 3. 방화벽이 패킷을 그대로 보낼 경우, 패킷은 다음 라우터에서 사라지며, 라우터는 ICMP Time Exceed Message(Type 11)을 보낸다. 4. 공격자는 ICMP Time Exceed Message의 여부를 확인하고, ACL을 예측할 수 있다.

More Related