Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 84 reacties

Een beveiligingsexpert is bij toeval gestuit op een botnet waarbij gebruik wordt gemaakt van Twitter-berichten om de bots aan te sturen. De hackers lijken het gemunt te hebben op het stelen van inloggegevens van Braziliaanse banken.

Jose Nazario, hoofd security research bij Arbor Networks, kwam de botnetactiviteit via Twitter op het spoor doordat de bots via de rss-feed van het bewuste 'upd4t3'-account hun instructies kregen. De instructies zien er uit als onzinnige tekststrings, maar blijken volgens de beveiligingsexpert met base64-geëncodeerde blokken tekst.

Na het decoderen leveren deze blokken een pkzip-archief op, dat uitgepakt de bestanden gbpm.dll en gbpm.exe bevat. Het dll-bestand stuurt volgens de onderzoeker waarschijnlijk inloggevens naar een aantal url's van een Braziliaanse bank, terwijl het exe-bestand te herleiden is naar de Buzus-trojan. Uit een update van Nazario blijkt dat de zogeheten infostealer voornamelijk in Brazilië actief is met een honderdtal besmettingen. Het Twitterbotnet-account is inmiddels door Twitter offline gehaald.

Overigens is de gebruikte botnettechniek via Twitter-berichten niet nieuw. Zo weet 'Tom' in de comments van het artikel op Arbor Networks te melden dat de proof-of-concept-code hiervoor al eind juli, op de Defcon 17-conferentie, naar buiten is gebracht. Van de presentatie daarvan is een video verschenen. Ook daarbij werd gebruikt gemaakt van base64-encodering van de Twitter-berichten.

Twitter botnet

Moderatie-faq Wijzig weergave

Reacties (84)

Hehe, geinig. Naja soort van dan (met oog op de gestolen inloggegeven). Om een geheel bestand te passen in een bericht van 180 tekens is best wel knap ;)
En om het op twitter te publiceren is nog vreemder, je zou verwachten dat zo iemand wel een eigen server zou hebben.

[Reactie gewijzigd door Calavoow op 14 augustus 2009 18:42]

Je moet eerst de strings na elkaar plakken en dan base64 decoderen, dit levert je een zip bestandje op, staat zo in het artikel.

Het past dus niet allemaal in 180 tekens.

Waarom geen eigen server => eigen server is veel maklijker te achterhalen wie erachter zit dan bij een twitter account...
Volgens mij is het hele verhaal over dat die tekstrings samen een Zip file zijn na decoderen onzin. Als je namelijk zelf de berichten in het screenshot decodeerd krijg je links naar bestanden ;) en geen zip header ...

Hmm, staat ook wel erg duidelijk in de oorspronkelijke bron:
OK, a couple of links. One is dead (to a pastebin), one is live.
That second link yields a base64 encoded block of text. When we un-encode it using base64 we see a PKZIP archive

[Reactie gewijzigd door djexplo op 14 augustus 2009 23:57]

Binaries op usenet werken op een vergelijkbare manier, dus nieuw is het niet. Ze hadden beter twitpic.com kunnen gebruiken, in een plaatje kun je onopvallender data verbergen, waarschijnlijk nog meer ook.
Wie zegt dat dat al het geval is, er zijn vast vele botnets (slapende) die nog niet zijn opgevallen.
Je hebt me op een idee gebracht, en een paar uur geleden ben ik eraan begonnen:
http://peter-server.homelinux.net/data-in-een-afbeelding/

Voor de broncode, zie de phps-bestanden.
Binaries op usenet werken op een vergelijkbare manier
Mmm... ik krijg plots het gevoel dat twitter wel eens uit kan gaan groeien tot het nieuwe nieuwe systeem om (illegaal) bestanden uit te gaan wisselen...

Zou dat werken ?
Het is niet 1 bericht, maar meerdere berichten die hij samenvoegt. Het is inderdaad een slimme actie, aangezien de twitter servers gewoon worden toegevoegd aan de whitelist van de firewall door de client.
Na het decoderen levert deze blokken een pkzip-archief op
Overigens zijn berichten op Twitter (tweets) maximaal 140 karakters.
Zou er overigens een manier zijn om dit filteren?

