Hoofdcategorieën
Device Settings

Nieuwe trojan verstuurt data via ICMP

Door Harm Hilvers, donderdag 10 augustus 2006 10:53
Bron: Websense, views: 22.516

Websense, een Amerikaanse ontwikkelaar van securitysoftware, heeft een waarschuwing doen uitgaan voor een nieuw trojaans paard. Dit stukje malware nestelt zich na installatie als een Internet Explorer Browser Helper Object, waar het zich bezighoudt met het verzamelen van de gegevens die door internetters in webformulieren worden ingevoerd. Deze data wordt vervolgens teruggestuurd naar de eigenaar van het paard. Dat is op zich geen vreemd gedrag, dit soort malware wordt dagelijks ontdekt. Wat speciaal is aan deze trojan is dat het versturen van gegevens niet via een HTTP-POST of via een e-mail gebeurt, aangezien dat verkeer relatief eenvoudig is te ontdekken en te onderscheppen. In plaats daarvan wordt gebruikgemaakt van ICMP-commando's, oftewel ping-opdrachten. De te versturen data wordt via een XOR-algoritme gecodeerd, waarna het verstuurd wordt in de datasectie van een ICMP-pakketje. Dit geïnfecteerde pakketje lijkt op al het andere ICMP-verkeer en is daarom moeilijk te identificeren of tegen te gaan, zonder het volledige ICMP-verkeer plat te leggen.

Geëncodeerde inhoud van ICMP-pakket (uitsnede)
Uitsnede van de geëncodeerde inhoud van een ICMP-pakket | Klik voor een grotere versie.
Volgende 12:13 Intel maakt source grafische Linux-driver openbaar
Vorige 10:05 KB digitaliseert kranten vanaf 1600
Advertentie

Reacties

«  1  2  »

Lekker als je net achter je internet bankieren zit... :o

Dat valt mee; eerst las ik namelijk 'ICBM' (Intercontinental Ballistic Missile). :Z

Zou geen verkeerd idee zijn, virussen die ICBM's richting hun makers sturen. :+

Dat zal dan maar net je buurman zijn :o

Licht helemaal aan de grootte van de lading! Kleine lading en je hebt alleen wat last van wat lichte aardschokjes! Tenzij het je onderbuurman is....!

het lastige is dat dit een uitgaand ICMP pakketje is. En heel erg veel firewalls laten alles van binnen naar buiten gewoon door......

De ontvangende kant zal het wel doorlaten hoor...

Volgens mij wordt het verkeerd begrepen (of heb ik het verkeerd begrepen :? )
De trojan verspreid zich niet via ICMP.
Als de trojan geactiveerd is, wordt er gescand op hetgeen je in webformulieren invult (om dus e-mailadressen, paswoorden, etc te weten te komen). De informatie die dan verzameld is, wordt naar de hacker gestuurd via een ICMP packet.

Kortom: Het is dus geen bug/zwakheid/probleem in de ICMP packetten.

Kortom: Het is dus geen bug/zwakheid/probleem in de ICMP packetten.
Is dat niet een beetje kort door de bocht?
Ik kan een honkbalknuppel goed gebruiken in de sport.
Maar ook om iemand z'n ramen er uit te meppen of z'n schedel mee in te slaan!
Is het dan een "bug/zwakheid/probleem" in de honkbalknuppel?
Ik moet wel zeggen dat het wel "geniaal" gevonden is om data zo te verbergen en te versturen.

Kortom: Het is dus geen bug/zwakheid/probleem in de ICMP packetten.

wel effe goed lezen he :9
edit:
Mmz post over honkbalknuppel is reeds verwijderd

En toch: het ICMP protocol is dus niet zo beveiligd dat alleen ICMP informatie verstuurd kan worden. In mijn ogen zou je dat als een bug/zwakheid/probleem kunnen opvatten, net zoals het SMTP protocol als lek wordt gezien omdat het veel te gemakkelijk is om headers te veranderen.

Ik begrijp het probleem niet goed...
ICMP: ik verstuur 1 data-pakketje en kijk of het goed aankomt. Je kan nu alle firewalls laten scannen op de OSI layer 7 om te kijken of het om een "standaard" ICMP gaat, of om een ICMP met andere packet data.
Je stelt voor om ICMP te standaardiseren zodat enkel specifieke content kan verstuurd worden?

Je stelt voor om ICMP te standaardiseren
Dat is 20 jaar (gokje??) geleden al gebeurd

Euhm, het is gewoon ICMP informatie die verstuurt wordt.

Net als ik in een e-mail kan zeggen dat ik 10milj. euro van nigeria wil overbrengen of via MSN je kan uitnodigen naar mijn pr0nsite.

