Kali Lunix – основанный на debian дистрибутив, главное предназначение которого – выполнение тестирований на проникновение (пентестов) с почти неограниченным спектром возможностей в зависимости от целей пользователя. Но что же надо сделать сразу после установки, чтобы профессионально оценивать безопасность систем?
Kali Lunix, как и другие дистрибутивы, имеет большие возможности кастомизации. С помощью определенных команд автоматизируются задачи, устанавливается необходимый софт, создаются вспомогательные пользователи, оптимизируется взаимодействие с терминалом.
Установка Git
Git – распределенная система управления версиями, позволяющая совместно эксплуатировать и корректировать код. С ее помощью появляется возможность клонировать репозитории, никак не ограничивая свои потребности в проведении тестов на проникновение имеющимися функциями Kali Lunix.
Переходим в терминал для установки git:
root@kali:~# apt install git
Установив зависимости, можно будет качать репозитории с помощью команды git clone. Чтобы это сделать, копируем url необходимого репозитория из браузера или интерфейса Github:
Скопированную ссылку из буфера обмена вставляем в терминал после введенной команды:
root@kali:~# git clone https://github.com/bol-van/zapret.git
Cloning into 'zapret'...
remote: Enumerating objects: 206, done.
remote: Counting objects: 100% (206/206), done.
remote: Compressing objects: 100% (152/152), done.
remote: Total 922 (delta 95), reused 146 (delta 47), pack-reused 716
Receiving objects: 100% (922/922), 2.37 MiB | 83.00 KiB/s, done.
Resolving deltas: 100% (495/495), done.
В итоге – локальная копия репозитория, вывод со статистикой.
Назначение Bash-алиасов
Для постоянно используемых команд надо пользоваться алиасами. Например, уменьшим команду beside-ng (сканер безопасности WEP-сетей). Хранение алиасов Bash происходит в файле – есть возможность их дополнения и обновления:
root@kali:~# nano ~/.bash_aliases
Если файл пустует, то раньше алиасы для этого не использовались. Вводим строчку в открытый nano-файл:
alias hackwifi='besside-ng -W -v wlan0'
Закрываем, сохраняем. Рассматриваем синтаксис: alias объявляет псевдоним hackwifi и указывает на команду в одинарных кавычках. Проверяем в новом окне терминала:
root@kali:~# hackwifi
[18:39:34] mac 3c:46:d8:4e:ef:aa
[18:39:34] Let's ride
[18:39:34] Appending to wpa.cap
[18:39:34] Appending to wep.cap
[18:39:34] Logging to besside.log
[18:39:35] Found AP 44:3a:cb:38:51:42 [watwutwot] chan 1 crypto WPA dbm -49
[18:39:35] Found AP 4c:8b:30:83:ed:91 [TELUS3079-2.4G] chan 1 crypto WPA dbm -71
[18:39:35] Found AP 1c:87:2c:d3:34:18 [Kuroki] chan 3 crypto WPA dbm -89
[18:39:37] Found AP 4c:8b:30:24:71:75 [SAMUEL9] chan 8 crypto WPA dbm -73
[18:39:37] Found AP 0c:51:01:e6:01:c4 [fbi-van-24] chan 11 crypto WPA dbm -46
[18:39:37] Found AP 70:f1:96:8e:5c:02 [TELUS0455-2.4G] chan 11 crypto WPA dbm -78
[18:39:38] Found client for network [Kuroki] 90:06:28:cb:0f:f3
[18:39:41] Found AP f0:f2:49:3c:ec:a8 [fbi-van-24] chan 1 crypto WPA dbm -49
[18:39:42] Found AP bc:4d:fb:2c:6d:88 [SHAW-2C6D80] chan 6 crypto WPA dbm -77
[18:39:42] Found client for network [SHAW-2C6D80] 64:5a:04:98:e1:62
[18:39:43] Found AP 10:78:5b:e9:a4:e2 [TELUS2151] chan 11 crypto WPA dbm -49
[18:39:43] Found client for network [fbi-van-24] 60:6b:bd:5a:b6:6c
Создание непривилегированного пользователя
Мало кто постоянно работает под рутом. Чтобы обезопасить систему, надо добавить простого пользователя. Наличие багов в программах под рутом несут в себе опасность для файловой системы, а в серверном ПО вообще предоставляют доступ злоумышленникам к оболочке суперпользователя.
Для безопасности добавляем непривилегированного пользователя:
root@kali:~# useradd -m proglib -G sudo -s /bin/bash
root@kali:~# passwd proglib
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
С помощью первой команды добавляется пользователь proglib, домашний каталог /home/proglib и группа с таким же названием, после чего создает пользователя в группе sudo, который имеет доступ к руту. С помощью второй команды ставится пароль.
Установка терминального мультиплексора
В этой ситуации мультикомпрессор представлен в виде плиточного эмулятора терминала. В нем допускается открытие ряда сессий в одном окне. Основное достоинства – просмотр каждой сессии одновременно, без перекрытия одной сессии другой.
На картинке изображен Tilix – качественный open-source эмулятор терминала. Альтернативные варианты – tmux и screen. В репозиториях Kali Lunix также есть 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
Установка необходимых инструментов
Ряд версий Kali Lunix предназначены для минималистичных тестировщиков уязвимостей, предпочитающих обходится малым – без лишних инструментов. Поэтому потребуется ручная установка нужных конкретно вам инструментов, разновидности которых зависят от каждого пентестера, его навыков, опыта, имеющихся знаний.
С помощью Kali Metapackages выполняется установка отдельных групп инструментов, просматривается содержимое метапакетов. Описание и размер нужного метапакета. Процесс установки инструментов Kali Lunix (даже если нет в полных образах):
root@kali:~# apt update && sudo apt install kali-linux-all
Установка свежего Tor
Для обеспечения анонимности софт надо скачивать из официальных источников. Браузер Tor, доступный в репозиториях Kali Lunix, может быть устаревшим, поэтому вы не получите важных обновлений и столкнетесь недостаточным уровенем безопасности. В связи с этим надо добавить репозитории Tor Project из официального источника:
root@kali:~# 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
После этого надо скачать ключ подписки пакета, импортировав его сразу в систему:
root@kali:~# wget -O- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo apt-key add -
--2019-04-26 05:00:39-- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc
Resolving deb.torproject.org (deb.torproject.org)... 82.195.75.101, 95.216.163.36, 138.201.14.197, ...
Connecting to deb.torproject.org (deb.torproject.org)|82.195.75.101|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 19665 (19K) [text/plain]
Saving to: ‘STDOUT’
- 100%[=========================================================================>] 19.20K 43.7KB/s in 0.4s
2019-04-26 05:00:42 (43.7 KB/s) - written to stdout [19665/19665]
OK
Появление ОК в выводе будет говорить об успешном добавлении ключа. Затем надо обновиться:
root@kali:~# 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:
root@kali:~# 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
Установка Syncthing для хранения данных
Syncthing – кроссплатформенный, анонимный, простой альтернативный вариант проприетарным облачным сервисам. Для пентестера процессы передачи изображений, кейлогов, видеозаписей и других файлов между локальными машинами Kali и виртуальными сервисами зачастую становится разочарованием. С помощью Syncthing обеспечивается высокая безопасность передачи.
Сначала надо установить зависимости:
root@kali:~# apt-get update && apt-get install apt-transport-https -V
Hit:2 http://archive-7.kali.org/kali kali-rolling InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
apt-transport-https is already the newest version (1.6.3).
0 upgraded, 0 newly installed, 0 to remove and 406 not upgraded.
На втором шаге скачать и поставить ключи:
root@kali:~# curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
OK
Ключи gpg требуются системе, чтобы проверять подпись источника при установке пакетов. За счет подписей возможно обеспечение целостности пакетов, которая нарушается из-за корректировки оригинального пакета, перехвата web-трафика.
Добавляем репозиторий проекта в перечень источников:
root@kali:~# echo 'deb https://apt.syncthing.net/ syncthing stable' >> /etc/apt/sources.list
Устанавливаем:
root@kali:~# apt update && apt-get install syncthing
Hit:1 https://apt.syncthing.net syncthing InRelease
Hit:2 http://kali.mirror.garr.it/mirrors/kali kali-rolling InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
syncthing (0.14.48)
0 upgraded, 1 newly installed, 0 to remove and 406 not upgraded.
Need to get 6,824 kB of archives.
After this operation, 15.7 MB of additional disk space will be used.
Get:1 https://apt.syncthing.net syncthing/stable amd64 syncthing amd64 0.14.48 [6,824 kB]
Fetched 6,824 kB in 15s (459 kB/s)
Selecting previously unselected package syncthing.
(Reading database ... 183744 files and directories currently installed.)
Preparing to unpack .../syncthing_0.14.48_amd64.deb ...
Unpacking syncthing (0.14.48) ...
Setting up syncthing (0.14.48) ...
Processing triggers for man-db (2.8.3-2) ...
Запуск выполняется командой syncthing.
Установка редактора кода
Atom – бесплатный, функциональный, кастомизируемый текстовый редактор, позволяющий совместно пользоваться кодом в реальном времени. Также есть функции интуитивного автоматического завершения, установки пакетов для увеличения функциональности. Альтернативные варианты – Gedit, Geany.
Сначала требуется скачать deb-пакет, после чего поставить зависимости:
root@kali:~# apt 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:
root@kali:~# 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) ...
Теперь видим, что редактор доступен в меню приложений:
root@kali:~# 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) ...
Установка OpenVAS
OpenVAS – сканер уязвимостей, расширяющий инструментарий пентестера, неплохо справляющийся с оценкой безопасности узлов. Платные версии более функциональны, но и стоят откровенно дорого. OpenVAS – отличный вариант для новичков, которые хотят понять принципы работы таких сканеров.
Изменение ключей и пароля SSH
Установка Kali Lunix происходит с одним и тем же паролем – toor. Также преступникам обычные ключи SSH помогают перехватывать сообщения. Чтобы изменить ключи. Переходим в каталог и сбрасывает конфигурацию сервера:
root@kali:~# cd /etc/ssh/
root@kali:~# dpkg-reconfigure openssh-server
rescue-ssh.target is a disabled or a static unit, not starting it.
Меняем пароль доступа к руту:
root@kali:~# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully