ແນະນຳກ່ຽວກັບ OSED
OffSec Exploit Developer (OSED) ເປັນ certification ທີ່ອອກໂດຍ Offsec, ເປັນ 1 ໃນ 3 certification ຖ້າຫາກວ່າຢາກໄດ້ OSCE³ ທີ່ໃຫ້ມາໃນຄອສຮຽນ EXP-301: Windows User Mode Exploit Development.
ກ່ຽວກັບຜູ້ຂຽນ
ຜູ້ຂຽນແມ່ນໂດຍສ່ວນຕົວສົນໃຈໃນໝວດ exploit development ມາກ່ອນ ແລະ ໄດ້ເສັງ eCXD ມາຜ່ານແລ້ວ, ແຕ່ຍ້ອນຕ້ອງການພັດທະນາ skill ໃນດ້ານນີ້ເພີ່ມ, ສາເຫດແມ່ນທີ່ຜ່ານມາແມ່ນເນັ້ນໃນສະເພາະ exploit ຢູ່ເທິງລະບົບ Linux, ຖ້າຢູ່ເທິງລະບົບ Windows ແມ່ນເປັນທີ່ເລື່ອງທ້າທາຍຫຼາຍສຳຫຼັບຜູ້ຂຽນ ເພາະສ່ວນຕົວແມ່ນບໍ່ຄ່ອຍໄດ້ຂຽນ exploit ຢູ່ເທິງລະບົບ Windows ປະກອບກັບເວລາຫຼິ້ນ CTF ຫຼື ແມ່ນແຕ່ຮຽນເລື່ອງ Penetration testing ກໍຢູ່ເທິງ Linux ຢ່າງດຽວ, ສ່ວນຂອງ Windows ແມ່ນບໍ່ແໜ້ນເທົ່າທີ່ຄວນ.
ຍ້ອນແນວນັ້ນເລີຍສົນໃຈໃນໂຕ EXP-301, ບວກກັບທີ່ບໍລິສັດທີ່ຜູ້ຂຽນເຮັດວຽກຢູ່ ແມ່ນມີສະຫວັດດີການ ທີ່ອອກຄ່າໃຊ້ຈ່າຍໃນເລື່ອງຂອງການຮຽນ ເລີຍໄດ້ລົງຮຽນ course ນີ້.
ເລື່ອງຂອງ Course ແລະ Lab
ເນື່ອງຈາກຕົນເອງເຄີຍມີປະສົບການເລື່ອງ exploit dev ມາໃນລະດັບໜຶ່ງ, ຊ່ວງທຳອິດກໍຮຽນສະບາຍຊິວໆ ບາງຫົວຂໍ້ທີ່ເຄີຍຮຽນຜ່ານມາກໍຄືເປັນການຣີວິວຄືນ. ເມື່ອຮຽນໄປແລ້ວເລີ່ມເຂົ້າຫົວຂໍ້ທີ່ກ່ຽວຂ້ອງກັບລະບົບຂອງ Windows (SEH, WinAPI), ຕອນທຳອິດກໍຄິດວ່າຈະຍາກຫຼາຍ ແຕ່ເວລາຮຽນແລ້ວແມ່ນ ຖ້າແບ່ງເວລາ ແລະ ທຳຄວາມເຂົ້າໃຈດີໆ ກໍບໍ່ຍາກ ຕາມທີ່ຮຽນມາແມ່ນ course ອອກແບບມາເພື່ອຄົນທີ່ບໍ່ເຄີຍຮຽນສາຍ exploit development ສາມາດຮຽນໄດ້(ແຕ່ອາດຈະໃຊ້ເວລາຫຼາຍກວ່າຄົນທີ່ຮຽນມາກ່ອນ).
ໂດຍລວມແລ້ວບົດຮຽນໃນ course ເຂົ້າໃຈໄດ້ບໍ່ຍາກ; ຖ້າຕັ້ງອ່ານດີໆ, ທຳຄວາມເຂົ້າໃຈ, ແລະ ປະຕິບັດຕາມ lab. ແຕ່ຄວາມທ້າທາຍແມ່ນ extra mile ຫຼືກໍຄື ໂຈດທີ່ໃຫ້ມານອກເໜືອຈາກ ໂຕທີ່ມາເຮັດໃນບົດຮຽນ ເພື່ອໃຫ້ຜູ້ຮຽນໄດ້ເຝິກທັກສະເພີ່ມ, ບໍ່ໄດ້ມີການພາເຮັດຄື lab ໃນບົດຮຽນ, ບໍ່ມີສະເຫຼີຍ (ແຕ່ສາມາດຖາມໃນ Discord ຂອງ Offsec ໄດ້, ຈະມີຄົນຊີ້ແນະໃຫ້ຖ້າບໍໍ່ໄດ້ແທ້ໆ).
Extra Mile ບາງອັນບໍ່ຍາກຫຼາຍ, ບາງອັນຍາກຈົນຢາກໄຫ້. / P.S. ຄວາມເຫັນສ່ວນຕົວ, ສຳຫຼັບຄົນອື່ນອາດຈະງ່າຍ
ກ່ອນເສັງ
ຜູ້ຂຽນໃຊ້ເວລາຮຽນມາໄດ້ປະມານ 3 ເດືອນ (Extra mile ຍັງບໍ່ແລ້ວ), ຫຼັງຈາກນັ້ນກໍໃຊ້ເວລາທີ່ເຫຼືອໃນການກຽມຕົວ, ເຊັ່ນແກ້ extra mile ບາງອັນທີ່ຍັງບໍ່ແລ້ວ, challenge ທັງ 3, ໄປຫາອ່ານວ່າຄົນທີ່ໄດ້ OSED ເຂົາກຽມຕົວແນວໃດກໍລອງເຮັດຕາມນັ້ນເບິ່ງກ່ອນ. ຍ້ອນທີ່ຜ່ານມາຍັງບໍ່ເຄີຍເສັງຂອງຄ້າຍ Offsec ມາກ່ອນ, ເລີຍມີຄວາມກັງວົນໜ້ອຍໜຶ່ງ ໃຊ້ເວລາກຽມໄປເດືອນປາຍ ໃນການເຮັດ lab ຫາແນວໂຈດມາລອງ, ແຕ່ extra mile ອັນໜຶ່ງ ແມ່ນປະໄວ້ (ຍາກຫຼາຍ). ເຖິງແມ່ນວ່າຕົວເອງຈະຍັງບໍ່ໝັ້ນໃຈ, ແຕ່ສຸດທ້າຍກໍກັດແຂ້ວລົງມື້ເສັງໄປ ເພາະຕົນເອງໄດ້ສະໝັກໂຕທີ່ເສັງໄດ້ 2 ເທື່ອ.
Exam
ການສອບເສັງຈະເປັນແບບ proctored ຫຼືກໍຄື ມີຄົນເຝົ້າໃນຂະນະເສັງ (ຕ້ອງເປີດ Webcam) ໃຊ້ເວລາ 47h 45mn ໃນການເຮັດ lab, 24h ໃນການຂຽນ report, ມີໂຈດຫາມາ 3 ອັນ, ເກນຄະແນນເພື່ອຜ່ານແມ່ນ 60 ຫຼື ກໍຄືໄດ້ສອງຂໍ້ແມ່ນຜ່ານ ເຊິ່ງແມ່ນເປົ້າໝາຍຂອງຜູ້ຂຽນ ເພາະບໍ່ຄິດວ່າຈະໄດ້ 3ຂໍ້.
Day 1
ເວລາເສັງຂອງຜູ້ຂຽນແມ່ນ 7.00 ເຊົ້າ, ຟ້າວຕື່ນມາກຽມໂຕ, ໃນເວລາ 15ນາທີ ກ່ອນເສັງແມ່ນຈັດການ set up, ລາຍງານຄົນເຝົ້າ, ປະຕິບັດຕາມຂັ້ນຕອນທີ່ເຂົ້າບອກ. ຫຼັງຈາກໄດ້ໂຈດມາແລ້ວກໍອ່ານຄ້າວໆວ່າແຕ່ລະອັນເປັນແນວໃດ ເລີຍຕັດສິນໃຈ ແກ້ ຂໍ້1 ກ່ອນເພາະໜ້າຈະງ່າຍສຳຫຼັບເຮົາສຸດ.
ເຮັດໄປຮອດຕອນ 11.00 ຍັງບໍ່ໄດ້ຕາມເປົ້າ ເພາະຍັງຄ້າງກັບບາງຂັ້ນຕອນ, ເລີຍລອງປ່ຽນມາເຮັດ ຂໍ້2 ແຕ່ກໍບໍ່ໄດ້ຫຍັງຫຼາຍ. ຫຼັງຈາກກິນເຂົ້າສວາຍ ແລ້ວກັບມາເຮັດຕໍ່ ໄດ້ປະມານໜຶ່ງກໍເລີ່ມເຫັນແສງສະວ່າງ ເລີຍນັ່ງງົມແຕ່ຂໍ້1ນັ້ນ ຈົນຮອດຊ່ວງ 17.00–18.00 ຈິ່ງໄດ້ shell!!!. ຫຼັງຈາກນັ້ນກໍມາທຳຄວາມເຂົ້າໃຈກັບຄຳຖາມຂອງ ຂໍ້ 2.
ພັກກິນເຂົ້າ 19.00. ພໍກິນເຂົ້າແລງແຊບຂຶ້ນ, ຫຼັງຈາກນັ້ນກໍກັບມາເຮັດຕໍ່, ແຕ່ຕອນນັ້ນກັບມາລອງ run ໂຕ ຂໍ້1 ຄືນ ເພື່ອໃຫ້ຮູ້ສຶກດີ ແຕ່ເສືxກ exploit ໃຊ້ບໍ່ໄດ້, ຕອນນັ້ນແມ່ນງົງຫົວປວດກະບານ ຄິດວ່າເກັບ exploit ໄວ້ຜິດບ່ອນ ຫຼື ຊື່ບໍ່ຖືກບໍ? ຈົນລອງເຮັດຄືນເພາະຈື່ວິທີມາແລ້ວ ສຸດທ້າຍກໍແລ້ວ, ໃນເວລາ 24.00 ແລ້ວ ຫຼັງຈາກນັ້ນກໍໄປອາບນ້ຳນອນ (ແຕ່ຈົນມາຮອດຕອນນີ້ກໍຍັງບໍ່ເຂົ້າໃຈວ່າມັນເກີດໄດ້ແນວ ບັນຫາມາເກີດຍ້ອນ bad character ແຕ່ບາງເທື່ອກໍໃຊ້ໄດ້ ບາງເທື່ອກໍໃຊ້ບໍ່ໄດ້).
Day 2
ຕື່ນມາ 7.00, ທຳອິດແມ່ນກວດຂໍ້1 ກ່ອນ. ເຫັນວ່າເຮັດວຽກໄດ້ປົກກະຕິແລ້ວກໍກັບໄປ ຂໍ້2 ຕໍ່ ເພາະ ຂໍ້3 ແມ່ນໃຊ້ເວລາຫຼາຍກວ່າຈະໄດ້ step ໜຶ່ງ (ບໍ່ກ້າສ່ຽງເອົາເວລາໄປແກ້ຫຼາຍ).
ຫຼັງຈາກທຳຄວາມເຂົ້າໃຈໂຈດໃນລະດັບໜຶ່ງແລ້ວກໍເລີ່ມງ່າຍຂຶ້ນ; ນັ່ງເຮັດໄປເລື່ອຍໆ ຄ່ອຍໆໄດ້ເທື່ອລະ step. ພັກກິນເຂົ້າສວາຍ ຕອນ 12.00, ຫຼັງຈາກກິນແລ້ວກໍກັບມີເຮັດຕໍ່ ບັນຫາເກີດມາອີກແລ້ວ!!! ເລື່ອງເກີດຂຶ້ນຍ້ອນມີຂັ້ນຕອນໜຶ່ງ ລອງເທື່ອທຳອິດລະໄດ້, ເທື່ອທີສອງລະບໍ່ໄດ້ຕອນນັ້ນຄິດວ່າເປັນຍ້ອນອາດຈະເປັນຍ້ອນ Network ຫຼື firewall ບໍ? ເລີຍມືບອນໄປກວນ setting ຂອງ network ຈົນເຂົ້າ lab ບໍ່ໄດ້, ເຮັດຫຍັງບໍ່ໄດ້ຈົນຕ້ອງໄດ້ reset lab ໃໝ່, ສິ່ງທີເຮັດມາຫາຍໄປເກືອບໝົດ, ເລີຍຕ້ອງກັບມາເຮັດຄືນ (ໄດ້ບົດຮຽນລາຄາແພງຂອງການ backup) ພໍດີແລ້ວຕອນຈະກິນເຂົ້າແລງ.
ຫຼັງຈາກກິນເຂົ້າແລງ 19.00–20.00 ກໍກັບມາເກັບ screenshot ເພື່ອມາຂຽນ report ເພາະຕາມທີຄິດໄວ້ແມ່ນເວລາໃນການແກ້ ຂໍ້3 ແມ່ນບໍ່ພໍ. ພັກຊ່ວງ 21.30–23.00 ແລ້ວກັບມາເຮັດຄືນ
Day 3
ສືບຕໍ່ screenshot ຮອດ 2.40 ແລ້ວ end exam ແລ້ວໄປນອນ. ຈົບ exam ກ່ອນກຳໜົດ, ເຖິງຈະເຫຼືອເວລາ ຮອດ 7.00 ເຊົ້າຂອງມື້ນີ້.
ສ່ວນໝົດມື້ ແມ່ນມີແຕ່ຂຽນ report. ແຕ່ຜູ້ຂຽນຕ້ອງໄດ້ຟ້າວຂຽນ ເພື່ອໃຫ້ແລ້ວກ່ອນເພື່ອໄວ້ ເພາະໄດ້ຈົບ exam ກ່ອນກຳໜົດ ເພາະບໍ່ແນ່ໃຈວ່າ deadline ຂອງການສົ່ງ report ແມ່ນ 24h ຫຼັງຈາກ 47h 45mn ຫຼື ຫຼັງຈາກ exam ຈົບ.
ຄວາມຄິດເຫັນ
Course ຍາກບໍ່?
EXP-301 ເປັນ course ທີ່ຂ້ອນຂ້າງດີ ເຖິງແມ່ນວ່າຈະເປັນ 32-bit ກໍຕາມ ເພາະພື້ນຖານທີ່ຈຳເປັນແມ່ນແໜ້ນ ສິ່ງທີ່ຕ່າງກັບ 64-bit ແມ່ນສາມາດສຶກສາຕື່ມໄດ້ບໍ່ຍາກ. ສ່ວນຕົວແມ່ນຄິດວ່າ course ມັນອອກແບບໃຫ້ຄົນທີ່ບໍ່ເຄີຍຮຽນ exploit ກໍຮຽນໄດ້.
ແຕ່ປັດໄຈຂອງການຮຽນຢູ່ເລື່ອງເວລາ. Course ຕອນສະໝັກມີແບບ 90ມື້, 365ມື້. ຖ້າຄົນທີ່ບໍ່ເຄີຍໄດ້ແຕະເລື່ອງ exploit dev ມາກ່ອນແລ້ວສະໝັກໂຕ 90ມື້ ແມ່ນຕ້ອງໄດ້ແບ່ງເວລາຮຽນດີໆເພາະຖ້າບໍ່, lab ອາດຈະບໍ່ທັນ. ແຕ່ຖ້າໄດ້ຮຽນຈັບເລື່ອງ exploit dev ມາກ່ອນແລ້ວແມ່ນຈະສະບາຍກວ່າ.
ເສັງຍາກບໍ່?
ເລື່ອງການເສັງແມ່ນໂດຍສ່ວນຕົວ ຖ້າເວົ້າເລື່ອງຜ່ານ (60 point) ແມ່ນບໍ່ໄດ້ຍາກ. ແຕ່ຖ້າຕ້ອງຜ່ານທັງ 3 ຂໍ້ແມ່ນເປັນເລື່ອງທີ່ທ້າທາຍບໍ່ໜ້ອຍ.
ຄຳແນະນຳເວລາເສັງ
ແຕ່ລະຄົນອາດຈະມີ technique ໃນການເສັງບໍ່ຄືກັນ, ແຕ່ຜູ້ຂຽນຈະຍົກອັນທີ່ຄິດວ່າສຳຄັນມາຄື:
Comment: ການຂຽນ comment ອາດຈະເສຍເວລາ ເເຕ່ຈະເຮັດຂຽນ script ມີປະສິດທິພາບເພີ່ມຂຶ້ນ ແລະ ຖ້າມີບັນຫາກໍຈະແກ້ໄຂໄດ້ງ່າຍ.
ພັກຜ່ອນ: ເປັນຍ້ອນຜູ້ຂຽນພັກຜ່ອນບໍ່ພຽງພໍ (ນັ່ງບໍ່ລຸກໝົດມື້), focus ບາງເທື່ອຫຼຸດເລີຍຊ້າໆເອີໆ ແຖມເສຍສຸຂະພາບ. p.s. ບອກໄວ້ຊື່ໆແຕ່ຜູ້ຂຽນກໍຍັງບໍ່ເຮັດ.
Backup: backup code ໄວ້ ເວລາມີບັນຫາມາຈະບໍ່ໄດ້ລຳບາກເປັນຄືຜູ້ຂຽນ.

