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 22 June 2022

Анализ сетевых пакетов c TCPDump.

Всем привет.

Сегодня у нас четвертая часть серии "Анализ сетевых пакетов", переходим к TCPDump. Инструмент Tcpdump представляет собой основное средство сетевого анализа, используемое специалистами в сфере информационной безопасности. 


Tcpdump captures packets of network traffic on a given network interface

It uses command line arguments for selecting specific destinations, sources, protocols, etc

It can also use filter files containing command line arguments. Filters are used to restrict analysis to packets of interest

Output from tcpdump is called  dump 


Example dump

Ran tcpdump on the machine xanadu.ieu.edu.tr. First few lines of the output:

01:46:28.808262 IP xanadu.ieu.edu.tr.ssh > adsl-69-228-230-7.dsl.pltn13.pacbell.net.2481: . 2513546054:2513547434(1380) ack 1268355216 win 12816

01:46:28.808271 IP xanadu.ieu.edu.tr.ssh > adsl-69-228-230-7.dsl.pltn13.pacbell.net.2481: P 1380:2128(748) ack 1 win 12816

01:46:28.808276 IP xanadu.ieu.edu.tr.ssh > adsl-69-228-230-7.dsl.pltn13.pacbell.net.2481: . 2128:3508(1380) ack 1 win 12816

01:46:28.890021 IP adsl-69-228-230-7.dsl.pltn13.pacbell.net.2481 > xanadu.ieu.edu.tr.ssh: P 1:49(48) ack 1380 win 16560

Monday 20 June 2022

Настройка сетевого интерфейса в Ubuntu.


Всем привет.

Конфигурирование сетевого интерфейса в Ubuntu с версии 18.04 для многих стало сюрпризом.  Хотя всем привычный конфигурационный файл /etc/network/interfaces существует, однако в нем пусто. А делом в том что конфигурирование через ifupdown было заменено на netplan. Но если вы хотите вернуться к ifupdown установите его командой:

sudo apt install ifupdown

Но зачем устанавливать что-то еще?.  Давайте настроим то что есть. Для начала смотрим содержимое каталога /etc/netplan:

/etc/netplan/50-cloud-init.yaml

network:

    ethernets:

        eth0:

            addresses:

            - 192.168.1.116/24

            gateway4: 192.168.1.1

            nameservers:

                addresses:

                - 192.168.1.20

                search:

                - 192.168.1.21

    version: 2

Конфигурационный файл пишется на языке YAML. Соблюдаем отступы! 

Saturday 18 June 2022

PowerShell для тестирования Windows.

Всем привет.

Статья содержит список PowerShell команд, собранных из разных уголков Интернета, которые могут быть полезны во время тестов на проникновение. Я их нашел на Leakinfo, March 19, 2021.

Список команд включает в себя различные пост-эксплуатационные однострочные программы в чистой PowerShell, не требующие каких-либо потенциально помеченных как вредоносные сторонних модулей, а также набор удобных административных команд. Часть команд вам выдаст пустой ответ – анализируйте сами, бывает разное, либо запрашиваемое значение действительно отсутствует либо оно находится в другом месте реестра.

Поиск файлов с конфиденциальной информацией

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

Ищем потенциально интересные файлы

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

Код:

gci c:\ -Include *pass*.txt,*pass*.xml,*pass*.ini,*pass*.xlsx,*cred*,*vnc*,*.config*,*accounts* -File -Recurse -EA SilentlyContinue

Рекомендуется сделать это для каждого диска, но вы также можете просто запустить его в папке c:\users для некоторых быстрых результатов.

Ищем учетные данные в файлах Sysprep или Unattend

Эта команда будет искать остатки автоматических установок и автоконфигураций, которые потенциально могут содержать пароли в открытом виде или пароли в кодировке base64:

Код:

gci c:\ -Include *sysprep.inf,*sysprep.xml,*sysprep.txt,*unattended.xml,*unattend.xml,*unattend.txt -File -Recurse -EA SilentlyContinue

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

Friday 17 June 2022

HTTP-запросы и парсинг web-страниц в PowerShell.

Всем привет.

Эта статья - гла­ва из кни­ги Андрея Попова «Сов­ремен­ный PowerShell», вышед­шей в изда­тель­стве «BHV» в мар­те это­го года. В кни­ге под­робно опи­сан язык PowerShell и работа с обо­лоч­кой Windows PowerShell в Windows Terminal, вза­имо­дей­ствие с фай­ловой сис­темой, струк­туриро­ван­ными дан­ными и веб-ресур­сами. 

Собственно я больше знаком с первой книгой автора "Введение в PowerShell" которую он издал еще в 2009-м. С нее и началось мое вхождение в мир PowerShell. Поэтому книга «Сов­ремен­ный PowerShell» мне будет не так интересна как первая, которую она повторяет на 80%. Но надо отдать должное автору, что его подача материала всегда отличается ясностью, практичностью и лаконичностью.

