TGViewer
SecForge SecForge @s3cforge · 94 subscribers
Post #21 102
A #include <linux/module.h> #include <linux/kprobes.h> #include <linux/sched.h> #include <linux/cred.h> #include <linux/pid.h> #include <linux/slab.h> #define MAGIC_SIG 64 static struct kprobe kp; static int pre_kill(struct kprobe *p, struct pt_regs *regs)…
خب سلامی دوباره
یه مقداری درگیر کار و .... بودم واقعا وقت نکرده بودم ادامه این پستو به اتمام برسونم و خب الان اومدم که این process هم کیل کنیم😂
خب آقا این کدی که ما داشتیم یه linux kernel module هستش که کارش privilage escalation هست و کاری که میکنیم با استفاده از syscall مربوط به kill() هستش که با استفاده از kprobe اون رو hook میکنیم تا وقتی یه مقدار خاص یا همون MAGIC_SIG 64
خودمون که اینجا 64 هستش دیده بشه.هدفمون چیه؟ این دوستمون بیاد GID,UID رو به 0 تغییر بده یا همون root بکنه مارو .

خب یه نگاهی به منطق کدمون بکنیم الان: وقتی kill(PID, 64) استفاده میشه سیسکال __x64_sys_kill()
صدا زده میشه و kprobe وارد کار میشه و میبینه که اصلا سیگنالی که دادیم چند هستش اگه 64 بود PID تسک رو پیدا میکنه و UID و GID رو برابر 0 میکنه capabilities ما رو هم full میکنه و task که ما داشتیم کلا عوض میشه و سطح دسترسی پراسس ما تبدیل به روت میشه .
مکانیزم اصلی hook کردن رو با استفاده از kprobe.h در بخش زیر آوردیم :
module_init()
module_exit()
MODULE_LICENSE()

در بخش اول این بکدور ما خودش رو وارد کرنل میکنه بعد از انجام load module با استفاده از register_kprobe() که باعث میشه کرنل روی تابع مربوط به kill یه probe داشته باش.
توی اول بخش کد اگه نگاه کنین ما یه مجیک سیگنال تعریف کردیم که مقدار اون رو 64 گزاشتیم یعنی چی؟
هر موقع که اون سیسکال kill سیگنال 64 رو دریافت کرد این kprobe ما بیاد تو کار و اون PID که بهش دادیم رو بیاد و hook کنه .
کرنل اول میره سراغ process و اینجا با استفاده از task_struct انجام میشه که یعنی اینکه اول از شماره PID به خود پراسس میرسه و بعد به credential ها یا دسترسی هایی که داره میرسه . یه اشاره ریز به credential بکنیم یعنی اطلاعاتی که درباره هویت و مجور یه پراسس داریم : UID , EUID , GID , EGID , capabilities و ...
توی اینجا اگه UID , GID که داریم برابر 1000 باشه توی این بخش بکدور میاد یه کردنشیال جدید میسازه و اینا رو برابر 0 قرار میده .
بعد از ساختن یه کردنشیال جدید میاد و اون رو وارد پراسس میکنه اینجاست که پریویلیج اسکلیشن رخ میده و بکدور ما کار خودشو میکنه .
فیلم عملیشو حتما توی یکی دو روز آینده میزارم
دمتون گرم 💥

Join channel⚡
  • ❤ 4
More from @s3cforge
  1. Oct 6, 2026یکمی بزرگ مزرگ شد اینم pdf اگه خواستین بخونین
  2. Oct 6, 2026int main(int argc, char **argv) { pid_t pid = fork(); if (pid == 0) { // bache install_sec…
  3. Oct 6, 2026سلام چطورین؟ یه مقدار اومدیم امروز درباره linux seccomp یا همون secure computing حرف بزنیم…
  4. Oct 5, 2026سلام چطورین؟ فرداشب موضوعمون یکم درباره sandbox process توی لینوکس هستش به نظرم چیز جالبیه…
  5. Sep 25, 2026خب سلام اومدیم یه مقدار درباره execve یه توضیح بدیم که احتمالا همتون وقتی یکم با strace کا…
  6. Sep 24, 2026دوستان طول کشید ببخشید یکمی درگیرم این چند وقت امشب کاملش میکنم میزارم براتون❤
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →