linuxtnt(linux tips and tricks)
5.75K subscribers
1.59K photos
137 videos
531 files
1.24K links
https://t.me/+AL7RKhKS6b4zNzY8

آموزش لینوکس- گروه مکمل برای پرسش و پاسخ
linux tips and tricks
ارتباط با من
@seilany
seilany.ir
Download Telegram
Forwarded from linuxtnt(linux tips and tricks) (h.seilany....@linuxtnt)
#حسین_سیلانی
#linux_kernel
کانال ما
@linuxtnt
کانالی_پر_از_آموزش_و_نکتهای_لینوکس
گروه لینوکس
https://t.me/joinchat/CDhB-0DzIdzRUXPDjhqF3A
Forwarded from linuxtnt(linux tips and tricks) (h.seilany....@linuxtnt)
کتاب -نبردی با لینوکس.pdf
27.5 MB
با سلام خدمت دوستان.
از مجموعه کتاب های چاپی خودم مطالبی رو خلاصه و به صورت کتاب هدیه ارائه کردم.امیدوارم برای دوستان مفید واقع شود.
جهت پرسش و پاسخ در زمینه لینوکس و دنیای متن باز، در کانال ما عضو شوید
#حسین_سیلانی
#نبردی_با_لینوکس
#کتاب
#لینوکس
#linux
#Open_source
@linuxtnt
آموزش مهاجرت / آپگرید از CentOS 8 به Rocky Linux 8

سیستم عامل Rocky Linux 8.4 با نام رمز Green Obsidian، سرانجام منتشر شد! دو ماه پس از انتشار راکی لینوکس 8.3 RC1 (Release Candidate 1) که نسخه بتا از آخرین نسخه است، لینوکس راکی در 21 ژوئن 2021 سرانجام به سختی منتشر شد.

این نسخه اولین نسخه پایدار و آماده ی تولید از Rocky لینوکس، پس از ماه ها تحقیق و توسعه فشرده است و برای هر دو معماری x86_64 و ARM64 در دسترس است. همانطور که می دانید، راکی لینوکس یک سیستم عامل enterprise سازمانی است که 100٪ باگ هایش با باگهای Red Hat Enterprise Linux 8.4 سازگار است که این نسخه را به گزینه ای مناسب برای جایگزین کامل CentOS 8 تبدیل می کند که تا پایان دسامبر 2021 به EOL تبدیل می شود.

با انتشار Rocky Linux 8.4، ابزاری برای تبدیل پکیج ها نیز ایجاد شده است که به شما کمک می کند از CentOS 8 به Rocky Linux مهاجرت کنید. این امر کار را برای کسانی که می خواهند Rocky Linux 8 را بدون انجام نصب جدید آزمایش کنند، آسان کرده است.



ادامه مقاله :

https://linux-zone.org/forums/linux-forum/linux-distributions/red-hat/28563-%D9%86%D8%AD%D9%88%D9%87-%D9%85%D9%87%D8%A7%D8%AC%D8%B1%D8%AA-%D8%A2%D9%BE%DA%AF%D8%B1%DB%8C%D8%AF-%D8%A7%D8%B2-centos-8-%D8%A8%D9%87-rocky-linux-8?utm_source=telegrama.org&utm_medium=social&utm_campaign=migrate-centos8&utm_content=linuxzone-channel




