PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تدابير امنيتي در IPv6



mehraboOon
09-03-2011, 01:35 PM
تدابير امنيتي در IPv6


(قسمت اول)

درك بهتر پروتكل IPv6 و ترافيك شبكه هنگام كار با ميزبانهاي اين پروتكل


http://shabakeh-mag.com/Data/Articles/Items/2011/7/1004902.jpg


منبع: ماهنامه هكينگ، سپتامبر 2010 ترجمه: محمد ناصح






چنانكه اغلب ما اطلاع داريم، در حال حاضر از نگارش چهارم پروتكل IP براي آدرسدهي در اينترنت استفاده ميشود. همچنين ميدانيم كه به دليل عدم توانايي اين نگارش از پروتكل IP در تأمين آدرسهاي موردنياز، نگارش ششم آن نيز معرفي شده است. پروتكل IPv4 به همراه ابزارهايي مانند NAT/PAT، پراكسيها، گيتويها و... هنوزهم در صحنه حضور دارد، اما پيچيدگي شبكهها هرروز افزايش مييابد و اين واقعيت بهطور معمول به افزايش دشواري فرآيند اشكالزدايي منجر ميشود. پروتكل IPv6 مشكل فضاي آدرسها را برطرف ميكند، گيتويها درخواستهاي كمتري را دريافت ميكنند و پيچيدگيهاي امنيتي بازنشاني اتصالات end-to-end كاهش مييابد. هدف اين مقاله كمك به خواننده براي درك بهتر پروتكل IPv6 و ترافيك شبكه در هنگام كار با ميزبانهاي اين پروتكل است. همچنين مطالب اين مقاله هنگام تحليل رفتاربدافزارها نيز كاربرد دارد (در قسمت «پشتيباني سيستمعاملها» علاوهبر بررسي نحوه پشتيباني سيستمعاملهاي مختلف از IPv6 بهطورخاص به اين موضوع پرداخته شده است). اغلب پلتفرمها و سيستمعاملها از IPv6 پشتيباني ميكنند و در صورت فعال نبودن اين قابليت با اجراي يك دستور ساده ميتوان آن را فعال كرد.

معرفي
تاكنون بستههاي ترميمي IPv6 براي بدافزارهاي متعددي ارائهشدهاند. روباتهاي IRC مانند Eggdrop (محبوبترين روبات اپنسورس IRC در جهان) بهگونهاي تطبيقيافتهاند كه سايتهاي IRC مبتنيبر IPv6 را بهعنوان سايتهاي كنترلي مورد استفاده قرار دهند. به اين ترتيب، يك بدافزار به منظور برقراري يك تونل ارتباطي براي عبور از ساختارهاي امنيتي مختص به IPv4 ميتواند IPv6 را روي IPv4 فعال كند. در سپتامبر سال 2005 يك جاسوسافزار موسوم به Rbot.AXS شناسايي شد. اين بدافزار از IRC مبتني برIPv6 (سرنامIPv6 Internet Relay Chat) به عنوان درپشتي استفاده ميكرد. چنين بدافزاري ميتواند خود را نصب كرده و پس از فعالسازي IPv6 روي ميزبان يك در پشتي باز كند و از طريق يك تونل IPv6 با يك سرور IPv6 IRC ارتباط برقرار كند. به عنوان يك مثال ديگر ميتوان به حمله IIS ISAPI Overflow اشاره كرد كه توسط كرم Code Red به كار گرفته شد. در اين مورد حمله مبتنيبر IPv4 در ترافيك شبكه IPv6 جاسازي شده بود. با توجه به اين كه مؤسسه IANA تاريخ اتمام آدرسهاي آزاد IPv4 را چهارم مي سال 2011 پيشبيني كرده است (IPv4 Exhaustion Counter (English) | INTEC Inc.). اين پرسش مطرح ميشود كه آيا بايد درباره IPv6 هوشيار باشيم؟ البته پاسخ مثبت است، اما از ديدگاه امنيتي كدام جنبه فناوري IPv6 از اهميت بيشتري برخوردار است؟ اگر سيستمهاي شما IPv6 را اجرا ميكنند، به دليل اجراي آن در شبكه بايد به عنوان بخشي از تدابير امنيتي از نقاطضعف مختص اين پروتكل آگاه باشيد؛ اگر شبكه شما از IPv6 استفاده نميكند، بهتر است پروتكل را غيرفعال كنيد، زيرا در غير اينصورت زمينه اجراي حملههاي امنيتي را براي مهاجمان فراهم كردهايد. با جستوجوي عبارت زير در گوگل اطلاعات مفيدي را درباره نقاط ضعف شناسايي شده IPv6 به دست ميآوريد:

site:securityfocus.com inurl:bid ipv6


IPv4 در برابر IPv6
كاملاً به جا است كه ابتدا درباره هِدِرهاي IP صحبت كنيم. اگر مايل هستيد ترافيك IPv6 را شناسايي و رفتار آن را تحليل كنيد، به ياد داشته باشيد كه هِدِر IPv4 (بسته به تنظيمات IP) بين بيست تا شصت بايت طول دارد، در حالي كه هِدِر IPv6 داراي طول ثابت چهل بايت است. تمام گزينهها به هِدِرهاي ضميمه منتقل شدهاند؛ در واقع بايت شماره 9 از هِدِر IPv4 كه با نام IP Protocol شناخته ميشود، در IPv6 با عنوان Next Header ارائه شده است. هدر IPv6 حاوي فهرست انطباقي checksum نيست. پروتكل IPv6 داراي سه نوع آدرس unicast، anycast و multicast است. به همين دليل، آدرسهاي مربوط به انتشار آدرسها حذف شدهاند. يك آدرس IPv6 متشكل از 128 بيت است، در حالي كه آدرسهاي IPv4 از 32 بيت تشكيل شدهاند. آدرسهاي IPv6 در هشت گروه شانزده بيتي مرتب شدهاند كه توسط كاراكتر “ : “ از يكديگر مجزا ميشوند و هرگروه شانزده بيتي توسط چهار رقم در مبناي شانزده نمايش داده ميشود. با وجود اين، امكان تلخيص آدرس با روشهاي مختلف فراهم شده است. به عنوان مثال، گروههاي پيدرپي مقادير صفر را ميتوان با يك جفت " :" نشان داد، اما تنها يك بار امكان انجام اين كار وجود دارد. بنابراين، يك آدرس مجاز IPv6 به صورت زير است:

mascalzone@mymac $ ifconfig en0 | grep inet
inet6 fe80::21b:63ff:fe96:7353%en0 prefixlen 64 scopeid 0x4
inet 10.10.225.198 netmask 0xfffffc00 broadcast 10.10.227.255

توجه كنيد كه آدرس كامل 128 بيتي بهصورت زير است:

fe80: 0000:0000:0000:021b:63ff:fe96:7353

نخستين بخش آدرس IPv6 كه به صورت (شانزده بيت ماسك شبكه) شانزده بيت، دو بايت، شانزده بيت نمايش داده ميشود، به طور معمول طبقه و دامنه آدرس را مشخص ميكند:



عبارت fe80::/16 پيشوند پيوندهاي محلي بوده و بيانگر اين است كه آدرس تنها در حيطه محلي يك پيوند مشخص اعتبار دارد.




از from 2000::/16 تا 3fff::/16 به آدرسهاي جهاني قابل مسيريابي تخصيص يافته است.




آدرس 2001::/16 به نقل و انتقال اينترنتي IPv6 تخصيص يافته است.




آدرس 3ffe::/16 درحال حاضر به بستر آزمايشي 6Bone اختصاص يافته است.




