Статья Собираем боевую машину для пентеста с нуля - часть 2

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
Первая часть - здесь были подготовительные работы по установке и настройке системы. А теперь займёмся установкой программ.

Первое что нас должно интересовать - это установленные языки программирования, даже если ты полный ламер, и не можешь связать пару строк. Всё просто - мы будем пользоваться всевозможными программами, а они как известно пишутся на разных ЯП. В Linux Mint уже предустановлены python2 и python3. Проверить это можно введя соответствующие команды в терминал.

895.png


Также присутствует язык perl.

12.png


Однако очень нужный PHP не предустановлен. Зачем нам вообще PHP? Ну как же, все уязвимые машины для тренировки отработки уязвимостей, такие как DVWA, bWAPP, Metasploitable 2 и т.д., работают на PHP.
Для установки PHP воспользуемся командой:
sudo apt-get install php7.4

88748.png


После установки пакетов убедимся что PHP установился.

9653.png


Кроме PHP у нас установился также и сервер apache2, необходимый для запуска локальных веб-приложений. Если вы хотите иметь максимально новые пакеты ОС, то можно обновиться введя по-очереди следующие команды:

sudo apt-get update и sudo apt-get upgrade

Но будьте готовы что процесс апгрейда займёт довольно продолжительное время, и новые пакеты заберут часть дискового пространства. Стоит заметить, что пакеты всё равно не будут самыми последними, потому в самом репозитории они отсутствуют.

Например, питон в репозитории сейчас версия - 3.8, чтобы обновить до 3.9 используем ppa:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.9


И чтобы по-умолчанию в системе запускался именно 3.9, нужно выбрать альтернативу. Посмотрим путь к питону:

98985.png


И с этим путём сделаем его запуск первым номером:

sudo update-alternatives --install /usr/bin/python python3 /usr/bin/python3.9 1

Всё, теперь по-умолчанию при наборе в терминале python3 будет запускаться интерпретатор версии 3.9.

Следующий на очереди GO.

sudo apt install golang

Проверим установку командой go version

96594.png


Java тоже уже присутствует в дистрибутиве.

692.png


Следующий Ruby.

sudo apt install ruby-full

Проверяем...

41.png


Ну что, неплохо, у нас уже есть целый ряд различных ЯП. Однако уязвимые машины и многие другие приложения, работают с базами данным, чаще всего MySQL. Мы установим сразу более продвинутый вариант - MariaDB, построенный на базе MySQL.

sudo apt install mariadb-server

Проверяем:

87174.png


Так как большинство полезного софта находится на GitHub, необходимо предварительно сделать установку git

sudo apt-get install git

Готово!

9552.png


В процессе установки разных программ вы обязательно встретитесь с докер-контейнерами, поэтому установим докер. Для начала обновимся, и установим некоторые зависимости:

sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common


Импортируем ключ GPG, используемый для подписи пакетов приложения.

curl -fsSL | sudo apt-key add -

Добавляем репозиторий, чтобы была возможность установить последнюю стабильную версию Docker.

sudo add-apt-repository "deb [arch=amd64] $(. /etc/os-release; echo "$UBUNTU_CODENAME") stable"

Ещё раз обновим пакеты уже с новым репозиторием sudo apt-get update

Установим докер

sudo apt-get install docker-ce

Добавим своего пользователя в группу.

sudo usermod -aG docker explorer

Проверим установку

docker --version

6541.png


Для дальнейшей установки всевозможных зависимостей и пакетов, понадобится pip - менеджер пакетов Python.

sudo apt install python3-pip

Выключим машину, создадим ещё один снимок для восстановления. Фухх!!! Пора наконец-то приступать непосредственно к самим программам. Первое, что нам понадобится установить, это инструменты для фаззинга скрытых директорий и файлов. Фаззеров существует довольно много, я взял пару вариантов - Wfuzz на питоне и ffuf на го.

Установим Wfuzz.

sudo pip3 install wfuzz

52455.png


