본문 바로가기

분류 전체보기

(638)
[메모리 포렌식] Volatility 프레임워크 pslist, psscan, pstree, psxview 플러그인 이번에는 메모리 포렌식에 사용되는 Volatility 프레임워크의 프로세스 정보를 보여주는 플러그인을 알아보겠습니다. 플러그인을 사용하기 위해 앞에서 배운 imageinfo 플러그인을 사용하여 구한 메모리 파일의 profile 정보가 필요합니다. 먼저 vol.py -h 명령어로 플러그인들의 설명을 읽어보겠습니다. 그럼 vol.py -f 1.vmem --profile=Win7SP1x64 pslist 명령어로 pslist 플러그인을 살펴보겠습니다. pslist 플러그인은 설명처럼 현재 작동중인 모든 프로세스들을 출력해줍니다. Offset 주소와 PID, PPID 등과 같은 정보도 함께 출력됩니다. 다음으로 vol.py -f 1.vmem --profile=Win7SP1x64 psscan 명령어로 psscan ..
[메모리 포렌식] Volatility 프레임워크 imageinfo 플러그인 이번에는 Volatility 프레임워크를 이용하여 분석할 메모리 파일의 운영체제 profile 정보를 확인하여 보겠습니다. 명령 프롬프트(cmd)에서 cd 명령어를 통하여 Volatility 프레임워크 압축을 푼 폴더로 이동합니다. 그리고 vol.py -f 1.vmem imageinfo 명령어를 입력합니다. -f 옵션으로 1.vmem 파일을 선택하고, 이 메모리 파일에 대하여 imageinfo 플러그인을 적용하겠다는 의미입니다. 명령어를 입력하면 위와 같은 결과가 출력됩니다. 가장 먼저 나오는 Suggested Profile에서 메모리 파일의 운영체제 profile을 확인할 수 있습니다. 이외에 메모리 파일에 대한 덤프 시각, 운영체제 정보, 커널 정보 등을 확인할 수 있습니다. 1.vmem에서는 4개의..
[메모리 포렌식] Volatility 프레임워크 설치 방법 (Windows 10) 이번에는 메모리 포렌식에 사용되는 Volatility 프레임워크의 사용법을 알아보겠습니다. 먼저 Volatility 프레임워크는 파이썬 2.x 버전에서 구동되기 때문에 3.x 버전을 사용중이라면 버전을 변경해주어야 합니다. Volatility Foundation(www.volatilityfoundation.org/)에서 Volatility 프레임워크를 다운받을 수 있습니다. 다운로드가 완료되면 원하는 경로에 압축을 풀면 됩니다. Volatility 프레임워크의 압축을 풀면 위와 같은 파일들이 있습니다. 1.vmem 파일은 분석을 위하여 제가 별도로 Volatility 폴더 안에 넣어놓은 메모리 파일입니다. 압축을 풀었으면 명령 프롬프트에서 cd 명령어를 통하여 Volatility 폴더로 이동해줍니다. 그..
[해커스쿨 FTZ] 해커스쿨 FTZ Level 9 풀이 이번에는 해커스쿨 FTZ의 Level 9를 풀어보겠습니다. 힌트를 보니 /usr/bin/bof의 소스 코드를 보여줍니다. 버퍼 오버플로우를 이용하는 문제 같습니다. fgets() 함수로 buf 배열에 크기가 최대 40만큼 넣어주므로, 크기가 10인 buf 배열을 다 채우고 buf2 배열에 overflow가 되도록 입력해주면 됩니다. 입력을 0000000000go 로 넣어보겠습니다. 그래도 문제가 풀리지 않습니다. buf 배열과 buf2 배열 사이에 어떠한 dump가 존재하는 것 같습니다. 0의 개수를 하나씩 늘려가면서 입력해보면, Good Skill이라는 문자열과 함께 level10의 권한을 얻을 수 있습니다. level 10의 권한으로 my-pass 명령어로 password를 구할 수 있습니다.
[해커스쿨 FTZ] 해커스쿨 FTZ Level 8 풀이 이번에는 해커스쿨 FTZ의 Level 8을 풀어보겠습니다. 먼저 힌트를 보겠습니다. 용량이 2700인 파일을 찾는 문제같습니다. 리눅스의 find 명령어를 사용하면 될 것 같습니다. 구글에서 find 명령어 사용법을 찾아보시면 됩니다. find 명령어로 용량으로 검색하려면 "find [디렉토리] -size [용량][단위]" 형식으로 작성하면 됩니다. "find / -size 2700c 2>/dev/null"은 "루트 디렉토리부터 용량이 2700이고 단위가 byte이고 오류가 나타나지 않는 파일을 찾아라" 입니다. found.txt가 수상해 보이니 cat 명령어로 텍스트 파일을 출력해보겠습니다. 이상한 문자열들이 쭉 나열되어 있습니다. 구글 검색을 해보니 'john the ripper'라는 패스워드 크랙 ..
[해커스쿨 FTZ] 해커스쿨 FTZ Level 7 풀이 이번에는 해커스쿨 FTZ의 Level 7을 풀어보겠습니다. hint를 먼저 보니, 특정 패스워드를 입력하는 문제 같습니다. wrong.txt를 찾을 수 없다길래 wrong.txt를 생성하려고 했는데 접근 권한이 설정되지 않았습니다. 검색을 해보니 개인이 FTZ 서버를 이용할 때는 서버에 root 계정으로 들어간 뒤 /bin 디렉토리에 wrong.txt를 생성해주어야 합니다. root 계정으로 wrong.txt를 만들어 주었습니다. root 계정의 password는 hackerschool입니다. 패스워드는 가까운 곳에 있다고 하여 7을 입력했는데 아무 일도 일어나지 않습니다. 이것도 개인이 FTZ 서버를 이용할 때 발생하는 오류라고 합니다. 원래라면 --_--_- --____- ---_-__ --__-_-..
[해커스쿨 FTZ] 해커스쿨 FTZ Level 6 풀이 이번에는 해커스쿨 FTZ의 Level 6를 풀어보겠습니다. 접속하면 hint가 출력되고 엔터를 치면 위와 같은 화면이 나옵니다. 어떤 숫자를 입력하더라도 trying.. 문자열만 출력되고 변화가 없습니다. 그냥 이것저것 만져보다가 위와 같이 hint가 출력된 창에서 ctrl+c를 눌러보았더니 프롬프트로 이동되었습니다. password 파일이 있길래 출력해보니 password가 출력되었습니다.(?)
[해커스쿨 FTZ] 해커스쿨 FTZ Level 5 풀이 이번에는 해커스쿨 FTZ의 Level 5를 풀어보겠습니다. 파일을 찾았습니다. 힌트를 먼저 보고 가겠습니다. 임시파일을 이용하라고 합니다. 하지만 level5 프로그램을 실행하고 tmp 디렉토리를 봐도 임시파일이 존재하지 않았습니다. 임시 파일이 바로 삭제될 수도 있으므로 level5.tmp를 하나 만들어주겠습니다. touch 명령어로 level5.tmp 파일을 만들어 주고 level5 프로그램을 실행하니 password를 확인할 수 있습니다.
[해커스쿨 FTZ] 해커스쿨 FTZ Level 4 풀이 이번에는 해커스쿨 FTZ의 level 4를 풀어보겠습니다. find 명령어를 사용하여도 파일이 출력되지 않아 hint를 보겠습니다. /etc/xinetd.d에 백도어가 있다고 합니다. xinetd.d는 디렉토리이므로 xinetd.d로 이동해보겠습니다. ls 명령어를 사용해보니 backdoor 파일이 있습니다. backdoor이 실행되지는 않으니 cat 명령어로 출력해 보았습니다. 구글에 finger 서비스에 대해 검색해보니, 서비스가 실행될 때 server에 해당하는 /home/level4/tmp/backdoor 에 위치한 프로그램을 불러옵니다. 아무리 찾아도 backdoor이라는 프로그램이 없습니다. 직접 만들어야하나 봅니다. vim 에디터를 이용해서 만들겠습니다. system() 함수로 my-pass..
[해커스쿨 FTZ] 해커스쿨 FTZ Level 3 풀이 이번에는 해커스쿨 FTZ의 Level 3를 풀어보겠습니다. find 명령어로 파일을 찾고 실행해봅니다. 사용법을 알려주는데 아직 이해가 되지 않습니다. 힌트를 보겠습니다. autodig의 소스 코드를 보여줍니다. system() 명령어를 활용하여 명령어를 사용하는 문제 같습니다. 코드를 보니 cmd 배열에 argv[1]을 넣어줘서 실행합니다. argc는 2가 되어야 오류가 나지 않습니다. argc와 argv에 대한 이해가 되지 않으시면 구글에 "c언어 command line arguments"로 검색해 보시길 바랍니다. more hints.를 보면 명령어를 동시에, 문자열 형태로 전달해야 합니다. /bin/bash로 접근하여, my-pass 명령어를 사용해야 하므로 동시에 사용하고, system 함수는 ..