هک = برنامه‌نویسی + سیستم‌عامل + شبکه


Channel's geo and language: not specified, not specified
Category: not specified


مقاله و فیلم آموزش مدیریت و برنامه‌نویسی سیستم‌های عامل، شبکه و امنیت اطلاعات.
مقالات کانال در سایت زیر نیز قرار می‌گیرند:
dblog.ir
ویدئوهای کانال در آپارات:
https://www.aparat.com/oxaa55
ارتباط با مدیر کانال از طریق:
@akj67

Related channels  |  Similar channels

Channel's geo and language
not specified, not specified
Category
not specified
Statistics
Posts filter


بزرگترین خرید نرم‌افزاری دنیا با خرید Redhat توسط IBM

پست امروزم فنی نیست ولی به دلیل اینکه خبر جالبی بود تصمیم گرفتم در موردش مطلب کوتاهی منتشر کنم. دیروز به یک مطلب در مورد خرید شرکت Redhat توسط IBM با رقم 34میلیارد دلار معادل ۱۹۰دلار به ازای هر سهم و اون‌هم به صورت نقدی بر‌خوردم. این خرید بزرگترین خرید در زمینه‌ی نرم‌افزار می‌باشد که خریدن LinkedIn توسط مایکروسافت به مبلغ 26.2میلیارد دلار را پشت‌سر گذاشته و سومین خرید در زمینه‌ی تکنولوژی در تاریخ است که البته هنوز تا مبلغ 64میلیارد دلار برای خریدن EMC توسط Dell راه زیادی دارد. شرکت Redhat بیشتر به دلیل توزیع لینوکس Enterprise خود شناخته شده است که بسیاری از سرورهای دنیا یا از این نسخه‌ و یا از نسخه‌های دیگری که از آن مشتق شده‌اند مثل OracleLinux, CentOs استفاده می‌کنند (البته این عنوان بیشتر به دلیل استفاده از روش مدیریت بسته‌ی Redhat Package Manager یا RPM است وگرنه کرنل این لینوکس‌ها به صورت جداگانه با تغییر کرنل Vanilla توسعه داده می‌شود). توزیع لینوکس Readhat تنها بخش کوچکی از محصولات آن بوده و این شرکت محصولات تجاری، متن‌باز و مجانی زیادی دارد که از این بین می‌توان به JBoss Web Platform که برای توسعه و انتشار محصولات تحت وب بوده و همچنین OpenShift Platform که برای شبکه‌های ابری و Containerها است اشاره نمود.
یکی از مهم‌ترین دلایل خرید Redhat بازگشت IBM به دنیای محصولات Enterprise و فعالیت در زمینه‌ی بازار پر رونق شبکه‌های ابری عنوان شده است که به دلیل تمرکز بر روی هوش مصنوعی (با توسعه‌ی Watson) و همچنین Blockchain چندسالی از آن فاصله گرفته بود.

http://telegram.me/OxAA55


آشنایی با مسابقات امنیتی Capture The Flag

مسابقات CTF حاوی سوالاتی در زمینه‌های مختلف امنیت اطلاعات بوده و در هر سوال پس از نفوذ به یک سیستم، مهندسی معکوس یک نرم‌افزار یا پیدا کردن یک آسیب‌پذیری و استفاده از آن، عبارتی به عنوان flag دریافت شده و به عنوان پاسخ سوال ارسال می‌شود. مباحثی که از آن‌ها سوال داده می‌شود معمولا در زمینه‌های زیر هستند:
۱) مبحث Binary Exploit: پیدا کردن مشکل در یک برنامه (مثل buffer overflow یا Format String)‌ و استفاده از آن برای دسترسی به یک shell که از طریق setuid امکان دسترسی به فایل حاوی flag وجود خواهد داشت.
۲) مبحث Reverse Engineering: یافتن طرز کار و دور زدن منطق برنامه برای بدست آوردن flag
۳) مبحث Cryptography: مسائل مربوط به رمزنگاری و decrypt کردن عبارت flag
۴) مبحث Computer Forensics: پیدا کردن flag از روی ترافیک شبکه، Memory Dump یا کپی دیسک‌ها
۵) مبحث Web: کشف آسیب پذیری و نفوذ در برنامه‌های تحت وب برای بدست آوردن flag
۶) مبحث Pen Testing: نفوذ به سیستم‌های تحت شبکه و بدست آوردن flag از روی سیستم مورد نظر
۷) مبحث Steganography: پیدا کردن flag از روی تصاویر کد شده