Er staat bijvoorbeeld gaan spatie in de tweet / base64 encoded string.
Even een melding, checken en eventueel (account) verwijderen. Alhoewel een nieuw account zo is aangemaakt :|
blokkades halen niks uit: stel dat twitter checkt op spaties, dan kan je je botnet cliënt op de geïnfecteerde pc gerust alle spaties eruit laten halen, het blijven gewoon letters.
Maar je kunt dan wel weer berekenen of het gaat om woorden of niet.
Afstand berekenen tussen klinkers en medeklinkers, kijken naar het aantal cijfers tov letters. Eventueel stop je er woordenboeken achter. En je berekent aan de hand van de mismatches of het al dan niet gaat om een tekst.
Dan doen we er toch wat spaties doorheen en om de zoveel tijd een leesteken? Lijkt me niet dat dit de beste oplossing is om dit soort dingen aan te pakken, geen efficiente lijkt mij iig omdat je dan voor elk klein twitter bericht moet gaan checken, en dat zijn er heel veel!

Ze zouden idd kunnen beginnen om te lange zinnen te bannen als die te veel voorkomen, en ook berichten met bijv. om de 5 karakters een spaties te blokkeren omdat dat gewoon nooit voorkomt dat je zo'n bericht schrijft, er zit altijd wel enige "randomness" in je schrijven in en niemand gebruikt zoveel cijfers.
Nee he, laten we alsjeblieft niet nog een keer cybercriminaliteit aanpakken met filtertjes (of CAPTCHAs). Het werkt nauwelijks tot niet, en je pest er alleen onschuldige mensen het hardst mee.
Het kan heel makkelijk. Doe een base64 decode, en als je een weblink ziet, dan blokkeer je dat gewoon. Wie zet er in godsnaam in base64(encoded) een weblink neer? 'Niemand', dus kun je gerust blokkeren zonder dat de onschuldige mensen geblokkeerd worden.
Als er geheime base64-verstop-codes inzitten die het botnet automatisch eruitfilters maar twitter niet herkend gaat het niet werken.
Na het decoderen levert deze blokken een pkzip-archief op, dat uitgepakt de bestanden gbpm.dll en gbpm.exe bevat.
Hoe doe je zoiets ? Lijkt me behoorlijk hard om uit een regeltje text executables te halen...
en hoe denk je dat een executable eruit ziet precies gewoon text.. alles bij een computer is text based( nou ja 1 en 0).. En als dit gedecodeerd is zal het er waarschijnlijk aardig logisch uitziet voor de programmeurs onder ons ;)
en hoe denk je dat een executable eruit ziet precies gewoon text.. alles bij een computer is text based( nou ja 1 en 0).. En als dit gedecodeerd is zal het er waarschijnlijk aardig logisch uitziet voor de programmeurs onder ons ;)
Binair (0 en 1) is voor mij niet hetzelfde als text based. Een tekstbestand in de simpelste vorm (ascii-codering) gebruikt één byte per teken. Iedere 8 1'en of 0'en vormen dus een karakter. Nu is het alleen nog iets complexer dan dit. In principe zou je met ascii ruimte moeten hebben voor 2^8 = 256 karakters, maar niet alle karakters zijn geldige tekst. De byte 00000111 staat bijvoorbeeld voor een piepje met de speaker van de PC, geen geldige tekst dus. Binair 0001000 is de backspace. Al deze karakters/bytes kun je met geen mogelijkheid op Twitter posten.

Het wordt allemaal nog veel ingewikkelder als je er rekening mee houdt dat Twitter ook gebruikt maakt van speciale tekens, zoals de "é", de "ç", etc. Deze passen niet in de reeks van 256 mogelijke karakters en moeten dus op een andere manier worden gecodeerd. Een veelgebruikte methode is UTF-8, waarbij een teken zowel 1 als meerdere bytes kan bezetten.

Kortom, een executable omzetten naar een tekstdocument kan niet 1 op 1.

De gehele executable posten als 1'en en 0'en in gewone tekst levert een gigantische inefficiëntie op. Hetzelfde geldt in mindere mate voor het plaatsen op Twitter in Hex. Base64 bestaat niet voor niets.

[Reactie gewijzigd door doeternietoe op 14 augustus 2009 19:31]

wel als het proces van decoderen van tekst weer binaire code maakt. Vervolgens plemp je (door een programmeeroutput) de binaire info achter elkaargeplakt in een textbestandje. Dat bestandje is dan geen tekst meer maar binair. Dan hernoem je het bestandje naar *.zip. Het binaire bestand kan daarna gewoon uitgepakt worden.

"Base64 is een manier om binaire code te converteren naar ASCII-tekens" - direct vanuit de wiki. En tekst is verrassend genoeg... Ascii tekens.

