├── README.md
├── bfh2017
├── content.html
├── day1
│ ├── 0x01_Intro.pdf
│ ├── 0x02_Intro-Technical.pdf
│ ├── 0x03_Intro-Hackinglab.pdf
│ ├── 0x04_Intro-Yookiterm.pdf
│ ├── 0x10_IntelArchitecture.pdf
│ ├── 0x11_MemoryLayout.pdf
│ └── 0x12_CArrays.pdf
├── day2
│ ├── 0x11_MemoryLayout.pdf
│ ├── 0x12_CArrays.pdf
│ ├── 0x30_AssemblerIntro.pdf
│ ├── 0x31_Shellcode.pdf
│ ├── 0x32_FunctionCallConvention.pdf
│ ├── 0x33_Debugging.pdf
│ └── recap-day1.pptx
├── day3
│ ├── 0x41_BufferOverflow.pdf
│ ├── 0x42_Exploit.pdf
│ └── recap-day2.pptx
├── day4
│ ├── 0x44_RemoteExploit.pdf
│ ├── 0x51_ExploitMitigations.pdf
│ ├── 0x70_SecureCoding.pdf
│ └── 0xA3_AnonSecHack.pdf
├── day5
│ ├── 0x44_RemoteExploit.pdf
│ ├── 0x51_ExploitMitigations.pdf
│ ├── 0x52_DefeatExploitMitigations.pdf
│ ├── 0x53_ExploitMitigations_PIE.pdf
│ └── 0x54_DefeatExploitMitigations_ROP.pdf
├── day6
│ ├── 0x54_DefeatExploitMitigations_ROP.pdf
│ ├── 0x60_WindowsExploiting.pdf
│ └── 0x71_Fuzzing.pdf
├── day7
│ ├── 0x55_DefeatExploitMitigations_heap_intro.pdf
│ ├── 0x56_DefeatExploitMitigations_heap_attacks.pdf
│ └── 0xA1_HeapExploitUaf_CaseStudies.pdf
└── test-questions
│ ├── bfh-fragen-1.txt
│ ├── bfh-fragen-2.txt
│ ├── bfh-fragen-3.txt
│ ├── bfh-fragen-4.txt
│ ├── bfh-fragen-5.txt
│ ├── bfh-fragen-6.txt
│ └── bfh-fragen-7.txt
├── bfh2018
├── content.html
├── day1
│ ├── 0x01_Intro.pdf
│ ├── 0x02_Intro-Technical.pdf
│ ├── 0x04_Intro-Yookiterm.pdf
│ ├── 0x10_IntelArchitecture.pdf
│ └── 0x11_MemoryLayout.pdf
├── day2
│ ├── 0x30_AssemblerIntro.pdf
│ ├── 0x31_Shellcode.pdf
│ ├── 0x32_FunctionCallConvention.pdf
│ ├── 0x33_Debugging.pdf
│ ├── challenges.txt
│ └── memorysegments-cheat-sheet.png
├── day3
│ ├── 0x40_CArrays.pdf
│ ├── 0x41_BufferOverflow.pdf
│ ├── 0x42_Exploit.pdf
│ ├── 0x44_RemoteExploit.pdf
│ └── challenges.txt
├── day4
│ ├── 0x51_ExploitMitigations.pdf
│ ├── 0x70_SecureCoding.pdf
│ ├── 0xA3_AnonSecHack.pdf
│ └── challenges.txt
├── day5
│ ├── 0x52_DefeatExploitMitigations.pdf
│ ├── 0x53_ExploitMitigations_PIE.pdf
│ ├── 0x57_ExploitMitigationsOutro.pdf
│ ├── 0x60_WindowsExploiting.pdf
│ ├── 0x74_HardwareHacking.pdf
│ └── challenges.txt
├── day6
│ ├── 0x54_DefeatExploitMitigations_ROP.pdf
│ ├── 0x71_Fuzzing.pdf
│ └── challenges.txt
├── day7
│ ├── 0x55_DefeatExploitMitigations_heap_intro.pdf
│ ├── 0x56_DefeatExploitMitigations_heap_attacks.pdf
│ ├── 0xA1_HeapExploitUaf_CaseStudies.pdf
│ ├── 0xA4_WindowsHacking.pdf
│ ├── 0xA5_BrowserSecurity.pdf
│ ├── 0xA8_ExploitationTechniques.pdf
│ └── 0xB0_Outro.pdf
└── test-questions
│ ├── bfh-fragen-1.txt
│ ├── bfh-fragen-2.txt
│ ├── bfh-fragen-3.txt
│ ├── bfh-fragen-4.txt
│ ├── bfh-fragen-5.txt
│ ├── bfh-fragen-6.txt
│ └── bfh-fragen-7.txt
├── bfh2019
├── content.html
├── day1
│ ├── 0x01_Intro.pdf
│ ├── 0x02_Intro-Technical.pdf
│ ├── 0x04_Intro-Yookiterm.pdf
│ ├── 0x10_IntelArchitecture.pdf
│ └── 0x11_MemoryLayout.pdf
├── day2
│ ├── 0x30_AssemblerIntro.pdf
│ ├── 0x31_Shellcode.pdf
│ ├── 0x32_FunctionCallConvention.pdf
│ ├── 0x33_Debugging.pdf
│ ├── challenges.txt
│ └── memorysegments-cheat-sheet.png
├── day3
│ ├── 0x40_CArrays.pdf
│ ├── 0x41_BufferOverflow.pdf
│ ├── 0x42_Exploit.pdf
│ └── challenges.txt
├── day4
│ ├── 0x44_RemoteExploit.pdf
│ ├── 0x51_ExploitMitigations.pdf
│ ├── 0x70_SecureCoding.pdf
│ ├── challenges.txt
│ ├── overviewslides.pdf
│ └── overviewslides.pptx
├── day5
│ ├── 0x52_DefeatExploitMitigations.pdf
│ ├── 0x53_ExploitMitigations_PIE.pdf
│ └── challenges.txt
├── day6
│ ├── 0x54_DefeatExploitMitigations_ROP.pdf
│ ├── 0x59_InformationDisclosure.pdf
│ ├── 0x60_WindowsExploiting.pdf
│ ├── 0xA3_AnonSecHack.pdf
│ └── challenges.txt
├── day7
│ ├── 0x55_DefeatExploitMitigations_heap_intro.pdf
│ ├── 0x56_DefeatExploitMitigations_heap_attacks.pdf
│ ├── 0x72_LinuxHardening.pdf
│ ├── 0xA1_HeapExploitUaf_CaseStudies.pdf
│ └── 0xA5_BrowserSecurity.pdf
└── day8
│ ├── 0x71_Fuzzing.pdf
│ ├── 0x73_KernelExploitation.pdf
│ ├── 0x74_HardwareHacking.pdf
│ ├── 0x75_CFI.pdf
│ ├── 0xA4_WindowsHacking.pdf
│ ├── 0xA8_ExploitationTechniques.pdf
│ └── 0xB0_Outro.pdf
├── bfh2020
├── content.html
├── day1
│ ├── 0x01_Intro.pdf
│ ├── 0x02_Intro-Technical.pdf
│ ├── 0x04_Intro-Yookiterm.pdf
│ ├── 0x10_IntelArchitecture.pdf
│ ├── 0x11_MemoryLayout.pdf
│ └── homework.txt
├── day2
│ ├── 0x30_AssemblerIntro.pdf
│ ├── 0x31_Shellcode.pdf
│ ├── 0x32_FunctionCallConvention.pdf
│ ├── 0x33_Debugging.pdf
│ ├── challenges.txt
│ └── memorysegments-cheat-sheet.png
├── day3
│ ├── 0x40_CArrays.pdf
│ ├── 0x41_BufferOverflow.pdf
│ ├── 0x42_Exploit.pdf
│ ├── 0x44_RemoteExploit.pdf
│ └── challenges.txt
├── day4
│ ├── 0x51_ExploitMitigations.pdf
│ ├── 0x70_SecureCoding.pdf
│ └── day4_overviewslides.pdf
├── day5
│ ├── 0x52_DefeatExploitMitigations.pdf
│ ├── 0x53_ExploitMitigations_PIE.pdf
│ └── challenges.txt
├── day6
│ ├── 0x54_DefeatExploitMitigations_ROP.pdf
│ ├── 0x54_DefeatExploitMitigations_ROP_practical.pdf
│ ├── 0x71_Fuzzing.pdf
│ ├── 0x74_HardwareHacking.pdf
│ └── 0xA5_BrowserSecurity.pdf
├── day7
│ ├── 0x55_DefeatExploitMitigations_heap_intro.pdf
│ ├── 0x56_DefeatExploitMitigations_heap_attacks.pdf
│ ├── 0x60_WindowsExploiting.pdf
│ ├── 0x75_CFI.pdf
│ └── 0xB0_Outro.pdf
└── test-questions
│ ├── bfh-fragen-1.txt
│ ├── bfh-fragen-2.txt
│ ├── bfh-fragen-3.txt
│ ├── bfh-fragen-4.txt
│ ├── bfh-fragen-5.txt
│ ├── bfh-fragen-6.txt
│ └── bfh-fragen-7.txt
├── bfh2021
├── content.html
├── day1
│ ├── 0x01_Intro.pdf
│ ├── 0x02_Intro-Technical.pdf
│ ├── 0x04_Intro-Yookiterm.pdf
│ ├── 0x10_IntelArchitecture.pdf
│ └── 0x11_MemoryLayout.pdf
├── day2
│ ├── 0x30_AssemblerIntro.pdf
│ ├── 0x31_Shellcode.pdf
│ ├── 0x32_FunctionCallConvention.pdf
│ └── 0x33_Debugging.pdf
├── day3
│ ├── 0x40_CArrays.pdf
│ ├── 0x41_BufferOverflow.pdf
│ ├── 0x42_Exploit.pdf
│ └── 0x44_RemoteExploit.pdf
├── day4
│ ├── 0x51_ExploitMitigations.pdf
│ ├── 0x70_SecureCoding.pdf
│ └── day4_overviewslides.pdf
├── day5
│ ├── 0x52_DefeatExploitMitigations.pdf
│ └── 0x53_ExploitMitigations_PIE.pdf
├── day6
│ ├── 0x54_DefeatExploitMitigations_ROP.pdf
│ ├── 0x54_DefeatExploitMitigations_ROP_practical.pdf
│ ├── 0x60_WindowsExploiting.pdf
│ ├── 0x74_HardwareHacking.pdf
│ ├── 0xA5_BrowserSecurity.pdf
│ └── ret2plt.pdf
├── day7
│ ├── 0x71_Fuzzing.pdf
│ ├── 0x75_CFI.pdf
│ ├── 0xA3_AnonSecHack.pdf
│ ├── 0xA8_ExploitationTechniques.pdf
│ └── 0xB0_Outro.pdf
└── test-questions
│ ├── bfh-fragen-1.txt
│ ├── bfh-fragen-2.txt
│ ├── bfh-fragen-3.txt
│ ├── bfh-fragen-4.txt
│ ├── bfh-fragen-5.txt
│ ├── bfh-fragen-6.txt
│ └── bfh-fragen-7.txt
├── bfh2022
├── content.html
├── day1
│ ├── 0x01_Intro.pdf
│ ├── 0x02_Intro-Technical.pdf
│ ├── 0x10_IntelArchitecture.pdf
│ ├── 0x11_MemoryLayout.pdf
│ └── day1_summary.pdf
├── day2
│ ├── 0x30_AssemblerIntro.pdf
│ ├── 0x31_Shellcode.pdf
│ ├── 0x32_FunctionCallConvention.pdf
│ └── 0x33_Debugging.pdf
├── day3
│ ├── 0x40_CArrays.pdf
│ ├── 0x41_BufferOverflow.pdf
│ ├── 0x42_Exploit.pdf
│ └── 0x44_RemoteExploit.pdf
├── day4
│ ├── 0x51_ExploitMitigations.pdf
│ ├── 0x70_SecureCoding.pdf
│ └── overviewslides.pdf
├── day5
│ ├── 0x52_DefeatExploitMitigations.pdf
│ └── 0x53_ExploitMitigations_PIE.pdf
├── day6
│ ├── 0x54_DefeatExploitMitigations_ROP.pdf
│ ├── 0x54_DefeatExploitMitigations_ROP_practical.pdf
│ ├── 0x60_WindowsExploiting.pdf
│ └── 0xA5_BrowserSecurity.pdf
└── day7
│ ├── 0x71_Fuzzing.pdf
│ ├── 0x75_CFI.pdf
│ ├── 0x76_Vulnerabilities_2022.pdf
│ ├── 0xA3_AnonSecHack.pdf
│ └── 0xA5_BrowserSecurity.pdf
├── bfh2023
├── content.html
├── day1
│ ├── 0x01_Intro.pdf
│ ├── 0x02_Intro-Technical.pdf
│ ├── 0x10_IntelArchitecture.pdf
│ └── 0x11_MemoryLayout.pdf
├── day2
│ ├── 0x30_AssemblerIntro.pdf
│ ├── 0x31_Shellcode.pdf
│ ├── 0x32_FunctionCallConvention.pdf
│ └── 0x33_Debugging.pdf
├── day3
│ ├── 0x40_CArrays.pdf
│ ├── 0x41_BufferOverflow.pdf
│ ├── 0x42_Exploit.pdf
│ └── 0x44_RemoteExploit.pdf
├── day4
│ ├── 0x51_ExploitMitigations.pdf
│ └── 0x70_SecureCoding.pdf
├── day5
│ ├── 0x52_DefeatExploitMitigations.pdf
│ ├── 0x53_ExploitMitigations_PIE.pdf
│ └── 0x74_HardwareHacking.pdf
├── day6
│ ├── 0x54_DefeatExploitMitigations_ROP.pdf
│ ├── 0x54_DefeatExploitMitigations_ROP_practical.pdf
│ ├── 0x60_WindowsExploiting.pdf
│ └── 0xA5_BrowserSecurity.pdf
└── day7
│ ├── 0x57_DefeatExploitMitigations_heap_short.pdf
│ ├── 0x71_Fuzzing.pdf
│ ├── 0x75_CFI.pdf
│ ├── 0x76_Vulnerabilities_2022.pdf
│ └── 0xA3_AnonSecHack.pdf
├── bfh2024
├── content.html
├── day1
│ ├── 0x01_Intro.pdf
│ ├── 0x02_Intro-Technical.pdf
│ ├── 0x10_IntelArchitecture.pdf
│ └── 0x11_MemoryLayout.pdf
├── day2
│ ├── 0x30_AssemblerIntro.pdf
│ ├── 0x31_Shellcode.pdf
│ ├── 0x32_FunctionCallConvention.pdf
│ └── 0x33_Debugging.pdf
├── day3
│ ├── 0x40_CArrays.pdf
│ ├── 0x41_BufferOverflow.pdf
│ └── 0x42_Exploit.pdf
├── day4
│ ├── 0x44_RemoteExploit.pdf
│ ├── 0x51_ExploitMitigations.pdf
│ └── 0x70_SecureCoding.pdf
├── day5
│ ├── 0x52_DefeatExploitMitigations.pdf
│ ├── 0x53_ExploitMitigations_PIE.pdf
│ └── 0x74_HardwareHacking.pdf
├── day6
│ ├── 0x54_DefeatExploitMitigations_ROP.pdf
│ ├── 0x54_DefeatExploitMitigations_ROP_practical.pdf
│ ├── 0x60_WindowsExploiting.pdf
│ ├── 0xA5_BrowserSecurity.pdf
│ └── ret2plt.pdf
└── day7
│ ├── 0x57_DefeatExploitMitigations_heap_short.pdf
│ ├── 0x71_Fuzzing.pdf
│ ├── 0x75_CFI.pdf
│ ├── 0x76_Vulnerabilities_2022.pdf
│ └── 0xA3_AnonSecHack.pdf
└── resources.md
/README.md:
--------------------------------------------------------------------------------
1 | # yookiterm-slides
2 |
3 | Slides for BFH Exploiting & Defense course.
4 |
5 | It includes slides for 7x4h content (seven days).
6 |
7 | Content:
8 | * PC / CPU basics
9 | * Process memory layout
10 | * C Arrays and other data structures
11 | * Assembler Intro
12 | * Shellcode
13 | * Function Call Convention
14 | * Debugging
15 | * Buffer Overflows
16 | * Exploit creation (summary of all above)
17 | * Remote Exploit
18 | * Exploit Mitigations (ASLR, DEP, Stack Canary)
19 | * ROP Intro
20 | * Heap Intro
21 | * Heap Exploiting
22 | * Windows Exploiting
23 | * Secure Coding
24 | * Fuzzing basics
25 | * Linux Hardening
26 | * Kernel Exploitation basics
27 | * Hardware Hacking
28 |
29 | ## Links / Resources
30 |
31 | See [Resources](resources.md)
32 |
--------------------------------------------------------------------------------
/bfh2017/content.html:
--------------------------------------------------------------------------------
1 |
BFH 2017
2 |
3 |
12 |
--------------------------------------------------------------------------------
/bfh2017/day1/0x01_Intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day1/0x01_Intro.pdf
--------------------------------------------------------------------------------
/bfh2017/day1/0x02_Intro-Technical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day1/0x02_Intro-Technical.pdf
--------------------------------------------------------------------------------
/bfh2017/day1/0x03_Intro-Hackinglab.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day1/0x03_Intro-Hackinglab.pdf
--------------------------------------------------------------------------------
/bfh2017/day1/0x04_Intro-Yookiterm.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day1/0x04_Intro-Yookiterm.pdf
--------------------------------------------------------------------------------
/bfh2017/day1/0x10_IntelArchitecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day1/0x10_IntelArchitecture.pdf
--------------------------------------------------------------------------------
/bfh2017/day1/0x11_MemoryLayout.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day1/0x11_MemoryLayout.pdf
--------------------------------------------------------------------------------
/bfh2017/day1/0x12_CArrays.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day1/0x12_CArrays.pdf
--------------------------------------------------------------------------------
/bfh2017/day2/0x11_MemoryLayout.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day2/0x11_MemoryLayout.pdf
--------------------------------------------------------------------------------
/bfh2017/day2/0x12_CArrays.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day2/0x12_CArrays.pdf
--------------------------------------------------------------------------------
/bfh2017/day2/0x30_AssemblerIntro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day2/0x30_AssemblerIntro.pdf
--------------------------------------------------------------------------------
/bfh2017/day2/0x31_Shellcode.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day2/0x31_Shellcode.pdf
--------------------------------------------------------------------------------
/bfh2017/day2/0x32_FunctionCallConvention.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day2/0x32_FunctionCallConvention.pdf
--------------------------------------------------------------------------------
/bfh2017/day2/0x33_Debugging.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day2/0x33_Debugging.pdf
--------------------------------------------------------------------------------
/bfh2017/day2/recap-day1.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day2/recap-day1.pptx
--------------------------------------------------------------------------------
/bfh2017/day3/0x41_BufferOverflow.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day3/0x41_BufferOverflow.pdf
--------------------------------------------------------------------------------
/bfh2017/day3/0x42_Exploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day3/0x42_Exploit.pdf
--------------------------------------------------------------------------------
/bfh2017/day3/recap-day2.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day3/recap-day2.pptx
--------------------------------------------------------------------------------
/bfh2017/day4/0x44_RemoteExploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day4/0x44_RemoteExploit.pdf
--------------------------------------------------------------------------------
/bfh2017/day4/0x51_ExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day4/0x51_ExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2017/day4/0x70_SecureCoding.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day4/0x70_SecureCoding.pdf
--------------------------------------------------------------------------------
/bfh2017/day4/0xA3_AnonSecHack.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day4/0xA3_AnonSecHack.pdf
--------------------------------------------------------------------------------
/bfh2017/day5/0x44_RemoteExploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day5/0x44_RemoteExploit.pdf
--------------------------------------------------------------------------------
/bfh2017/day5/0x51_ExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day5/0x51_ExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2017/day5/0x52_DefeatExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day5/0x52_DefeatExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2017/day5/0x53_ExploitMitigations_PIE.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day5/0x53_ExploitMitigations_PIE.pdf
--------------------------------------------------------------------------------
/bfh2017/day5/0x54_DefeatExploitMitigations_ROP.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day5/0x54_DefeatExploitMitigations_ROP.pdf
--------------------------------------------------------------------------------
/bfh2017/day6/0x54_DefeatExploitMitigations_ROP.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day6/0x54_DefeatExploitMitigations_ROP.pdf
--------------------------------------------------------------------------------
/bfh2017/day6/0x60_WindowsExploiting.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day6/0x60_WindowsExploiting.pdf
--------------------------------------------------------------------------------
/bfh2017/day6/0x71_Fuzzing.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day6/0x71_Fuzzing.pdf
--------------------------------------------------------------------------------
/bfh2017/day7/0x55_DefeatExploitMitigations_heap_intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day7/0x55_DefeatExploitMitigations_heap_intro.pdf
--------------------------------------------------------------------------------
/bfh2017/day7/0x56_DefeatExploitMitigations_heap_attacks.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day7/0x56_DefeatExploitMitigations_heap_attacks.pdf
--------------------------------------------------------------------------------
/bfh2017/day7/0xA1_HeapExploitUaf_CaseStudies.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/day7/0xA1_HeapExploitUaf_CaseStudies.pdf
--------------------------------------------------------------------------------
/bfh2017/test-questions/bfh-fragen-1.txt:
--------------------------------------------------------------------------------
1 | Exploiting Related
2 |
3 | Prüfungsrelevant, Beispiele:
4 | 1: Was für memory regionen gibt es in prozessen? Für was sind sie da? Von wo kommen sie?
5 | 2: Was ist genau das problem bei memory corruptions?
6 | 3: Wieso gibt es eigentlich memory corruptions?
7 | 4: was braucht es alles für einen funktionsfähigen exploit?
8 | 5: wie genau funktioniert eigentlich ein exploit?
9 | 6: Warum steht der instruction pointer (RIP) auf dem stack (SIP)?
10 | 7: Kannst du mir grob eine grafik des Stacks für die folgende Funktion zeichnen?
11 | 8: Welche Programme kann man mittels eines Exploit angreifen?
12 | 9: Was ist shellcode?
13 |
14 | Super short beispiel lösungen, die etwa genügend geben würden:
15 | 1: stack, heap, code. für lokale variablen, malloc, ausführbarer code. vom ELF file
16 | 2: man kann zeugs von einem programm zur laufzeit überschreiben, dass man nicht überschreiben dürfen sollte. und dadurch böse sachen machen, z.B. code ausführen. die integrität des programs und des computers auf dem es läuft ist nicht mehr gewärleistet
17 | 3: C beachtet memory grenzen für arrays nicht
18 | 4: shellcode, addresse des shellcodes (im angegriffenen prozess), location des SIP
19 | 5: Mittels memory corruption wird SIP überschrieben, und dann hochgeladener assembler code (shellcode) angesprungen
20 | 6: Damit die Funktion weiss, wo es nach dem Ende der Funktion weitergeht.
21 | 8: prinzipiell alle, die daten des angreifers entgegennehmen, und in in C/C++ geschrieben sind.
22 | 9: In sich abgeschlossener, ausführbarer assembler code der für angriffe gegen andere programme eingesetzt wird. Startet oft eine shell (bash).
23 |
24 |
25 | NICHT (umbedingt) prüfungsrelevant, Beispiele:
26 | - In welchem register steht die addresse des strings beim write systemcall?
27 | - Mit welchem GDB befehl findet man die adresse eines buffers heraus?
28 | - welche optionen hat GDB?
29 | - kannst du den folgenden assembler code so ummodeln, dass es keine 0 bytes mehr gibt?
30 | - nenne mir 5 unterschiede zwischen x32 und x64
31 | - Kannst du mir die zahl 31337 nach hex konvertieren, und als little endian speichern?
32 | - erklär mir step-by-step wie das aufrufen einer funktion unter x64 funktioniert (speziell der funktionsprolog und epilog, mit EBP, SFP etc.)
33 | - Erklär mir was ein Computer für komponenten hat
34 | - Erklär mir, wie die CPU funktioniert
35 | - Was gibt es für register? Wofür werden sie gebraucht?
36 | - Für was sind die sections bei ELF da?
37 |
38 |
--------------------------------------------------------------------------------
/bfh2017/test-questions/bfh-fragen-2.txt:
--------------------------------------------------------------------------------
1 | Exploit Mitigation Related
2 |
3 | Questions:
4 | 1: Was sind die Unterschiede zwischen einem local- und remote Exploit?
5 | 2: Wie verhalten sich Netzwerk Server im falle eines crashes? Hat das einen Einfluss auf das Exploiting?
6 |
7 | 3: Was sind die Drei wichtigsten Anti-Exploit Mechanismen?
8 | 4: Wie funktioniert ASLR?
9 | 5: Wie funktioniert DEP?
10 | 6: Wie funktioniert Stack Canary?
11 | 7: Wie kann man ASLR umgehen?
12 | 8: Wie kann man DEP umgehen?
13 | 9: Wie kann man Stack canary umgehen?
14 |
15 | 10: welcher teil des exploits verhindert ASLR/DEP/stackcanary
16 |
17 |
18 | Answers:
19 |
20 | 1: Grundlegend gibt es keinen. Alle Exploit Techniken funktionieren identisch. Jedoch hat man bei lokalen Exploits mehr Informationen (das Binary und dessen Inhalt, die genaue Program Version, Auslastung des Systems usw.). Bei lokalen Angriffen hat man potentiell mehr Angriffsoberfläche (geladene Dateien, Environment Variablen, Parameter etc). Bei Remote Exploits werden speziell aufgebaute Packete an den Server geschickt, die die Verwundbare Funktion anspricht und ausnützt. Anders ist vorallem der Payload (braucht Connect-Back Shellcode etc.).
21 |
22 | 2: Server erstellen Kind Prozesse (fork()), die eine Kopie des Parents sind, für jeden Client. Dadurch sind auch Schutzmechanismen-Eigenschaften kopiert, speziell das geheime Stack-Cookie und der Offset zu Segmenten (bzw. das Memory Layout). Ein abgestürzter Kind Prozess hat kein Einfluss auf den Server. Dadurch ist es möglich, Brute-Force Angriffe durchzuführen (speziell auf das Stack Cookie, und die ASLR Entropie).
23 |
24 | 3: ASLR, DEP, Stack Canary
25 |
26 | 4: Randomisiert das Memory Layout, so dass der Angreifer wichtige Informationen/Offsets fehlen (Addresse des Shellcodes, Addressen von Funktionen etc.)
27 | 5: Markiert alle schreibbaren Bereiche als nicht ausführbar, sodass der vom Angreifer hochgeladenen Code (Shellcode) nicht ausgeführt werden kann
28 | 6: Bevor beim beenden einer Funktion der stored Instruction Pointer vom Stack geholt wird, um den Instruction Flow bei der Parent Funktion weiterzuführen, wird ein zuerst die Integrität einer Memory Stelle VOR dem SIP kontrolliert
29 |
30 | 7-9: Siehe Grafik "Exploit Mitigations" in den Folien. Hier ein paar Beispiele
31 | 7:
32 | - Exploit so designen, sodass keine Abhängigkeit auf ASLR'te Bereiche existieren (ausnützen nicht-ASLR Bereiche)
33 | - Information disclosure, um das Memory Layout zu rekonstruieren
34 | 8:
35 | - Kein Code hochladen, sondern schon Vorhandene Funktionen anspringen (Ret2plt)
36 | - Teile von existierenden Code missbrauchen (ROP)
37 | 9:
38 | - Brute Force
39 | - Information Disclosure
40 | - Ein anderer Bug anstatt einem simplen Stack Based Buffer Overflow finden
41 |
42 | 10: -
43 |
--------------------------------------------------------------------------------
/bfh2017/test-questions/bfh-fragen-3.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2017/test-questions/bfh-fragen-3.txt
--------------------------------------------------------------------------------
/bfh2017/test-questions/bfh-fragen-4.txt:
--------------------------------------------------------------------------------
1 | ROP Related
2 |
3 | Questions:
4 | 1) Was ist ROP?
5 | 2) Wie findet man ROP gadgets?
6 | 3) Wie funktionieren ROP?
7 | 4) Was braucht man für ROP?
8 | 5) Wie verhindert man ROP?
9 | 6) Wie ist ein ROP basiert exploit generell aufgebaut?
10 |
11 | Answers:
12 | 1) Return oriented programming; das aneinanderfügen von vorhandenen code bestandteilen, die mit einem RET enden
13 | 2) Suche nach dem RET byte im code segment, dann rückwärts disassemblieren bis/solange gültige (und nützliche) code sequencen auftauchen
14 | 3) Die überschriebene (rücksprung) Addresse zeigt auf das erste rop gadget. Jedes gadget konsumiert argumente vom stack via pop. Erreicht man ein RET auf dem gadget, wird via dem stack die addresse des nächsten gadgets konsumiert.
15 | 4) gadgets, bzw. deren addressen. Dafür muss im angreifbaren prozess das code segment nicht ASLR't sein (kein PIE), oder bei windows eine nicht ASLR'te library existieren. Alternativ kann ein Informatino disclosure durchgeführt werden, um diese addressen zu bekommen.
16 | 5) Es dürfen keine statischen segmente mehr existieren. Bei Linux kompiliert man das Program mit PIE (libraries werden automatisch randomisiert eingebunden). Bei Windows dürfen keine nicht-ASLR'ten DLLs geladen werden.
17 | 6) Als erstes wird die ROPchain ausgeführt. Diese enthält funktionalität, um dann einfach weiteren code auszuführen, ist also eine Art Stager. Zum Beispiel ist es möglich den Stack ausführbar zu machen, oder LIBC funktionen wie system() zu eruieren.
18 |
19 |
--------------------------------------------------------------------------------
/bfh2017/test-questions/bfh-fragen-5.txt:
--------------------------------------------------------------------------------
1 | Heap Overflows Related
2 |
3 | Questions:
4 | 1) Für was ist der Heap?
5 | 2) Wie funktioniert der heap?
6 | 3) Was ist ein chunk?
7 | 4) Kann man Heap buffer overflows machen?
8 | 5) Was ist ein use-after-free angriff?
9 | 6) Wie wird eine UAF Schwachstelle oft ausgenutzt?
10 |
11 |
12 | Answers:
13 | 1) malloc() allokationen / dynamische, globale datenstrukturen
14 | 2) malloc() alloziiert ein paar memory pages. Jede page wird in gleich grosse stücke (chunks) unterteilt. beim aufruf von malloc() wird ein freier chunk zurückgegeben
15 | 3) Ein heap element, dass ein für den user schreibbaren bereich enthält, plus heap metainformationen
16 | 4) Ja. Wie beim stack existieren meta/control informationen für den heap, auf dem heap. Durch geschickte manipulation der heap metadaten und allokation/deallokation von chunks kann es möglich sein, beliebige daten an beliebige stellen im speicher zu schreiben
17 | 5) Ein memory bereich wird gleichzeitig durch zwei unterschiedliche stellen im code benutzt (zwei pointer auf den gleichen speicher bereich). Dadurch lassen sich objekte in diesem speicher (beliebig) manipulieren.
18 | 6) Ein Speicherbereich wird versehentlich freigeben. Danach wird ein neues C++ Objekt generiert, dessen vtable in diesen freigegebenen Speicher gespeichert wird. Durch das manipulieren des ursprünglichen Pointers können diese vtable Eintrage, was einfach Pointer zu Funktionen sind, verändert werden. Z.B. ist es möglich, sie auf ein ROP Gadget zu zeigen, welches dann ein stack-flip durchführt.
19 |
--------------------------------------------------------------------------------
/bfh2017/test-questions/bfh-fragen-6.txt:
--------------------------------------------------------------------------------
1 | Windows Related
2 |
3 | Questions:
4 | 1) Funktionieren exploits unter windows grundlegend anders?
5 | 2) Gibt es unterschiede zwischen windows und linux bzgl. exploiting?
6 | 3) Gibt es Unterschiede zwischen windows und linux bzgl. exploit mitigations?
7 |
8 | Answers:
9 | 1) Nein.
10 | 2) Windows besitzt structured exception handler auf dem stack, die man für lange Zeit für exploits missbrauchen konnte.
11 | 3) Windows hat im Laufe der Zeit alle Exploit Mitigation Techniken bekommen, die Linux derzeit hat. Zusätzlich wird CFI konsequenter eingesetzt.
--------------------------------------------------------------------------------
/bfh2017/test-questions/bfh-fragen-7.txt:
--------------------------------------------------------------------------------
1 | Weitergehende Fragen
2 |
3 | 1) Gibt es Möglichkeiten, Memory Corruption's komplett zu eliminieren?
4 | 2) Sind die derzeit vorhandenen Anti-Exploit Mechanismen adäquat?
5 | 3) Hast du Ideen für die Verbesserung von Anti-Exploit Mechanismen?
6 | 4) Wie steht es um Technologien wie Virtuelle Maschinen, Container und Sandboxing im Vergleich zu Anti-Exploit Mechanismen. Vor- und Nachteile?
7 | 5) Warum ist ein Browser besondern gefärdet / anfällig für Memory Corruption Angriffe?
8 |
9 |
10 |
--------------------------------------------------------------------------------
/bfh2018/content.html:
--------------------------------------------------------------------------------
1 | BFH 2018
2 |
3 |
--------------------------------------------------------------------------------
/bfh2018/day1/0x01_Intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day1/0x01_Intro.pdf
--------------------------------------------------------------------------------
/bfh2018/day1/0x02_Intro-Technical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day1/0x02_Intro-Technical.pdf
--------------------------------------------------------------------------------
/bfh2018/day1/0x04_Intro-Yookiterm.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day1/0x04_Intro-Yookiterm.pdf
--------------------------------------------------------------------------------
/bfh2018/day1/0x10_IntelArchitecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day1/0x10_IntelArchitecture.pdf
--------------------------------------------------------------------------------
/bfh2018/day1/0x11_MemoryLayout.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day1/0x11_MemoryLayout.pdf
--------------------------------------------------------------------------------
/bfh2018/day2/0x30_AssemblerIntro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day2/0x30_AssemblerIntro.pdf
--------------------------------------------------------------------------------
/bfh2018/day2/0x31_Shellcode.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day2/0x31_Shellcode.pdf
--------------------------------------------------------------------------------
/bfh2018/day2/0x32_FunctionCallConvention.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day2/0x32_FunctionCallConvention.pdf
--------------------------------------------------------------------------------
/bfh2018/day2/0x33_Debugging.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day2/0x33_Debugging.pdf
--------------------------------------------------------------------------------
/bfh2018/day2/challenges.txt:
--------------------------------------------------------------------------------
1 | 3 Introduction to shellcode development
2 | 7 Function Call Convention in x86 (32bit)
3 | 50 Introduction to GDB
4 |
5 |
--------------------------------------------------------------------------------
/bfh2018/day2/memorysegments-cheat-sheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day2/memorysegments-cheat-sheet.png
--------------------------------------------------------------------------------
/bfh2018/day3/0x40_CArrays.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day3/0x40_CArrays.pdf
--------------------------------------------------------------------------------
/bfh2018/day3/0x41_BufferOverflow.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day3/0x41_BufferOverflow.pdf
--------------------------------------------------------------------------------
/bfh2018/day3/0x42_Exploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day3/0x42_Exploit.pdf
--------------------------------------------------------------------------------
/bfh2018/day3/0x44_RemoteExploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day3/0x44_RemoteExploit.pdf
--------------------------------------------------------------------------------
/bfh2018/day3/challenges.txt:
--------------------------------------------------------------------------------
1 | 8 C buffer analysis - with debugging
2 | 9 Simple Buffer overflow - variable overwrite
3 | 10 Simple Buffer overflow - RCE
4 | 11 Development of a buffer overflow exploit - 32 bit
5 | 12 Development of a buffer overflow exploit - 64 bit
6 | 13 Development of a remote buffer overflow exploit - 64 bit
--------------------------------------------------------------------------------
/bfh2018/day4/0x51_ExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day4/0x51_ExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2018/day4/0x70_SecureCoding.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day4/0x70_SecureCoding.pdf
--------------------------------------------------------------------------------
/bfh2018/day4/0xA3_AnonSecHack.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day4/0xA3_AnonSecHack.pdf
--------------------------------------------------------------------------------
/bfh2018/day4/challenges.txt:
--------------------------------------------------------------------------------
1 | 15 Simple remote buffer overflow exploit - ASLR/DEP/64bit
2 |
--------------------------------------------------------------------------------
/bfh2018/day5/0x52_DefeatExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day5/0x52_DefeatExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2018/day5/0x53_ExploitMitigations_PIE.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day5/0x53_ExploitMitigations_PIE.pdf
--------------------------------------------------------------------------------
/bfh2018/day5/0x57_ExploitMitigationsOutro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day5/0x57_ExploitMitigationsOutro.pdf
--------------------------------------------------------------------------------
/bfh2018/day5/0x60_WindowsExploiting.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day5/0x60_WindowsExploiting.pdf
--------------------------------------------------------------------------------
/bfh2018/day5/0x74_HardwareHacking.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day5/0x74_HardwareHacking.pdf
--------------------------------------------------------------------------------
/bfh2018/day5/challenges.txt:
--------------------------------------------------------------------------------
1 | 14: Stack canary brute force
2 | 15: Simple remote buffer overflow exploit - ASLR/DEP/64bit
3 |
--------------------------------------------------------------------------------
/bfh2018/day6/0x54_DefeatExploitMitigations_ROP.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day6/0x54_DefeatExploitMitigations_ROP.pdf
--------------------------------------------------------------------------------
/bfh2018/day6/0x71_Fuzzing.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day6/0x71_Fuzzing.pdf
--------------------------------------------------------------------------------
/bfh2018/day6/challenges.txt:
--------------------------------------------------------------------------------
1 | 16 Remote buffer overflow with ROP - DEP/64bit
2 | 17 Remote buffer overflow with ROP - DEP/ASLR/64bit
3 |
4 | Find at least one bug with AFL, fuzzing a open source library or program of your choice.
5 |
--------------------------------------------------------------------------------
/bfh2018/day7/0x55_DefeatExploitMitigations_heap_intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day7/0x55_DefeatExploitMitigations_heap_intro.pdf
--------------------------------------------------------------------------------
/bfh2018/day7/0x56_DefeatExploitMitigations_heap_attacks.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day7/0x56_DefeatExploitMitigations_heap_attacks.pdf
--------------------------------------------------------------------------------
/bfh2018/day7/0xA1_HeapExploitUaf_CaseStudies.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day7/0xA1_HeapExploitUaf_CaseStudies.pdf
--------------------------------------------------------------------------------
/bfh2018/day7/0xA4_WindowsHacking.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day7/0xA4_WindowsHacking.pdf
--------------------------------------------------------------------------------
/bfh2018/day7/0xA5_BrowserSecurity.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day7/0xA5_BrowserSecurity.pdf
--------------------------------------------------------------------------------
/bfh2018/day7/0xA8_ExploitationTechniques.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day7/0xA8_ExploitationTechniques.pdf
--------------------------------------------------------------------------------
/bfh2018/day7/0xB0_Outro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/day7/0xB0_Outro.pdf
--------------------------------------------------------------------------------
/bfh2018/test-questions/bfh-fragen-1.txt:
--------------------------------------------------------------------------------
1 | Exploiting Related
2 |
3 | Prüfungsrelevant, Beispiele:
4 | 1: Was für memory regionen gibt es in prozessen? Für was sind sie da? Von wo kommen sie?
5 | 2: Was ist genau das problem bei memory corruptions?
6 | 3: Wieso gibt es eigentlich memory corruptions?
7 | 4: was braucht es alles für einen funktionsfähigen exploit?
8 | 5: wie genau funktioniert eigentlich ein exploit?
9 | 6: Warum steht der instruction pointer (RIP) auf dem stack (SIP)?
10 | 7: Kannst du mir grob eine grafik des Stacks für die folgende Funktion zeichnen?
11 | 8: Welche Programme kann man mittels eines Exploit angreifen?
12 | 9: Was ist shellcode?
13 |
14 | Super short beispiel lösungen, die etwa genügend geben würden:
15 | 1: stack, heap, code. für lokale variablen, malloc, ausführbarer code. vom ELF file
16 | 2: man kann zeugs von einem programm zur laufzeit überschreiben, dass man nicht überschreiben dürfen sollte. und dadurch böse sachen machen, z.B. code ausführen. die integrität des programs und des computers auf dem es läuft ist nicht mehr gewärleistet
17 | 3: C beachtet memory grenzen für arrays nicht
18 | 4: shellcode, addresse des shellcodes (im angegriffenen prozess), location des SIP
19 | 5: Mittels memory corruption wird SIP überschrieben, und dann hochgeladener assembler code (shellcode) angesprungen
20 | 6: Damit die Funktion weiss, wo es nach dem Ende der Funktion weitergeht.
21 | 8: prinzipiell alle, die daten des angreifers entgegennehmen, und in in C/C++ geschrieben sind.
22 | 9: In sich abgeschlossener, ausführbarer assembler code der für angriffe gegen andere programme eingesetzt wird. Startet oft eine shell (bash).
23 |
24 |
25 | NICHT (umbedingt) prüfungsrelevant, Beispiele:
26 | - In welchem register steht die addresse des strings beim write systemcall?
27 | - Mit welchem GDB befehl findet man die adresse eines buffers heraus?
28 | - welche optionen hat GDB?
29 | - kannst du den folgenden assembler code so ummodeln, dass es keine 0 bytes mehr gibt?
30 | - nenne mir 5 unterschiede zwischen x32 und x64
31 | - Kannst du mir die zahl 31337 nach hex konvertieren, und als little endian speichern?
32 | - erklär mir step-by-step wie das aufrufen einer funktion unter x64 funktioniert (speziell der funktionsprolog und epilog, mit EBP, SFP etc.)
33 | - Erklär mir was ein Computer für komponenten hat
34 | - Erklär mir, wie die CPU funktioniert
35 | - Was gibt es für register? Wofür werden sie gebraucht?
36 | - Für was sind die sections bei ELF da?
37 |
38 |
--------------------------------------------------------------------------------
/bfh2018/test-questions/bfh-fragen-2.txt:
--------------------------------------------------------------------------------
1 | Exploit Mitigation Related
2 |
3 | Questions:
4 | 1: Was sind die Unterschiede zwischen einem local- und remote Exploit?
5 | 2: Wie verhalten sich Netzwerk Server im falle eines crashes? Hat das einen Einfluss auf das Exploiting?
6 |
7 | 3: Was sind die Drei wichtigsten Anti-Exploit Mechanismen?
8 | 4: Wie funktioniert ASLR?
9 | 5: Wie funktioniert DEP?
10 | 6: Wie funktioniert Stack Canary?
11 | 7: Wie kann man ASLR umgehen?
12 | 8: Wie kann man DEP umgehen?
13 | 9: Wie kann man Stack canary umgehen?
14 |
15 | 10: welcher teil des exploits verhindert ASLR/DEP/stackcanary
16 |
17 |
18 | Answers:
19 |
20 | 1: Grundlegend gibt es keinen. Alle Exploit Techniken funktionieren identisch. Jedoch hat man bei lokalen Exploits mehr Informationen (das Binary und dessen Inhalt, die genaue Program Version, Auslastung des Systems usw.). Bei lokalen Angriffen hat man potentiell mehr Angriffsoberfläche (geladene Dateien, Environment Variablen, Parameter etc). Bei Remote Exploits werden speziell aufgebaute Packete an den Server geschickt, die die Verwundbare Funktion anspricht und ausnützt. Anders ist vorallem der Payload (braucht Connect-Back Shellcode etc.).
21 |
22 | 2: Server erstellen Kind Prozesse (fork()), die eine Kopie des Parents sind, für jeden Client. Dadurch sind auch Schutzmechanismen-Eigenschaften kopiert, speziell das geheime Stack-Cookie und der Offset zu Segmenten (bzw. das Memory Layout). Ein abgestürzter Kind Prozess hat kein Einfluss auf den Server. Dadurch ist es möglich, Brute-Force Angriffe durchzuführen (speziell auf das Stack Cookie, und die ASLR Entropie).
23 |
24 | 3: ASLR, DEP, Stack Canary
25 |
26 | 4: Randomisiert das Memory Layout, so dass der Angreifer wichtige Informationen/Offsets fehlen (Addresse des Shellcodes, Addressen von Funktionen etc.)
27 | 5: Markiert alle schreibbaren Bereiche als nicht ausführbar, sodass der vom Angreifer hochgeladenen Code (Shellcode) nicht ausgeführt werden kann
28 | 6: Bevor beim beenden einer Funktion der stored Instruction Pointer vom Stack geholt wird, um den Instruction Flow bei der Parent Funktion weiterzuführen, wird ein zuerst die Integrität einer Memory Stelle VOR dem SIP kontrolliert
29 |
30 | 7-9: Siehe Grafik "Exploit Mitigations" in den Folien. Hier ein paar Beispiele
31 | 7:
32 | - Exploit so designen, sodass keine Abhängigkeit auf ASLR'te Bereiche existieren (ausnützen nicht-ASLR Bereiche)
33 | - Information disclosure, um das Memory Layout zu rekonstruieren
34 | 8:
35 | - Kein Code hochladen, sondern schon Vorhandene Funktionen anspringen (Ret2plt)
36 | - Teile von existierenden Code missbrauchen (ROP)
37 | 9:
38 | - Brute Force
39 | - Information Disclosure
40 | - Ein anderer Bug anstatt einem simplen Stack Based Buffer Overflow finden
41 |
42 | 10: -
43 |
--------------------------------------------------------------------------------
/bfh2018/test-questions/bfh-fragen-3.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2018/test-questions/bfh-fragen-3.txt
--------------------------------------------------------------------------------
/bfh2018/test-questions/bfh-fragen-4.txt:
--------------------------------------------------------------------------------
1 | ROP Related
2 |
3 | Questions:
4 | 1) Was ist ROP?
5 | 2) Wie findet man ROP gadgets?
6 | 3) Wie funktionieren ROP?
7 | 4) Was braucht man für ROP?
8 | 5) Wie verhindert man ROP?
9 | 6) Wie ist ein ROP basiert exploit generell aufgebaut?
10 |
11 | Answers:
12 | 1) Return oriented programming; das aneinanderfügen von vorhandenen code bestandteilen, die mit einem RET enden
13 | 2) Suche nach dem RET byte im code segment, dann rückwärts disassemblieren bis/solange gültige (und nützliche) code sequencen auftauchen
14 | 3) Die überschriebene (rücksprung) Addresse zeigt auf das erste rop gadget. Jedes gadget konsumiert argumente vom stack via pop. Erreicht man ein RET auf dem gadget, wird via dem stack die addresse des nächsten gadgets konsumiert.
15 | 4) gadgets, bzw. deren addressen. Dafür muss im angreifbaren prozess das code segment nicht ASLR't sein (kein PIE), oder bei windows eine nicht ASLR'te library existieren. Alternativ kann ein Informatino disclosure durchgeführt werden, um diese addressen zu bekommen.
16 | 5) Es dürfen keine statischen segmente mehr existieren. Bei Linux kompiliert man das Program mit PIE (libraries werden automatisch randomisiert eingebunden). Bei Windows dürfen keine nicht-ASLR'ten DLLs geladen werden.
17 | 6) Als erstes wird die ROPchain ausgeführt. Diese enthält funktionalität, um dann einfach weiteren code auszuführen, ist also eine Art Stager. Zum Beispiel ist es möglich den Stack ausführbar zu machen, oder LIBC funktionen wie system() zu eruieren.
18 |
19 |
--------------------------------------------------------------------------------
/bfh2018/test-questions/bfh-fragen-5.txt:
--------------------------------------------------------------------------------
1 | Heap Overflows Related
2 |
3 | Questions:
4 | 1) Für was ist der Heap?
5 | 2) Wie funktioniert der heap?
6 | 3) Was ist ein chunk?
7 | 4) Kann man Heap buffer overflows machen?
8 | 5) Was ist ein use-after-free angriff?
9 | 6) Wie wird eine UAF Schwachstelle oft ausgenutzt?
10 |
11 |
12 | Answers:
13 | 1) malloc() allokationen / dynamische, globale datenstrukturen
14 | 2) malloc() alloziiert ein paar memory pages. Jede page wird in gleich grosse stücke (chunks) unterteilt. beim aufruf von malloc() wird ein freier chunk zurückgegeben
15 | 3) Ein heap element, dass ein für den user schreibbaren bereich enthält, plus heap metainformationen
16 | 4) Ja. Wie beim stack existieren meta/control informationen für den heap, auf dem heap. Durch geschickte manipulation der heap metadaten und allokation/deallokation von chunks kann es möglich sein, beliebige daten an beliebige stellen im speicher zu schreiben
17 | 5) Ein memory bereich wird gleichzeitig durch zwei unterschiedliche stellen im code benutzt (zwei pointer auf den gleichen speicher bereich). Dadurch lassen sich objekte in diesem speicher (beliebig) manipulieren.
18 | 6) Ein Speicherbereich wird versehentlich freigeben. Danach wird ein neues C++ Objekt generiert, dessen vtable in diesen freigegebenen Speicher gespeichert wird. Durch das manipulieren des ursprünglichen Pointers können diese vtable Eintrage, was einfach Pointer zu Funktionen sind, verändert werden. Z.B. ist es möglich, sie auf ein ROP Gadget zu zeigen, welches dann ein stack-flip durchführt.
19 |
--------------------------------------------------------------------------------
/bfh2018/test-questions/bfh-fragen-6.txt:
--------------------------------------------------------------------------------
1 | Windows Related
2 |
3 | Questions:
4 | 1) Funktionieren exploits unter windows grundlegend anders?
5 | 2) Gibt es unterschiede zwischen windows und linux bzgl. exploiting?
6 | 3) Gibt es Unterschiede zwischen windows und linux bzgl. exploit mitigations?
7 |
8 | Answers:
9 | 1) Nein.
10 | 2) Windows besitzt structured exception handler auf dem stack, die man für lange Zeit für exploits missbrauchen konnte.
11 | 3) Windows hat im Laufe der Zeit alle Exploit Mitigation Techniken bekommen, die Linux derzeit hat. Zusätzlich wird CFI konsequenter eingesetzt.
--------------------------------------------------------------------------------
/bfh2018/test-questions/bfh-fragen-7.txt:
--------------------------------------------------------------------------------
1 | Weitergehende Fragen
2 |
3 | 1) Gibt es Möglichkeiten, Memory Corruption's komplett zu eliminieren?
4 | 2) Sind die derzeit vorhandenen Anti-Exploit Mechanismen adäquat?
5 | 3) Hast du Ideen für die Verbesserung von Anti-Exploit Mechanismen?
6 | 4) Wie steht es um Technologien wie Virtuelle Maschinen, Container und Sandboxing im Vergleich zu Anti-Exploit Mechanismen. Vor- und Nachteile?
7 | 5) Warum ist ein Browser besondern gefärdet / anfällig für Memory Corruption Angriffe?
8 |
9 |
10 |
--------------------------------------------------------------------------------
/bfh2019/content.html:
--------------------------------------------------------------------------------
1 | BFH 2019
2 |
3 |
--------------------------------------------------------------------------------
/bfh2019/day1/0x01_Intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day1/0x01_Intro.pdf
--------------------------------------------------------------------------------
/bfh2019/day1/0x02_Intro-Technical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day1/0x02_Intro-Technical.pdf
--------------------------------------------------------------------------------
/bfh2019/day1/0x04_Intro-Yookiterm.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day1/0x04_Intro-Yookiterm.pdf
--------------------------------------------------------------------------------
/bfh2019/day1/0x10_IntelArchitecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day1/0x10_IntelArchitecture.pdf
--------------------------------------------------------------------------------
/bfh2019/day1/0x11_MemoryLayout.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day1/0x11_MemoryLayout.pdf
--------------------------------------------------------------------------------
/bfh2019/day2/0x30_AssemblerIntro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day2/0x30_AssemblerIntro.pdf
--------------------------------------------------------------------------------
/bfh2019/day2/0x31_Shellcode.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day2/0x31_Shellcode.pdf
--------------------------------------------------------------------------------
/bfh2019/day2/0x32_FunctionCallConvention.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day2/0x32_FunctionCallConvention.pdf
--------------------------------------------------------------------------------
/bfh2019/day2/0x33_Debugging.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day2/0x33_Debugging.pdf
--------------------------------------------------------------------------------
/bfh2019/day2/challenges.txt:
--------------------------------------------------------------------------------
1 | 3 Introduction to shellcode development
2 | 7 Function Call Convention in x86 (32bit)
3 | 50 Introduction to GDB
4 |
5 |
--------------------------------------------------------------------------------
/bfh2019/day2/memorysegments-cheat-sheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day2/memorysegments-cheat-sheet.png
--------------------------------------------------------------------------------
/bfh2019/day3/0x40_CArrays.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day3/0x40_CArrays.pdf
--------------------------------------------------------------------------------
/bfh2019/day3/0x41_BufferOverflow.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day3/0x41_BufferOverflow.pdf
--------------------------------------------------------------------------------
/bfh2019/day3/0x42_Exploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day3/0x42_Exploit.pdf
--------------------------------------------------------------------------------
/bfh2019/day3/challenges.txt:
--------------------------------------------------------------------------------
1 | 8 C buffer analysis - with debugging
2 | 9 Simple Buffer overflow - variable overwrite
3 | 10 Simple Buffer overflow - RCE
4 | 11 Development of a buffer overflow exploit - 32 bit
5 |
--------------------------------------------------------------------------------
/bfh2019/day4/0x44_RemoteExploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day4/0x44_RemoteExploit.pdf
--------------------------------------------------------------------------------
/bfh2019/day4/0x51_ExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day4/0x51_ExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2019/day4/0x70_SecureCoding.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day4/0x70_SecureCoding.pdf
--------------------------------------------------------------------------------
/bfh2019/day4/challenges.txt:
--------------------------------------------------------------------------------
1 | 12 Development of a buffer overflow exploit - 64 bit
2 | 13 Development of a remote buffer overflow exploit - 64 bit
--------------------------------------------------------------------------------
/bfh2019/day4/overviewslides.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day4/overviewslides.pdf
--------------------------------------------------------------------------------
/bfh2019/day4/overviewslides.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day4/overviewslides.pptx
--------------------------------------------------------------------------------
/bfh2019/day5/0x52_DefeatExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day5/0x52_DefeatExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2019/day5/0x53_ExploitMitigations_PIE.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day5/0x53_ExploitMitigations_PIE.pdf
--------------------------------------------------------------------------------
/bfh2019/day5/challenges.txt:
--------------------------------------------------------------------------------
1 | 14: Stack canary brute force
2 | 15: Simple remote buffer overflow exploit - ASLR/DEP/64bit
3 | 18: GOT/PLT Overwrite Example
--------------------------------------------------------------------------------
/bfh2019/day6/0x54_DefeatExploitMitigations_ROP.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day6/0x54_DefeatExploitMitigations_ROP.pdf
--------------------------------------------------------------------------------
/bfh2019/day6/0x59_InformationDisclosure.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day6/0x59_InformationDisclosure.pdf
--------------------------------------------------------------------------------
/bfh2019/day6/0x60_WindowsExploiting.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day6/0x60_WindowsExploiting.pdf
--------------------------------------------------------------------------------
/bfh2019/day6/0xA3_AnonSecHack.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day6/0xA3_AnonSecHack.pdf
--------------------------------------------------------------------------------
/bfh2019/day6/challenges.txt:
--------------------------------------------------------------------------------
1 | 16 Remote buffer overflow with ROP - DEP/64bit
2 | 17 Remote buffer overflow with ROP - DEP/ASLR/64bit
3 |
--------------------------------------------------------------------------------
/bfh2019/day7/0x55_DefeatExploitMitigations_heap_intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day7/0x55_DefeatExploitMitigations_heap_intro.pdf
--------------------------------------------------------------------------------
/bfh2019/day7/0x56_DefeatExploitMitigations_heap_attacks.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day7/0x56_DefeatExploitMitigations_heap_attacks.pdf
--------------------------------------------------------------------------------
/bfh2019/day7/0x72_LinuxHardening.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day7/0x72_LinuxHardening.pdf
--------------------------------------------------------------------------------
/bfh2019/day7/0xA1_HeapExploitUaf_CaseStudies.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day7/0xA1_HeapExploitUaf_CaseStudies.pdf
--------------------------------------------------------------------------------
/bfh2019/day7/0xA5_BrowserSecurity.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day7/0xA5_BrowserSecurity.pdf
--------------------------------------------------------------------------------
/bfh2019/day8/0x71_Fuzzing.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day8/0x71_Fuzzing.pdf
--------------------------------------------------------------------------------
/bfh2019/day8/0x73_KernelExploitation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day8/0x73_KernelExploitation.pdf
--------------------------------------------------------------------------------
/bfh2019/day8/0x74_HardwareHacking.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day8/0x74_HardwareHacking.pdf
--------------------------------------------------------------------------------
/bfh2019/day8/0x75_CFI.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day8/0x75_CFI.pdf
--------------------------------------------------------------------------------
/bfh2019/day8/0xA4_WindowsHacking.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day8/0xA4_WindowsHacking.pdf
--------------------------------------------------------------------------------
/bfh2019/day8/0xA8_ExploitationTechniques.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day8/0xA8_ExploitationTechniques.pdf
--------------------------------------------------------------------------------
/bfh2019/day8/0xB0_Outro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2019/day8/0xB0_Outro.pdf
--------------------------------------------------------------------------------
/bfh2020/content.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | BFH 2020
5 |
6 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/bfh2020/day1/0x01_Intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day1/0x01_Intro.pdf
--------------------------------------------------------------------------------
/bfh2020/day1/0x02_Intro-Technical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day1/0x02_Intro-Technical.pdf
--------------------------------------------------------------------------------
/bfh2020/day1/0x04_Intro-Yookiterm.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day1/0x04_Intro-Yookiterm.pdf
--------------------------------------------------------------------------------
/bfh2020/day1/0x10_IntelArchitecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day1/0x10_IntelArchitecture.pdf
--------------------------------------------------------------------------------
/bfh2020/day1/0x11_MemoryLayout.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day1/0x11_MemoryLayout.pdf
--------------------------------------------------------------------------------
/bfh2020/day1/homework.txt:
--------------------------------------------------------------------------------
1 | Account via hacking-lab.com
2 |
3 | https://exploit.courses
4 | * Challenge 0: Introduction to memory layout – basic
5 | * Challenge 1: Introduction to memory layout - advanced
6 |
7 | Optional:
8 | * Challenge 4: Introduction to hex numbers, code and GDB
9 |
--------------------------------------------------------------------------------
/bfh2020/day2/0x30_AssemblerIntro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day2/0x30_AssemblerIntro.pdf
--------------------------------------------------------------------------------
/bfh2020/day2/0x31_Shellcode.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day2/0x31_Shellcode.pdf
--------------------------------------------------------------------------------
/bfh2020/day2/0x32_FunctionCallConvention.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day2/0x32_FunctionCallConvention.pdf
--------------------------------------------------------------------------------
/bfh2020/day2/0x33_Debugging.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day2/0x33_Debugging.pdf
--------------------------------------------------------------------------------
/bfh2020/day2/challenges.txt:
--------------------------------------------------------------------------------
1 | 3 Introduction to shellcode development
2 | 7 Function Call Convention in x86 (32bit)
3 | 50 Introduction to GDB
4 |
5 |
--------------------------------------------------------------------------------
/bfh2020/day2/memorysegments-cheat-sheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day2/memorysegments-cheat-sheet.png
--------------------------------------------------------------------------------
/bfh2020/day3/0x40_CArrays.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day3/0x40_CArrays.pdf
--------------------------------------------------------------------------------
/bfh2020/day3/0x41_BufferOverflow.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day3/0x41_BufferOverflow.pdf
--------------------------------------------------------------------------------
/bfh2020/day3/0x42_Exploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day3/0x42_Exploit.pdf
--------------------------------------------------------------------------------
/bfh2020/day3/0x44_RemoteExploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day3/0x44_RemoteExploit.pdf
--------------------------------------------------------------------------------
/bfh2020/day3/challenges.txt:
--------------------------------------------------------------------------------
1 | 8 C buffer analysis - with debugging
2 | 9 Simple Buffer overflow - variable overwrite
3 | 10 Simple Buffer overflow - RCE
4 | 11 Development of a buffer overflow exploit - 32 bit
5 |
6 | for remote exploiting:
7 | 12 Development of a buffer overflow exploit - 64 bit
8 | 13 Development of a remote buffer overflow exploit - 64 bit
--------------------------------------------------------------------------------
/bfh2020/day4/0x51_ExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day4/0x51_ExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2020/day4/0x70_SecureCoding.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day4/0x70_SecureCoding.pdf
--------------------------------------------------------------------------------
/bfh2020/day4/day4_overviewslides.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day4/day4_overviewslides.pdf
--------------------------------------------------------------------------------
/bfh2020/day5/0x52_DefeatExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day5/0x52_DefeatExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2020/day5/0x53_ExploitMitigations_PIE.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day5/0x53_ExploitMitigations_PIE.pdf
--------------------------------------------------------------------------------
/bfh2020/day5/challenges.txt:
--------------------------------------------------------------------------------
1 | 14: Stack canary brute force
2 | 15: Simple remote buffer overflow exploit - ASLR/DEP/64bit
3 | 18: GOT/PLT Overwrite Example
--------------------------------------------------------------------------------
/bfh2020/day6/0x54_DefeatExploitMitigations_ROP.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day6/0x54_DefeatExploitMitigations_ROP.pdf
--------------------------------------------------------------------------------
/bfh2020/day6/0x54_DefeatExploitMitigations_ROP_practical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day6/0x54_DefeatExploitMitigations_ROP_practical.pdf
--------------------------------------------------------------------------------
/bfh2020/day6/0x71_Fuzzing.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day6/0x71_Fuzzing.pdf
--------------------------------------------------------------------------------
/bfh2020/day6/0x74_HardwareHacking.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day6/0x74_HardwareHacking.pdf
--------------------------------------------------------------------------------
/bfh2020/day6/0xA5_BrowserSecurity.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day6/0xA5_BrowserSecurity.pdf
--------------------------------------------------------------------------------
/bfh2020/day7/0x55_DefeatExploitMitigations_heap_intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day7/0x55_DefeatExploitMitigations_heap_intro.pdf
--------------------------------------------------------------------------------
/bfh2020/day7/0x56_DefeatExploitMitigations_heap_attacks.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day7/0x56_DefeatExploitMitigations_heap_attacks.pdf
--------------------------------------------------------------------------------
/bfh2020/day7/0x60_WindowsExploiting.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day7/0x60_WindowsExploiting.pdf
--------------------------------------------------------------------------------
/bfh2020/day7/0x75_CFI.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day7/0x75_CFI.pdf
--------------------------------------------------------------------------------
/bfh2020/day7/0xB0_Outro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/day7/0xB0_Outro.pdf
--------------------------------------------------------------------------------
/bfh2020/test-questions/bfh-fragen-1.txt:
--------------------------------------------------------------------------------
1 | Exploiting Related
2 |
3 | Prüfungsrelevant, Beispiele:
4 | 1: Was für memory regionen gibt es in prozessen? Für was sind sie da? Von wo kommen sie?
5 | 2: Was ist genau das problem bei memory corruptions?
6 | 3: Wieso gibt es eigentlich memory corruptions?
7 | 4: was braucht es alles für einen funktionsfähigen exploit?
8 | 5: wie genau funktioniert eigentlich ein exploit?
9 | 6: Warum steht der instruction pointer (RIP) auf dem stack (SIP)?
10 | 7: Kannst du mir grob eine grafik des Stacks für die folgende Funktion zeichnen?
11 | 8: Welche Programme kann man mittels eines Exploit angreifen?
12 | 9: Was ist shellcode?
13 | A: Kannst du mir die zahl 31337 nach hex konvertieren, und als little endian speichern?
14 |
15 | Super short beispiel lösungen, die etwa genügend geben würden:
16 | 1: stack, heap, code. für lokale variablen, malloc, ausführbarer code. vom ELF file
17 | 2: man kann zeugs von einem programm zur laufzeit überschreiben, dass man nicht überschreiben dürfen sollte. und dadurch böse sachen machen, z.B. code ausführen. die integrität des programs und des computers auf dem es läuft ist nicht mehr gewärleistet
18 | 3: C beachtet memory grenzen für arrays nicht
19 | 4: shellcode, addresse des shellcodes (im angegriffenen prozess), location des SIP
20 | 5: Mittels memory corruption wird SIP überschrieben, und dann hochgeladener assembler code (shellcode) angesprungen
21 | 6: Damit die Funktion weiss, wo es nach dem Ende der Funktion weitergeht.
22 | 8: prinzipiell alle, die daten des angreifers entgegennehmen, und in in C/C++ geschrieben sind.
23 | 9: In sich abgeschlossener, ausführbarer assembler code der für angriffe gegen andere programme eingesetzt wird. Startet oft eine shell (bash).
24 |
25 |
26 | NICHT (umbedingt) prüfungsrelevant, Beispiele:
27 | - In welchem register steht die addresse des strings beim write systemcall?
28 | - Mit welchem GDB befehl findet man die adresse eines buffers heraus?
29 | - welche optionen hat GDB?
30 | - kannst du den folgenden assembler code so ummodeln, dass es keine 0 bytes mehr gibt?
31 | - nenne mir 5 unterschiede zwischen x32 und x64
32 | - erklär mir step-by-step wie das aufrufen einer funktion unter x64 funktioniert (speziell der funktionsprolog und epilog, mit EBP, SFP etc.)
33 | - Erklär mir was ein Computer für komponenten hat
34 | - Erklär mir, wie die CPU funktioniert
35 | - Was gibt es für register? Wofür werden sie gebraucht?
36 | - Für was sind die sections bei ELF da?
37 |
38 |
--------------------------------------------------------------------------------
/bfh2020/test-questions/bfh-fragen-2.txt:
--------------------------------------------------------------------------------
1 | Exploit Mitigation Related
2 |
3 | Questions:
4 | 1: Was sind die Unterschiede zwischen einem local- und remote Exploit?
5 | 2: Wie verhalten sich Netzwerk Server im falle eines crashes? Hat das einen Einfluss auf das Exploiting?
6 |
7 | 3: Was sind die Drei wichtigsten Anti-Exploit Mechanismen?
8 | 4: Wie funktioniert ASLR?
9 | 5: Wie funktioniert DEP?
10 | 6: Wie funktioniert Stack Canary?
11 | 7: Wie kann man ASLR umgehen?
12 | 8: Wie kann man DEP umgehen?
13 | 9: Wie kann man Stack canary umgehen?
14 |
15 | 10: welcher teil des exploits verhindert ASLR/DEP/stackcanary
16 |
17 |
18 | Answers:
19 |
20 | 1: Grundlegend gibt es keinen. Alle Exploit Techniken funktionieren identisch. Jedoch hat man bei lokalen Exploits mehr Informationen (das Binary und dessen Inhalt, die genaue Program Version, Auslastung des Systems usw.). Bei lokalen Angriffen hat man potentiell mehr Angriffsoberfläche (geladene Dateien, Environment Variablen, Parameter etc). Bei Remote Exploits werden speziell aufgebaute Packete an den Server geschickt, die die Verwundbare Funktion anspricht und ausnützt. Anders ist vorallem der Payload (braucht Connect-Back Shellcode etc.).
21 |
22 | 2: Server erstellen Kind Prozesse (fork()), die eine Kopie des Parents sind, für jeden Client. Dadurch sind auch Schutzmechanismen-Eigenschaften kopiert, speziell das geheime Stack-Cookie und der Offset zu Segmenten (bzw. das Memory Layout). Ein abgestürzter Kind Prozess hat kein Einfluss auf den Server. Dadurch ist es möglich, Brute-Force Angriffe durchzuführen (speziell auf das Stack Cookie, und die ASLR Entropie).
23 |
24 | 3: ASLR, DEP, Stack Canary
25 |
26 | 4: Randomisiert das Memory Layout, so dass der Angreifer wichtige Informationen/Offsets fehlen (Addresse des Shellcodes, Addressen von Funktionen etc.)
27 | 5: Markiert alle schreibbaren Bereiche als nicht ausführbar, sodass der vom Angreifer hochgeladenen Code (Shellcode) nicht ausgeführt werden kann
28 | 6: Bevor beim beenden einer Funktion der stored Instruction Pointer vom Stack geholt wird, um den Instruction Flow bei der Parent Funktion weiterzuführen, wird ein zuerst die Integrität einer Memory Stelle VOR dem SIP kontrolliert
29 |
30 | 7-9: Siehe Grafik "Exploit Mitigations" in den Folien. Hier ein paar Beispiele
31 | 7:
32 | - Exploit so designen, sodass keine Abhängigkeit auf ASLR'te Bereiche existieren (ausnützen nicht-ASLR Bereiche)
33 | - Information disclosure, um das Memory Layout zu rekonstruieren
34 | 8:
35 | - Kein Code hochladen, sondern schon Vorhandene Funktionen anspringen (Ret2plt)
36 | - Teile von existierenden Code missbrauchen (ROP)
37 | 9:
38 | - Brute Force
39 | - Information Disclosure
40 | - Ein anderer Bug anstatt einem simplen Stack Based Buffer Overflow finden
41 |
42 | 10: -
43 |
--------------------------------------------------------------------------------
/bfh2020/test-questions/bfh-fragen-3.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2020/test-questions/bfh-fragen-3.txt
--------------------------------------------------------------------------------
/bfh2020/test-questions/bfh-fragen-4.txt:
--------------------------------------------------------------------------------
1 | ROP Related
2 |
3 | Questions:
4 | 1) Was ist ROP?
5 | 2) Wie findet man ROP gadgets?
6 | 3) Wie funktionieren ROP?
7 | 4) Was braucht man für ROP?
8 | 5) Wie verhindert man ROP?
9 | 6) Wie ist ein ROP basiert exploit generell aufgebaut?
10 |
11 | Answers:
12 | 1) Return oriented programming; das aneinanderfügen von vorhandenen code bestandteilen, die mit einem RET enden
13 | 2) Suche nach dem RET byte im code segment, dann rückwärts disassemblieren bis/solange gültige (und nützliche) code sequencen auftauchen
14 | 3) Die überschriebene (rücksprung) Addresse zeigt auf das erste rop gadget. Jedes gadget konsumiert argumente vom stack via pop. Erreicht man ein RET auf dem gadget, wird via dem stack die addresse des nächsten gadgets konsumiert.
15 | 4) gadgets, bzw. deren addressen. Dafür muss im angreifbaren prozess das code segment nicht ASLR't sein (kein PIE), oder bei windows eine nicht ASLR'te library existieren. Alternativ kann ein Informatino disclosure durchgeführt werden, um diese addressen zu bekommen.
16 | 5) Es dürfen keine statischen segmente mehr existieren. Bei Linux kompiliert man das Program mit PIE (libraries werden automatisch randomisiert eingebunden). Bei Windows dürfen keine nicht-ASLR'ten DLLs geladen werden.
17 | 6) Als erstes wird die ROPchain ausgeführt. Diese enthält funktionalität, um dann einfach weiteren code auszuführen, ist also eine Art Stager. Zum Beispiel ist es möglich den Stack ausführbar zu machen, oder LIBC funktionen wie system() zu eruieren.
18 |
19 |
--------------------------------------------------------------------------------
/bfh2020/test-questions/bfh-fragen-5.txt:
--------------------------------------------------------------------------------
1 | Heap Overflows Related
2 |
3 | Questions:
4 | 1) Für was ist der Heap?
5 | 2) Wie funktioniert der heap?
6 | 3) Was ist ein chunk?
7 | 4) Kann man Heap buffer overflows machen?
8 | 5) Was ist ein use-after-free angriff?
9 | 6) Wie wird eine UAF Schwachstelle oft ausgenutzt?
10 |
11 |
12 | Answers:
13 | 1) malloc() allokationen / dynamische, globale datenstrukturen
14 | 2) malloc() alloziiert ein paar memory pages. Jede page wird in gleich grosse stücke (chunks) unterteilt. beim aufruf von malloc() wird ein freier chunk zurückgegeben
15 | 3) Ein heap element, dass ein für den user schreibbaren bereich enthält, plus heap metainformationen
16 | 4) Ja. Wie beim stack existieren meta/control informationen für den heap, auf dem heap. Durch geschickte manipulation der heap metadaten und allokation/deallokation von chunks kann es möglich sein, beliebige daten an beliebige stellen im speicher zu schreiben
17 | 5) Ein memory bereich wird gleichzeitig durch zwei unterschiedliche stellen im code benutzt (zwei pointer auf den gleichen speicher bereich). Dadurch lassen sich objekte in diesem speicher (beliebig) manipulieren.
18 | 6) Ein Speicherbereich wird versehentlich freigeben. Danach wird ein neues Objekt generiert, dass diesen freigegebenen Speicher gespeichert wird. Durch das manipulieren des ursprünglichen Pointers können diese vtable Eintrage, was einfach Pointer zu Funktionen sind, verändert werden. Z.B. ist es möglich, sie auf ein ROP Gadget zu zeigen, welches dann ein stack-flip durchführt.
19 |
--------------------------------------------------------------------------------
/bfh2020/test-questions/bfh-fragen-6.txt:
--------------------------------------------------------------------------------
1 | Windows Related
2 |
3 | Questions:
4 | 1) Funktionieren exploits unter windows grundlegend anders?
5 | 2) Gibt es unterschiede zwischen windows und linux bzgl. exploiting?
6 | 3) Gibt es Unterschiede zwischen windows und linux bzgl. exploit mitigations?
7 |
8 | Answers:
9 | 1) Nein.
10 | 2) Windows besitzt structured exception handler auf dem stack, die man für lange Zeit für exploits missbrauchen konnte.
11 | 3) Windows hat im Laufe der Zeit alle Exploit Mitigation Techniken bekommen, die Linux derzeit hat. Zusätzlich wird CFI konsequenter eingesetzt.
--------------------------------------------------------------------------------
/bfh2020/test-questions/bfh-fragen-7.txt:
--------------------------------------------------------------------------------
1 | Weitergehende Fragen
2 |
3 | 1) Gibt es Möglichkeiten, Memory Corruption's komplett zu eliminieren?
4 | 2) Sind die derzeit vorhandenen Anti-Exploit Mechanismen adäquat?
5 | 3) Hast du Ideen für die Verbesserung von Anti-Exploit Mechanismen?
6 | 4) Wie steht es um Technologien wie Virtuelle Maschinen, Container und Sandboxing im Vergleich zu Anti-Exploit Mechanismen. Vor- und Nachteile?
7 | 5) Warum ist ein Browser besondern gefärdet / anfällig für Memory Corruption Angriffe?
8 |
9 |
10 |
--------------------------------------------------------------------------------
/bfh2021/content.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | BFH 2021
5 |
6 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/bfh2021/day1/0x01_Intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day1/0x01_Intro.pdf
--------------------------------------------------------------------------------
/bfh2021/day1/0x02_Intro-Technical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day1/0x02_Intro-Technical.pdf
--------------------------------------------------------------------------------
/bfh2021/day1/0x04_Intro-Yookiterm.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day1/0x04_Intro-Yookiterm.pdf
--------------------------------------------------------------------------------
/bfh2021/day1/0x10_IntelArchitecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day1/0x10_IntelArchitecture.pdf
--------------------------------------------------------------------------------
/bfh2021/day1/0x11_MemoryLayout.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day1/0x11_MemoryLayout.pdf
--------------------------------------------------------------------------------
/bfh2021/day2/0x30_AssemblerIntro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day2/0x30_AssemblerIntro.pdf
--------------------------------------------------------------------------------
/bfh2021/day2/0x31_Shellcode.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day2/0x31_Shellcode.pdf
--------------------------------------------------------------------------------
/bfh2021/day2/0x32_FunctionCallConvention.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day2/0x32_FunctionCallConvention.pdf
--------------------------------------------------------------------------------
/bfh2021/day2/0x33_Debugging.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day2/0x33_Debugging.pdf
--------------------------------------------------------------------------------
/bfh2021/day3/0x40_CArrays.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day3/0x40_CArrays.pdf
--------------------------------------------------------------------------------
/bfh2021/day3/0x41_BufferOverflow.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day3/0x41_BufferOverflow.pdf
--------------------------------------------------------------------------------
/bfh2021/day3/0x42_Exploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day3/0x42_Exploit.pdf
--------------------------------------------------------------------------------
/bfh2021/day3/0x44_RemoteExploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day3/0x44_RemoteExploit.pdf
--------------------------------------------------------------------------------
/bfh2021/day4/0x51_ExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day4/0x51_ExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2021/day4/0x70_SecureCoding.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day4/0x70_SecureCoding.pdf
--------------------------------------------------------------------------------
/bfh2021/day4/day4_overviewslides.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day4/day4_overviewslides.pdf
--------------------------------------------------------------------------------
/bfh2021/day5/0x52_DefeatExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day5/0x52_DefeatExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2021/day5/0x53_ExploitMitigations_PIE.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day5/0x53_ExploitMitigations_PIE.pdf
--------------------------------------------------------------------------------
/bfh2021/day6/0x54_DefeatExploitMitigations_ROP.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day6/0x54_DefeatExploitMitigations_ROP.pdf
--------------------------------------------------------------------------------
/bfh2021/day6/0x54_DefeatExploitMitigations_ROP_practical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day6/0x54_DefeatExploitMitigations_ROP_practical.pdf
--------------------------------------------------------------------------------
/bfh2021/day6/0x60_WindowsExploiting.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day6/0x60_WindowsExploiting.pdf
--------------------------------------------------------------------------------
/bfh2021/day6/0x74_HardwareHacking.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day6/0x74_HardwareHacking.pdf
--------------------------------------------------------------------------------
/bfh2021/day6/0xA5_BrowserSecurity.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day6/0xA5_BrowserSecurity.pdf
--------------------------------------------------------------------------------
/bfh2021/day6/ret2plt.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day6/ret2plt.pdf
--------------------------------------------------------------------------------
/bfh2021/day7/0x71_Fuzzing.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day7/0x71_Fuzzing.pdf
--------------------------------------------------------------------------------
/bfh2021/day7/0x75_CFI.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day7/0x75_CFI.pdf
--------------------------------------------------------------------------------
/bfh2021/day7/0xA3_AnonSecHack.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day7/0xA3_AnonSecHack.pdf
--------------------------------------------------------------------------------
/bfh2021/day7/0xA8_ExploitationTechniques.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day7/0xA8_ExploitationTechniques.pdf
--------------------------------------------------------------------------------
/bfh2021/day7/0xB0_Outro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/day7/0xB0_Outro.pdf
--------------------------------------------------------------------------------
/bfh2021/test-questions/bfh-fragen-1.txt:
--------------------------------------------------------------------------------
1 | Exploiting Related
2 |
3 | Prüfungsrelevant, Beispiele:
4 | 1: Was für memory regionen gibt es in prozessen? Für was sind sie da? Von wo kommen sie?
5 | 2: Was ist genau das problem bei memory corruptions?
6 | 3: Wieso gibt es eigentlich memory corruptions?
7 | 4: was braucht es alles für einen funktionsfähigen exploit?
8 | 5: wie genau funktioniert eigentlich ein exploit?
9 | 6: Warum steht der instruction pointer (RIP) auf dem stack (SIP)?
10 | 7: Kannst du mir grob eine grafik des Stacks für die folgende Funktion zeichnen?
11 | 8: Welche Programme kann man mittels eines Exploit angreifen?
12 | 9: Was ist shellcode?
13 | A: Kannst du mir die zahl 31337 nach hex konvertieren, und als little endian speichern?
14 |
15 | Super short beispiel lösungen, die etwa genügend geben würden:
16 | 1: stack, heap, code. für lokale variablen, malloc, ausführbarer code. vom ELF file
17 | 2: man kann zeugs von einem programm zur laufzeit überschreiben, dass man nicht überschreiben dürfen sollte. und dadurch böse sachen machen, z.B. code ausführen. die integrität des programs und des computers auf dem es läuft ist nicht mehr gewärleistet
18 | 3: C beachtet memory grenzen für arrays nicht
19 | 4: shellcode, addresse des shellcodes (im angegriffenen prozess), location des SIP
20 | 5: Mittels memory corruption wird SIP überschrieben, und dann hochgeladener assembler code (shellcode) angesprungen
21 | 6: Damit die Funktion weiss, wo es nach dem Ende der Funktion weitergeht.
22 | 8: prinzipiell alle, die daten des angreifers entgegennehmen, und in in C/C++ geschrieben sind.
23 | 9: In sich abgeschlossener, ausführbarer assembler code der für angriffe gegen andere programme eingesetzt wird. Startet oft eine shell (bash).
24 |
25 |
26 | NICHT (umbedingt) prüfungsrelevant, Beispiele:
27 | - In welchem register steht die addresse des strings beim write systemcall?
28 | - Mit welchem GDB befehl findet man die adresse eines buffers heraus?
29 | - welche optionen hat GDB?
30 | - kannst du den folgenden assembler code so ummodeln, dass es keine 0 bytes mehr gibt?
31 | - nenne mir 5 unterschiede zwischen x32 und x64
32 | - erklär mir step-by-step wie das aufrufen einer funktion unter x64 funktioniert (speziell der funktionsprolog und epilog, mit EBP, SFP etc.)
33 | - Erklär mir was ein Computer für komponenten hat
34 | - Erklär mir, wie die CPU funktioniert
35 | - Was gibt es für register? Wofür werden sie gebraucht?
36 | - Für was sind die sections bei ELF da?
37 |
38 |
--------------------------------------------------------------------------------
/bfh2021/test-questions/bfh-fragen-2.txt:
--------------------------------------------------------------------------------
1 | Exploit Mitigation Related
2 |
3 | Questions:
4 | 1: Was sind die Unterschiede zwischen einem local- und remote Exploit?
5 | 2: Wie verhalten sich Netzwerk Server im falle eines crashes? Hat das einen Einfluss auf das Exploiting?
6 |
7 | 3: Was sind die Drei wichtigsten Anti-Exploit Mechanismen?
8 | 4: Wie funktioniert ASLR?
9 | 5: Wie funktioniert DEP?
10 | 6: Wie funktioniert Stack Canary?
11 | 7: Wie kann man ASLR umgehen?
12 | 8: Wie kann man DEP umgehen?
13 | 9: Wie kann man Stack canary umgehen?
14 |
15 | 10: welcher teil des exploits verhindert ASLR/DEP/stackcanary
16 |
17 |
18 | Answers:
19 |
20 | 1: Grundlegend gibt es keinen. Alle Exploit Techniken funktionieren identisch. Jedoch hat man bei lokalen Exploits mehr Informationen (das Binary und dessen Inhalt, die genaue Program Version, Auslastung des Systems usw.). Bei lokalen Angriffen hat man potentiell mehr Angriffsoberfläche (geladene Dateien, Environment Variablen, Parameter etc). Bei Remote Exploits werden speziell aufgebaute Packete an den Server geschickt, die die Verwundbare Funktion anspricht und ausnützt. Anders ist vorallem der Payload (braucht Connect-Back Shellcode etc.).
21 |
22 | 2: Server erstellen Kind Prozesse (fork()), die eine Kopie des Parents sind, für jeden Client. Dadurch sind auch Schutzmechanismen-Eigenschaften kopiert, speziell das geheime Stack-Cookie und der Offset zu Segmenten (bzw. das Memory Layout). Ein abgestürzter Kind Prozess hat kein Einfluss auf den Server. Dadurch ist es möglich, Brute-Force Angriffe durchzuführen (speziell auf das Stack Cookie, und die ASLR Entropie).
23 |
24 | 3: ASLR, DEP, Stack Canary
25 |
26 | 4: Randomisiert das Memory Layout, so dass der Angreifer wichtige Informationen/Offsets fehlen (Addresse des Shellcodes, Addressen von Funktionen etc.)
27 | 5: Markiert alle schreibbaren Bereiche als nicht ausführbar, sodass der vom Angreifer hochgeladenen Code (Shellcode) nicht ausgeführt werden kann
28 | 6: Bevor beim beenden einer Funktion der stored Instruction Pointer vom Stack geholt wird, um den Instruction Flow bei der Parent Funktion weiterzuführen, wird ein zuerst die Integrität einer Memory Stelle VOR dem SIP kontrolliert
29 |
30 | 7-9: Siehe Grafik "Exploit Mitigations" in den Folien. Hier ein paar Beispiele
31 | 7:
32 | - Exploit so designen, sodass keine Abhängigkeit auf ASLR'te Bereiche existieren (ausnützen nicht-ASLR Bereiche)
33 | - Information disclosure, um das Memory Layout zu rekonstruieren
34 | 8:
35 | - Kein Code hochladen, sondern schon Vorhandene Funktionen anspringen (Ret2plt)
36 | - Teile von existierenden Code missbrauchen (ROP)
37 | 9:
38 | - Brute Force
39 | - Information Disclosure
40 | - Ein anderer Bug anstatt einem simplen Stack Based Buffer Overflow finden
41 |
42 | 10: -
43 |
--------------------------------------------------------------------------------
/bfh2021/test-questions/bfh-fragen-3.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2021/test-questions/bfh-fragen-3.txt
--------------------------------------------------------------------------------
/bfh2021/test-questions/bfh-fragen-4.txt:
--------------------------------------------------------------------------------
1 | ROP Related
2 |
3 | Questions:
4 | 1) Was ist ROP?
5 | 2) Wie findet man ROP gadgets?
6 | 3) Wie funktionieren ROP?
7 | 4) Was braucht man für ROP?
8 | 5) Wie verhindert man ROP?
9 | 6) Wie ist ein ROP basiert exploit generell aufgebaut?
10 |
11 | Answers:
12 | 1) Return oriented programming; das aneinanderfügen von vorhandenen code bestandteilen, die mit einem RET enden
13 | 2) Suche nach dem RET byte im code segment, dann rückwärts disassemblieren bis/solange gültige (und nützliche) code sequencen auftauchen
14 | 3) Die überschriebene (rücksprung) Addresse zeigt auf das erste rop gadget. Jedes gadget konsumiert argumente vom stack via pop. Erreicht man ein RET auf dem gadget, wird via dem stack die addresse des nächsten gadgets konsumiert.
15 | 4) gadgets, bzw. deren addressen. Dafür muss im angreifbaren prozess das code segment nicht ASLR't sein (kein PIE), oder bei windows eine nicht ASLR'te library existieren. Alternativ kann ein Informatino disclosure durchgeführt werden, um diese addressen zu bekommen.
16 | 5) Es dürfen keine statischen segmente mehr existieren. Bei Linux kompiliert man das Program mit PIE (libraries werden automatisch randomisiert eingebunden). Bei Windows dürfen keine nicht-ASLR'ten DLLs geladen werden.
17 | 6) Als erstes wird die ROPchain ausgeführt. Diese enthält funktionalität, um dann einfach weiteren code auszuführen, ist also eine Art Stager. Zum Beispiel ist es möglich den Stack ausführbar zu machen, oder LIBC funktionen wie system() zu eruieren.
18 |
19 |
--------------------------------------------------------------------------------
/bfh2021/test-questions/bfh-fragen-5.txt:
--------------------------------------------------------------------------------
1 | Heap Overflows Related
2 |
3 | Questions:
4 | 1) Für was ist der Heap?
5 | 2) Wie funktioniert der heap?
6 | 3) Was ist ein chunk?
7 | 4) Kann man Heap buffer overflows machen?
8 | 5) Was ist ein use-after-free angriff?
9 | 6) Wie wird eine UAF Schwachstelle oft ausgenutzt?
10 |
11 |
12 | Answers:
13 | 1) malloc() allokationen / dynamische, globale datenstrukturen
14 | 2) malloc() alloziiert ein paar memory pages. Jede page wird in gleich grosse stücke (chunks) unterteilt. beim aufruf von malloc() wird ein freier chunk zurückgegeben
15 | 3) Ein heap element, dass ein für den user schreibbaren bereich enthält, plus heap metainformationen
16 | 4) Ja. Wie beim stack existieren meta/control informationen für den heap, auf dem heap. Durch geschickte manipulation der heap metadaten und allokation/deallokation von chunks kann es möglich sein, beliebige daten an beliebige stellen im speicher zu schreiben
17 | 5) Ein memory bereich wird gleichzeitig durch zwei unterschiedliche stellen im code benutzt (zwei pointer auf den gleichen speicher bereich). Dadurch lassen sich objekte in diesem speicher (beliebig) manipulieren.
18 | 6) Ein Speicherbereich wird versehentlich freigeben. Danach wird ein neues Objekt generiert, dass diesen freigegebenen Speicher gespeichert wird. Durch das manipulieren des ursprünglichen Pointers können diese vtable Eintrage, was einfach Pointer zu Funktionen sind, verändert werden. Z.B. ist es möglich, sie auf ein ROP Gadget zu zeigen, welches dann ein stack-flip durchführt.
19 |
--------------------------------------------------------------------------------
/bfh2021/test-questions/bfh-fragen-6.txt:
--------------------------------------------------------------------------------
1 | Windows Related
2 |
3 | Questions:
4 | 1) Funktionieren exploits unter windows grundlegend anders?
5 | 2) Gibt es unterschiede zwischen windows und linux bzgl. exploiting?
6 | 3) Gibt es Unterschiede zwischen windows und linux bzgl. exploit mitigations?
7 |
8 | Answers:
9 | 1) Nein.
10 | 2) Windows besitzt structured exception handler auf dem stack, die man für lange Zeit für exploits missbrauchen konnte.
11 | 3) Windows hat im Laufe der Zeit alle Exploit Mitigation Techniken bekommen, die Linux derzeit hat. Zusätzlich wird CFI konsequenter eingesetzt.
--------------------------------------------------------------------------------
/bfh2021/test-questions/bfh-fragen-7.txt:
--------------------------------------------------------------------------------
1 | Weitergehende Fragen
2 |
3 | 1) Gibt es Möglichkeiten, Memory Corruption's komplett zu eliminieren?
4 | 2) Sind die derzeit vorhandenen Anti-Exploit Mechanismen adäquat?
5 | 3) Hast du Ideen für die Verbesserung von Anti-Exploit Mechanismen?
6 | 4) Wie steht es um Technologien wie Virtuelle Maschinen, Container und Sandboxing im Vergleich zu Anti-Exploit Mechanismen. Vor- und Nachteile?
7 | 5) Warum ist ein Browser besondern gefärdet / anfällig für Memory Corruption Angriffe?
8 |
9 |
10 |
--------------------------------------------------------------------------------
/bfh2022/content.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | BFH 2022
5 |
6 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/bfh2022/day1/0x01_Intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day1/0x01_Intro.pdf
--------------------------------------------------------------------------------
/bfh2022/day1/0x02_Intro-Technical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day1/0x02_Intro-Technical.pdf
--------------------------------------------------------------------------------
/bfh2022/day1/0x10_IntelArchitecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day1/0x10_IntelArchitecture.pdf
--------------------------------------------------------------------------------
/bfh2022/day1/0x11_MemoryLayout.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day1/0x11_MemoryLayout.pdf
--------------------------------------------------------------------------------
/bfh2022/day1/day1_summary.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day1/day1_summary.pdf
--------------------------------------------------------------------------------
/bfh2022/day2/0x30_AssemblerIntro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day2/0x30_AssemblerIntro.pdf
--------------------------------------------------------------------------------
/bfh2022/day2/0x31_Shellcode.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day2/0x31_Shellcode.pdf
--------------------------------------------------------------------------------
/bfh2022/day2/0x32_FunctionCallConvention.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day2/0x32_FunctionCallConvention.pdf
--------------------------------------------------------------------------------
/bfh2022/day2/0x33_Debugging.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day2/0x33_Debugging.pdf
--------------------------------------------------------------------------------
/bfh2022/day3/0x40_CArrays.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day3/0x40_CArrays.pdf
--------------------------------------------------------------------------------
/bfh2022/day3/0x41_BufferOverflow.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day3/0x41_BufferOverflow.pdf
--------------------------------------------------------------------------------
/bfh2022/day3/0x42_Exploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day3/0x42_Exploit.pdf
--------------------------------------------------------------------------------
/bfh2022/day3/0x44_RemoteExploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day3/0x44_RemoteExploit.pdf
--------------------------------------------------------------------------------
/bfh2022/day4/0x51_ExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day4/0x51_ExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2022/day4/0x70_SecureCoding.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day4/0x70_SecureCoding.pdf
--------------------------------------------------------------------------------
/bfh2022/day4/overviewslides.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day4/overviewslides.pdf
--------------------------------------------------------------------------------
/bfh2022/day5/0x52_DefeatExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day5/0x52_DefeatExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2022/day5/0x53_ExploitMitigations_PIE.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day5/0x53_ExploitMitigations_PIE.pdf
--------------------------------------------------------------------------------
/bfh2022/day6/0x54_DefeatExploitMitigations_ROP.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day6/0x54_DefeatExploitMitigations_ROP.pdf
--------------------------------------------------------------------------------
/bfh2022/day6/0x54_DefeatExploitMitigations_ROP_practical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day6/0x54_DefeatExploitMitigations_ROP_practical.pdf
--------------------------------------------------------------------------------
/bfh2022/day6/0x60_WindowsExploiting.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day6/0x60_WindowsExploiting.pdf
--------------------------------------------------------------------------------
/bfh2022/day6/0xA5_BrowserSecurity.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day6/0xA5_BrowserSecurity.pdf
--------------------------------------------------------------------------------
/bfh2022/day7/0x71_Fuzzing.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day7/0x71_Fuzzing.pdf
--------------------------------------------------------------------------------
/bfh2022/day7/0x75_CFI.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day7/0x75_CFI.pdf
--------------------------------------------------------------------------------
/bfh2022/day7/0x76_Vulnerabilities_2022.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day7/0x76_Vulnerabilities_2022.pdf
--------------------------------------------------------------------------------
/bfh2022/day7/0xA3_AnonSecHack.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day7/0xA3_AnonSecHack.pdf
--------------------------------------------------------------------------------
/bfh2022/day7/0xA5_BrowserSecurity.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2022/day7/0xA5_BrowserSecurity.pdf
--------------------------------------------------------------------------------
/bfh2023/content.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | BFH 2023
5 |
6 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/bfh2023/day1/0x01_Intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day1/0x01_Intro.pdf
--------------------------------------------------------------------------------
/bfh2023/day1/0x02_Intro-Technical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day1/0x02_Intro-Technical.pdf
--------------------------------------------------------------------------------
/bfh2023/day1/0x10_IntelArchitecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day1/0x10_IntelArchitecture.pdf
--------------------------------------------------------------------------------
/bfh2023/day1/0x11_MemoryLayout.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day1/0x11_MemoryLayout.pdf
--------------------------------------------------------------------------------
/bfh2023/day2/0x30_AssemblerIntro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day2/0x30_AssemblerIntro.pdf
--------------------------------------------------------------------------------
/bfh2023/day2/0x31_Shellcode.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day2/0x31_Shellcode.pdf
--------------------------------------------------------------------------------
/bfh2023/day2/0x32_FunctionCallConvention.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day2/0x32_FunctionCallConvention.pdf
--------------------------------------------------------------------------------
/bfh2023/day2/0x33_Debugging.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day2/0x33_Debugging.pdf
--------------------------------------------------------------------------------
/bfh2023/day3/0x40_CArrays.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day3/0x40_CArrays.pdf
--------------------------------------------------------------------------------
/bfh2023/day3/0x41_BufferOverflow.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day3/0x41_BufferOverflow.pdf
--------------------------------------------------------------------------------
/bfh2023/day3/0x42_Exploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day3/0x42_Exploit.pdf
--------------------------------------------------------------------------------
/bfh2023/day3/0x44_RemoteExploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day3/0x44_RemoteExploit.pdf
--------------------------------------------------------------------------------
/bfh2023/day4/0x51_ExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day4/0x51_ExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2023/day4/0x70_SecureCoding.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day4/0x70_SecureCoding.pdf
--------------------------------------------------------------------------------
/bfh2023/day5/0x52_DefeatExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day5/0x52_DefeatExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2023/day5/0x53_ExploitMitigations_PIE.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day5/0x53_ExploitMitigations_PIE.pdf
--------------------------------------------------------------------------------
/bfh2023/day5/0x74_HardwareHacking.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day5/0x74_HardwareHacking.pdf
--------------------------------------------------------------------------------
/bfh2023/day6/0x54_DefeatExploitMitigations_ROP.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day6/0x54_DefeatExploitMitigations_ROP.pdf
--------------------------------------------------------------------------------
/bfh2023/day6/0x54_DefeatExploitMitigations_ROP_practical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day6/0x54_DefeatExploitMitigations_ROP_practical.pdf
--------------------------------------------------------------------------------
/bfh2023/day6/0x60_WindowsExploiting.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day6/0x60_WindowsExploiting.pdf
--------------------------------------------------------------------------------
/bfh2023/day6/0xA5_BrowserSecurity.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day6/0xA5_BrowserSecurity.pdf
--------------------------------------------------------------------------------
/bfh2023/day7/0x57_DefeatExploitMitigations_heap_short.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day7/0x57_DefeatExploitMitigations_heap_short.pdf
--------------------------------------------------------------------------------
/bfh2023/day7/0x71_Fuzzing.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day7/0x71_Fuzzing.pdf
--------------------------------------------------------------------------------
/bfh2023/day7/0x75_CFI.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day7/0x75_CFI.pdf
--------------------------------------------------------------------------------
/bfh2023/day7/0x76_Vulnerabilities_2022.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day7/0x76_Vulnerabilities_2022.pdf
--------------------------------------------------------------------------------
/bfh2023/day7/0xA3_AnonSecHack.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2023/day7/0xA3_AnonSecHack.pdf
--------------------------------------------------------------------------------
/bfh2024/content.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | BFH 2024
5 |
6 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/bfh2024/day1/0x01_Intro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day1/0x01_Intro.pdf
--------------------------------------------------------------------------------
/bfh2024/day1/0x02_Intro-Technical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day1/0x02_Intro-Technical.pdf
--------------------------------------------------------------------------------
/bfh2024/day1/0x10_IntelArchitecture.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day1/0x10_IntelArchitecture.pdf
--------------------------------------------------------------------------------
/bfh2024/day1/0x11_MemoryLayout.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day1/0x11_MemoryLayout.pdf
--------------------------------------------------------------------------------
/bfh2024/day2/0x30_AssemblerIntro.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day2/0x30_AssemblerIntro.pdf
--------------------------------------------------------------------------------
/bfh2024/day2/0x31_Shellcode.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day2/0x31_Shellcode.pdf
--------------------------------------------------------------------------------
/bfh2024/day2/0x32_FunctionCallConvention.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day2/0x32_FunctionCallConvention.pdf
--------------------------------------------------------------------------------
/bfh2024/day2/0x33_Debugging.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day2/0x33_Debugging.pdf
--------------------------------------------------------------------------------
/bfh2024/day3/0x40_CArrays.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day3/0x40_CArrays.pdf
--------------------------------------------------------------------------------
/bfh2024/day3/0x41_BufferOverflow.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day3/0x41_BufferOverflow.pdf
--------------------------------------------------------------------------------
/bfh2024/day3/0x42_Exploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day3/0x42_Exploit.pdf
--------------------------------------------------------------------------------
/bfh2024/day4/0x44_RemoteExploit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day4/0x44_RemoteExploit.pdf
--------------------------------------------------------------------------------
/bfh2024/day4/0x51_ExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day4/0x51_ExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2024/day4/0x70_SecureCoding.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day4/0x70_SecureCoding.pdf
--------------------------------------------------------------------------------
/bfh2024/day5/0x52_DefeatExploitMitigations.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day5/0x52_DefeatExploitMitigations.pdf
--------------------------------------------------------------------------------
/bfh2024/day5/0x53_ExploitMitigations_PIE.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day5/0x53_ExploitMitigations_PIE.pdf
--------------------------------------------------------------------------------
/bfh2024/day5/0x74_HardwareHacking.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day5/0x74_HardwareHacking.pdf
--------------------------------------------------------------------------------
/bfh2024/day6/0x54_DefeatExploitMitigations_ROP.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day6/0x54_DefeatExploitMitigations_ROP.pdf
--------------------------------------------------------------------------------
/bfh2024/day6/0x54_DefeatExploitMitigations_ROP_practical.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day6/0x54_DefeatExploitMitigations_ROP_practical.pdf
--------------------------------------------------------------------------------
/bfh2024/day6/0x60_WindowsExploiting.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day6/0x60_WindowsExploiting.pdf
--------------------------------------------------------------------------------
/bfh2024/day6/0xA5_BrowserSecurity.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day6/0xA5_BrowserSecurity.pdf
--------------------------------------------------------------------------------
/bfh2024/day6/ret2plt.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day6/ret2plt.pdf
--------------------------------------------------------------------------------
/bfh2024/day7/0x57_DefeatExploitMitigations_heap_short.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day7/0x57_DefeatExploitMitigations_heap_short.pdf
--------------------------------------------------------------------------------
/bfh2024/day7/0x71_Fuzzing.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day7/0x71_Fuzzing.pdf
--------------------------------------------------------------------------------
/bfh2024/day7/0x75_CFI.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day7/0x75_CFI.pdf
--------------------------------------------------------------------------------
/bfh2024/day7/0x76_Vulnerabilities_2022.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day7/0x76_Vulnerabilities_2022.pdf
--------------------------------------------------------------------------------
/bfh2024/day7/0xA3_AnonSecHack.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dobin/yookiterm-slides/73eb24c26977bd8763199203d5f1b07b3aa2def0/bfh2024/day7/0xA3_AnonSecHack.pdf
--------------------------------------------------------------------------------
/resources.md:
--------------------------------------------------------------------------------
1 | # Resources
2 |
3 | A collection of links related to exploit.courses / BFH course. Mostly Linux related. I may reference them in the course.
4 |
5 | Good ones have been tagged by *Recommended*.
6 |
7 |
8 | # Complete Exploitation Courses
9 |
10 | [Open Security Trainings](http://opensecuritytraining.info/Training.html)
11 | * http://opensecuritytraining.info/IntermediateX86.html
12 | * http://opensecuritytraining.info/IntroX86.html
13 | * http://opensecuritytraining.info/IntroX86-64.html
14 | * http://opensecuritytraining.info/Exploits1.html
15 | * http://opensecuritytraining.info/Exploits2.html
16 |
17 | [Avatao](https://platform.avatao.com/discover/paths)
18 | * Similar to exploit.courses (interactive shell), just more advanced
19 | * Need to pay
20 | * GDB Intro, Reversing Intro, Exploiting Intro
21 |
22 |
23 | [Binary Exploitation](https://github.com/r0hi7/BinExp)
24 | * 6 Lectures
25 | * Intro to stack exploit, shellcode, ASLR, ret2libc, formatstring
26 |
27 |
28 | # Fundamentals
29 |
30 | [GOT and PLT for pwning ](https://systemoverlord.com/2017/03/19/got-and-plt-for-pwning.html)
31 | * Article
32 | * 2017
33 | * GOT, PLT, RELRO description, exploiting related
34 | * Recommended
35 |
36 |
37 | [What are the GOT and PLT? — Part 1](http://jjc.re/2017/12/what-are-the-got-and-plt-pt1)
38 | * 2017
39 | * Good writeup
40 |
41 |
42 | ELF Intro
43 | * [Executable and Linkable Format 101 - Part 1 Sections and Segments
44 | ](http://www.intezer.com/executable-linkable-format-101-part1-sections-segments/)
45 | * [Executable and Linkable Format 101. Part 2: Symbols
46 | ](https://www.intezer.com/executable-linkable-format-101-part-2-symbols/)
47 | * [Executable and Linkable Format 101 Part 3: Relocations
48 | ](https://www.intezer.com/executable-and-linkable-format-101-part-3-relocations/)
49 |
50 | [Introduction to the ELF Format : The ELF Header (Part I)
51 | ](https://blog.k3170makan.com/2018/09/introduction-to-elf-format-elf-header.html)
52 | * ATM Newst part, number 6: [Introduction to the ELF Format (Part VI) : The Symbol Table and Relocations (Part 1)
53 | ](https://blog.k3170makan.com/2018/10/introduction-to-elf-format-part-vi.html)
54 |
55 |
56 | [Exploiting Cheat sheet](https://pbs.twimg.com/media/DaCPl0QW0AAsL1E.jpg:large)
57 | * Picture
58 | * Cheatsheet
59 |
60 | [file descriptors](https://pbs.twimg.com/media/DaEj6zWVwAEl9eH.jpg)
61 | * Picture
62 | * File Descriptors in Linux
63 |
64 | [JULIA'S DRAWINGS](https://drawings.jvns.ca/)
65 | * Simple drawings about linux fundamentals
66 | * Recommended
67 |
68 | [Linux Internals - The Art Of Symbol Resolution](https://0x00sec.org/t/linux-internals-the-art-of-symbol-resolution/1488)
69 | * adjectant to exploiting, interesting nevertheless
70 | * Dynamic linking, got/plt related
71 |
72 |
73 |
74 | # Linux Exploitation
75 |
76 | [Bypass ASLR+NX Part 1](http://intx0x80.blogspot.ch/2018/04/bypass-aslrnx-part-1.html)
77 | * 2018
78 | * Doing local exploit with ASLR+DEP, via `strcpy()` the string `sh` to .bss with ROP, then `system()` it
79 | * Recommended
80 |
81 | [return-to-csu: A New Method to Bypass 64-bit Linux ASLR](https://www.blackhat.com/docs/asia-18/asia-18-Marco-return-to-csu-a-new-method-to-bypass-the-64-bit-Linux-ASLR-wp.pdf)
82 | * 2018
83 | * Doing ROP in .text with CSU section (Does not really bypass ASLR)
84 |
85 | [New bypass and protection techniques for ASLR on Linux](http://blog.ptsecurity.com/2018/02/new-bypass-and-protection-techniques.html)
86 | * 2018
87 | * About how ASLR in current Linux Kernels works, in details
88 | * Shows some tiny ASLR weaknesses
89 | * Code: https://github.com/blackzert/aslur
90 |
91 | [ROPping to Victory](https://jmpesp.me/rop-emporium-ret2win-with-radare-and-pwntools/)
92 | * 2018
93 | * ROP guide with radare
94 | * Very simple buffer overflow, which calls a predefined function
95 |
96 | [Binary Exploitation ELI5– Part 1
97 | ](https://medium.com/@danielabloom/binary-exploitation-eli5-part-1-9bc23855a3d8)
98 | * Some intro to computers, memory model
99 | * 2018
100 | * Simple intro
101 |
102 |
103 | [STACK BASED BUFFER OVERFLOW ON 64 BIT LINUX
104 | ](https://www.ret2rop.com/2018/08/stack-based-buffer-overflow-x64.html)
105 | * Some Binary and Ascii intro
106 | * Setuid, ASLR
107 | * Write a BOF exploit for 64 bit linux
108 |
109 |
110 | # Heap Exploitation
111 |
112 | [Exim Off-by-one RCE: Exploiting CVE-2018-6789 with Fully Mitigations Bypassing](https://devco.re/blog/2018/03/06/exim-off-by-one-RCE-exploiting-CVE-2018-6789-en/)
113 | * Writeup about Exim Remote Exploit
114 | * Lots of heap massage
115 | * No shellcode used
116 | * 2018
117 | * Recommended
118 | * Exploit Writeup: [My PoC walk through for CVE-2018–6789
119 | ](https://medium.com/@straightblast426/my-poc-walk-through-for-cve-2018-6789-2e402e4ff588)
120 |
121 | [From Heap to RIP](http://blog.frizn.fr/glibc/glibc-heap-to-rip)
122 | * 2018
123 | * attacking ptmalloc2 heap data structures
124 |
125 | [GlibC Malloc for Exploiters](https://github.com/yannayl/glibc_malloc_for_exploiters)
126 | * Slides
127 | * Recommended
128 | * 2018
129 | * Heap introduction, exploiting view
130 |
131 | x86 exploitation - heap overflows
132 | * 2015
133 | * Inter-chunk overflows and similar
134 | * [House Of Spirit](https://gbmaster.wordpress.com/2015/07/21/x86-exploitation-101-house-of-spirit-friendly-stack-overflow/)
135 | * [House Of Lore](https://gbmaster.wordpress.com/2015/07/16/x86-exploitation-101-house-of-lore-people-and-traditions/)
136 | * [House Of Force](https://gbmaster.wordpress.com/2015/06/28/x86-exploitation-101-house-of-force-jedi-overflow/)
137 | * [House Of Mind](https://gbmaster.wordpress.com/2015/06/15/x86-exploitation-101-house-of-mind-undead-and-loving-it/)
138 |
139 | [Heap Viewer](https://github.com/danigargu/heap-viewer)
140 | * Tool for IDA
141 | * ptmalloc2 heap viewer
142 |
143 | [Automatic Heap Layout Manipulation for Exploitation](https://arxiv.org/pdf/1804.08470.pdf)
144 | * Paper
145 | * 2018
146 | * "SHRIKE discovers fragments of PHP code that interact with the interpreter’s heap in useful ways, such as making allocations and deallocations of particular sizes, or allocating objects containing sensitive data, such as pointers."
147 |
148 |
149 | # Linux Kernel Exploitation
150 |
151 | [Linux-Kernel-Exploit Stack Smashing](http://tacxingxing.com/2018/02/15/linux-kernel-exploit-stack-smashing/)
152 | * 2018-02-15
153 | * "Principle of kernel stack overflow and the user mode stack overflow are the same, we can use it to hijack control flow and privilge Escalation in Ring 0."
154 | * Writeup
155 |
156 |
157 | [MMap Vulnerabilities – Linux Kernel](https://research.checkpoint.com/mmap-vulnerabilities-linux-kernel/)
158 | * 2018
159 | * MMAP errors in drivers
160 |
161 |
162 | # Linux Defense
163 |
164 | [Linux Kernel Defence Map](https://github.com/a13xp0p0v/linux-kernel-defence-map/blob/master/README.md)
165 | * Overview of Linux Kernel defensive mechanisms
166 |
167 |
168 | # Fuzzing
169 |
170 | [The Art Of Fuzzing](https://www.sec-consult.com/en/blog/2017/11/the-art-of-fuzzing-slides-and-demos/index.html)
171 | * 2018, René Freingruber
172 | * Complete, long introduction in fuzzing (slides, demos)
173 | * A lot of Windows fuzzing (WinAFL)
174 | * Recommended
175 |
176 | [fuzzing.io](https://fuzzing.io)
177 | * Material of Richard Johnson, Talos Security, Cisco
178 | * Videos, Presentations, Tools
179 | * State of the art & academic fuzzing material
180 | * Recommended
181 |
182 | [IEEE Hacking Without Humans](http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=8013)
183 | * Papers related to DARPA CGC
184 | * 2018
185 |
186 | [Google Fuzzer Test Suite](https://github.com/google/fuzzer-test-suite)
187 | * Different vulnerable programs with known bugs
188 | * Github repo
189 |
190 | [Go Speed Trace](http://fuzzing.io/Presentations/Go%20Speed%20Tracer%20v2%20-%20rjohnson.pdf)
191 | * Slides, Cisco Talos, Richard Johnson
192 | * About guided fuzzing / tracing / binary translation / hardware tracing
193 | * More about closed source application tracing
194 |
195 | [Fuzzing arbitrary functions in ELF binaries](https://blahcat.github.io/2018/03/11/fuzzing-arbitrary-functions-in-elf-binaries/)
196 | * 2018
197 | * Fuzz dedicated functions of a binary with libfuzzer
198 |
199 |
200 | # VM Exploitation
201 |
202 | [Unboxing your virtualBox - Niklas Baumstark](https://www.youtube.com/watch?v=fFaWE3jt7qU)
203 | * Virtualbox Exploitation
204 | * Video
205 | * 2018
206 |
207 | [A bunch of Red Pills: VMware Escapes](https://keenlab.tencent.com/en/2018/04/23/A-bunch-of-Red-Pills-VMware-Escapes/)
208 | * List of several VMWare exploits (guest to host)
209 | * 2018
210 | * Good overview
211 |
212 |
213 | # Browser Exploitation
214 |
215 | [Building a 1-day Exploit for Google Chrome](https://github.com/theori-io/zer0con2018_bpak)
216 | * Presentation, Code
217 | * 2018.03
218 | * JavaScript, Heap
219 |
220 | [How to kill a (Fire)fox](http://blogs.360.cn/blog/how-to-kill-a-firefox-en/)
221 | * 2018, pwn2own bug
222 | * Heap exploit
223 |
224 | [CVE-2017-0236 analysis](http://math1as.com/2018/04/10/CVE-2017-0236-analysis/)
225 | * UAF in Edge analysis, windbg
226 | * 2018
227 |
228 | [Attacking JavaScript Engines](http://phrack.org/papers/attacking_javascript_engines.html)
229 | * 2016
230 | * A case study of JavaScriptCore and CVE-2016-4622
231 |
232 | [Root cause analysis of the latest Internet Explorer zero day – CVE-2018-8174](https://securelist.com/root-cause-analysis-of-cve-2018-8174/85486/)
233 | * 2018
234 | * UAF
235 | * Short writeup
236 |
237 |
238 | # CTF
239 |
240 | [Pwntools Quick Reference Guide](http://blog.eadom.net/uncategorized/pwntools-quick-reference-guide/)
241 | * Short overview of useful pwntools features
242 | * 2016
243 |
244 | [CTF Field Guide](https://trailofbits.github.io/ctf/)
245 | * "In these chapters, you’ll find everything you need to win your next CTF competition"
246 |
247 |
248 | # Embedded Systems Exploiting
249 |
250 | [Exploitation: ARM & Xtensa compared](https://nullcon.net/website/archives/pdf/goa-2018/carel-nullcon-arm-vs-xtensa-exploitation-(final).pdf)
251 | * 2018
252 | * "Stacks, overflows, gadgets, asm, and things"
253 | * Presentation
254 |
255 | [Exploitation on ARM-based Systems](https://github.com/sashs/arm_exploitation)
256 | * 2018
257 | * Complete ARM exploitation intro
258 |
259 | [Exploitation of a Vanilla Buffer Overflow in the o2 HomeBox 6441 Router - A Step by Step Abuse Guide](https://nsideattacklogic-tech.blogspot.com/2019/03/exploitation-of-vanilla-buffer-overflow.html)
260 | * Step by step
261 | * Simple expoloit, plus code
262 | * Not so much ARM related
263 |
264 |
265 | # Windows
266 |
267 | [BugID](https://github.com/SkyLined/BugId)
268 | * Tool
269 | * Check if a crash is exploitable
270 |
271 | [Windows 10 mitigations improvements](https://www.blackhat.com/docs/us-16/materials/us-16-Weston-Windows-10-Mitigation-Improvements.pdf)
272 | * Anti exploit mitigations in windows 10
273 | * Lots of statistics, data, techniques
274 | * 2016
275 | * Recommended
276 |
277 | [Breaking CFI: Exploiting CVE-2015-5122 using COOP.](https://perception-point.io/2018/04/11/breaking-cfi-cve-2015-5122-coop/)
278 | * New technique to bypass some CFI implementations
279 |
280 | [Exploiting CVE-2018-1038 - Total Meltdown](https://blog.xpnsec.com/total-meltdown-cve-2018-1038/)
281 | * Win7 Fail Meltdown Patch exploit
282 | * Writing an easy Kernel exploit
283 |
284 | [ANALYSIS OF A WIN32K NULL POINTER DEREFERENCE BY MATCHING THE MAY PATCH](https://xiaodaozhi.com/exploit/156.html)
285 | * 2018
286 |
287 | [A tale of two zero-days](https://www.welivesecurity.com/2018/05/15/tale-two-zero-days/)
288 | * Double zero-day vulnerabilities fused into one. A mysterious sample enables attackers to execute arbitrary code with the highest privileges on intended targets
289 |
290 | [Adobe, Me and a Double Free :: Analyzing the CVE-2018-4990 Zero-Day Exploit](https://srcincite.io/blog/2018/05/21/adobe-me-and-a-double-free.html)
291 | * 2018
292 | * Double Free
293 |
294 | [7-Zip: From Uninitialized Memory to Remote Code Execution](https://landave.io/2018/05/7-zip-from-uninitialized-memory-to-remote-code-execution/)
295 | * 2018
296 | * Bug analysis
297 |
298 | [Game hacking reinvented? – A cod exploit](https://momo5502.com/blog/?p=34)
299 | * 2017
300 | * Call of duty game exploit
301 | * Exploit: https://github.com/momo5502/cod-exploit
302 |
303 | [Reverse engineering the Path of Exile game protocol - Part 1: Obtaining the plaintext](http://tbinarii.blogspot.ch/2018/05/reverse-engineering-path-of-exile.html)
304 | * 2018
305 | * Only reversing, no exploiting
306 |
307 | [Analysis of CVE-2018-8174 VBScript 0day and APT actor related to Office targeted attack](http://blogs.360.cn/blog/cve-2018-8174-en/)
308 | * 2018
309 | * APT related, MS related
310 |
311 |
312 | # Shellcoding
313 |
314 | [How to write a (Linux x86) egg hunter shellcode](https://adriancitu.com/2015/10/05/how-to-write-an-egg-hunter-shellcode/)
315 | * 2018
316 | * Short article about egghunting (finding most of shellcode somewhere in memory)
317 | * Related: [Why do we need Egg Hunters ?](https://oxhat.blogspot.ch/2018/04/why-do-we-need-egg-hunters.html)
318 |
319 | [https://github.com/wetw0rk/Sickle](https://github.com/wetw0rk/Sickle)
320 | * Tool
321 | * "Sickle is a shellcode development tool created to speed up the various steps needed to create functioning shellcode."
322 |
323 | # Debugging
324 |
325 | [C++ links: debugging: articles, documentation, software, and talks](https://github.com/MattPD/cpplinks/blob/master/debugging.md)
326 | * List of resources
327 | * Many many links
328 |
329 |
330 | # Reverse Engineering
331 |
332 | [Reverse Engineering x64 for Beginners – Linux](http://niiconsulting.com/checkmate/2018/04/reverse-engineering-x64-for-beginners-linux/)
333 | * 2018
334 | * Intro into reversing with GDB
335 |
336 | [Reverse Engineering With Radare2 – Part 3](https://insinuator.net/2016/10/reverse-engineering-with-radare2-part-3/)
337 | * 2018
338 | * Using Radare to reverse
339 |
340 | [BOLO: Reverse Engineering — Part 1 (Basic Programming Concepts)](https://medium.com/bugbountywriteup/bolo-reverse-engineering-part-1-basic-programming-concepts-f88b233c63b7)
341 | * 2018
342 | * How basic functions look in assembly
343 |
344 |
345 |
--------------------------------------------------------------------------------