من سعی می کنم ترافیک بین دو ظرف Docker ("وب سرور" و "chrome_client") را با استفاده از ظرف "middle" در حالت MITM ترسیم کنم. بنابراین ما این توپولوژی اساسی داریم:
[chrome_client] -> [intermediate] -> [webserver]
شرح مختصری از ظروف است:
-
[chrome_client] : ظرف مورد استفاده برای بازکردن کروم به صورت گرافیکی
-
[intermediate] : ظرف کالی با استفاده از ettercap
برای راه اندازی آن در حالت mitm و گرفتن هر ترافیکی از طریق عبور
-
[webserver] : یک سرور ساده lighttpd
یک ویرایشگر ساده Markdown را نشان می دهد
راه اندازی ظروف اولین تنظیم کننده است یک شبکه جدا شده و ظروف داخل آن را به کار ببرید (همانطور که در اینجا توضیح داده شده است). مثل این:
# شبکه جدا شده
شبکه docker ایجاد --subnet = 172.19.0.0 / 24 - gateway 172.19.0.254 mynet123
در حال حاضر، ظرف "middle":
docker run --rm -it --net mynet123 --ip = 172.19.0.7 - privileged kali / wireless: ettercap bash
مرورگر کروم:
docker run --rm -d -u = 1000: 1000 --net mynet123 --ip = 172.19.0.4 -v /tmp/.X11-unix:/tmp/.X11- unix -e DISPLAY = unix $ DISPLAY -v $ HOME / EmptyDir: / data -v / dev / shm: / dev / shm --cap-add = SYS_ADMIN image / chrome: latest
و سرور وب (یک سرور lighttpd، نمایشگر ویرایشگر Markdown):
docker run --rm -d --net mynet123 --ip = 172.19.0.5 image / markdown: latest
در ظرف "middle"، من اجرا می کنم:
# اول، برخی از تنظیمات برای حمل و نقل
sysctl -w net.ipv4.ip_forward = 1
sysctl -w net.ipv6.conf.all.forwarding = 1
sysctl -w net.ipv4.conf.all.send_redirects = 0
iptables-FORWARD -i eth0 @ if16 -o eth0 @ if16 -j ACCEPT
# راه اندازی mitm برای گرفتن چیزی بین 2 ظرف دیگر:
ettercap -T -M arp: remote -i eth0 / 172.19.0.5// /172.19.0.4//
اکنون، URL مرورگر Chrome را وارد کنید http://172.19.0.5
و هیچ چیز ظاهر نمی شود. همه خالی است، در حالی که در خروجی ettercap من دریافت می کنم:
جمعه ژوئن 19 16:19:22 2018 [463117]
TCP 172.19.0.4:51840 -> 172.19.0.5:80 | S (0)
جمعه ژوئن 19 16:19:22 2018 [463119]
TCP 172.19.0.4:51842 -> 172.19.0.5:80 | S (0)
... و غیره ....
من نمی فهمم که چه چیزی به من می گوید. توجه داشته باشید که من نه با استفاده از https، بنابراین نباید هیچ مشکلی با گواهینامه داشته باشم. راست؟
PD: در عین حال، من در تلاش برای استفاده از mitmproxy
در "پروکسی میانجی، اما من فکر کردم ممکن است راه حل اشتباه را با حذف هر گونه مشکل با گواهینامه SSL.