
در این بخش از دوره آموزشی SEC504 به آشنایی با مباحث سرقت نشست یا Session Hijacking می پردازیم و ابزارهای مورد استفاده و همچنین راه های مقابله را توضیح خواهیم داد.
SSL Strip
روش تعویض گواهی نامه که توسط ابزارهایی مانند Dsniff انجام میشود معمولا یک پیام هشدار را برای کاربران هنگام استفاده از SSL نمایش میدهد. البته چندین راه کار برای عدم نمایش این پیام وجود داشت که در مطالب پیشین به برخی از آنها اشاره گردید.

Moxie Marlinspike یک ابزار با نام sslstrip را منتشر نمود که تغییرات جدیدی را علیه SSL انجام میداد. این ابزار موجب میشود تا کلیه درخواستهای کاربر به جای HTTPS از HTTP انتقال پیدا نماید. با توجه به اینکه اکثر کاربران هنگام دسترسی به یک وب سایت معمولا آن را بدون پیشوند (HTTP یا HTTP) وارد میکنند، این روش ضریب موفقیت بالایی خواهد داشت.
در حمله sslstrip، کلاینت درخواست HTTP را به صورت معمولی ارسال میکند. ابزار sslstrip این درخواست را به سمت وب سرور هدایت میکند. وب سرور تلاش میکند تا مرورگر را به صفحه با پیشوند HTTPS هدایت کند.
ابزار sslstrip این درخواست را دریافت میکند و به مرورگر میگوید که با استفاده HTTP، ارسال اطلاعات خود را ادامه دهد. سپس نفوذگر از HTTPS برای دسترسی به سایت استفاده میکند. در این حالت تمام ترافیکی که از مرورگر به مهاجم ارسال میشود با استفاده از HTTP انجام شده و تمام ترافیکی که از نفوذگر به وب سایت ارسال میشود با استفاده از HTTPS صورت میگیرد.
در این روش هیچ پیام هشداری به کاربر نمایش داده نمی شود، زیرا وی هرگز ار SSL استفاده نکرده است. همچنین ابزار sslstrip یک علامت قفل ویژه هم برای favicon در نوار آدرس مرورگر قرار میدهد که بسیاری از کاربران احساس میکنند که این همان آیکون قفل SSL میباشد، حتی اگر پروتکل HTTP استفاده شده باشد.
نوع دیگری از این حملات بر روی وب سایتهایی میباشد که احراز هویت کاربران از طریق HTTPS انجام میشود ولی پس از احراز هویت، اطلاعات به صورت Clear Text و با HTTP منتقل میشوند. در این حالت نفوذگر با استفاده از ابزار Firesheep در انتظار کاربران برای احراز هویت از طریق پروتکل HTTPS میماند. پس از احراز هویت، پروتکل HTTPS به HTTP تغییر میکند. در این حالت ابزار Firsheep، کوکیها و نشست احراز هویت شده کاربر را Sniff نموده و پس از جمع آوری، آن ها را در اختیار نفوذگر قرار میدهد.
Session Hijacking
پس از توضیح مبحث Sniffing به مبحث ربودن نشست یا Session Hijacking میرسیم که ترکیبی از جعل (Spoofing) و Sniffing میباشد.
ابزارهای سرقت نشست به نفوذگران اجازه میدهند تا Login Session را در اختیار بگیرند که این نشستها مانند Telnet، FTP و موارد مشابه میباشد.
قربانی معمولا احساس میکند که ارتباط وی با مقصد قطع شده است(مشکلات شبکه) و همچنین کاربران احتمالا تنها سعی میکنند که مجدد وارد سیستم شوند و تصور نخواهند کرد که Session آنها به سرقت رفته است.
در حمله سرقت نشست تمرکز بر اپلیکیشنهای Session Oriented مانند Telnet، FTP، SSH و rlogin میباشد. این حمله برای پروتکلها و سرویسهایی که بر مبنای Session کار نمی کنند مانند DNS کار نمیکند.
Sessionها را میتوان هم در ماشین اصلی و هم در ماشین مقصد به سرقت برد، بنابراین نفوذگران میتوانند تمام فرمهای احراز هویت و شبکههای خصوصی مجازی را دور بزنند. اگر ما Session را به دست بگیریم یا اصطلاحا آن را Take over نماییم، قبل از اینکه اطلاعات رمزنگاری شده و در شبکه ارسال گردد، به آنها دسترسی خواهیم داشت.
از سویی دیگر، نفوذگر میتواند در حالی که دادهها در حال انتقال داخل شبکه میباشند، یک Session را به سرقت ببرد. در ادامه به سرقت نشست در شبکه میپردازیم که با استفاده از ابزار ettercap قابل پیاده سازی میباشد.
فرض کنید که Alice از طریق شبکه با استفاده از پروتکل Telnet به سیستم Bob متصل شده است.