#نحوه_آپگرید_centos8_به_rocky_linux8
#تبدیل_centos_به_rocky8
#مهاجرت_از_centos8_به_rocky_linux8
#آموزش_migrate_کردن_centos_به_rocky_linux
#آپگرید_تبدیل_centos_به_rocky_linux
#How_to_Migrate_from_CentOS_8_to_Rocky_Linux_8
#How_To_Migrate_To_Rocky_Linux_8_From_CentOS_8
#Transition_from_CentOS_to_Rocky
#آموزش_انتقال_به_rocky8_از_centos8
#آموزش_لینوکس
#انجمن_لینوکس
#لینوکس
#linux
#linux_forum
#linux_community
Forwarded from linuxtnt(linux tips and tricks) (h.seilany....@linuxtnt)
کتاب -نبردی با لینوکس.pdf
27.5 MB
با سلام خدمت دوستان.
از مجموعه کتاب های چاپی خودم مطالبی رو خلاصه و به صورت کتاب هدیه ارائه کردم.امیدوارم برای دوستان مفید واقع شود.
جهت پرسش و پاسخ در زمینه لینوکس و دنیای متن باز، در کانال ما عضو شوید
#حسین_سیلانی
#نبردی_با_لینوکس
#کتاب
#لینوکس
#linux
#Open_source
@linuxtnt
Forwarded from La3tKnight (163)
Cheat.sh
فکر کنید تمام برگه های تقلب رو یه جا بریزیم و بتونیم بینشون جستجو کنیم، این ابزار به ما این قابلیت رو میده.
این ابزار در حقیقت به شما دسترسی به برگه های تقلب 56 زبان برنامه نویسی و بیشتر از 1000 تا از مهمترین کامند های UNIX/Linux.
حالا طرز استفادش چجوریه؟

1- اول اینکه میتونید همین عبارت Cheat.sh رو توی مرورگرتون سرچ کنید و این سایت بهتون محیطی شبیه به یه ترمینال لینوکس برای جستجو کردن میده.
2- یا اینکه میشه از ابزاری به اسم Curl در ترمینال استفاده کرد تا بتونید بین برگه های تقلب جستجو کنید.
چجوری؟
برای این کار کافیه که یه دستور در قالب دستور رو به رو بسازید:
curl cht.sh/python/lambda
یا
curl cht.sh/go/reverse+a+list
اولش از ابزار کِرل استفاده میکنید تا بتونید با استفاده از پروتکل های HTTP یا HTTPS با آدرس ارتباط برقرار کنید(لزومی نداره حتما کِرل باشه، هر ابزاری که بتونه چنین ارتباطی برقرار کنه میتونه استفاده شه).
بعدش آدرس cht.sh یا cheat.sh رو میزنید و بعد از اسلش، زبانی که میخواید دربارش برگه تقلب بگیرید، مثلا python/، و بعد مبحث یا عبارتی که میخواید برای اون زبان جستجو کنید رو وارد میکنید ، مثل مثال های بالا که lambda یا reverse+a+list استفاده شده.
یا دستوری مثل دستور مقابل تمام موضوعات مربوط به یه زبان رو نشون میده:
curl cheat.sh/lua/:list
همچنین از یسری چیز ها که زبان برنامه نویسی نیستن ولی برگه تقلبشون میتونه کاربردی باشه هم پشتیبانی میکنه، مثل فریموورک های django یا flask یا git
برای این که برای کامند های ترمینال جستجو کنید، کافیه فقط اسم کامند رو بنویسید، مثل کامند رو به رو:
curl cheat.sh/ls
یا
curl cheat.sh/alias

خیلی گسترده تر از اینه که بشه تو یه پیام تلگرام جاش کرد، اگر مشتاقید میتونید داکیومنتش رو از لینکی که بالا برای صفحه گیتهابش گذاشتیم بخونید.
#linux
Forwarded from La3tKnight (Amir.)
https://explainshell.com

شما یک دستور ترمینال رو میبیند اما نمی‌دونید چیکار میکنه
اون دستور رو کپی کنید و به این سایت بدید ، بهتون توضیح میده

#linux
Forwarded from La3tKnight (Amir.)
توزیع mofo Linux

درمورد این توزیع تمرکز توسعه دهنده روی دور زدن محدودیت های اینترنتی بوده . چیزی خود توسعه دهنده اینطور عنوان می‌کنه که :

«
 
