Slide 1

Slide 1 text

Attack N Defence - 0101 - JD

Slide 2

Slide 2 text

Notice • Solution is not perfect. • Also, sample is not perfect. • So, we should have imagine.

Slide 3

Slide 3 text

Process Product Attack Defence

Slide 4

Slide 4 text

Setup • docker pull jongsu253/dev-seminar:0.1 • docker run --privileged --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -it ed79ba87900b /bin/bash

Slide 5

Slide 5 text

Let’s do it now!

Slide 6

Slide 6 text

Section I - Hooking Dynamic Linking libc.so program call printf@PLT PLT[0]: call resolver PLT[X]: jmp *GOT[X] push XX jmp PLT[0] GOT[X]: &printf printf:
 … ld.so resolver: … program call printf@PLT PLT[0]: call resolver PLT[X]: jmp *GOT[X] push XX jmp PLT[0] GOT[X]: &hooker libc.so printf:
 … ld.so resolver: … hook.so hooker:
 …

Slide 7

Slide 7 text

Section I - Hooking Dynamic Loading ld.so libc.so libm.so libhook.so printf read write pow sqrt ceil printf read write libraries:
 libc.so libm.so libhook.so ld.so libraries:
 libhook.so libc.so libm.so libc.so libm.so libhook.so printf read write printf read write pow sqrt ceil

Slide 8

Slide 8 text

Section II - Debugger Process A Process B name phone address … Process A Process B name phone address … access / control kernel access / control

Slide 9

Slide 9 text

Section II - Debugger Process A Process B name phone address … kernel access / control Process C 1 2

Slide 10

Slide 10 text

Section II - Debugger Process A Process B name phone address … kernel Process B` fork Attached Not Attached

Slide 11

Slide 11 text

Section II - Debugger Process A Process B kernel Attached Thread 1 Thread 2 Thread 3 Thread N

Slide 12

Slide 12 text

Section II - Debugger Process A Process B kernel Thread 1 Thread 2 Thread 3 Thread N Attached Process C

Slide 13

Slide 13 text

What do you think …?

Slide 14

Slide 14 text

Q & A

Slide 15

Slide 15 text

Thank you!