디지털 포렌식 - 2일차
* awk : 공백을 구분자로 사용, 몇번째를 $n 방식으로 지정
* sed : 치환(다른 글자로 바꿀 때) 공식: sed 's/old/new/g'
* sort -u : 중복제거만 함, uniq -c : 중복을 제거하고 왼쪽에 개수(count)를 표시
* sort -n : 오름차순, sort -rn : 내림차순
* head : 위에서부터 읽어들임, tail : 아래에서부터 읽어들임
- 시간순으로 정리할 경우(로그) : head는 오래된 것, tail은 최근 것
- 내림차순으로 정리하면 head는 많은 것부터, tail은 적은 것 부터
* 사설IP주소가 아닌 것을 골라내려면
- 사설IP는? 192.168. 172.16. 10.
- 사설IP로 시작하려면? ^192.168. ^172.16. ^10.
- 또는을 추가 /^192.168.|^172.16.|^10./
- $3(목적지IP)에서 사설IP가 아닌것을 골라내려면? $3!~/^192.168.|^172.16.|^10./
- 특수문자를 Escape 처리 $3!~/^192\.168\.|^172\.16\.|^10\./
* sort -k (k는 key)
sort -k 1 // 1번째를 기준으로 정렬
sort -k 1,1 // 1번째를 기준으로 정렬하되, 동일한 경우 1번째 문자를 기준으로 연속적으로 정렬
sort -k 1,2 // 1번째를 기준으로 정렬하되, 동일한 경우 2번째 문자를 기준으로 연속적으로 정렬
* bpf 필터 : 자연어 처리, 중간에 " "로 묶어서 그냥 영어식으로 사용하면 필요한 것들을 골라서 볼 수 있음
ex) "tcp" : tcp인 것을 모두 골라줌. "port 22" : 방향을 고려하지 않고 포트번호가 22번인 것을 모두 고르기 위해서
* While문
While (한줄씩 읽기) do (지정할 내용, 작업할 내용) done
* DNS 특징
- Query(UDP53) : Web Browser에서 DNS 서버에 IP 또는 Domain을 물어보는 것
- Response(UDP53) : DNS서버가 IP 또는 Domain을 Web Browser에게 알려줌
- Record의 종류
A : 정방향 조회 (Domain 주소를 물어보면 IPv4를 알려줌)
AAAA : 정방향 조회 (Domain 주소를 물어보면 IPv6를 알려줌) = A6
PTR : 역방향 조회 (IPv4/IPv6를 물어보면 Domain 주소를 알려줌) ex) Email 보낼때 king@naver.com
NS : Name Server ex) nslookup
CNAME : 캐노니컬 네임 (별칭, 별명) ex) IP만 있고 도메인이 없는 사용자에게 도메인 일부를 할당해주는 것
- Zone Transfer : DNS Server가 상위 DNS Server로부터 DNS정보를 요청 또는 수신하는 것 (TCP53)
- DNS 로그 생성
구분자는 [**]를 사용 ----> sed문으로 파이프로 치환하고 ---> awk문으로 파이프를 제거하는 방법
* 오후에 VMware의 Windows7을 사용할 예정입니다.
- 압축 파일을 새로 받아야 하는 경우 ha.do/v9P 에서 받으세요 (P는 대문자)
* 포렌식의 의미 : 과학적인 증거를 수집해서 법정에 증거로 제출하는 일련의 과정
-----> 절차 중요, 반박할 수 없도록 증거 확보, 원본이 보존되어야 함
* HDD Imaging
- 원본은 보존되어야 하므로 복제본을 만들어야 함
- 이미지 복제는 비트열 그대로를 복제하는 것 -----> 지워진 파일에 대한 복원, 복구 가능
- 복사(copy): 파일과 폴더 단위로 복제하는 것 -----> 있는 파일만 볼수 있음
* 명데이터 : HDD복구
* Windows System에 대한 정보 수집
cmd> systeminfo
* 핫픽스(hotpix) : 보안 패치
KBnnnnnnn
- 최근에 나온 취약점에 대한 패치 번호가 없으면 취약점이 존재하는 것
cmd> echo %date% %time%
* Windows7 로그인, 비밀번호 : john / 윈도12#$
- 내 문서 안에 있는 bitcoin.....pdf 파일의 속성을 봅니다.
- MAC Time
Create Time (만든 날짜) : 이 컴퓨터에 들어온 날짜 (다운로드, 생성, 복사 등의 날짜)
Modify Time (수정한 날짜) : 마지막 수정된 시간 (만든 날짜보다 먼저일 수도 있음)
Access Time (액세스한 날짜) : 바로 반영이 안될 수 있음 (Windows 7의 경우, 시간이 바로 반영 안되기도 함)
* Sysinternals 다운로드
- 구글에서 sysinternals 검색
- Microsoft 공식 웹사이트 클릭
- Downloads 클릭 > sysinternals suite를 클릭
- 다운로드를 다 받으면 압축을 풀고, 압축 푼 폴더를 C:\>로 이동합니다.
- 윈도우에서 실행되는 도구
tcpview.exe : netstat -na와 비슷, 실시간으로 업데이트됨
diskview.exe : 디스크의 사용 상태 확인
autoruns.exe :
실습) notepad.exe를 실행한 상태에서
cmd> listdlls notepad.exe
-----> notepad가 사용하고 있는 dll 목록을 확인할 수 있음
ex) 악성코드 분석에 사용되는 경우
----> 악성코드가 사용하는 dll 리스트를 볼 수 있음
psinfo -h -s : 프로세스 정보
* GUI가 없는 Windows Server
C:\> doskey /history // 지금까지 입력했던 명령어를 볼 수 있음
* 텍스트 ----> 노트패드, 워드패드(용량이 클경우)
이미지 ----> 그림판(paint)
Quiz) 내가 예전에 설치했지만 오늘은 실행하지 않았던 프로세스가 실행중인 이유는?
----> 시작앱에 등록되었기 때문
* 시작 앱 확인 방법
- 검색창에 "시작 앱"을 입력하면 시작 프로그램이 뜸
- 반드시 부팅때마다 실행해야 할 것이 아니면 끔으로 설정
- 악성코드(특히 백도어)가 등록되어 있으면 부팅할 때마다 악성코드(백도어)가 실행됨
* 리눅스의 비밀번호는 /etc/shadow 에 저장 -----> 권한이 640으로 설정되어 있어서 root이면 볼 수 있음
윈도우의 비밀번호는 C:\windows\system32\config\SAM
------> 윈도우로 부팅하면 SAM파일이 잠기게 되어 있음 (열어 볼 수 없음)
------> 다른 운영체제(linux)로 부팅한 후에 SAM파일을 복사해서 열어보면 됨
실습) Windows7에서 실습합니다
- 시작버튼 누르고 regedit 엔터
* 시스템 최종 접속시간
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows
---> ShutdownTime에 보면 아래와 같은 값이 있음
D5 5C 69 AC 97 66 D8 01 ---> D55C69AC9766D801
https://doubleblak.com/blogPosts.php?id=7
Windows 64bit (Little Endian) 입력하면 ----> 13 MAY 2022 07:04:22 UTC
* Prefetch 파일에 대해서
- notepad를 한번 실행하고 나면 prefetch파일을 확인하면
- notepad.exe-~~~~.pf 파일이 생성되어 있음
- 속성에 보면 Prefetch를 만든시간이 notepad를 실행한 시간임
- 포렌식 자격증 시험 등 중요한 개념임
실습) Windows 7에서 시작 - 보조프로그램 - 스티커 메모 클릭해서 'Prefetch Test'라고 입력합니다.
Prefetch에서 찾아보세요~
참고) Windows 10에서 하려면 prefetch 폴더에 대한 user의 접근권한이 있어야 함
* ZIP파일 구조 : 구글에서 검색해보면 (PK : 50 4B)
- Header : 50 4B 03 04 14 00
- Central : 50 4B 01 02 14 00
- Footer : 50 4B 05 06
------> 얼만큼이 없는지 잘 모르기 때문에 남아있는 부분을 구글에서 검색해보면 없는 부분을 알 수 있음
실습) Mannayo 문제 풀기 : 어디서 만나기로 했을까요? 50분까지 풀어보세요~
37 7A BC AF 27 1C 00 03 1E FA ----> 7z
37 7A를 추가하고 확장자는 7z을 붙여서 압축을 풀면 yogi.tar 라는 파일이 나옵니다.
00 00 00 0D 49 48 44 52를 검색해보면, PNG의 일부이고, 없는 부분을 알 수 있음
89 50 4E 47 0D 0A 1A 0A 를 앞에 추가해주고, 확장자는 png를 붙여줍니다.
실습) Group은 무슨 그룹일까요? 15분까지 풀어보세요~
PDF 패스워드 크래킹 도구 다운로드 https://cafe.naver.com/boanworld/524
Advanced~~~~.zip 파일 다운로드 (Registration Number 안 넣어도 설치됨)
구글에서 검색해서 25 50 44 46 부분이 없음을 확인하고 추가해줌
8번 9번은 해킹대회문제 -----> 각자 실력되는 사람들만 풀어보기
* 까페에서 실습자료에 있는 'Network Forensic Contest' 파일 2개를 다운로드 합니다~
1번문제)
2번문제)
* 1번문제 풀이
Ann의 IP를 검색 : ip.addr == 192.168.1.158
1) Sec558user1
2) Here's the secret recipe... I just downloaded it from the file server. Just copy to a thumb drive and you're good to go
3) recipe.docx
TCP Stream단위로 찾다보면, tcp.stream eq 5 에 recipe.docx에 대한 파일이 있음
Frame contains recipe를 해보면 117번 패킷에 있음을 확인
4) 50 4B 03 04 (PK)
5) sugar + water
* 2번 문제 풀이
1) sneakyg33k@aol.com // 메일 계정 로그인할 때 Base64사용
2) 558r00lz (룰즈섹...)
3) mistersecretx@aol.com
4) fake passport and a bathing suit
5) secretrendezvous.docx
tcp.stream eq 1를 raw로 지정하고 mail.eml 메일로 저장
6) playa del carmen, Mexico