Wat ik (als ik de bot zou zijn) zou doen is het volgende: Ik verzamel alle tekstjes (tweets). Ik plak ze op basis van tijd (volgorde!) aan elkaar. Dan krijg ik een lap tekst. Deze lap decodeer ik en voed ik aan mijn unziproutine. De uitkomst van deze unziproutine blijken twee bestanden te zijn, die ik vervolgens op de gewenste (zie zipinfo) positie wegschrijf. Vervolgens ga ik gewoon lekker verder met botje spelen...
Wat ik (als ik de bot zou zijn) zou doen is het volgende
Je omschrijft gewoon 1 op 1 dat wat de bot doet hoor.
en hoe denk je dat een executable eruit ziet precies gewoon text.. alles bij een computer is text based( nou ja 1 en 0)
Nee, een executable ziet er niet uit gewoon tekst en bij een computer is niet alles "text based"...
Ja, dat wist ik ook...
Maar hoe decodeer je zoiets ?
Een stukje omhoog heb ik gereageerd. Het is een encryptie.. :)
Het is niet echt een encryptie, meer een codeerwijze. Je hebt namelijk geen sleutel nodig om de informatie te ontcijferen, maar alleen een algoritme.
ik dacht dat base64 hashing was? :+ ;)
Hashing is volgens mij 1-way; je kunt eenvoudig het hash algoritme op een bericht toepassen, maar het oorspronkelijke bericht terughalen vanuit een hash is ontzettend moeilijk.

En meestal geldt ook dat als de twee hashes aan elkaar gelijk zijn, dat de twee berichten van de hashes ook aan elkaar gelijk zijn. Tenzij je een collission hebt.

[Reactie gewijzigd door onox op 14 augustus 2009 23:47]

Hashing = controle, Codering = Beveiliging van data bijv. dus met de mogelijk om het terug te halen :)
Er zijn hier zo te zien een aantal mensen die niet weten wat Base64 is...

Het is een manier om binaire data te verpakken in tekst (de ASCII character set).

Het is geen hashing mechanisme.
Alles bij elkaar gooien in een .txt
Decoden.
Save as: .pkzip
Unzip
???
PROFIT!!
Maar hoe decodeer je zoiets ?
Zie data niet als bytes (8 bits), maar als een hele lange bit string. Pak telkens 6 bits. Die 6 bits kan je in 2^6=64 leesbare tekens coderen,bijvoorbeeld A-Z,a-z,0-9, +, en /.

000000 = A
000001 = B
000010 = C
:
enz.

Omgekeerd staat een leesbaar teken voor een groepje van 6 bits. Plak die 6 bits aan elkaar tot je de hele lange bitstring terug hebt.

Zie ook: http://en.wikipedia.org/wiki/Base64
Zucht. Met base64decode misschien?
Hoe doe je zoiets ? Lijkt me behoorlijk hard om uit een regeltje text executables te halen...
Zoals in het bericht staat, met base64-codering. Dat gaat ongeveer als volgt:
- Een executable bestaat uit 1'en en 0'en, de bits. Je knipt deze in groepjes van 6 bits.
- Elk groepje van 6 bits vormt nu een getal, voor het gemak zou je het eventueel om kunnen zetten in een decimaal (tientallig) getal.
- Base64 heeft 2^6 = 64 tekens, waar allemaal een nummertje aan hangt. a = 0, b= 1, c= 2, etc Voor ieder getal dat zojuist is gevonden wordt zo'n teken toegewezen.
- Al deze tekens naast elkaar vormen een base64-encoded stuk tekst, dat op dezelfde wijze in omgekeerde volgorde weer gedecodeerd kan worden

Op wikipedia wordt het ook vrij goed uitgelegd:
http://nl.wikipedia.org/wiki/Base64

[Reactie gewijzigd door doeternietoe op 14 augustus 2009 19:31]

Maar er staat dat hij er per ongeluk achterkwam, hoe kom je in vredes naam daarachter en hoe kom je op het idee om het is te decoden? :')
geen leven mischien???

oftwel, een security expert die per ongelijk op dergelijke tweets botst denkt automatisch: laten we eens kijken wat het is.
Op het moment dat je (herkenbare) jibberish tegenkomt misschien?

Twitter wordt gebruikt voor korte berichtjes - op het moment dat die geen berichtjes bevatten maar herkenbaar geencodeerde data zou er wel eens een belletje kunnen gaan rinkelen...

