Discussione Malware IP Pubblico con Delphi XE

Stato
Discussione chiusa ad ulteriori risposte.
Vediamo se ho capito bene, il tuo problema è che non sai che IP mettere nel client per collegarlo al server? Questo approccio è comunque sbagliato, a meno che tu non abbia la garanzia di avere per sempre IP statico (e anche allora basterebbe saperlo una volta senza scrivere codice), la strada giusta è usare un DNS. Se non vuoi pagare per un dominio puoi usare DynDns o NO-IP che ti forniscono un sottodominio gratis. A quel punto inserisci l'host nel client al posto dell'IP (puoi usare la funzione del tuo codice GetHostByName per risolverlo) e nel server fai girare il programma demone come quello di NO-IP che aggiorna sempre i record DNS dell'host per farlo puntare all'IP corrente del server.
 
  • Love
Reazioni: 0xbro
Conosco SubMe e il suo creatore, Massimiliano, ma tu ti riferisci alla versione del 2000, dopo si è adattato come il resto dei trojan (SubMe Reverse) ad usare una connessione reverse: il client va sul pc target, mentre il server è il tuo (lascia perdere che l'eseguibile continua a chiamarlo server, io parlo del tipo di socket). In questo modo non solo eviti rogne con IP, mail smtp, firewall ecc ma sorpassi il problema principale: che ormai sono tutti col wifi e probabilmente sotto NAT, anche se ti metti in ascolto su una porta non riuscirai a connetterti da fuori dalla rete senza abilitare il port forwarding sul router del target. Devi ridisegnare il tuo sistema di connessione altrimenti ti complicherai la vita e alla fine non funzionerà comunque.

PS: subme era ed è una merd* :asd:
 
  • Mi piace
Reazioni: mrcamarium
Non ho mai sentito parlare del sistema che usi, ma secondo me ti conviene più creare una backdoor classica con programmi tipo MSFvenom ecc. ;)

Perché consigliare la pappa pronta ad un utente che vuole imparare e implementare il suo? Inoltre le payload di metasploit saranno ben fatte ma sono molto minimali e ben conosciute, provare a crearsi la propria fa solo bene se non vuoi tutto e subito.
 
  • Mi piace
Reazioni: 0xbro

mrcamarium