به عنوان یک مثال، سوالی ساده از مبحث رمزنگاری مسابقه‌ی picoCTF-2018 (که البته هنوز در حال اجرا می‌باشد!!!) را بررسی می‌کنیم. در این سوال عبارت {!cvpbPGS{guvf_vf_pelcgb داده شده که با توجه به شکل flagهای این مسابقه که همگی با عبارت picoCTF شروع می‌شوند، متوجه می‌شویم که این سوال در مورد روش قدیمی رمزنگاری است که به صورت جایگزینی عمل کرده و هر حرف، معادلی به عنوان کلید دارد. با قرار داده picoCTF معادل ۷ کاراکتر اول عبارت رمزشده، مشخص است که c=p v=i b=o g=t s=f در این عبارت برقرار بوده و باید معادل مابقی کاراکترها تشخیص داده شود تا flag بدست آید. برای انجام اینکار می‌توان تمامی حالات را با یک برنامه‌ی ساده بررسی کرده و یا اینکه از یک سایت مثل https://quipqiup.com برای اینکار استفاده کرد. در نهایت {!picoCTF{this_is_crypto به عنوان flag بدست خواهد آمد.
در آینده، سوالات بیشتری از این مسابقات را در زمینه‌های مختلف بررسی خواهیم نمود. البته بررسی picoCTF-2018 بماند بعد از اتمام مسابقه!!!

http://telegram.me/OxAA55


معرفی آسیب پذیری CVE-2018-14619 کرنل لینوکس

این آسیب پذیری که توسط تیم تحقیقاتی Redhat کشف شده و ابتدا به صورت یک باگ گزارش شده، باعث می‌شود که کاربر عادی امکان استفاده از Privilege Escalation را داشته و دسترسی root را بدست آورد. همانطور که می‌دانید در لینوکس کاربر root‌ مدیر سیستم بوده و امکان اعمال هرگونه تغییری در سیستم را دارد ولی مابقی کاربران تنها زمانی می‌توانند تغییرات اساسی مثل نصب نرم‌افزار یا تغییر در سرویس‌ها ایجاد کنند که به کمک فایل sudoers مجوز اجرای دستورات مشخصی به آن‌ها داده شده و یا عضور گروه sudo باشند که امکان اجرای تمامی دستورات تحت مجوز root با وارد کردن رمز عبور خود را خواهند داشت. برخی از آسیب پذیری‌ها در دسته‌ی Privilege Escalation قرار می‌گیرند، به این معنی که برای یک کاربر عادی و بدون اینکه عضو sudoers باشد، امکان دسترسی root فراهم می‌شود. برخی از این آسیب‌پذیری‌ها به صورت Remote و تحت شبکه قابل اجرا شدن بوده و برخی دیگر تنها به کاربرانی که مستقیم بر روی سیستم login می‌کنند این امکان را می‌دهند. CVE-2018-14619 یک آسیب پذیری محلی بوده و برای استفاده از آن باید یک کاربر عادی بر روی سیستم login شده و از آن استفاده کند. این اسیب‌پذیری در زیر سیستم Crypto (مربوط به رمزنگاری) وجود داشته و تمامی نسخه‌های کرنل لینوکس تا 4.15-rc3 این آسیب‌پذیری را دارند. مشکل به این صورت است که یک تابع از زیر سیستم Crypto آزاد کردن حافظه را به درستی انجام نداده (null skcipher in the wrong place) و باعث تخریب بخشی از حافظه می‌شود که منجر به PE خواهد شد. در حال حاضر PoC (Proof of Concept) یعنی کدی که امکان exploit کردن این مشکل و تست آنرا فراهم می‌کند به صورت مجانی وجود نداشته و به دلیل Critical بودن این آسیب پذیری بین ۵ تا ۲۵ هزار دلار به فروش می‌سد!!!

http://telegram.me/OxAA55




یکی از ابزارهای قدرتمند در #debug کردن برنامه‌ها #gdb است. در این ویدئو با این ابزار آشنا شده و یک برنامه‌ی ساده را در محیط آن بررسی می‌کنیم. در خلال این بررسی با نحوه‌ی تعریف #breakpoint ، اجرای خط به خط برنامه و مشاهده و تغییر متغیرها در محیط gdb آشنا خواهیم شد.

https://www.aparat.com/v/bkGuK
========
http://telegram.me/OxAA55/49
آموزش کار با gdb - قسمت اول
یکی از ابزارهای قدرتمند در debug کردن برنامه های gdb است. در این ویدئو با این ابزار آشنا شده و یک برنامه ی ساده را در محیط آن بررسی می کنیم. در خلال این بررسی با نحوه ی تعریف breakpoint ، اجرای خط به خط برنامه و مشاهده و تغییر متغیرها در محیط gdb آشنا خواهیم شد.


Video is unavailable for watching
Show in Telegram
آموزش کار با #gdb - قسمت اول

========
http://telegram.me/OxAA55


مبحث #Forensics به بررسی اطلاعات بخش‌های مختلف کامپیوتر از جمله Memory, Network, Disk و حتی بررسی اطلاعات استخراج شده از نرم‌افزارهای مختلف مثل ایمیل برای کسب ردپای نرم‌افزارهای مخرب، جرائم رایانه‌ای و نفوذ به سیستم‌ها می‌پردازد. در این ویدئو به مبحث #MemoryForensics و کسب اطلاعات از طریق رم پرداخته و با ابزاری به اسم #Volatility که برای پردازش فایل‌های #MemoryDump که کپی کلیه‌ی اطلاعات موجود در رم در زمان اجرای سیستم‌عامل می‌باشد، آشنا می‌شویم.

https://www.aparat.com/v/4Fhkr
========
http://telegram.me/OxAA55/47
آشنایی با Memory Forensics و Volatility
مبحث Forensics به بررسی اطلاعات بخش های مختلف کامپیوتر از جمله Memory, Network, Disk و حتی بررسی اطلاعات استخراج شده از نرم افزارهای مختلف مثل ایمیل برای کسب ردپای نرم افزارهای مخرب، جرائم رایانه ای و نفوذ به سیستم ها می پردازد. در این ویدئو به مبحث MemoryForensics و کسب اطلاعات از طریق رم پرداخته و...


Video is unavailable for watching
Show in Telegram
آشنایی با #MemoryForensics و ابزار #Volatility برای استخراج اطلاعات از فایل‌های image رم و حل یک مساله از مسابقه‌ی SECCON2016

========
http://telegram.me/OxAA55


در این ویدئو با مباحث پیشرفته‌ی تعریف #توابع در #پایتون آشنا خواهیم شد. ابتدا با تقسیم کردن توابع در فایل‌های مختلف و فراخوانی آن‌ها از فایل اصلی آشنا شده و سپس به بررسی scope متغیرها و متفاوت بودن متغیر سراری همنام با متغیر محلی می‌پردازیم. سپس به معرفی _ _name_ _ و کاربرد آن در تفکیک فایل اجرایی می‌پردازیم. در ادامه به بررسی توابع با تعداد متغیر پارامتر ورودی، به کمک args* و آشنایی با #tuple پرداخته و ارسال پارامترهای نام‌دار به کمک kwargs** را مشاهده می‌کنیم. در نهایت نیز به بررسی ایجاد #generator به کمک کلمه‌ی کلیدی #yield می‌پردازیم.

https://www.aparat.com/v/sjDVy
========
http://telegram.me/OxAA55/44
10) مفاهیم پیشرفته در تعریف توابع
در این ویدئو ابتدا با تقسیم کردن توابع در فایل های مختلف و فراخوانی آن ها در فایل اصلی آشنا شده و سپس به معرفی __name__ و کاربرد آن در تفکیک فایل اجرایی می پردازیم. در ادامه به بررسی پارامترهای با تعداد متغیر توابع، به کمک args* و آشنایی با tuple پرداخته و ارسال پارامترهای نام دار به کمک kwargs** را...


Video is unavailable for watching
Show in Telegram
آموزش برنامه نویسی #پایتون
قسمت یازدهم: مفاهیم پیشرفته در تعریف #تابع

========
http://telegram.me/OxAA55


در ویدئوی قبلی مراحل اولیه‌ی بازی #Leviathan را حل کرده و با دریافت اطلاعات از روی پشته و مشکلی که شرایط رقابت ممکن است در یک برنامه بوجود آورد آشنا شدیم. در این ویدئو این بازی را ادامه داده و مابقی مراحل آنرا حل می‌کنیم. در این مراحل نیز با gdb کار کرده و اطلاعات روی پشته را بررسی می‌کنیم. همچنین تبدیل مبنای دو و شانزده را به کمک bc انجام می‌دهیم. با دستور xxd برای مشاهده‌ی یک فایل به صورت hex آشنا شده و رشته‌ی تبدیل شده به مبنای ۱۶ را به کمک آن به یک رشته که رمز نهایی می‌باشد تبدیل می‌کنیم.

https://www.aparat.com/v/BhRcF
========
http://telegram.me/OxAA55/40
05) حل مراحل ۳ تا ۷ بازی Leviathan سایت Overthewire
در این ویدئو بازی Leviathan را ادامه داده و مابقی مراحل آنرا حل می کنیم. در این مراحل نیز با gdb کار کرده و اطلاعات روی پشته را بررسی می کنیم. همچنین تبدیل مبنای دو و شانزده را به کمک bc انجام می دهیم. با دستور xxd برای مشاهده ی یک فایل به صورت hex آشنا شده و رشته ی تبدیل شده به مبنای ۱۶ را به کمک آ...


