풋프린팅과스캐닝 영동대학교스마트 IT 학부 : 컴퓨터와해킹 이호준 hjlee@yd.ac.kr
Contents 학습목표 풋프린팅 (footprinting) 이무엇인지안다. 포트와서비스의관계를이해한다. 다양한스캔기술을이해하고실행할수있다. 방화벽과 IDS를탐지할수있다. 운영체제를탐지할수있다. 내용 풋프린팅 (Footprinting) 스캔 운영체제의탐지 방화벽과침입탐지시스템의탐지 2/35
풋프린팅 풋프린트 (footprint) 는발자국 풋프린팅 (footprinting) 은발자국을살펴보는것으로, 공격대상의정보를모으는방법중하나 3/35
스캔 서비스를제공하는서버의존재여부와해당서버가제공하고있는서비스를확인하는것 TCP 기반프로토콜은기본적으로요청 (request) 을보내면응답 (response) 을전달. 스캔은이런원리를기반으로, 전화를걸었을때한쪽에서 여보세요 라고말하면다른쪽도 여보세요 라고말하며서로를확인하는것 4/35
ping 과 ICMP 스캔 ping 네트워크와시스템이정상적으로작동하는지확인하기위한간단한유틸리티 ICMP 를사용하며, 기본적으로 TCP/IP 네트워크에서사용 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) 를이용한방법 5/35
ping 과 ICMP 스캔 윈도우 XP 시스템에서다른윈도우 XP 시스템으로 ping 실행 ➊ ICMP 패킷의길이를나타낸다. 운영체제마다보내는바이트길이가다르다. ➋ 공격대상에서보내온 ICMP Echo Reply 패킷의크기다. 공격자가보낸패킷과크기가같은패킷이돌아온다. ➌ Echo Request 패킷을보낸후 Reply 패킷을받기까지의시간이다. 공격대상이같은네트워크에존재하여시간이무척짧다. ➍ TTL(Time To Live) 값으로, 라우팅정보가잘못되어패킷이네트워크를무한대로돌아다니지않도록최초라우터를제외한라우터하나를지날때마다값이 1 씩줄어든다. ➎ Request 패킷의개수, Reply 패킷의개수, 손실된패킷의개수를보여준다. ➏ Request 패킷을보낸후 Reply 패킷이오기까지의시간에관한정보를알려준다. 6/35
ping 과 ICMP 스캔 운영체제별 TTL 값 ( 표 6-1) 7/35
ping 과 ICMP 스캔 리눅스에서의 ping 실행 8/35
ping 과 ICMP 스캔 라우터나방화벽등에서 ICMP Echo Request 패킷을막는방법 Timestamp Request 패킷이용 Timestamp Request 는원격지시스템의현재시각을알아보기위한패킷 Timestamp Request 패킷은송신자가패킷을보낸시각 (Originate Timestamp) 과수신자가패킷을받은시각 (Receive Timestamp), 송신자가수신자에전송하는동안걸린시간 (Transmit Timestamp) 으로공격대상의현재시스템시각을알수있게해줌 하지만 Timestamp Request 패킷에 Reply 패킷을돌려보내는시스템이시간만알려준다고생각할수는없음. 상대시스템의 Reply 패킷이돌아온다는것은상대시스템이활성화되어있음도말하는것 Information Request 패킷이용 Information Request 와 Reply 는메인프레임의단말기처럼부팅할때자신의디스크가없는시스템이스스로 IP 를설정할수있도록하는패킷으로, 자신의네트워크를찾기위해개발됨. 기본목적은 RARP, Bootp, DHCP 같은프로토콜과같으나다른프로토콜을이용한방법에비해원시적이라고할수있음 Timestamp Request 패킷처럼죽은시스템은 Reply 패킷을보내오지않을것 ICMP Address Mask Request 와 Reply 패킷이용 Information Request 패킷처럼단말기가부팅될때자신이속한네트워크의서브넷마스크를알기위해보냄 Reply 패킷이돌아오는지확인함으로써상대시스템의활성화여부를확인 9/35
ping 과 ICMP 스캔 운영체제별 Non Echo ICMP 패킷의작동여부 ( 표 6-2) 10/35
TCP 와 UDP 를이용한스캔 시스템자체의활성화여부가아닌포트스캔 (port scan) 을함 포트가열려있으면해당시스템은활성화되어있는것 TCP Open 스캔 (1) 열린포트에대해완전한세션을성립시킴으로써포트의활성화상태를파악하는것 작동하리라고예상하는포트에세션을생성하기위한 SYN 패킷을보내면, 포트가열린경우서버에서 SYN+ACK 패킷이돌아오고공격자는다시 ACK 패킷을보냄. 포트가닫혀있는경우에는 RST +ACK 패킷이돌아오고공격자는아무패킷도보내지않음 11/35
TCP 와 UDP 를이용한스캔 TCP Open 스캔 (2) Open 스캔중에는세션을성립한상태에서원격지서버에서데몬을실행하고있는프로세스의소유권자를확인하기위한 Reverse Ident 라는스캔방법이있음. Reverse Ident 스캔은세션을성립한후에 113 번포트를염. 113 번포트는사용자인증을위해사용되는포트지만, 이서비스는보통중지되어있음 12/35
TCP 와 UDP 를이용한스캔 스탤스스캔 세션을완전히성립하지않고, 공격대상시스템의포트활성화여부를알아내기때문에공격대상시스템에로그가남지않음 TCP Half Open 스캔 SYN 패킷을보내면, 포트가열린경우서버는 SYN+ACK 패킷을보내고공격자는즉시연결을끊는 RST(Reset) 패킷을보냄. 포트가닫힌경우는 RST +ACK 패킷이돌아오고공격자는아무패킷도보내지않음 13/35
TCP 와 UDP 를이용한스캔 FIN, NULL, XMAS 스캔 FIN(Finish) 패킷을보내포트가열린경우에는응답이없고, 포트가닫힌경우에만 RST 패킷이되돌아옴 NULL 과 XMAS 패킷을보내도같은결과를얻을수있음. NULL 은플래그 (flag) 값을설정하지않고보낸패킷, XMAS 는 ACK, FIN, RST, SYN, URG 플래그모두를설정하여보낸패킷 14/35
TCP 와 UDP 를이용한스캔 ASK 패킷스캔 ACK 패킷을포트하나가아니라모든포트에보내고, ACK 패킷을받은시스템은이에대한 RST 패킷을보냄 공격자는 RST 패킷의 TTL 값과윈도우크기분석 포트가열린경우 TTL 값이 64 이하인 RST 패킷이돌아오고, 윈도우가 0 이아닌임의의값을가진 RST 패킷이돌아옴. 포트가닫힌경우에는 TTL 값이운영체제에따라일정하게큰값이며, 윈도우의크기가 0 인 RST 패킷이돌아옴 TCP 단편화스캔 크기가 20 바이트인 TCP 헤더를패킷두개로나누어보내는것 첫번째패킷에출발지 IP 주소와도착지 IP 주소를, 두번째패킷에스캔하고자하는포트번호가있는부분을보냄 첫번째패킷은 TCP 포트에대한정보가없기때문에방화벽을통과하고, 두번째패킷은출발지주소와목적지주소가없어방화벽을지날수있음 시간차스캔 아주짧은시간동안많은패킷을보내는방법과아주긴시간동안패킷을보내는방법이있음 아주짧은시간동안많은패킷을보내는방법은방화벽과 IDS 의처리용량의한계를넘김 긴시간동안에걸쳐서패킷을보내는방법은방화벽과 IDS 가패킷패턴에대한정보를얻기힘들기때문에공격자의스캔을확인하기힘들게함 15/35
TCP 와 UDP 를이용한스캔 UDP 스캔 UDP 패킷이네트워크를통해전달되는동안라우터나방화벽에의해손실될수있기때문에신뢰하기어려움 16/35
실습 6-1 다양한방법으로스캔하기 실습환경 공격자시스템 : 윈도우 XP와리눅스페도라 12 공격대상시스템 : 윈도우서버 2003 필요프로그램 : fping, hping3, sing, nmap 1 관련툴설치와사용법익히기 1-0 관련명령어사용법 yum list [ 패키지명칭, * 사용가능 ] yum install [ 패키지명칭, * 사용가능 ] yum erase [ 패키지명칭, * 사용가능 ] 1-1 fping 설치 ➊ yum list fping* ➋ fping.i686 패키지확인 ➌ yum install fping.i686 17/35
실습 6-1 다양한방법으로스캔하기 1-2 sing 와 nmap 설치 ➊ yum list sing* ➋ yum install sing.i686 ➌ yum list nmap* ➍ yum install nmap.i686 2 fping 을이용해스캔하기 : fping 실행 fping -g 192.168.0.0/24 18/35
실습 6-1 다양한방법으로스캔하기 3 sing 을이용해스캔하기 : sing 실행 sing -c 1 -tstamp 192.168.0.100 19/35
실습 6-1 다양한방법으로스캔하기 4 nmap 이용해스캔하기 4-1 nmap Open 스캔 nmap -st 192.168.0.200 20/35
실습 6-1 다양한방법으로스캔하기 4-2 nmap TCP SYN 스캔 nmap -ss 192.168.0.200 21/35
실습 6-1 다양한방법으로스캔하기 4-3 nmap FIN 스캔 nmap -sf -p 21,23 192.168.0.200 22/35
실습 6-1 다양한방법으로스캔하기 4-4 nmap fragmentation 스캔 nmap -f -ss 192.168.0.200 23/35
실습 6-1 다양한방법으로스캔하기 4-5 윈도우용 nmap 실행 24/35
실습 6-1 다양한방법으로스캔하기 nmap 스캔옵션 ( 표 6-3) 25/35
실습 6-1 다양한방법으로스캔하기 nmap 실행옵션 ( 표 6-4) 26/35
운영체제의탐지 운영체제별로 ping 과 TCP, UDP 에대해각각조금씩다른프로토콜특성을보인다. 이러한특성을이용하여운영체제를탐지가능 배너그래빙 (banner grabbing) 배너 (banner) 는텔넷처럼원격지시스템에로그인하면뜨는안내문과비슷한것이고배너그래빙은배너를확인하는기술 텔넷배너그래빙 ( 그림 6-19) 텔넷으로접속한시스템이페도라 12, 커널버전은 2.6.31 방화벽과 IDS 에도이러한배너가있으며, 21, 25, 110, 143 번포트에도 telnet [ 공격대상 IP] [ 공격포트번호 ] 와같이입력하여배너그래빙을할수있음 27/35
운영체제의탐지 TCP/IP 에대한반응확인 TCP/IP 에대한반응이운영체제마다달라그반응을살핌으로써운영체제를추측할수있음 예 FIN 스캔을이용한다. FIN 스캔은모든운영체제에적용되는것은아니다. 적용되는운영체 제는윈도우, BSD, Cisco, IRIS 등이다. 세션연결시 TCP 패킷의시퀀스넘버생성을관찰한다. - 윈도우 : 시간에따른시퀀스넘버생성 - 리눅스 : 완전한랜덤 - FreeBSD, Digital-Unix, IRIX, 솔라리스 : 시간에따른랜덤한증분 28/35
운영체제의탐지 Netcraft( 넷크래프트 ) 의웹사이트이용 시스템재부팅주기, 시스템갱신주기, 현재운영체제버전, 웹서비스데몬의종류와버전, 마지막으로갱신날짜와 IP 주소, 네트워크소유자를보여줌 29/35
실습 6-2 배너그래빙하기 실습환경 공격자시스템 : 리눅스페도라 12 스캔대상시스템 : 리눅스페도라 12 1 FTP 에대해배너그래빙하기 1-1 FTP 포트에대한텔넷 telnet 192.168.0.2 21 1-2 FTP 포트접속 ftp 192.168.0.2 30/35
실습 6-1 다양한방법으로스캔하기 2 SMTP 포트에대해배너그래빙하기 2-1 SMTP 포트에대해배너그래빙하기 2-2 SSH(22), POP3(110) 나 IMAP4(143) 등에대한배너그래빙 ➊ telnet 127.0.0.1 22 ➋ telnet 127.0.0.1 110 ➌ telnet 127.0.0.1 143 31/35
방화벽과침입탐지시스템의탐지 방화벽은접속의허용과차단결정. 침입탐지시스템 (IDS) 은방화벽이막을수없거나차단에실패한공격을탐지하여관리자에게알려줌 방화벽은 traceroute 를이용해위치확인가능 방화벽이있는경우 traceroute 결과 traceroute 를수행할때 VisualRoute 를이용해패킷의전달경로와서버의위치처럼더많은정보를얻을수있음 32/35
방화벽과침입탐지시스템의탐지 방화벽과침입탐지시스템마다포트가달라고유포트를알면포트스캔을통해종류파악가능 33/35
방화벽과침입탐지시스템의탐지 방화벽의 ACL(Access Control List) 을알아내는방법으로 firewalk 가있음 firewalk 원리 1 방화벽이탐지되면방화벽까지의 TTL 보다 1 만큼더큰 TTL 값을생성하여보낸다. 2 방화벽이패킷을차단할경우아무패킷도돌아오지않는다. 3 방화벽이패킷을그대로보낼경우패킷은다음라우터에서사라지며, 라우터는 traceroute 과정처럼 ICMP Time Exceeded 메시지 (Type 11) 를보낸다. 4 공격자는 ICMP Time Exceeded 메시지의여부를받은포트에대해열린포트임을추측할수있다. 34/35
영동대학교스마트 IT 학부 : 컴퓨터와해킹