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

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. Какие есть софтины под такую задачу?
     
    1. DartPhoenix

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

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

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

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

        fandor9 Reservists Of Antichat

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

          deim_1 Member

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

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

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

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

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