Diggin em Walls ? 방화벽 탐지, 그리고 방화벽 뒤의 네트워크 확인

Similar documents
Diggin Em Walls (part 3) - Advanced/Other Techniques for ByPassing Firewalls

UDP Flooding Attack 공격과 방어

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

Microsoft PowerPoint - 4. 스캐닝-2.ppt [호환 모드]

Microsoft PowerPoint - 4.스캐닝-1(11.08) [호환 모드]

시스템, 네트워크모니터링을통한보안강화 네트워크의미래를제시하는세미나 세미나 NetFocus 2003 : IT 관리자를위한네트워크보안방법론 피지피넷 /

정보보안 개론과 실습:네트워크

bn2019_2

슬라이드 제목 없음

Microsoft PowerPoint - thesis_rone.ppt

Microsoft PowerPoint - ch13.ppt

[ tcpdump 패킷캡처프로그램 ] tcpdump란? tcpdump 버전확인 tcpdump 플래그 (flags) tcpdump 사용법 tcpdump의사용예제 telnet을활용해 root와 passwd 암호알아내기 [01] tcpdump란? tcpdump는 Lawren

Microsoft Word - NAT_1_.doc

TCP.IP.ppt

SMB_ICMP_UDP(huichang).PDF

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Microsoft Word doc

슬라이드 1

Microsoft PowerPoint - 4. 스캐닝-2(11.21) [호환 모드]

< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

Microsoft PowerPoint - L4-7Switch기본교육자료.ppt

2009년 상반기 사업계획

슬라이드 1

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Network seminar.key

제20회_해킹방지워크샵_(이재석)

untitled

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

6강.hwp

OSI 참조 모델과 TCP/IP

일반적인 네트워크의 구성은 다음과 같다

[ R E P O R T ] 정보통신공학전공 김성태

Subnet Address Internet Network G Network Network class B networ

2. 인터네트워킹 서로떨어져있는각각의수많은네트워크들을연결하여하나의네트워크처럼연결하여사용할수있도록해주는것 3. 인터네트워킹에필요한장비 1 리피터 (Repeater) - 데이터가전송되는동안케이블에서신호의손실인감쇄 (Attenuation) 현상이발생하는데, 리피터는감쇄되는신

Microsoft Word - access-list.doc

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

1217 WebTrafMon II

Microsoft Word - src.doc

PowerPoint 프레젠테이션

이세원의 인터넷통신 과제 02.hwp

hd1300_k_v1r2_Final_.PDF

<BDC5B1E2BCFAB5BFC7E2C3DFB0A1BABB D342E687770>

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

GRE(Generic Routing Encapsulation) GRE는 Cisco에서개발한터널링프로토콜으로써특정네트워크망에서새로운 IP 헤더를인캡슐레이션하여패켓을전송하는 VPN 기능을제공한다. GRE 터널링을이용하여패켓을전송하면, 데이터를암호화하지않기때문에보안적으로는취

5th-KOR-SANGFOR NGAF(CC)

자바-11장N'1-502

방화벽 설정 - iptables


Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드]

인도 웹해킹 TCP/80 apache_struts2_remote_exec-4(cve ) 인도 웹해킹 TCP/80 apache_struts2_remote_exec-4(cve ) 183.8

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

Sena Device Server Serial/IP TM Version

정보보안 개론과 실습:네트워크

DoS 공격의유형분석및탐지방법 (Monitoring and Investigation of DoS Attack) 영산대학교 사이버경찰학과 이성진

Microsoft PowerPoint - tem_5

네트워크 고전 해킹 기법의 이해

ìœ€íŁ´IP( _0219).xlsx

Microsoft PowerPoint - chap01-C언어개요.pptx

PowerPoint 프레젠테이션

Microsoft Word - WP_04_Firewall.NAT.doc

Cisco SDN 3.0 DDoS DDoS Cisco DDoS Real Demo 2008 Cisco Systems, Inc. All rights reserved. 2

시스템을 제공한다는 특징이 있다. ONOS[4]는 성능, 확장성, 가용성을 중시하는 분산형 SDN 컨트롤러이 며 편의성 있는 Web GUI 와 SDN 컴포넌트 단위의 계층 구조를 통해 어플리케이션을 개발하고 컨트롤 러에 탑재할 수 있는 기능들을 제공한다. 하지만 ONO

