SlideShare a Scribd company logo
Writing Exploits
            Nethemba s.r.o.




      norbert.szetei@nethemba.com

                   

                                   www.nethemba.com       
                                    www.nethemba.com      
Motivation
   Basic code injection
   W^X (DEP), ASLR, Canary (Armoring)
   Return Oriented Programming (ROP)
   Tools of the Trade
   Metasploit



                            

                                      www.nethemba.com       
A Brief History
   08/11/1996 Phrack #49
   Smashing The Stack For Fun And Profit, Elias 
    Levy
    “ … Code that does this is said 
    to smash the stack, and can 
    cause return from the routine to 
    jump to a random address.  This 
    can produce some of the most 
    insidious data­dependent bugs 
    known to mankind.”           

                                             www.nethemba.com       
Stack Frame
                                       Low Memory Address


void func(int a, int b, int c) {
   char buffer1[BUFSIZE];
   char buffer2[BUFSIZE];
                                             buffer2
}
int main(int argc, char **argv) {
                                             buffer1
  func(10, 20, 30);                           EBP
}
                                              EIP
   prologue, epilogue                         10
push ebp            mov esp, ebp               20
mov ebp, esp        pop ebp                    30
sub esp, $const     ret
     
                                       High Memory Address
                            

                                         www.nethemba.com       
Buffer Overflow
                                       Low Memory Address


void func(char *src) {
   char dest[64];
   strcpy(dest, src);
}
int main(int argc, char **argv) {
                                               dest
  func(argv[1]);                               EBP
}
                                               EIP
                                               args



   
                                       High Memory Address
                           

                                         www.nethemba.com       
Buffer Overflow
                                       Low Memory Address


void func(char *src) {
   char dest[64];
   strcpy(dest, src);
}
int main(int argc, char **argv) {
                                        SHELLCODE
  func(argv[1]);                           JUNK
}
                                         JMP TO SC
                                           JUNK



   
                                       High Memory Address
                           

                                         www.nethemba.com       
Low Memory Address
 Buffer Overflow – SEH
try {
  int a = 5;                                     Local Vars
  int b = 0;
                                                  Next SEH
  int c = a / b;
} catch (Exception e) {                          SE Handler
  printf(“ignore ..”);
}
                                                    EBP
                                                    EIP
                                                    args
 Next →    Next →     Next →       0xFFFFFFFF
Pointer to Pointer to Pointer to Default
Exception Exception Exception Exception
Handler    Handler    Handler    Handler        High Memory Address
                                

                                                 www.nethemba.com       
Low Memory Address
 Buffer Overflow – SEH
try {
  int a = 5;                                       Local Vars
  int b = 0;
                                                    Next SEH
  int c = a / b;
} catch (Exception e) {                            SE Handler
  printf(“ignore ..”);
}
                                                      EBP
                                                      EIP
                                                      args
 Shellcode     Next →    Next →   0xFFFFFFFF
  address
POP POP RET   Pointer to Pointer to Default
              Exception Exception Exception
              Handler    Handler   Handler       High Memory Address

                                                   www.nethemba.com       
Low Memory Address
Stack cookies – canaries                       Local Vars
   Protection provided by the compiler          Canary
    (/gs, ­fstack­protector, StackGuard,        Next SEH
    ProPolice)                                 SE Handler
   Can rearrange the stack layout, so            EBP
    string variables are on higher                EIP
    addresses and cannot overwrite                args
    other local variables
    Contain “bad” characters (0x00, 
     0xFF)
                                             High Memory Address
                             

                                               www.nethemba.com       
Stack cookies – canaries
   Usually a challenge
   Entropy weaknesses (24­bit entropy on Ubuntu, 
    can by bypassed in reasonable time)
   Sometimes helps to overwrite SEH
   Cannot protect from buffer overflows in heap



                            

                                            www.nethemba.com       
Protection ­ DEP
   Stack is no longer executable
   W^X
   Both HW (NX bit) and software support
   Prevent basic buffer overflows
   Four policy levels on Windows platform:  Optin, 
    OptOut, AlwaysOn, AlwaysOff
   Can be bypassed by “return­to­libc”
                            

                                           www.nethemba.com       
