ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RC3 CTF GoReverseMe
    CTF&Wargame/ETC 2016.12.04 16:38

    GoReverseMe.zip

    주말이라고 천천히 아주 느긋하게 푼 문제다


    실행하면 인자를 안줘서 뜨는 문구 같다

    그냥 빈 파일을 하나 만들고 인자로 줘보자


    자 실행했더니


    바탕화면에 flag.enc라는 파일이 만들어졌다


    그냥 랜섬웨어로 암호화한 것처럼 보이는 파일이 나타난다

     

    우선 실행을 하면 runtime_text라는 함수가 있는데 헥스레이로 봤을 시

    main_step으로 1~4까지 함수가 있다

    이 부분을 분석하면 쉽게 풀 수 있을 듯 하다


    main_step1을 보면 어떤 값을 가져와 0x69랑 XOR 연산을 한다


    위에 루프를 지나서 덤프창을 보니

    golang-or-bust라는 값을 볼 수 있다

    처음엔 어디에 쓰는지 모르니 일단 알아두기만 하자

    main_step1은 더이상 볼일이 없다


    이제 main_step2를 봐야하는데

    그냥 봐도 너무 길다 천천히 분석해보면 그냥 다 넘어간다

    보다 보면

    github_com_alexmullins_zip___Writer__Encrypt

    이런 함수를 볼 수 있다

    zip파일을 암호화할거같은 이름이다


    함수로 들어오면 이렇게 또 있다

    두개의 함수가 있는데 거치고 나면


    이런게 생긴다 zip파일로 보인다

    이거 말고는 뭐 별다를게 안보인다

    분석능력이 아직 많이 떨어져서 그런거같다

    일단 여기까지 짐작해보자면

    내가 인자로 파일을 주었을 때 그걸 zip으로 만들어 놓고 

    암호화를 했다고 볼 수 있다


    다음 main_step3인데 볼게없다 그냥 4로 넘어가자

    main_step4를 보면 zip 헤더의 첫번째 바이트와 두번째 바이트를 가져와서

    두번째 바이트에서 첫번째 바이트를 빼준다 그리고 그걸 첫번 째 바이트에 저장하는데


    처음 바이트 50을 4b에서 빼면 5가된다 저런식으로 파일 바이트만큼 진행한다

    딱히 다른 연산은 없는데

    이제 기본으로 준 flag.enc를 복호화해보자


    이런식으로 뒤에서부터 해준다

    처음에 result에 00바이트를 안줘서

    압축이 안풀리는 경우가 발생했다 ㅠㅠㅠ

    뒤에서부터 앞으로 진행하기때문에 처음에 00바이트를 주고 시작해야한다


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # golang-or-bust
    = open('flag.enc','rb').read()
    data = bytearray(f)
    result = "\x00"
     
    for x in range(len(f)-10-1):
        test = data[x] + data[x-1]
        data[x-1= test&0xff
        result += chr(test&0xff)
     
    = open('test.zip','wb')
    o.write(result[::-1])
    o.close()
    cs

    이제 소스를 돌려서 얻은 zip파일을 풀어보자

    근데 비밀번호가 필요하다

    처음에 main_step1에서 얻은 문자열을 비번으로 입력하면된다


    RC3-GOLANG-BESTLANG-5435

    끝!

    'CTF&Wargame > ETC' 카테고리의 다른 글

    holyshield easylang  (0) 2016.12.19
    holyshield StudyScala  (0) 2016.12.19
    RC3 CTF GoReverseMe  (0) 2016.12.04
    RC3 2016 CTF FLE  (0) 2016.12.02
    f-secure reverse engineering challenge  (0) 2016.07.11
    SHARIF CTF dMd  (0) 2016.02.07

    댓글 0

Designed by Tistory.