آدرس 2002::/16 براي تونلهاي خودكارSIT 6 به 4 به كار گرفته شده است.



آدرسهاي موجود در بازه 2001:0DB8::/32 در كتابهاي فني، مقالهها و محتواي آموزشي مورد استفاده قرار ميگيرد و به منظور اجتناب از سردرگم شدن كاربران و بروز اشتباه در آدرسدهي، هرگز از آدرسهاي اين محدوده در اينترنت عمومي استفاده نميشود.


علاوهبر موارد مذكور مجموعهاي از آدرسهاي ويژه IPv6 به شرح زير وجود دارند:



آدرس بازگشتي IPv6 (كه در IPv4 به صورت 127.0.0.1 بود) بهصورت ::1. نمايش داده ميشود.



كاراكترهاي :: به معناي عدم تخصيص آدرس بوده و از آنها ميتوان براي تعيين هر آدرسي استفاده كرد.



آدرسهاي مربوط به تونل پويا و خودكار IPv6 روي IPv4 كه بهصورت آدرسهاي سازگار با IPv4 طراحي شدهاند و امكان ارسال اطلاعات را با استفاده از IPv6 روي شبكههاي IPv4 بهگونهاي شفاف فراهم ميكنند. به عنوان مثال اين آدرسها بهصورت ::192.168.1.1 نمايش داده ميشوند (دنباله چهار بايت آخر يك آدرس IPv6 را مانند آدرسهاي IPv4 ميتوان بهصورت اعشاري و در قالب كلي x:x:x:x:x:x:y.y.y.y نوشت كه در آن كاراكترهاي x نشاندهنده 6 گروه بالارتبه از ارقام مبناي 16 و كاراكترهاي y نشاندهنده ارقام اعشاري مربوط به چهار گروه پايينرتبه هشتتايي از آدرسIPv4 است).




آدرسهاي مورداستفاده براي نمايش خودكار آدرسهاي IPv4 روي IPv6 كه امكان فعاليت ميزبانهاي اختصاصي IPv4 را روي شبكههاي IPv6 فراهم ميكنند. اين آدرسها بهصورت آدرسهاي نگاشت شده IPv4 طراحي شدهاند و بهصورت ::FFFF: نمايش داده ميشوند.




پيشوندهاي خاص IPv6 كه در جدول 1 فهرست آنها را مشاهده ميكنيد.

انتظار ميرود خواننده با نحوه ايجاد يك آدرس IPv4 (بهصورت ايستا يا با استفاده از يك سرور DHCP) آشنا باشد. در IPv6 روشهاي متعددي براي ايجاد آدرس IP وجود دارد. به مانند IPv4 روش ايستاي توليد آدرسها هنوزهم وجود دارد و با عنوان Manual شناخته ميشود. در اين شيوه مدير شبكه آدرس طولاني IPv6 را بهصورت دستي وارد ميكند؛ در واقع ديگر نميتوان بهسادگي آدرسهاي IP را بهخاطر سپرد و به همين دليل ويژگي جديد Auto Configuration معرفيشد. ساير روشهاي ايجاد يك آدرس IP نيز شامل Autonomous ،Semi Autonomous ،Stateless Server و Stateful Server ميشوند. شيوه Autonomous امكان ايجاد يك آدرس IP را بدون نياز به تعامل با ساير سيستمها فراهم ميكند. در اين شيوه آدرس IP بهصورت خودبهخودي تخصيص مييابد (پيشوند محلي پيوند fe8:: مانند آدرس پيكربندي خودكار در IPv4 است كه به صورت 169.254.0.0 بود). در ادامه پيوند بين آدرس IPv6 كه بهصورت خودبهخودي تخصيصيافته و آدرس MAC مربوط به كارت شبكه را مورد بررسي قرار ميدهيم.

