tshark & Malware Analysis
Hallo, ik ben Didier Stevens, Sr. Handler op de InternetStormcentrum. In deze video ga ik je laten zien T-Shark. T-Shark is de consulverschein van Wireshark. Ik wilde een short diary-entrie op analyseren in een pick-up file met T-Shark en mijn tools. T-Shark is de consulwireshark en de command-line wireshark. Dit is de command die ik heb gegeven. Ik zal het later in deze video in detail uitleggen, maar dit is de output die je krijgt. De shellcode is uitgelegd van het capture file en het is herkend als cobalt-strike shellcode. Hier heb je de IP-adres, de port, de part en de user-agent string. Laten we nu in detail kijken hoe ik dit heb gedaan met T-Shark. Ik heb deze diary-entrie opgelegd. Een quick follow-up naar Brad's diary-entrie op een excel spreadsheet die een systembc-molwere pusht. In een artikel, zoals Brad altijd doet, heb je pick-up files, screenshots van Wireshark. En ik was interesse over deze, want hier zie ik shellcode. En het is ook encoded in een manier waarin ik mijn tools base 64 opgelegd kan zijn. En dat is wat ik hier in mijn diary-entrie opgelegd heb. Met T-Shark extracteer ik de shellcode en de analysie. Eerst moeten we T-Shark gebruiken. T-Shark is de command-line versie van Wireshark. Ik heb hier Wireshark installeerd op mijn Windowsmachine. Het is in programma files, dus het is de 64-bit versie. En daar heb ik T-Shark. Dit is de T-Shark command. En als ik deze command opgelegd heb, zoals dit, is het zoals opgelegd met Wireshark en opgelegd met Capture. Zoals dit. Dus het is capturing hier. Oké, laten we dit cancelen. Het is capturing hier op deze VMware-netwerkadaptor, vm.8. En je kunt hier wat pakketten zien. ARP pakketten. Waarom is T-Shark dat? Als je geen optie geeft, startt het gewoon capturing en de pakketten, de overvies van de pakketten die je ziet. En welke interface zal het selecten? Het is simpel. Het is de eerste interface in het list van interfaces. Met de optie capital D kun je een overvies krijgen. Hier zijn alle verschillende interfaces op mijn machine. En deze is de eerste, dus dat is wat T-Shark gebruikt. Ik kan natuurlijk explicitelig een interface zoals deze loopbak hier, nummer 10. Dus interface nummer 10. En nu zijn we capturing-traffic op de loopbak. Als ik bijvoorbeeld een ping doe, kun je hier de ICMP pakketten zien. Laten we cancelen.  Als je dit doet, zijn de pakketten capturd, maar ze zijn niet op dit disk. Ze zijn niet op een file. Als je wilt capturen dit met Wireshark en deze op een file, dan gebruik je de optie W. En laten we zeggen, bijvoorbeeld Capture, PcapNG. PcapNG is de default format gebruikt van T-Shark, zoals Wireshark. En nu is de capturing erop. Laten we een ping doen. Hier hebben we onze pakketten. Laten we cancelen. Dus nu hebben we een capturfile. En dit is een capturfile die je eigenlijk kan vergeten met T-Shark. Voor dat, gebruik je de optie R, Read, Capture. En hier zie je bijvoorbeeld de ICMP pakketten. En dat is wat ik heb gedaan met Brad's Pcapfile. We hebben Brad altijd het Pcapfile van de malware die de analyseren. Dus met T-Shark doe ik een Read van dat capturfile, waar er een system BC-infectie is die gebruikt als koble strijk, zoals dit. Er zijn hier veel pakketten in. Dus dit zal er wat tijd nemen. Een overvuur van alle pakketten is gesproken. Oké, en dat is de eind van de pakket Capturfile, 9199 pakketten. Dus dat is veel. Je kan niet werken met een Capturfile zoals dit. Je moet het filteren, zoals je het doet in de Wireshark. En als je een display filter wilt gebruiken, kan je de optie capital Y gebruiken. En dan typ je Wireshark filter, zoals HTTP. Een display filter om gewoon HTTP-connectie te zien. En hier bijvoorbeeld, een van de laatste is get to system BC. Dus dat is wat Brad explained in de diariantrie. Dit is een get-request voor de koble strijkselcode. En ook op het begin hier heb je een andere get-system BC. Ik kan filteren op dat. Ik zeg oké, als in de URL er is system BC, ik wil je de pakket displayen. Voor dat moet je de exacte field weten. En dat is iets dat je in Wireshark kunt kijken, als je het niet weet. Dus ik heb hier in Wireshark dezelfde Capturfile open. Get-system BC. Hier heb ik de URL selecteerd. En dan, als je hier op het einde kijkt, kan je readen. HTTP.request.uri. Dus dat is wat we moeten gebruiken in onze filter. HTTP.request.uri. Contains system BC. En ik ga dit tussen dubbelkorten. Want het is één value voor option Y, maar het containte spaces. Dus ik moet dit in dubbelkorten oplossen.  En nu zie je dat ik hier de twee get-system BC's heb. Je kunt zien dat de URL een beetje verschillend is. Dit containte hier dat ik hier heb gedaan, in dit examen is het case-sensitief. Om je te laten zien, als ik de uppercase BC doe, dan krijg ik geen hits. Nu, dit zijn de get's. Wat we eigenlijk willen is de reply, want dat is waar de payload is, dat we willen analyseren. Dit is de reply hier. En als je hier naar beneden gaat, dit is de payload en je kunt zien dat hier, dit is in field HTTP file data. En het begint hier met backslash xfc. Dus ik ga dat gebruiken als een filter. Http.file.data containte xfc. Ik ga hier niet de backslash opnemen, want dat is moeilijk om hier in de console te krijgen. Dus ik ga hier xfc opnemen. En nu heb ik hier mijn twee replies. Natuurlijk wil ik de payload, dus ik wil kijken binnen. En nu kun je de optie uppercase v om de complete review te krijgen. Zoals dit. Dus voor elke pakket krijg je de complete review. Dus hier hebben we deze frame. Ethernet, IP, TCP, HTTP en de linebase data. Dus dat is wat we willen. Nou, onverdraagd, dit is truncated hier. We willen de complete shellcode. En dat is iets wat we kunnen doen om niet de optie v te gebruiken om de complete dissection te krijgen. Maar om de field te speciferen dat we willen met de optie e, lowercase e. Dus HTTP file.data Dat is wat we willen. Als je dit doet, krijg je een error, want je moet een andere optie proberen om hoe je de fields willen zijn te worden gesproken. Bijvoorbeeld in JSON. Hier ga ik de content gesproken. Dus ik ga deze optie uppercase v field gebruiken. Zoals dit. En nu, zoals je kunt zien, ik krijg de complete payload en ik heb alleen de payload. Dus op dit punt hier, ik kan dit analyseren. Want dat is iets wat mijn toolbase base.dump64 recognisert. Dus dat is een encoding. Als je dit niet uitgaat, dan zal niets ontdekken. Omdat de default base.dump64 voor base.dump64 bekijkt. Hier, de encoding dat we willen is backslash x exadecimal. En dat is known as bx hier encoding bx. En hier, het vond de payload twice, want we hebben het twice. 