Поэтому сегодня мы вместе с Андреем напишем HTTP-запросы и пропарсим web-страницы через PowerShell.

В интернете есть множество сервисов, с которы­ми мож­но работать, обра­щаясь к их ресур­сам по про­токо­лу HTTP. Веб-раз­работ­чики пос­тоян­но работа­ют с такими HTTP-зап­росами для дос­тупа к фун­кци­ям внеш­них API или для тес­тирова­ния собс­твен­ных при­ложе­ний. PowerShell для обра­щения к вебу по HTTP пред­лага­ет два стан­дар­тных коман­дле­та: Invoke-WebRequest и Invoke-RestMethod.

КОМАНДЛЕТ INVOKE-WEBREQUEST

С помощью командлета Invoke-WebRequest можно направить веб-серверу HTTP-запрос и получить от него ответ.

Анализ HTML-страниц

Этот командлет хорошо подходит для анализа HTML-страниц. Еще он умеет сохранять страницы на локаль­ном дис­ке. В этом он похож на кон­соль­ную ути­литу wget и даже име­ет такой псев­доним:

PS C:\Script> Get-Alias wget

CommandType     Name

-----------     ----

Alias           wget -> Invoke-WebRequest

Об­ратим­ся с помощью Invoke-WebRequest к какой-нибудь прос­той стра­нице, нап­ример Example Domain. По умол­чанию Invoke-WebRequest выпол­няет HTTP-зап­рос с методом GET к ресур­су на веб-сер­вере, адрес ресур­са ука­зыва­ется в качес­тве зна­чения парамет­ра -Uri. В резуль­тате воз­вра­щает­ся объ­ект типа HtmlWebResponseObject, в котором хранит­ся информа­ция об отве­те сер­вера:

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 12 June 2022

Scapy packet manipulation.

Всем привет.

Этим я открываю небольшую серию по итогам презентации на тему "Анализ сетевых пакетов" от автора "CE 340/S. Kondakci, IEU, Computer Engineering". По ходу будет масса примеров анализа с помощью таких инструментов как Scapy, Nmap, Nping и tcpdump. Устраивайтесь поудобнее и начнем. А начнем мы со Scapy.

Scapy packet manipulation agenda:

  • Creating a packet
  • Send/Receiving packets
  • Basic Scapy commands
  • Capturing packets and reading packet capture files into Scapy
  • Layering packets

Four steps before:

1. Install Python 3.5+

2. Download and install Scapy

3. Install additional software for special features (optional)

4. Run Scapy with root privileges.


Example: Hello World

send(IP(dst= 127.0.0.1 )/ICMP()/ HelloWorld )

  • send - this tells Scapy that you want to send a packet (just a single packet)
  • IP - the protocol of the packet you want to create
  • (dst= 127.0.0.1 ) - the destination IP to send the packet to 
  • /ICMP() - Create an ICMP packet with the default values provided by Scapy
  • / HelloWorld  - the payload to include in the ICMP packet


Wireshark capture:

Scapy command: send(IP(dst= 127.0.0.1 )/ICMP()/ HelloWorld )

Wireshark output: 

Internet Protocol Version 4, Src: 127.0.0.12 (127.0.0.12), Dst: 127.0.0.1 (127.0.0.1)

Protocol: ICMP

Data: 48656c6c6f576f726c64 or  HelloWorld 


Example: fabricate an ICMP Packet

send(IP(src= 127.0.0.1 , dst= 127.0.0.1 , ttl=128)/ICMP()/ HelloWorld )

Wireshark:

Internet Protocol Version 4, Src: 127.0.0.1 (127.0.0.1), Dst: 127.0.0.1 (127.0.0.1) Time to live: 128


What does this ICMP packet mean?

Internet Protocol Version 4, Src: 127.0.0.1 (127.0.0.1), Dst: 127.0.0.1 (127.0.0.1) Internet Control Message Protocol

Type: 0 (Echo (ping) reply)

Wednesday 8 June 2022

Визуальный ping.


Всем привет.

Оказалось что в дружной семье HpingFping и Nping существует еще одна пингоподобная утилита - Gping.  

Если знакомая всем Ping  – это утилита, используемая администраторами компьютерных сетей для проверки доступности хоста в IP-сети путем измерения времени, которое требуется для сообщений, отправленных с исходного на конечный узел, время чтобы добраться до места назначения и вернуться в исходную точку, то Gping  этакая ее продвинутая сестричка командной строки, которая отображает свои результаты в виде графика. 

Причина, по которой разработчик Gping создал проект опубликован на GitHub, в том что он часто использовал ping -t google.com в командной строке, чтобы получить общее представление о скорости в сети. Однажды он подумал, что график был бы отличным способом визуализации данных. Именно по этой причине он решил попробовать написать кросс-платформенный инструмент, который помог бы ему в процессе визуализации.