فردی به نام Eve هم در یک قسمت از شبکه قرار دارد که ترافیک Alice به Bob ارسال میشود. با این توضیح، Eve در یک موقعیت مناسب برای سرقت نشست قرار دارد و میتواند با استفاده از ابزارهای Session Hijacking، نشست را به سرقت ببرد و در خط فرمان خود (CMD) Session را با Bob ادامه دهد.
توجه داشته باشید که Eve با توجه به اینکه میتواند اطلاعات مبادله شده را مشاهده نماید، TCP Sequence Numberها را میداند. (برای سرقت نشست، شناسایی و به دست آوردن Sequence Numberها ضروری میباشد.). از Sequence Number های بدست آمده به همراه سناریوی Spoof یا جعل، برای ربودن نشست میتوان استفاده نمود. همچنین Eve قادر است تا پاسخهای ارسال شده توسط Bob را توسط Sniff نمودن شبکه دریافت نماید. ابزار Sniffer به صورت Built in در داخل ابزارهای Hijacking وجود دارد چراکه لازمه انجام حمله Session Hijacking، Sniff شبکه میباشد.
لازم به ذکر است در صورتی که از حراز هویت قوی (مانند توکنهای سخت افزاری) هم استفاده شده باشد و همچنین در صورتی که ترافیک رمزگذاری نشده باشد، امکان سرقت نشست در اغلب موارد وجود خواهد داشت.
Ack Storm
با توجه به انجام سناریوی پیشین، سیستمهای Alice و Bob دچار سردرگمی میشوند، به این دلیل که بستههای ارسالی آنها دارای Sequence Numberهای منظم نیست. در این حالت Alice همچنان به ارسال دوباره پیامها ادامه میدهد و به منظور پایدار نگه داشتن ارتباط، ارسال بستههای حاوی ACK در شبکه به صورت گستردهای افزایش مییابد که این موضوع موجب مصرف پهنای باند میگردد. در اصطلاح به این اتفاق، ACK Storm گفته میشود.

البته Eve هنوز هم میتواند با استفاده از آدرس جعل شده تعامل خود با Bob را حفظ کند، ولی وجود ACK Storm موجب کاهش کارایی در ارتباط میگردد زیرا Sequence Numberها دچار مشکل شده اند.
Eve میتواند با استفاده از انجام یک حمله DoS علیه Alice، مشکل به وجود آمده را برطرف نماید. البته راههایی بهتر از DoS هم برای جلوگیری از ACK Storm وجود دارد.
سرقت نشست با استفاده از ARP Cache Poisoning
برای جلوگیری از ACK Storm، نفوذگر میتواند دستگاه خود را به عنوان یک رله برای تبادل ترافیک بین Alice و Bob تنظیم نماید که این کار با استفاده از ARP Poisoning انجام میگیرد. جعل ARP موجب تخریب پروتکل ARP میشود. هنگامی که به صورت قانونی از این پروتکل استفاده میشود، ARP به سیستمها اجازه میدهد تا آدرسهای IP را به آدرسهای MAC اصطلاحا Map نمایند. هنگامی که یک سیستم قصد ارتباط با سیستم دیگری را دارد، ابتدا باید آدرس MAC مربوط به آدرس IP مورد نظر را پیدا نماید.
وقتی Alice میخواهد با Bob ارتباط برقرار کند، او ابتدا یک ARP Request را ارسال میکند تا آدرس MAC مربوط به IP سیستم Bob را تعیین نماید. سیستم Bob پاسخ این درخواست را ارسال میکند، بنابراین Alice از این پس میداند که پیامها را به کجا باید ارسال نماید. Alice این پاسخ را در حافظه ARP ذخیره مینماید.
نگرانی که در مورد پروتکل ARP وجود دارد، توانایی برای ارسال یک پیام ARP بدون احراز هویت و پرس و جو میباشد. اکثر سیستمها این پاسخ را بدون توجه به درخواست و حتی زمانی که آدرس در ARP Cache وجود داشته باشد، قبول میکنند. برای حمله ARP Spoofing، نفوذگر یک بسته ARP را به سیستم Alice ارسال میکند تا آدرس IP مربوط به Bob را با یک آدرس MAC که موجود نیست، اصطلاحا Map نماید.
به همین ترتیب نفوذگر یک بسته را به سیستم Bob نیز ارسال میکند تا آدرس IP مربوط به Alice را هم با یک آدرس MAC که وجود ندارد، Map نماید. با توجه به اینکه Eve در میان این دو قرار گرفته و در مد بی قاعده یا Promiscuous نیز میباشد، قادر است تا ترافیک بین Alice و Bob را Capture نماید.