توزیع mofo Linuxیک سیستم عامل است که با هدف شکست همه روش‌های سانسور و نظارت اینترنتی که توسط دولت‌ها، شرکت‌ها، مدارس و ارائه‌دهندگان خدمات اینترنتی استفاده می‌شود، سازماندهی شده است.  این ابزاری است که برای توانمندسازی مردم برای استفاده از حقوق غیرقابل انکارشان در خصوص حریم خصوصی، آزادی بیان، تشکل و تجمع مسالمت آمیز ایجاد شده است.  اینها حقوقی هستند که خالق اعطا شده است، نه امتیازاتی که به میل و هوس هر حکومتی از بین بروند.  تحت حمایت میثاق بین المللی حقوق مدنی و سیاسی و اعلامیه جهانی حقوق بشر.  ماموریت MOFO Linux این است که به شما این قدرت را بدهد که هر رسانه ای را به صلاحدید خود باز کنید و راه را برای خواندن، نوشتن، تماشا کردن، گوش دادن، بحث و گفتگو باز کنید
. »

این توزیع از چندین پروتکل پروکسی , open VPN و Tor برای دور زدن محدودیت های اینترنتی استفاده می‌کنه

پیام‌رسان های تلگرام و سیگنال هم از قبل روی توزیع نصب شده .

علاوه بر اون این توزیع شبکه ای رو به اسم freenet که انجمن و سایت های خاص خودش رو برای توزیع اطلاعات داره که مسدود سازی اونا تقریبا غیر ممکنه

میتونید این توزیع رو به طور کامل نصب کنید یا به صورت قابل حمل روی فلش داشته باشید . بیشتر از این طولانیش نکنم . اگر خواستید بیشتر درموردش بدونید میتونید به سایتش سر بزنید

🧷 https://mofolinux.com/

#linux
La3tKnight
Forwarded from OS Internals (Abolfazl Kazemi)
مقدار صفر برای argc در برنامه‌های لینوکسی. چرا و چگونه؟

همه چیز از بررسی CVE-2021-4034 و کامپایل مجدد PolKit بر روی Ubuntu 22.04 شروع شد! تصمیم داشتم یک نسخه‌ی آسیب‌پذیر PolKit رو با فعال کردن Debug Symbols کامپایل کرده و مراحل کامل این CVE رو در GDB بررسی کنم. به صورت خلاصه بگم که این آسیب‌پذیری در باینری pkexec وجود دارد و به کمک آن می‌توان LPE انجام داد. یکی از شرایط استفاده از این آسیب‌پذیری این است که در زمان اجرای pkexec شرط argc==0 برقرار باشد که از طریق آن متغیرهای محلی خوانده شده و بتوان یک library مخرب را بارگذاری نمود.

از آنجایی که pkexec علاوه بر لینوکس بر روی Solaris, BSD هم قابل استفاده است، در مقاله‌ی اصلی این CVE که توسط Qualys Security منتشر شده است متن زیر مشاهده می‌شود که از الزام argc==0 برای امکان‌پذیر بودن این LPE خبر می‌دهد.
OpenBSD is not exploitable, because its kernel refuses to execve() a program if argc is 0

پس فرض من این بود که در نسخه‌های اخیر لینوکس هم با کامپایل PolKit باید بتوان این آسیب‌پذیری را تست کرد. این بود که بر روی Ubuntu 22.04 یک نسخه‌ی آسیب‌پذیر را کامپایل کرده و یک کد ساده به صورت زیر نوشتم که pkexec را اجرا کرده و argc==0 برقرار باشد.

void main() {
char *args[] = { NULL };
char *envs[] = {"SHELL=/bin/bash", 0};
execve("pkexec", args, envs);
}

با اجرای برنامه و زدن strace مشاهده شد که فراخوانی در سطح user طبق انتظار انجام شد.
execve("pkexec", [], 0x7ffe3883b200 /* 1 var */)

ولی دو تا مورد عجیب رخ داد. اول اینکه برنامه در gdb بر خلاف انتظار با argc==1‌ اجرا شده و argv[0] که اسم برنامه در آن قرار می‌گیرد و طبق مدل فراخوانی باید NULL می‌بود برابر “” شده بود. مورد دومی که عجیب بود پیام زیر در dmesg بود.
process 'exploit' launched 'pkexec' with NULL argv: empty string added

