Forensics
Dreamhack - 디지털 포렌식의 개념과 특성
오늘부터 드림핵의 디지털 포렌식 로드맵을 통해 배운 내용을 적을 예정이다. 기본적으로 [포렌식]이란 우리가 드라마에서도 볼 수 있듯이, 과학적으로 범죄를 수사하는 것이다. [디지털포렌식]은 이 포렌식에서 컴퓨터 과학적으로 더 초점을 두고 있다고 볼 수 있다. - 디지털 포렌식의 개념 디지털 포렌식의 정확한 개념은 "디지털 증거를 수집·보존·분석·현출하는데 적용되는 과학기술 및 절차"이다 개념이 뭐가 중요하나 싶지만, 포렌식 자체가 법정에서의 효력을 가지는 만큼 중요한 역할을 하고 있으므로, 이 각각의 세부적 의미를 정확히 이해하는 것이 중요하다. - 디지털 포렌식의 종류 디지털 포렌식의 종류는 크게 아래와 같이 5개로 분류된다.디스크 포렌식 : SSD, HDD 분석메모리 포렌식 : RAM(휘발성 데이터)..
CTF-D writeup - 이 파일을 훔쳤지만 작동하지 않는다
먼저 주어진 파일은 koe라는 파일인데, 다음과 같이 바이너리 파일인 것을 확인할 수 있다. strings로 살펴봤을때는 flag라는 문자열이 있기는 한데 딱히 단서가 되는 것은 없는 것 같다. HHJ 🤡 ~/Downloads strings koe /lib/ld-linux.so.2 libc.so.6 _IO_stdin_used puts __libc_start_main __gmon_start__ GLIBC_2.0 PTRh [^_] ;*2$"( '- &:u/85)(/& #r55$3 5) / 5) 5 p53 (/
CTF-D writeup - Find Key(ELF)
이번에는 Find Key(ELF)의 문제를 풀어볼 것이다. 다음과 같이 chall.raw파일인 주어진다. 그러면 먼저 file을 이용하여 chall.raw파일을 살펴보겠다. 위 파일이 elf파일 인 것을 확인할 수 있다. 다음으로 strings로 살펴보겠다. 크기가 매우 크기 때문에 strings를 한 결과를 다음의 명령어를 이용하여 텍스트 파일로 저장해보겠다. strings chall.raw > chall.txt 텍스트 파일이 뽑혔으면 string으로 "flag"를 계속 찾다 보면 다음과 같이 의심스러운 부분이 나온다.(물론 노가다를 살짝 해야한다.....) 밑에 나온 문자열을 base64로 decoding하면 다음과 같이 나온다. Decoding하면 중간에 의심스러운 문자열이 있는걸 확인활 수 있다...
CTF-d writeup - fore1-hit-the-core
이번에는 ctf-d 워게임의 fore1-hit-the-core 문제를 풀어볼 것이다. 일단 fore1.core라는 파일이 주어진다. 파일의 형식을 살펴보면 elf파일 인것을 확인할 수 있다. elf를 분석하기 전에 strings로 간단하게 살펴보자. 위와 같이 플래그 같은 형식의 문자열이 나오지만, 플래그는 아닌 것 같다. 플래그 형식을 생각하면 4번째 문자 마다 조합해보면 플래그가 된다고 생각해 볼 수있다. python은 문자열의 첫번째를 0번째라고 받아들이기 때문에, 3x + 5의 문자열들을 flag에 오류가 나기전까지 계속 합쳐주면 flag가 나올 것이다. 다음과 같이 python 코드를 만들 수 있다. strings = "cvqAeqacLtqazEigwiXobxrCrtuiTzahfFreqc{bnj..
CTF-d writeup - 윈도우 작업 관리자에서 우클릭...
이번에는 ctf-d 워게임의 "윈도우 작업 관리자에서 우클릭..." 문제를 풀어볼 것이다. 다음과 같이 메모리 덤프를 뜬 파일이 보인다. strings를 이용하여 flag형식을 검색해보면 다음과 같이 쉽게 flag를 획득할 수 있다. SharifCTF{4d7328869acb371ede596d73ce0a9af8}
[기초부터 따라하는 디지털 포렌식(inflearn)] - Volatility 사용 및 문제풀이
오늘은 인프런의 무료 디지털 포렌식 강의를 기반으로 메모리 포렌식을 공부해 볼 것이다. 여기서는 volatility라는 도구를 이용하여 분석을 할 것이고, 문제 파일은 다음 링크에서 확인할 수 있다. http://files.sempersecurus.org/dumps/cridex_memdump.zip Cridex 문제 먼저 문제 파일 압축을 풀고 바로 volatility를 사용하여 분석을 시작할 것이다. 맨 처음 volatility에서 사용해야 할 명령어는 다음과 같다.(물론 앞에 실행파일 명은 윈도우, 맥에 따라서 달라질 수 있다.) Volatility -f "filename" imageinfo 이 명령어는 메모리 덤프의 운영체제 같은 기본 정보를 찾아주는 명령어이다. cridex문제파일로 실행하면 다음..
[대회 문제 풀이로 이해하는 디스크 포렌식 분석] - Thumbnail, Skype, Recycle.bin 분석
이번에는 Recycle.bin, Thumbnail, Skype, 이 세 가지를 기반으로 하는 시나리오를 분석해 볼 것이다. 그러면 방금 말한 것 중 두 가지(Recycle.bin, Thumbnail)를 어떤 식으로 분석 및 접근해야 하는지 먼저 알아보겠다. - Recycle.bin 먼저 recycle.bin은 휴지통으로 옮겨진 파일들이 있다. Recycle.bin의 경로는 다음과 같다. 예시를 살펴보자. 위와 같이 C:\Recycle.bin\S-1~~~-1001 에 휴지통이 있는 것을 확인할 수 있다. 그리고 오른쪽에 Recycle.bin안에 있는 파일들을 보면 $I~~~ , $R~~~ 이렇게 두 개의 같은 이름의 파일(~~~ 496byte 3. 16~23는 삭제 시간 정보이다. 01D1A384F5E8C..
[대회 문제 풀이로 이해하는 디스크 포렌식 분석] - APK
이번에는 apk분석이다. 가장 기초적인 apk 분석을 하는 방법을 배울 것이다. APK의 내부파일을 추출하기 위해서는 apktool을 이용하고 그 내부 파일이 난독화 되어 있으면 jd-gui를 이용하면 내용을 알 수 있다. 다음을 참조하여 apk분석을 해보자. 이제 문제 시나리오를 살펴보자. 구성파일은 다음과 같다. 이제 apktool를 이용하여 apk 내부파일을 다음과 같이 추출할 수 있다. 그러면 다음과 같이 추출이 될 것이다. AndroidManifest.xml를 확인해보면 어디에 소스코드가 있는지 확인할 수 있다. 그러면 "smali/tf/icec/husavik"로 가보자. 위와 같이 여러 파일들이 있는데 b.smali를 살펴보면 아래와 같이 의미심장한 문자열이 있다.(실제로는 위 파일들을 일일이..