[ << ALL_FEED ]

Ngrok. Находим и разбираемся

Ещё в группе «Общее»

Ngrok. Находим и разбираемся 🔍

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

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

Несколько рекомендаций по поиску признаков использования ngrok на узлах:

1️⃣ Наличие файла с именем ngrok.yml или директорий ngrok, .ngrok2, которые, как правило, имеют следующие файловые пути:


C:\Users\<username>\.ngrok2\ngrok.yml
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\ngrok\ngrok.yml
C:\Windows\SysWOW64\config\systemprofile\.ngrok2\ngrok.yml
Code language: YAML (yaml)


2️⃣ Наличие файла *.yml, в котором встречаются строки по следующим паттернам:


'version\: \"[0-9]+\"'
'authtoken\: [a-z0-9_]{49}'
Code language: plaintext (plaintext)


Пример (ngrok.yml):

version: "2"
authtoken: 5U87lkcqEFeZ0sJ7Hg66aXkkrO4_K9EpjQHkJMkTg0R96pu64
Code language: YAML (yaml)


3️⃣ Наличие строки ::%16777216 в качестве адреса сети источника в журналах сетевых подключений:


C:\Windows\System32\winevt\logs\Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx
C:\Windows\System32\winevt\logs\Microsoft-Windows-TerminalServices-RemoteConnectionManager%4Operational.evtx
Code language: YAML (yaml)


4️⃣ Наличие файла планировщика заданий Windows, через который осуществляется закрепление на узле и в котором могут встречаться строки по следующим паттернам:

'<Arguments>tcp [0-9]+</Arguments>'
'<Arguments>tcp [^ ]+\:[0-9]+ \-\-authtoken [a-z0-9_]{49}</Arguments>'
Code language: plaintext (plaintext)


Пример 1 (C:\Windows\System32\Tasks\Microsoft\Windows\Microsoft\Monitor):

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  ...
  <Actions Context="Author">
    <Exec>
      <Command>C:\Windows\System32\Microsoft\1.exe</Command>
      <Arguments>tcp 3389</Arguments>
    </Exec>
  </Actions>
</Task>
Code language: plaintext (plaintext)


Пример 2 (C:\Windows\System32\Tasks\updater):

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  ...
  <Actions Context="Author">
    <Exec>
      <Command>C:\ProgramData\1.exe</Command>
      <Arguments>tcp poc.opi.rtyo.ru:22 --authtoken qr7pKMAgTp5nfT0HTwh21sb9VsF_FwX3xkNuQqJE7MBh0gUj8</Arguments>
      <WorkingDirectory>C:\ProgramData</WorkingDirectory>
    </Exec>
  </Actions>
</Task>
Code language: plaintext (plaintext)


📌 Чтобы обнаружить признаки наличия инструмента на периметре, можно поискать узлы, взаимодействующие со следующими серверами:


ngrok.com
ngrok-agent.com
ngrok.io
*.equinox.io
Code language: plaintext (plaintext)


#tip #detect #hacktool #dfir
@ptescalator

Ещё от oUth0R

Ещё от oUth0R

Ещё в группе «Общее»