معرفی کتاب امنیت و نفوذ پذیری در شبکه های کامپیوتری
پیشگفتار
امروزه توجه بیشتر سازمانها و بنگاههای اقتصادی معطوف به شبکه محلی و رایانههای شخصی متصل به آن میباشد. گرچه شبکههای ارتباطی میتوانند اشکال مختلفی به خود بگیرند و تعداد و تنوع آنها هم روز به روز بیشتر میشود، اما استفاده از این شبکهها بدون توجه به مقوله امنیت ارتباطی، سلب اعتماد همگانی از فناوری اطلاعات را در برخواهد داشت که خسارت ناشی از این بیاعتمادی برای سازمانها بسیار قابل توجه است. در این راستا این کتاب مقدمهای بر امنیت شبکه داخلی است که مخاطب آن بهطور عمده مدیران فنی و اجرایی سازمانها میباشند. هدف آن بوده است که مفاهیم اساسی امنیت در این حوزه و روشهای متداول نفوذ به شبکههای رایانهای معرفی شوند و بنابراین از توسعه و تفصیل مطالب پرهیز گردیده است. با این وجود برخی از بخشهای کتاب برای کارشناسان فنی و راهبران شبکههای داخلی موسسات مفید خواهد بود. شاید وقتی که در ابتدا ارتباطات رایانهای بوجود آمد و شبکههای کامپیوتری پدید آمد هیچکس تصور نمیکرد که امنیت به مهمترین بخش آن تبدیل خواهد شد، بهطوری که امروزه امنیت شبکه جزء مهمترین و کاربردیترین تخصصها در بخش فناوری اطلاعات گردیده است. به همین دلیل مطالعه و آموزش در زمینه امنیت شامل مباحث بسیار گستردهای است و فراتر از سطح این مجموعه آموزشی است. آنچه که در این کتاب ارائه شده، یک معرفی کلی از مباحث اصلی امنیت شبکه است و بیشتر برای آشنایی شما با مسئله امنیت و شیوههای ایجاد امنیت و شناخت تهدیدهای امنیتی رایج است. شما میتوانید این تخصص را با گرفتن مدارکی همچون Security+ , CEH , CHFI کسب کنید. نکته دیگری که میخواهیم به آن اشاره کنیم این است که زمانی که شما قدم به عرصه امنیت شبکه میگذارید هیچ پایانی برای کسب دانش شما وجود نخواهد داشت. درست زمانی که فکر میکنید همه دانش لازم برای امنیت شبکه را بدست آوردهاید، بعضی سناریوها تغییر میکند و یکسری روشهای جدید نفوذ و حمله کشف میشود. برخی هکرها با صرف انرژی باگهای جدیدی را کشف میکنند و راه نفوذ دیگری را پیدا میکنند. پس به یاد داشته باشید که امنیت شبکه مسئله بسیار مهمی است و دانش آن روز به روز دستخوش تغییر و پیشرفت میشود .
سید مهدی عمادی استرآبادی شهره لیثی بهرمانی پاییز 1394
فهرست مطالب فصل1 مقدمات شبکه 1 1.1 مقدمه 2 1.2 مراحل ایجاد امنیت در شبکه 2 1.3 واژگان فنی 6 1.4 انواع مختلف تكنولوژیهای هك 7 1.5 مراحل هك قانونمند 8 1.6 مراحل هک 9 1.7 انواع هكرها 10 1.8 crackerها كیستند؟ 11 1.9 انواع حملات هكرها 12 1.10 موارد مورد نیاز هكر 13 1.11 نکاتی لازم در مورد پروکل TCP 15 1.12 آشنایی با تست نفوذپذیری 16 1.12.1 گامهای ابتدایی برای تست امنیت 16 1.12.2 طبقهبندی و اهداف تست نفوذپذیری 17 1.12.3 اهداف تست نفوذپذیری 18 1.12.4 محدودیتهای تست نفوذپذیری 18 1.12.5 طبقهبندی تست نفوذپذیری 19 1.13 نیازمندیهای متداول 20 1.13.1 نیازمندیهای سازمانی 20 1.13.2 نیازمندیهای پرسنلی 21 1.13.3 نیازمندیهای تکنیکی 21 1.14 مراحل تست نفوذپذیری 21 1.15 راههای نفوذ 22 1.15.1 جعل اطلاعات 22 1.15.2 استراقسمع دادهها 25 1.15.3 حمله Ping of death 26 1.15.4 حمله نوع Jolt 2 26 1.15.5 حمله نوع Smurf 26 1.16 اهداف حمله كنندهها 29 1.17 مثلث CIA 30 1.18 تحقیق آسیبپذیری چیست؟ 31 1.19 روشهای اجرای هك قانونمند 32 1.20 برنامه ارزیابی امنیتی 32 1.21 انواع حملات قانونمند 32 1.22 انواع تست 33 1.23 گزارش هك قانونمند 35 فصل2 جمعآوری اطلاعات و مهندسی اجتماعی 35 2.1 مقدمه 38 2.2 Footprinting 38 2.3 متدلوژیهای جمعآوری اطلاعات 39 2.4 DNS Enumeration 40 2.5 DNSstuff و Nslookup 40 2.6 مفهوم ARIN Lookup و Whois 41 2.7 تحلیل خروجی Whois 43 2.8 پیدا كردن بازه آدرسهای شبكه 45 2.9 شناسایی انواع مختلف رکوردهای DNS 45 2.10 نحوه كار traceroute در footprinting 45 2.11 استفاده از Email Tracking 46 2.12 نحوه كار Web Spiderها 47 2.13 مراحل انجام Footprinting 47 2.14 مهندسی اجتماعی 48 2.15 انواع رایج حملات 48 2.16 مهندسی اجتماعی مبتنی بر انسان 49 2.17 مهندسی اجتماعی مبتنی بر كامپیوتر 50 2.17.1 حملات داخلی 50 2.17.2 حملات Phishing 50 2.18 پیشگیری از مهندسی اجتماعی 51 فصل 3 اسکن و Enumeration 53 3.1 مقدمه 54 3.2 اسکن 54 3.3 متدلوژی اسكن 55 3.4 تکنیکهای ping sweep 56 3.5 تشخیص Ping Sweepها 56 3.6 اسكن پورتها و شناسایی سرویسها 56 3.7 مقابله با اسكن پورت 57 3.8 سوئیچهای دستور Nmap 57 3.8.1 اسكنهای SYN، Stealth، XMAS، NULL، IDLE و FIN 60 3.9 انواع flagهای ارتباط TCP 61 3.9.1 Net tools suite pack 62 3.9.2 FloppyScan 62 3.10 تكنیکهای War-Dialing 64 3.11 تكنیكهای Banner Grabbing و شناسایی سیستمعامل 64 3.12 رسم دیاگرام شبكهای از دستگاههای آسیبپذیر 66 3.13 چگونه از سرورهای پروكسی در انجام حمله استفاده میشوند؟ 66 3.14 ناشناسكنندهها چگونه كار میكنند؟ 67 3.15 HTTP tunneling 68 3.15.1 تكنیکهای HTTP Tunneling 68 3.15.2 ابزار Httptunnel برای ویندوز 69 3.16 تكنیكهای IP Spoofing 69 3.16.1 Enumeration 70 3.16.2 Null Session 72 3.16.3 انتقال DNS Zone در ویندوز 2000 73 فصل 4 هک سیستم 75 4.1 مقدمه 76 4.2 تكنیكهای شكستن پسورد 76 4.2.1 LanManager Hash 77 4.2.2 شكستن پسوردهای ویندوز 2000 78 4.2.3 هدایت SMB Logon به حمله كننده 79 4.2.4 حملات SMB Relay MITM و مقابله با آن 80 4.3 مقابله با شكستن پسورد 81 4.3.1 بازه زمانی تغییر پسورد 82 4.3.2 بررسی Event Viewer Logها 82 4.4 انواع پسورد 83 4.5 حملات Passive Online 84 4.6 حملات Active Online 84 4.7 حدس پسورد بهصورت اتوماتیك 85 4.8 مقابله با حدس پسورد 86 4.9 حملات آفلاین 86 4.10 Pre-Computed Hashes 87 4.11 حملات Nonelectronic 87 4.12 تكنیكهای keyloggerها و spyware 88 4.13 دسترسیهای ضروری 89 4.14 اجرای برنامهها 90 4.15 Buffer Overflows 91 4.16 Rootkitها 91 4.16.1 نصب Rootkitها بر روی كامپیوترهای ویندوز 2000 و XP 92 4.16.2 مقابله با rootkitها 92 4.17 مخفی كردن فایلها 93 4.17.1 NTFS File Streaming 93 4.17.2 مقابله با NTFS Stream 94 4.17.3 تكنولوژیهای Steganography 94 4.17.4 ابزارهای مقابله 96 4.18 پاك كردن ردپاها و مدارك 96 4.19 غیر فعال كردن Auditing 96 4.20 پاك كردن Event Log 97 فصل 5 بدافزارها 99 5.1 مقدمه 100 5.2 بدافزار چیست؟ 100 5.3 نگاهی گذرا به سرگذشت بدافزارها 101 5.4 انواع بدافزار 102 5.4.1 کرم (Worm) 102 5.4.2 ویروس (Virus) 103 5.4.3 اسب تروا (Trojan Horse) 110 5.4.4 در پشتی (Backdoor/Trapdoor) 124 5.4.5 روتکیت (Rootkit) 125 5.4.6 نرمافزار جاسوسی (Spyware) 130 5.4.7 ابزار نفوذ (Hack Tool) 132 5.4.8 تبلیغات ناخواسته (Adware) 132 5.4.9 ترساندن Scareware 133 5.4.10 Logic Bomb یا بمب منطقی 134 5.5 روشهای مقابله با بدافزارها 135 5.6 حذف بدافزارها 138 فصل 6 Snifferها 141 6.1 مقدمه 142 6.2 پروتكلهای مستعد برای استراق سمع 142 6.3 اسنیفر چیست؟ 144 6.4 استراق سمع اكتیو و پسیو 144 6.4.1 استراق سمع اكتیو 145 6.4.2 استراق سمع پسیو 145 6.5 رمزگذاری 146 6.5.1 رمزگذاری در سطح ارتباط 146 6.5.2 رمزگذاری در دو انتها 146 6.5.3 رمزگذاری در سطح برنامه 147 6.6 ARP Poisoning 148 6.7 MAC Duplicating 149 6.8 MAC Flooding 150 6.9 DNS Poisoning 152 6.10 Intranet DNS Spoofing 152 6.11 Proxy Server DNS Poisoning 154 6.12 NS Cache Poisoning 154 6.13 مقابله با استراق سمع 156 6.14 شبکه کوچک 157 فصل 7 Denial of Service و Session Hijacking 159 7.1 مقدمه 160 7.2 Denial of Service 160 7.3 انواع حملات DoS 160 7.4 نحوه كار حملات DDoS 162 7.5 دستهبندی حملات DDoS 165 7.6 نحوه كار BOTها و BOTNETها 166 7.7 حمله smurf چیست؟ 167 7.8 SYN flooding چیست؟ 168 7.9 مقابله با DoS و DDoS 168 7.10 Session Hijacking 170 7.11 Hijacking و Spoofing 170 7.12 انواع session hijacking 171 7.12.1 Active Session Hijacking 171 7.12.2 Passive Session Hijacking 172 7.13 مفاهیم TCP: دست تكانی سه مرحلهای 172 7.14 پیشگویی sequence 173 7.15 چه مراحلی در session hijacking انجام میشوند؟ 174 7.16 سطوح session hijacking 175 7.17 TCP/IP Hijacking 175 7.18 RST Hijacking 176 7.19 Blind Hijacking 176 7.20 خطرات session hijacking 177 7.21 چگونگی پیشگیری از session hijacking 177 فصل 8 هك وب سرورها، آسیبپذیری برنامههای تحت وب، و تكنیكهای شكستن پسوردهای مبتنی بر وب 179 8.1 مقدمه 180 8.2 هك وب سرورها 180 8.3 انواع آسیب پذیریهای وب سرور 180 8.4 حملات به وب سرورها 181 8.5 IIS Unicode Exploit 181 8.6 تكنیكهای مدیریت patchها 185 8.7 اسكنرهای آسیبپذیری 186 8.8 روشهای امنسازی وب سرور 186 8.9 چك لیست محافظت از وب سرور 187 8.10 آسیبپذیریهای برنامههای تحت وب 188 8.11 نحوه كار برنامههای وب 188 8.12 هدف از هك برنامههای تحت وب 189 8.13 آناتومی حمله 189 8.14 تهدیدات برنامههای وب 190 8.15 Google Hacking 194 8.16 تكنیكهای شكستن پسوردهای مبتنی بر وب 194 8.17 احراز هویت 195 8.18 انواع احراز هویت 195 8.18.1 شناسایی بر مبنای حالت هندسی دست 196 8.18.2 اسكن شبكیه چشم 197 8.18.3 تشخیص چهره 198 8.18.4 پسورد 198 فصل 9 SQ: Injection و Buffer Over 203 9.1 مقدمه 204 9.2 SQL Injection چیست؟ 204 9.3 مراحل انجام SQL injection 205 9.4 آسیبپذیریهای SQL Server 206 9.5 Blind SQL Injection 208 9.6 مقابله با SQL Injection 208 9.7 چرا برنامهها آسیبپذیرند؟ 209 9.8 انواع Buffer Overflow و روشهای شناسایی 210 9.9 پشته (Stack) 210 9.10 Heap 211 9.11 سرریزی بافر مبتنی بر پشته (stack-based buffer overflow) 212 9.11.1 انواع Buffer Overflow و روشهای شناسایی 212 9.11.2 سرریزی بافر مبتنی بر heap (heap-based overflow) 213 9.11.3 روش شناسایی buffer overflow در برنامه 214 9.11.4 تکنیکهای تغییر buffer overflow 215 9.11.5 روشهای جلوگیری از buffer overflow 215 فصل 10 شبکههای وایرلس 217 10.1 مقدمه 218 10.2 استانداردهای وایرلس 218 10.3 مفاهیم وایرلس 218 10.4 مكانیزمهای احراز هویت WEP و WPA و تكنیكهای شكستن آنها 219 10.5 اصطلاحات هك شبكه وایرلس 221 10.6 استراق سمع كنندههای وایرلس و قرار دادن SSIDها و MAC spoofing 223 10.7 تغییر دستی MAC Address در ویندوز XP 223 10.8 Rogue Access Point (تقلبی) 224 10.9 تكنیكهای هك شبكه وایرلس 225 10.10 مراحل هك شبكههای وایرلس 225 10.11 روشهایی شناسایی شبكههای وایرلس 227 10.12 روشهای امنسازی شبكههای وایرلس 227 فصل 11 امنیت فیزیکی 229 11.1 مقدمه 230 11.2 رویدادهای نقض امنیت فیزیكی 230 11.3 امنیت فیزیكی 231 11.3.1 ضرورت امنیت فیزیكی چیست؟ 231 11.3.2 چه كسی مسئول امنیت فیزیكی است؟ 232 11.3.3 عواملی كه امنیت فیزیكی را تحت تأثیر قرار میدهند 233 11.3.4 چك لیست امنیت فیزیكی 233 11.3.5 برخی از ابزارهای امنیت فیزیكی 237 فصل 12 هک لینوکس 241 12.1 سیستمعامل چیست؟ 242 12.2 مفهوم نرمافزارهای open source 242 12.3 مفهوم مجوز GPL 242 12.4 سیستمعامل لینوکس 243 12.5 اساس لینوكس 243 12.6 تعریف GNU 243 12.7 Kernel چیست؟ 244 12.8 قابلیتهای لینوکس 244 12.9 سیستم پروندهها در لینوکس 245 12.10 دستورات پایه لینوكس 246 12.10.1 فایلها و دایركتوریها 246 12.10.2 دایركتوریهای لینوكس 247 12.11 نحوه كامپایل كرنل لینوكس 247 12.12 دستورات كامپایل GCC 249 12.13 نحوه نصب ماژولهای كرنل لینوكس 249 12.14 آسیب پذیریهای لینوكس 249 12.15 روشهای امن سازی لینوكس 251 12.16 فایروال در لینوكس (IPTable) 252 12.17 ابزارهای لینوكس 252 فصل 13 گریز از IDSها، honeypotها و فایروالها 253 13.1 مقدمه 254 13.2 انواع سیستمهای تشخیص نفوذ و تكنیكهای گریز 254 13.3 گریز از IDS 257 13.4 فایروال 257 13.5 كارهایی كه فایروال انجام میدهد 258 13.6 انواع فایروال 258 13.7 ابزارهای تست 260 13.8 Honeypot 261 13.8.1 انواع مختلف honeypot 261 13.8.2 مزایای honeypot 261 13.8.3 محل قرارگیری honeypot در شبكه 262 13.8.4 ابزارها 263 13.8.5 Honeypotهای تجاری 263 13.8.6 Honeypotهای open source 263 13.8.7 Honeypot فیزیكی و مجازی 264 فصل 14 رمزنگاری 265 14.1 مقدمه 266 14.2 تكنیكهای رمزنگاری و رمزگذاری 266 14.3 نحوه تولید كلیدهای عمومی و خصوصی 267 14.4 نگاهی به الگوریتمهای Blowfish،RC5 ،RC4 وSHA ،MD5 267 14.5 SSH 268 14.6 ابزارها 269 فصل 15 روشهای تست نفوذ 271 15.1 مقدمه 272 15.2 ارزیابیهای امنیتی 272 15.3 روشهای تست نفوذ 272 15.4 مراحل تست نفوذ 273 15.5 چارچوب قانونی تست نفوذ 276 15.6 ابزارهای خودكار تست نفوذ 276 15.7 موارد قابل ارائه در تست نفوذ 277 فصل 16 حذف پسورد 279 16.1 استخراج و کرک رمزهای عبور 280 16.2 حسابهای کاربردی و کلمات عبور 280 16.3 گروههای کاربری 281 16.4 گروههای موجود در یک شبکه 282 16.5 ورود به حساب کاربری Administrator 283 16.6 هدف اصلی نفوذگر 284 16.7 اطلاعات کلی 284 16.8 روش مقابله 284 16.9 استفاده از فرامین و ابزارهای خود ویندوز 285 16.9.1 User Accounts (Control Userpasswords2) 285 16.9.2 (Iusrmgr.msc) Local Users And Grous 286 16.2.3 Net User Command 286 16.10 روش مقابله در جلوگیری از استفاده از این فرامین و ابزارها 288 16.11 ایجاد دیسکت حذف کنندهی پسورد 288 16.12 پسورد گذاری کامل syskey و حسابهای کاربری 295 16.13 حذف SYskey و پسورد حساب Administrator 296 16.13.1 روش کار 296 16.13.2 روش مقابله 296 16.14 حذف پسورد در Welcome Screen 297 16.14.1 روش مقابله 303 16.15 نحوهی Reset کردن پسورد با استفاده از ابزارهای مختلف موجود در اینترنت 303 16.15.1 ابزار Active@ password Changer 304 16.15.2 نحوهی عوض کردن و یا حذف کردن پسوردهای ویندوز با استفاده از Ubuntu live CD 307 16.15.3 حذف یا تغییر پسوردهای ویندوز با استفاده از برنامه Chntpw در Ubuntu 312 16.15.4 با استفاده از ابزار NTPswd 317 16.15.5 PC Login Now 325 16.15.6 Windows Login Password Professional 330 16.16 نحوه حذف پسورد برنامهها 334 16.16.1 نحوه حذف پسورد برنامه Access Administrator 334 16.16.2 نحوهی حذف پسورد برنامه Click And Lock1 334 16.16.3 نحوهی حذف پسورد برنامه Program Protector 334 16.16.4 نحوهی حذف پسورد برنامه Ashampoo Magical Security 334 16.16.5 نحوهی حذف پسورد برنامه Anfibia Deskman 334 16.16.6 نحوهی حذف پسورد برنامه Access 335 16.16.7 نحوهی حذف پسورد برنامه Private Encryption 335 16.16.8 نحوهی حذف پسورد برنامه XP Smoker 335 16.16.9 نحوهی حذف پسورد برنامه Lock My Pc 335 16.16.10 نحوهی حذف پسورد برنامه PC Security Tweaker 335 16.16.11 نحوهی حذف پسورد برنامه st Security Agent1 336 16.16.12 نحوهی حذف پسورد برنامه Pc Security 336 16.16.13 نحوهی حذف کردن پسورد برنامه Securr Browser 336 16.16.14 نحوهی حذف کردن پسورد برنامه Securr Browser 336 16.16.15 نحوهی حذف پسورد برنامه Password Door 336 16.16.16 نحوهی حذف کردن پسورد برنامه FolderMage Pro 337 16.16.17 نحوهی حذف پسورد برنامه Steelth Encrypto 337 16.16.18 نحوهی حذف پسورد برنامه Private Desktop 337 16.16.19 نحوهی حذف پسورد آنتیویروس nod32 337 16.16.20 نحوهی حذف پسورد برنامه USB Disk Security 337 16.16.21 نحوهی حذف پسورد برنامه Hide My Folders 338 16.16.22 نحوهی حذف پسورد برنامه Private Pix 338 16.16.23 نحوهی حذف پسورد برنامه Clear Lock 338 16.16.24 نحوهی حذف پسورد برنامه Security Administrator 338 16.16.25 نحوهی حذف کردن پسورد برنامه Anti porn 338 16.16.26 نحوهی حذف پسورد برنامه FolderGuard 338 فصل 17 Packet Sniffing 339 17.1 مقدمه 340 17.2 طریقهی نصب در لینوکس کلاه قرمز 340 17.3 ngrep 345 17.3.1 استفاده از نرمافزار ngrep در ویندوز 347 17.4 نرمافزار tcpdump 349 17.4.1 بررسی چند دستور دیگر در اسنیفر tcp dump 350 17.5 کار با اسنیفر windump 351 17.6 Sniffing whith snort 352 17.6.1 تست برنامه snort 353 17.7 یک اسنیفر تجاری 354 17.8 رمزگذاری در دو انتها 355 17.9 رمزگذاری در سطح برنامه 356 فصل 18 metasploit 357 18.1 مقدمه 358 18.2 نصب 358 18.3 استفاده 359 18.4 رابط کنسول 359 18.5 رابط وب 367 18.6 محیطها و متغیرهای متااسپلویت 368 18.7 محیط سراسری 369 18.8 محیط موقت 370 18.8.1 تنظیمات پیشرفته محیط 370 18.9 ارتقا و افزودن اکسپلویت و پیلود جدید 371