Alice و Bob واقعی، قادر به جمع آوری داده و تبادل با یکدیگر نخواهند بود زیرا آدرس MAC مقصد برای آدرسهای این دو متعلق به آنها نیست. در این سناریو سیستم Eveدر واقع به یک رله بین Alice و Bob تبدیل میشود و اجازه میدهد برخی از ترافیکها عبور داده شده و برخی دیگر drop شوند. کاری که Eve انجام میدهد را اصطلاحا MAC Address Translation میگویند در غیر اینصورت به عنوان یک پل(Bridge) شناخته میشود ولی یک پل که تنها یک اینترفیس دارد.
توجه داشته باشید که این روش حتی اگر Alice، Bob و Eve بر روی شبکههای LAN مختلف باشند هم کار خواهد کرد. در این ساختار Eve باید روترهایی که در مسیر بین Alice و Bob وجود دارند را ARP Spoof نماید. البته Eve باید یک رله برای کلیه ترافیکهای بین روترها باشد که میتواند موجب Down شدن یا اختلال در سیستم وی شود.
Hijacking با Ettercap
ابزار Ettercap یکی از ابزارهای قدرتمند در زمینه Sniffing میباشد. این ابزار هم به صورت CLI و هم به صورت GUI ارائه شده است و بر روی سیستمهای لینوکس، FreeBSD و OpenBSD قابل اجرا میباشد. همچنین قادر به انجام حملات Active Sniffing مانند ARP Poisoning نیز میباشد.
برخی از ویژگیهای دیگر Ettercap عبارتند از :
• Active sniffing with ARP cache poisoning techniques
• Character insertion in various protocols
• Hijack support for SSHv1 in full-duplex mode
• Password collector for Telnet, FTP, POP, rlogin, SSHv1, ICQ, 5MB, MySQL, HTTP
• Passive OS fingerprinting
• Connection killing (RESETs to each side)
• Create plug-ins with a hijack API
• Wonderful language for writing filters to alter information on the fly flowing through Ettercap
• The Subterfuge framework includes several similar features (available at http://kinozoa.com(
ابزار Subterfuge
یکی از ابزارهای برجسته در حملات MITM، ابزار Subterfuge میباشد. این ابزار شامل بخشهای مختلفی مانند ابزار Dsniff است که برای حملات از آن استفاده میشود. البته این ابزار دارای رابط کاربری تحت وب نیز میباشد و همچنین از sslstrip نیز بهره میبرد.
برای دانلود این ابزار میتوان به لینک زیر مراجعه کرد:
https://github.com/Subterfuge-Framework/Subterfuge
مقابله با حملات سرقت نشست
به دلیل اینکه حمله Session Hijacking، ترکیبی از حمله sniffing به همراه Spoofing میباشد، برای مقابله با آن هم باید با این حملات مقابله نمود.
ایجاد جداول ARP استاتیک یا اصطلاحا Hard-Code شده میتواند به شما کمک نماید. در اکثر سیستمها شما میتوانید جداول ARP را در هنگام بوت شدن سیستم تنظیم نمایید تا فقط آدرسهای IP مشخص شده با آدرسهای MAC مربوط به آنها در جداول ARP قرار گیرد. این کار موجب میشود تا امکان اضافه نمودن پیامهای ARP بیگانه یا بیقاعده به جدول ARP از بین برود ولی متاسفانه چنین پیکربندی در شبکه سربار مدیریتی زیادی دارد و در هنگام هر تغییر در سیستمها باید این جداول بروزرسانی شوند.
مورد دیگر، استفاده از روشهای رمزنگاری میباشد. اگر شما ترافیک و جلسات را رمزنگاری نمایید، نفوذگر قادر به سرقت نشست نخواهد بود، زیرا کلید رمزنگاری یا رمزگشایی را در اختیار ندارد.
از پروتکلهای امن برای مدیریت زیرساختهای امنیتی خود و دستگاههای شبکه استفاده کنید. به هیچ عنوان به فایروال یا ساختارهای شبکهای دیگر Telnet نزنید و برای ارتباط از پروتکلهای ایمن مانند SSHv2 و یا ساختارهای VPN استفاده نمایید.
از پروتکلهای رمزنگاری قدرتمند استفاده نمایید.
شناسایی حملات سرقت نشست
ورودیهای ARP را با دستور arp در ویندوز مشاهده نمایید و وجود آدرسهای مشکوک را بررسی نمایید.
On windows c:> arp –a
On unix $ arp -a or arp -e
DNS Cache را برای ورودیهای مشکوک و نامتعارف بررسی کنید.
c:> ipconfig /displaydns
به دنبال پیامهای هشدار مربوط SSH Client باشید که تغییر در کلید را نمایش میدهد.
اگر شما شواهدی مبنی بر انجام حمله Session Hijacking مشاهده نمودید، در صورت فعال بودن Session ابتدا باید آن را قطع نمایید و حداقل فعالیت ممکن، تغییر کلمات عبور مربوط به حسابهای کاربری آسیب دیده است.
اگر این سیستمهای تسخیرشده مربوط به مدیران باشد، سیستم را مجدد از یک منبع مطمئن نصب نموده و وصلههای لازم را بر روی آن اعمال نمایید.