TL; AMA
O se mea taua mai Maven Central na lomia e pei o io.github.davidtimur:c2-lab na lafoina atu fa'asalalauga e iva, e valu o ia mea na fa'atinoina se uta e mafai ona maua mai mamao i le taimi o le tu'ufa'atasia o so'o se galuega faatino i lalo ifo lea na tu'u ai le fagu i lona ala o le fa'agasologa o fa'amatalaga. E leai se code o talosaga na mana'omia ona fa'aulufale mai. E leai se laina o le punaoa na mana'omia ona fa'asino i ai. E leai se tusitusiga fa'apipi'i, leai se mea e tutusa pe a uma le fa'apipi'i, ma leai se ituaiga o mea e mafai ona siaki ai le umi o le fa'agasologa o galuega.
O le vector fa'atinoina o se faila e tasi e 46-byte i totonu o le fagu: o se resitalaina o le tautua a le Java e fa'aigoaina se vasega o lo'o fa'atinoina javax.annotation.processing.Processor. E otometi lava ona maua e le Java compiler ia resitala. A maua loa, javac e fa'atino ma fa'agaoioia le vasega o se vaega masani o le tu'ufa'atasia. O lona uiga o le siosiomaga fa'agaoioia o le payload o le masini fausia lea, i le taimi nei o lo'o faia e le masini fausia le mea e tasi o lo'o iai e fai.
I le fa'asalalauga e iva, na toe fausia ai le auala o le command-and-control fa'atolu: o se callback URL na tu'uina atu e le operator, ona sosoo ai lea ma se reverse shell i luga o se ngrok TCP tunnel, ona sosoo ai lea ma se HTTP polling channel lea na suia lona ala fa'alua. O le fa'asalalauga mulimuli na fa'apipi'iina ai se no-op TLS trust manager e fai ma JVM default, taliaina o soʻo se tusi faamaonia mo le umi o le tuufaatasiga.
O le mea faitino sa i ai upu "C2 Lab Payload" i lana lava POM ma se laisene MIT. Sa ola i luga o le Maven Central mo le vaitaimi atoa na matou matauina ai ma ua aveesea talu mai lena taimi, faatasi ai ma lona atoaga io.github.davidtimur vaega.
Anatomy: o le compiler e fai ma afi fa'atino
O loʻo iai le faʻavae o le faʻagasologa o faʻamatalaga a le Java ina ia mafai ai e faletusi ona faʻatupuina ni code i le taimi e tuʻufaʻatasia ai - o le faiga i tua atu o Lombok, Dagger, ma se lisi umi o meafaigaluega ORM ma le faʻasologa. E faʻalauiloa e se processor ia lava i se faila tusitusiga faigofie i totonu o le fagu:
META-INF/services/javax.annotation.processing.Processor
O anotusi o lena faila i faʻasalalauga uma ua aʻafia, upu saʻo ma atoatoa:
io.github.davidtimur.c2lab.C2Processor
E tutusa le faila i le byte i lomiga uma mai le 1.0.1 e oo atu i le 1.0.8, md5. 7d2a08a5c8869a47eea9fa62487dfbe4. E le o iai lea mea i le Lomiga 1.0.0.
a Javanese A fa'agaoioia, e su'esu'eina le ala o le annotation-processor mo nei fa'amaumauga o auaunaga ma uta mea na te mauaina. E leai se mea i le poloketi o lo'o tu'ufa'atasia e mana'omia ona ta'ua le processor, fa'ailoa se mea, pe fa'atulaga se mea. O le i ai i luga o le ala e lava lea. O le meatotino lea e vavae'ese ai le JavacDoor mai mamanu o le sapalai o lo'o fausia ai le tele o meafaigaluega:
| mamanu | Fa'amalo | Va'aia e pei o |
|---|---|---|
| npm fa'apipi'i matau | npm install | scripts.postinstall i le fa'aaliga manino |
| Uta uta taimi-fa'aulufale mai a Python | fa'aulufaleina muamua o le module | fa'amatalaga tulaga-modula i le punaoa |
| JavacDoor | javac i so'o se galuega faatino i lalo ifo | o se igoa faila resitalaina o auaunaga |
O le install hook o se folafolaga i totonu o se manifest, ma o le manifest o le mea muamua lea e faitauina e se tasi. O le uta o le taimi e aumai ai oloa e le itiiti ifo ma le tasi o loʻo i totonu o se punaoa e mafai ona faitauina. O le resitalaina o auaunaga e le o se tasi lea: o se igoa faila faʻaopoopo i ai le laina e tasi e faʻaigoaina ai se vasega, ma o le amioga e nofo i totonu o le bytecode ua tuʻufaʻatasia i se faʻasinomaga e tasi le mamao.
O le vasega uta lava ia e faia le su'esu'ega a le 'au talimalo e ala i le fa'aaogaina o tupe. O lo'o iai i totonu o vaega tumau o vasega ua tu'ufa'atasia / pini / sh, Whoami, uname-a, Matagaluega o Galuega i luga o le ala Unix ma lisi o galuega i luga o le ala Windows, faatasi ai ma toe fa'afo'i leErrorStream e tu'ufa'atasia ai le fa'ai'uga sese o le fa'agasologa a le tamaititi i totonu o le vaitafe ua pu'eina. E lua fa'ata'ita'iga JSON e feavea'i ai taunu'uga mai le 'au talimalo — o se fa'ailoga resitala:
{"host":"%s","os":"%s","user":"%s","dir":"%s"}
tagata mai le igoa faʻailoga poloaiga ma le igoa os, igoa ole tagata fa'aoga, ma tagata fa'aoga.dir meatotino o le faiga, ma se tali e toe foʻi mai ai:
{"version":"%s","host":"%s","time":"%s","output":"%s"}
O fa'ailoga o le alualu i luma o lo'o totoe i le galuega a le fa'aputuga lava ia e matua'i manino lava: [C2] ua mae'a le fa'atinoina o le taimi fa'aputuga, Ua auina atu le valaau toe faafoi [C2] → HTTP , [C2] atigi ua feso'ota'i i .
E iva fa'asalalauga, tolu augatupulaga C2
E lē o ni kopi e iva o le uta e tasi ia fa'asa'olotoga. O se fa'amaumauga o fa'ata'ita'iga, ma o le faitauina o ia fa'asologa e fa'aalia ai o lo'o toe fausia le auala a'o tumau pea le vector tiliva.
| tatala | Fa'atino otometi i le taimi e tu'ufa'atasia ai | alāvai |
|---|---|---|
1.0.0 | leai (leai se faila tautua) | Na'o le URL e toe vala'au mai e le kamupani fa'agaoioia |
1.0.1 | ioe (ua fa'aofiina le vector) | URL toe vala'au mai le kamupani telefoni |
1.0.2 | ioe | Atigi fa'afeagai, alavai TCP ngrok |
1.0.3 | ioe | Auala HTTP, /resitala /cmd /fafo |
1.0.4 | ioe | Auala HTTP, /resitala /cmd /fafo |
1.0.5 | ioe | Auala HTTP, /resitala /palota /fafo |
1.0.6 | ioe | Auala HTTP, /resitala /palota /fafo |
1.0.7 | ioe | Auala HTTP, /register /cmd |
1.0.8 | ioe | Ua le atoatoa le fa'amaoniga o le HTTP channel + TLS |
E tolu fa'amatalaga au'ili'ili i lenā laulau e taua le fa'amatalaina, auā e tofu lava ma fa'amatalaga e suia ai le auala e tatau ona faitauina ai mea na maua.
E taunuu le vector i le 1.0.1, ae le o le 1.0.2. O le Release 1.0.0 e tutusa lava le faiga o le su'esu'ega ma le callback ae leai se faila tautua ma leai ni fa'aulufalega o fa'amatalaga; e na'o le taimi lava e vala'auina ai e se mea. Mai le 1.0.1 o lo'o iai le faila tautua ma o vasega ua tu'ufa'atasia e fa'aulufale mai. javax.annotation.processing.SupportedSourceVersionSo'o se iloiloga e fa'atusatusa ai fa'asalalauga e lua ua fa'amaonia — 1.0.0 ma le 1.0.2 — e fa'ai'u sa'o ai ua suia se mea, ae sese le fa'ailoaina po'o fea.
O loʻo iai tonu lava le atigi faʻafeagai i le tasi faʻasalalauga. O le Fa'asalalauga 1.0.2 o lo'o i ai 0.tcp.ngrok[.]io, le laina o le ogalaau [C2] atigi ua fesoʻotaʻi i le 0.tcp.ngrok[.]io:19823, o se fu'a fegalegaleai c2-shell, ma se fa'amutaina o le fa'avaa __END__. O fa'asalalauga 1.0.3 agai i luma e leai ni mea fa'apea ma e o'o atu i se HTTPS host. O se talosaga mo le aveeseina o igoa o fa'asalalauga ua fa'ailogaina semanu e ta'ua ai se TCP endpoint ua mate a'o tu'ua le auala HTTP ola, o lo'o iai i fa'asalalauga e ono mulimuli ane, e le'i ta'ua.
O le fa'asalalauga mulimuli e aveese ai le fa'amaoniga o felauaiga. O le Fa'asalalauga 1.0.8 e fa'aopoopoina ai se vasega e fa'atinoina javax.net.ssl.X509Pule Fa'atuatuaina e leai se aoga o ana metotia siaki tusi faamaonia, o se faʻamaoniga igoa talimalo e moni i taimi uma ua resitalaina e ala i setiDefaultHostnameVerifier, Ma a fa'atuatua i mea uma o se faiga masani e faʻapipiʻi uma e lua o ni mea e masani ai a le JVM. O le aafiaga, mo le vaega o totoe o lena faʻaputuga, e talia e le JVM soʻo se tusi faamaonia mai soʻo se 'au talimalo - e le gata mo fefaʻatauaʻiga a le uta, ae mo soʻo se isi lava mea e faia e le fausiaina i luga o le TLS mulimuli ane.
O le auala HTTP, i faʻasalalauga uma e ono e faʻaaogaina, e taʻitaʻia e se tasi 'auʻaunaga: tableful-fervor-crazed.ngrok-free[.]dev. O talosaga uma e iai le ulutala lapata'iga-o-le-ngrok-skip-browser, lea e taofia ai le itulau fa'alava e tautua e ala o le ngrok tunnels e leai se totogi i su'esu'ega i luga o le initaneti. E fesuia'i seti o ala i fa'asalalauga ta'itasi — /fafo mou atu i le 1.0.7, ma /cmd fesuia'i ma /poll — ae e le suia lava le tagata talimalo.
O le fa'amatalaga o le fa'ate'aina o oe lava
O POM uma mai le 1.0.1 agai i luma e fa'atulaga ai se finauga a le compiler mo le fausiaina o le artifact lava ia:
-proc:leai
O lena fu'a e fa'agata ai le fa'agasologa o fa'amatalaga. O lona a'afiaga iinei e muamuacise: pe a tuufaatasia le poloketi o loʻo i ai le processor lava ia, e le tamoe le processor.
O lenei fu'a e masani lava ona fa'aaogaina. O se galuega faatino e lafoina ai se fa'agasologa o fa'amatalaga e masani ona mana'omia le 'alo'ese mai le fa'aogaina o lena fa'agasologa ia te ia lava i le taimi o le fa'agaoioiga, ma o pepa fa'amaumau o meafaigaluega faufale e fautuaina tonu lava lenei mea. A na'o le tu'u fa'atasi e leai se mea e fa'amaonia ai.
Pe a tuufaatasia ma mea e fai e le processor, e ui i lea, e faamatala ai se eseesega faapitoa: e faatino le code i luga o masini a tagata uma e tuufaatasia e faasaga i le artifact, ae le o luga o le masini e fausia le artifact. O le fuʻa e aliali mai i le lomiga lava e tasi e faailoa mai ai le faila tautua — 1.0.1 — ma i lomiga uma e mulimuli mai. O le fesootaiga i le va o le "faasalalauga lea e amata ai le faatinoga o le taimi tuufaatasi" ma le "faasalalauga lea e tape ai le faatinoga o le taimi tuufaatasi i le lotoifale" o le faailoilo sili ona aoga lea i le seti o artifact, ma e vaaia i se POM tusitusiga faigofie e aunoa ma le aveeseina o se mea.
Tatou matauina le aafiaga ma taofi ai iina. E leai se mea i mea na tusia e taʻu mai ai le mafuaaga na faatuina ai le fuʻa.
E tatau ona taʻua se isi vaega o faʻamatalaga patino, o le tele lava ina ia lafoaʻi. Ua faaigoa e le POM le galuega faatino o le “C2 Lab Payload”, ua faamatalaina o se “C2 lab payload artifact”, ma laiseneina i le MIT. O le faʻailogaina o ia lava o lenei ituaiga e ofoina atu i nisi taimi e fai ma faʻamaoniga o se afifi o se faʻamalositino suʻesuʻega.cise nai lo o se taufaamataʻu ola, ma o nisi taimi e saʻo lena faitauga - o se canary ua faʻalauiloa e leai se atinaʻe e mafai ona oʻo atu i ai o se mea e ese mai lenei mea. E le faʻaaogaina iinei. O se faʻapipiʻi galue na lolomiina i se fale teu oloa lautele, e mafai ona oʻo atu i ai e soʻo se tagata faʻatau, faʻatasi ai ma atinaʻe i fafo na toe fausia faatolu i le iva faʻasalalauga, o se gafatia ola e tusa lava po o le a le mea e taʻua ai e ana metadata. O le igoa i le POM e leai se mea e suia ai e uiga i mea e tutupu i luga o se masini e faʻapipiʻi faʻasaga i ai.
Fa'ailoga mo le fausiaina o masini
Afai o se 'au talimalo faufale ua tu'ufa'atasia e fa'asaga i lenei mea faitino, o le fa'amaoniga o lo'o i totonu o fa'amaumauga o le fausiaina ma le telemetry o feso'ota'iga nai lo o se mea fa'apipi'i tumau i luga o le tisiketi - o le uta e tamo'e i totonu o le fa'agasologa o le fa'aputuga ma alu ese fa'atasi ma ia.
I totonu o le fagu po'o le teuina o le teuina i le lotoifale
META-INF/services/javax.annotation.processing.Processorigoaio.github.davidtimur.c2lab.C2Processor- Faila tautua md5
7d2a08a5c8869a47eea9fa62487dfbe4 - Vasega i lalo o
io/github/davidtimur/c2lab/:C2Processor,C2Task,Task, ma i le 1.0.8 le vasega i totonuTask$1
I le gaosiga o le fausiaina
[C2] compile-time execution complete[C2] callback sent → HTTP[C2] callback failed:[C2] shell connected to- Fa'ailoga fegalegaleai
c2-shell; fa'amutaina o le fa'avaa__END__
Telemetry o lo'o i totonu o le faagasologa
javaci le avea ai ma matua o/bin/sh -c(Unix) po'o se fa'aliliu'upu o poloaiga a le Windows- Poloaiga a le tamaititi
whoami,uname -a,pwd(Unix) petasklist(Windows) fa'amatua e ala i se la'asaga fa'aputuga
I le telemetry feso'ota'iga
- TCP Fa'aulufale i le
0.tcp.ngrok[.]io:19823(fa'alauiloaga 1.0.2) - HTTPS i le
tableful-fervor-crazed.ngrok-free[.]dev, ala/register,/cmd,/poll,/out(fa'alauiloa mai le 1.0.3 i le 1.0.8) - Ulutala o le talosaga
ngrok-skip-browser-warning: true - Talosaga mo tino e fetaui
{"host":...,"os":...,"user":...,"dir":...}or{"version":...,"host":...,"time":...,"output":...}
I le faatulagaga
- Siosiomaga fesuiaiga
CALLBACK,CALLBACK_URL; meatotino o le faigacallback.url
Fa'amatalaga o le fa'asalalauga
- vasega
io.github.davidtimur; tuatusi o le fale lomitusidavudboi999@gmail[.]comki sainiE520C345EF94423D
O se fausaga na faʻagaoioia le lomiga 1.0.8 e manaʻomia ai le tasi siaki faʻaopoopo. Talu ai o lena lomiga e faʻapipiʻi ai se pule faʻatuatuaina faʻatagaina e fai ma faʻatulagaga masani a le JVM, soʻo se fesoʻotaʻiga TLS na faia mulimuli ane i le JVM lava e tasi - le fofo o le faʻalagolago, le lafoina o mea tuai, se laʻasaga o le faʻatinoina - na faʻaauau e aunoa ma le faʻamaoniaina o tusi faamaonia. E le tatau ona manatu o feoaiga mai lena faamalama ua faʻamaonia.
Aiseā e manaʻomia ai e meafaitino ua tuʻufaʻatasia ni suʻesuʻega eseese
O le JavacDoor o se faʻataʻitaʻiga aoga auā e faʻatoʻilaloina ai ni manatu masani se lua i le taimi e tasi, ma e leai se toilalo e patino i meafaigaluega a se tasi faʻatau oloa.
O le manatu muamua o le faʻalauiloaina lea e le code matautia ia lava i totonu o se manifest. O le tele o meafaigaluega o le sapalai e faʻatulagaina i le taʻamilosaga o le olaga atoa hooks, auā mo le npm ma le PyPI o le mea lea e masani ona i ai le gaioiga. E leai se matau o le JavacDoor. O lona fa'agaoioiga o se faila resitala-au'aunaga o lona igoa o se Java interface ma o lona anotusi o se igoa o le vasega. Ina ia maua lena mea i se tulaga fa'amautu e tatau ona e togafitia META-INF/services/javax.annotation.processing.Processor o se nofoaga e ulufale ai i le faʻatinoga i lona lava aia tatau, e tutusa ma le pe a uma ona fa'apipi'i tusitusiga — ona mulimuli lea i le vasega ua faaigoaina i totonu o le bytecode. O faiga fa'a-siosiomaga e iai a latou lava auala e maua ai otometi o lenei foliga, ma o faiga ta'itasi o se ulufale e tusa lava pe fa'avasegaina e meafaigaluega pe leai.
O le manatu lona lua o loʻo iai laina i faila punaoa. Mo se fagu, o endpoints, o poloaiga a le shell, o templates JSON, ma fa'ailoga log o lo'o i totonu uma o vaituloto tumau o .vasega faila. O meafaigaluega e aoina tusitusiga e leai se mea e maua - e le ona o laina ua faanenefuina, ae ona o loʻo i totonu o se pusa binary faʻatulagaina e le mafai e se suʻesuʻega tusitusiga ona suʻesuʻeina. O faʻailoga fesoʻotaʻiga uma i lenei pou na sau mai le suʻesuʻeina o le constant-pool. O se tasi o ia mea o se faʻatulagaina atoatoa https:// O le URL o loʻo tu saʻo lava i totonu o se faila vasega; o le suʻesuʻeina o tusitusiga o mea o loʻo i totonu o le fagu e mafai ona faitauina e le mafai lava ona aliali mai. E leai se faʻailoga e faʻatoʻilaloina iinei, naʻo se faʻatulagaga o le koneteina e faitau.
E tutusa foliga o avanoa uma e lua: o se faatulagaga o mea tuai sa taulimaina e pei o se taga o faila nai lo o se fausaga ma se uiga ua fa'amatalaina. O le fa'asa'oga e le matagofie - su'esu'e le koneteina, fa'amaumau nofoaga ulufale otometi a le si'osi'omaga, ma mulimuli i ai i totonu o le code ua tu'ufa'atasia. Mo vectors taimi fausia, o le siaki lona tolu e taugofie ma e ofo ai le su'esu'eina: fa'atusatusa le mea e fai e se mea tuai i tagata fa'atau ma le mea e tu'uesea ai o ia lava mai ai. O se mea tuai e resitalaina se fa'agasologa taimi fa'aputu ma fa'agata fa'atasi le fa'agasologa taimi fa'aputu mo lana lava fausiaina ua ta'u atu ia te oe se mea e uiga ia te ia lava i laina e lua o le POM tusitusiga faigofie.
Mo 'au o lo'o fa'aaogaina meafaitino a Maven i aso nei, e tolu auala aoga e mulimuli mai:
- Taulima le ala o le annotation-processor e pei o se tuaoi o le faʻatinoga. O fa'alagolago e tula'i mai iina e fa'agaoioia le code i lau build. Afai e le mana'omia e se build le fa'agasologa o fa'amatalaga, -proc:leai e aoga tele mo le puipuiga e pei ona foliga mai sa i ai iinei; pe a fai, fa'apipi'i manino le seti o le processor nai lo le mautofi mai le compile classpath.
- Fa'agasologa laiti o le fa'aputuga o tala fa'amau. O se la'asaga fa'apipi'i e fa'atupuina ai se atigi e le masani ai i le tele o galuega faatino ma e faigofie lava ona fa'ailoa atu.
- Aua le taulima fa'amatalaga fa'amaumauga (database) o se molimau. O le "Lab", "test", "payload", ma le "PoC" i le igoa o se afifi po'o se fa'amatalaga e le o ni tapula'a o le lautele. O le mafai ona o'o i ai ma amioga e fa'apea.
Na aveeseina le meafaitino ma lana vaega atoa mai Mau Central i le mulimuli ai i la matou lipoti; o le ala o mea taulima ma le ala o le vaega ua toe faafoi mai nei le 404, ma o le Central index e leai ni faamaopoopoga tutusa o loʻo lipotia mai. O le a tapunia ai lenei mea taulima. E le tapunia ai le vector, o se vaega ua faamaumauina o le Java compiler ma e avanoa mo soʻo se tasi e lolomiina se fagu.
mau faasino
E leai ni punaoa mai fafo o loʻo taʻua i lenei pou. O faʻamaumauga uma o ni suʻesuʻega tuusaʻo o fagu e iva na lolomiina, na aumai mai Maven Central aʻo leʻi aveeseina. E leai se code mai mea na faia na faʻatinoina i soo se taimi.







