Forensics/DFC

[2020 DFC] 2020 디지털포렌식 챌린지 - 203 - Secrect message

pental 2021. 3. 2. 15:22


Find a hidden message in ‘DFC Review.pptx’ and then complete the following sentence.

“Let’s meet with (name) at (time) on (date) at (location) of (address).”

Teams must:

-      Describe step-by-step processes for providing your solution.

-      Specify any tools used for this problem.  


먼저 주어진 PPT 파일의 정보는 다음과 같다.

설명 부분에 이상한 문자열이 있음을 확인하고, 문제 풀기를 시작한다.

PPT의 1번 슬라이드의 폰트에 집중해보자.

먼저 작성되어있는 슬라이드의 폰트는 Roboto Medium 폰트이다. 이 폰트를 다른 폰트로 수정해보면, 단서를 확인할 수 있다.

폰트를 맑은 고딕으로 수정해본 결과

DFC 2019 Review 2020 Planning -> DFC 2019 Revie/ 2020 Plann#ng 로 수정이 되었고,

Digital Forensics Research Forum -> Disi$al Forensics Researc%Forum 으로 수정이 되었다.

여기서 수정된 글자만 추출해보면, W, I, T, H 라는 것을 확인할 수 있다. 이점을 단서로 두고 문제 해결을 진행한다.

2번슬라이드도 동일하게 확인을 해본다.

폰트를 Roboto Medium 에서 맑은고딕으로 변경한 결과 수정된 글자는 Y, A, N, G 임을 확인할 수 있다.

 

지금까지 추출된 글자를 확인해 보면, "WITH YANG" 이다.

주어진 문제를 확인해 보면, “Let’s meet with(name) at (time) on (date) at (location) of (address).”

with(name) 부분은 해결이 되었고, 그 다음은 time과 date, location, addreses이다.

먼저 메모 부분을 추출해 확인해본다.

iVBORw0KGgoAAAANSUhEUgAAANoAAAApCAIAAADceaA7AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMaSURBVHhe7ZbtmQIxCISty4KsZ6uxGYvxSDaBIRt0/TiXH/P+uYTAQOI8nqc7IWmgHUkiaEeSCNqRJIJ2JImgHUkiaEeSCNqRJIJ2JImgHUkiaEeSiD12vC3n83JrGxJw1CvN+krs9JVhrpfT5drWvyCyI17yZw991Ce68kb3Q15p4F/7PrXjl7vTjsob3Q95pYF/7ZvDjvJd35Fp1pYy2Qq21+CDqbc5U0EJtv2aWF5iqbFWth3gwWCqpsHtGMjYfRYZGBIeDPO4tbCn1oISgpdZa+tBnahuSkq/xVPlqoYnhuoIVb2h4m0f3uxFdn47Wr+yaSdl2afAuZFpzkbQlvYq5bXgja4XkIEBAh0tvS2LBOHw0ajaDxX8xjGWfPJK9omWm7f17Nb13ObpM0BLaOSUYZQxGwQRp6MpsJHlvPI99tqxvwqc6KgVv+vMcwJB1zQQLOhJPJjJVOZjDEB3N4gw7jsYl3UwzEutC16qYaVeZK2VGCpoSjDVtiFuja4zJkRCn/LGb8c+ovz1wBt15jmBoI9rtCGHTUOY5LvBXGU0xgCobRS2khUcIB7G80ynYO3kpNUJLeaHaRmu3lLiqUBi018J8i0QVr7HZ3b0I06Y5wSCPu5K5UR3tt492HyMAVCTfBQeGykY3z3MhKG2b+WvFsPaS67J5RgkNKVLNWCqWcMNQb4VhJXvEdnRLhReqSw0Rza6RKY5kSCs/LpsekVRbCd7Blt/O2JENiaMaH1Vtvd3G48veTpM1Lp00BbWTkp7sKh0GWgqaN+SAulryp6pXHcP6lgKbjTjK4R2rAOvTxBdqV1kJZxpkhMLWtPhnqZyuepJrNOF/IfcAFkPdHcF2GTASuJhnreutUsf2bKsEm7t7tlqW986Tdlpyp6pzsvVZxnYygrcg9Se4c1eJLYj+R2DaX6OWOrQ/grtmIFj7Vi+377z5fYxtGMGfm9H+M/78MfIj6EdSSJoR5II2pEkgnYkiaAdSSJoR5II2pEkgnYkiaAdSSJoR5II2pEkgnYkiaAdSSJoR5II2pEkgnYkiaAdSRru9z9iKZONPc28HAAAAABJRU5ErkJggg==