ㅇ악성코드 분석

인터넷프로토콜중간고사 학번 이름 1. ipconfig/all 을수행하면다수의인터페이스에 X.X 인주소가붙어있는 것을볼수있다. 이주소는어떤특수주소인가? [3 점 ] 2. Option 이없는 IP 헤더를그려라. 각필드의명칭을정확히기입하라.

*

PowerPoint Template

KISA-GD

슬라이드 1

Microsoft Word - Tcpdump 사용설명서.doc

[QoS 강좌] QoS에서의 혼잡 회피 적용과 이해 ②

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

PowerPoint 프레젠테이션

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 -

SLA QoS

PowerPoint 프레젠테이션

컴퓨터네트워크와인터넷 컴퓨터네트워크 Copyright by Tommy Kwon on August, 2010 Copyright by Tommy Kwon on August, 통신 정보전송시스템의구성과역할, 원리 l 원격지간에정보를잘전송하고처

untitled

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

*****

Windows Server 2012

네트워크 보안 Network Security

버인지유닉스서버인지를알아야버그나공격툴을찾아가기때문이다. 윈도우 ftp 서버에유닉스용서버인 wu-ftp에대한버그공격을하는짓과같기때문이다. 이런점을보안에서역이용해서윈도우서버이지만유닉스서버처럼보이게끔가장하기도한다. 수퍼스캐너로간단히 OS탐지를할수있다. 바로윈도우서버들은 13

ÀÎÅÍ³Ý ÁøÈï¿ø 5¿ù

Microsoft Word - ZIO-AP1500N-Manual.doc

ÀÎÅÍ³Ý ÁøÈï¿ø 3¿ù ÀúÇØ»ó

운영체제실습_명령어

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

SOLUTION BRIEF 차세대 빅데이터 기반 통합로그관리시스템으자, SIEM 솔루션으로 데이터를 수집/분석/검색 및 추가하고, 효율적인 보안 운영을 실시합니다. 대용량 데이터를 수집하고 처리하는 능력은 사이버 보안에 있어서 통찰력을 제공하는 가장 중요하고, 기초적인

Microsoft PowerPoint - 2.Catalyst Switch Intrastructure Protection_이충용_V1 0.ppt [호환 모드]

< F5320B4EBC0C0C0E5BAF1BFA120B4EBC7D120BAB8BEC8B1E2B4C920B0A1C0CCB5E528C3D6C1BE292E687770>

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

<4D F736F F F696E74202D203033B3D7C6AEBFF6C5A9BAB8BEC8B0FA20C7D8C5B72E707074>

3ÆÄÆ®-11

Linux Server - IPtables Good Internet 소 속 IDC실 이 름 정명구매니저

14.Linux_CentOS5_iptables_2010_0328.hwp

1

SSL Strip Attack JAC (SemiDntmd) 이우승 semidntmd.tistory.com

Today s Challenge 급속도로증가하는트래픽 최근들어, 스마트폰, 태블릿 PC 등모바일단말기의증가와 VoIP, IPTV, 화상회의등 IP 기반애플리케이션의수요증가로인해네트워크상의트래픽은 예년에없던급증세를타고있습니다. 한조사기관에따르면, 2015 년까지 IP 트

Microsoft Word - Blind TCP IP hijacking.doc

Transcription:

