일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 포렌식
- k8s
- 정보보안기사
- 정보보안
- iam
- AWS Elasticsearch
- ISMS
- Autopsy
- 정보보안기사 실기
- CFReDS
- The Sleuth Kit
- isms-p
- hacking case
- ISMS-P 인증심사원
- AWS Opensearch
- AWS 쿠버네티스
- 해킹
- AWS EKS
- 쿠버네티스
- AWS
- artifacts
- kubernetes
- 보안
- 실습
- TSK
- forensic
- 보안기사
- AWS EKS Udemy
- 모의해킹
- SMS-P 인증 기준 안내서 요약
- Today
- Total
Always-Try(정보보안 및 일상)
포렌식/윈도우 - ELK 설치 및 Plaso(psort.py)를 이용한 ELK에 포렌식 데이터 저장 (+ELK 기초 명령어) 본문
포렌식/윈도우 - ELK 설치 및 Plaso(psort.py)를 이용한 ELK에 포렌식 데이터 저장 (+ELK 기초 명령어)
Always-Try 2021. 3. 1. 17:44본 게시글은 인프런 '맥으로 배우는 윈도우즈 포렌식'를 참고하여 작성했습니다. (www.inflearn.com/course/forensic-2/dashboard)
#1. ELK
1-1. ELK란?
검색 엔진인 ElasticSearch, 로그 저장 기능을 하는 Logstash, 시각화 기능을 담당하는 Kibana 이 3개를 합쳐서 ELK 라고 부르며, 다양한 정보들을 빠르게 저장 및 검색할 수 있는 기능을 하는 유용한 프로그램이다.
1-2. ELK 설치 (Mac)
1) Java8 설치
Java SE Development Kit 8 - Downloads (oracle.com)
2) elasticsearch 설치
$ brew install elasticsearch && brew info elasticsearch
$ brew services start elasticsearch
3) logstash 설치 및 실행
$ brew install logstash
$ brew services start logstash
4) kibana 설치 및 실행
$ brew install kibana
5) 실행된 서비스 확인
$ brew services list
6) pyelastic 설치
$ git clone https://github.com/elastic/elasticsearch-py.git
$ cd elasticsearch-py
$ sudo python setup.py install
7) 접속
127.0.0.1:5601
1-3. E01에서 추출한 아티팩트를 ELK로 저장하는 실습
본 실습의 1)~6) 까지는 아래 포스팅의 실습 과정과 똑같다.
2021/03/01 - [Forensic] - 포렌식/윈도우 - E01에서 아티팩트 추출 (E01에서 추출한 아티팩트를 타임라인 순으로 csv 저장 실습)
다른 사항은 7), 8)번 항목인데, 위 포스팅에서 psort를 이용하여 csv로 저장했던 것이 ELK로 저장된다고 생각하면 된다.
1) 볼륨 디렉토리 생성
sudo mkdir /Volumes/DMG
2) EWF 이미지를 dmg 형태로 변환
sudo xmount --in ewf vmImage.E?? --out dmg /Volumes/DMG
3) dmg 이미지 인식 (마운트는 X)
hdiutil attach -nomount /Volumes/DMG/vmImage.dmg
4) TSK를 이용하여 인식된 dmg에서 아티팩트 정보를 추출하여 fls 파일 형태로 저장
fls -h -p -r -m '' -z Asia/Seoul /dev/disk2s1 > disk2s1.fls
-> root로 진입하지 않고 sudo로 수십번 시도 했으나, 항상 permission denied 로 실패하거나 read-only file system: disk2s1.fls 로 실패했다. 결국 root로 진입해서 fls -h -p -r -m '' -z Asia/Seoul /dev/disk2s1 > /저장경로/disk2s1.fls 했더니 성공
5) artifactsExtracter.py와 fls 파일에 포함된 파일명, inode 정보 등등의 정보를 조합하여 아티팩트 추출 (파일명, inode및 icat 명령어를 사용하여 추출하며 추출한 정보는 /result 폴더에 저장)
python artifactsExtracter.py disk2s1.fls /dev/disk2s1
6) result 폴더에 저장된 아티팩트들을 Plaso log2timeline을 이용해서 Plaso 타임라인 형식으로 저장
sudo python3 log2timeline.py -z Asia/Seoul --hashers none timeline.plaso /아티팩트경로/result/ 실행
-> https://github.com/log2timeline/plaso/releases/latest에서 sourcecode (tar.gz) 파일로 받아서 plaso.readthedocs.io/en/latest/sources/user/MacOS-Source-Release.html 와 같이 설치해야된다. (설치 시간이 좀 걸림)구글링으로 다운 받은 다른 파일로 설치하다가 고생했는데, 받으라는 걸로 받고, 설치하란대로 설치하면 잘 된다.
7) Plaso의 psort를 이용하여 Plaso 형태의 타임라인을 ELK로 전송
sudo posrt.py -o elastic --server 127.0.0.1 --port 9200 --raw_fields --index_name evidence1 timeline.plaso --elastic_mappings /plaso설치경로/data/elasticsearch.mappings
-> 강의에는 --elastic_mappings /plaso설치경로/data/elasticsearch.mappings 가 빠져있는데, 저걸 빼면 실행이 되지 않는다. 강의에서 사용하는 Plaso와 현재 최신 버전의 Plaso의 버전이 달라서 그런 것으로 생각된다.
8) ELK에서 인덱스 생성 및 조회
psort에서 지정해준 인덱스를 ELK에서도 지정해주는 작업이 필요하다. index pattern에 똑같이 evidence1로 넣어주고 다음 페이지에서 datatime을 선택하면 된다.
그럼, 이제 Discover 메뉴에서 아래와 같이 데이터를 볼 수 있다.
이제 강의가 끝났다.
온라인 강의의 장점을 살려서 어려운 부분은 여러번 반복해서 들었지만, 사실 아직도 100% 이해했다고 하긴 어렵다. 그래도 어떤식으로 가야하는지 어렴풋한 방향은 잡은 것 같다. 이후에도 새로운 도전을 통해 포렌식에 대한 이해도를 높여가도록 할 것이다.
ps. ELK 기초 명령어
1) ELK에 저장한 로그 모두 삭제
jin@jinui-MacBookAir 7.10.2 % curl -XDELETE 'http://127.0.0.1:9200/_all'
{"acknowledged":true}% jin@jinui-MacBookAir 7.10.2 %
jin@jinui-MacBookAir 7.10.2 %
jin@jinui-MacBookAir 7.10.2 %
2) 특정 인덱스에 대한 로그만 삭제
특정 인덱스에 대한 것만 지울때
curl -XDELETE localhost:9200/indexname
3) ELK가 정상적으로 실행되는지 확인
curl -XGET localhost:9200
4) 관련 경로 (mac brew로 설치 시)
# Path to directory where to store the data (separate multiple locations by comma):
path.data: /usr/local/var/lib/elasticsearch
# Path to log files:
path.logs: /usr/local/var/log/elasticsearch/
# Psort한 파일들이 남는 경로
5) brew 서비스 관련
끝.
'Forensic' 카테고리의 다른 글
The CFReDS Project - Hacking Case 1번 (Data Source Verification) with autopsy (0) | 2021.03.04 |
---|---|
포렌식/윈도우 - ELK Kibana를 이용한 포렌식 대시보드 만들기 (0) | 2021.03.01 |
포렌식/윈도우 - Plaso (log2timeline) Parser 리스트 (0) | 2021.03.01 |
포렌식/윈도우 - E01에서 아티팩트 추출 (E01에서 추출한 아티팩트를 타임라인 순으로 csv 저장 실습) (0) | 2021.03.01 |
포렌식/윈도우 - Carving (PE 파일 추출 실습 포함-with 010 Editor) (0) | 2021.02.28 |