De header is wat het ICMP maakt, de informatie die in het pakket staat kan al dan niet gebruikt worden door een programma aan de ontvangende zijde.

Dit is geen zwakheid, het is gewoon bekend dat dit kan, en je kan je er prima tegen beschermen.

Je hebt verschillende typen ICMP verkeer.
Voor een compleet overzicht zie hier: http://www.faqs.org/docs/iptables/icmptypes.html

Met de volgende firewall regels(FreeBSD IPFilter) zorg ik ervoor dat alleen onschadelijke typen ICMP verkeer door worden gelaten.
pass in quick on rl0 proto icmp all icmp-type 0 keep state # echo replies
pass in quick on rl0 proto icmp all icmp-type 3 keep state # unreachable
pass in quick on rl0 proto icmp all icmp-type 8 keep state # echo requests
pass in quick on rl0 proto icmp all icmp-type 11 keep state # time exceeded
Veel firewalls hebben standaard soortgelijke regels, of zijn op deze manier te configureren.
ICMP paketten zoals deze trojan verstuurd(met data) komen er dus niet door.

Je kunt in veel firewalls ICMP packetjes/commandos blokkeren, ik weet dat het in ieder geval met Zone Alarm Pro kan en met de firewall binnen de Kaspersky Suite.

Het is alleen verschrikkelijk dom om ICMP te blokeren, zeker op servers en gateways. ICMP is belangrijk om internet "gezond" te houden.
Besides, voor ICMP heb je RAW socket toegang nodig, en alleen Windows geeft deze toegang zonder admin privileges. De rest van de OS wereld wist al van de gevaren van RAW socket toegang, helaas hebben ze bij Microsoft er andere ideeen over.

Iedereen zit toch als Admin ingelogd, dus dat zal ook het verschil niet maken :z

Ik meen dat Windowx XP het enige OS is waar de gebruiker toegang kan krijgen tot RAW sockets
Steve Gibson (van grc.com) heeft voor de lancering van XP hierover ook een vrij alarmerende stuken geschreven om voor gevaren als deze te waarschuwen, en tevergeefs stappen ondernomen om dit tegen te houden.

Zie onder andere http://www.grc.com/dos/xpconference.htm

Volgens mij is RAW socket toegang in OS'en vrij normaal? Programma's als nmap werken juist op Windows XP met meer moeite als *nix'en, omdat je in XP SP2 alleen nog RAW toegang hebt tot ethernet sockets.

Steve Gibson schrijft altijd overal alarmerende stukken over.
Probeer maar eens een niet-alarmerend stuk (qua inhoud dan wel font-opmaak) te vinden op grc.com...

Nee, RAW socket toegang is abnormaal. Je kunt dan namelijk zelf je packet samenstellen tot op bit niveau. Dus ook pakketten die de boel in de war sturen zoals bijvoorbeeld SYN floods.

Nu kan iemand die kwaad wil altijd wel ergens admin/root rechten krijgen, maar deze bescherming is om ervoor te zorgen dat niet een willekeurige user/programma dit op _JOUW_ machine gaat doen.

Doordat op XP de RAW socket toegang vrij is heb je die bescherming daar niet. Het zou ook niet veel uitmaken, want op XP is bijna iedereen toch al admin.

Normaal heeft alleen admin/root de mogelijkheid om een RAW socket te gebruiken, en bepaalde software zoals ping (traceroute werkt met UDP sockets).

Op XP (en 2000, 2003, .....) maak je gebruik van winsock om toegang te krijgen tot TCP of UDP sockets. Mits het gekozen poortnummer >=1024 zijn daar geen speciale privileges voor nodig. Dit is het normale interface voor TCP/IP netwerk verkeer.

De reden dat nmap et al meer moeite hebben op Windows is dat die programma's op *nix ontwikkeld worden. De meeste *nixen hebben een vergelijkbare protocolstack. Windows wijkt daar op een aantal punten van af. Dan is de port naar Windows dus wat meer werk dan de port naar een andere *nix.

Nee, RAW socket toegang is abnormaal.
onder windows was dat inderdaad zo, maar sinds windows 2000, toen MS de FreeBSD tcp/ip stack is gaan gebruiken, is het ook op dat OS beschikbaar.

Onder Unixen was het altijd al beschikbaar, maar dan moest je wel root zijn.

Ach als je een beetje firewall hebt staat kan je ook bepaalt segmenten in ICMP protocol laten allowen en andere denyen zoals onderstaande log uit 1 van mij firewalls.
pass out on $ext_if inet proto icmp all icmp-type 8 code 0 keep state
pass in on $ext_if inet proto icmp all icmp-type 8 code 0 keep state
Dit bevoorbeeld staat wel echo replies toe echter geen enkel ander type van het ICMP protocol.