Для того, чтобы воспользоваться любым фаззером, необходимо иметь вордлисты - файлы со списками ключевых слов. В сети много разных вордлистов, для примера можно взять отсюда directory-list-2.3-medium.txt. В домашней директории сделаем папку wordlists, и все словари хранить будем там.

Пример команды поиска директорий:

wfuzz -c -t 20 -z file,/home/explorer/wordlists/directory-list-2.3-medium.txt -u https://codeby.net/FUZZ --hc 404

24415.png


Установка ffuf:

sudo git clone ffuf/ffuf
cd ffuf
go get
sudo go build


Пример команды поиска директорий:

./ffuf -w /home/explorer/wordlists/directory-list-2.3-medium.txt -u https://codeby.net/FUZZ

5146.png


Для удобства использования программы, создадим алиас. Наберём команду sudo xed ~/.bashrc и откроется файл, в самый конец которого пропишем путь к файлу.

alias ffuf="/home/explorer/ffuf/./ffuf"

Сохраняем, и перезагружаем файл .bashrc

source ~/.bashrc

Теперь запустить программу можно набрав в терминале ffuf.

Следующий важный инструмент для поиска sql-инъекций sqlmap. Установка:

git clone --depth 1 sqlmapproject/sqlmap sqlmap-dev

Для удобства использования программы, создадим алиас. Наберём команду sudo xed ~/.bashrc и откроется файл, в самый конец которого пропишем путь к питон-файлу.

alias sqlmap="python3 /home/explorer/sqlmap-dev/sqlmap.py"

Сохраняем, и перезагружаем файл .bashrc

source ~/.bashrc

Теперь запустить программу можно всего лишь набрав в терминале sqlmap. Пример работы программы:

sqlmap -u --dbs --batch

6522.png


Nmap. Сканер портов и не только. Чтобы установить последнюю версию проделаем следующие манипуляции:

Скачивает по ссылке rpm-пакет

Далее устанавливаем alien

sudo apt-get install alien

Преобразуем rpm в deb-пакет с помощью команды alien

sudo alien /home/explorer/Загрузки/nmap-7.91-1.x86_64.rpm

Устанавливаем пакет Debian командой:

sudo dpkg --install /home/explorer/nmap_7.91-2_amd64.deb

Проверяем работоспособность.

14.png


Отлично, теперь установочные deb и rpm пакеты можно смело удалить, чтобы не занимали место.

Burp Suite - эту программу просто нельзя пропустить, для её работоспособности нужно установить openjdk.

Скачиваем архив:

curl -O

Распаковываем:

tar xvf openjdk-14_linux-x64_bin.tar.gz

Перемещаем папку:

sudo mv jdk-14 /opt/

Для использования в автоматическом режиме, выполним эти команды:

sudo update-alternatives --install /usr/bin/java java /opt/jdk-14/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk-14/bin/javac 1


На форуме есть и сама программа, и описание как установить, так что думаю дальше сами справитесь )

Рекомендую дополнительно поставить альтернативный терминал. Гораздо удобнее, когда можно одновременно работать, и видеть всё что происходит в нескольких окнах одного терминала. Есть разные варианты, остановился на tilix.

Установим:

apt install tilix

После этого командой tilix его можно запускать из родного терминала, выполнив команду tilix.

744.png


Но это какое-то масло-масляное, совсем не то что мы хотели, какое тут может быть удобство? Исправим ситуацию очень легко - напишем небольшой скриптик tilix.sh. Создайте новый файл на рабочем столе со следующим содержимым:

#!/bin/bash
tilix --geometry=100x24+400+200


Затем сделаем файл исполняемым, и теперь двойным кликом по файлу запускается tilix. Настройте его внешний вид на своё усмотрение, и наслаждайтесь многооконным интерфейсом.

412.png


Также можно скрипт перенести в любое место, например домашнюю папку и сделать на него симлинк на рабочем столе:

sudo ln -s /home/explorer/tilix.sh /home/explorer/Рабочий\ стол/terminal

