image

"Assembly onmisbaar voor pentesters"

maandag 5 april 2010, 16:19 door Redactie, 13 reacties

Wie de beveiliging van websites, netwerken en applicaties test moet de programmeertaal assembly kennen, dat zegt beveiligingsexpert en bedenker van hackertool Metasploit H.D. Moore. Het gaat dan met name om pentesters. Volgens Moore is het altijd goed om nieuwe dingen te leren, aangezien je als penetration tester of systeem auditor nooit genoeg kan weten. Hoewel assembly niet altijd van pas komt, is het toch zeer handig om te kennen. Daarnaast is het verplicht voor pentesters die hun eigen exploits maken of die van anderen aanpassen. "Maar voor het grootste gedeelte zal het niet bepalend zijn of je toegang tot het netwerk krijgt."

Backdoor
Met name professionals die publieke exploits gebruiken doen er verstandig aan om assembly te kennen, aangezien ze zo de code kunnen controleren. Moore merkt op dat de afgelopen jaren verschillende publieke exploits zijn verschenen die bestanden van de harde schijf verwijderden of een backdoor installeerden. Een ander probleem zijn publieke exploits die wel goed functioneren, maar daarnaast een backdoor installeren, waarmee de exploit-auteur toegang tot het systeem krijgt. "Het lastige van deze exploits is dat je de backdoor moet vinden, je moet de shellcode decoderen en begrijpen, en die is in assembly is geschreven."

Het door Moore ontwikkelde Metasploit Framework gebruikt ook allerlei exploits, maar elke exploit, encoder of nop generator die het ontwikkelteam toevoegt, wordt eerst grondig gecontroleerd. Daarom verdient Metasploit dan ook de voorkeur boven publieke exploits, aldus Moore.

Reacties (13)
05-04-2010, 16:58 door [Account Verwijderd]
[Verwijderd]
05-04-2010, 18:04 door [Account Verwijderd]
[Verwijderd]
05-04-2010, 18:32 door Anoniem
hallo,
ik ben ook momenteel (M)ASM aan het leren, maar je hebt bijna of helemaal geen boken in het Nederlands. Weet misschien iemand een Nederlandstalig doc. of een boek.
05-04-2010, 20:22 door [Account Verwijderd]
[Verwijderd]
05-04-2010, 20:43 door Didier Stevens
<humor>Assembly, wat een luxe! Nee, echte mannen gebruiken hex-code</humor>

Eigenlijk moet je shellcode kunnen. Shellcode is een lokatie onafhankelijke assembler code.
05-04-2010, 22:12 door Anoniem
progammeertaal?
06-04-2010, 10:08 door Anoniem
Debug, lekker op het blote metaal rammelen.
06-04-2010, 10:46 door Anoniem
@Gisteren,18:32 door Anoniem
Ik denk dat je er verstandiger aan doet om Engels te leren. Iets wat je in de IT vaker tegen gaat komen dan AMS.
06-04-2010, 11:11 door Anoniem
`de programmeertaal assembly' bestaat niet
06-04-2010, 13:47 door eMilt
Ja heren anonieme posters, ook assembly is een programmeertaal. Het mag dan wel heel dicht bij de uiteindelijk gegeneerde binaire code staan, het is en blijft een programmeertaal. De processor snapt niet wat "MOV" of "PUSH" of "JMP" betekent. Een assembler compiler vertaalt deze instructies naar de bijbehorende bytecodes.

Tegenwoordig bieden assembler compilers de programmeur ook veel extra features die voorheen alleen in hogere programmeertalen beschikbaar waren zoals variabelen, functie aanroepen (inclusief automatisch veiligstellen van gebruikte registers op de stack) en macro's.
06-04-2010, 18:15 door Anoniem
@eMilt
wat ik bedoel is, er is niet één programmeertaal assembly. Aangezien assembly afhankelijk is van de processor waar je voor programmeert zijn er *veel* verschillende varianten, en anders dan hogere programmeertalen kan assembly die voor een bepaald type processor geschreven is vaak niet gebruikt worden voor een ander type processor. Ook is er in al deze varianten niet echt een `gemene deler' van instructies die overal werken, of door meerdere assemblers kunnen worden omgezet naar bytecode.
07-04-2010, 08:50 door spatieman
assembly, roept leuke tijden op in het zx81 tijdperk (25 jaar geleden).
13-05-2010, 03:53 door Anoniem
De ZX-81 (met de Z-80A processor van Sinclair en de navolger van de ZX-80), heb ik nooit assembler op geschreven.
Wél machinecode (peeks en pokes) op 1kb geheugen.

De BBC computer (6502C processer) had echter een "ingebakken" two pass assembler waarmee je lekker kon experimenteren. Was ook het grotere broertje van de Acorn Electron.

Wou toch even aanstippen, dat Assembly wel degelijk een low-level programeertaal is, die instructies (mnemonics) gebruikt.
Een assembler zet deze dan om in machinecode. Een disassembler doet het tegenovergestelde.

Ook zijn programma's geschreven in assembly niet overdraagbaar tussen verschillende processoren, terwijl programma's in hogere programmertalen dat, in ieder geval op broncodeniveau, wel (kunnen) zijn.

Ben er ooit eens in geslaagd een disassembler te schrijven voor de 6502-c (in assmbly) met een grootte van amper 6Kb.

Emphyrio :)
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.