Sunday, July 23, 2017

Process Hollowing ແມ່ນຫຍັງ?

ຊ່ວງນີ້ມີຫລາຍໆ blog ກ່ຽວກັບ Malware Analysis ມັກເວົ້າເຖິງເລື່ອງ process hollowing ມື້ນີ້ກໍເລີຍເອົາມາເວົ້າອີກທີຫນຶ່ງ (ຄ້າຍໆກັບຕອນທີ່ມີຄົນເວົ້າເຖິງ psexec ແລະ wmic ໃນ NotPetya)
Image does not exist: https://www.techsuii.com/wp-content/uploads/2017/07/ph_4.png
Process Hollowing

Process hollowing technique ເປັນເທກນິກທີ່ວ່າດ້ວຍເລື່ອງການນຳ code injection (payload ຫລື Portable Executable (PE) file) ເຂົ້າໄປໃນ memory ຂອງ process ທຳມະດາທົ່ວໄປ
ເທກນິກນີ້ໃຊ້ໂດຍ Attacker ເມື່ອຕ້ອງການໃຫ້ Malware ນັ້ນຖືກຣັນເທິງເຄື່ອງເຫຍື່ອແບບຫລົບລ້ຽງການກວດຈັບໂດຍ Antivirus ແລະ ຄົນເຮັດ forensic ຕ່າງໆ ມີຫລາຍວິທີທີ່ຈະເຮັດໃຫ້ເກີດ Process Hollowing ໄດ້ ໂດຍໃນເພດນີ້ຈະຍົກຕົວຢ່າງຈາກການເຮັດວຽກຂອງ DarkComet
Step#1
ເມື່ອ DarComet ເຮັດວຽກຈະມີການສ້າງ Process ລູກໃຫ້ໄປສິງທີ່ Process ຕົວອື່ນຊຶ່ງ Process ນັ້ນຈະເປັນ Process ທີ່ເບິ່ງປົກກະຕິ ໂດຍໃຊ້ Windows API Function “CreateProcess” ຊຶ່ງ LpApplicationName ຈະເປັນຕົວຊີ້ໄປຍັງຊື່ຂອງ Process ທີ່ຖືກກົດຫມາຍ ຊຶ່ງເມື່ອ function ເຮັດວຽກຕົວ Process ຈະຖືກໂຫລດໂດຍ Windows API ແລ້ວກາຍເປັນ Process ລູກຂອງ DarkComet ໄປ
Image does not exist: https://www.techsuii.com/wp-content/uploads/2017/07/CreateProcessMSDn.png
ເຊັ່ນ ຫາກໃຊ້ເປັນ Internet Explorer process ເປັນເປົ້າໝາຍ ຕົວ malware ຈະກຳນົດ LpApplicationName ໃຫ້ເປັນ C:Program FilesInternet Exploreriexplore.exe ເມື່ອທຳການຣັນ process ດັ່ງກ່າວຂຶ້ນມາແລ້ວກໍຈະທຳການປ່ຽນສະຖານະ ຂອງ process ໄວ້ໃຫ້ເປັນ suspend process (CREATE_SUSPENDED) flag ໂດຍການກຳນົດທີ່ dwCreationFlags parameter. ຊຶ່ງເຮັດໃຫ້ process ຈະຖືກສັ່ງໃຫ້ເຮັດວຽກໃນສະຖານະ suspended state, ເຮັດໃຫ້ malware ທຳການສິງຕົວເອງເຂົ້າໄປໃນ memory ຂອງ process ກ່ອນທີ່ຈະນຳ process ຂອງ Internet Explorer ກັບມາໂດຍໃຊ້ ResumeThread Windows API function. (ຂັ້ນຕອນສຸດທ້າຍ)
Step#2
ໃນຂະນະທີ່ IE Process ກຳລັງຢຸດຢູ່ malware ຈະໃຊ້ງານ NtUnmapViewOfSection ເພື່ອເຂົ້າໄປຈັດການໃນສ່ວນ memory ຂອງ IE
Image does not exist: https://www.techsuii.com/wp-content/uploads/2017/07/Screen-Shot-2560-07-09-at-19.26.35.png
ຕົວ ProcessHandle parameter ເປັນ process ເປົ້າໝາຍທີ່ເຮົາຕ້ອງການເຂົ້າໄປຈັດການ ແລະສ່ວນ BaseAddress parameter ເປັນຕຳແໜ່ງຂອງ process. ທີ່ DarkComet ຈະເຂົ້າໄປຍົກເລີກການ map ໄປຍັງ memory section ຊຶ່ງໃນທີ່ນີ້ຄືຂອງ Internet Explorer process ໂດຍການຈະຮູ້ເລື່ອງລາຍລະອຽດຕ່າງໆ ຂອງ Internet Explorer ນັ້ນ ຈະເປັນການໃຊ້ງານຜ່ານ GetCurrentProcess Windows API function.
Step#3
ຕົວ DarkComet ຈະຈອງ memory ສ່ວນຫນຶ່ງໂດຍໃຊ້ VirtualAllocEx Windows API function. ຊຶ່ງຕົວ Malware ຕ້ອງແນ່ໃຈວ່າ memory ສ່ວນນັ້ນເປັນສ່ວນທີ່ສາມາດຂຽນ ແລະ ຣັນໄດ້ ໂດຍການກຳນົດ flProtect parameter ໃຫ້ເປັນ PAGE_EXECUTE_READWRITE flag (ແນ່ນອນວ່າ Malware ຕົວອື່ນອາດຈະ set Flag ນີ້ເປັນຢ່າງອື່ນກໍໄດ້)
Image does not exist: https://www.techsuii.com/wp-content/uploads/2017/07/Screen-Shot-2560-07-09-at-19.36.24.png
Step# 4
ໃຊ້ Windows API Function “WriteProcessMemory” ເພື່ອກທຳການຂຽນ code ທັບເຂົ້າໄປໃນ code ເດີມ
Image does not exist: https://www.techsuii.com/wp-content/uploads/2017/07/Screen-Shot-2560-07-09-at-19.37.51.png
ຈາກນັ້ນແກ້ຕົວ context ຂອງໄຟລ໌ໃຫ້ໄປຣັນທີ່ code ທີ່ inject ເຂົ້າໄປໂດຍໃຊ້ SetThreadContext Windows API function.
Step#5
Malware ໃຊ້ ResumeThread Windows API function ເພື່ອໃຫ້ IE ກັບມາເຮັດວຽກ

ຈາກທັງໝົດຈະເຫັນວ່າ Process Hollowing ນັ້ນເປັນການເຮັດວຽກງານທີ່ບໍ່ຊັບຊ້ອນຫຍັງຫລາຍ ແລະເປັນທີ່ນິຍົມຂອງ Malware ຫລາຍໆ ຕົວອີກດ້ວຍ ຊຶ່ງແທ້ໆ ແລ້ວເທັກນິກນີ້ບໍ່ໄດ້ໃໝ່ຫຍັງເລີຍ ແຕ່ກໍຍັງມີຫລາຍໆ ຕົວທີ່ຍັງໃຊ້ງານຢູ່

Source::

https://blog.kwiatkowski.fr/?q=en/process_hollowing
http://www.ubersec.com/2017/07/05/discovering-process-hollowing-injection-in-memory-darkcomet-use-case/
https://www.techsuii.com/2017/07/09/process-hollowing/

Subscribe

  • RSS Atom

ອອນລາຍ: 36 | ມື້ນີ້: 267 | ວານນີ້: 15 | ທິດນີ້: 362 | ເດືອນນີ້: 1141 | ປີນີ້: 12101 | ລວມ: 79204