Video is unavailable for watching
Show in Telegram
حل مراحل ۳ تا ۷ بازی #Leviathan از سایت Overthewire.org

========
http://telegram.me/OxAA55


در مدل برنامه‌نویسی #Procedural یک برنامه‌ی بزرگ به بخش های کوچکتری تقسیم میشه که هر کدوم وظیفه‌ی مشخصی رو ایفا می‌کنند، به این بخش‌های کوچک که با دریافت ورودی‌های مختلف کارشون رو انجام داده و خروجی تولید کرده و یا در بخشی از برنامه مثل screen یا فایل تغییری ایجاد می‌کنند تابع گفته میشه. توی این ویدئو با نحوه‌ی تعریف و صدا زدن توابع در پایتون آشنا شده و #تابع ساده‌ای برای تغییر لیست می‌نویسیم.

https://www.aparat.com/v/XCmcl
========
http://telegram.me/OxAA55/38
09) معرفی توابع در پایتون
در مدل برنامه نویسی Procedural یک برنامه ی بزرگ به بخش ّهای کوچکتری تقسیم میشه که هر کدوم وظیفه ی مشخصی رو ایفا می کنند، به این بخش های کوچک که با دریافت ورودی های مختلف کارشون رو انجام داده و خروجی تولید کرده و یا در بخشی از برنامه مثل screen یا فایل تغییری ایجاد می کنند تابع گفته میشه. توی این وید...