Return to LIBC
   The most generic method to bypass NX
   No executable code in stack
   EIP is overwritten by library function (system())
   Parameters are passed via stack
   Chained “return to libc”
   No loops, conditional jumps, complicated things
    28/12/2001 Phrack #58, Advanced return­into­
     
     lib(c) exploits        

                                              www.nethemba.com       
Low Memory Address
                       Return to LIBC               Low Memory Address

     uuu

                      ←basic buffer overflow
     Local Vars                                       Local Vars
                         
       EBP                                               EBP
        EIP                                            system()
       args                      return to libc →     EIP JUNK
                                                      “/bin/sh0”

High Memory Address
                                                    High Memory Address
                                   

                                                    www.nethemba.com       
ASLR
   Address Stack Layout Randomization
   Including Libraries, Heap, Stack
   But not necessary in all libraries
   You need at least one module without ASLR for 
    bypassing in Windows
   Implementation weaknesses
   Can by bypassed by format string exploits
                             

                                              www.nethemba.com       
Format String Attacks
int main(int argc, char **argv) {
  printf(“%s”, argv[1]); // correct
  printf(argv[1]); // wrong
}

●   Reading, writing from arbitrary memory
●   Direct parameter access via %<num>$
●   Writing via %n, %hn (2 bytes)
●   28/07/2002 Phrack #59, Advances in format string 
    exploitation
                             

                                            www.nethemba.com       
Return Oriented Programming
●   The successor of “return to libc” technique
●   Small number of instructions ending with “ret” 
    (Gadgets) chained together
●   If we find them enough, we have the Turing 
    Machine
●   Fixed Memory location for data interchange, usually 
    in .data section
●   2 registers are usually efficient
                               

                                             www.nethemba.com       
Return Oriented Programming
●   You can bypass character restrictions (neg)
●   No injected code, just rewritten stack
●   ESP determines which instructions you execute
●   Automated by tools (ropeme, ROPGadget)
    # execve /bin/sh bindport 8080 generated by RopGadget v3.3
    p += pack("<I", 0x08050dda) # pop %edx | ret
    p += pack("<I", 0x080cd6a0) # @ .data
    p += pack("<I", 0x080a49f6) # pop %eax | ret
    p += "//us"
    p += pack("<I", 0x080796ed) # mov %eax,(%edx) | ret
    ...
                                 

                                                  www.nethemba.com       
Return Oriented Programming
●   We can build the custom stack at fixed location 
    (bypass ASLR)
●   .data, .bss (readelf)
●   Multi­stage exploit
●   GOT entry overwriting
        offset = execve() ­ printf()
        execve() = printf() + offsef
●   Countermeasure: Position 
    Independent Executable (PIE)
                               

                                             www.nethemba.com       
Metasploit
●   msfpescan, msfelfscan, msfmachscan
●   irb, framework for exploits development
●   tools/ (memdump, metasm_shell, 
    pattern_create.rb, pattern_offset.rb, 
    nasm_shell)
●   mixins


                            

                                            www.nethemba.com       
Immunity Debugger
●   'mona' (successor of pvefindaddr)
●   skeleton for metasploit exploit can by generated 
    with Immunity Debugger (mona plugin)




                           

                                             www.nethemba.com       
Radare
●   Reverse engineering framework, *nix­style, 
    multiplatform
●   11/06/2009 Phrack #66, Manual Binary 
    Mangling With Radare
 radare: the entrypoint for everything :)
 rahash: block based hashing utility
 radiff: multiple binary diffing algorithms
 rabin:  extract information from binaries
 rasc:   shellcode construction helper
 rasm:   commandline assembler/disassembler
 rax:    inline multiple base converter
 xrefs:  blind search for relative code references
                          

                                          www.nethemba.com       
Wargames
●   http://overthewire.org 
●   http://smashthestack.org




                               

                                       www.nethemba.com       