Diggin em Walls 방화벽탐지, 그리고방화벽뒤의네트워크확인 by Ka0ticSH(asm.coder@verizon.net) 번역 : vangelis (vangelis@wowhacker.org ) Wowcode Team of wowhacker 서문이글은방화벽의확인, 탐지, 그리고침입테크닉에대해서다룰것이며, 더특별히방화벽이면에존재하는네트워크를확인하는능력을다룰것이다. 앞으로계속될버전에서는방화벽을무력화시키거나변조하지않고방화벽이면에있는목표네트워크에접근하는가능성에대해다룰것이다. 그리고포트리다이렉션테크닉에대해서도다룰것이다. 이글을읽기위해네트워킹, 유닉스운영시스템에대한지식, 그리고 nmap(http://www.insecure.org/nmap) 유틸리티가가까이에있으면좋겠다. 자살임무 : 방화벽없이인터넷에서버가연결하도록하는것이다. 방화벽을설치하고배치하는것에대한책을 Cheswick와 Bellovin가쓴이후방화벽은 ISP, 호스팅업체, 그리고심지어는개인사용자들의지속적인요구사항이되었다. 그리고비경험자가방화벽을설정하는것은파괴적이거나부주의하거나자살행위나마찬가지다. 보통네트워크또는시스템관리자들이그렇다. 관리자들은네트워크에대한경험을가지고있을지모르지만보안기술은제한적일수있다. 이것은잘못설정된방화벽으로이어지고, 과도하게자신감을가진관리자는그의네트워크가안전하다고생각해서자신의네트워크패킷트래픽필터링에중요한헛점을만들어낸다. 도입 : 현재보안시장에서두가지방화벽이인기를끌고있다. 그것은 Application Proxies와 Packet Filtering Gateways이다. 대부분의사람들의의견은 Application Proxies가 Packet Filtering Gateways 보다더안전하다는것에있다. 물론각각은장단점을가지고있다. Application Proxies는패킷이나가는것에대해엄격한만큼안으로들어오는패킷에대해더엄격하다. Packet Filtering Gateways는대규모회사네트워크에서찾아볼수있는데, 고도의수행능력을가지고있으며, 내부로들어오는트래픽이라는필수사항을가지고있다. 방화벽들은지난몇년동안많은시스템이나네트워크를안전하게해왔다. 즉, 악의적인패킷이나감시의눈길등으로부터안전하게해왔다. 하지만단순한방화벽은안전과는거리가멀다. 이방화벽들에서취약점들은자주발생한다. 각타입의방화벽을공격할새로운 exploit나그방화벽을우회할테크닉이발견되고있다. 가장큰취약점은방화벽의잘못된설정이다. 제대로설정되거나고안되었거나, 업데이트되고유지된다면방화벽은좀처럼침입하기가힘들다. 대

부분의해커들은이방화벽에달려들어스스로피곤한시간을보내지는않을것이다. 차라리방화벽이면에있는안전한시스템들의신뢰관계를공격하거나방화벽에의해필터링되지않는서비스를통해공격할것이다. 존재하는방화벽및이면탐지 : 각방화벽은그것자체의독특한확인스타일을가지고있다. 공격자는단순한스캐닝이나배너확인등을통해이확인시퀀시를이용할수있다. 이렇게해서버전, 타입, 그리고심지어는어떤규칙까지도확인할수있다. 이확인방법은중요하지않게보이지만일단방화벽의전략포인트를확인하면취약점이수면에떠오르게된다. 가장단순한탐지 / 확인테크닉은열린포트에대한간단한스캐닝이다. 어떤방화벽들은디폴트로열린포트에의해확인될수있다. CheckPoint의 Firewall-1은디폴트로 TCP 포트 256, 257, 258이열려있다. 반면 Microsoft의 Proxy Server는디폴트로 TCP 포트 1745와 1080이열려있다. 다른방화벽들도그들의디폴트포트가열려있다. nmap에몇가지인자를사용해실행시키면어떤방화벽을확인하거나방화벽의존재여부를확인할수있다. [root@localhost]# nmap -n -vv -P0 -p256, 257, 258, 1080, 1745 10.10.1.8 어떤숙달되어있거나또는심지어새로소개된공격자가어떤방화벽이나또는패킷필터링장애물에대한정보를제공하기위해어떤네트워크에대한이스캐닝을수행할것이확실하다. 어쨌던침입탐지시스템 (Intrusion Detection System, IDS) 은이스캐닝을포착하지는않을것이다. 아마도당신은당신의 IDS 설정을스캐닝을포착하도록설정할수는있지만 IDS는보통철저하게위협이되는 ( hardcore threatening scan ) 스캐닝만을기록한다. 또한주의배너 (note banner) 를통한방화벽확인기술도디폴트포트만큼이나많이사용된다. C: > nc -v -n 10.10.1.8 23 (UNKNOWN) [10.10.1.8] 23 (?) open Eagle Secure Gateway. Hostname: 이것이방화벽임을확인할더많은증거를수집하기위해 TCP 25(Send Mail Transfer Protocol, SMTP) 로 netcat을사용하기도하기도한다. C: > nc -v -n 10.10.1.8 25 (UNKNOWN) [10.10.1.8] 25 (?) open 421 10.10.1.8 Sorry, the firewall does not provide mail service to you.

노트배너를통해방화벽이존재하고있고, 25 번포트가필터링되고있음을알수있다. 방화벽의존재여부를확인하는제삼의방법은포트확인테크닉이다. 여러방화벽들은일련의숫자를돌려주는데, 이것을통해방화벽의타입과버전을확인할수있다. 예를들어, TCP 259(SNMP) 에 netcat을이용해다음과같이연결하면 Checkpoint Firewall-1이구현되어있음을알수있다. [root@localhost]# nc -v -n 10.10.1.72 259 (UNKNOWN) [192.168.21.1] 259 (?) open 30000003 [root@localhost]# nc -v -n 10.10.1.95 259 (UNKNOWN) [192.168.29.212] 259 (?) open 31300003 또다른하나의테크닉은디버깅툴을사용하는것이다. Traceroute는아주잘작동한다. traceroute 또는윈도우시스템에서는 tracert.exe는어떤호스트쪽으로활성화된 hop과양을탐지하는데사용되는네트워크디버깅유틸리티이다. 디폴트로 UDP 데이터그램패킷이나스위치디시즌으로 ICMP ECHO 패킷을보낸다. 이패킷들은 TTL (Time to Live) 필더로설정되어있다. TTL은 1로설정되어있다. 패킷 TTL 필더는호스트가탐지될때마다 1씩증가하고, 0의 TTL 필더를가진가장최근의탐지되지않은호스트에도달한다. 0의 TTL 을가진이패킷이라우터에도달할때라우터는디폴트로 ICMP error 메시지로원래의트레이스라우팅하는호스트에응답할것이다. traceroute는실행되고있는어떤서비스나어플리케이션에의해사용되지않을것같은높은 UDP 포트를선택하고, 그래서어떤에러도발생하지않을것이다. 그래서 traceroute는방화벽탐지를위해사용될수있다. 하지만어느정도의삭감이나리딩이사용자의마음속에가능해야하지만그것은가능하다. 다음보기는방화벽을찾아내기위한기본적인 traceroute 시도를보여준다. Traceroute: 이시나리오에서네트워크는패킷필터링장치에의해보호되고있으며, 이장치는 ping과 ping 응답 ( 각각 ICMP 타입 8과 0임 ) 을제외한트래픽을찾아내고, 모든초과패킷을막는다. 우리는어떤호스트들이이필터링 ( 방화벽일수도있고, 라우터가될수있다. 라우터의경우보안정책에반하는것이다.) 뒤에있는지알아보기위해 traceroute 프로그램을사용할수있고, 사용하도록시도할것이다.

[root@localhost]# traceroute 10.10.1.10 traceroute to 10.10.1.10 [10.10.1.10], 15 hops max, 20 byte packets 1 10.10.1.2 [10.10.1.2] 0.022 ms 0.024 ms 0.025 ms 2 10.10.1.3 [10.10.1.3] 1.327 ms 2.360 ms 2.380 ms 3 10.10.1.4 [10.10.1.4] 4.217 ms 4.612 ms 4.656 ms 4 10.10.1.5 [10.10.1.5] 4.927 ms 5.090 ms 5.238 ms 5 10.10.1.6 [10.10.1.6] 5.529 ms 5.812 ms 6.003 ms 6 10.10.1.7 [10.10.1.7] 56.921 ms 59.162 ms 61.762 ms 7 10.10.1.8 [10.10.1.8] 63.832 ms 63.682 ms 61.235 ms 8 * * * 9 * * * 10 * * * 10.10.1.8에서 Hop 7은방화벽으로추정된다. 물론맞지않을수도있다. 앞에서배웠듯이방화벽은라우터일수도있고, 또는어떤다른패킷필터링또는리다이렉션어플리케이션일수도있다. 우리의패킷은방화벽을탐지하기위해지나간다. traceroute의리눅스버전에서 ㅣ인자를사용해보자. [root@localhost]# traceroute -I 10.10.1.10 traceroute to 10.10.1.10 [10.10.1.10], 15 Hops Max, 20 byte packets 1 10.10.1.2 [10.10.1.2] 0.022 ms 0.024 ms 0.025 ms 2 10.10.1.3 [10.10.1.3] 1.327 ms 2.360 ms 2.380 ms 3 10.10.1.4 [10.10.1.4] 4.217 ms 4.612 ms 4.656 ms 4 10.10.1.5 [10.10.1.5] 4.927 ms 5.090 ms 5.238 ms 5 10.10.1.6 [10.10.1.6] 5.529 ms 5.812 ms 6.003 ms 6 10.10.1.7 [10.10.1.7] 56.921 ms 59.162 ms 61.762 ms 7 10.10.1.8 [10.10.1.8] 63.832 ms 63.682 ms 61.235 ms 8 10.10.1.9 [10.10.1.9] 62.926 ms 66.125 ms 67.032 ms 9 10.10.1.10 [10.10.1.10] 70.482 ms 71.273 ms 71.762 ms 10 10.10.1.11 [10.10.1.11] 73.192 ms 76.921 ms 82.325 ms 우리는제대로작동하지않는것처럼보이는디폴트 UDP 데이터그램 TTL 패킷을사용하는것대신 ICMP 패킷을사용하기위해 ㅣ인자를붙여 traceroute를사용하기로결정했다. traceroute 결과를유심히보면우리가호스트들과방화벽이면에있는시스템들을탐지할수있다는것을알수있다.

하나의일반적인시나리오설정은 DNS를제외하고모든연결과트래픽을막는방화벽이다. 이것은 UDP 포트 53을열어둔다. [root@localhost]# traceroute 10.10.1.10 traceroute to 10.10.1.10 [10.10.1.10], 15 hops max, 20 byte packets 1 10.10.1.2 [10.10.1.2] 0.022 ms 0.024 ms 0.025 ms 2 10.10.1.3 [10.10.1.3] 1.327 ms 2.360 ms 2.380 ms 3 10.10.1.4 [10.10.1.4] 4.217 ms 4.612 ms 4.656 ms 4 10.10.1.5 [10.10.1.5] 4.927 ms 5.090 ms 5.238 ms 5 10.10.1.6 [10.10.1.6] 5.529 ms 5.812 ms 6.003 ms 6 10.10.1.7 [10.10.1.7] 56.921 ms 59.162 ms 61.762 ms 7 10.10.1.8 [10.10.1.8] 63.832 ms 63.682 ms 61.235 ms 8 * * * 9 * * * 10 * * * 위의결과를보면마지막으로탐지된 hop은 10.10.1.1에있다. 우리는 DNS(UDP 53) 을제외하고모든것이막혀있다고추정할수있다. 우리는이결과를이용할수있다. traceroute를사용하는것은방화벽이면에있는목표를확인할수있도록해준다. 우리는몇가지를통제할수있는데, 사용되는시작 traceroute 포트 ( 매 probe에의해증가함 ), 보내진 probe의숫자 ( 디폴트로 3으로지정되어있음 ) 등을통제할수있다. 우리는또한우리가공격하는호스트와방화벽사이에얼마나많은 hop이있는지다음방법을사용할수있다. 출발포트의번호로스캐닝을시작한다. (target_port - (number_of_hops * num_of_probes)) - 1 우리는방화벽으로하여금우리가 DNS 퀘리패킷을보낸다고받아들이게함으로써 ACL(Access Control List) 를우회할수있다. 위에열거된공식 ( 실제공식은아니지만 ) 을이용해 traceroute 패킷을설정하는데도움이될수있도록할수있다. 또한방화벽들은패킷의내용을분석하지않는다는것을주목하자. 그래서패킷을조작하여방화벽을무력화시킬수있다. ( 53 - ( 8 * 3 )) - 1 = 28

새로조작된패킷은접근가능한포트번호를가지게되고, 그래서 ACL 제한을우회할수있다. 다음예를보자. [root@localhost]# traceroute -p28 10.10.1.10 traceroute to 10.10.1.10 [10.10.1.10], 15 hops max, 20 byte packets 1 10.10.1.2 [10.10.1.2] 0.522 ms 0.624 ms 0.625 ms 2 10.10.1.3 [10.10.1.3] 5.327 ms 6.360 ms 6.380 ms 3 10.10.1.4 [10.10.1.4] 7.217 ms 7.612 ms 7.656 ms 4 10.10.1.5 [10.10.1.5] 8.927 ms 9.090 ms 9.238 ms 5 10.10.1.6 [10.10.1.6] 9.529 ms 10.812 ms 12.003 ms 6 10.10.1.7 [10.10.1.7] 56.921 ms 59.162 ms 61.762 ms 7 10.10.1.8 [10.10.1.8] 63.832 ms 63.682 ms 61.235 ms 8 10.10.1.9 [10.10.1.9] 65.158 ms * * 9 * * * 10 * * * traceroute가보내진각 probe에대한포트번호를증가시킨다는것과스캐닝이목표의방화벽을지난후종결된다는것을생각하자. 왜냐하면첫번째 probe는 UDP 53(DNS) 의포트를부여했기대문에보내진다음 probe는 UDP 54를가진다. 이패킷필터링어플리케이션을위해수집된 ACL에바탕을두고 UDP 54는봉쇄된다. 더많은정보를구하고, 네트워크에대해좀더확인하기위해우리는 ACL을우회할상태로패킷을유지해야만한다. 그리고우리가 UDP 53에서포트를유지하고자하기때문에우리는각 probe의패킷포트번호의증가를비활성화하기위해또다른인자를붙일필요가있다. 보내진모든패킷이 ACL 요구에맞도록하고, 받아들여지기위해, 그래서우리가목표네트워크를추가로확인하기위해여기서는 traceroute1.4a5(http://www.packetfactory.com에서구할수있음 ) 가사용되고있다. [root@localhost]# traceroute -S -p28 10.10.1.12 traceroute to 10.10.1.12 [10.10.1.12], 15 hops max, 20 byte packets 1 10.10.1.2 [10.10.1.2] 0.522 ms 0.624 ms 0.625 ms 2 10.10.1.3 [10.10.1.3] 5.327 ms 6.360 ms 6.380 ms 3 10.10.1.4 [10.10.1.4] 7.217 ms 7.612 ms 7.656 ms 4 10.10.1.5 [10.10.1.5] 8.927 ms 9.090 ms 9.238 ms 5 10.10.1.6 [10.10.1.6] 9.529 ms 10.812 ms 12.003 ms

6 10.10.1.7 [10.10.1.7] 56.921 ms 59.162 ms 61.762 ms 7 10.10.1.8 [10.10.1.8] 63.832 ms 63.682 ms 61.235 ms 8 10.10.1.9 [10.10.1.9] 62.926 ms 66.125 ms 67.032 ms 9 10.10.1.10 [10.10.1.10] 92.332 ms 93.214 ms 96.016 ms 10 10.10.1.11 [10.10.1.11] 101.523 ms 103.273 ms 103.923 ms 11 10.10.1.12 [10.10.1.12] 104.516 ms 105.523 ms 105.682 ms 12 10.10.1.13 [10.10.1.13] 109.231 ms 111.122 ms 117.923 ms Firewalking: 우리가여전히 traceroute와 traceroute 패킷에대해이야기하는동안에도, 나는간단히 Firewalking 을다룰것이다. Firewalk는 traceroute처럼방화벽을지나간하나의 hop을정확하게소멸시키기위해계산된 IP TTL로패킷을만들므로서이루어진다. 예상된결과는패킷이방화벽에의해허용되고, 통과되고, 지시된대로소멸하는것이허용될것이다. 그래서 "ICMP TTL expired in transit" 메시지가나온다. 물론만약그패킷이방화벽의규칙에의해봉쇄된다면그것은떨어지고, 그리고우리는아무런응답을받지않거나또는 ICMP 타입 13 Admin Prohibited 필터패킷을받게될것이다. 연속적으로 probe를보내고, 어떤것이응답하고어떤것이응답하지않는지를기록함으로써게이트웨이상에있는접근목록이결정될수있다. 우리가시작하기전에우리는두가지정보를가지고있어야한다. 1) 방화벽이 kick in하기전에탐지된마지막게이트웨이의 IP 주소 2) 방화벽이면에있는, 즉방화벽으로보호된영역에위치한호스트의 IP 주소 IP 주소 1( 게이트웨이 ) 은우리에게웨이포인트 (way point) 로제공한다. 만약우리가이게이트웨이넘어로부터응답을받지못한다면우리의패킷이우리가통과하려고했던프로토콜이무엇이든그것에의해봉쇄되고있다고추정된다. 이미이해했을지도모르지만 IP 주소 2( 호스트 ) 는패킷의목적지로서사용될것이다. 다음은작동중인 firewalk의예이다. [root@localhost]# firewalk -n -P1-8 -ptcp 10.10.1.7 10.10.1.12 Firewalking through 10.0.0.5 (towards 10.0.0.20) with a maximum of 25 hops. Ramping up hopcounts to binding host... probe: 1 TTL: 1 port 33434: [10.10.1.1] probe: 2 TTL: 2 port 33434: [10.10.1.2]

