BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

Embed Size (px)

Citation preview

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    1/21

    Cisco IOS architectureArchitecture

    Analyzing Pros and ConsUse case: IOS malware

    Use case: ROMMON debuggingUse cases: Fuzzer

    Wrapping up

    Fuzzing and Debugging Cisco IOS

    Blackhat Europe 2011

    Sebastian Muñiz, Alfredo Ortega

    Groundworks Technologies

    March 18, 2011

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    2/21

    Cisco IOS architectureArchitecture

    Analyzing Pros and ConsUse case: IOS malware

    Use case: ROMMON debuggingUse cases: Fuzzer

    Wrapping up

    Agenda

    Cisco IOS ArchitectureDebugger internalsDynamips modication

    GDB supportIDA Pro support

    Shortcomings of self-checking

    routinesDemos:

    Malware analysisFuzzing example

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    3/21

    Cisco IOS architectureArchitecture

    Analyzing Pros and ConsUse case: IOS malware

    Use case: ROMMON debuggingUse cases: Fuzzer

    Wrapping up

    Dynamips emulatorBuilt-in GDB server

    cisco IOS architecture

    Single binary imageShared single address spaceCooperative priority-basedscheduler

    ProcessesPacketBuffers

    Kernel Device Drivers

    Hardware

    Fast

    Softw.

    Switch

    Figure: Cisco IOS process memory

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    4/21

    Cisco IOS architectureArchitecture

    Analyzing Pros and ConsUse case: IOS malware

    Use case: ROMMON debuggingUse cases: Fuzzer

    Wrapping up

    Dynamips emulatorBuilt-in GDB server

    Dynamips emulatorCreated by Christophe Fillot 1

    Runs on Windows, Linux and Mac OS X.

    Equivalent to QEMU/BochsImplements MIPS/PowerPC architecture and Cisco hardwareSupports the following models:

    (a) 7200 (b) 36XX (c) 2691 (d) 3725 (e) 3745 (f) 26XX (g) 17XX

    1http://www.ipow.utc.fr/index.php/Cisco 7200 SimulatorGroundworks Technologies Fuzzing and Debugging Cisco IOS

    http://www.ipflow.utc.fr/index.php/Cisco_7200_Simulatorhttp://www.ipflow.utc.fr/index.php/Cisco_7200_Simulatorhttp://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    5/21

    Cisco IOS architectureArchitecture

    Analyzing Pros and ConsUse case: IOS malware

    Use case: ROMMON debuggingUse cases: Fuzzer

    Wrapping up

    Dynamips emulatorBuilt-in GDB server

    Built-in GDB serverUsed by Cisco developers and support engineersWorks over Telnet, SSH and Serial consoleSlightly different GDB protocol

    Examine Debug Kernel

    Read RegistersWrite Registers

    Read Memory

    Write MemoryFreeze OS

    Remote

    Figure: GDB debugging modes

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Ci IOS hi

    http://find/http://goback/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    6/21

    Cisco IOS architectureArchitecture

    Analyzing Pros and ConsUse case: IOS malware

    Use case: ROMMON debuggingUse cases: Fuzzer

    Wrapping up

    Virtual Machine Debugger internals

    Virtual Machine Debugger internals

    Dynamips

    GDBProtocol

    PowerPC GDBServer

    MemoryController

    MIPS

    Special Hard

    FPGA

    PCI WIC

    NM

    Figure: GDB Server embedding

    CPU/Memory instrumentationNo JIT supportSupported commands

    Read/Write CPU Registers

    Read/Write MemorySet/Unset Breakpoints

    Any standard GDB client supported

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Ci IOS hit t

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    7/21

    Cisco IOS architectureArchitecture

    Analyzing Pros and ConsUse case: IOS malware

    Use case: ROMMON debuggingUse cases: Fuzzer

    Wrapping up

    Pros vs ConsWhy isolation is good?I don’t need this, I have the verify commandShortcomings of self-checking routines

    Pros and Cons of Virtual Machine DebuggerPros:

    Complete isolation (almost!)

    Cost-effectiveControlled debugging environmentBug-hunter friendly

    Cons:

    Not 100% exact emulationNot all models or hardware compatibleFindings need double-check with physical deviceCheck Cisco EULA before doing anything crazy. Just in case.

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architecture

    http://find/http://goback/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    8/21

    Cisco IOS architectureArchitecture

    Analyzing Pros and ConsUse case: IOS malware

    Use case: ROMMON debuggingUse cases: Fuzzer

    Wrapping up

    Pros vs ConsWhy isolation is good?I don’t need this, I have the verify commandShortcomings of self-checking routines

    Why isolation is good?

    Analyzing malware

    Malware

    Cisco IOS

    Mirror

    Built−In

    GDB Stub

    Read_MemoryRequest

    BytesExpected (fake)

    GDB Client

    Original memory

    Figure: Using built-in GDB

    Analyzing malware

    GDB Stub

    Malware

    Cisco IOS

    Read_Memory

    Malware memory

    GDB Client

    DYNAMIPS

    dump

    Figure: Dynamips GDB server

    Lesson learned: NEVER analyze malware inside an infected host.

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architecture

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    9/21

    Cisco IOS architectureArchitecture

    Analyzing Pros and ConsUse case: IOS malware

    Use case: ROMMON debuggingUse cases: Fuzzer

    Wrapping up

    Pros vs ConsWhy isolation is good?I don’t need this, I have the verify commandShortcomings of self-checking routines

    I don’t need this, I have the verify commandCisco Response on IOS rootkits 2:

    Maintain chain of trust when verifying IOS images

    Verify IOS image in external host, or before booting itUse the MD5 File Validation command “verify” on Loadedimage:

    Using the MD5 File Validation Feature“The MD5 File Validation feature, added in Cisco IOS Software Releases12.2(4)T and 12.0(22)S, allows network administrators to calculate theMD5 hash of a Cisco IOS software image le that is loaded on a device.”

    2http://www.cisco.com/warp/public/707/cisco-sr-20080516-rootkits.shtmlGroundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architecture

    http://www.cisco.com/warp/public/707/cisco-sr-20080516-rootkits.shtmlhttp://www.cisco.com/warp/public/707/cisco-sr-20080516-rootkits.shtmlhttp://find/http://goback/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    10/21

    Cisco IOS architectureArchitecture

    Analyzing Pros and ConsUse case: IOS malware

    Use case: ROMMON debuggingUse cases: Fuzzer

    Wrapping up

    Pros vs ConsWhy isolation is good?I don’t need this, I have the verify commandShortcomings of self-checking routines

    Shortcomings of self-checking routines

    Malware-affected analysisVerify CLI command

    User expected

    GDB server

    MD5 CHK

    Cisco IOS

    Malware

    Login routineMD5 chksum (fake)

    Figure: Using built-in GDB

    Clean analyis

    CiscoIOS

    Calculate

    HashResult

    MD5 Tool

    External Trusted environment

    Figure: Using Dynamips GDBserver

    Lesson learned (again ): NEVER verify code inside an infected host.

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architecture

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    11/21

    Cisco IOS architectureArchitecture

    Analyzing Pros and ConsUse case: IOS malware

    Use case: ROMMON debuggingUse cases: Fuzzer

    Wrapping up

    Use cases: IOS malware

    Demo: Backdoored IOS installation

    Not trivial to analyze (Many IOS variations)At least, possible:

    Demo!

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architecture

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    12/21

    ArchitectureAnalyzing Pros and Cons

    Use case: IOS malwareUse case: ROMMON debugging

    Use cases: FuzzerWrapping up

    Use case: ROMMON debugging

    ROMMON: Cisco bootloader 3

    Very easy to verify and analyze (less variations)Read-only in some modelsContains a basic but privileged debugger

    ROMMON itself can be debugged by Dynamips

    3Felix ’FX’ Lindner , 25c3, Cisco IOS - Attack & Defense

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architecture

    http://www.phenoelit-us.org/stuff/FX_Phenoelit_25c3_Cisco_IOShttp://www.phenoelit-us.org/stuff/FX_Phenoelit_25c3_Cisco_IOShttp://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    13/21

    ArchitectureAnalyzing Pros and Cons

    Use case: IOS malwareUse case: ROMMON debugging

    Use cases: FuzzerWrapping up

    Fuzzing requirementsTiming diagramExample fuzzerTriggered Vulnerability

    Fuzzing requirements

    Correct exception handlingReproducible test-casesLoggingDesirable: Debugging envirment (for post-analysis)

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architecture

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    14/21

    ArchitectureAnalyzing Pros and Cons

    Use case: IOS malwareUse case: ROMMON debugging

    Use cases: FuzzerWrapping up

    Fuzzing requirementsTiming diagramExample fuzzerTriggered Vulnerability

    Fuzzing timing diagram

    Fuzzer

    Log

    Dynamips

    Exception

    Restart

    GDB

    Fuzz case N+1

    Registers

    Get Regs

    Start

    Fuzz case N

    Signal

    Restart

    Start

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architectureh

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    15/21

    ArchitectureAnalyzing Pros and Cons

    Use case: IOS malwareUse case: ROMMON debugging

    Use cases: FuzzerWrapping up

    Fuzzing requirementsTiming diagramExample fuzzerTriggered Vulnerability

    Example fuzzer

    Attack surface viaProtocol fuzzer (ftp)Trivial test-casegeneration (just anexample!)

    DB

    Yes

    No

    No Yes

    Send:Command + "AAA..." (100 A’s)

    Start

    Connect toFTP

    Crash? Save state

    Disconnect

    MoreCMDs?

    End

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architectureA hit t

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    16/21

    ArchitectureAnalyzing Pros and Cons

    Use case: IOS malwareUse case: ROMMON debugging

    Use cases: FuzzerWrapping up

    Fuzzing requirementsTiming diagramExample fuzzerTriggered Vulnerability

    Fuzzer Demo

    Demo!

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architectureArchitecture

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    17/21

    ArchitectureAnalyzing Pros and Cons

    Use case: IOS malwareUse case: ROMMON debugging

    Use cases: FuzzerWrapping up

    Fuzzing requirementsTiming diagramExample fuzzerTriggered Vulnerability

    Triggered Vulnerability

    Cisco Security Advisory: Multiple Vulnerabilitiesin the IOS FTP Server (cisco-sa-20070509-iosftp)30 FTP commands, remote code execution on 16:(USER,CWD,DELE,RNFR,STOR,NLST,APPE,MKD,RMD,STOU,RETR,LIST,STAT,MDTM,SIZE, and HELP)

    Patched in 2007: Completely remove all FTP server code

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architectureArchitecture

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    18/21

    ArchitectureAnalyzing Pros and Cons

    Use case: IOS malwareUse case: ROMMON debugging

    Use cases: FuzzerWrapping up

    How secure is this debugger?

    Very.Can be used in a production environment to analyze maliciouscode?

    NoDynamips contains emulation bugs.

    Demo!

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architectureArchitecture

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    19/21

    ArchitectureAnalyzing Pros and Cons

    Use case: IOS malwareUse case: ROMMON debugging

    Use cases: FuzzerWrapping up

    Future Development

    HoneypotsMalware analysis LabExploit DevDuplicate exact memory behaviour (typical VMs problems)

    Secure host isolation (squash Dynamips bugs)

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architectureArchitecture

    http://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    20/21

    ArchitectureAnalyzing Pros and Cons

    Use case: IOS malwareUse case: ROMMON debugging

    Use cases: FuzzerWrapping up

    Questions?

    Via email:

    [email protected]@groundworkstech.com

    Please download:

    http://www.groundworkstech.com/projects/dynamips-gdb-modPublished under the GNU General Public Licence (GPL)

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    Cisco IOS architectureArchitecture

    mailto:[email protected]:[email protected]://www.groundworkstech.com/projects/dynamips-gdb-modhttp://www.groundworkstech.com/projects/dynamips-gdb-modmailto:[email protected]:[email protected]://find/

  • 8/19/2019 BlackHat EU 2011 MunizOrtega Cisco IOS-Slides

    21/21

    c tectu eAnalyzing Pros and Cons

    Use case: IOS malwareUse case: ROMMON debugging

    Use cases: FuzzerWrapping up

    The End

    Thanks for listening!

    Groundworks Technologies Fuzzing and Debugging Cisco IOS

    http://www.groundworkstech.com/http://find/