Если вы испытываете трудности с самостоятельной установкой нужных инструментов, то можно подключить репозитории Кали. Чтобы ничего не сломать, есть хорошая . После подключения репозитория, установка становится весьма простой, например:

sudo aptitude install -t kali-rolling hydra

6525.png


Поскольку ОС Линукс Минт является в отличии, например от Дебиана, не голой как барабан, то здесь присутствуют программы, которые могут быть не нужны. Я к примеру, не буду пользоваться предустановленным почтовым клиентом thunderbird. Удалить ненужные пакеты можно используя purge:

sudo apt-get purge thunderbird*

Ну вот и всё друзья, всё самое сложное позади, дальше уже устанавливайте те инструменты, которые нужны именно вам. Не забывайте делать снимки виртуалки, чтобы в случае проблем, можно было откатиться в рабочее состояние.
 

yamakasy

Green Team
30.10.2020
158
113
BIT
0
спасибо за информативную статью. а как можно установить компилятор для с++ на линукс через терминал?
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
спасибо за информативную статью. а как можно установить компилятор для с++ на линукс через терминал?
В Linux Mint компилятор Си уже имеется (gcc). Проверить можно командой gcc --version

fyuk.png


Компилятор С++ (g++) тоже есть.

Но если в дистрибутиве его нет, то устанавливается командой
sudo apt install g++
 
  • Нравится
Реакции: Dervish

yamakasy

Green Team
30.10.2020
158
113
BIT
0
В Linux Mint компилятор Си уже имеется (gcc). Проверить можно командой gcc --version

Посмотреть вложение 48371


Компилятор С++ (g++) тоже есть.

Но если в дистрибутиве его нет, то устанавливается командой

sudo apt install g++
угу , спасибо. А я правильно понимаю , что бы стартануть файл с++ , нужно также как с питоном прописать g++ имяфайла.cpp?
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
угу , спасибо. А я правильно понимаю , что бы стартануть файл с++ , нужно также как с питоном прописать g++ имяфайла.cpp?
Нет, не правильно, совсем разный подход. Питон интерпретируемый язык, а C++ компилируемый.

Для C++ требуется 2 шага:

1. Компиляция g++ test.cpp -o test
2. Запуск ./test

Для питона 1 шаг:

1. Запуск python3 proga.py
 
  • Нравится
Реакции: Image_5904 и Dervish

yamakasy

Green Team
30.10.2020
158
113
BIT
0
Нет, не правильно, совсем разный подход. Питон интерпретируемый язык, а C++ компилируемый.

Для C++ требуется 2 шага:

1. Компиляция g++ test.cpp -o test
2. Запуск ./test

Для питона 1 шаг:

1. Запуск python3 proga.py
понял, блпгодарствую
 
  • Нравится
Реакции: Vrik

Alex Trim

Green Team
12.07.2020
18
11
BIT
0
Можно в статью ещё добавить как установить pip2 в новые дистрибутивы Linux. Её изъяли, потому что поддержка Python2 прекратилась, но она нужна для установки ряда полезных утилит, у которых есть зависимости, написанные под Python2. И Python3 (pip3) устанавливать их не даёт.

Установка:
Bash:
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
python2 get-pip.py

Взято отсюда:
 
  • Нравится
Реакции: wideybro

Ruby

One Level
16.07.2019
8
31
BIT
12
Для более безопасного и простого добавления кали репозитория можно юзать katoolin. Там сразу и список утилит есть которые можно установить.
 

Alex Trim

Green Team
12.07.2020
18
11
BIT
0
Вопрос.
У нас стоял Python 3.8. Мы установили Python 3.9.

Python 3.8 нужно/можно/не_надо удалять?
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
Вопрос.
У нас стоял Python 3.8. Мы установили Python 3.9.

Python 3.8 нужно/можно/не_надо удалять?

Удалять не нужно, но можно и удалить если эта версия не нужна. Можно устанавливать любое количество версий, они друг другу никак не мешают и не конфликтуют.
 