끝 문자가 ==으로 끝나는것으로 보아 base64임을 직감으로 알수 있다. 온라인 base64 decode 도구를 이용해서 확인해 본다.

확인결과 PNG 시그니쳐를 가지고 있는것으로 확인되어서, png 파일로 생성해줍니다.

value = str("iVBORw0KGgoAAAANSUhEUgAAANoAAAApCAIAAADceaA7AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMaSURBVHhe7ZbtmQIxCISty4KsZ6uxGYvxSDaBIRt0/TiXH/P+uYTAQOI8nqc7IWmgHUkiaEeSCNqRJIJ2JImgHUkiaEeSCNqRJIJ2JImgHUkiaEeSiD12vC3n83JrGxJw1CvN+krs9JVhrpfT5drWvyCyI17yZw991Ce68kb3Q15p4F/7PrXjl7vTjsob3Q95pYF/7ZvDjvJd35Fp1pYy2Qq21+CDqbc5U0EJtv2aWF5iqbFWth3gwWCqpsHtGMjYfRYZGBIeDPO4tbCn1oISgpdZa+tBnahuSkq/xVPlqoYnhuoIVb2h4m0f3uxFdn47Wr+yaSdl2afAuZFpzkbQlvYq5bXgja4XkIEBAh0tvS2LBOHw0ajaDxX8xjGWfPJK9omWm7f17Nb13ObpM0BLaOSUYZQxGwQRp6MpsJHlvPI99tqxvwqc6KgVv+vMcwJB1zQQLOhJPJjJVOZjDEB3N4gw7jsYl3UwzEutC16qYaVeZK2VGCpoSjDVtiFuja4zJkRCn/LGb8c+ovz1wBt15jmBoI9rtCGHTUOY5LvBXGU0xgCobRS2khUcIB7G80ynYO3kpNUJLeaHaRmu3lLiqUBi018J8i0QVr7HZ3b0I06Y5wSCPu5K5UR3tt492HyMAVCTfBQeGykY3z3MhKG2b+WvFsPaS67J5RgkNKVLNWCqWcMNQb4VhJXvEdnRLhReqSw0Rza6RKY5kSCs/LpsekVRbCd7Blt/O2JENiaMaH1Vtvd3G48veTpM1Lp00BbWTkp7sKh0GWgqaN+SAulryp6pXHcP6lgKbjTjK4R2rAOvTxBdqV1kJZxpkhMLWtPhnqZyuepJrNOF/IfcAFkPdHcF2GTASuJhnreutUsf2bKsEm7t7tlqW986Tdlpyp6pzsvVZxnYygrcg9Se4c1eJLYj+R2DaX6OWOrQ/grtmIFj7Vi+377z5fYxtGMGfm9H+M/78MfIj6EdSSJoR5II2pEkgnYkiaAdSSJoR5II2pEkgnYkiaAdSSJoR5II2pEkgnYkiaAdSSJoR5II2pEkgnYkiaAdSRru9z9iKZONPc28HAAAAABJRU5ErkJggg==")
import base64
imgdata = base64.b64decode(value)
filename = 'temp.jpg'
with open(filename, 'wb') as f:
    f.write(imgdata)

다음과 같이 소스를 작성하여 추출하였습니다.

추출된 이미지는 "the entrance to the parking lot" 이라는 문자열을 포함하고 있고, 주자장 입구임을 확인 할 수 있습니다.

시간에 대해서는 조금 더 자세한 분석이 필요할 것 같습니다.