Особенности утилиты скромные: бесплатное использование, т.е. исходный код на GitHub, и собственно сам график на выходе.

Установка на Ubuntu:

1) Install the gnupg package, which is used for adding a repository key to APT:

sudo apt install gnupg

2) Add the Azlux repository to APT. Change 'stable' with the codename of your Linux release:

echo "deb http://packages.azlux.fr/debian/ stable main" | sudo tee /etc/apt/sources.list.d/azlux.list

3) Add the Azlux repository key to APT:

wget -qO - https://azlux.fr/repo.gpg.key | sudo apt-key add -

4) Update the APT registry, and install gping:

sudo apt update

sudo apt install gping

Пользуемся так:

gping google.com

или так:

gping google.com ukr.ent


Утилита может измерять и время выполнения локальных команд:

gping --cmd 'ls /'

Мелочь, а приятно.

Удачи.

Monday 6 June 2022

Послезавтра.

Всем привет.

Еще одна почемучка на злобу дня.

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

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

Алекс еще раз зашел в настройку профиля в приложении на смартфоне, протянул пальцем на опцию "Время устройства" и..., хм, увидел что время его IP-камеры отставало ровно на 2 часа. 

"Это как так!?" - подумал Алекс. - "Ровно 2 часа? Странно, но мой часовой пояс то выставлен правильно. Ок, где-то подхватила..." - решил он не долго думая. - "Сбегала небось на свой китайский сервер и забыла где сама находится. Ну что ж, поправим тебе значение вручную."

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

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

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

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

Saturday 4 June 2022

Собираем статистику HyperV, v2.

Всем привет.

Как вы уже поняли с помощью Powershell можно легко получить информацию по всем виртуальным серверам которые управляются в System Center Virtual Machine Manager. Т.е. по новому наш скрипт с которым я чудил два месяца тому теперь может выглядеть совсем по другому.

Пусть $VM = 'SRV-S110-APP-01'

Тогда так получим общую информацию по серверу SRV-S110-APP-01:

Get-SCVirtualMachine -Name $VM | Format-List -Property Name, ComputerName, Description, HostName, OperatingSystem, CPUCount, Memory, MemoryAssignedMB, DynamicMemoryDemandMB,  @{label='ActualSizeVHD GB';expression={$_.TotalSize/1gb -as [int]}}, Status, Location

Так необходимую информацию по сетевому подключению:

Get-SCVirtualNetworkAdapter -VM $VM  | Format-List -Property VirtualNetwork, VlanID, IPv4Addresses, IPv4Subnets, MACAddress 

А так необходимую информацию по дискам:

Get-SCVirtualHardDisk -VM $VM | Format-List -Property VHDFormatType, VHDType, @{label='DiskSize GB';expression={$_.Size/1gb -as [int]}}, @{label='MaxSize GB';expression={$_.MaximumSize/1gb -as [int]}},Location

Как консолидировать в один файл ответы с этих трех запросов вы уже знаете.

Однако по дискам замечу, что Get-SCVirtualHardDisk отдает информацию только по одному виртуальному диску когда он разностный, т.е. по avhdx, а про vhdx-родителя при этом он почему то умалчивает.

Пока так.
Слава Украине!

Thursday 2 June 2022

Учет файловых shared folders.


Всем привет.

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

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

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

Собственно подход и продвижение по пунктам, даже в переводе (оригинал я уже не нашел), вы можете найти здесь. Мой результат после ревизии кода получился следующий:

$ServerName = 'Имя сервера'

$share = Get-WmiObject -Class Win32_Share -ComputerName $ServerName –filter "type=0 AND name like '%[^$]'"

$share.path

Отчет 1: про размеры высокоуровневых сетевых папок.

$sb={

$shares=Get-WmiObject -Class Win32_Share -filter "type=0 AND name like '%[^$]'"

foreach ($share in $shares) {

dir $share.path | where {$_.PSIscontainer} | `

foreach {

  $stats = dir $_.Fullname -recurse -errorAction 'SilentlyContinue' | where {-NOT $_.PSIscontainer} | `

  Measure-object -Property Length -sum  

  New-Object -TypeName PSObject -Property @{ 

    Computername=$env:Computername

    Path=$_.Name

    Fullname=$_.Fullname

    SizeMB=[math]::Round(($stats.sum/1MB),2)

    NumberFiles=$stats.count

    } #property

  } #foreach stats

  }

} #sb


$results = Invoke-Command -ScriptBlock $sb -ComputerName $ServerName -HideComputerName

$results | Format-Table Computername,Fullname,SizeMB,NumberFiles -autosize

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) - сетевой трафик, полученный в результате мониторинга сети организации.

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

Популярное