Video is unavailable for watching
Show in Telegram
آموزش برنامه نویسی #پایتون
قسمت دهم: معرفی #تابع و نحوه‌ی تعریف آن در پایتون

========
http://telegram.me/OxAA55


بازی #Leviathan را می‌توان ادامه‌ی بازی #Bandit به حساب آورد که به بررسی مسائل امنیتی و آشنایی با ساختار و دستورات سیستم‌عامل لینوکس می‌پردازد. در این ویدئو سه مرحله‌ی اول از این بازی انجام شده است و بررسی مقدماتی برنامه‌ها در gdb و بدست آوردن اطلاعات روی پشته در این محیط انجام گرفته است. برای انجام دو مرحله‌ی اول، آشنایی مقدماتی با دستورات لینوکس، محیط gdb و ارسال پارامتر توابع از طریق پشته کافی است. در مرحله‌ی سوم با #Race_Condition در سیستم‌های عامل و همچنین نحوه‌ی نوشتن اسکریپ‌های ساده در #bash آشنا شده و با ایجاد رقابت بین پروسه‌ها رمز این مرحله را بدست خواهیم آورد. در ویدئوهای آینده ادامه‌ی مراحل این بازی را نیز بررسی خواهیم نمود.

https://www.aparat.com/v/SdOxr
========
http://telegram.me/OxAA55/36
04) حل سه مرحله اول بازی Leviathan سایت Overthewire
بازی Leviathan را می توان ادامه ی بازی Bandit به حساب آورد که به بررسی مسائل امنیتی و آشنایی با ساختار و دستورات سیستم عامل لینوکس می پردازد. در این ویدئو سه مرحله ی اول از این بازی انجام شده است و بررسی مقدماتی برنامه ها در gdb و بدست آوردن اطلاعات روی پشته در این محیط انجام گرفته است. همچنین با Ra...