probe: 3 TTL: 3 port 33434: [10.10.1.3] probe: 4 TTL: 4 port 33434: [10.10.1.4] probe: 5 TTL: 5 port 33434: [10.10.1.5] probe: 6 TTL: 6 port 33434: [10.10.1.6] probe: 7 TTL: 7 port 33434: Bound scan: 7 hops [10.10.1.7] port 135: open port 136: open port 137: open port 138: open port 139: * port 140: open 우리가볼수있듯이, 방화벽의 ACL 규칙은 firewalk의사용에의해우회된다. 소스코드를포함해더많은정보는 www.packetfactory.net/projects/ 에서찾을수있다. 다시 nmap으로돌아가자. 그이유는 nmap이일반적인스캐너처럼호스트를스캐닝하고, 어떤포트가열려있는지아니면닫혀있는지를말해주고, 추가로어떤포트가봉쇄되고있는지말해주기때문이다. 포트가필터링되고있다고응답이오는것의 3가지이유나상태가있다. 1) 어떤 SYN/ACK 패킷도받아들여지지않았기때문에 2) 어떤 RST/ACK 패킷도받아들여지지않았기때문에. 3) 시스템이 code 13(Communication Administratively Prohibited) 으로 ICMP 타입 3(Destination Unreachable) 으로응답 Nmap 은이모든조건을사용할것이고, 그것은필터링되고있는포트로간주한다, 예를들어, [root@localhost]# nmap -p21,23,53,80 -P0 -vv 10.10.1.10 Starting nmap V. 2.07 by Fyodor (fyodor@dhp.com, www.insecure.com/nmap/) Initiating TCP connect() scan against (10.10.1.10) Adding TCP port 21 (state Open). Adding TCP port 53 (state Firewalled). Adding TCP port 23 (state Firewalled). Adding TCP port 80 (state Open). Interesting ports on (10.10.1.10): Port State Protocol Service