شيوه Autonomous (بهدليل احتمال تداخل آدرسها) امكان فعاليت سيستم را خارج از شبكه محلي فراهم نميكند. بنابراين، براي اتصال به اينترنت و مسيريابي مناسب، شيوه Semi Autonomous معرفي شد؛ در اين شيوه سيستم آدرسها را با تركيب اطلاعات خارجي مانند اطلاعات دريافتي از روتر (پيشوند 2000:: مربوط به شناسايي روتر) ايجاد ميكند. چنانكه گفته شد، دو شيوه ديگر آدرسدهي نيز با عنوان Stateless Server و Stateful Server (با پيشوند 2000:http://www.forum.lianportal.com/images/smilies/smile.png شناخته ميشوند. در اين شيوهها سرور DHCP آدرس IP را تأمين ميكند؛ در شيوه Stateful وضعيت آدرس نيز تثبيت ميشود، اما در شيوه Statetless اين آدرسها حفظ نميشوند.

::/0 مسير پيشفرض
::/128 تخصيص نيافته
::1/128 Loopback
::/96 سازگار با IPv4
::FFFF:0:0/96 نگاشت IPv4
2001::/32 Teredo
2001http://www.forum.lianportal.com/images/smil/4.gifB8::/32 مستندسازي
2002::/16 6to4
FC00::/7 منحصربه فرد محلي
FC00::/7 آدرس محلي پيوند
FC00::/7 آدرس محلي سايت
FF00::/8 Multicast

پيشوندهاي اختصاصي IPv6


علاوهبر آدرس محلي پيوند، نوع ديگري از آدرس موسوم به آدرس محلي سايت وجود دارد. ميزبانهاي IPv6 هنگام اتصال به يك شبكه مسيريابي شده IPv6 با استفاده از پيغام شناسايي روتر ICMPv6 كه به آدرس multicast تمام روترها (جدول 2) ارسال ميشود ميتوانند بهطور خودكار پيكربندي شوند. به اين ترتيب، اگر روتري با پيكربندي IPv6 موجود باشد، با ارسال يك بسته اطلاعاتي حاوي پارامترهاي پيكربندي لايه شبكه، به درخواست مذكور پاسخ ميگويد و در نتيجه يك آدرس محلي سايت ايجاد ميشود. يك ميزبان ميتواند از يك سرور DHCPv6 براي تحصيل يك آدرس محلي سايت بهره بگيرد. همچنين ميتوان آن را به ترتيب مذكور در بالا بهصورت دستي پيكربندي كرد.

بهطور خلاصه، قابليتهاي اوليه سطح 2 پروتكل IPv6 شامل موارد زير است:


پروتكل ICMPv6



پروتكل Neighbor Discovery

پروتكل ICMPv6 امكان استفاده ميزبانها و روترها را از IPv6 براي گزارش خطاها و ارسال پيغامهاي وضعيت فراهم ميكند. مكانيزم MLD (سرنام Multicast Listener Discovery) براي شناسايي گيرندگان multicast روي پيوند مستقيم كاربرد دارد. مكانيزم MLD مجموعهاي از پيغامهاي سهتايي ICMPv6 را مورد استفاده قرار ميدهد و جايگزين پروتكلIGMP (سرنام Internet Group Management Protocol) در IPv4 شده است. پروتكل Neighbor Discovery نيز بهمنظور مديريت ارتباطات گرهبهگره روي يك پيوند بهكار گرفته ميشود. اين پروتكل مجموعهاي از پيغامهاي پنجتايي ICMPv6 را مورد استفاده قرارميدهند و در اصل جايگزين Address Resolution Protocol در IPv4 شده است.

قالب EUI-64
بهمنظور توليد يك آدرس منحصر بهفرد IPv6 پيشوند fe80:: در آدرسهاي محلي پيوند با يك آدرس MAC با قالب EUI-64 ادامه مييابد. اين الگوريتم از آدرس MAC كارت شبكه بهمنظور توليد چنين آدرسي بهره ميگيرد. بهعنوان نمونه به آدرس IPv6 زير توجه كنيد:

mascalzone@mymac $ ifconfig en0 | grep inet
inet6 fe80::21b:63ff:fe96:7353%en0 prefixlen 64 scopeid 0x4
inet 10.10.225.198 netmask 0xfffffc00 broadcast 10.10.227.255
mascalzone@mymac $ ifconfig en0 | grep ether
ether 00:1b:63:96:73:53



FF01::1 تمام گرههاي محلي گره
FF02::1 تمام گرههاي محلي پيوند
FF02::1 تمام گرههاي محلي سايت
FF02::1 تمام روترهاي محلي گره
FF02::2 تمام روترهاي محلي پيوند
FF02::2 تمام روترهاي محلي سايت


برخي از آدرسهاي مورد استفاده IPv6


در ادامه نحوه عملكرد الگوريتم را تشريح ميكنيم:
ابتدا آدرس MAC به دو قسمت 00:1b:63 و 96:73:53 تقسيم ميشود، سپس عبارت ff:fe در بين اين دوقسمت قرار ميگيرد:

00:1b:63:FF:FE:96:73:53

پس از آن بيت شماره 7 در نيمه دوم آدرس بهصورت زير معكوس ميشود:


00:1b:63:FF:FE:96:73:53
(00 = 0000 0000 -> 0000 0010 = 02)


در نتيجه آدرس 02:1b:63:FF:FE:96:73:53 بهدست ميآيد. اكنون ارتباط آدرس IPv6 و MAC كاملاً مشهود است:


fe80::21b:63ff:fe96:7353

در آدرس فوق عبارت inet6 به IPv6 مربوط بوده و عبارت %en0 به دليل پيادهسازي KAME براي تخصيص آدرس IPv6 روي رابط en0 مربوط به يك سيستمعامل OS X مكينتاش بهوجود آمده است. مؤسسه IETF به دليل ملاحظات حريم خصوصي، اعلام كرده ميتوان يك آدرس را با استفاده از EUI تصادفي بهگونهاي انتخاب كرد كه هرگز با يك EUI با پيكربندي خودكار تداخل نكند. بنابراين، مديران شبكه براي اجتناب از ردگيري و Mapping يا نگاشت EUI ميتوانند از بهكارگيري EUI-64 با پيكربندي خودكار اجتناب كنند.

تونلها
بهمنظور كاهش پيچيدگي فرآيند انتقال به شبكههاي IPv6، از قابليتهاي تعاملي بين IPv4 و IPv6 استفاده ميشود. ميزبانهاي IPv4 ميتوانند از روش پيادهسازي دوگانه IP استفاده كنند. پروتكل IPv6 از آدرسهاي سازگاربا IPv4 پشتيبانيميكند. اين كار بهاسطه بهرهگيري از آدرسهاي اختصاصي IPv6 كه آدرسهاي IPv4 در آنها تعبيه شدهاند، انجام ميپذيرد. تونلسازي كه از اين پس مركز توجه تحليلگران خواهد بود، نقش مهمي را در انتشار بدافزارها خواهد داشت. مكانيزمهاي تعاملي بين شبكهاي عبارتند از:


مكانيزم Encapsulation (tunneling)



مكانيزمهاي Simple Internet Transition (SIT) (RFC1933)



مكانيزم 6over4 (RFC2529)



مكانيزم 6to4 (RFC 3056)



مكانيزم Teredo (UDP port 3544).



مكانيزم Teredo امكان اتصال IPv6 بين گرههاي IPv6 و IPv4 را كه توسط يك يا چند NAT از يكديگر جداشدهاند، فراهم ميكند.

(به عنوان مثال، در سيستمهاي مايكروسافت، مكانيزم Teredo براي ويستا، Xp با Service Pack 2 و بالاتر و ويندوز سرور 2008)


مكانيزم Dual-Stack Transition Strategy



پروتكل Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) (RFC 4214) گرههاي Dual-Stack از پروتكل ISATAP براي شناسايي خودكار روترهاي IPv6 و بستههاي اطلاعاتي مربوط به تونلهاي IPv6 روي يك زيرساخت IPv4 بهرهميبرند. پروتكل ISATAP يك مكانيزم ساده براي نصب خودكار IPV6 در شبكههاي سازماني، سلولي و ارائهكنندگان خدمات اينترنت مبتني بر IPv4 است.

پيادهسازي دوگانه IP روي ميزبانها تكنيكي براي پشتيباني كامل از هردو پروتكل IPv4 و IPv6 است. پيادهسازي IPv6 روي IPv4 شامل تونلهاي نقطهبهنقطه است كه دراثر كپسولهشدن بستههاي اطلاعاتي IPv6 در هدرهاي IPv4 ساختهميشوند و از آنها براي انتقال اطلاعات در شبكه IPv4 استفاده ميشود. آدرس نقطهپاياني تونل IPv4 توسط اطلاعات پيكربندي موجود در گره كپسولهكننده اطلاعات شناسايي ميشود. تونلها ممكن است يكسويه يا دو سويه (پيوندهاي مجازي نقطه بهنقطه) باشند؛ ويژگي تونلسازي خودكار در پيادهسازي پروتكل IPv6 روي IPv4 مكانيزمي براي استفاده از آدرسهاي سازگاربا IPv4 بهمنظور تونلسازي خودكار بستههاي اطلاعاتي IPv6 روي شبكههاي IPv4 است.

آدرس نقطه انتهايي تونل IPv4 از طريق آدرس IPv4 تعبيه شده در آدرس مقصد بسته اطلاعاتي IPv6 كه با IPv4 سازگار است، شناسايي ميشود. در پايان نيز تونلسازي IPv6 روي IPv4 قرار دارد كه در آن آدرس نقطهپاياني تونل IPv4 با استفاده از پروتكل Neighbor Discovery شناسايي ميشود. در اين شيوه برخلاف تونلسازي پيكربندي شده، نيازي به پيكربندي آدرسها نيست و برخلاف تونلسازي خودكار، از آدرسهاي سازگار با IPv4 استفاده نميشود (در چنين سناريويي شبكه IPv4 از انتشار چندگانه (multicast) پشتيباني ميكند).

mehraboOon
09-03-2011, 01:36 PM
(قسمت دوم)



