Top Banner
RAPHAEL SANCHEZ PRUDENCIO (RAPH0X88) [email protected]
17

All your binaries are belong to us

Jan 14, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: All your binaries are belong to us

RAPHAEL SANCHEZ PRUDENCIO (RAPH0X88)

[email protected]

Page 2: All your binaries are belong to us

DISCLAIMER

ALL THE INFORMATION PROVIDED ON THIS TALK ARE FOR EDUCATIONAL PURPOSES ONLY. THE AUTHOR IS NOT RESPONSIBLE FOR ANY MISUSE OF THE INFORMATION!

Page 3: All your binaries are belong to us

MOTIVATION

• REVERSE ENGINEERING ROCKS • YOUR COMPUTER, YOUR RULES • AND ABOVE ALL, CURIOSITY! • JUST TO CLARIFY, NOT A TYPO! • AT LEAST NOT MY TYPO

• INSPIRED IN ZERO WING FAMOUS MISTRANSLATION MEME

Page 4: All your binaries are belong to us

OLLYDBG

• OLLYDBG IS A 32-BIT ASSEMBLER LEVEL ANALYZING DEBUGGER FOR WINDOWS. • PRETTY USEFUL TOOL FOR DEBUGGING ON WINDOWS • SUPPORTS PLUGINS, WHICH CAN EXTEND IT’S FEATURES

Page 5: All your binaries are belong to us

DEMO TIME!

Page 6: All your binaries are belong to us

ANTI-DEBUG

• TOO MANY TECHNIQUES TO DESCRIBE ALL • DEBUGGER DETECTION

• NTSETINFORMATIONTHREAD - THREADHIDEFROMDEBUGGER • ISDEBUGGERPRESENT

• TIMING HOOKS • GETTICKCOUNT • NTQUERYPERFORMANCECOUNTER

• BREAKPOINT DETECTION • GETTHREADCONTEXT • INT3 (0XCC) AND INT 3 (0XCD03)

• …

Page 7: All your binaries are belong to us

ANTI-DISASSEMBLE

• JUNK CODE • OVERLAPPING INSTRUCTIONS • CALL/RET ABUSE • SELF-MODIFYING CODE • …

Page 8: All your binaries are belong to us
Page 9: All your binaries are belong to us

ANTI-ANTI-DEBUG/DISASM

• PLENTY OF OPTIONS! • USER SPACE

• SCYLLAHIDE • KERNEL SPACE

• TITANHIDE

Page 10: All your binaries are belong to us

DEMO TIME!

Page 11: All your binaries are belong to us

ENCODER /* Parte 1 */ tmp = (data2 << 4) ^ (data2 >> 5); tmp += data2;

j = local2 & 3; tmp2 = c[j] + local2;

data1 += (tmp ^ tmp2);

/* Atualiza local2 */ local2 += local3;

/* Parte 2 */ tmp = (data1 << 4) ^ (data1 >> 5); tmp += data1;

j = (local2 >> 0xb) & 3; tmp2 = c[j] + local2;

data2 += (tmp ^ tmp2);

Page 12: All your binaries are belong to us

DEMO TIME!

Page 13: All your binaries are belong to us

ROGUE AUTH $state = $_GET["state"]; $name = $_GET["name"]; $pass = $_GET["pass"];

if ($state == "syn") { $session = md5(time()); if (strpos($name,'nullbyte') !== false) { print "ack|" . $session; } else { print "bad|Invalid username or password!"; } } elseif ($state == "synack") { $what1 = md5(time()); $what2 = md5(time() + 1);

print "good|" . $what1 . "|" . $what2 . "|ALL YOUR B1N4R13S ARE BELONG TO US!!!";

}

Page 14: All your binaries are belong to us

QUESTIONS?

Page 15: All your binaries are belong to us

THANK YOU!

Page 16: All your binaries are belong to us

BUT REMEMBER…

Page 17: All your binaries are belong to us

DON’T TO THIS AT HOME!!!