Dissecting complex codereuse attacks with ROPMEMU Mariano Graziano
























![CHALLENGES [C 1] Verbosity CHALLENGES [C 1] Verbosity](https://slidetodoc.com/presentation_image_h/0a331aecfddf08a5d5149468a105386b/image-25.jpg)
![CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values](https://slidetodoc.com/presentation_image_h/0a331aecfddf08a5d5149468a105386b/image-26.jpg)
![CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based](https://slidetodoc.com/presentation_image_h/0a331aecfddf08a5d5149468a105386b/image-27.jpg)
![CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based](https://slidetodoc.com/presentation_image_h/0a331aecfddf08a5d5149468a105386b/image-28.jpg)
![CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based](https://slidetodoc.com/presentation_image_h/0a331aecfddf08a5d5149468a105386b/image-29.jpg)
![CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based](https://slidetodoc.com/presentation_image_h/0a331aecfddf08a5d5149468a105386b/image-30.jpg)
![CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based](https://slidetodoc.com/presentation_image_h/0a331aecfddf08a5d5149468a105386b/image-31.jpg)
![CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based](https://slidetodoc.com/presentation_image_h/0a331aecfddf08a5d5149468a105386b/image-32.jpg)




















- Slides: 52
Dissecting complex code-reuse attacks with ROPMEMU Mariano Graziano Cisco Talos
whoami § Security researcher at Cisco Talos § Ph. D. from Telecom Paris. Tech/Eurecom § Hackademic § Malware analysis / Memory forensics / Mitigations
CODE INJECTION ATTACKS
CODE INJECTION ATTACKS
CODE INJECTION ATTACKS Attackers inject or load malicious code (or modify the existing one)
CODE-REUSE ATTACKS - ROP
CODE-REUSE ATTACKS - ROP SP = 0 x. FFFF 88001 B 800000 0 x 00) 0 x 30)
CODE-REUSE ATTACKS - ROP SP = 0 x. FFFF 88001 B 800000 0 x 00) 0 x 30)
CODE-REUSE ATTACKS - ROP SP = 0 x. FFFF 88001 B 800000 0 x 00) 0 x 30)
CODE-REUSE ATTACKS - ROP SP = 0 x. FFFF 88001 B 800000 0 x 00) 0 x 30)
CODE-REUSE ATTACKS - ROP SP = 0 x. FFFF 88001 B 800000 0 x 00) 0 x 30)
CODE-REUSE ATTACKS - ROP SP = 0 x. FFFF 88001 B 800000 0 x 00) 0 x 30)
CODE-REUSE ATTACKS - ROP SP = 0 x. FFFF 88001 B 800000 0 x 00) 0 x 30)
CODE-REUSE ATTACKS - ROP SP = 0 x. FFFF 88001 B 800000 0 x 00) 0 x 30)
CODE-REUSE ATTACKS - ROP SP = 0 x. FFFF 88001 B 800000 0 x 00) 0 x 30) ? !?
MOTIVATION HW and OS countermeasures forced ROP adoption
MOTIVATION HW and OS countermeasures forced ROP adoption § Persistent ROP rootkit – Vogl et al. [NDSS 14] § ROP as an obfuscation technique (malware in the wild) § All existing tools cope with injected code § No tools to dissect ROP payloads
ROP ROOTKITS
CHUCK - CHALLENGES § Memory region for the persistent control structure § Overwrites protection: § Interrupts § Self-overwriting § Resume original/normal control flow § Activate the persistent component
CHUCK - CHALLENGES § Memory region for the persistent memory region § Overwrites protection: § Interrupts § Self-overwriting § Resume original/normal control flow § Activate the persistent component
CHUCK - PERSISTENCE § CVE-2013 -2094 § sysenter § IA 32_SYSENTER_ESP (0 x 175) § IA 32_SYSENTER_EIP (0 x 176)
CHUCK - PERSISTENCE § CVE-2013 -2094 § sysenter § IA 32_SYSENTER_ESP (0 x 175) – Copy chain § IA 32_SYSENTER_EIP (0 x 176) - ret
CHUCK § Po. C 1: § LPE: CVE-2013 -2094 § OS: Ubuntu Server 3. 8 with secure boot § Hooks: § sys_read § sys_getdents § Chains: § Copy chain (persistent) § Dispatcher chain § Payload chain 1 https: //www. sec. in. tum. de/persistent-data-only-malware/
CHALLENGES
CHALLENGES [C 1] Verbosity
CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values
CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based instruction chaining
CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based instruction chaining [C 4] Conditional branches
CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based instruction chaining [C 4] Conditional branches [C 5] Return to functions
CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based instruction chaining [C 4] Conditional branches [C 5] Return to functions [C 6] Dynamically generated chains
CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based instruction chaining [C 4] Conditional branches [C 5] Return to functions [C 6] Dynamically generated chains [C 7] Stop condition
CHALLENGES [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based instruction chaining [C 4] Conditional branches [C 5] Return to functions [C 6] Dynamically generated chains [C 7] Stop condition
- Lu et al. – ACSAC 12 - Yadegari et al. – S&P 15 [C 1] Verbosity [C 2] Lack of immediate values [C 3] Stack based instruction chaining [C 4] Conditional branches [C 5] Return to functions [C 6] Dynamically generated chains [C 7] Stop condition CHALLENGES - Stancill et al. – RAID 13 - Lu et al. – ACSAC 12
APPROACH § ROPMEMU framework adopts many techniques: § Memory forensics § Code emulation § Multi-path exploration § CFG recovery § Compiler transformations
IMPLEMENTATION § Volatility plugins (ropemu and unchain) depend on: § Capstone § Unicorn § nasm § Standalone scripts (bash and python): § GDB python § pygraphviz
ROPMEMU
ROPMEMU
DEMO 0 x 01
ROPMEMU
DEMO 0 x 02
ROPMEMU
DEMO 0 x 03
ROPMEMU
ROPMEMU
EXPERIMENT CHAINS INSTRUCTIO NS GADGET S BLOCK S BRANCHE S FUNCTION CALLS S COPY 414275 184126 1 - - - DISPATCHE R 63515 18874 7 3 1 5 PAYLOAD 6320 2913 34 26 9 17
RESULTS - CFG
RESULTS - CFG
RESULTS - IDA
DEMO 0 x 04
LIMITATIONS § Prone to anti-acquisition § Prone to anti-emulation § Lack of completeness on arbitrary inputs
CONCLUSIONS § Source code: https: //github. com/vrtadmin/ROPMEMU § First public tool to analyze code-reuse payloads § Tested on the most complex public threat
QUESTIONS? Mariano Graziano @emd 3 l magrazia@cisco. com