چنانكه اغلب ما اطلاع داريم، در حال حاضر از نگارش چهارم پروتكل IP براي آدرسدهي در اينترنت استفاده ميشود. همچنين ميدانيم كه به دليل عدم توانايي اين نگارش از پروتكل IP در تأمين آدرسهاي موردنياز، نگارش ششم آن نيز معرفي شده است. پروتكل IPv4 به همراه ابزارهايي مانند NAT/PAT، پراكسيها، گيتويها و... هنوزهم در صحنه حضور دارد، اما پيچيدگي شبكهها هرروز افزايش مييابد و اين واقعيت بهطور معمول به افزايش دشواري فرآيند اشكالزدايي منجر ميشود. پروتكل IPv6 مشكل فضاي آدرسها را برطرف ميكند، گيتويها درخواستهاي كمتري را دريافت ميكنند و پيچيدگيهاي امنيتي بازنشاني اتصالات end-to-end كاهش مييابد. هدف اين مقاله كمك به خواننده براي درك بهتر پروتكل IPv6 و ترافيك شبكه در هنگام كار با ميزبانهاي اين پروتكل است. همچنين مطالب اين مقاله هنگام تحليل رفتاربدافزارها نيز كاربرد دارد (در قسمت «پشتيباني سيستمعاملها» علاوهبر بررسي نحوه پشتيباني سيستمعاملهاي مختلف از IPv6 بهطورخاص به اين موضوع پرداخته شده است). اغلب پلتفرمها و سيستمعاملها از IPv6 پشتيباني ميكنند و در صورت فعال نبودن اين قابليت با اجراي يك دستور ساده ميتوان آن را فعال كرد.
پشتيباني سيستمعاملها از IPv6
در ادامه نحوه پيادهسازي IPv6 را با استفاده از متداولترين سيستمعاملها بررسي ميكنيم. پروتكل IPv6 در اغلب پلتفرمها و سيستمعاملها پشتيبانيشدهاست و اغلب تنها لازم است يك دستور ساده به اجرا درآيد تا اين پروتكل فعال شود. در ادامه متداولترين ابزارهاي پيكربندي و اشكالزدايي IPv6 را بررسي ميكنيم (در صورت نياز به مشاوره به آدرس www.ipv6.org/impl/index.html (http://www.ipv6.org/impl/index.html) مراجعه كنيد).

لينوكس
در اغلب توزيعهاي لينوكس به طور پيشفرض از IPv6 پشتيباني شده است، با وجود اين، اگر IPv6 بهطور پيشفرض روي رابط eth فعال نشده، كافي است دستور زير را (به عنوانمثال در توزيع BackTrack Linux) اجرا كنيد:


root@bt: # modprobe ipv6
root@bt: # cat /proc/net/if_net6
00000000000000000000000000000001 01 80 10 80 lo
fe80000000000000020c29fffea089cf 02 40 20 80 eth0

براي تأييد شماره پورتهاي باز از دستور netstat -a -A inet6 استفاده كنيد. براي فهرستكردن تمام مسيرهاي IPv6 از دستور netstat -rnA inet6 يا ip -6 route استفادهكنيد. براي حصول اطمينان از عملكرد ميزبان به صورت يك روتر IPv6 فايل مختص شبكه يا رابط را با استفاده از دستور ifcfg-eth0 بررسي كنيد تا ببينيد هريك از اين فايلها حاوي عبارت IPV6FORWARDING=yes/no هستند ياخير؛ همچنين با استفاده از دستور sysctl فايل sysctl.conf را بررسي كنيد. براي اين كار كافي است دستور sysctl | grep ipv6 را اجرا كرده و خروجي را بررسي كنيد. وجود ديمن radvd به اين معني است كه ميزبان ميتواند پيغامهاي RA منطبق بر RFC 2461 را براي ساير ميزبانهاي موجود روي رابط LAN ارسال كند (فايل radvd.conf). با استفاده از دستور ip neighbor show ميتوان ميزان حافظه Cache مجاور را بررسي كرد. براي پاكسازي تمام اقلام ورودي كافي است دستور neighbor flush را اجرا كنيد. دستور iptunnel show تمام تونلهاي ميزبان را نشان ميدهد. اگر تونل از نوع IPv6 روي IPv4 (يا 6in4) باشد، به طور معمول، با اسامي sit0، sit1 و... نامگذاري ميشود و معمولاً روترهايي با آدرس 2002::/16 آن را ارسال ميكنند. در صورتي كه تونل از نوع كپسولسازي متداول اطلاعات باشد، معمولاً به صورت gre0 نامگذاري ميشود. اگر رابطهاي تونل از نوع IPv4 روي IPv4 باشند، با اسامي tun0 يا ipipo فهرست ميشوند. براي مشاهده رابطهاي روي سيستم از دستور ip link show و براي مشاهده آدرسهاي IP روي هر رابط از دستور ip addr show استفاده كنيد. براي بررسي وجود تونلهايي كه پس از راهاندازي دوباره سيستم ايجاد ميشوند بايد فايل پيكربندي شبكه را بازبيني كنيد. اگر دو عبارت زير در اين فايل وجود داشته باشد، تونلهاي 6to4 فعال شدهاند:


NETWORKING_IPV6=”yes”
IPV6DEFAULTDEV=”tun6to4”


براي اطلاع از فعال شدن اين نوع تونلها روي يك رابط خاص دستور ipcfg-eth0 را اجرا كنيد. دو عبارت زير نيز بيانگر فعال بودن تونلهاي 6to4 هستند:


IPV6INIT=yes
IPV6TO4INIT=yes


اگر لازم است يك تونل با پيكربندي دستي را از بين ببريد، از دستورات زير استفاده كنيد:


براي پاككردن تمام مسيرهاي مربوط به تونل دستور ip route delete default را از طريق next-hop-IPv6-addr اجرا كنيد.




براي پاككردن آدرس روي تونل از دستور زير استفاده كنيد:

ip address del IPv6-prefix dev tun0



براي پاككردن رابط تونل (tun0) از دستور ip tunnel delete name tun0 استفاده كنيد.

رابط ISATAP در صورت وجود بهصورت is0 نامگذاري شده است. اگر تونلي با اين نام در خروجي دستور ifconfig مشاهدهكرديد، با استفاده از دستور ip tunnel delete name is0 ميتوانيد آن را پاك كنيد. براي اطلاع از وجود ديوارآتش ip6tables و تشخيص نگارش آن روي سيستم از دستور ipv6tables –V استفاده كنيد. براي مشاهده محتواي جدول فيلترسازي كنوني دستور ipv6tables -L را اجرا كنيد. براي فعال و غيرفعال كردن فيلترسازي ip6tables كافي است سرويس ip6tables [stop | start] را اجرا كنيد.

سيستمعامل Mac OS X
در سيستمعامل Mac OS X لئوپارد (نگارش 10.5.x كلاينت و سرور) پروتكل IPv6 بهطور پيشفرض فعال شده است:


mascalzone@mymac $ ifconfig en0 | grep inet6
inet6 fe80::21b:63ff:fe96:7353%en0 prefixlen 64 scopeid 0x4

بهمنظور پيكربندي IPv6 منوي System Preferences را باز كرده و روي گزينه Network كليك كنيد. سپس رابط شبكه را انتخاب و روي گزينه Advanced كليك كنيد. تنظيمات مقتضي را براي گزينه Configure IPv6 انتخاب كنيد. سيستمعامل Mac OS X براساس سيستمعامل BSD و با كرنل Mach ساخته شده و به همين دليل، مؤلفههاي شبكهسازي اين سيستمعامل ميراث لايه BSD است؛ بنابر اين ميتوان سرويسهاي TCP يا UDP را با استفاده از دستور netstat - a - f inet6 - p tcp يا netstat -a -f inet6 -p udp در يك ترمينال فهرست كرد. دستور netstat -s -f inet6 كه بيانگر وضعيت پروتكل است، اطلاعات بسياري را درباره ترافيك روي رابطها به همراه تعداد بستههاي اطلاعاتي IPv6 در اختيار كاربرميگذارد.

براي نمايش فهرست مسيرهاي IPv6 دستور netstat -nr -f inet6 را اجرا كنيد. وروديهاي فعلي حافظه cache مجاور (neighbor) را ميتوان با دستور ndp-a بررسي كرد و ndp-I ميتواند رابط پيشفرض مورد استفاده براي يافتن مجاورين (Neigbor discovery) را تعيين كند. همچنين دستور ndp- I eno ميتواند رابط eno را به عنوان پيشفرض يا defuult تنظيم كند. دستور ndp -c تمام وروديهاي فعلي را پاك كرد. (امكان بازسازي طبيعي آنها را فراهم ميكند.) سيستمعامل Mac OS X سه ابزار ip6 ، ip6config و ip6fw را نيز در اختيار كاربر ميگذارد. ابزار ip6 در واقع يك ابزار پيكربندي است كه براي فعال و غيرفعال كردن IPv6 روي رابطهاي فعال به صورت زير كاربرد دارد:


mascalzone@mymac $ ip6
Usage:
Start up IPv6 on ALL interfaces: -a
Shut down IPv6 on ALL interfaces: -x
Start up IPv6 on given interface: -u [interface]
Shut down IPv6 on given interface: -d [interface]

ابزار ip6config نيز براي تونلسازي IPv6 و 6to4 بهصورت زير كاربرد دارد:

mascalzone@mymac $ ip6config -h
Usage: /usr/sbin/ip6config
start-v6 all | stop-v6 all
start-v6 [interface] | stop-v6 [interface]
start-stf [interface] | stop-stf
start-rtadvd | stop-rtadvd


ابزار ip6fw در واقع يك ابزار كنترلي براي ديوار آتش IPv6 است (فهرست 1). دستور ifconfig stf0 فعال بودن يا نبودن يك تونل 6to4 را مشخص ميكند. هر آدرس 2002::/16 نيز سرنخي از فعال بودن تونل مذكور است. دستور ifconfig ist0 فعال بودن تونل ISATAP را مشخص ميكند و با دستور ifconfig ist0 deleteisataprtr ISATAP-address ميتوان تونل ISATAP را حذف كرد. ساير دستورات مربوط به تونلسازي عبارتند از:


ifconfig gif0 inet6 delete ipv6-prefix
ifconfig gif0 deletetunnel
ifconfig gif0 destroy


به فايلهاي 6to4.conf, rtadvd.conf واقع در پوشه /etc نيز نگاهي بياندازيد. دستور sysctl net.inet6 تمام تنظيمات مربوط به IPv6 مانند ارسال دوباره، ارسال، icmp و... را نمايش ميدهد. به عنوان مثال:


mascalzone@mymac $ sysctl net.inet6.ip6.forwarding
net.inet6.ip6.forwarding: 0


ويندوز XP
سيستمهاي مايكروسافت مجموعه وسيعي از تونلهاي ايستا و پويا را (شامل ISATAP، Teredo و 6to4 ) ايجاد ميكنند. در سيستمهاي ويندوز XP پروتكل IPv6 بهطور پيشفرض فعال نيست، اما بهسادگي ميتوان آن را فعال كرد. براي اين كار در سطر فرمان دستور زير را درج كنيد:

C:\>netsh interface ipv6 install


پس از نصب IPv6 با اجراي دستور ipconfig /all فعالبودن پروتكل را بررسيكنيد. به عنوان راهحل جايگزين ميتوانيد دستور زير را اجرا كنيد:

C:\>netsh interface ipv6 show address

ويندوز ويستا
در ويندوز ويستا امكان حذف IPv6 وجود ندارد و با اجراي يكي از اقدامات زير تنها ميتوان آن را غيرفعال كرد:


در پوشه Connections and Adapters با كليك راست روي تمام اتصالات و مبدلها مراجعه و به گزينه Properties علامت مربوط به مؤلفه Internet Protocol version 6 (TCP/IP) را از فهرست واقع در بخشThis connection uses the following items حذف كنيد. اين روش IPv6 را روي رابطها و اتصالات LAN غيرفعال ميكند، اما آن را روي رابطهاي تونل يا رابط loopback Ipv6 غيرفعال نميكند.




مدخل زير را در رجيستري ويندوز ايجاد كرده و به آن مقدار 0xFFFFFFFF را نسبت دهيد:


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Tcpip6\Parameters\DisabledComponents

اين شيوه IPv6 را در تمام رابطهاي LAN، اتصالات و رابطهاي تونل غيرفعال ميكند، اما رابط loopback IPv6 را غيرفعال نميكند. بهطور پيشفرض مقدار متغير DisabledComonents برابر عدد صفر است. متغير DisabledComonents يك bitmask است كه مقادير زير را كنترل كرده و كار خود را از اولين مقدار (Bit0) آغاز ميكند:



Bit 0- با تنظيم اين مقدار روي عدد 1 تمام رابطهاي تونل IPv6 شامل ISATAP، 6to4 و Teredo غيرفعال ميشوند. مقدار پيشفرض اين متغير عدد صفر است.




Bit 1- با تنظيم اين مقدار روي عدد 1 تمام رابطهاي مبتني بر 6to4 غيرفعال ميشوند. مقدار پيشفرض اين متغير عدد صفر است.




Bit 2-: با تنظيم اين مقدار روي عدد 1، تمام رابطهاي مبتني بر ISATAP غير فعال ميشوند. مقدار پيشفرض آن 0 است




Bit 3- با تنظيم اين مقدار روي عدد 1 تمام رابطهاي مبتني بر Tredo غيرفعال ميشوند. مقدار پيشفرض اين متغير عدد صفر است.




Bit 4- با تنظيم اين مقدار روي عدد 1 تمام رابطهاي غير تونلي شامل رابطهاي LAN و رابطهاي مبتني بر PPP (سرنام Point-to-Point Protocol) غيرفعال ميشوند. مقدار پيشفرض اين متغير عدد صفر است.




Bit 5- با تنظيم اين مقدار روي عدد 1 جدول پيشوندهاي پيشفرض بهگونهاي تغيير ميكند كه هنگام تلاش براي برقراري اتصالات IPv4 نسبت به IPv6 مقدم باشد. مقدار پيشفرض اين متغير عدد صفر است.

بهمنظور تعيين مقدار متغير DisabledComponents براي مجموعه خاصي از بيتها يك عدد باينري متشكل از بيتها و مقادير مناسب آنها ايجاد شده و عدد حاصل به يك عدد در مبناي شانزده تبديل ميشود. به عنوان مثال، بهمنظور غيرفعالكردن رابطهاي 6to4 و Teredo در در عين حال حفظ تونلهاي IPv4 به IPv6 بايد عدد باينري 101010 را بسازيد. هنگامي كه اين عدد به مبناي شانزده تبديل شود، مقدار متغير DisabledComponents برابر 0x2A خواهد بود.

mehraboOon
09-03-2011, 01:37 PM
(قسمت سوم)

پروتكل IPv6 همراه netsh.exe در ويندوزچنانكه در بالا با چند مثال گفته شد، در ويندوز XP و ويستا پيكربندي آدرسهاي IPv6 و ساير پارامترهاي پيكربندي با اجراي دستورات netsh interface ipv6 در سطر فرمان امكانپذير است. همچنين امكان استفاده از AD GPO براي غيرفعالكردن ارسال دوباره اطلاعات بهصورت كلي وجود دارد. اين رويكرد در مقايسه با اجراي دستورات netsh براي هر ميزبان كارايي بهتري دارد. دستورات INTERFACE به شرح زير هستند:


براي پيكربندي يك آدرس IPv6:

netsh interface ipv6 add address Eth _ LAN fe80::20c:29ff:fe67:beec



براي تغيير آدرس موجود:

netsh interface ipv6 set address Eth _ LAN fe80::20c:29ff:fe67:beec



براي حذف يك آدرس:

netsh interface ipv6 delete address Eth _ LAN fe80::20c:29ff:fe67:beec

دستورات GENERIC ROUTING به شرح زير هستند:



براي افزودن يك مسير پيش فرض:

netsh interface ipv6 add route netsh interface ipv6 add route



براي مشاهده جدول مسيريابي IPv6:

netsh interface ipv6 add route netsh interface ipv6 add route



براي اضافه كردن يك سرور DNS:

netsh interface ipv6 add dnsserver Eth _ LAN fe80::20c: netsh interface ipv6 add dnsserver Eth _ LAN fe80::20c:



براي حصول اطمينان از غيرفعال شدن Forwarding و اعلان موجوديت در تمام رابطها (شماره رابط را بهنحو مقتضي تغيير دهيد):

netsh interface ipv6 set interface interface=4
forwarding=disabled advertise=disabled
netsh interface ipv6 set interface interface=5
forwarding=disabled


براي نمايش پيشوند كنوني كه توسط روتر محلي در پيغام RA اعلان ميشود:

netsh interface ipv6 show siteprefixes



براي نمايش آن دسته از روترهاي محلي LAN كه پيغامهاي RA را ارسال ميكنند:

netsh interface ipv6 potentialrouters

دستورات FILTERING به شرح زير هستند:


براي نمايش پروفايل و فهرست وضعيت ديواره آتش:

netsh firewall show state



براي نمايش حالت كنوني عملكرد ديواره آتش:

netsh firewall show opmode



براي مشاهده پيكربندي:

netsh firewall show config



براي فعال و غيرفعال كردن ديوار آتش:

netsh firewall set opmode disable
netsh firewall set opmode enable

دستورات ISATAP به شرح زير هستند:



براي نمايش اطلاعات مربوط به روتر پيكربندي شده ISATAP كنوني:

netsh interface ipv6 isatap show router



براي نمايش فعال يا غيرفعال بودن ISATAP:

netsh interface ipv6 isatap show state



براي نمايش آنلاين بودن ميزبان ISATAP:

netsh interface ipv6 isatap show mode



براي غيرفعال كردن ISATAP:

netsh interface ipv6 isatap set state disabled



براي اجتناب از شكلگيري اين نوع تونلهاي پويا:

netsh interface ipv6 isatap set mode offline

دستورات 6to4 به شرح زير هستند:


براي نمايش اطلاعات فعلي رابط 6to4:

netsh interface ipv6 6to4 show interface


براي نمايش فعال بودن قابليت ارسال دوباره:

netsh interface ipv6 6to4 show relay



براي نمايش وضعيت كنوني مسيريابي:

netsh interface ipv6 6to4 show routing



براي نمايش وضعيت كنوني 6to4 مربوط ميزبان:

netsh interface ipv6 6to4 show state


براي فعال كردن رابط 6to4:

netsh interface ipv6 netsh interface ipv6
سيستمعاملهاي ويندوز سرور 2003، ويستا و سرور 2008 نيز داراي يك ويژگي موسوم به Portproxy هستند كه برقراري ارتباط را بين ميزبانهاي IPv4 و IPv6 آسان ميكند. اين ويژگي مانند يك سرور پروكسي عمل كرده و امكان برقراري ارتباط را بين ميزبانهاي IPv4 و IPv6 فراهم ميكند.


براي مشاهده پيكربندي ويژگي Portproxy:

netsh interface portproxy show all


براي غيرفعال كردن ويژگي Portproxy:

netsh interface portproxy set mode offline


ارزيابي امنيتي IPv6
به طور معمول، بهعنوان بخشي از اقدامات امنيتي بايد ويژگيهاي IPv6 Address Detection و IPv6 Network Detection را بررسي كنيد؛ علت اين كه IPv6 به عنوان يك در پشتي براي مهاجمان و بدافزارها جذابيت دارد، اين است كه با وجود حفاظت محيطي، همچنان امكان انتشار بدافزارها بدون فيلتر شدن وجود دارد. به عنوان مثال، اگر شبكه شما از IPv6 پشتيباني نميكند، اما اين نوع ترافيك را مشاهده ميكنيد، ميتوانيد آن را بهعنوان نشانهاي از فعاليتهاي خطرناك بدانيد. اسكن كور كورانه يك سيستم بهمنظور شناسايي سيستمهاي زنده، به دليل وسعت فضاي آدرسها انتخاب معقولي نيست. بنابراين، مـيتوانيم از پروتـكلهايND (سرنام ICMPv6 Neighbor Discovery) و NS (سرنام ICMPv6 Neighbor Solicitation) براي اين كار استفاده كنيم. پروتكل Neighbor Discovery امكان شناسايي آدرسهاي محلي پيوند با پيكربندي خودكار موجود را روي تمام سيستمهاي IPv6 شبكه فراهم ميكند. پروتكل Neighbor Solicitation نيز براي تشخيص وجود يك آدرس IPv6 روي شبكه محلي كارايي دارد.

شناسايي ميزبانهاي IPv6
اين ابزارها براي شناسايي ميزبانهاي فعال IPv6 روي پيوندي كه بستههاي اطلاعاتي ICMPv6 echo-request را به آدرسهاي نشر چندگانه ارسالكرده و منتظر دريافت بستههاي ICMPv6 echo-reply ميماند، كارايي دارند.

ابزار ping6
اين ابزار در لينوكس و BSD تعبيه شده است و همچنين ابزار ip در بسياري از توزيعهاي لينوكس بعد از نگارش 2,2 وجود دارد (فهرست 1).
mascalzone@backtrack # ping6 –c3 -I en0 ff02::1 >
/dev/null
mascalzone@backtrack # ip –6 neigh
fe80::202:b3ff:fe0a:3ebb dev eth0 lladdr 00:02:b3:
0a:3e:bb REACHABLE
fe80::21e:37ff:fe8a:4b8 dev eth0 lladdr 00:1e:37:8a:
04:b8 REACHABLE
fe80::21e:bff:fe13:cca4 dev eth0 lladdr 00:1e:0bhttp://www.forum.lianportal.com/images/smil/13.gif
cc:a4 REACHABLE
fe80::207:80ff:fe00:3887 dev eth0 lladdr 00:07:80:
00:38:87 router REACHABLE
fe80::202:b3ff:fe0a:3de7 dev eth0 lladdr 00:02:b3:
0a:3d:e7 REACHABLE
fe80::21e:bff:fe13:e39 dev eth0 lladdr 00:1e:0bhttp://www.forum.lianportal.com/images/smil/13.gif
0e:39 REACHABLE
fe80::202:b3ff:fe0a:3dea dev eth0 lladdr 00:02:b3:
0a:3d:ea REACHABLE
…………

فهرست 1 - ديواره آتش Mac OS X
ابزار alive6
يك جعبهابزار حمله IPv6 كه از آدرس #!/bin/the hacker's choice - THC (http://www.thc.org/) قابل دريافت است.

mascalzone@backtrack # alive6 eth0


يك اسكن مؤثر كه ميتواند تمام سيستمهاي در حال گوش دادن به يك آدرس IP خاص را شناسايي كند.

اسكريپت Ruby براي نگاشت ميزبانهاي IPv4 و IPv6
اين ابزار يك اسكريپت خام Ruby است كه مؤلف آن را به منظور بررسي ميزبانهايي با ويژگي IPv6 فعال طراحي كرده است؛ اين اسكريپت وجود ساختار آدرس IPv6 را روي يك ميزبان خاص بررسي ميكند. تغيير و بهكارگيري اين اسكريپت براي آدرسهاي IP مختلف بسيار آسان است. با وجود اين، يك مهندس امنيتي به نام دنيل بلوچي (مشهور به بلچ) براساس اسكريپت مذكور يك ماجول Metasploit مقياسپذير، سريع و كارآمد ايجاد كرده است كه امكان دريافت رايگان آن از اينترنت وجود دارد (فهرست2).
require ‘rubygems’
require ‘net/ping’
include Net
# EXAMPLE:
# HOSTS = [‘192.168.1.1’, ‘192.168.1.2’,
‘192.168.1.3’]
HOSTS = [‘192.168.1.1’]
HOSTS.each do |ipv4|
icmp = Ping::ICMP.new(ipv4)
ipv6_addr = “”
if icmp.ping?
# Watch out the following and modify accordingly,
{print $4} is on MAC OS X
mac = %x[arp #{ipv4} | tail -1 | awk ‘{print
$4}’].chomp()
if mac.empty?
puts “Cannot find mac address”
return
end
puts “\nHost #{ipv4} with MAC #{mac} is
alive!”
mac = mac.split(‘:’)
mac[0] = mac[0].to_i ^ (1 << 1)
ipv6_addr = “fe80::” << mac[0,2].join()
<< ‘:’ << mac[2,2].join(‘ff:fe’)
<< ‘:’ <<
mac[4,2].join()
else
puts “Host #{ipv4} is not alive!\n”
end
puts “ipv6 addr: “ << ipv6_addr
icmp6 = %x[ping6 -I en0 -c 2 #{ipv6_addr}]
puts “” << icmp6
end


فهرست 2 - اسكريپت Ruby براي نگاشت IPv4 روي IP v6

ماجول ip_map: يك ماجول Matasploit براي نگاشت ميزبانهاي IPv4 و IPv6
اين ماجول بسيار مفيد است و براي كار با آن ابتدا بايد رابط را تنظيم كنيد (به عنوان مثال eth0,en0)، سپس فهرستهاي IPv4 (با روش نوشتاري CIDR) را هدف بگيريد؛ اين ماجول پس از اجرا ابتدا ميزبانهاي فعال IPv4 را شناسايي ميكند (اين كار بر اساس درخواست و پاسخ پروتكل آدرسدهي انجام ميشود)، سپس براي هريك از ميزبانهاي فعال IPv4 آدرس محلي پيوند IPv6 متناظر را تعيين و بررسي ميكند (اين كار بر اساس درخواست و پاسخ پروتكل ND انجام ميشود) در زمان نگارش اين مقاله براي عملكرد درست اين ماجول بايد اقدامات زير را انجام دهيد:
آخرين نسخه metasploit را با دستور زيردريافت كنيد:
#svn co http://www.metasploit.com/svn/framework3/trunk/


ابزار pcaprub را با دستورات زيرنصب كنيد:

#svn co svn - Revision 10: / (http://pcaprub.rubyforge.org/svn/) pcaprub
#cd pcarub
#ruby extconf.rb
#make
#make install
#rm –fR pcaprub

اسكريپتنويسي ip _ map.rb را دريافت و نصب كنيد:
#svn co msf-hack - Revision 21: /trunk (http://msf-hack.googlecode.com/svn/trunk)
#cp ip_map.rb /modules/auxiliary/scanner/discovery/


برنامه msfconsole را اجرا كنيد (فهرست3).
msf auxiliary(ip_map) > info
Name: Local Network Discovery
Version: 7130
License: Metasploit Framework License (BSD)
Provided by:
belch
Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
INTERFACE no The name of the interface
PCAPFILE no The name of the PCAP capture file to process
RHOSTS yes The target address range or CIDR identifier
SHOST yes Source IP Address
SMAC yes Source MAC Address
THREADS 1 yes The number of concurrent threads
TIMEOUT 1 yes The number of seconds to wait for new data
Description:
Print out reachable IPv4 hosts and discover IPv6 Link Local
addresses, if enabled.

فهرست 3- اطلاعات ماجول Metasploit ip_map
پس از انجام اين مراحل ماجول را اجرا كنيد (فهرست 4).
root@bt:/pentest/exploit/framework-masca/# ./msfconsole
resource> use auxiliary/scanner/discovery/ip_map
resource> setg INTERFACE en0
INTERFACE => en0
resource> setg SHOST 192.168.1.32
SHOST => 192.168.1.32
resource> setg SMAC 00:22:15:eb:19:4f
SMAC => 00:22:15:eb:19:4f
resource> setg RHOSTS 192.168.1.0/24
RHOSTS => 192.168.1.0/24
resource> run
IPv4 Hosts Discovery
192.168.1.50 is alive.
192.168.1.123 is alive.
192.168.1.221 is alive.
IPv6 Neighbor Discovery
IPv4 192.168.1.50 maps to IPv6 link local
address fe80::225:bcff:fedd:81a4
IPv4 192.168.1.123 maps to IPv6 link local
address fe80::21b:63ff:fe97:7543
IPv4 192.168.1.221 maps to IPv6 link local
address fe80::21b:63ff:fe97:49d
Scanned 256 of 256 hosts (100% complete)
Auxiliary module execution completed
msf auxiliary(ipmap) >

فهرست 4 - استفاده از ماجول Metasploit ip_map

mehraboOon
09-03-2011, 01:38 PM
اسكن ميزبانهاي IPv6


اسكن پورت nmap IPv6
پس از مرحله شناسايي ميتوان آدرسهاي IP را اسكن كرده و سرويسهاي در حال اجرا را با nmap شناسايي كرد. اسكنر Nmap از IPv6 پشتيباني ميكند (با سوييچ خط فرمان). به عنوان مثال، به فهرست 5 مراجعه كنيد.
root@bt:~# nmap -6 –sT fe80::20c:29ff:fe95:39c9%eth0
Starting Nmap 4.68 ( Nmap - Free Security Scanner For Network Exploration & Security Audits. (http://nmap.org/) ) at 2009-11-02
14:30 EST
Interesting ports on fe80::20c:29ff:fe95:39c9:
Not shown: 1716 closed ports
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.15
seconds
root@bt:~# nmap -6 -sT fe80::20c:29ff:fe67:beec%eth0
Starting Nmap 4.68 ( Nmap - Free Security Scanner For Network Exploration & Security Audits. (http://nmap.org/) ) at 2009-11-02
14:32 EST
Interesting ports on fe80::20c:29ff:fe67:beec:
Not shown: 1716 closed ports
PORT STATE SERVICE
135/tcp open msrpc
Nmap done: 1 IP address (1 host up) scanned in 0.13
seconds

فهرست 5 - اسكن nmap ipv6

در مثال فهرست 6، اسكنر nmap با هر دو رابط IPv4 و IPv6 روي يك ميزبان اجرا ميشود. توجه كنيد از آنجا كه آدرسهاي محلي پيوند، مختص رابط هستند، در لينوكس لازم است %eth0 به آدرس IP اضافه شود. همچنين توجه كنيد، سوكت TCP 3306 فقط روي آدرسهاي IPv4 در حال شنود است، زيرا mysql پورت 3036 را تنها براي آدرسهاي IPv4 درنظر گرفته است. ارائه خدمات روي هر دو IP و فيلترسازي اختصاصي آدرسهاي IPv4 بسيار عادي است.
mascalzone@mymacbookpro $ nmap 10.10.225.198
Starting Nmap 4.85BETA7 ( Nmap - Free Security Scanner For Network Exploration & Security Audits. (http://nmap.org/) ) at 2009-
04-03 16:00 CEST
Interesting ports on mascalzone.homenet
(10.10.225.198):
Not shown: 994 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
548/tcp open afp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 8.27
seconds
mascalzone@mymacbookpro $ nmap -6 fe80::21b:63ff:
fe97:7543%en0
Starting Nmap 4.85BETA7 ( Nmap - Free Security Scanner For Network Exploration & Security Audits. (http://nmap.org/) ) at 2009-
04-03 16:06 CEST
Interesting ports on fe80::21b:63ff:fe97:7543:
Not shown: 963 closed ports, 32 filtered ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
548/tcp open afp
Nmap done: 1 IP address (1 host up) scanned in 5.56
seconds

فهرست 6- مقايسه اسكن nmap ipv4 و ipv6



اسكن پورت Metasploit IPv6
فريمورك Metasploit شامل يك ماجول كمكي اسكنر پورت TCP است. اين ماجول فهرستي از ميزبانها را به همراه بازهاي از پورتها (PORTS) دريافت ميكند. قالب كاري Metasploit به طور كامل از آدرسهاي IPv6 شامل پسوند رابط پشتيباني ميكند. در فهرست7 اسكن پورتها روي يك ميزبان و با هردو رابط IPv4 و IPv6 اجرا شده است. سوكت TCP 3306 فقط روي آدرسهاي IPv4 در حال شنود است، زيرا mysql پورت 3036 را تنها براي آدرسهاي IPv4 درنظرگرفته است. ارائه خدمات روي هر دو IP و فيلترسازي اختصاصي آدرسهاي IPv4 بسيار عادي است.
mascalzone@mymacbookpro $ msfcli auxiliary/
scanner/portscan/tcp
RHOSTS=10.10.225.198 E
Please wait while we load the module tree...
TCP OPEN 10.10.225.198:21
TCP OPEN 10.10.225.198:22
TCP OPEN 10.10.225.198:80
TCP OPEN 10.10.225.198:548
TCP OPEN 10.10.225.198:3306
mascalzone@mymacbookpro $ msfcli auxiliary/scanner/
portscan/tcp RHOSTS=fe80::21b:
63ff:fe97:7543%en0 E
Please wait while we load the module tree...
TCP OPEN fe80:0000:0000:0000:021b:63ff:fe97:
7543%en0:21
TCP OPEN fe80:0000:0000:0000:021b:63ff:fe97:
7543%en0:22
TCP OPEN fe80:0000:0000:0000:021b:63ff:fe97:
7543%en0:80
TCP OPEN fe80:0000:0000:0000:021b:63ff:fe97:
7543%en0:548

فهرست 7 - اسكن پورتهاي tcp مربوط به Metasploit ipv4-ipv6

حمله به ميزبانهاي IPv6
جعبهابزار حمله به IPv6 آدرس www.thc.org (http://www.thc.org/) مجموعه كاملي از ابزارها را براي حمله به نقاط ضعف IPv6 و ICMP6 در اختيار كاربر ميگذارد و شامل كتابخانهاي با كاربري آسان براي توليد بستههاي اطلاعاتي است. ممكن است بهكارگيري ابزارهاي آزمون نفوذپذيري برنامههاي تحت وب براي استفاده از برنامههايي كه از IPv6 پشتيباني نميكنند، اجتناب ناپذير باشد؛ البته، روشهاي متعددي براي تونلسازي وجود دارد. با وجود اين، در ادامه به دو روش كاربردي اشاره ميكنيم:

6tunnel (6tunnel (http://toxygen.net/6tunnel/))
$ 6tunnel 8080 websrv-IPv6 80
socat (socat (http://www.dest-unreach.org/socat/))
$ socat tcp-listen:8080,reuseaddr,fork tcp6:[websrv-IPv6]:80

به محض اجراي ابزار موردنظر، لازم است فرآيند ارزيابي وب را روي پورت 8080 آدرس محلي1.0.0.127 اجرا كنيد. به خاطر داشته باشيد براي مشاهده مستقيم صفحه وب از طريق IPv6 از براكتها بهصورت زير استفاده كنيد:


http://[IPv6-address]


تحليل ترافيك شبكه IPv6
براي شناسايي ترافيك IPv6 كافي است عدد 6 را در بخش مربوط به نگارش هِدِر IP بررسي كنيد؛ در صورتي كه شبكه از IPv6 پشتيباني نكند، وجود ترافيك IPv6 ميتواند نشاندهنده ترافيك خطرناك باشد. زيرا ممكن است روترهاي غيرواقعي IPv6 پديدار شوند. هر ترافيكي كه مقدار پروتكل IP مربوط به آن برابر 41 (IPv6 يا SIT) يا 47 (GRE) باشد، در صورت عدم پشتيباني اختصاصي شبكه از اين نوع تونلها نشانه روشني از تونلهاي SIT محسوب ميشود. وجود ترافيك 6to4 (ترافيك SIT با پيشوند محلي :2002http://www.forum.lianportal.com/images/smilies/smile.png صرفنظر از پشتيباني IPv6 نيازمند تحليل بيشتر است. زيرا به احتمال زياد نشاندهنده يك گيتوي ناخواسته و خطرناك است؛ در واقع، روترها و ديوارههاي آتش فقط بايد از تونلهاي ايستا استفاده كنند. تمام ترافيكي را كه داراي آدرس يك منبع يا مقصد با پيشوند :2002: بوده و حاوي يك آدرس محلي شبكه IPv4 در 32 بيت بعدي آدرس IPv6 هستند، بازبيني كنيد.

گزارش يافتهها
هنگام اجراي ارزيابي امنيتي، همواره مراقب ايجاد آدرس IPv6 توسط ميزبانها باشيد و در صورت مواجهه با چنين آدرسي، يافتههاي خود را گزارش كنيد؛ درباره ترافيك IPv6 نيز همين اقدامات را انجام دهيد. در واقع اگر شبكه از نگارش ششم پروتكل IP استفاده نميكند، هيچ دليلي براي اجراي IPv6 وجود ندارد. بنابراين همواره موارد زير را گزارش كنيد:
- آدرسهاي شناسايي شده IPv6
- ترافيك شناسايي شده IPv6
توصيه ميكنيم همواره ماهيت ترافيك را مشخص كنيد. علت اين بررسيها جذابيت IPv6 بهعنوان يك درپشتي براي مهاجمان است كه بهدليل نوع دفاع محيطي، امكان نقص فيلترسازي در آن وجود دارد.

عنوان: شناسايي آدرس IPv6
سطح: متوسط
توضيح: گروه آزمون نفوذپذيري متوجه شد كه بسياري از ميزبانها امكان اتصال با پروتكل IPv6 را فراهم ميكنند. تمام مكانيزمهاي دفاعي IPv4 مانند فيلترسازي IP هيچ تأثيري روي آدرسهاي IPv6 ندارند؛ يك مهاجم با استفاده از اين نقطهضعف ميتواند به طور غيرمجاز به شبكه دسترسي يابد و در نتيجه يكپارچگي آن را از بين ببرد.

ميزبانها

http://shabakeh-mag.com/data/gallery/2011/8/ipv6t1_s.jpg (http://www.shabakeh-mag.com/Data/Gallery/2011/8/IPV6T1.jpg)

پيشنهاد
اگر قرار است به زودي از IPv6 استفاده كنيد، به ياد داشته باشيد كه نقاط ضعف خاص اين پروتكل را در فهرست تدابير امنيتي منظور كنيد؛ اگر به IPv6 نيازي نداريد، آن را غيرفعال كنيد.

منابع خارجي

- صفحه اطلاعات IPv6
- مقالــه سيســتمهـاي امنيتــي اينترنـــت
- پيشنهادات مايكروسافت براي اتخاذ تدابير امنيتي IPv6
- نحــوه كــار بــا IPv6 در لينـــوكــس
(http://tldp.org/HOWTO/Linux+IPv6-HOWTO)