24 May 2011

[Phân tích] TQN HVAonline RCE đám virus của Sinh Tử Lệnh


Bài viết liên quan:

Hàng này là lượm nhặt từ HAVonline về,.... các bạn muốn đọc thì vào đây nhé
http://www.hvaonline.net/hvaonline/posts/list/38818.hva

Bài viết của anh TQN

Có 1 vài điểm nhấn:


1. Sinh Tử Lệnh là ai?
Chuyện bắt đầu từ cái topic năm ngoái về việc anh conmale, admin của diển đàn chúng ta bị đám STL cài keylog và ăn cắp password. Các bạn có thể search xem lại. Lúc ấy tui có pm anh conmale và được anh gởi cho 1 file MS Word, có name: "Danh sach IP.doc". Anh conmale compress lại và gởi cho tui.

2. Mọi chuyện bắt đầu từ đây, tui cũng bị mất password HVA cũng vì file này. File này được tui upload lên mediafire tại: http://www.mediafire.com/?xoa dia chi joj2, password = malware. Quên nói là các bạn không nên mở file .doc này bằng MS Word. Dính malware của STL liền đấy
 
3. Tất cả các AV đều không phát hiện ra exploit bug trong file .doc này. Điều này chứng tỏ exploit bug này là undocument, đã có từ năm ngoái và tới bây giờ vẫn không công bố. Và tui dám 90% chắc chắn là exploit này không thể do người VN trong nước phát hiện ra (vì tui nghĩ nếu người VN ta mà phát hiện ra thì đã um xùm lên rồi).
Tui sẽ không phân tích kỹ thuật của exploit này, chỉ tập trung vào phân tích cách xác định shellcode trong file .doc và disassembly/debug xem nó làm gì

4. Các bạn sẽ thấy ngay các string lộn xộn đó chính là các hàm API quen thuộc mà shellcode thường dùng: GetTempFileNameW, GetTempPathW, RtlZeroMemory, URLDownloadToFile, LoadLibaryA...
Các string này không liền kề nhau, vì các bạn để ý đến left panel bên tay phải, của sổ Disassembly, sẽ thấy là code của STL move từng dword 1 chứa 4 ký tự của các hàm API vào các buffer liền kề nhau (mấy ông nội, sao không đảo thứ tự của các buffer này đi, nếu đảo thì tui tìm sao ra !?) 

5.Các keylog và bot của STL đều có chung đặc điểm là:
1. Code = Visual C++ đời mới 2008, 2010
2. Dùng PE Compact để compress dll, exe file. (Nói nhỏ nhé: PE Compact nhét watermark về user trong file compacted đấy. Tiêu tụi mày rồi, nhưng nếu tui mày xài PE Compact cờ rắc thì em thua).
3. Export fake API COM DLL: DllCanUnloadNow, DllGetClassObject, DllRegisterServer, DllUnregisterServer. Các hàm này đa số đều return FALSE, chỉ 1 vài hàm làm công việc chính: keylog, inject... 

6. Cuối cùng
1. Tạo URL string.
2. Tạo API name bằng cách mov từng DWORD API name vào buffer.
3. Lấy PEB address, duyệt module link list để lấy kernel32.dll base address
4. Scan export table của kernel32.dll để lấy address của GetProcAddress
5. Download file image.jpg về %Temp%\randomname
6. Nếu download thành công, call CreateProcess với param là file jpg đó. File đó thực chất là file exe, mở đường cho download một loạt malware khác của mấy "ông nội" STL về máy victim (lại victim nữa, nhắc lại niềm đau của em).
7. Nếu download không thành công, TerminateProcess luôn (WinWord đi luôn).
 


Ngoai lề, có thể trong thời gian tới: chúng ta sẽ biết Sinh tử lệnh là ai :)). Theo như nguồn thông tin trên thì có rất nhiều manh mối :))

0 comments:

Post a Comment

Để lại góp ý của bạn để blog của mình hoàn thiện hơn :))