Логирование всех действий приложения

Discussion in 'Этичный хакинг или пентестинг' started by deim_1, 10 Sep 2020.

  1. deim_1

    deim_1 Member

    Joined:
    3 Feb 2016
    Messages:
    64
    Likes Received:
    10
    Reputations:
    0
    Доброго времени суток. Появилась необходимость логировать все действия подозрительного приложения. Под действиями я понимаю какие файлы пишет, на какие внешние IP ходит, загрузку проца, использование памяти, использование каких-то других ресурсов типа микрофона или камеры. В общем по максимуму информации. платформа Windows. Какие есть софтины под такую задачу?
     
  2. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,484
    Reputations:
    25
    Одной тулзы наверное нет, но несколькими все можно разрулить.

    procmon - логирование попыток открывать файлы, ветки реестра и что-то еще... не помню, но иногда одного этого хватает.
    wireshark - само-собой для логирования передаваемых по сети данных.
    Process Explorer - да, обычный диспетчер задач, но в нем можно посмотреть открытые хендлы (файлы, мьютексы, етц) а посредством дебугга узнать что это такое открыто вообще.
    winapioverride - логирование API - вызовов. Я не юзал, мне всегда хватало Spy++ или чего-то подобного - но вроде-как хвалят.
    Дебугга - ну это само-собой WinDBG. Конечно не Syser, дебажить Венду на живой системе не умеет, но кое-что посмотреть все-равно иногда требуется. К нему понадобятся символы ибо без них там не особо чего наделаешь, но какбэ это уже опционально :)

    Можно еще чего погуглить - но это вроде-как основное.
     
  3. fandor9

    fandor9 Reservists Of Antichat

    Joined:
    16 Nov 2018
    Messages:
    630
    Likes Received:
    1,050
    Reputations:
    47
    Ленивый вариант: можно запустить под Sandboxie и дополнительно к нему прикрутить плюшки
     
  4. deim_1

    deim_1 Member

    Joined:
    3 Feb 2016
    Messages:
    64
    Likes Received:
    10
    Reputations:
    0
    Как в wireshark выделить сетевую активность конкретного приложения?
    Или как-то это организовать в связке с другой программой?
    Можно конечно писать весь сетевой трафик, а потом фильтровать только то что нужно. Только вот откуда взять инфу по тому что фильтровать.
     
  5. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,484
    Reputations:
    25
    Ваершарк не умеет (кажись) хавать pid. Но если взять другой лог любого приложения которое оценивает сетевую активность и скрестить с логом
    шарка - можно отфильтровать файл уже по факту. Формат этого файла есть в паблике (и вообще он кажись открыт).

    Готового ПО такого не знаю, но в сущности там не должно быть особо много возни.
    ===========================================
    Можно сделать например через какой-нибудь соксификатор или фаерволл. Тоесть заставить весь траф этого приложения
    проходить через другую сетевую карту (если физическая карта одна - есть VirtualBox и иже с ним). Попробуй подумать в этом направлении.

    UPD: кстати если так - можно и вообще просто поднять виртуалку, подождать маленько и фильтром накрыть все что тебе не нужно. А потом
    запускаешь прогу и должен получиться траф этого приложения ну... с какой-то долей примесей.
     
    dooble and fandor9 like this.
  6. fandor9

    fandor9 Reservists Of Antichat

    Joined:
    16 Nov 2018
    Messages:
    630
    Likes Received:
    1,050
    Reputations:
    47
    Если вам под винду, то посмотрите https://github.com/airbus-cert/Winshark#Filtering-on-process-id :
    Сначала устанавливаете вайршарк, потом виншарк
    затем в консоли
    Code:
    netsh.exe trace start capture=yes report=no correlation=no
    logman start Winshark-PacketCapture -p "Microsoft-Windows-NDIS-PacketCapture" -rt -ets
    потом соответственно запускаете вайршарк, зайдите в настройки -> протоколы, там поставьте в таблице "DLT_USER" для DLT=147 как протокол "etw",
    выбираете "Winshark-PacketCapture" как интерфейс и потом в фильтрах вайршарка задаёте "etw.header.ProcessId == 1234"
     
    #6 fandor9, 23 Feb 2021
    Last edited: 23 Feb 2021
    crlf, dooble, Eidolon and 2 others like this.