با رسیدن به این مرحله به سراغ Ubuntu 20.04 رفتم و همین کد را بر روی آن اجرا کردم که همه چیز طبق انتظار رخ داده و در gdb با رسیدن به main برنامه‌ی pkexec مقدار argc==0 برقرار بوده و امکان تست CVE وجود داشت. اینجا واضح بود که در کرنل‌های جدید لینوکس در فراخوانی سیستمی execve تغییراتی اعمال شده است که جلوی اجرای برنامه‌ها با argc==0 گرفته شود. اینجا دیگه لازم بود کد کرنل چک شود!

با رفتن به github‌ و بررسی فایل fs/exec.c کرنل لینوکس مشاهده شد که در تابع اجرای فراخوانی سیستمی execve کد زیر در March 2022 اضافه شده که جلوی اجرای برنامه‌ها با argc==0 را می‌گیرد.

/*
* When argv is empty, add an empty string ("") as argv[0] to
* ensure confused userspace programs that start processing
* from argv[1] won't end up walking envp. See also
* bprm_stack_limits().
*/
if (bprm->argc == 0) {
retval = copy_string_kernel("", bprm);
if (retval < 0)
goto out_free;
bprm->argc = 1;
}

پس از این به بعد علاوه بر OpenBSD بر روی لینوکس نیز امکان اجرای آسیب‌پذیری‌های این مدلی وجود نخواهد داشت! :-D
پ.ن: در آینده‌ یک ویدئو از شیوه‌ی کامل اجرای این CVE منتشر می‌کنم.

#linux #kernel #CVE #PolKit #pkexec #execve
Forwarded from OS Internals (Abolfazl Kazemi)
جزئیات پروسه و نخ در لینوکس

به صورت خلاصه از دید ویندوز پروسه فقط یک container می‌باشد که اجرا نشده و فضایی برای اجرای Threadها فراهم می‌کند و در سطح کرنل نیز دو ساختار EPROCESS, ETHREAD برای این دو تعریف شده‌اند. اما در لینوکس ماجرا متفاوت است و Process, Thread هر دو قابلیت اجرا داشته و در سطح کرنل نیز یک ساختار task_struct برای آن‌ها تعریف شده است. در دنیای شی‌گرایی مثل این است که در لینوکس یک کلاس برای این دو وجود دارد و فقط در زمان ایجاد شی خصوصیات متفاوتی برای آن‌ها تنظیم می‌شود.

اگر به سراغ برنامه‌نویسی سیستمی در لینوکس برویم، تابع fork برای ایجاد پروسه استفاده شده و از تابع pthread_create نیز برای ایجاد نخ در لینوکس استفاده می‌شود. در سطحی کمی پایین‌تر، هر دوی این توابع syscallای به نام clone را فراخوانی می‌کنند و با ست‌کردن فلگ‌هایی مشخص می‌کنند که قصد ایجاد پروسه یا نخ را دارند. در زمان بررسی برنامه‌ها، در خروجی دستور ps برای یک برنامه‌ی چند پروسه‌ای pidهای مختلفی خواهیم دید ولی در یک برنامه‌ی چند نخی pidها یکسان بوده ولی عددهای متفاوتی در فیلد Light-Weight Process-LWP می‌بینیم.

نکته‌ی جالب دیگر این است که در سطح کرنل پروسه‌ها یک لیست پیوندی تشکیل می‌دهند. هم شیوه‌ی ایجاد لیست پیوندی Generic در سطح کرنل و در زبان C موضوع جالبی است و هم اینکه به کمک فیلدی به اسم tasks می‌توانیم یک لیست پیوندی از پروسه‌ها تشکیل دهیم که به پروسه‌های قبلی و بعدی اشاره می‌کند.

این موارد و موارد دیگری از جزئیات پروسه‌ها و نخ‌های لینوکس مواردی هستند که در این ویدئو به آن می‌پردازیم.

لینک ویدئو در یوتیوب:
https://youtu.be/0fxYtyFn8Jc
لینک ویدئو در آپارات:
https://aparat.com/v/cnytp55

#ShortLinuxInternals #linux #internals #syscalls #kernel #process #thread #gdb #qemu #clone #LWP