21 open tcp ftp 23 filtered tcp telnet 53 filtered tcp domain 80 open tcp http 위에서출력된결과를보면몇개의포트가 방화벽으로막혀 있다. 우리는그것이필터링되고있는것의이유를알아보기위해 tcpdump 출력을사용할수있다. Raw Packet 전송및 HPING: Raw packet 전송또한방화벽너머의네트워크를확인하는데사용된다. Transmission 또한방화벽이면에있는네트워크를확인하는데사용된다. Hping은목적지포트에 TCP 패킷을보내므로서작동하고, 그런다음받은패킷을분석하고보고한다. Hping은받아들여지고, 봉쇄되고, 떨어지고, 또는거부된패킷을찾아내도록해준다. 그래서 ACL 규칙들을확인하게해주어좀더깊은탐색을하게한다. [root@localhost]# hping 10.10.1.7 -c2 -S -p21 -n HPING 10.10.1.7 (eth0 10.10.1.1) : S set, 40 data bytes 60 bytes from 10.10.1.1: flags=sa seq=0 ttl=242 id=65121 win=64240 time=144.4 ms 위의보기를보면기본적으로 SYN/ACK 패킷인 SA 플래그셋이붙은패킷을받은사실을통해우리는 10.10.1.7의 TCP 포트 21이열려있는것을볼수있다. 이것은어떤한포트가열려있다는것을알수있지만방화벽이존재하는지의여부는알수없다. 그래서좀더확인이필요하다. [root@localhost]# hping 10.10.1.10 -c2 -S -p80 -n HPING 10.10.1.10 (eth0 10.10.1.1) : S set, 40 data bytes ICMP Unreachable type 13 from 10.10.1.8 이 hping으로우리는 ICMP 타입의 13개의패킷을받았으며, 그것은 ICMP 관리자가금지한필터링패킷이다. 이몇가지의명령을통해 10.10.1.8이방화벽이라는것과, 10.10.1.10의 80번포트가봉쇄되어있다는것을확인했다. 방화벽이설치된호스트로부터우리가받을수있는또다른하나의응답은다음과같다.