Video is unavailable for watching
Show in Telegram
حل سه مرحله‌ی اول بازی #Leviathan از سایت Overthewire.org

========
http://telegram.me/OxAA55


مهمترین بخش یادگیری برنامه نویسی، تمرین و تکرار زیاد و حل مسائل مختلف برای تسلط بر مفاهیم و تثبیت شدن الگوریتم‌ها در ذهن است. در این ویدئو با سایت hackerrank.com آشنا می‌شویم که منبع بسیار خوبی برای تمرین و حل مسائل متنوع در موضوعات مختلف است. علاوه بر حل یک مساله از این سایت و تمرین بیشتر با لیست‌ها، با چند تابع جدید از جمله map برای اجرای یک تابع بر روی مقادیر یک لیست، تولید لیست با استفاده از [], ()list، کار با رشته‌ها و حذف فاصله‌های اضافی قبل و بعد از یک رشته به کمک strip و جدا کردن مقادیر موجود در یک رشته به کمک split آشنا خواهیم شد. همچنین با حلقه‌ی for نیز کار کرده و ایجاد بازه‌ای از اعداد به کمک range را تمرین خواهیم کرد.

http://telegram.me/OxAA55/34


Video is unavailable for watching
Show in Telegram
آموزش برنامه نویسی #پایتون
قسمت نهم: آشنایی با سایت hackerrank.com و حل یکی از مسائل مربوط به لیست این سایت، آشنایی با range, map, split, strip در روند #حل_مسئله

========
http://telegram.me/OxAA55


برای نوشتن هر برنامه‌ی کامپیوتری باید به دو مورد توجه نموده و از آن به صورت بهینه استفاده کرد. یکی الگوریتم برنامه است که شیوه‌ی حل مساله را مشخص می‌کند و دیگری ساختمان‌های داده (#داده‌ساختارها) و روش‌هایی هستند که برای ذخیره و بازیابی اطلاعات از آن‌ها استفاده می‌شود. در ویدئوی قبلی با یکی از ساختارهای ذخیره‌ی داده‌ها در #پایتون به نام لیست آشنا شدیم. در لیست داده‌ها پشت سر هم قرار می‌گرفتند و دسترسی به آن‌ها با اندیس‌هایی انجام می‌شد که از صفر شروع شده و به ترتیب اضافه می‌شدند. در این ویدئو با dictionary آشنا می‌شویم که در آن داده‌ها به صورت (key, value) ذخیره می‌شوند و برای دسترسی محدود به اعداد صحیح از صفر نبوده و می‌توانیم از هر شی استفاده نماییم.

http://telegram.me/OxAA55/32


Video is unavailable for watching
Show in Telegram
آموزش برنامه نویسی #پایتون
قسمت هشتم: کار با Dictionary

========
http://telegram.me/OxAA55

20 last posts shown.

500

subscribers
Channel statistics