به عنوان بخشی از این سری از مقالات ، ما به دلایل امنیتی یک تونل VPN را از تلفن هوشمند به شبکه خانگی ساخته ایم. سرور مرکزی VPN یک Raspberry Pi است. ما بر روی آن ما Pi-Hole را نصب کرده ایم تا از طریق پیگیری وضوح نام ، تبلیغات و خدمات ردیابی مسدود شود. رابط وب Pi-Hole نگاهی آشکار به همه نامهای دامنه درخواست شده توسط مرورگرها و برنامه های موجود در تلفن هوشمند ارائه می دهد. و به این ترتیب در تمام روابط ارتباطی که تلفن هوشمند می خواهد به آن بپردازد. حالا می خواهیم یک قدم جلو برویم. Pi-Hole فقط نام دامنه درخواستهای ارتباطی را نشان می دهد ، با Wireshark ما می بینیم هر بسته داده .
Wireshark چیست؟
من ویکی پدیا را نقل می کنم:
Wireshark
سیم سیم "سیم" ، "کابل" و کوسه "کوسه" یک نرم افزار رایگان برای تجزیه و تحلیل و پردازش گرافیکی پروتکل های داده است ( Sniffer ) ، که در سال 2006 به عنوان چنگال برنامه Ethereal (انگلیسی "آسمانی" ، "ethereal" ، اشاره به اترنت) سرچشمه گرفت.
ویکی پدیا
Wireshark یک snoop برای داده های شبکه است که می تواند تمام بسته های داده را روی یک خط رمزگشایی کند و آنها را در یک رابط کاربر گرافیکی تجسم کند.
که تمام سری مقاله ها را با دقت خوانده است ، اکنون ممکن است یک تضاد جزئی ایجاد شود: رابط کاربری گرافیکی در Raspbian Lite؟ البته این امکان پذیر نیست ، Raspbian Lite نسخه بدون دسک تاپ گرافیکی است.
چگونه کار می کند؟
Wireshark عملکرد هوشمندانه ای دارد ، یعنی کاوش از راه دور ، کاوشگرهای از راه دور. آنچه در ترجمه کمی دشوار به نظر می رسد ، چیزی غیر از توانایی برنامه برای خرج کردن نه تنها بر روی رایانه شخصی بلکه در رایانه دیگر است . ما Wireshark را بر روی یک دستگاه مختلف تحت لینوکس با دسک تاپ گرافیکی یا ویندوز نصب می کنیم و در Raspberry Pi یک پروب از راه دور می آید ، بنابراین یک نرم افزار کاوشگر که داده ها را در آنجا ثبت می کند.
نصب
a) نسخه کامل Wireshark با رابط کاربری گرافیکی
برای ویندوز و macOS می توانیم نرم افزار را از اینجا بارگیری کنیم: https://www.wireshark.org/#downloadownload19459028 و سپس به طور معمول سیستم عامل را نصب کنید. این کار با لینوکس آسان است:
sudo apt install wireshark
b) Probe Remote در Raspberry Pi
(حداقل) دو نوع وجود دارد ، حداقل Wireshark خود یک نرم افزار پروب از راه دور با نام Tshark ، که به سادگی نصب خود را روی Raspberry Pi با:
sudo apt install tshark
می خواهم به جای Tshark tcpdump را توصیه کنم ، بنابراین پیکربندی کمی ساده تر خواهد شد ، ما Tcpdump را بر روی Raspberry Pi به شرح زیر نصب می کنیم
sudo apt install tcpdump
پس از نصب ، می توانیم ببینیم که کدام یک از رابط tcpdump تشخیص می دهد:
sudo tcpdump -D
1.wlan0 [Up, Running]
2.tun0 [Up, Running]
3.any (دستگاه شبه که در تمام رابط ها ضبط می شود) [Up, Running]
4.lo [Up, Running, Loopback]
5.eth0 [Up]
6.bluetooth0 (آداپتور بلوتوث شماره 0)
7.usbmon1 (شماره اتوبوس USB 1)
برای ما جالب است tun0 ، رابط تونل VPN است. ما همچنین می توانیم tcpdump چیزی شبیه به این را بزنیم:
sudo tcpdump -i tun0
tcpdump: خروجی شفاف سرکوب شده ، استفاده از -v یا -vv برای رمزگشایی پروتکل کامل
گوش دادن به تن 0 ، پیوند نوع خام RAW ، اندازه ضبط 262144 بایت
19: 10: 53.833286 IP 10.8.0.2.54959> ws-in-f188.1e100.net.5228: Flags [P.]، seq 4098271724: 4098271826، ack 4254323531، win 821، option [nop,nop,TS val 2387026 ecr 3591683413]، طول 102
19: 10: 53.887223 IP ws-in-f188.1e100.net.5228> 10.8.0.2.54959: پرچم ها [.] ، ack 102 ، برنده 253 ، گزینه ها [nop,nop,TS val 3592334699 ecr 2387026] ، طول 0
19: 10: 54.280333 IP 10.8.0.2.49647> 10.8.0.1.domain: 57842+ A؟ apps.n-tv.de. (30)
19: 10: 54.315707 IP 10.8.0.1.domain> 10.8.0.2.49647: 57842 5/0/0 CNAME d1rorojlyakfyp.cloudfront.net. ، A 99.84.92.98 ، A 99.84.92.70 ، A 99.84.92.41 ، A 99.84. 92.14 (137)
Ctrl-C خروجی بسته های داده را محدود می کند. این آگهی بسیار رمزنگاری است ، اما در هر صورت ، آدرس IP 10.8.0.2 را چند بار در مثال خود مشاهده خواهیم کرد. این مشتری VPN ماست.
پیکربندی و ضبط
در زیر تصور می کنم تمشک Pi tcpdump به عنوان کاوشگر از راه دور نصب شده است و نه Tshark. بنابراین ما به PC Desktop می رویم و از آنجا شروع می کنیم Wireshark . ابتدا باید یک رابط را انتخاب کنیم که Wireshark برای پوزه زدن باشد.
برای انجام این کار ، ما روی دنده کوچک سیاه جلوی SSH از راه دور گرفتن sshdump کلیک می کنیم و سپس یکی را دریافت می کنیم. ویندوز با گزینه های رابط.
در این پنجره ، همه چیز را تنظیم می کنیم که Wireshark برای دسترسی به Raspberry Pi از طریق SSH پیکربندی شده و از آنجا شروع می کند. اینها عبارتند از:
آدرس سرور از راه دور SSH : نام یا آدرس IP Raspberry Pi
درگاه سرور SSH از راه دور : برای SSH همیشه 22
نام کاربری سرور SSH از راه دور : یک کاربر در Raspberry Pi ، به طور معمول Pi
رمز عبور سرور SSH : رمز عبور کاربر Pi
رابط از راه دور : رابط تونل (که ما بعد از نصب آن را تشخیص دادیم)
فرمان ضبط از راه دور : می توانید هنگام استفاده از tcpdump خالی بمانید ، زیرا tcpdump به طور پیش فرض است. اگر از Tshark استفاده می کنید ، باید به اینجا بروید.
از sudo بر روی دستگاه از راه دور استفاده کنید : جعبه چک لطفا
فیلتر ضبط از راه دور : هیچ چیز لازم نیست اینجا وارد شود ، این خود Wireshark را می سازد
بین Raspberry Pi و PC یک تأیید اعتبار کلید عمومی را پیکربندی کرده است تا دیگر نیازی به وارد کردن گذرواژه از طریق SSH به RasPi (که من بسیار توصیه می کنم) نیست ، که می توانید در زیر Path to ssh کلید خصوصی پرونده .ssh / id_rsa خود را انتخاب کرده و رمزعبور را رها کنید.
Trailer from Tshark as a probable dûr باید کمی با تنظیمات آزمایش کند ، زیرا در اینجا در ماسک پیکربندی از دستور باید استفاده کرد. . برای من ، با / usr / bin / tshark -i tun0 -s0 -w - خوب کار کرد.
با کلیک بر روی Start را شروع کنید تا ضبط ] و بعد از چند ثانیه ، اولین داده ها باید وارد شوند. تقریباً شبیه این است:
پنجره ضبط در سه قسمت است . در بالا (پس زمینه مات) می توانید فریم های فردی (بسته های داده) را مشاهده کنید. اگر روی یکی از آنها کلیک کنید (به رنگ نارنجی برجسته شده است) ، این بسته داده در پنجره وسط تجزیه و تحلیل می شود و در پنجره پایین (پس زمینه قرمز) در بایت و سطح نقاشی نمایش داده می شود. می توانید با کلیک روی مربع قرمز در بالای نوار ابزار ضبط کنید. ضبط نیز می تواند ذخیره شود.
ضبط و ارزیابی
چگونه می توان دقیقاً آنچه را می خواهید پیش برد و ضبط کرد؟ Wireshark به شما امکان می دهد فیلترهای ضبط و گزارش را پیکربندی کنید ، بنابراین می توانیم آنچه را که می خواهیم ضبط کنیم محدود کنیم و سپس دوباره نمایش دهیم. اما متأسفانه نمی تواند مربوط به برنامه موجود در تلفن هوشمند باشد. ما نمی توانیم به Wireshark بگوییم ، "هر آنچه را که برنامه ارسال می کند ضبط کنید". این کار را کمی دشوار می کند. رویکرد زیر ممکن است مفید باشد:
در صورت نصب Pi-Hole ، ابتدا باید تصمیم بگیریم که آیا Pi-Hole باید هنگام ضبط فیلتر شود یا اینکه می خواهیم همه روابط ارتباطی را ببینیم.
تلفن هوشمند باید تا حد امکان برنامه های معدودی داشته باشد ، که ممکن است بخواهد از طریق اینترنت نیز ارتباط برقرار کند. اگر لازم باشد، شاید یک بار تلفن هوشمند را مجدداً راه اندازی کنید.
اکنون در رایانه در Wireshark ضبط جدید را شروع کنید. .
و سپس برنامه را شروع کنید ، که ارتباط ما از آن استفاده می کند
اگر انتظار می رود همه داده ها منتقل شده باشند ، می توانیم ضبط را متوقف کنیم و به ارزیابی برویم.
Ggf. ضبط .
من فقط در مورد برنامه تلفن هوشمند صحبت کرده ام ، که البته می تواند یک مرورگر باشد ، که ما برای مرور یک صفحه وب استفاده می کنیم. ، بیایید به چنین نمونه ای نگاهی بیندازیم.
این بالای سه پنجره صفحه نمایش Wireshark است. در اینجا همه فریم های داده را به ترتیب زمانی آنها مشاهده می کنیم. بیایید به مثال برخی از آنها را نگاه کنیم.
قاب 9: در اینجا تلفن هوشمند (در اینجا آدرس IP 10.8.0.3) یک درخواست HTTP GET HTTP GET را به آدرس پشت jsonp.eu ارسال می کند. [اینترتیبوبسایتنامیدهمیشود
قاب 14 : و اینجا نیز وب سایت نیز وجود دارد. نگاهی دقیق تر به این قاب خواهیم داشت.
قاب 19 : در اینجا تلفن هوشمند (10.8.0.3) درخواست [DNS] را به آدرس 10.8.0.1 ارسال می کند. این آدرس تونل VPN Raspberry Pi است و Raspberry Pi مسئول سرور DNS برای تلفن هوشمند است. ما چنین پیکربندی کرده بودیم. Queried نام vg08.met.vgwort.de است. قبل از هر چیز ، ما نمی دانیم که آیا این ارتباطی با صفحه وب که به تازگی بارگذاری شده است وجود دارد ، اما به دلیل نزدیکی زمانی که می توانیم فرض کنیم.
قاب 20 : این پاسخ DNS است ، که Raspberry Pi به مرورگر ارسال می کند و در فریم های زیر ، مرورگر با سرور کلمه VG برای بارگذاری پیکسل ردیابی ارتباط برقرار می کند.
بیایید جزئیات بیشتری را برای قاب 14
پنجره وسط جزئیات جزئیات را نشان می دهد که هر فریم در بالای مشخص شده است و ارزیابی در سطوح مختلف ثبت را ارائه می دهد. در بالا قاب داده و طول آن است ، سپس سطح پروتکل IP می آید. در اینجا آدرس های IP فرستنده و گیرنده را مشاهده می کنیم. در پروتکل اینترنت ، پروتکل کنترل انتقال TCP را ایجاد می کند و سپس 4 بخش را لیست می کند ، که سپس سطح بعدی را تشکیل می دهند – این فریم های قبلی 11 تا 14 هستند. من این همه سطح پروتکل را در تصویر نمونه فرو ریختم. می توانید مثلث ها را در ابتدای خط کلیک کرده و اطلاعات بیشتری کسب کنید. من سطح بعدی را باز کردم ، پروتکل انتقال hypertext HTTP ، در اینجا آبی ، اینجا آبی ، در اینجا مثلاً می بینید که نسخه HTTP 1.1 است ، و اینکه وضعیت 200 OK بازگردانده می شود. این به دنبال جزئیات بیشتر ، به عنوان مثال ، این است که یک سرور آپاچی ، و در آخر محتوای واقعی از قاب (بارگیری) در زیر داده متن مبتنی بر خط ظاهر می شود. این متن HTML وب سایت است که می توانید خیلی خوب بخوانید. ما متن را حتی اگر به سطح بایت ارزیابی برویم می بینیم.
اگر در پنجره وسط یک خط علامت گذاری کنیم ، محتوای آن را در پنجره پایین بایت توسط بایت ، در اینجا به عنوان مثال متن مبتنی بر خط از قاب پاسخ HTTP است. در اینجا مجدداً شاهد آغاز HTML HTML صفحه وب هستیم – به صورت بایت و سمت راست به شخصیتهای قابل خواندن ترجمه شده است.
تا کنون یک مقدمه کوتاه برای کار با Wireshark. این برنامه پیچیده است و ساختار داده های شبکه نیز. هیچ کس نگران نباشد اگر او همه چیز را نفهمد که وایرشر به او نشان می دهد – من فقط یک دانش ابتدایی دارم. در ادامه قسمت 11 از این سری از مقالات ، نمودار شبکه ای نیز برای Wireshark وجود دارد.
همه برنامه ها اکنون شیشه ای هستند؟ متأسفانه ، خیر!
با Wireshark ما یک برنامه sniffer را روی سرور VPN خود نصب کردیم ، که با آن ما تمام بسته های داده را بین Smartphone و اینترنت ارسال می کنیم. ] می تواند ضبط کند. اما آیا اکنون می توانیم تجزیه و تحلیل کنیم که چه برنامه های شخصی در تلفن هوشمند برای ارسال داده وجود دارد؟ متأسفانه ، no ، زیرا این داده ها تقریباً همیشه رمزگذاری شده است.
در مثال تجزیه و تحلیل من در بالا ، وب سایت HTTP را ضبط کردم – که رمزگذاری نشده است ، بنابراین می توانید محتوای HTML را به عنوان متن ساده در پرونده اطلاعات بخوانید. اگر این یک وب سایت رمزگذاری شده HTTPS بود ، کار نمی کند ، زیرا این هدف از رمزگذاری است که داده ها قابل خواندن نیست. و این فقط در مورد برنامه ها اتفاق می افتد. هر چیزی که من در مورد ارتباط برنامه در تهیه این مقاله دیدم ، از طریق HTTPS است. اگرچه ما می بینیم که با چه کسی در حال برقراری ارتباط هستیم – این نتیجه حاصل از وضوح نام است – ما نمی توانیم را در بسته های داده مشاهده کنیم. متأسفانه ، ما نمی توانیم چنین مدرکی را با اثبات ارائه دهیم که به عنوان مثال ، برنامه xyz اطلاعات مکان تلفن هوشمند را خوانده و آن را به سازنده برنامه گزارش می دهد.