Wat heel slecht is, want je wilt ook ICMP Fragmentation Needed (voor bijvoorbeeld Path MTU discovery), ICMP Destination Unreachable (zodat je sneller een foutmelding krijgt als een site niet beschikbaar is) etc. doorlaten.

ICMP is veel nuttiger dan je op het eerste gezicht zou denken.

Zelf laat ik volgens mij type 3, 8 en 11 inkomend toe (zie lijst..) en uitgaand alles |:(

De types hebben weer subtypes, bijvoorbeeld Fragmentation needed is een subtype van 3: Destination unreachable.
Ik hoop dat dit ze allemaal zijn voor een gezond internet verkeer. (zoniet laat het even weten..) Zeker op je NAT gateway is het belangrijk een aantal toe te laten.
Je zult als firewall dus deeper moeten ingaan op ICMP packetjes dus kijken naar de data etc. bijvoorbeeld de grootte om evil packetten eruit te halen.

* cybero maakt een todo list: toegestane uitgaande icmp en size aanpassen..

voor ICMP heb je RAW socket toegang nodig
waarom kan dan elke willekeurige user in linux, het commando ping en traceroute gebruiken?

Omdat je hierbij niet zelf het packet samenstelt en dus ook de data niet kan specifieren. Je hebt maw nog altijd geen toegang tot raw sockets....

Omdat ping en traceroute het setuid bitje aan hebben staan. Dit betekend dat bij uitvoer het programma de rechten van de eigenaar krijgt (root bijvoorbeeld).
Doe maar eens een ls -l /bin/ping en je zit het s bitje staan.

je kunt icmp pakketen ook sturen via icmp.dll maar dit is well depreciated. Dus je hebt niet perse admin rechten nodig.

....
Besides, voor ICMP heb je RAW socket toegang nodig, en alleen Windows geeft deze toegang zonder admin privileges....
Dar heb je helemaal geen raw sockets voor nodig alleen gedegen kennis van het OS. ICMP is niks meer en minder dan TCP of UDP en bevindt zich op het zelfde niveau als deze. Het enige verschil tussen ICMP en TCP en UDP is een aantal bitjes in de IP-header (8 om precies te zijn) en de Payload. 1 = ICMP; 2= IGMP; 6 = TCP; 17= UDP. Deze Protocol bits bepalen welke SAP (Service Access Points) er gebruikt worden tussen twee communicarende systemen. Om hier misbruik van te kunnen maken heb je Raw Sockets nodig om bijvoorbeeld een eigen protocol te maken. Wie weet overigens hoeveel "eigen" protocollen er al niet zijn die informatie uitwisselen.....

Meer info op http://www.erg.abdn.ac.uk...inet-pages/ip-packet.html

<Samenzweringsmode>
Da's toch niets nieuws? Is het je nooit opgevallen dat een ping pakketje naar microsoft.com een andere payload heeft dan eentje naar al-qaida.com? Daarom is het 'OpenPing' project opgezet.
</Samenzweringsmode>

n plaats daarvan wordt gebruikgemaakt van ICMP-commando's, oftewel ping-opdrachten
ICMP != ping. ICMP is een veel uitgebreidere protocol dan alleen het ping commando. Onder ICMP vallen:

t of permitted control messages (incomplete list)

* 0 - Echo Reply
* 1 - Reserved
* 2 - Reserved
* 3 - Destination Unreachable
* 4 - Source Quench
* 5 - Redirect Message
* 6 - Alternate Host Address
* 7 - Reserved
* 8 - Echo Request
* 9 - Router Advertisement
* 10 - Router Solicitation
* 11 - Time Exceeded
* 12 - Parameter Problem
* 13 - Timestamp
* 14 - Timestamp Reply
* 15 - Information Request
* 16 - Information Reply
* 17 - Address Mask Request
* 18 - Address Mask Reply
* 19 - Reserved for security
* 20-29 - Reserved for robustness experiment
* 30 - Traceroute
* 31 - Datagram Conversion Error
* 32 - Mobile Host Redirect
* 33 - IPv6 Where-Are-You
* 34 - IPv6 Here-I-Am
* 35 - Mobile Registration Request
* 36 - Mobile Registration Reply
* 37 - Domain Name Request
* 38 - Domain Name Reply
* 39 - SKIP Algorithm Discovery Protocol
* 40 - Photuris, Security failures
* 41 - ICMP for experimental mobility protocols such as Seamoby [RFC4065]
* 42-255 - Reserved

Meer informatie: http://en.wikipedia.org/wiki/Icmp

Je zegt dus eigenlijk dat er mer soorten data verkeer via ICMP-commando's kunnen worden verzonden.

Jep, Ping is maar één van de vele toepassingen van ICMP.

Net als TCP/IP voor meer bedoelt is dan alleen porno downloaden, je kunt het ook gebruiken voor e-mail, wist je dat? :D

je kan in een icmp pakket een bepaald bitpatroon stoppen. Standaard zal dit gewoon een standaard patroon zijn. Maar het is natuurlijk geen enkel probleem om er data mee te sturen. Ik heb zelf wel ping gestuurd met bijvoorbeeld alleen maar nullen of enen om vage problemen met een modem te troubleshooten.

In de datasectie van een ICMP pakketje kun je alles versturen wat je maar wilt. Je kunt zelfs, als je op je eigen server een programmaatje installeert dat de ICMP request afhandelt (in plaats van dat de kernel dat doet), een complete PPP verbinding over ICMP opzetten:

ICMPTX doet dat bv. op Linux:

http://thomer.com/icmptx/

Dit wordt, met recht, een covert data channel genoemd.

Jop, zat er dik in zoiets. En als ICMP niet werkt kan een handige hacker dit met een eigen DNS server en DNS requests (data ge-encodeerd als subdomein). Hoef je niet eens rauwe paketten voor te versturen (voor ICMP zullen ze wel de pcap driver gebruiken, aangezien raw packet support uit XP is verwijderd), nagenoeg elk OS ondersteunt DNS, en er is genoeg ruimte voor essentiele data (passwords etc).

De kunst is toch om dit soort rommel niet op je pc te krijgen.

Precies, er zijn zelfs al tooltjes voor het opzetten van tunnels via ICMP en DNS queries. Ik wilde nog een keer servers opzetten die mij instaat stellen zo'n tunnel te bouwen. Hier zijn de links: ViaDNS ViaICMP

Zucht jammer, nou worden de firewalls ook gericht op ICMP door deze acties.. Daar gaat mijn tunnel.

Zucht jammer, nou worden de firewalls ook gericht op ICMP door deze acties.. Daar gaat mijn tunnel.
Goed opgezette firewalls zijn al lang bestand tegen dit soort misbruik door goed opgezette filters en content scanning. Bij een goede firewall setup hoort een goede rulebase waarbij zo min mogelijk word doorgelaten met zo krap mogelijke filters. Dus bv alleen DNS naar de dns servers van de ISP, uitgaand icmp alleen vanaf speciale management stations etc.

bv alleen DNS naar de dns servers van de ISP
Mits juist opgezet helpt je dit dus niks, de ISP zal het alsnog verder moeten vragen, de data komt dus uiteindelijk aan op de plaats waar de hacker het wil hebben (op zijn/haar DNS server dus). Dat is juist het smerige aan deze opzet, de client maakt gewoon gebruikt van voorzieningen van het OS (je kunt zelfs vanuit een batch wel op de een of andere manier een DNS query doen), en de hacker hoeft alleen een uitgebreide log van zijn/haar DNS server te hebben...

Welke firewalls scannen op dit soort content van datapakketjes?

Volgens mij valt het wel mee met de goed opgezette firewalls in deze wereld. Ik ken er nog geen die de content van uitgaande icmp scannen, hoe wel dit natuurlijk gewoon te bouwen is met iptables. Dit gebeurt toch vaak niet.. Daarom dat het een logische stap is om dit te misbruiken. Vervolgens word hierop standard beter gechecked en verschuift het geheel naar een nieuw veld en zo gaan we door..

<off-topic>
De DNS aanpak is veel genialer opgezet, omdat dit een echte valide query is (lijkt) die door je eigen DNS server word doorgestuurd! Zoals aangeven door Friek. Je krijgt dus een soort spam oorlog via DNS queries, je moet namelijk twee valide queries uit elkaar zien te houden. Probleem voor het implementeren van de tunnel is dat je ergens in een dns server een NS record moet hebben voor een subdomein die naar jou server wijst.. Blijft (off-topic) leuk spelen met dit spul, daarvoor zijn we toch tweakers :)
</off-topic>

tenminste iemand die me begrijpt ;)

die tunnel is trouwens vrij eenvoudig te bouwen, een IPv4 adres vertaalt eenvoudig naar 4 bytes. Met ipv6 wordt de bandbreedte nog groter.

In principe is het niet de bedoeling dat een firewall dit soort aanvallen behandelt.

@friek breng ze nou niet op ideeen ;-)
«  1  2  »

Op dit item kan niet meer gereageerd worden.

Volgende 12:13 Intel maakt source grafische Linux-driver openbaar
Vorige 10:05 KB digitaliseert kranten vanaf 1600
VNU Media logo Hosted by True

© 1998 - 2012 Tweakers.net B.V. - Alle rechten voorbehouden - Contact - Jouw privacy - Algemene Voorwaarden

Uitgever van:

Website van het jaar 2011