[root@localhost]# hping 10.10.1.16 -c2 -S -p23 -n HPING 10.10.1.16 (10.10.1.1) : S set, 40 data bytes 60 bytes from 10.10.1.1: flags=ra seq=0 ttl=59 id=0 win=0 time=0.5 ms 이것은가능한 2개의항목중에서하나를보여준다. 1번은방화벽에의해수락되고, ACL 규칙에맞는패킷이다. 하지만호스트는그포트에듣지않고있다. 또는 2번은방화벽이거부한패킷이다. 이전에받은 ICMP 타입 13 패킷을사용하여우리는방화벽이우리가보낸패킷을허용하고있지만호스트는듣고있지않다는것을추정할수있다. 물론뛰어난관리자는방화벽이모든패킷을봉쇄하도록설정할때다음과같은결과를받게된다. [root@localhost]# hping 10.10.1.16 -c2 -S -p23 -n HPING 10.10.1.16 (10.10.1.1) : S set, 40 data bytes Source Port Scanning: 이기술은패킷필터링어플리케이션과상태를유지하지않는장치에적용된다. Cisco의 IOS가그예이다. 만약방화벽이상태를유지하지못한다면, 그래서연결이내부쪽인지외부쪽인지확인할수없을경우를생각해보자. 이경우에전송은필터링되지않고통과할수도있을것이다. 방화벽을통해허용된일반포트 ( 예를들면 UDP 포트 53) 에출발지포트를설정해보자. 이것은 nmap에 g 옵션을주어사용한다. [root@localhost]# nmap -ss -P0 -g 53 -p 139 10.10.1.15 만약열린포트의긍정적인출력을받게되면취약한방화벽이라고생각할수있다. 잘못설정된 ICMP 패킷 : 여기서는간단히언급하기로하겠다. 자세한것은 http://www.bliackhat.com을찾아보아라. 그문서에따르면확인된호스트로부터되돌아온 ICMP error 메시지를도출하고, 그것의존재를찾아내는다양한방법들을사용할수있다. 그방법들은다음과같다.

- IP 헤더분해 - 다른헤더길이필더 - IP 옵션필더 - IP 헤더에유효하지않은필더값사용 - IP 헤더에유효한않은필더값사용 - Fragmentation 오용 만약우리가모든프로토콜과포트의조합으로목표네트워크의전체 IP 범위를확인했다면그것은우리에게목표네트워크의토폴로지맵을가져다줄것이고, 접근목록을확인할수있도록해줄것이다. 결론 : 어떤네트워크를탐지하고확인하는방법들은많이있다. 이글에서는단지다른테크닉을발견하는것으로이어질몇가지주요사항만언급했다. 이문서는자신의네트워크가안전하다고믿고있는관리자들을목표로했다. 앞에서언급한테크닉들은방화벽의 ACL을포함해네트워크의토폴로지를확인하는데지속적으로사용될수있을것이다. 사실제대로설정된것은우회하기가힘들다. traceroute, nmap, hping, 그리고사용될수있는다른툴들은공격자가라우터, 방화벽을통해어떤경로로접근하는방법을찾도록도와준다. 많은취약점들이방화벽의 ACL에서의설정오류때문과로그, 트래픽, 그리고유지및관리의부족으로인해서발견된다. --Ka0ticSH asm.coder@verizon.net