COVIL HACKER

, ! .


» COVIL HACKER » Malware » TUTORIAL] Winsock2 para comunicação de malware


TUTORIAL] Winsock2 para comunicação de malware

1 2 2

1

Olá :)
Neste tutorial, examinarei os soquetes para comunicação de malware . Cada função usada é  documentada e os links serão fornecidos.
SERVIDOR VS CLIENTE:
Primeiro, você precisa entender servidores e clientes. Confie em mim, isso não é muito complicado. Para o nosso malware, queremos que os computadores infectados se conectem a nós.
Se nos conectássemos a eles, precisaríamos saber seu endereço IP de antemão e ter uma porta aberta em seu gateway.
Obviamente, isso NÃO é a melhor prática.
Então, seremos o servidor e os computadores infectados (clientes) se conectarão a nós!

ESCREVENDO O SERVIDOR
O código do servidor será muito semelhante ao código do cliente, mas lembre-se de que existem diferenças importantes.
Para começar precisamos de duas variáveis ​​do tipo addrinfo
uma das quais será um addrinfo* que irá conter o nosso resultado
e um objeto struct addrinfo que irá conter as nossas dicas
nosso resultado será um ponteiro porque getaddrinfo(), que chamamos para obter o resultado, deseja que o resultado seja um PADDRINFOA* (também conhecido como apenas addrinfo** para simplificar)

https://docs.microsoft.com/en-us/windows. ..-addrinfoa
https://docs.microsoft.com/en-us/windows...etaddrinfo

WSADATA wsadata;
WSAStartup(MAKEWORD(2,2), &wsadata); // we also need to initiate winsock2 https://docs.microsoft.com/en-us/window … wsastartup

struct addrinfo hints;
struct addrinfo* ai;

Agora, podemos preencher dicas.
De acordo com a documentação existem 8 membros dentro do addrinfo.

hints.ai_flags = AI_PASSIVE;
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPIPROTO_TCP;

// https://docs.microsoft.com/en-us/window … -addrinfoa

Os que nos preocupam são:

ai_flags
família_ai
ai_socktype
protocolo_ai
É assim que nosso código se parece até agora

WSADATA wsadata;
WSAStartup(MAKEWORD(2,2), &wsadata);

struct addrinfo hints;
struct addrinfo* ai;

hints.ai_flags = AI_PASSIVE; // we use the flag AI_PASSIVE because our server should accept all connections and not care about the IP addresses
hints.ai_family = AF_INET;   // AF_INET because we want IPv4
hints.ai_socktype = SOCK_STREAM; // SOCK_STREAM 2way connection we want for tcp
hints.ai_protocol = IPPROTO_TCP; // IPPROTO_TCP for tcp ai_socktype needs to be SOCK_STREAM for this

Agora, vamos obter nosso resultado de dicas.
Para fazer isso, usamos o método getaddrinfo().
Se você ficou confuso por resultado ser um ponteiro e não sugerir, o motivo é que getaddrinfo aceita nosso resultado como um addrinfo** ou PADDRINFOA*.
Os parâmetros são:
IP
PORT
HINTS
[OUT]RESULT
https://docs.microsoft.com/en-us/windows...etaddrinfo

getaddrinfo("ip", "port", &hints, &result);

Estamos quase terminando, vamos finalmente criar um sock com sock().
sock() recebe três argumentos:
a família,
o tipo,
o protocolo
SOCKET sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
Precisamos vincular () o soquete de escuta que acabamos de criar. Depois de fazermos isso, não há necessidade do nosso addrinfo*, então vamos liberá-lo.
bind(sock, ai->ai_addr, ai->ai_addrlen);
freeaddrinfo(ai);
Tudo o que temos que fazer agora é listen() e accept().
listen(sock, SOMAXCONN);
SOCKET client = accept(sock, 0,0); // for multiple connections i created a linked list in my malware
https://docs.microsoft.com/en-us/window … ck2-listen
https://docs.microsoft.com/en-us/window … ck2-accept
CLIENTE
Estou ficando cansado de escrever tudo isso, então terminarei com um tutorial em vídeo.
https://odysee.com/@SegFaulted:8/sockets:9 // odysee because yt likes to ban me
https://www.youtube.com/channel/UCIg7sT … DgwO0rReXg // might try to upload to yt so here's my channel atm
Considerações finais
link para o projeto de exemplo:  https://github.com/0xSegFaulted/LeetSpeak
Espero que este tutorial tenha ajudado alguém a aprender um pouco.
Certifique-se de me dizer se eu poderia melhorar em alguma coisa. Sei que não sou o melhor em explicar as coisas, é por isso que consultei documentos com bastante frequência.
Além disso, estou trabalhando em alguns projetos e quero saber o que as pessoas realmente querem lançar. Atualmente, estou trabalhando em um ransomware-as-a-service, um fichário de arquivos (na verdade, isso foi concluído há algum tempo, só preciso encontrá-lo) e um rat-as-a-service (que vou escrever como um desafio para aprender golang o mais rápido possível).

0

2


» COVIL HACKER » Malware » TUTORIAL] Winsock2 para comunicação de malware


|