References
●   http://www.radare.org/get/radare.pdf
●   https://www.metasploit.com




                             

                                                www.nethemba.com       
Any questions?


    Thank you for listening
           Norbert Szetei, CEH




                     

                                      www.nethemba.com       

More Related Content

Similar to Writing exploits (20)

PDF
Buffer Overflows 101: Some Assembly Required
Kory Kyzar
 
PDF
Exploitation Crash Course
UTD Computer Security Group
 
PPTX
Exploit Development: EzServer Buffer Overflow oleh Tom Gregory
zakiakhmad
 
PPTX
Exploit Development with Python
Thomas Gregory
 
PPTX
Bypassing ASLR Exploiting CVE 2015-7545
Kernel TLV
 
PDF
JavaScript on the GPU
Jarred Nicholls
 
PPTX
Software to the slaughter
Quinn Wilton
 
PDF
2 buffer overflows
Karthic Rao
 
TXT
Exploit techniques - a quick review
Ce.Se.N.A. Security
 
PPS
Reverse Engineering for exploit writers
amiable_indian
 
PPS
Nibin - Reverse Engineering for exploit writers - ClubHack2008
ClubHack
 
PDF
javascript teach
guest3732fa
 
PDF
JSBootcamp_White
guest3732fa
 
PPT
Buffer Overflow Attacks
harshal kshatriya
 
PPT
Buffer Overflows
Sumit Kumar
 
PDF
Perl Memory Use 201207 (OUTDATED, see 201209 )
Tim Bunce
 
PPTX
Buffer overflow attacks
Japneet Singh
 
PDF
XS Boston 2008 Paravirt Ops in Linux IA64
The Linux Foundation
 
PPTX
Seh based attack
Mihir Shah
 
PDF
Low Level Exploits
hughpearse
 
Buffer Overflows 101: Some Assembly Required
Kory Kyzar
 
Exploitation Crash Course
UTD Computer Security Group
 
Exploit Development: EzServer Buffer Overflow oleh Tom Gregory
zakiakhmad
 
Exploit Development with Python
Thomas Gregory
 
Bypassing ASLR Exploiting CVE 2015-7545
Kernel TLV
 
JavaScript on the GPU
Jarred Nicholls
 
Software to the slaughter
Quinn Wilton
 
2 buffer overflows
Karthic Rao
 
Exploit techniques - a quick review
Ce.Se.N.A. Security
 
Reverse Engineering for exploit writers
amiable_indian
 
Nibin - Reverse Engineering for exploit writers - ClubHack2008
ClubHack
 
javascript teach
guest3732fa
 
JSBootcamp_White
guest3732fa
 
Buffer Overflow Attacks
harshal kshatriya
 
Buffer Overflows
Sumit Kumar
 
Perl Memory Use 201207 (OUTDATED, see 201209 )
Tim Bunce
 
Buffer overflow attacks
Japneet Singh
 
XS Boston 2008 Paravirt Ops in Linux IA64
The Linux Foundation
 
Seh based attack
Mihir Shah
 
Low Level Exploits
hughpearse
 

More from Security Session (20)

PDF
Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
Security Session
 
PDF
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...
Security Session
 
PDF
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Security Session
 
PDF
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
Security Session
 
PDF
Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]
Security Session
 
PDF
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Security Session
 
PDF
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
Security Session
 
PPTX
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
Security Session
 
PDF
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
Security Session
 
PDF
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
Security Session
 
ODP
Prezentace brno
Security Session
 
PDF
OSINT and beyond
Security Session
 
PDF
Exploitace – od minulosti po současnost - Jan Kopecký
Security Session
 
PDF
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
Security Session
 
PDF
Research in Liveness Detection - Martin Drahanský
Security Session
 
PPT
Dolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
Security Session
 
ODP
Turris - Robert Šefr
Security Session
 
PDF
Co se skrývá v datovém provozu? - Pavel Minařík
Security Session
 
PPTX
Jak odesílat zprávy, když někdo vypne Internet - Pavel Táborský
Security Session
 
