فارسی
باز کردن در Telegram
NNSEs

NSEs

@NetSecZ · کانال · فناوری · ایندکس از 2026/09/29
1 295مشترک
149میانگین دسترسی پست
11.5%ER — دسترسی نسبت به مشترکان
9پست در 30 روز
توی این پست می‌خوایم با یکی از مفاهیم قدیمی ولی مهم در لینوکس آشنا بشیم: Chroot Jail کلمه‌ی chroot مخفف عبارت زیر است: Change Root در لینوکس، هر پردازش یک مسیر ریشه (Root Directory) دارد که معمولاً با / مشخص می‌شود. این مسیر تعیین می‌کند یک برنامه از کجا شروع به دیدن فایل‌ها و دایرکتوری‌های سیستم کند. در حالت عادی، یک پردازش می‌تواند ساختار اصلی سیستم را ببیند: / ├── bin ├── etc ├── home ├── usr ├── var └── root اما با استفاده از Chroot می‌توان Root یک پردازش را تغییر داد. مثلاً: /var/jail ├── bin ├── etc ├── lib └── home بعد از اجرای برنامه داخل این محیط، مسیر /var/jail برای آن برنامه تبدیل به / می‌شود. یعنی برنامه فکر می‌کند در یک سیستم جدا اجرا می‌شود، در حالی که همچنان روی همان سیستم اصلی قرار دارد. چرا به آن Jail می‌گویند؟ Jail یعنی «زندان». چون یک کاربر یا سرویس داخل یک محدوده مشخص قرار می‌گیرد و فقط همان محیط را مشاهده می‌کند. مثلاً یک کاربر FTP: بدون Chroot: FTP User | +-- کل فایل سیستم با Chroot: FTP User | +-- /home/user | +-- فایل‌های خودش در این حالت کاربر دیگر به مسیرهایی مثل: /etc /usr /root سیستم اصلی دسترسی ندارد. اجرای Chroot ساختار کلی دستور: chroot /path/to/new/root command مثلاً: sudo chroot /var/jail /bin/bash با این دستور، محیط Bash داخل Jail اجرا می‌شود و فقط فایل‌های موجود در همان محیط را مشاهده می‌کند. کاربردهای Chroot Jail 1) محدود کردن سرویس‌ها یکی از رایج‌ترین استفاده‌های Chroot، محدود کردن سرویس‌هایی مثل FTP است تا در صورت وجود مشکل، دسترسی آن‌ها به کل سیستم محدود شود. 2) تعمیر سیستم لینوکس یکی از کاربردهای حرفه‌ای Chroot، تعمیر سیستم‌هایی است که دیگر بوت نمی‌شوند. با استفاده از Live Linux: mount /dev/sda2 /mnt chroot /mnt بعد می‌توان کارهایی مثل: update-grub passwd apt update را انجام داد. 3) ساخت محیط تست با Chroot می‌توان یک محیط لینوکسی آزمایشی ساخت، بدون اینکه سیستم اصلی تغییر کند. مثلاً: Ubuntu Host | +---- Debian Chroot نکته امنیتی مهم Chroot یک Sandbox کامل نیست. Chroot فقط دید پردازش نسبت به فایل‌سیستم را تغییر می‌دهد. اما: ❌ Kernel جدا ایجاد نمی‌کند ❌ Processها را کاملاً جدا نمی‌کند ❌ منابع سیستم ر… خواندن کامل ←
7 · 576 ·
عکس
کسب مقام چهارم تو مسابقات امنیت بلو سی تی اف (بلو بانک). جا داشت بهتر باشیم ولی با مشکلاتی که پیش اومد تونستیم به همینجا برسیم امیدوارم دفعات بعدی رتبه بهتری بیاریم ،تجربه خوبی بود .
12 · 789 ·
A
خب سلام اومدیم یه مقدار درباره execve یه توضیح بدیم که احتمالا همتون وقتی یکم با strace کار میکنین این syscall میبینید . کارش بخوام خیلی کوتاه بگم اینه که میاد یه image پروسه فعلی رو با یه برنامه جدید جایگزین میکنه . شاید بگی عین fork هست ولی نه توی این عمل process جدید درست نمیشه بلکه همونه ولی فقط اون برنامه ای که درحال اجرا بود جایگزین میشه و یه برنامه جدید اجرا میشه . سینتکسش هم به صورت زیره: int execve( const char *pathname, char *const argv[], char *const envp[] ); pathname خب مربوط به مسیر اون فایل اجرایی هست که میخوایم توی پراسس فعلی اجرا بشه /bin/ls argv هم مربوط به آرگومان هایی هست که اون فایل اجرایی ما میگیره مثلا ss -t envp هم مربوط به اون متغیر های Environment هستش. بخوایم الان با توجه به توضیحایی که بالا دادیم این بخشا رو پر کنیم به صورت زیر در میاد execve("/bin/ls", args, env); حالا برای مثال اگه بخوایم ls -la بگیریم متغیر args باید به صورت زیر پر کنیم : char *args[] = { "ls", "-l", "/home", NULL }; اینم یادتون باشه آخر آرایه هم باید با NULL پر بشه که سیستم بفهمه آرگومان ها کجا به اتمام میرسند . در واقع اینطوریه : ./main_program: #include <stdio.h> #include <unistd.h> int main() { char *args[] = { "program2", "hello", "world", NULL }; printf("Before execve\n"); execve("./program2", args, NULL); printf("After execve\n"); return 0; } ./program2: #include <stdio.h> int main(int argc, char *argv[]) { printf("I am program2\n"); printf("argc = %d\n", argc); for (int i = 0; i < argc; i++) { printf("argv[%d] = %s\n", i, argv[i]); } return 0; } خب توی این بخش میاد آرگومان های داده شده توی برنامه اول رو در برنامه دوم به نمایش میزاره و میشه گفت تمام کاری که میکنه همینه .یه نکته دیگه هم اینه که pid این برنامه اگه 100 بار این وسط برنامه جدید با execve بیاد وسط عوض نمیشه و جدا از اون وقتی یه برنامه جدید با execve اجرا میشه ادامه کدی که توی برنامه اول داریم اجرا نمیشه مگر اینکه به خطا بخوریم توی اجرا کردن برنامه دوم . و در آخر، کنار execve چن… خواندن کامل ←
5 · 947 ·
عکس
Domain Fronting Technique in C2 Architectures has Been Explained read below👇👇👇
9 · 284 ·
فایل
DOMAIN FRONTING TECHNIQUE.pdf · 671 KB · برای نمایش کلیک کنید
#Domain_fronting #evasion #trust_abuse Author✍️ —-> NachtWand
12 · 281 ·
/
@Time1Netbot دوستان عزیز این ربات واسه یکی از رفیقامون و تازه شروع کرده و نیاز به حمایت داره ربات واسه فروش کانفیگ میخام اگر امکانش هست تو کانالاتون به عنوان تبلیغ بزارید، تست رایگان هم داره واسه سرعت و اینکه خودمم استفاده میکنم کانفیگ هاش خوبه دمتون گرم❤️
193 ·
سلام چطورین؟ یه مقدار اومدیم امروز درباره linux seccomp یا همون secure computing حرف بزنیم که اصلا چی هست.در واقع یه مکانیزمیه برای محدود کردن system call هایی که یه process میتونن کال کنن. مثلا وقتی کد زیر اجرا میشه: int fo = open("mamad.txt",O_RDONLY); توی این بخش یه سیسکال صدا زده میشه که openat هستش و کارش حالا باز کردن فایله و شماره سیستکال که داره 257 هستش (توی x86_x64) و بخوایم یه مقدار دیپ تر بشیم openat(AT_FDCWD, "mamad.txt", O_RDONLY) اجرا میشه که آرگومان های مربوط به این سیستکال هستش. مشکل امنیتی ما چیه؟ فرض میکنیم یه نرم افزاری به اسم pdf parser ورژن mamad.2.0.2 داریم (در دست ابداع) و سیستکال هایی که درواقع این برنامه به اون نیاز داره میشه گفت چیزایی هستن که این زیر مینویسم: read write openat close mmap munmap exit شاید حالا چیزای بیشتری هم باشن ولی به نظر شما اومدن سیستکال mount , reboot , socket توی این برنامه عادیه؟ اینجاست که seccomp توی عمل میاد و میتونیم به کرنل بگیم که چه چیزهایی ALLOW و DENY هستن مثل بخش زیر: read → ALLOW write → ALLOW openat → ALLOW close → ALLOW mmap → ALLOW exit → ALLOW execve → DENY ptrace → DENY mount → DENY reboot → DENY در نتیجه اگه مهاجم داخل process بیاد داداشمون ()execve صدا بزنه کرنل اون رو طبق policy که داره محدود میکنه. در واقع seccomp چیزی نیست که توی userspace باشه و در kernel enforce میشه.(بین خودمون باشه LD_PRELOAD میشه دور زد ) یه توضیح ریز درباره LD_PRELOAD بدم و بریم برای ادامه . در واقع این یه sandboxing سمت userspace هستش که dynamic linker میگه قبل اینکه کتابخونه های معمولی بارگزاری کنی این کتابخونه هایی که میگمو بارگزاری کن و در نتیجه توابعی که در اون کتابخانه تعریف شدن override توابع اصلی می‌شن. dynamic linker چیه؟ در واقع ما دو تا linking داریم . یکی static , dynamic هستن . static میاد تمام کد و توابع داخل یه برنامه تعریف میکنه و آخر یه فایل حجم بالا بهمون میده ولی dynamic اینطور نیست و در واقع اینطوریه که من مثلا یه printf میخوام صدا بزنم پس کد printf توی یه فایل جداگانه به اسم libc.so.6 قرار داره و همه برنامه‌ها با هم ازش استفاده می‌کنن خب حالا LD_PRELOAD چیکار می… خواندن کامل ←
1 · 67 ·
S
int main(int argc, char **argv) { pid_t pid = fork(); if (pid == 0) { // bache install_seccomp(); // run PDF parser execv(argv[1], &argv[1]); _exit(1); } // madar:) waitpid(pid, NULL, 0); } و تابعی که توش libseccomp policy را تعریف می‌کنیم اینه => install_seccomp() که add rule کردنش رو بخش پایین میزارم: seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(read), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(write), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(close), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(mmap), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(munmap), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(mprotect), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(fstat), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(newfstatat), 0 seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(brk), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(futex), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(clock_gettime), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(exit), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(exit_group), 0); یکمی به هم ریختست دیگه ببخشید دیگه اینم از این بخش و ممنونم از همراهیتون❤️ Join channel⚡️
76 ·
NSEs
پیوند
برای نمایش کلیک کنید
با دستور Get-History می‌تونید تاریخچهٔ دستورات session جاری PowerShell رو ببینید. ادمین‌ها و کاربرها معمولاً با Clear-History این تاریخچه رو پاک می‌کنن. اما از نسخهٔ ۵ به بعد (و به‌خصوص در ۷) ماژول PSReadLine برای line-editing و command history استفاده می‌شه. Clear-History روی فایل تاریخچهٔ PSReadLine تأثیری نداره و پاکش نمی‌کنه. برای دیدن مسیر فایل تاریخچه این دستور رو بزنید: (Get-PSReadLineOption).HistorySavePath مسیر رو کپی کنید و فایل رو باز کنید، تو محیط هایی که میخواید privilege escalation انجام بدید یا حتی دسترسی تازه ای گرفتید و قصد دارید دیتا جمع کنید ،امکانش هست دیتای مفیدی توش پیدا کنید تو چک لیستتون بزاریدش . ➖➖➖➖➖ CHANNEL
🔥6
1 · 113 ·

فید عمومی باز از ایندکس جست‌وجو ChatCrawler — «Google برای Telegram عمومی»؛ با خزش انجمن به‌روز می‌شود. زمان‌ها به UTC است.

فقط محتوای عمومی، API رسمی Telegram. دربارهٔ ما · پرسش‌ها · محدودیت‌های ایندکس · حذف یک صفحه · کاتالوگ · جست‌وجو · روش محاسبهٔ ما