├── 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 | --------------------------------------------------------------------------------