PDF
Two Years with botnet Asprox - Michal Ambrož
Security Session
 
Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
Security Session
 
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...
Security Session
 
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Security Session
 
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
Security Session
 
Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]
Security Session
 
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Security Session
 
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
Security Session
 
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
Security Session
 
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
Security Session
 
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
Security Session
 
Prezentace brno
Security Session
 
OSINT and beyond
Security Session
 
Exploitace – od minulosti po současnost - Jan Kopecký
Security Session
 
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
Security Session
 
Research in Liveness Detection - Martin Drahanský
Security Session
 
Dolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
Security Session
 
Turris - Robert Šefr
Security Session
 
Co se skrývá v datovém provozu? - Pavel Minařík
Security Session
 
Jak odesílat zprávy, když někdo vypne Internet - Pavel Táborský
Security Session
 
Two Years with botnet Asprox - Michal Ambrož
Security Session
 
Ad

Recently uploaded (20)

PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Ad

Writing exploits

  • 1. Writing Exploits Nethemba s.r.o. [email protected]          www.nethemba.com             www.nethemba.com      
  • 2. Motivation  Basic code injection  W^X (DEP), ASLR, Canary (Armoring)  Return Oriented Programming (ROP)  Tools of the Trade  Metasploit          www.nethemba.com       
  • 3. A Brief History  08/11/1996 Phrack #49  Smashing The Stack For Fun And Profit, Elias  Levy “ … Code that does this is said  to smash the stack, and can  cause return from the routine to  jump to a random address.  This  can produce some of the most  insidious data­dependent bugs    known to mankind.”        www.nethemba.com       
  • 4. Stack Frame Low Memory Address void func(int a, int b, int c) {    char buffer1[BUFSIZE];    char buffer2[BUFSIZE]; buffer2 } int main(int argc, char **argv) { buffer1   func(10, 20, 30); EBP } EIP  prologue, epilogue 10 push ebp mov esp, ebp 20 mov ebp, esp pop ebp 30 sub esp, $const ret   High Memory Address        www.nethemba.com       
  • 5. Buffer Overflow Low Memory Address void func(char *src) {    char dest[64];    strcpy(dest, src); } int main(int argc, char **argv) { dest   func(argv[1]); EBP } EIP args   High Memory Address        www.nethemba.com       
  • 6. Buffer Overflow Low Memory Address void func(char *src) {    char dest[64];    strcpy(dest, src); } int main(int argc, char **argv) { SHELLCODE   func(argv[1]); JUNK } JMP TO SC JUNK   High Memory Address        www.nethemba.com       
  • 7. Low Memory Address Buffer Overflow – SEH try {   int a = 5; Local Vars   int b = 0; Next SEH   int c = a / b; } catch (Exception e) { SE Handler   printf(“ignore ..”); } EBP EIP args Next → Next → Next → 0xFFFFFFFF Pointer to Pointer to Pointer to Default Exception Exception Exception Exception Handler Handler Handler Handler High Memory Address          www.nethemba.com       
  • 8. Low Memory Address Buffer Overflow – SEH try {   int a = 5; Local Vars   int b = 0; Next SEH   int c = a / b; } catch (Exception e) { SE Handler   printf(“ignore ..”); } EBP EIP args Shellcode Next → Next → 0xFFFFFFFF address POP POP RET Pointer to Pointer to Default Exception Exception Exception   Handler Handler   Handler High Memory Address      www.nethemba.com       
  • 9. Low Memory Address Stack cookies – canaries Local Vars  Protection provided by the compiler  Canary (/gs, ­fstack­protector, StackGuard,  Next SEH ProPolice)  SE Handler  Can rearrange the stack layout, so  EBP string variables are on higher  EIP addresses and cannot overwrite  args other local variables  Contain “bad” characters (0x00,   0xFF) High Memory Address        www.nethemba.com       
  • 10. Stack cookies – canaries  Usually a challenge  Entropy weaknesses (24­bit entropy on Ubuntu,  can by bypassed in reasonable time)  Sometimes helps to overwrite SEH  Cannot protect from buffer overflows in heap          www.nethemba.com       
  • 11. Protection ­ DEP  Stack is no longer executable  W^X  Both HW (NX bit) and software support  Prevent basic buffer overflows  Four policy levels on Windows platform:  Optin,  OptOut, AlwaysOn, AlwaysOff  Can be bypassed by “return­to­libc”          www.nethemba.com       
  • 12. Return to LIBC  The most generic method to bypass NX  No executable code in stack  EIP is overwritten by library function (system())  Parameters are passed via stack  Chained “return to libc”  No loops, conditional jumps, complicated things  28/12/2001 Phrack #58, Advanced return­into­   lib(c) exploits        www.nethemba.com       
  • 13. Low Memory Address Return to LIBC Low Memory Address  uuu ←basic buffer overflow Local Vars Local Vars   EBP EBP EIP system() args     return to libc → EIP JUNK “/bin/sh0” High Memory Address   High Memory Address        www.nethemba.com       
  • 14. ASLR  Address Stack Layout Randomization  Including Libraries, Heap, Stack  But not necessary in all libraries  You need at least one module without ASLR for  bypassing in Windows  Implementation weaknesses  Can by bypassed by format string exploits          www.nethemba.com       
  • 15. Format String Attacks int main(int argc, char **argv) {   printf(“%s”, argv[1]); // correct   printf(argv[1]); // wrong } ● Reading, writing from arbitrary memory ● Direct parameter access via %<num>$ ● Writing via %n, %hn (2 bytes) ● 28/07/2002 Phrack #59, Advances in format string  exploitation          www.nethemba.com       
  • 16. Return Oriented Programming ● The successor of “return to libc” technique ● Small number of instructions ending with “ret”  (Gadgets) chained together ● If we find them enough, we have the Turing  Machine ● Fixed Memory location for data interchange, usually  in .data section ● 2 registers are usually efficient          www.nethemba.com       
  • 17. Return Oriented Programming ● You can bypass character restrictions (neg) ● No injected code, just rewritten stack ● ESP determines which instructions you execute ● Automated by tools (ropeme, ROPGadget) # execve /bin/sh bindport 8080 generated by RopGadget v3.3 p += pack("<I", 0x08050dda) # pop %edx | ret p += pack("<I", 0x080cd6a0) # @ .data p += pack("<I", 0x080a49f6) # pop %eax | ret p += "//us" p += pack("<I", 0x080796ed) # mov %eax,(%edx) | ret ...          www.nethemba.com       
  • 18. Return Oriented Programming ● We can build the custom stack at fixed location  (bypass ASLR) ● .data, .bss (readelf) ● Multi­stage exploit ● GOT entry overwriting offset = execve() ­ printf() execve() = printf() + offsef ● Countermeasure: Position  Independent Executable (PIE)          www.nethemba.com       
  • 19. Metasploit ● msfpescan, msfelfscan, msfmachscan ● irb, framework for exploits development ● tools/ (memdump, metasm_shell,  pattern_create.rb, pattern_offset.rb,  nasm_shell) ● mixins          www.nethemba.com       
  • 20. Immunity Debugger ● 'mona' (successor of pvefindaddr) ● skeleton for metasploit exploit can by generated  with Immunity Debugger (mona plugin)          www.nethemba.com       
  • 21. Radare ● Reverse engineering framework, *nix­style,  multiplatform ● 11/06/2009 Phrack #66, Manual Binary  Mangling With Radare radare: the entrypoint for everything :) rahash: block based hashing utility radiff: multiple binary diffing algorithms rabin:  extract information from binaries rasc:   shellcode construction helper rasm:   commandline assembler/disassembler rax:    inline multiple base converter  xrefs:  blind search for relative code references        www.nethemba.com       
  • 22. Wargames ● http://overthewire.org  ● http://smashthestack.org          www.nethemba.com       
  • 23. References ● http://www.radare.org/get/radare.pdf ● https://www.metasploit.com          www.nethemba.com       
  • 24. Any questions? Thank you for listening Norbert Szetei, CEH          www.nethemba.com