-
0608 써니나타스: 포렌식 15 &192020/Write-Ups 2020. 6. 6. 13:46
S.W.F.S 디지털 포렌식> 이수현 (목요일팀) 15
지휘자 태그의 메시지가 인증키: GoodJobMetaTagSearh
속성을 살펴보자 GoodJobMetaTagSearh 이라는 문장이 지휘자 태그 메시지였고 이것이 인증키였다.
19
Binary to string이란?
이진법으로 보이는 숫자배열을 입력하면 문자열로 바꾸어주는 것으로
구글을 이용하면 변환해주는 사이트를 접할 수 있다.
(위의 사진 처럼 2진수 숫자배열을 입력하면 아래와 같이 문자열로 바꾸어준다.)
변환된 문자열: NVCTFDV KF JLEZERKRJ REU KFURP ZJ R XFFU URP REU RLKYBVP ZJ GCRZUTKWZJMVIPYRIU
이렇게 의미 없는 문자열이 나오는데 이는 인증키도 아니기 때문에
치환형 암호를 생각하여 가장 대표적인 시저 암호(카이사르 암호)로 복호화하는 것을 생각해 낼 수 있다.
시저 암호(카이사르 암호)란?
암호화되지 않은 문장을 평문이라 하고, 암호화된 문장을 암호문이라 한다.
암호화란 평문을 암호문으로 바꾸는 과정이다. 그리고 이에 반대되는 과정을 복호화라 한다.
즉, 암호화란 주어진 내용의 의미를 파악할 수 없도록 만들어주는 작업이고,
복호화란 그 암호화된 내용을 다시 파악할 수 있는 내용으로 만드는 작업을 말한다.
시저 암호는 평문의 문자 하나하나를 암호문의 문자로 바꾸는데, 이런 방법을 치환형 암호라 한다. 시저 암호는 암호화 방법과 암호를 푸는 단서인 키를 가지고 있다. 암호화 방법은 ‘더한다’이고, 암호화키는 ‘3’이다. 암호화한 메시지를 몰래 복호화하려는 해커가 있다면 그에게는 암호화키가 3보다는 5일 때, 5보다는 7일 경우에 더 복잡할 것이다. 이처럼 암호화키를 크게 설정하면 할수록 이점이 있음을 알 수 있다.사실 키만 안다면 암호화된 문장을 복호화하는 것은 어려운 일은 아니다. 하지만 키를 모르는 경우는?
아래와 같이 파이썬 코드를 이용하여서 복호화하는 것이 가능하다.
사실 복호화하는 것도 구글을 이용하면 툴을 찾을 수 있다.
[1] from string import ascii_uppercase 라인 선언
[3] alpha_list = list(ascii_uppercase) 대문자 알파벳을 리스트로 얻어옴
[7] for index in range(15): index(변수) , 15(반복 횟수)
[9~12] for char in cipher:
if char == " ":
plain +=" "
continuechar(변수)
cipher 문장이 끝날때까지 반복
변수가 공백이라면 plain = plain + " "을 실행
공백일 경우, , 다음 문자로 넘어가기 위함
[13] 문자가 알파벳 리스트에서 몇번째인지 alpa_index에 저장
[14,15] 알파벳이 총 26개로 이루어져 있기 때문에 26을 초과하는 것을 방지하기 위해서 설정
[15,16] 26을 초과하지 않는 경우 실행
키: [9] WELCOME TO SUNINATAS AND TODAY IS A GOOD DAY AND AUTHKEY IS PLAIDCTFISVERYHARD
https://blog.naver.com/is_king/221854041932
'2020 > Write-Ups' 카테고리의 다른 글
0608 [DigitalForensic with CTF] GrrCON 2015 #3 (0) 2020.06.06 0608 [DigitalForensic with CTF] GrrCON 2015 #2 (0) 2020.06.06 0608 [XCZ] PROB22 (0) 2020.06.06 0608 [ctf-d] basics (0) 2020.06.05 0608 Suninatas Forensic 15번 (0) 2020.06.04