Presentation is loading. Please wait.

Presentation is loading. Please wait.

X remote ICMP based OS fingerprinting techniques by Ofir Arkin

Similar presentations


Presentation on theme: "X remote ICMP based OS fingerprinting techniques by Ofir Arkin"— Presentation transcript:

1 X remote ICMP based OS fingerprinting techniques by Ofir Arkin
武藤研究室 セキュリティグループINAS ポジション:スーパーサブ 直江健介

2 Table of Contents 1.Introduction
2.Remote Active Operating System Fingerprinting Methods Used By X 3.How Does X works? 4.The Future development of X and xprobe

3 1.Introduction – What is X?
“ICMP Usage in Scanning”[1] ICMPを使った様々な手法を使ったActive OS Fingerprinting コンセプトは簡単で、高速で、効率的で、ホストを特定することに非常に強力である事。

4 1.1 Why X?(1/2) XprobeはTCP/IPの実装にかなり依存している他のツールとは対極にあるツールだ!
既存のツールは特にMicrosoft系を特定するときに大変 Win2K,NT4,MEや98/98SEのfingerprinting processに差異を見出すのが非常に困難 必要とするデータグラムの数(1~4パケット) 既存のツールと違いmalformedなpacketは使わないためIDSにも検出されにくい。(通常運用ではありえるデータグラムの形をしているため)

5 1.1 Why X?(2/2) 情報収集の形を変える!? 今まで 1.HostScanでAvailabilityをチェック
2.走ってるサービスを調べる 3.その下にあるOSを特定 ホストにknownなexploitがあるサービスがあればそこを突く  >めでたく管理者権限をゲット、無許可アクセス可能 Xprobeだと ・HostScanの時点で何のOSかが分かる ・最高でも4パケットでどの脆弱性があるシステムか分かってしまう

6 2. Remote Active Operating System Fingerprinting Methods Used By X
Xは[1]で発見したいくつかのremote active operating system fingerprinting methodsを利用している

7 2.1 ICMP Error Message Quoting Size
ICMPのエラーメッセージは最低でもIPヘッダとエラーの原因となったパケットの最初の8byteのデータバイトを含む。 ほとんどのOSはこのエラーメッセージを吐く じゃあ、どのOSが一番長いエラーメッセージを吐くの?

8 2.2 ICMP Error Message Echoing Integrity(1/3)
普通、値が変わるのは何処よ? IPのTTL値 ヘッダが読まれるたびに一つ減るから IPヘッダのチェックサム TTLが減るたびにチェックサムは再計算される XはUDPデータグラムを閉じられたUDPポートに送ることでICMP Port Unreachable error messageを得て利用する

9 2.2 ICMP Error Message Echoing Integrity(2/3)
IP Total Length Field OSのIPスタックは Offending packetに対するエコーパケットのIP total lengthに 20byte足す Offending packetに対するエコーパケットと一緒にオリジナルのパケットのIP total lengthから20byte減らす 正しい値をエコーする IPID ICMP Error message のIPIDの値を正しく返さない ICMP Error message のIPIDの値を正しく返す

10 2.2 ICMP Error Message Echoing Integrity(3/3)
3Bits Flags and Offset Fields 正しく返さない 正しく返す IP Header Checksum Offendingパケットに対するエコーバックのIPヘッダのチェックサムの計算ミスをする 0を返す 正しい値を返す UDP Header Chekcsum Offendingパケットに対するエコーバックのUDPヘッダのチェックサムの計算ミスをする 結論:いくつかのOSスタックはある値に関して正常にエコーしないものがある

11 2.3 Precedence Bits Issues with ICMP Error Messages
各IPデータグラムには8byteの“TOS Byte”がある TOS(Type of Service) Byteには三つのfieldがある Procedence filed 3bit長、IPデータグラムの優先度(8段階) 優先度の高いものは優先度の低いものより先に送られる TOS 4bit長、throughput,delay,reliability,IPデータグラムのルーティングcostを表現する MBZ(Must Be Zero) 1bit長、使用しない、0でなくてはいけない ルータやホストはこの部分を無視する ICMP Source Quench error messageが送信されているのならば、IP Procedence fieldの値はそれを誘発したIP Procedence fieldと同じでなくてはいけない。

12 2.4 DF Bit Echoing with ICMP Error Messages
DF(Dont Frag) bit set, 分割禁止 ICMP error messageを誘発するOffending packetと一緒にDF bitをたてたら、どうなるであろうか? ICMP error message IP HeaderのDF bitもたつの?