Alex Trim

Green Team
12.07.2020
18
11
BIT
0
Удалять не нужно, но можно и удалить если эта версия не нужна. Можно устанавливать любое количество версий, они друг другу никак не мешают и не конфликтуют.
А как правильно удалить версию 3.8, чтобы не поломать версию 3.9? Там же наверняка есть общие связи.
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
А как правильно удалить версию 3.8, чтобы не поломать версию 3.9? Там же наверняка есть общие связи.
Я не рекомендую удалять предустановленную изначально в дистрибутиве версию.
Но если хотите удалить: как и любой пакет удаляется apt remove python3.8 но с удалением python3.8 но у вас всё равно уйдут многие зависимости. Поставить их обратно можно командой apt-get install python3 но это также вернёт обратно python3.8 )

Поэтому вместо того чтобы удалять python3.8, лучше сделайте следующее:

1. Удалить симлинк python3 на python3.8 (sudo rm /usr/bin/python3)
2. Сделать новый симлинк на python3.9 (sudo ln -s /usr/bin/python3.9 /usr/bin/python3) .

Теперь при наборе в терминале python3, у вас запустится интерпретатор python3.9
 

Notsaint

Green Team
21.02.2020
6
0
BIT
33
Я понимаю, что пентест сайтов, поиск инъекций - это супер полезные вещи как для отработки навыков, так и для чисто самостимуляции.

А можно лм подсобрать машинку с тулзами, направленными чисто на пентест / взлом локалки, компов с виндой? Есть, правда, Ninjutsu OS (кстати, я не нашел про нее инфу на форуме), но она, как мне кажется еще сыровата...
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
Я понимаю, что пентест сайтов, поиск инъекций - это супер полезные вещи как для отработки навыков, так и для чисто самостимуляции.

А можно лм подсобрать машинку с тулзами, направленными чисто на пентест / взлом локалки, компов с виндой? Есть, правда, Ninjutsu OS (кстати, я не нашел про нее инфу на форуме), но она, как мне кажется еще сыровата...

Конечно можно, никто не мешает это сделать. Я бы сказал, что софта придётся ставить по объёму больше. И в целом будет посложнее - различные обходы AV, крипт нагрузок, повышение привилегий и прочее. По виндовым машинам обязательно нужно кроме атакующей машины, иметь на виртуалке жертвы от XP до ласт версии. Но лично я не увлекаюсь виндой, всё моё это веб & линукс.
 

Notsaint

Green Team
21.02.2020
6
0
BIT
33
Конечно можно, никто не мешает это сделать. Я бы сказал, что софта придётся ставить по объёму больше. И в целом будет посложнее - различные обходы AV, крипт нагрузок, повышение привилегий и прочее. По виндовым машинам обязательно нужно кроме атакующей машины, иметь на виртуалке жертвы от XP до ласт версии. Но лично я не увлекаюсь виндой, всё моё это веб & линукс.

Вот жаль. Ибо виндовых серверов и машинок очень много :)
 

aolega

New member
13.01.2020
3
0
BIT
1
a@a:~$ sudo add-apt-repository "deb [arch=amd64] Index of linux/ubuntu/ $(. /etc/os-release; echo "$UBUNTU_CODENAME") stable" #Добавляем репозиторий, чтобы была возможность установить последнюю стабильную версию Docker.
[sudo] пароль для a:
Некорректные данные ввода, репозиторий не добавлен.
a@a:~$
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
a@a:~$ sudo add-apt-repository "deb [arch=amd64] Index of linux/ubuntu/ $(. /etc/os-release; echo "$UBUNTU_CODENAME") stable" #Добавляем репозиторий, чтобы была возможность установить последнюю стабильную версию Docker.
[sudo] пароль для a:
Некорректные данные ввода, репозиторий не добавлен.
a@a:~$

Вот к чему бездумный копипаст приводит. Конечно с такой командой не добавится ) Вместо Index of linux/ubuntu/ нужно ссылку указывать
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!