Utente Silver
7 Gennaio 2022
105
24
6
56
Mi serve rintracciare il mio IP internet, con l'uso del TidIpWatch ottengo l'IP locale ma non quello che ho su internet, quando usavo delphi 7 usavo questo codice per ottenere l'IP assegnato su internet.
Codice:
function getIPs: Tstrings;
type
  TaPInAddr = array[0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer: array[0..63] of Char;
  I: Integer;
  GInitData: TWSAData;
begin
  WSAStartup($101, GInitData);
  Result := TstringList.Create;
  Result.Clear;
  GetHostName(Buffer, SizeOf(Buffer));
  phe := GetHostByName(buffer);
  if phe = nil then Exit;
  pPtr := PaPInAddr(phe^.h_addr_list);
  I    := 0;
  while pPtr^[I] <> nil do
  begin
    Result.Add(inet_ntoa(pptr^[I]^));
    Inc(I);
  end;
  WSACleanup;
end;
Adesso che uso delphi xe mi da questo errore:
[DCC Error] ip_mio.pas(41): E2010 Incompatible types: 'PAnsiChar' and 'array[0..63] of Char'
su questa riga:
GetHostName(Buffer, SizeOf(Buffer));
 
Non ti capisco. Se ti serve trovare il tuo IP per un Server, vai nei siti web e c'è scritto... trovarlo in altri modi io dico, ti complichi la vita e basta...
 
Ci sono altre alternative più facili per scoprire gli ip, a sto punto ti crei un sitoweb che traccia cookie etc e gli mandi il link e con una sola visita sai pure che browser utilizza da dove arriva che S.O. utilizza cioè che te ne fai di sapere solo l'ip, quando puoi sapere molto di più?
 
Ci sono altre alternative più facili per scoprire gli ip, a sto punto ti crei un sitoweb che traccia cookie etc e gli mandi il link e con una sola visita sai pure che browser utilizza da dove arriva che S.O. utilizza cioè che te ne fai di sapere solo l'ip, quando puoi sapere molto di più?
avendo l'IP posso collegarmi al server e posso avere tutte le informazioni che voglio.
 
Ok, Sinceramente non mi interessa, e non so' darti la soluzione giusta.

Però alternative valide e migliori secondo me esistono.
 
Ultima modifica:
Vediamo se ho capito bene, il tuo problema è che non sai che IP mettere nel client per collegarlo al server? Questo approccio è comunque sbagliato, a meno che tu non abbia la garanzia di avere per sempre IP statico (e anche allora basterebbe saperlo una volta senza scrivere codice), la strada giusta è usare un DNS. Se non vuoi pagare per un dominio puoi usare DynDns o NO-IP che ti forniscono un sottodominio gratis. A quel punto inserisci l'host nel client al posto dell'IP (puoi usare la funzione del tuo codice GetHostByName per risolverlo) e nel server fai girare il programma demone come quello di NO-IP che aggiorna sempre i record DNS dell'host per farlo puntare all'IP corrente del server.
Forse non mi sono spiegato bene. Io so che IP usare, sto creando un serve che ogni volta che viene avviato mi manda il suo IP cosi che io mi possa collegare. Però tenendo in considerazione quello che ha detto ZeusOn3 il metodo che ho usato mi da solo l'IP locale in effetti comincia con 198, devo trovare un'altra strada per avere l'IP pubblico.
Messaggio unito automaticamente:

Facendo cosi dovrei ottenere l'IP pubblico:
Codice:
function TForm1.GetPublicIp: String;
          begin
      IdHttp1.Request.Host:= 'https://www.mio-ip.it';
      result := IdHttp1.Get('https://www.mio-ip.it');
end;
Il problema è che anche se lo compila senza errori mi restituisce in avviso quando premo il bottone:
IOHandler value is not valid
 
No davvero, rileggi bene quello che ti ho scritto, fa esattamente quello che ti serve, una volta che registri il DNS sia il server che i client possono risolverlo in qualunque momento in modo rapido, è così che funziona internet. In particolare poi mi preoccupa la frase
sto creando un serve che ogni volta che viene avviato mi manda il suo IP cosi che io mi possa collegare
Perché il server non dovrebbe mandarti proprio niente, e poi come fa lui a sapere il tuo IP? E come fa a raggiungerti dovresti avere un altro server a tua volta. Vai in un loop logico che non può funzionare, ti consiglio di usare no-ip, configurarlo è una questione di 10 minuti e risolvere l'ip con GetHostByName altri 10.
 
No davvero, rileggi bene quello che ti ho scritto, fa esattamente quello che ti serve, una volta che registri il DNS sia il server che i client possono risolverlo in qualunque momento in modo rapido, è così che funziona internet. In particolare poi mi preoccupa la frase

Perché il server non dovrebbe mandarti proprio niente, e poi come fa lui a sapere il tuo IP? E come fa a raggiungerti dovresti avere un altro server a tua volta. Vai in un loop logico che non può funzionare, ti consiglio di usare no-ip, configurarlo è una questione di 10 minuti e risolvere l'ip con GetHostByName altri 10.
Per come manderà il suo IP è un problema che devo risolvere in un altro modo, devo fare un passo alla volta, come posso risolvere il problema con il codice che ho postato prima?
 
Per come manderà il suo IP è un problema che devo risolvere in un altro modo, devo fare un passo alla volta, come posso risolvere il problema con il codice che ho postato prima?
Amico, quello che ti ha scritto JunkCoder è la soluzione perfetta per quello che ti serve perché ti permette di risolvere dinamicamente l'IP del tuo server. Se non sei in grado di capire quello che ti ha spiegato, senza offesa, non sei ancora pronto per affrontare questi argomenti, forse dovresti fare un ripassino generale :)
 
Amico, quello che ti ha scritto JunkCoder è la soluzione perfetta per quello che ti serve perché ti permette di risolvere dinamicamente l'IP del tuo server. Se non sei in grado di capire quello che ti ha spiegato, senza offesa, non sei ancora pronto per affrontare questi argomenti, forse dovresti fare un ripassino generale :)
Parto con la premessa che non mi offendo perchè do per scontato che non sempre riesco a farmi comprendere. In pratica tra le righe ho voluto far capire che sto server non è altro che un trojan, se conosci il software SUBME quando fu creato quasi 10 anni fa aveva questo sistema: il file serve sul pc della vittima mandava l'IP pubblico a chi aveva il cliente con una email. Cosi con l'IP e la porta già aperta si poteva entrare nel PC, devo dire che questo metodo non è tanto sicuro in quanto rende facile rintracciare chi ha infettato il PC, ma per cominciare è più che sufficiente. Mi scuso se non sono diretto, ma se vi dicessi che sto creando un trojan subito si parte pensando che ho cattive intenzioni.
Se riesco a far funzionare questo codice:
Codice:
function TForm1.GetPublicIp: String;
          begin
      IdHttp1.Request.Host:= 'https://www.mio-ip.it';
      result := IdHttp1.Get('https://www.mio-ip.it');
end;
lo posso usare per inviare una email sul mio PC e portemi collegare al PC, il problema è che il sito in questione usa un protocollo HTTPS quindi non so come modificarlo per adattarlo con questo protocollo.
 
Ho usato in passato anche la versione Reverse. Ma adesso è inutilizzabile perchè lo vedono tutti gli antivirus. A questo punto il tuo discorso è più chiaro, continuo a sviluppare il cliente e il server nel fra tempo studio una soluzione per beccarlo in remoto. Grazie.
 
Parto con la premessa che non mi offendo perchè do per scontato che non sempre riesco a farmi comprendere. In pratica tra le righe ho voluto far capire che sto server non è altro che un trojan, se conosci il software SUBME quando fu creato quasi 10 anni fa aveva questo sistema: il file serve sul pc della vittima mandava l'IP pubblico a chi aveva il cliente con una email. Cosi con l'IP e la porta già aperta si poteva entrare nel PC, devo dire che questo metodo non è tanto sicuro in quanto rende facile rintracciare chi ha infettato il PC, ma per cominciare è più che sufficiente. Mi scuso se non sono diretto, ma se vi dicessi che sto creando un trojan subito si parte pensando che ho cattive intenzioni.
Se riesco a far funzionare questo codice:
Codice:
function TForm1.GetPublicIp: String;
          begin
      IdHttp1.Request.Host:= 'https://www.mio-ip.it';
      result := IdHttp1.Get('https://www.mio-ip.it');
end;
lo posso usare per inviare una email sul mio PC e portemi collegare al PC, il problema è che il sito in questione usa un protocollo HTTPS quindi non so come modificarlo per adattarlo con questo protocollo.
Non ho mai sentito parlare del sistema che usi, ma secondo me ti conviene più creare una backdoor classica con programmi tipo MSFvenom ecc. ;)
 
Stato
Discussione chiusa ad ulteriori risposte.