13 2.5 IP Identification Field Value with ICMP Query Messages with Linux Kernel 2.4.x based machines
Linux Kernel 2.4.5以上では直されているが、 ではICMP query requestとreply messageと共にIP Identification fieldが0にセットされる。

14 2.6 The IP Time-To-Live Field Value with ICMP Messages
IP Headerがプロセスされるたびに1づつ減らされる RFC791ではこの値は秒で計る 最高で255秒=4.25分 0であればデータは破棄される 実際のルータなどは1秒以上かかるのもあれば一秒以下でプロセス終了する 実際の使われ方は無限ループに陥ったいわゆるゴーストパケットの破棄方法としてある(ようなもの)。また、古いデータが新しいデータが届いた後に届くのを防ぐ IP TTL値にはICMP query messeageとICMP query replyと二つがある TTLベースのOS FingerprintingではあらかじめTTL距離(何ホップか)を知らなくてはいけない

15 2.7 Using Code Field Values Different Than Zero with ICMP Echo Requests
ICMP code filedを0以外のICMP Echo requestを送ると Microsoft系はICMP Echo replyとして0を返す それ以外はICMP Echo requestで使った値を返す Microsoft系のOSはRFC792[2] guidelineとは対照的な振る舞いをする。

16 2.8 TOS Echoing RFC1349はICMP messagesのType-of-Service値を規定、以下の三つに区別する
ICMP error message(Destination Unreachable,Source Quench,Redirect,Time Exceeded,Parameter Problem) ICMP query message(Echo,Router Solicitation,Timestamp,Information request,Address Mask request) ICMP reply messages(Echo reply,Router Advertisement,Timestamp reply,Information reply,AddressMask reply) いくつかのOSはRFC1349を無視して、ICMP reply messagesのTOS値をICMP request messagesのTOS値を返さないものがある。

17 2.9 DF Bit Echoing With ICMP Query Messages
ICMP query request messagesと一緒にDF bitを立てたらどうなるだろう? DF bitはICMP query request messageと一緒に立てられるものなのか?

18 2.10 The ?Who Answer What?? Approach
OSを特定するのにICMP Query message requestを使う ICMP Echo request ICMP Timestamp request ICMP Information request ICMP Address Mask request

19 3. How does X works? アイデアは最初に静的な決定木を作る
どう似たOSを特定のOSとして差別化(判定)するか まずUDPパケットをclosedなUDP destinationポートに送信(default:3132byte) ICMP Destination Unreachable Port Unreachable error messageを利用してOSFingreprintの違いを得る 送信したホストからリプライが無ければlinsten状態 UDPパケットをブロックするフィルタ機器があれば空いたUDPポートの真似をする(従ってreplyは受け取らない)

20 3. How does X works? アタック1 UDPパケットを閉じたUDPポートに対して送るとICMP Port Unreachable error messageを受け取れるので1パケットを送る事で判別。 返ってくればホストは生きてるかトラフィックが許されてる かえってこなければフィルタリング機器が存在しているだろう どうやって閉ざされたUDPポートを探すか IANAのポートリストなど

21 3. How does X works? UDPデータグラムにDF bitをたてたものを送ることで2.4のノウハウを使う
UDP queryは70byteのデータを持つ 対象ホストが何バイト返すかを見る Errorを返せば対象ホストに対してこの手法が使える 返さなければフィルタリングされているかホストが落ちている この値が0xc0であればLinux Kernel 2.0.x/2.2.x/2.4.xベースマシン、CISCO based router(IOS 11.x-12.x)、Extreme Networks Switch

22 3. How does X works? 前述したIP Headerの先頭8byte以上をICMP error messageに含むOS群はLinux Kernel 2.0.x/2.2.x/2.4.xである ネットワークデバイスはPrecedence bitに0x0cを立てたものに対しては先頭8byteしか返さない これでLinuxKernelとCISCO routerとExtreme Network switchを差別化できる

23 3. How does X works? Linux Kernel 2.0.xは初期IPTTL値を64にセットされる。Linux Kernel 2.2.x/2.4.xは初期IPTTL値を255にセット Linux Kernel のICMP queryのIP ID値は常に0 2.4.5から直された Kernel2.2x/2.4.5以上と とに差別か出来る

