• Codeby web-security - Курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фазинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

Статья The Artillery Project - защищаемся от сканирований и брута

qvin

Red Team
05.12.2016
194
266
#1


Тестировать на проникновение - это круто. Но как защититься чтобы тебя не взломали?
Artillery — это IPS система, позволяющая проводить мониторинг файловой системы на предмет модификаций и журналов служб на предмет сообщений об ошибках, проводить анализ конфигурации операционной системы и выявлять уязвимости, работать как honeypot и блокировать нарушителей по IP адресам, а так же уведомлять системного администратора об атаках по электронной почте.
Инструмент хороший. Давайте установим его.

Установка.
Код:
git clone https://github.com/BinaryDefense/artillery.git
cd artillery
python setup.py
После запуска установка вас спросят Хотите ли вы сделать чтобы при запуске системы Artillery запускалась автоматически.
Позже задаст вопрос, запустить ли сейчас Artillery.
Поздравляю вы поставили Artillery на вашу систему.
Установить и запустить это будет маловато. Нужно ещё её правильно настроить.
Давайте пойдем по настроим.

Открываем файл конфигурации
Код:
nano/var/artillery/config
видим что у нас включен мониторинг папок /root//var//etc/

Код:
# DETERMINE IF YOU WANT TO MONITOR OR NOT
MONITOR="ON"
#
# THESE ARE THE FOLDERS TO MONITOR, TO ADD MORE, JUST DO "/root","/var/", etc.
MONITOR_FOLDERS="/var/www","/etc/"
Так же мы можем увидеть наши HONEYPOT порты

Код:
# PORTS TO SPAWN HONEYPOT FOR
PORTS="22,1433,8080,21,5900,25,53,110,1723,1337,10000,5800,44443,16993"
Сюда вы можете добавить порты которые у вас не установлены на сервисы и ловить "китайских хакеров" которые пытаются вас сканировать.
После старта Artillery слушает порты эти порты которые для злоумышленников очень лакомый кусочек.
Также есть Банлист он находиться тут
Код:
/var/artillery/banlist.txt
там хранятся все заблокированные IP адреса
Ниже можно включить или выключить мониторинг SSH и защитить его от брута.
Код:
# DO YOU WANT TO MONITOR SSH BRUTE FORCE ATTEMPTS
SSH_BRUTE_MONITOR="ON"
#
# HOW MANY ATTEMPTS BEFORE YOU BAN
SSH_BRUTE_ATTEMPTS="4"
Если вы не всегда сидите за компом и мониторите систему вы можете настроить чтобы Artillery уведомляла вас по почте о злых намереньях хакеров на вас напасть.

Код:
# SHOULD EMAIL ALERTS BE SENT
EMAIL_ALERTS="OFF"
#
# CURRENT SUPPORT IS FOR SMTP, ENTER YOUR USERNAME AND PASSWORD HERE. LEAVE BLANK FOR OPEN RELAY
SMTP_USERNAME=""
#
# ENTER THE SMTP PASSWORD HERE. LEAVE BLANK FOR OPEN RELAY
SMTP_PASSWORD=""
#
# THIS IS WHO TO SEND THE ALERTS TO - EMAILS WILL BE SENT FROM ARTILLERY TO THIS ADDRESS
ALERT_USER_EMAIL="user@whatever.com"
#
# FOR SMTP ONLY HERE, THIS IS THE MAILTO
SMTP_FROM="Artillery Incident"
#
# SMTP ADDRESS FOR SENDING EMAILS, DEFAULT IS GMAIL
SMTP_ADDRESS="smtp.gmail.com"
#
# SMTP PORT FOR SENDING EMAILS DEFAULT IS GMAIL WITH TTLS
SMTP_PORT="587"
Для того чтобы все логи нашей программы писались в папку с программой то внизу в измените

Код:
# Specify SYSLOG TYPE to be local, file or remote. LOCAL will pipe to syslog, REMOTE will pipe to remote SYSLOG, and file will send to alerts.log in local artillery directory
SYSLOG_TYPE="LOCAL"
с LOCAL на FILE

Тогда в папке /var/artillery/logs/ будут сохраняться логи.

Если вы настроили ваш конфиг файл сохраняем его и закрываем.
И перезапускаем Artillery чтобы наши новые настройка вступили в силу.
Код:
python restat_server.py
Если мы проверим какие порты у нас открыты
Код:
netstat –antp | grep LISTEN
Screenshot_20180220_131913.png
то мы увидим что все порты которые мы указывали к разделе Honeypot они здесь присутствуют.

Воспользовавшись утилитой nmap я вот что увидел.
Screenshot_20180220_124654.png

Чтобы удалить IP адрес из Банлиста нужно запустить скрипт из каталога Artillery
Код:
python remove_ban.py 192.168.1.1
 
Последнее редактирование модератором:

Us3rn4me

New member
26.02.2018
4
2
#2
Исправьте команду: python restat_server.py
Должно быть: python restart_server.py
И разделите nano /var/artillery/config чтобы копипастерам было легче.
 
Последнее редактирование:

rain.seller

Active member
14.02.2018
34
36
#3
По мне лучше использовать правильно настроенный rkhunter, iptables и Maltrail.
Про последнего на форуме была статья https://codeby.net/forum/threads/ma...enija-vredonosnogo-trafika.59192/#post-274205

Эта поделка считает пакеты, а делает за нее все делает iptables. Не проще бы было изучить iptables и сделать нечно подобное:
iptables -A SSH_FILTER -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 5 -j DROP
iptables -A SSH_FILTER -m recent --set -j ACCEPT
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 22 -j SSH_FILTER
Здесь автоматом, всё что идет на 22 порт, проходит фильтр "SSH_FILTER" и если в минуту подключений больше 5 - то в бан.
Свой IP в whitelist добавляем так:
iptables -A INPUT -s MY_IP -p tcp -m tcp --dport 22 -j ACCEPT

---- Automatically Merged Double Post ----

Забыл добавить.
Самая лучшая защита:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
 
Последнее редактирование:
Вверх Снизу