کالی لینوکس احتمالا تمام امکاناتی را که برای انجام آسان عملیاتهای معمول تست نفوذ نیاز دارید به صورت پیشفرض در خود ندارد. با چند نکته، ابتکار و برنامهی کاربردی میتوانیم به سرعت استفاده از کالی لینوکس مثل یک هکر کلاهسفید حرفهای را شروع کنیم.
اغلب توزیعهای لینوکس تا حد زیادی قابل تغییر هستند. همین باعث شده شخصیسازی این توزیع مخصوص تست نفوذ دشوار به نظر بسد. اما تنها با چند خط دستور میتوانیم وظایف را خودکار کنیم، نرمافزارهای محبوب خود را نصب کنیم، حسابهای کاربری اضافه ایجاد کنیم، نرمافزارهای مخصوص ناشناسماندن را نصب کنیم و تعاملات خود با ترمینالها را بهینه کنیم. اینها تنها چند مورد از کارهایی است که میتوانیم برای بهبود تعامل خود با این سیستم عامل انجام دهیم.
1) نصب Git
Git یک نرمافزار متن باز برای کنترل نسخه (Version Control) است. از این نرمافزار میتوان برای اشتراک و ویرایش کد به صورت مشارکتی استفاده کرد، ولی در راهنماهای ما معمولا به عنوان ابزار اصلی کپی (یا clone کردن) مخازن کدی استفاده میشود که بر روی GitHub یافت میشوند. برای متخصصان تست نفوذی که به دنبال گسترش مجموعه ابزارهای خود فراتر از ابزارهای موجود در مخازن پیشفرض کالی هستند، Git یک ابزار ضروری است.
با دستور apt-get زیر میتوان Git را نصب کرد.
~apt-get install git
برای ثبت نام و شرکت در دوره PWK (تست نفوذ با کالی) روی لینک زیر کلیک کنید
2) پیکربندی نامهای مستعار Bash (یا Bash Aliases)
Aliasهای Bash برای ایجاد دستورات میانبر شخصیسازیشده عالی هستند. برای مثال میتوانیم کاربرد دستور ls را به گونهای تغییر دهیم که به طور خودکار آرگومانهای پراستفادهی ما را استفاده کند. در زیر مثالی از خروجی دستور ls در حالت عادی را میبینید.
ls
androidbins.txt folder-pictures.png smtp.cracked text-x-generic.png
bogus_gmail.creds folder.png smtp.list Windows-10
dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39 package-x-generic.png text-x-generic.ico 'Windows 10 Icons'
در زیر همین خروجی را پس از ایجاد Alias برای ls میبینید.
ls
total 220K
-rw------- 1 root root 15K Aug 24 2015 folder-pictures.png
-rw------- 1 root root 8.7K Aug 24 2015 folder.png
-rw------- 1 root root 11K Aug 24 2015 package-x-generic.png
-rw------- 1 root root 5.5K Sep 3 2015 text-x-generic.png
drwxr-xr-x 12 root root 4.0K May 31 00:44 'Windows 10 Icons'/
drwxr-xr-x 18 root root 4.0K May 31 00:44 Windows-10/
-rwxr-x--- 1 root root 103K May 31 00:49 text-x-generic.ico*
drwxr-xr-x 5 root root 4.0K Jun 11 21:57 dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/
-rw-r--r-- 1 root root 52 Jul 5 18:13 bogus_gmail.creds
-rw-r--r-- 1 root root 15K Jul 5 18:28 smtp.list
-rw-r--r-- 1 root root 181 Jul 5 18:43 smtp.cracked
-rw-r--r-- 1 root root 23K Jul 23 18:18 androidbins.txt
drwxr-xr-x 5 root root 4.0K Jul 23 19:22 ./
drwxr-xr-x 23 root root 4.0K Aug 9 04:25 ../
همانطور که میبینید خروجی خیلی طولانیتری گرفتیم. دستور ls اکنون به طور خودکار از آرگومانهای –l، -a، -t، -h و –r استفاده میکند. این آرگومانها به ls فرمان میدهند که از قالب لیست استفاده کند (-l)، تمام فایلها را لیست کند (-a) – که شامل فایلهای مخفی (hidden) هم میشود- و اندازهی تمام فایلها را در قالبی که برای انسان قابل خواندن باشد چاپ کند (-h).
Alias تنظیمشده در این مثال خروجی را بر اساس زمان آخرین تغییرات فایل (-t) نیز مرتب کرده و ترتیب لیست را برعکس میکند (-r) تا فایلی که زمان کمتری از تغییر آن گذشته در پایین ترمینال ظاهر شود. این مجموعهی آرگومانها تنظیمات شخصی من برای ls است، ولی شما میتوانید تنظیمات متفاوتی برای آن در نظر بگیرید.
برای ایجاد Aliasها، با استفاده از یک نرمافزار ویرایش متن مانند nano یا نرمافزاری مشابه آن فایل /root/.bash_aliases را باز کنید. برای ایجاد Alias خط زیر را به این فایل اضافه کنید.
alias ls='ls --color=always -rthla'
همچنین میتوان پا را یک قدم جلوتر گذاشت و توابع پیچیدهتری را به فایل .bash_aliases اضافه کرد. در کد زیر یک مثال ساده از تابعی میبینید که برای این طراحی شده که کالی لینوکس را کاملا بهروز نگه دارد.
function apt-updater {
apt-get update &&
apt-get dist-upgrade -Vy &&
apt-get autoremove -y &&
apt-get autoclean &&
apt-get clean &&
reboot
}
بعد از ذخیرهی تغییرات ایجادشده در فایل .bash_aliases، باید یک پنجرهی ترمینال جدید باز کنید تا تغییرات اثر کنند. اجرای این تابع جدید apt-updater مجموعهای از فرمانهای apt-get را اجرا میکند که به طور خودکار سیستم شما را بهروزرسانی میکنند. عملگر منطقی and (&&) تضمین میکند که اگر اجرای یک دستور موفقیتآمیز نبود، تابع سراغ اجرای دستور بعدی نرود.
apt-updater
برای مشاهدهی آموزش ویدئویی به پایین صفحه مراجعه کنید.
3) ایجاد یک کاربر جدید با اختیارات محدود
بسیاری از برنامههای کاربردی مانند مرورگر کروم و مرورگر Tor را هیچگاه نباید با یک حساب root باز کرد یا استفاده کرد. برای تامین حدودی از امنیت در این برنامهها، سطح پایین بودن مجوزها به شدت مهم هستند. ایجاد یک حساب کاربری با اختیارات محدود برای چنین فعالیتهایی میتواند برای بعضی از کاربران سودمند باشد.
4) نصب یک مالتیپلکسر ترمینال
مالتیپلکسر یک شبیهساز ترمینال است که ترمینال را به چند بخش یا کاشی (tile) تقسیم کرده و امکان بازکردن چندین سشن ترمینال در یک پنجره را به وجود میآورد. مزیت اصلی این کار این است که میتوانیم تمام سشنهای باز ترمینال را در یک جا ببینیم و چندین پنجره را روی هم باز نمیکنیم. در تصویر زیر مثالی از یک مالتیپلکسر را میبینید.
apt-get install tilix
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libgtkd-3-0 libphobos2-ldc-shared78 libvted-3-0 tilix-common
Suggested packages:
python-nautilus
The following NEW packages will be installed:
libgtkd-3-0 libphobos2-ldc-shared78 libvted-3-0 tilix tilix-common
0 upgraded, 5 newly installed, 0 to remove and 466 not upgraded.
Need to get 10.7 MB of archives.
After this operation, 49.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
5) ابزارهای هک محبوب خود را نصب کنید
بعضی از نسخههای کالی مخصوص متخصصان تست نفوذ مینیمالیست هستند که ترجیح میدهند صدها ابزار هک از قبل روی سیستم عامل آنها نصب نشده باشد. این به آن معناست که باید ابزارهای محبوب خود را به صورت دستی نصب کنیم. نوع ابزارهایی که استفاده میکنیم بسته به مجموعه مهارتها و حوزهی تخصصی ما متفاوت است، ولی در زیر برخی از محبوبترین ابزارهای هک آمدهاند.
- Aircrack-ng: امکانات کرک پروتکلهای WEP/WPA وایرلس
- BeEF: چارچوب اکسپلویت مرورگر از طریق برنامههای تحت وب.
- Burp Suite: نرمافزار گرافیکی طراحیشده برای امنیت برنامههای تحت وب.
- Hydra: ابزار حملهی Brute-Force برای بهدستآوردن رمز عبور.
- Nikto: اسکنر تحت وب امنیت سرور
- Maltego: ابزار متن باز برای فارنزیک و جمعآوری اطلاعات.
- Nmap: ابزار اسکنر پورت و Network Mapping.
- Wireshark: نرمافزار گرافیکی برای تحلیل ترافیک شبکه.
این ابزارها را میتوان با استفاده از دستور زیر نصب کرد.
با ابزارهای برتر تست نفوذ 2020 آشنا شوید
apt-get install maltego metasploit-framework burpsuite wireshark aircrack-ng hydra nmap beef-xss nikto
Reading package lists... Done
Building dependency tree
Reading state information... Done
hydra is already the newest version (8.6-1kali1).
The following NEW packages will be installed:
beef-xss binfmt-support burpsuite fastjar fonts-droid-fallback fonts-lato
fonts-noto-mono ghostscript gsfonts imagemagick imagemagick-6-common
imagemagick-6.q16 jarwrapper java-wrappers javascript-common libc-ares2
libcupsfilters1 libcupsimage2 libdjvulibre-text libdjvulibre21 libdouble-conversion1
libfftw3-double3 libgmp-dev libgmpxx4ldbl libgs9 libgs9-common libhttp-parser2.8
libijs-0.35 libilmbase23 libjbig2dec0 libjs-jquery libjs-jquery-easing
libjs-jquery-fancybox libjs-jquery-mousewheel libjs-jquery-ui libjs-source-map
libjs-uglify libjxr-tools libjxr0 liblqr-1-0 liblua5.2-0 libmagickcore-6.q16-6
libmagickcore-6.q16-6-extra libmagickwand-6.q16-6 libnetpbm10 libnl-route-3-200
libopenexr23 libpaper-utils libpaper1 libpcre2-16-0 libqt5core5a libqt5dbus5
libqt5gui5 libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediagsttools5
libqt5multimediawidgets5 libqt5network5 libqt5opengl5 libqt5printsupport5 libqt5svg5
libqt5widgets5 libruby2.5 libsbc1 libsmi2ldbl libspandsp2 libssh-gcrypt-4 libuv1
libwhisker2-perl libwireshark-data libwireshark11 libwiretap8 libwmf0.2-7
libwscodecs2 libwsutil9 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0
libxcb-render-util0 libxcb-xinerama0 libxcb-xkb1 libxkbcommon-x11-0 libyaml-0-2
maltego netpbm nikto nodejs nodejs-doc openjdk-8-jre openjdk-8-jre-headless
qt5-gtk-platformtheme qttranslations5-l10n rake ruby ruby-addressable ruby-ansi
ruby-atomic ruby-buftok ruby-celluloid ruby-celluloid-io ruby-daemons
ruby-dataobjects ruby-dataobjects-mysql ruby-dataobjects-postgres
ruby-dataobjects-sqlite3 ruby-dev ruby-did-you-mean ruby-diff-lcs ruby-dm-core
ruby-dm-do-adapter ruby-dm-migrations ruby-dm-serializer ruby-dm-sqlite-adapter
ruby-docile ruby-domain-name ruby-em-websocket ruby-equalizer ruby-erubis
ruby-eventmachine ruby-execjs ruby-faraday ruby-geoip ruby-hitimes ruby-http
ruby-http-cookie ruby-http-form-data ruby-http-parser.rb ruby-json ruby-librex
ruby-libv8 ruby-memoizable ruby-mime-types ruby-mime-types-data ruby-minitest
ruby-mojo-magick ruby-msfrpc-client ruby-msgpack ruby-multi-json ruby-multipart-post
ruby-naught ruby-net-telnet ruby-nio4r ruby-oj ruby-parseconfig ruby-power-assert
ruby-public-suffix ruby-qr4r ruby-rack ruby-rack-protection ruby-ref ruby-rqrcode
ruby-rspec-expectations ruby-rspec-support ruby-rubydns ruby-simple-oauth
ruby-simplecov ruby-simplecov-html ruby-sinatra ruby-sqlite3 ruby-term-ansicolor
ruby-test-unit ruby-therubyracer ruby-thread-safe ruby-tilt ruby-timers ruby-tins
ruby-twitter ruby-uglifier ruby-unf ruby-unf-ext ruby-xmlrpc ruby-zip ruby2.5
ruby2.5-dev ruby2.5-doc rubygems-integration thin wireshark wireshark-common
wireshark-qt zip
The following packages will be upgraded:
aircrack-ng libcups2 libnl-3-200 libnl-genl-3-200 libxkbcommon0 metasploit-framework
nmap nmap-common
8 upgraded, 182 newly installed, 0 to remove and 458 not upgraded.
Need to get 381 MB of archives.
After this operation, 616 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
6) نصب آخرین نسخهی Tor
Tor به صورت مستقیم در مخازن کالی لینوکس موجود است، ولی نرمافزار مخصوص ناشناسماندن را باید مستقیما از وبسایت مرجع (torproject.org) دریافت کرد. علاوه بر این، نسخهی موجود از Tor روی کالی لینوکس به صورت مرتب پشتیبانی و بهروزرسانی نمیشود. این یعنی ممکن است بهروزرسانیهای حیاتی برای پایداری و امنیت را از دست بدهیم.
مخازن Tor Project را به لیست مخازن APT خود اضافه کنید.
echo 'deb https://deb.torproject.org/torproject.org stretch main
deb-src https://deb.torproject.org/torproject.org stretch main' > /etc/apt/sources.list.d/tor.list
wget -O- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo apt-key add -
--2019-02-18 19:28:23-- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc
Resolving deb.torproject.org (deb.torproject.org)... 138.201.14.197
Connecting to deb.torproject.org (deb.torproject.org)|138.201.14.197|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 19665 (19K) [text/plain]
Saving to: ‘STDOUT’
- 100%[=================================================================================================>] 19.20K 47.5KB/s in 0.4s
2019-02-18 19:28:25 (47.5 KB/s) - written to stdout [19665/19665]
OK
وقتی signing key به keyring اضافه شود خروجی OK را میبینید. سپس با استفاده از دستور apt-get زیر، APT را بهروزرسانی کنید.
apt-get update
Hit:1 http://downloads.metasploit.com/data/releases/metasploit-framework/apt lucid InRelease
Get:2 https://deb.torproject.org/torproject.org stretch InRelease [4,965 B]
Get:4 https://deb.torproject.org/torproject.org stretch/main Sources [1,169 B]
Get:5 https://deb.torproject.org/torproject.org stretch/main amd64 Packages [2,400 B]
Hit:3 http://archive-3.kali.org/kali kali-rolling InRelease
Fetched 8,534 B in 8s (1,091 B/s)
Reading package lists... Done
حالا کافی است با استفاده از دستور زیر Tor را نصب کنید.
apt-get install tor deb.torproject.org-keyring
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
mixmaster torbrowser-launcher socat tor-arm apparmor-utils obfs4proxy
The following NEW packages will be installed:
deb.torproject.org-keyring
The following packages will be upgraded:
tor
7) پیکربندی اشتراکگذاری فایل با کمک Syncthing
Syncthing که توسط جیکوب بورگ ساخته شده است، یک جایگزین چندبستره، خصوصی و سبک برای Dropbox جهت همگامسازی فایلها است. انتقال لاگهای کلیدهای فشردهشده (Keystroke Logs)، اسکرینشاتها، تصاویر ضبطشده از وبکم و فایلهای loot حساس بین سرورهای مجازی خصوصی و ماشینهای کالی محلی میتواند برای یک متخصص تست نفوذ کاری طاقتفرسا باشد. همگامسازی فایلها باعث میشود به راحتی بتوان فایلها را با امنیت کامل به اشتراک گذاشت.
8) نصب یک ویرایشگر کد
Atom یک ویرایشگر متن رایگان، متن باز، پر از قابلیت و کاملا قابل شخصیسازی است. این برنامه قابلیتهایی مانند امکان اشتراک کد برای توسعهی گروهی و امکان نصب پکیجهای اضافه را دارد که باعث انعطافپذیری هرچه بیشتر Atom میشوند. از دیگر ویرایشگرهای متن قابل توجه میتوان Geany و Gedit را نام برد.
برای نصب Atom، وارد وبسایت آن شده و آخرین نسخهی فایل نصب مخصوص دبیان را دانلود کنید. سپس یک پنجره ترمینال باز کرده و پیشنیازهای لازم را با استفاده از دستور apt-get زیر نصب کنید.
apt-get install gvfs gvfs-common gvfs-daemons gvfs-libs gconf-service gconf2 gconf2-common gvfs-bin psmisc
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following NEW packages will be installed:
gconf-service (3.2.6-4.1)
gconf2 (3.2.6-4.1)
gconf2-common (3.2.6-4.1)
gvfs-bin (1.36.2-1)
libgconf-2-4 (3.2.6-4.1)
psmisc (23.1-1+b1)
The following packages will be upgraded:
gvfs (1.36.1-1 => 1.36.2-1)
gvfs-common (1.36.1-1 => 1.36.2-1)
gvfs-daemons (1.36.1-1 => 1.36.2-1)
gvfs-libs (1.36.1-1 => 1.36.2-1)
4 upgraded, 6 newly installed, 0 to remove and 462 not upgraded.
1 not fully installed or removed.
Need to get 3,317 kB of archives.
After this operation, 8,909 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
در نهایت از دستور dpkg که یک مدیر پکیج مبتنی بر خط فرمان است، به همراه آرگومان نصب (-i) استفاده کنید.
dpkg -i ~/Downloads/atom-amd64.deb
(Reading database ... 191882 files and directories currently installed.)
Preparing to unpack atom-amd64.deb ...
Unpacking atom (1.29.0) over (1.29.0) ...
Setting up atom (1.29.0) ...
Processing triggers for desktop-file-utils (0.23-3) ...
Processing triggers for mime-support (3.60) ...
وقتی این کار تمام شد، Atom در منوی برنامههای شما در دسترس خواهد بود.
9) برنامه رمزگذار Rubber Ducky را Clone کنید
USB Rubber Ducky یکی از معروفترین ابزارهای Keystroke Injection است. تولید Ducky Payload با استفاده از وبسایت DuckToolKit به راحتی قابل انجام است، ولی اگر یک متخصص تست نفوذ هستید، اشتراکگذاری اطلاعات مشتریان با یک وبسایت چندان کار ایمنی نیست. آپلودکردن محتوای Payloadها در یک وبسایت ثالث میتواند خطرناک باشد.
در عوض میتوان از Git برای کلونکردن مخزن USB Rubber Ducky و رمزگذاری محلی Payloadها استفاده کرد.
git clone https://github.com/hak5darren/USB-Rubber-Ducky
Cloning into 'USB-Rubber-Ducky'...
remote: Counting objects: 1657, done.
remote: Total 1657 (delta 0), reused 0 (delta 0), pack-reused 1657
Receiving objects: 100% (1657/1657), 31.88 MiB | 162.00 KiB/s, done.
Resolving deltas: 100% (745/745), done.
Checking out files: 100% (1509/1509), done.
سپس دایرکتوری را –با استفاده از دستور cd– به USB-Rubber-Ducky/Encoder تغییر داده و از دستور جاوای زیر برای رمزگذاری Payloadهای Ducky بدون استفاده از وبسایتهای ثالث استفاده کنید.
cd USB-Rubber-Ducky/Encoder/
java -jar encoder.jar -i input_payload.txt -o inject.bin
10) تغییر کلیدهای SSH و رمز عبور پیشفرض
رمز عبور پیشفرض برای همهی کالی لینوکسها پس از نصب یکسان است (toor) که باعث میشود خودکارسازی حملات بسیار آسان شود. همچنین کلیدهای SSH پیشفرض به هکرها اجازه میدهند زمانی که مثلا Raspberry Pi را از طریق SSH کنترل میکنید، در ارتباطات شما مداخله کنند.
برای تغییر کلیدهای SSH، ابتدا باید دایرکتوری را تغییر دهید. اجرای دو فرمان زیر کلیدهای SSH را از مقادیر پیشفرض تغییر میدهد.
cd /etc/ssh/
dpkg-reconfigure openssh-server
rescue-ssh.target is a disabled or a static unit, not starting it.
اکنون برای تغییر رمز عبور سیستم کالی خود دستور passwd root را وارد کرده، سپس رمز عبور جدید خود را وارد کنید. پس از آن برای تایید رمز عبور دوباره آن را تایپ کنید. اگر به عنوان کاربر root وارد نشده باشید، ممکن است قبل از این کار رمز عبور فعلی از شما پرسیده شود.
passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
اولین کاری که شما پس از نصب کالی لینوکس انجام میدهید چیست؟
همهی ما علاقهمندیها، مجموعه مهارتها و سطح تجربهی متفاوتی داریم. همین باعث میشود تعیین لیستی از گامهای مناسب که باید پس از نصب کالی برداشته شوند دشوار شود. به نظر شما مرحلهای حیاتی در گامهای بالا جا افتاده است؟ شما کالی لینوکس را پس از نصب چگونه شخصیسازی و تنظیم میکنید؟ نظر خود را در بخش نظرات با ما در میان بگذارید.
اون کدی که برای تغییر پسورد معرفی کردین همیشه کار نمی کنه (می زنه password changed successfully ولی پسورد عوض نمی شه) به جاش می شه از این کد هم استفاده کرد:
sudo -i
passwd username