رفتن به مطلب

تمامی فعالیت ها

این جریان به طور خودکار بروزرسانی می شود

  1. دیروز
  2. جدیدا
  3. محمد

    ساخت حساب در pipl

    سلام می‌خوام توی سایت pipl حساب ایجاد کنم ولی توی صفحه login، بخش create account وجود نداره میشه بگید چطور حساب بسازم
  4. I'm Ruben, a passionate media professional based in the beautiful city of Tallinn, Estonia. With a deep love for storytelling and visual arts, I've dedicated my career to creating compelling content that resonates with audiences. Whether it's through cinema, visual storytelling, or online content, I strive to bring unique perspectives and innovative ideas to life. When I'm not immersed in the world of media, you can find me hitting the slopes. Skiing has been a lifelong passion of mine, and there's nothing quite like the thrill of carving through fresh powder. It's not just a hobby for me; it's a way to unwind, push my limits, and connect with nature. I'm always eager to meet new people, collaborate on exciting projects, and share my love for both media and winter sports. Feel free to get in touch if you have any questions, want to discuss potential collaborations, or just talk about common hobbies. Looking forward to connecting with you all! Best regards, Ruben [url=[Hidden Content] sind Forenlinks[/url]
  5. محققی امنیتی توانست با بهره‌گیری از قدرت کارت‌های گرافیک‌ قدرتمند روشی تازه برای شکستن قفل باج‌افزار بدنام آکیرا پیدا کند. روشی تازه‌کشف‌شده می‌تواند به قربانیان باج‌افزار آکیرا (Akira) امکان دهد تا بدون پرداخت باج، داده‌های رمزگذاری‌شده‌ی خود را بازیابی کنند. پژوهشگر امنیتی Tinyhack دریافته است که رمزگذاری این بدافزار را می‌توان با حمله‌ی بروت فورس (Brute Force) و استفاده از کارت‌های گرافیکی قدرتمند شکست. این فرایند با یک کارت گرافیک انویدیا RTX 4090 حدود هفت روز زمان می‌برد؛ اما درصورت استفاده از ۱۶ کارت RTX 4090، این زمان به حدود ۱۰ ساعت کاهش می‌یابد. به گزارش تامزهاردور، باج‌افزار Akira نخستین بار در سال ۲۰۲۳ شناسایی شد و معمولاً سازمان‌های مهم را هدف قرار می‌دهد. در برخی مواقع، میزان درخواست باج به ده‌ها میلیون دلار می‌رسد. در ابتدا، محققان Avast ابزاری برای رمزگشایی فایل‌های آلوده ارائه دادند؛ اما توسعه‌دهندگان Akira به‌سرعت روش‌های رمزگذاری خود را تغییر دادند تا این ابزار بی‌اثر شود. نسخه‌ی جدید آکیرا از الگوریتم‌های رمزگذاری ChaCha8 و KCipher2 استفاده می‌کند و برای هر فایل، یک کلید رمزگذاری منحصربه‌فرد براساس چهار مهر زمانی (Timestamp) در مقیاس نانوثانیه تولید می‌کند. باوجوداین، کشف جدید نشان می‌دهد که بازه‌ی احتمالی این مهرهای زمانی معمولاً در محدوده‌ای حدود پنج میلیون نانوثانیه (۰٫۰۰۵ ثانیه) قرار دارد؛ به همین دلیل، حملات بروت فورس می‌توانند کلیدهای رمزگذاری را بازیابی کنند. برای موفقیت در روش تازه‌‌ی شکستن کلید آکیرا، فایل‌های رمزگذاری‌شده نباید تغییر کنند؛ زیرا هرگونه تغییر در داده‌ها می‌تواند مهر زمانی اصلی را از بین ببرد. همچنین، اگر فایل‌ها روی ذخیره‌سازهای شبکه‌ای (NFS) ذخیره شده باشند، ممکن است تأخیرهای سرور باعث تغییراتی در مهرهای زمانی شود که فرایند رمزگشایی را دشوار می‌کند. با وجود این مشکلات، Tinyhack توانسته است فایل‌های سازمان آلوده را رمزگشایی کند. این عملیات با استفاده از چندین سرور مجهز به پردازنده‌های گرافیکی، حدود سه هفته طول کشیده است. سازمان‌هایی که تحت‌تأثیر باج‌افزار آکیرا قرار گرفته‌اند، می‌توانند با اجاره‌ی سرورهای مجهز به GPU از پلتفرم‌هایی مانند RunPod یا Vast.ai، فرایند رمزگشایی را به میزان زیادی تسریع کنند. این روش در مقایسه با به استفاده از یک کارت گرافیک، زمان رمزگشایی را کاهش چشمگیری می‌دهد. بااین‌حال، کارشناسان امنیت سایبری هشدار داده‌اند که توسعه‌دهندگان آکیرا ممکن است مانند دفعه‌ی قبل که ابزار رمزگشایی Avast منتشر شد، دوباره الگوریتم رمزگذاری خود را به‌روزرسانی و این روش را نیز بی‌اثر کنند. Tinyhack در پست وبلاگی جامع خود مراحل رمزگشایی را گام‌به‌گام توضیح می‌دهد. با وجود این روش جدید برای مقابله با آکیرا، متخصصان امنیتی همچنان تأکید می‌‌کنند که بهترین راه مقابله با باج‌افزارها پیشگیری است. این اقدامات شامل تهیه‌ی نسخه‌ی پشتیبان منظم و به‌کارگیری پروتکل‌های امنیتی قوی و نظارت مستمر بر شبکه‌های سازمانی می‌شود تا احتمال نفوذ چنین بدافزارهایی به حداقل برسد.
  6. How Engaging An SSA Disability Legal Professional Proves to Be Significant. Hiring The State Welfare Inability Counsel Becomes Necessary. The Secure Social Assistance Administers numerous initiatives from jobless coverage to economic relief, and also manages inability compensation for folks unable to perform due to ongoing medical conditions or damage. As with every single sophisticated institution, there are rules and regulations which must be abided by by the mentioned authority in order to acquire advantages. Considering hiring the Specialized advocate for Social Security Advisory Can be necessary. Hiring an skilled Social Security Disability law practitioner can aid you manage the challenges of Social Security Administration System for Senior Aid, improving your odds of endorsement for perks. They may guarantee that your proposal is registered accurately and includes corroborating medical evidence; besides, they know how to collect this evidence rapidly so it is not turned in late; in addition, they will prevent giving irrelevant data that can result in delays and rejections by the Supplemental Support for Aging. Your specialized professional in disabilities will also get you ready you for a hearing with SSA if your request is refused, by detailing what to anticipate at it and answering any of your queries about what happens there. They can support with presenting additional supporting materials and requesting the magistrate who heard your legal case to review their verdict and cross-examine witnesses or vocational authorities called by Social Security to testify on your behalf, which can increase the chance that an early disability appeal succeeds if originally denied. SSD attorneys can recoup any past due perks owing to changes in the starting date, which denotes when your state began. Skilled disability advocates will guide with recovering any past due advantages that could have been lost thanks to changes in the starting date or when your health condition began. [url=[Hidden Content] for an application for SSDI benefits involves a careful consideration of the specific health issues that make you eligible[/url] [url=[Hidden Content] Engaging a Counselor Experienced in Disability Law Is a Wise Choice[/url] 0b8e23e
  7. سرریز بافر (Buffer Overflow) چیست؟ سرریز بافر یک مشکل امنیتی و خطای برنامه نویسی است که وقتی اتفاق می افتد که یک برنامه سعی میکند دادههای بیشتری از حد ظرفیت مشخص شده در یک فضای ذخیره سازی موقت (به نام بافر) بنویسد. این اتفاق شبیه این است که یک لیوان را آنقدر پر کنید که آب از لبههای آن سرریز شود! توضیح ساده با مثال: فرض کنید یک برنامه کامپیوتری دارید که یک فیلد برای وارد کردن نام کاربری دارد. این فیلد طوری طراحی شده که فقط ۱۰ کاراکتر جای میدهد (مثل یک لیوان کوچک). حالا اگر کسی به جای ۱۰ کاراکتر، ۱۵ کاراکتر وارد کند، ۵ کاراکتر اضافی جایی میروند که نباید بروند! این داده های اضافی ممکن است به بخشهای دیگر حافظه کامپیوتر که برای کارهای مهم دیگر (مثل ذخیره پسورد یا دستورات برنامه) استفاده میشوند، نفوذ کنند. چرا خطرناک است؟ ۱. تغییر رفتار برنامه: اگر هکر بتواند داده های سرریز شده را کنترل کند، ممکن است بتواند برنامه را مجبور به اجرای کدهای مخرب کند (مثلاً باز کردن در پشتی برای دسترسی به سیستم). ۲. ازکاراندازی سرویس: سرریز بافر میتواند باعث کرش کردن برنامه یا سیستم شود. ۳. دسترسی غیرمجاز: در بدترین حالت، هکرها از این آسیب پذیری برای نفوذ به سرورها، سرقت اطلاعات، یا انتشار بدافزار استفاده میکنند. چطور اتفاق میافتد؟ برنامهنویسان گاهی فراموش میکنند محدودیت اندازه دادهها را بررسی کنند. زبانهای برنامهنویسی مثل C یا C++ که کنترل کاملی روی حافظه دارند، بیشتر در معرض این خطا هستند. مثال معروف: بسیاری از ویروسها و کرمهای کامپیوتری قدیمی (مثل کرم موریس در سال ۱۹۸۸) از همین آسیب پذیری استفاده می کردند. چگونه جلوگیری کنیم؟ ۱. بررسی اندازه داده ها: قبل از نوشتن داده در بافر، مطمئن شوید اندازه آن از حد مجاز بیشتر نباشد. ۲. استفاده از زبانهای امنتر: زبانهایی مانند Python یا Java به صورت خودکار از سرریز بافر جلوگیری میکنند. ۳. ابزارهای محافظتی: Stack Canaries: قطعه داده هایی که تغییر غیرمنتظره آنها هشدار می دهد. ASLR: تصادفی سازی آدرس حافظه برای سخت تر کردن نفوذ. DEP: جلوگیری از اجرای کد در بخشهای غیر مجاز حافظه. جمعبندی سرریز بافر مثل پرکردن بیش از حد یک لیوان است! اگر برنامه نویسان مراقب نباشند، این خطای ساده میتواند به مجرمان سایبری اجازه دهد کنترل سیستم را بدست بگیرند. با رعایت اصول کدنویسی ایمن و استفاده از تکنیکهای محافظتی، میتوان از آن جلوگیری کرد. اهمیت درک سرریز بافر (Buffer Overflow) به عنوان یک آسیب‌پذیری امنیتی درک سرریز بافر به عنوان یک آسیب‌پذیری امنیتی نه تنها برای توسعه‌دهندگان، بلکه برای تمام فعالان حوزه امنیت سایبری ضروری است. این آسیب‌پذیری یکی از قدیمی‌ترین و خطرناک‌ترین مشکلات امنیتی است که هنوز هم در سیستم‌های مدرن مشاهده می‌شود. در زیر دلایل اصلی اهمیت این موضوع بررسی می‌شود: ۱. تاریخچه طولانی و تاثیر گسترده سرریز بافر از دهه ۱۹۸۰ تا امروز به عنوان یک نقطه ضعف کلیدی در حملات سایبری استفاده شده است. مثال تاریخی: کرم موریس در سال ۱۹۸۸ که با سوءاستفاده از این آسیب‌پذیری، ۱۰% از سیستم‌های متصل به اینترنت را آلوده کرد. حتی در سال‌های اخیر، آسیب‌پذیری‌هایی مثل Heartbleed (۲۰۱۴) یا EternalBlue (۲۰۱۷) از مکانیزم‌های مشابه استفاده کرده‌اند. نتیجه: آشنایی با این آسیب‌پذیری کمک می‌کند الگوهای حملات قدیمی و جدید را تشخیص دهید. ۲. پتانسیل تخریب بالا سرریز بافر به هکرها اجازه می‌دهد: کدهای مخرب را اجرا کنند (مثلاً باز کردن دسترسی از راه دور). برنامه یا سیستم را کرش کنند (مانند حملات DOS). داده‌های حساس (مانند پسوردها یا اطلاعات بانکی) را سرقت کنند. مثال: یک سرریز بافر در یک سرور وب می‌تواند به هکر اجازه دهد کل سیستم را کنترل کند. ۳. شیوع در زبان‌ها و سیستم‌های پراستفاده زبان‌های C و C++ به دلیل دسترسی مستقیم به حافظه، بیشتر در معرض این آسیب‌پذیری هستند. سیستم‌هایی که با این زبان‌ها نوشته شده‌اند (مثل سیستمعامل‌ها، مرورگرها، برنامه‌های Embedded) هنوز هم ممکن است حاوی چنین خطاهایی باشند. حتی برنامه‌های مدرن (مثل بازی‌ها یا نرم‌افزارهای سازمانی) می‌توانند به دلیل کدنویسی ضعیف آسیب‌پذیر باشند. نتیجه: تا زمانی که سیستم‌های Legacy یا کدهای قدیمی استفاده می‌شوند، سرریز بافر یک تهدید زنده است. ۴. پایه‌ای برای یادگیری امنیت سایبری درک سرریز بافر به شما کمک می‌کند مفاهیم زیر را عمیقاً بفهمید: نحوه کارکرد حافظه کامپیوتر (Stack، Heap، و غیره). تفاوت بین زبان‌های مدیریت حافظه (مانند Rust) و زبان‌های Unmanaged (مانند C). مکانیزم‌های محافظتی مثل ASLR، DEP، و Stack Canaries. این مفاهیم برای تحلیل سایر آسیب‌پذیری‌ها (مثل SQL Injection یا ROP Attacks) نیز ضروری هستند. ۵. ضرورت پیشگیری و رفع آسیب‌پذیری توسعه‌دهندگان با یادگیری سرریز بافر می‌توانند: از توابع ناامن (مثل strcpy در C) اجتناب کنند. از توابع ایمن (مثل strcpy با بررسی طول) استفاده کنند. ابزارهای تحلیل کد (مثل Valgrind یا AddressSanitizer) را به کار گیرند. سازمان‌ها نیز با آموزش تیم‌های خود، ریسک حملات را کاهش می‌دهند. ۶. جلوگیری از حملات زنجیره‌ای بسیاری از حملات پیشرفته (مثل APTها یا حملات روز صفر) ترکیبی از چندین آسیب‌پذیری هستند. سرریز بافر اغلب به عنوان اولین قدم برای دسترسی به سیستم استفاده می‌شود. مثلاً هکر ابتدا با سرریز بافر کنترل بخشی از حافظه را می‌گیرد، سپس از تکنیک‌هایی مانند ROP برای اجرای کد مخرب استفاده می‌کند. ۷. اهمیت در آزمون‌های نفوذ تسترهای نفوذ و هکرهای اخلاقی (Ethical Hackers) باید بتوانند سرریز بافر را شناسایی و شبیه‌سازی کنند. ابزارهایی مثل Metasploit یا Immunity Debugger برای اکسپلویت کردن این آسیب‌پذیری طراحی شده‌اند. آزمون‌های موسسه‌هایی مانند OSCP نیز بر شناسایی چنین آسیب‌پذیری‌هایی تمرکز دارند. ۸. تاثیر بر قوانین امنیتی استانداردهایی مانند CWE (Common Weakness Enumeration) سرریز بافر را در رده CWE-120 به عنوان یک نقطه ضعف بحرانی فهرست می‌کنند. سازمان‌ها برای رعایت مقرراتی مثل GDPR یا ISO 27001 موظفند چنین آسیب‌پذیری‌هایی را برطرف کنند. جمع‌بندی نهایی سرریز بافر تنها یک «خطای برنامه نویسی» ساده نیست، بلکه یک گره امنیتی حیاتی است که در صورت نادیده گرفتن، می‌تواند به فاجعه منجر شود. درک این مفهوم: به توسعه‌دهندگان کمک می‌کند کدهای امن‌تری بنویسند. به مدافعان امنیت سایبری اجازه می‌دهد حملات را پیش‌بینی و خنثی کنند. به سازمان‌ها در جلوگیری از زیان‌های مالی و اعتباری کمک می‌کند. جلوگیری از تاثیرات منفی برای کاهش خسارت‌های سرریز بافر: ۱. استفاده از زبان‌های ایمن (مثل Rust یا Python) که مدیریت حافظه خودکار دارند. ۲. فعال‌سازی مکانیزم‌های دفاعی: ASLR (تصادفی‌سازی آدرس حافظه). DEP (جلوگیری از اجرای کد در حافظه داده). Stack Canaries (شناسایی تغییرات غیرمجاز در Stack). ۳. بررسی منظم کد با ابزارهای تحلیل استاتیک (Static Analysis). ۴. آزمون نفوذپذیری (Penetration Testing) برای شناسایی آسیب‌پذیری‌ها. نتیجه‌گیری سرریز بافر تنها یک خطای فنی نیست، بلکه یک تهدید امنیتی چندوجهی است که می‌تواند امنیت داده‌ها، حریم خصوصی، و حتی جان انسان‌ها را به خطر بیاندازد. درک عمیق این آسیب‌پذیری و پیاده‌سازی راهکارهای پیشگیرانه، برای تمام سازمان‌ها و توسعه‌دهندگان ضروری است. 😊 حافظه و پشته (Stack) ساختار حافظه: در سیستم‌های کامپیوتری، حافظه به بخش‌های مختلفی تقسیم می‌شود که هر کدام کارکرد خاصی دارند: کد (Text Segment): شامل کد برنامه اجرایی است. این بخش فقط خواندنی است و حافظت‌هایی در برابر نوشتن روی آن وجود دارد. داده (Data Segment): برای ذخیره متغیرهای سراسری (global) و داده‌های مقداردهی شده استفاده می‌شود. پشته (Stack): برای ذخیره اطالاعات محلی توابع، آرگومان‌ها و آدرس بازگشت استفاده می‌شود. در پشته، آخرین داده‌ای که افزوده شده، اولین داده‌ای است که حذف می‌شود (LIFO). هیپ (Heap): برای تخصیص حافظه‌ی پویا در طول اجرای برنامه استفاده می‌شود. مدیریت حافظه در این بخش باید به صورت صریح توسط برنامه‌نویس انجام شود. پشته و نحوه عملکرد آن (LIFO): پشته براساس اصل Last In, First Out عمل می‌کند. در اکثر زبان‌های برنامه‌نویسی، مانند C و C++، وقتی یک تابع فراخوانی می‌شود، فضای لازم برای متغیرهای محلی و آدرس بازگشت در پشته تخصیص داده می‌شود. نقش پشته در فراخوانی توابع: پشته نقش مهمی در فراخوانی توابع ایفا می‌کند. هنگام فراخوانی یک تابع: آرگومان‌ها و آدرس بازگشت تابع در پشته ذخیره می‌شود. پس از بازگشت از تابع، آدرس بازگشت خوانده شده و برنامه به آنجا ادامه پیدا می‌کند. متغیرها و بافرها تعریف متغیرها و بافرها: متغیر: در برنامه‌نویسی، متغیرها مکان‌هایی در حافظه هستند که برای ذخیره داده‌ها تعریف می‌شوند. بافر: نوعی آرایه یا بلوک حافظه است که برای ذخیره داده‌ها در هنگام انتقال میان دو فرآیند یا بین بخش‌های مختلف یک برنامه استفاده می‌شود. نحوه ذخیره داده‌ها در بافرها و اهمیت اندازه بافر: بافر‌ها به صورت متوالی در حافظه ذخیره می‌شوند و در صورت استفاده ناصحیح، ممکن است منجر به مشکلاتی مانند “Buffer Overflow” شوند. اگر ورودی بافر‌ها به درستی کنترل نشود، می‌تواند باعث مشکلات امنیتی جدی شود. نحوه فراخوانی توابع و بازگشت آدرس نحوه فراخوانی توابع در C/C++: هنگام فراخوانی تابع، آدرس دستور بعدی در پشته ذخیره می‌شود تا برنامه پس از اجرای تابع به این دستور برگردد. این مکان با استفاده از آدرس بازگشت مدیریت می‌شود. نقش پشته در ذخیره آدرس بازگشت: هر بار که تابعی فراخوانی می‌شود، آدرس بازگشت در پشته ذخیره می‌شود. اگر این آدرس دچار تغییر شود (مانند حالتی که در حملات امنیتی رخ می‌دهد)، می‌تواند جریان اجرای برنامه را به یک مسیر غیرمنتظره ببرد. #include <stdio.h> #include <string.h> void vulnerableFunction(char *input) { char buffer[10]; strcpy(buffer, input); // بدون بررسی اندازه ورودی، ورودی را درون بافر کپی می‌کند printf("Input received: %s\n", buffer); } int main() { char userInput[100]; printf("Enter something: "); gets(userInput); // دریافت ورودی از کاربر vulnerableFunction(userInput); return 0; } نکات مهم: در تابع vulnerableFunction، تابع strcpy مستقیماً از ورودی کاربر استفاده کرده و آن را به buffer کپی می‌کند. اگر ورودی بزرگتر از اندازه بافر باشد، باعث “Buffer Overflow” می‌شود. استفاده از gets خطرناک است زیرا هیچ کنترلی بر روی اندازه ورودی ندارد. معرفی محافظت‌های رایج Stack Canaries: مقادیر خاصی که بین بافر و آدرس بازگشت قرار می‌گیرند. اگر این مقدار تغییر کند، سیستم از وقوع “Buffer Overflow” آگاه می‌شود. Address Space Layout Randomization (ASLR): مکان‌های خاصی از حافظه را در هر اجرا تغییر می‌دهد تا بهره‌برداری از آسیب‌پذیری‌ها دشوارتر شود. Data Execution Prevention (DEP/NX): جلوگیری از اجرای کد در بخش‌هایی از حافظه که فقط برای داده‌ها تعیین شده‌اند. نحوه دور زدن محافظت‌ها (به صورت مختصر) شامل تکنیک‌های پیچیده‌ای مانند Return-Oriented Programming (ROP) است. این روش به بهره‌برداران اجازه می‌دهد که با استفاده از توابع موجود در باینری و بدون اجرای مستقیم کد مخرب، سیستم را به نیات خود هدایت کنند. استفاده از توابع امن مانند strncpy به جای strcpy. همواره اندازه ورودی‌ها را بررسی کرده و از توابعی که به صورت پیشفرض امن نیستند، با احتیاط استفاده کنید. از روش‌های استاندارد برای مدیریت حافظه و محافظت از برنامه‌ها در برابر آسیب‌پذیری‌ها بهره ببرید، مانند استفاده از پشته‌های محافظت شده و ارزیابی دقیق کد #include <stdio.h> #include <string.h> void vulnerableFunction(const char *input) { char buffer[5]; strcpy(buffer, input); printf("Received: %s\n", buffer); } int main() { char userInput[20]; printf("Enter input: "); gets(userInput); vulnerableFunction(userInput); return 0; } تابع gets ورودی بیش از حد مجاز دریافت می‌کند. تابع strcpy ورودی را بدون بررسی به buffer منتقل می‌کند. تغییرات منجر به خرابی یا اجرای کد دلخواه می‌شود. gdb -q ./vulnerable (gdb) run > Enter a long input: AAAAAAAAAAAAAAAAAAA > Received: AAAAAAAAA می‌توان مشاهده کرد که چگونه ورودی طولانی، باعث تغییر آدرس‌ها در پشته می‌شود. مثال توابع امن: استفاده صحیح از strncpy به جای strcpy: char safeBuffer[10]; strncpy(safeBuffer, inputString, sizeof(safeBuffer) - 1); safeBuffer[sizeof(safeBuffer) - 1] = '\0'; // اطمینان از صحیح‌بودن پایان رشته کد نهایی عملی 🫡 /** * vulnerable.c * یک برنامه نمونه برای نمایش سرریز بافر و اکسپلویت آن * کامپایل با دستور زیر (محیط لینوکس ۳۲ بیتی): * gcc -m32 -fno-stack-protector -z execstack -no-pie -o vulnerable vulnerable.c */ #include <stdio.h> #include <string.h> // تابع مخرب هدف برای تغییر جریان اجرا void hacked() { printf("\033[1;31m[!] سیستم شما هک شد!\033[0m\n"); printf("\033[1;32m[*] کاراکترهای مخرب اجرا شدند!\033[0m\n"); // اینجا می‌توانید Shellcode جایگزین قرار دهید } // تابع آسیب‌پذیر به سرریز بافر void vulnerable_function() { char buffer[12]; // بافر با ظرفیت ۱۲ بایت printf("آدرس تابع hacked(): %p\n", hacked); // چاپ آدرس جهت کمک به اکسپلویت strcpy(buffer, "مقدار اولیه"); // مقداردهی اولیه بی‌خطر printf("ورودی خود را وارد کنید: "); gets(buffer); // نقطه آسیب‌پذیر: دریافت داده بدون بررسی اندازه printf("ورودی دریافتی: %s\n", buffer); } int main() { vulnerable_function(); printf("برنامه عادی خاتمه یافت.\n"); return 0; } 🛡️ نسخه ایمن‌سازی شده همان کد #include <stdio.h> #include <string.h> void vulnerable_function_safe() { char buffer[12]; printf("ورودی ایمن وارد کنید: "); // استفاده از fgets به جای gets با محدودیت اندازه if (fgets(buffer, sizeof(buffer), stdin) == NULL) { printf("خطا در دریافت ورودی!\n"); return; } // حذف کاراکتر newline (اختیاری) buffer[strcspn(buffer, "\n")] = '\0'; printf("ورودی دریافتی: %s\n", buffer); } int main() { vulnerable_function_safe(); printf("برنامه ایمن خاتمه یافت.\n"); return 0; } لینک ویدیو یوتیوب این مقاله 🧐
  8. اموزش wpa/wpa 2 بدون پسورد لیست رو میشه بذارید.
  9. Perfect
  10. تشخیص سیستم‌عامل با Nmap - بررسی عملی و کامل یکی از ویژگی‌های شناخته‌شده و بسیار کاربردی ابزار Nmap، قابلیت تشخیص سیستم‌عامل (OS Detection) است که به کاربران کمک می‌کند سیستم‌عامل‌ها را از طریق تحلیل پروتکل TCP/IP و ویژگی‌های شبکه‌ای شناسایی کنند. این قابلیت برای مدیران شبکه، متخصصین امنیت سایبری، و حتی تست‌کنندگان نفوذ یک ابزار بسیار ارزشمند است. در ادامه به بررسی اینکه چگونه این قابلیت کار می‌کند و چگونه می‌توان از آن به‌صورت عملی استفاده کرد، می‌پردازیم. OS Detection چیست و چگونه کار می‌کند؟ تشخیص سیستم‌عامل در Nmap با استفاده از فرآیند “TCP/IP stack fingerprinting” انجام می‌شود. در این فرآیند، Nmap مجموعه‌ای از بسته‌های TCP و UDP را به هدف ارسال می‌کند و واکنش سیستم هدف را بررسی می‌کند. هر سیستم عامل رفتار خاصی در ارتباط با این بسته‌ها دارد که بر اساس آن می‌توان نوع سیستم‌عامل را از پایگاه داده Nmap شناسایی کرد. این رفتارها شامل موارد زیر هستند: نحوه پاسخ‌دهی به بسته‌های TCP SYN یا ACK. تنظیمات TTL (Time-To-Live) در بسته‌ها. تفاوت در اندازه پنجره‌ها (Window Size) و گزینه‌های پروتکل TCP. تحلیل پاسخ‌ها به بسته‌های خاص مانند ICMP. روش اصلی استفاده‌شده در Nmap برای تشخیص سیستم‌عامل، “TCP/IP stack fingerprinting” یا اثر انگشت شبکه TCP/IP است. این روش به این صورت انجام می‌شود که Nmap دسته‌ای از بسته‌های شبکه‌ای را طراحی و ارسال می‌کند. این بسته‌ها به نحوی طراحی شده‌اند که شناخت رفتاری دقیق از سیستم هدف ایجاد کنند. سپس، با تحلیل پاسخ‌هایی که سیستم هدف به این درخواست‌ها می‌دهد، Nmap اطلاعات دریافت‌شده را با پایگاه داده‌ای از اثر انگشت‌های موجود مقایسه می‌کند و سیستم‌عامل را شناسایی می‌کند. برخی از ویژگی‌های بررسی‌شده عبارت‌اند از: تنظیمات TTL (Time-to-Live): مقدار TTL بسته‌ها می‌تواند ویژگی خاصی از سیستم‌عامل باشد. اندازه پنجره TCP (TCP Window Size): هر سیستم‌عامل پاسخی با اندازه خاص در این زمینه ارائه می‌دهد که می‌تواند برای شناسایی استفاده شود. پاسخ به فلگ‌ها و بسته‌های غیرمعمول: نحوه برخورد سیستم‌عامل با بسته‌های خاص نظیر FIN یا Null کاملاً به آن سیستم‌عامل وابسته است. 2. تشخیص غیرفعال (Passive OS Detection) Nmap علاوه بر تشخیص فعال، قابلیت تشخیص غیرفعال سیستم‌عامل (Passive OS Detection) را نیز ارائه می‌دهد. این نوع تشخیص از طریق نظارت بر ترافیک شبکه‌ای موجود انجام می‌شود. به عبارت دیگر، بدون ارسال بسته‌های جدید، تحلیل اطلاعاتی که قبلاً در شبکه وجود دارد برای شناسایی سیستم‌عامل کافی است. این روش برای سناریوهایی که نیاز به پنهان‌کاری یا جلوگیری از شناسایی توسط سیستم‌های امنیتی (مانند فایروال‌ها و IDSها) دارند، کاربرد دارد. Passive OS Detection در Nmap به‌طور مستقل قابل‌اجرا نیست، اما توسط ابزار مکملی نظیر Wireshark می‌توان آن را انجام داد. شروع با Nmap برای تشخیص سیستم‌عامل برای تشخیص سیستم‌عامل در یک هدف، کافی است از سوئیچ -O همراه با دستور اسکن استفاده کنید. یک مثال ساده: nmap -O <IP-Target> توضیح عملکرد: در این دستور، Nmap با ارسال بسته‌های TCP و UDP به هدف تلاش می‌کند سیستم‌عاملی که در حال اجراست را با استفاده از تطبیق با پایگاه داده خود شناسایی کند. پایگاه داده‌ای که Nmap از آن برای تطبیق استفاده می‌کند، شامل هزاران اثر انگشت شناخته‌شده از سیستم‌عامل‌های مختلف است. اطلاعات خروجی: سیستم‌عامل شناسایی‌شده (نام و نسخه آن). احتمال سازگاری با چند سیستم‌عامل مشابه (در صورت عدم تطبیق قطعی). جزئیاتی از دیگر مشخصات هدف. نکات مهم در استفاده اگر سیستم‌عامل به‌درستی تشخیص داده نشود، Nmap ممکن است عباراتی با احتمال را نمایش دهد (مانند “No exact OS matches found”). برخی اوقات، سیستم‌ها ممکن است تنظیماتی داشته باشند که مانع تشخیص سیستم‌عامل شوند (مثل فایروال‌ها یا بسته‌های مسدودشده). تکنیک‌های پیشرفته در تشخیص سیستم‌عامل ۱. افزایش دقت با --osscan-guess در صورتی که Nmap به اطلاعات کافی برای شناسایی قطعی سیستم‌عامل دسترسی نداشته باشد، می‌توانید از گزینه‌ --osscan-guess استفاده کنید: nmap -O --osscan-guess <IP-Target> این گزینه باعث می‌شود که Nmap تلاش بیشتری برای تطبیق سیستم‌عامل انجام دهد و حتی گزینه‌های احتمالی بیشتری را ارائه دهد. ۲. ترکیب با اسکن سرویس‌ها و نسخه‌ها برای جمع‌آوری اطلاعات جامع‌تر، از گزینه -A استفاده کنید. این گزینه نه‌تنها سیستم‌عامل را شناسایی می‌کند، بلکه اطلاعات کاملی از نسخه سرویس‌ها و اسکریپت‌های موجود ارائه می‌دهد: nmap -A <IP-Target> مزایا: کسب اطلاعات درباره خدمات در حال اجرا بر روی پورت‌ها. به‌دست آوردن جزئیات بیشتر برای تحلیل‌های امنیتی. ۳. مقابله با فایروال‌ها و موانع شبکه‌ای برخی از دستگاه‌ها به دلیل تنظیمات امنیتی ممکن است به‌طور پیش‌فرض مانع از تشخیص سیستم‌عامل شوند. در چنین مواردی می‌توانید از تکنیک‌های زیر استفاده کنید: Timing Scan: تنظیم سرعت اسکن با استفاده از سوئیچ‌های -T0 تا -T5. Stealth Scanning: استفاده از اسکن‌های پنهان (مانند -sS) که امکان تشخیص توسط فایروال را کاهش می‌دهد. نمایش جزییات کامل: افزایش سطح خروجی Verbose با استفاده از پرچم -v یا -vv کمک می‌کند شما جزئیاتی بیشتر از فرایند تشخیص را مشاهده کنید: nmap -O -vv <Target-IP> محقق کردن دقت بالاتر در OS Detection ترکیب تکنیک‌های مختلف: برای دستیابی به دقت بالاتر در شناسایی سیستم‌عامل، می‌توانید ترکیب تکنیک‌های زیر را استفاده کنید: تنظیم دقیق تایمینگ اسکن: اگر هدف دارای فایروال‌ها یا مانع‌های شبکه‌ای باشد، می‌توانید حالت‌های زمان‌بندی را تغییر دهید: -T0 برای اسکن بسیار آهسته و مخفی. -T4 برای اسکن سریع‌تر در شبکه‌های قابل‌اعتماد. استفاده از فلگ‌های پنهانی: برای کاهش ریسک شناسایی، گزینه‌هایی مانند -sS (اسکن مخفی SYN) بسیار کاربردی هستند. محدودیت‌ها و چالش‌ها در برخی موارد، فایروال‌ها یا تنظیمات امنیتی می‌توانند بسته‌های ارسالی از Nmap را فیلتر کنند و دقت اسکن را کاهش دهند. دستگاه‌هایی که مخصوصاً برای مقابله با اسکن‌ها طراحی شده‌اند، ممکن است اطلاعات نادرست ارسال کنند. همیشه قبل از انجام اسکن، مجوز قانونی هدف را دریافت کنید. اسکن بدون مجوز می‌تواند غیرقانونی باشد. سناریوهای عملی استفاده از تشخیص سیستم‌عامل مثال 1: شناسایی سیستم‌عامل در شبکه داخلی یک سازمان مدیر شبکه می‌تواند با استفاده از Nmap کل شبکه را تحلیل کرده و به راحتی دستگاه‌هایی که با سیستم‌عامل‌های غیرمجاز (مانند سیستم‌عامل‌های منسوخ‌شده یا ناامن) کار می‌کنند، شناسایی کند: nmap -O 192.168.1.0/24 مثال 2: بررسی آسیب‌پذیری‌ها بر اساس سیستم‌عامل پس از تشخیص سیستم‌عامل، می‌توان از ابزارهای دیگر برای پیدا کردن آسیب‌پذیری‌های مرتبط با نسخه خاص سیستم‌عامل استفاده کرد. مثال 3: پیش‌نیاز برای تست نفوذ تیمی که روی شبکه یک سازمان تست نفوذ انجام می‌دهد، از طریق تشخیص سیستم‌عامل می‌توانند مشخص کنند چه آسیب‌پذیری‌هایی در سیستم قابل بهره‌برداری هستند. نتیجه‌گیری تشخیص سیستم‌عامل یکی از قدرتمندترین ویژگی‌های Nmap است که با استفاده صحیح از آن می‌توانید اطلاعاتی بسیار دقیق از هدف جمع‌آوری کنید. این قابلیت نه‌تنها برای تست نفوذ، بلکه برای مدیریت شبکه و ارزیابی آسیب‌پذیری‌ها بسیار سودمند است. برای اطلاعات بیشتر و مثال‌های دقیق، می‌توانید به منابع رسمی Nmap مراجعه کنید: OS Detection | Nmap Network Scanning Usage and Examples | Nmap Network Scanning
  1. نمایش فعالیت های بیشتر
×
×
  • ایجاد مورد جدید...