24 3. How does X works? アタック2 ICMP Port Unreachable Error Messagesパケットにどのくらいのechoを返したかで判別 8byte返す 64byte返す 64byte以上返す 分かったことはfigure5の通り

25 3. How does X works? Sun Solaris 2.3-2.8,HPUX 11.x,MacOS 7.x-9.x
ICMP Timestamp Requestを送信 リプライがあるもの>Sun Solaris リプライの無いもの>HPUX 11.x,MacOS7.x-9.x アタック1で万が一Linux系が判別できなくてもここで判別が出来る

26 3. How does X works? アタック3 ICMP Error messageが返すIP total lengthの値で判別
正しく返す 正しい値より20byte少ない 正しい値より20byte多い OpenBSD ,Apollo Domain/OS SR10.4,NFR IDS…..Figure7参照

27 3.正しい値より20byte少ない 返ってきたICMP error messageのUDPチェックサムで判別 Figure8を参照 正しい値
正しくない値 Figure8を参照

28 3.正しい値より20byte多い AIX,BSDI,NetBSD 1.x-1.2.xの判別
offendingUDPを送ったことでOSが返したICMP error messageの値で判別 まずIP Header checksumのインテグリティチェック AIXはechoされた値をmicalculateする、それ以外は正しく計算する 次にIP Identification field valueのインテグリティチェック BSDI 2.x,3.xとNetBSD1.x-1.2.xはlittle endianの問題で値を正しく返さない BSDI 4.x,NetBSD 1.x-1.2.xのbig endianとMacOS X は正しく返す

29 3. How does X works? 元のbranchに戻り話をするめる
IP Total Length field value echoed coreectly 3bit flags(Unused,MF,DF)とoffset filedを使い判別 Figure10参照

30 3. How does X works? そしてWindowsファミリーを判別する どきどきしますねぇ~~

31 3. How does X works? Microsoft系列のOSを判別するには違うqueryを使う必要がある。
Code field value different than zero with ICMP Echo requests ICMP Echo Request with the Precedence Bits !=0, DF Bit Set,ICMP Code Field !=0 0が返るならMicrosoftWindowsFamily それ以外の値が返るなら、MSWindows系以外

32 3. How does X works? Windowの中でのバージョンの判別 TTL値での判別 Precedence Bitsでの判別
Windows95 TTLが128 Windows95以外 Precedence Bitsでの判別 !=0 98/98SE/ME/NTsp3-/NTsp4+ =0 Microsoft Windows 2000,SP1,SP2

33 3. How does X works? 98/98SE/ME/NTsp3-/NTsp4+の判別
ICMP Time Stamp Requestによる判別 Reply Windows98/98SE/ME No Reply Windows NT SP 3-,Windows NT SP 4+

34 3. How does X works? WIndows98/98SE/MEの判別
ICMP Address Mask Request Reply Windows98/98SE No Reply Windows ME Windows NT SP 3-/Windows NT SP 4+の判別 Windows NT SP 3- Windows NT SP 4+

35 3. How does X works? 残りは? DF Bit EchoingによるUltrix,Novell,BSD系の判別[with the request] 返す Ultrix,Novell 返さない それ以外のOS(BSD系) TTLが128のものがNovell TTLが255のものがUltrix

36 3. How does X works? OpenBSD2.1-2.3.x,2.4-2.5とNetBSD1.5,1.4.1,1.4の判別手法
Echoing Integrity CheckのUDP Checksum of the Offending Packet Echoed !=0 OpenBSD 2.4.x-2.5.x NetBSD 1.5,1.4.1,1.4 =0 OpentBSD 2.1.x-2.3.x

37 4. The Future development of X and xprobe
AIとシグネチャベースのアプローチ Custom scenario Fail over mechanism 出来ないことから学ぶ Static logicである いくつかのOSと少ない数のネットワークデバイスしか判別できない ICMP/UDPベースであること Fingerprintのデータベースとの連携

38 4. The Future development of X and xprobe
やりたいこと Fingerprintのデータベースとの連携 内部にAIを持たせて、Dynamicにロジックを構築 多くのネットワークデバイスの判別を可能にしたい 違うトポロジには違う手法を用いたい フィルタリングデバイスを使ったテストをしたい 実際のアプリケーションデータベースを使いUDPqueryと絡めたい もっと使えるNetwork mappingも含まれるべき

39 Demo


Download ppt "X remote ICMP based OS fingerprinting techniques by Ofir Arkin"

Similar presentations


Ads by Google