En als je daarna verder gaat zoeken en de tekst wel heel erg veel karakteristieken van base64 tegenkomt, dan zou je wel eens kunnen gaan proberen om de boel te decoderen...

Als je daarna een PK-header in de tekst tegenkomt, dan zou het wel eens (PK)ZIP formaat kunnen zijn en wat die je met een ZIP???
Tussen de grootste uitvindingen zitten een hoop "ongelukken", deze zaken kom je dus ook per ongeluk tegen. Ik zou er niet veel naar zoeken uit te weinig interesse, voor deze meneer is het zijn beroep en waarschijnlijk ook zijn hobby.
een simpele manier om van dit soort base64 coderingen op te sporen is twitter-pagina's af te zoeken met waarin meerdere berichtjes staan die eindigen op "==".
Als je vaker met base64 in aanraking komt, en je twittert toevallig, en je herkent vaag een soort van base64 in de string... ja dan kun je er bij toeval achter komen dat het om een bestand gaat. Veel dll's beginnen trouwens met "MZ", open maar eens een dll in notepad ofzo. Zo kun je dan met toeval zien dat het weleens een deel van een dll kan zijn. Het is vreemder dat mensen op het idee kwamen om koffiebonen die uitgepoept zijn door een of andere beest genaamd luwak, en daar koffie van trekken 8)7

@Vultura, hee interessant, dat wist ik nog niet. Mja, toen konden dat soort geintjes nog ;)

[Reactie gewijzigd door Grrmbl op 16 augustus 2009 14:40]

Als ik het zelf ff decode kom ik uit dat het bovenste bericht iig http://bit.ly/17a3tS zegt. Die link wijst weer naar http://rifers.org/paste/content/paste/9509/body?key=upd4t3 . Ik durf alleen niet die site te bezoeken, zal wel niks goeds zijn ^^

[Reactie gewijzigd door teuneboon op 14 augustus 2009 19:12]

Heb ff gekeken. Je word doorverwezen naar http://rifers.org/paste/content/paste/9509/body?key=upd4t3 Daar krijg je weer een encoded iets te zien, waarschijnlijk die file.

edit:
Het is idd een base64 encoded file, als ik die uitpak krijg ik de gbpm.dll en gbpm.exe files.

[Reactie gewijzigd door IngmarBlonk op 14 augustus 2009 19:16]

Jup, net toch maar even verder gekeken, ook die pagina die je krijgt is inderdaad encoded, en dat is weer een bestand met daarin die files
Waarschijnlijk de code die het botnet runt :) ... Het proberen waard om eens door een hex editor heen te gooien, om te proberen het te decompilen of onder VMware te draaien en kyken wat het doet :)
achter die link zit gewoon een soort online clipboard pagina met nog zo'n reeks willekeurig lijkende tekens(vast ook gecodeerd)
Aan de ene kant snap ik waarom je twitter zou gebruiken - geen problemen met lastige firewalls enzo - maar aan de andere kant, als twitter dan dat account offline haalt dan ligt toch gelijk je hele botnet plat? Lijkt me weer minder handig...
ze zullen vast wel meerdere manieren hebben ingebouwd om contact met het botnet te houden.
Wat een kansloze manier van updates verspreiden, het valt ook niet op; een hele twitterpage met base64 encoded rotzooi. Iedereen die dat ziet weet meteen dat er iets niet in de haak is. Zoals iemand anders al zei: "stop die info in een plaatje". Idd in de meta data en geen haan die er naar kraait.
Eigenlijk niet nodig. Als je een beetje handig bent kun je die bots ook wel naar menselijke tekst op twitter laten luisteren. Moet je alleen wel zelf bedenken waar het zogenaamd over gaat.
Toch nog altijd blij dat ik niet bij community sites zit zoals Facebook en Twitter... Je smijt zomaar je privé leven op de server van iemand anders.
Normaliter pleur er zo'n nonsense neer dat het geen bruikbare waarde heeft, ga je wel persoonlijke dingen erop smijten, tja.. iedereen mag/kan z'n eigen keuzes maken.
Volgens The Register gaat het hier om het controleren van een botnet via Twitter. Zoals ze dat b.v. ook via IRC doen.
Ik vind het bijzonder. Gewoon openlijk instructies laten geven aan bots dmv. Twitter, en door codering hopen dat niemand het doorheeft. Eigenlijk best creatief :)

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True