SHA1:
LM-модули:
- b86935c4539901cdec9081d8a8ca915903adaff1
- ce4b3c92a96137e6215a5e2f5fd28a672eddaaab
- 51a4ca78ebb0649721ae472290bea7bfe983d727
- bf4d9e25fc210a1d9809aebb03b30748dd588d08
- 8a0d58472f6166ade0ae677bab7940fe38d66d35
- 979fb376d6adc65473c4f51ad1cc36e3612a1e73
- 4df58ab26f0fc8ec2d1513611ca2b852e7107096
- 2a809d37be5aa0655f5cc997eb62683e1b45da17
- f73022a4801e06d675e5c3011060242af7b949ad
- 688ccbca8b2918a161917031e21b6810c59eeab0
- c22f0fb01c6d47957732a8b0f5ef0f7d4e614c79
- 41bf0d5612ba5bc9a05e9d94df0f841b159264a0
- 1cc1b97f8f9bb7c4f435ef1316e08e5331b4331b
- a1f2535576116d93b62d7f5fc6e30e66e0e0a216
- ac094b239851eaf2e9fd309285c0996fb33771a8
- 8e3c4eb04d4cfd8f44c721111c5251d30ac848b6
- d8a5d9c4605b33bd47fedbad5a0da9928de6aa33
- 2889803777e2dfec7684512f45e87248a07d508f
- b14f7af9665ef77af530109a0331f8ca0bd2a167
- 5a88b67d8dfaf1f68308311b808f00e769e39e46
- ba5df105496b0c4df7206d29fa544b7a7a346735
- a358bf8a9ad25f210db44252767a2ef3706c7866
- f1c88267459cfaa46bfee6f8655e07e4d610d999
- d5f8078acb5d144912b3b604a44b8e82c6babc0d
- 3ffef7c0b52493854f982b30ba75380af76d860f
- 1a79092c6468d39a10f805c96ad7f8bf303b7dc8
- f84fc11f79bd2ccd33d37c71e6a5c8f55ecdf3f7
- 3f666ef113a74eddb9bc324829f8b16c45e92213
- ec2e8e9a6f50dbc6766d9af90ef4656c9dfef2f6
- 141f9a40cab04cc4b480323f3c84b7134d9c55f6
- 05eb47f3fb2283f4aaaa842211c3babd20306e70
- cd3e216da075f30f242cba3ca878305ed10ea3e1
- 6c0d96f481a1d9ea3abf54ec76dac5a449ece536
- 689c26a8ede9bb399e010b82877e961bebd3afaa
- 877156682bcb30d2c03bb9be30f8ab641a1abebf
- db149c873e833920614db422eb79b50835832dcd
- cf69e85f6336e06d2a4217dc26297e17035daf03
- 6f955867f4291fc1db9efa20f5133f4de097a2cd
- ea059e4986acb65c60fcc661abbd2ab222e2ad02
- 4d50412dba1f7bb9aea8deddf64f034241b7e1c2
- 432741a58785db6b757e2fb3bde13b13672e3932
- 7a8b07ea81ced0cd408fa46cc21711b6bc412422
- aa2135b4e21b278a42209c4a72dcb27198d76151
- ac7353acc2239ed6feb1704af17b59bc53376020
- 65174284676f1fe905e5db81d3b7911b120085e1
- d6b37e3cf7391216811ce2426c17c489df83e261
- 019f29e23e3183059b60b5b1fd267e9f0197068c
- 3c38f33c224ee7c1c086f890033001815f1afa66
Модули dl:
- 4ddec62c8a335ff3a3997ce48819c0d23d92f621
- 0f55ffa6f8299b00e1529efc3d65e401fa4846f4
- 96d213747857265a9b76c26abab1c5c8fcb3f87b
- 274181d2f9c6b8f0e217db23f1d39aa94c161d6e
- 8abbb049bffd679686323160ca4b6a86184550a1
- 9cde845852653339f67667c2408126f02f246949
- 95444c2ccc5fff19145d60f1e817fd682cabe0cd
Модули dm:
- 105cc7d967da90ed5ad46a5825c5365296c70fb5
- 59f9c1490f78e202f7a63cc634000cf504ce152d
- d2b876473cc54ca772b304114155ac2781a8e83c
- dface45261d62769cbb2c0a435c3ea0a7ba7425e
- b624c9a0aeacf2d5869e598a0b004f1a5fda9ebe
- 6ab9e1c83276db2d9057a5f5cc6821897af2a83b
- f2b44b7fb39d5628109eb128caebe3c481dd16d2
- 42d965a29b77e8261c9b5a1525933861b4cfd052
- 52e833630b141648e61e56175d371cbe19c1e607
- b3670fe162a461b9e5744ff25041722f7ce1b209
- b936492f17328852ca7adc33c6229a28b4423ecd
- 900edeaa548a935cd2f431be48d1e5cb445c382f
- 956e903ed42e7eadb8cedb3d2a5b216ca7fc8991
- 70e883bdfd576fa6d1f621be3752e651472e1f82
- eebabf60bf9bddf0ee9ef5c453320089ef5f80a7
- a594f6ad9e23b8bd1e07b54b5755f1d042238a42
- a2d51bffa629851734d51823319c9dccf1a5d6c0
- c4f4b1075115ecdb1e906cc15b5545d0e600956f
- 0b303ad8c481dcf039d2cae03c890b3894e7cf92
- 26bb4336be46f6fceb5bb63d67795c5cb13e2f54
- c0053ebd64f09f324b6dfa31264f107acf45b59d
- 70bd08854371e869eaa030dec69f5bed68189edb
- dd400d68bd634fa776a7dc2b1e30414d08393311
- 1de17117a226a1788c6e57fa39ac4f218db2f73d
Троянец для ОС Linux, написанный на скриптовом языке Lua. Первые атаки с использованием представителей данного семейства были зафиксированы в декабре 2016 года. С тех пор эти вредоносные программы непрерывно эволюционируют и совершенствуются. Троянец состоит из 31 сценария на языке Lua, упакован с использованием UPX, запакованные скрипты дописаны в конец упакованного файла между тэгами "--block–" и "--block-end–". Список содержащихся в троянце сценариев:
async.lua
bencode.lua
bfssh.lua
bfssh.lua.old2
bftelnet.lua
btloader.lua
callhome.lua
callhome.lua.old
config.lua
crypto.lua
dht.lua
http.lua
httpproto.lua
main.lua
persist.lua
readme.lua
routing.lua
scanner.lua
server.lua
socks.lua
ssh.lua
ssl.lua
telnet.lua
test.lua
test2.lua
test3.lua
threads.lua
torrent.lua
udp.lua
utils.lua
worm.lua
bfssh.lua
Сценарий, предназначенный для атаки на удаленные узлы методом перебора логинов и паролей по словарю (брутфорс). Для подбора используются следующие значения:
{"admin","admin"},
{"root","root"},
{"adm","adm"},
{"ubnt","ubnt"},
{"root",""},
{"admin",""},
{"adm",""},
{"user","user"},
{"pi","pi"},
В сценарии содержится список подсетей, атака на которые не выполняется:
"0.0.0.0/8",
"10.0.0.0/8",
"100.64.0.0/10",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12",
"192.0.0.0/24",
"192.0.2.0/24",
"192.88.99.0/24",
"192.168.0.0/16",
"198.18.0.0/15",
"198.51.100.0/24",
"203.0.113.0/24",
"224.0.0.0/4",
"255.255.255.255/32",
Сценарий проверяет архитектуру атакуемого устройства по заголовку файла "/bin/ls" целевого устройства. Троянец способен заражать устройства с архитектурами Intel x86 (и Intel x86_64), MIPS, MIPSEL, Power PC, ARM, SPARC, SH4, M68k:
Начиная с самых ранних известных нам версий троянец предпринимает попытки детектирования ханипотов с использованием команды "echo -en":
При загрузке на атакуемое устройство соответствующей архитектуры он сохраняется в файл "/tmp/drop":
При атаке по протоколу SSH троянец загружается в файл /tmp/drop и запускается.
Информация о скомпрометированных устройствах сохраняется в текстовом файле ssh.txt в следующем формате:
ip;port;user;password;arch
Где:
- ip — IP-адрес взломанного устройства;
- port — порт для подключения;
- user — имя пользователя;
- password — пароль;
- arch — архитектура устройства.
- bftelnet.lua
bftelnet.lua
Этот сценарий работает так же, как и bfssh.lua. Для подбора пар логинов и паролей используются следующие значения:
local accounts={
{"admin","admin"},
{"root","root"},
{"adm","adm"},
{"acer","acer"},
{"user","user"},
{"security","security"}
}
В процессе атаки по протоколу Telnet на скомпрометированный узел сначала загружается небольшой модуль dl, который используется для скачивания самого троянца. Информация о скомпрометированных устройствах сохраняется в текстовом файле telnet.txt.
server.lua
В этом сценарии реализован HTTP-сервер троянца. Порт указан в конфигурационном файле вредоносной программы: по умолчанию используется порт 8888. HTTP-сервер может выполнять следующие запросы:
- /upload – сохранить и выполнить файл. При загрузке проверяется подпись файла имеющимся в конфигурации публичным ключом.
- /info – возвращает информацию о троянце в формате JSON, включая версии Lua и бэкдора, а также сведения об архитектуре устройства и модулях троянца. В версии, обнаруженной в мае 2017 года, эта функция отключена.
- Для остальных запросов троянец определяет basename запроса (имя файла) и проверяет его наличие в рабочей папке троянца. Если файл присутствует – передает его, в противном случае возвращает ошибку 404.
httpproto.lua
Сценарий содержит функции для работы по протоколу HTTP, в том числе функции шифрования трафика при обмене данными с управляющим сервером. В передаваемых на управляющий сервер и обратно пакетах значение первого DWORD содержит ключ RC4 для шифрования, в расшифрованной информации первый DWORD содержит CRC32 от данных.
В поступающих от управляющего сервера пакетах помимо RC4 и CRC32 также обязательно должна присутствовать подпись ed25519, которая проверяется ключом из конфигурации троянца.
btloader.lua
Сценарий, в котором реализованы функции для работы P2P-сети, в частности, получение файлов конфигурации и модулей с использованием протокола Bittorent DHT. Все файлы конфигурации и списки обновлений снабжаются подписью для проверки подлинности.
Для получения обновлений сценарий обращается к P2P-сети, при этом формирует info_hash в формате sha1('%s%s' % (pub_key, name)), где pub_key – публичный ключ из конфигурационного файла троянца, name – имя конфигурационного файла (server, update, script). Получаемые данные имеют следующую структуру:
{
'k': '\xc6Z7\xab\xd4\xae\x10\xca\xcf\xc7f\x9d\xf4Vx\x19f\xc6\x86$@\xe0\x19!\xef\xf7\xdd\x9b\xe9,s\xca',
'sig': '\xb51\xdai\xb9\xc1\xd9\xc6k8h\xf5\xe4j\x889\xdf\xa9XW@\x08T\x0c328_\x99\xac\xeeqt{\xff[F^\xdfT\x87\xa8X\xde\x9d\xff\xabg\xc0\x16_\x83\xa6\xd7\xc0\xb0\xfd\x1d\xdc~\xf0*\xb5\x0c',
'seq': 1493655967,
'v': '176.***.***.145:8080\n'
}
где k – публичный ключ, sig – подпись, seq – timestamp создания/подписывания данных, v – полезная нагрузка. Если значение seq больше значения seq у имеющегося конфигурационного файла, он будет заменен конфигурационным файлом, полученным из сети.
После получения свежих конфигурационных файлов троянец запускает два потока, один для конфигурации update, другой — для конфигурации script. Эти потоки разбирают конфигурационные файлы и извлекают из них пары «имя-хэш». Затем в P2P-сеть отправляется запрос на поиск пиров, обладающих info_hash, который сформирован как sha1('%s%s%s' % (name, seq, data)), где name – имя конфигурации (update/script), seq – его timestamp, data – данные конфигурации. Все обнаруженные пиры считаются серверами раздачи. Троянец последовательно скачивает с каждого из серверов файл и проверяет его хэш на совпадение с искомым. Для всех файлов, за исключением скриптов, также проверяется цифровая подпись.
banner.lua
Сценарий содержит следующий текст:
ВСЁ ИДЁТ ПО ПЛАНУ
А при коммунизме всё будет за**ись
Он наступит скоро — надо только подождать
Там всё будет бесплатно,там всё будет в кайф
Там наверное вощще не надо будет (умирать)
Я проснулся среди ночи и понял, что -
ВСЁ ИДЁТ ПО ПЛАНУ
persist.lua
Сценарий содержит функции для установки троянца в автозагрузку с использованием Cron или системной службы. Для этого вредоносная программа создает символические ссылки на копию своего исполняемого файла:
socks.lua
Создает SOCKS5 прокси-сервер на порту, указанном в конфигурационном файле.
worm.lua
Сценарий, предположительно предназначенный для самообновления троянца в условиях нерабочего P2P-соединения. Сканирует подсети в поисках устройств, зараженных собственными копиями (проверяет ip:8888/info) и сохраняет на эти устройства все свои lm-сценарии по запросу (ip:8888/upload).
Модуль dl
Этот модуль устанавливается на взломанное по протоколу Telnet устройство в файл "/tmp/srv" и запускается с перенаправлением stdout в файл /tmp/drop. Троянец подключается к порту, с которым взаимодействует модуль dl, и скачивает на скомпрометированное устройство свою копию. Затем он подключается к скомпрометированному устройству и устанавливает права доступа на файл /tmp/drop, после чего запускает собственную копию.
Модуль dm
Усовершенствованная версия модуля dl. На скомпрометированном устройстве устанавливается в папку "/tmp/dwl" и запускает с перенаправлением stdout в файл. Принимает на вход аргумент, в котором указана ссылка на файл, и скачивает этот файл в stdout.
Версии
На сегодняшний день известны следующие версии троянца:
Дата сборки | Известные модули | Особенности |
---|---|---|
2016-11-27 | i686.dl, mips.dl, mipsel.dl | |
2016-12-14 | i686.dl, mips.dl, mipsel.dl, armv4l.dl | |
2017-02-06 | mipsel.lm | Первая известная версия lm-модуля. |
2017-02-12 | i686.lm, mips.lm, mipsel.lm, armv4l.lm, powerpc.lm | Удален сценарий worm.lua. |
2017-02-19 | i686.lm, mips.lm, mipsel.lm, armv4l.lm, powerpc.lm |
|
2017-02-28 | i686.lm, mips.lm, mipsel.lm, armv4l.lm, powerpc.lm | Снова добавлен модуль для взлома по протоколу SSH и модуль P2P. |
2017-03-08 | i686.lm |
|
2017-03-12 | i686.lm, mips.lm, mipsel.lm, armv4l.lm |
|
2017-04-10 | i686.dm, mips.dm, mipsel.dm, armv4l.dm, powerpc.dm, sh4.dm, mipsel.lm, armv4l.lm, powerpc,lm |
|
2017-04-11 | i686.lm, mips.lm, mipsel.lm, armv4l.lm | Значительно расширен список login:password для взлома узлов по протоколу SSH. |
2017-04-15 | i686.dm, mips.dm, mipsel.dm, armv4l.dm, powerpc.dm, sh4.dm, i686.lm, mips.lm, mipsel.lm, armv4l.lm, powerpc.lm, sh4.lm | Исправлена ошибка в сценарии bftelnet.lua. |
2017-04-29 | i686.dm, mips.dm, mipsel.dm, armv4l.dm, powerpc.dm, sh4.dm, i686.lm, mips.lm, mipsel.lm, armv4l.lm, powerpc.lm, sh4.lm |
|
2017-05-01 | i686.dm, mips.dm, mipsel.dm, armv4l.dm, powerpc.dm, sh4.dm, i686.lm, mips.lm, mipsel.lm, armv4l.lm, powerpc.lm, sh4.lm | Изменен адрес управляющего сервера. |