728x90

분류 전체보기 153

[악성코드분석] 어셈블리코드 분석 보고서

* 2022-2 악성코드분석 과제 백업 게시물입니다. 1. 선정한 프로그램과 gcc로 컴파일 한 후 disass main 명령어로 확인할 수 있는 어셈블리 코드 2. ni 명령어로 추적하면서 어셈블리 코드 분석하기 스택 프레임을 형성하는 부분이다. rpb를 스택에 넣어두고 rsp를 rbp에 넣어준다. 어셈블리 코드를 분석할 때 항상 이 두 줄은 등장하니 기억해두면 좋다. 본격적으로 main() 함수가 시작되는 부분이다. 0xa의 값을 rbp에 넣어준다. 이 부분에 해당하는 코드 $0xa, -0xc(%rbp) 중 -0xc가 쓰인 이유는 다음과 같다. 디버거는 변수의 크기를 세서 미리 할당하는 특징이 있다. int는 4바이트의 크기를 갖는데 이 코드에서는 int a, int b, int result 총 세 ..

[withCTF] 거래 조건 알고 있잖아요?

거래 조건 알고 있잖아요? 이 파일에서 플래그를 찾아보실래요? KEY Format : abctf{(key)} 헤더파일을 보니 jpg의 파일 형식이 아니다. FF D8을 추가하니 jpg 파일을 확인할 수 있었다. 궁금한 점: jpg 파일 헤더는 FF D8 FF E 어쩌고인데 이걸 추가했더니 보이지 않았다.. 왜 FF D8 만 추가해도 보이는 거지? 그리고 jpg 파일 푸터도 .. 없는데 괜찮은가 → 값을 추가해서 확인해보니 헤더만 있어도 jpg 파일이 나오고 맨 뒤에 푸터까지 추가해도 jpg 파일이 나온다. flag = abctf{tfw_kage_r3kt_nyway}

[withCTF] 저는 당신의 생각을 알고 있습니다. + exif 정보

저는 당신의 생각을 알고 있습니다. 왜 제가 중요한 모든 데이터를 이미지에 저장합니까? 당신의 업무에 집중하셔야 합니다. 그냥 정보만 알려주시겠습니까? Hint :플래그는 이미지 어딘가에 분명히 eXist합니다. 디코딩 결과 ASCII 코드의 힌트 발견 now_youre_thinking_with_exif →exif가 뭘까 The flag you're looking for is in another property... → flag 는 다른 곳에 있다는게 무슨 말일까 exif 정보란? 디지털 카메라 등에서 사용되는 이미지 파일 메타데이터 포맷으로, 카메라가 촬영한 사진, 녹음파일에 시간 등의 각종 정보를 담기 위해 개발되었다. 즉, JPEG, TIFF 6.0과 RIFF, WAV 포맷에 이미지나 소리에 대한 ..

[withCTF] Wota + Zip 내부 구조, Base64 인코딩

Hint : Password : Nz3#s)2=1@./AS|\sas;192Sljd!*&^ 문제에서 제공된 파일을 압축해제 하려고 하니 이런 오류가 발생했다. 해당 오류가 발생하는 이유를 찾아보니 “잘못 구성된 시스템 파일로 인한 레지스트리 오류 및 손상”라고 한다. 파일 안에 다른 파일이 숨겨져 있거나 인코딩 과정에서 필요없는 부분을 삭제/변경 하면 될 것 같다는 생각이 들었다. PK 어쩌구면 zip 파일 왜 zip 헤더는 두 개인데 푸터는 하나지? zip 파일의 헤더는 두 개인데 푸터는 하나만 있다는게 마음에 걸린다. 따라서, 전체의 파일 디코딩에서 zip 파일의 푸터인 50 4B 05 06 만 추가해 새로운 zip 파일로 만들었더니 안에 들어있는 jpg 파일을 보기 위해서는 또 다른 암호가 필요하다...

[withCTF] Find Key(moon)

이미지 값을 조정해서 플래그를 찾는건 이제 안 나올 거 같아서 먼저 HxD로 파일을 열어 헤더와 푸터를 살펴보았다. PNG 파일이기에 89 50, 49 45 로 시작하고 끝나면 되는데 이상하게도 PNG 파일의 푸터 뒤에 추가로 값이 존재했다. 심지어 decoded text에 보이는 flag.txt 까지! 파일 시그니처를 검색해보니 ZIP 파일 안에 txt 파일이 압축되어 있는 것 같았다. 해당 offset 부분을 복사한 후 파일 확장자를 .zip으로 바꾸니 새로운 파일이 생성되었다. 압축 해제를 위한 암호는 moon 예상한 대로 txt 파일이 존재했고 그 안에 flag 값이 적혀있다. flag = sun{0kay_it_is_a_m00n}

[with CTF] 이 그림에는 뭔가 좀 수상한...

이미지 분석과 HxD에서 flag를 찾아보았지만 딱히 이상한 점이 없었다. 그럼 다음 할 일은 파일 시그니처를 분석하는 것! 이 파일의 확장자는 PNG이고 자주 나오는 파일 시그니처는 다음과 같다. (참고) 사진 하나에 PNG 뿐만 아니라 다른 시그니처 값이 존재하는지 확인해보면 JPEG의 헤더값이 존재함을 알 수 있었다. 파일 안에 들어있는 파일을 열람하는 방법은 JPEG 파일 헤더부터 JPEG 파일 푸터까지를 복사하여 생성하면 된다! HxD 툴에서 시작 offset과 끝 offset을 지정하는 기능을 이용해 새 파일을 생성 후 파일 확장자를 .jpeg로 바꾸면 flag 값이 적힌 사진을 확인할 수 있다. Flag = ABCTF{PNG_S0_COO1}

[withCTF] 계속 주시해라!

그림 파일임에도 포렌식 툴로 살펴보았을 때 아무 flag도 발견하지 못 했다. 파일의 시그니처 값으로 접근해보면, 이 파일은 jpg 파일이고 jpg 파일의 헤더는 FF D8, 푸터는 FF D9이다. HxD로 파일의 값을 살펴보니 파일의 헤더와 푸터 그 이후에 문자열 처럼 보이는 값이 존재하고 이것이 flag임을 알 수 있다. flag = 16bbee7466db38dad50701223d57ace8

728x90