본문 바로가기
Forensic

Network Packet에서 Signature를 이용하여 파일 훔쳐 보기.

by 웹하는빡통 2020. 4. 30.

File Carvig이란: 파일 자체의 바이너리 데이터(content, singnature, header 등)을 이용해 디스크의 비할당 영역에서 파일을 복구하는 기법이다. 

즉 쉽게 말해 Carving을 통하여 파일을 훔쳐보는 것이다. 일단 실습에 앞서 간단하게 실습에 필요한 지식에 대해 설명하겠다. 

 

Network Packet의 구성요소 부터 알아보자. 

네트워크 패킷 요소는 이렇게 나누어져 있는데 IP Datagram에 우리가 원하는 데이터들이 담겨있다. 

EX))  ID/PW, 파일 내용, 파일 업로드, 다운로드 등 이런 정보들이 담겨있는데 

이런 정보들을 패킷을 캡처하면 훔쳐 볼 수 있는데 패킷에서 바로 볼 수는 없다.

이때 이용하는 것이 File Carving이다. 

File Carving은 File recovery방법의 하나이다. 

File recovery에는 Data recovery 방법과 File Carving이 있다. 이 둘은 파일을 복구한다는 목적은 똑같다.

하지만 이 둘의 차이점이 있는데 먼저 파일 구조에 대해서 설명하겠다

 

 

파일 구조에는 Meta data영영과 data영역으로 나누어저 있는데

Meta data에는 파일이름,날짜,크기가 들어가있고 Data영역에는 파일 내용이 담겨있다

data recorveryMeta data영역을 활용하고 File carvingData영역을 활용한다. 이렇게 우리는 파일 Carving을 이용해 data영역에 접근하여 데이터를 뽑아올 것이다. 

 

File Carving에는 5가지 방식있다. 

1. Signature 방식 
2. Ram slack 방식
3. File Structure 방식
4 file size 방식
5 file structure vertification(파일 구조 검증 방식) 

 

여기서 비교적 쉬운 signature방식을 이용하여 Carving을 할 것 이다. 

 

Signature에는 Header Signature과 Footer Signature이 있다.

Header Signature: 파일의 처음에 존재하여 파일의 시작을 알 수 있다.

Footer Signature: 파일의 끝에 존재하여 파일의 끝을 알 수 있다. 

 

File carving 전재 조건

1. 네트워크 패킷을 볼 수 있어야 한다.
2. 암호화 통신을 하지 않아야 한다.

 

자 ~~ 이제 설명은 그만하고 실습하러 가보자.

 

실습하기.

먼저 와이어 샤크를 실행하여 우측 상단에 Help --> Sample Captures를 클릭한다. 그러면 해당 사이트로 이동하는데.

 

그 다음 19번에 있는 HTTP를 클릭한다.

 

JPEG가 있는 패킷을 다운로드 하자. 

 

다운로드를 하면 해당 http_witp_jpegs.cap이라는 패킷이 다운로드가 된다. 클릭하자. 

 

이제 파일이 있는 패킷을 찾아야 하는데. 우리는 필터링을 통해 http protocol만 사용하는 패킷만 보도록 하자. 그러면 HTTP 패킷만 나오는데 이렇게 많은 패킷 중 sydeny.jpg를 TCP Stream을 이용해 열어보자. 

 

계속 내리다보면 JFIF라는 확장자 존재하는데 JFIF는 JPEG로 압축된 파일이 JFIF로 저장이되는데 그 확장자가 JPH/JPEG이다.  즉 JFIF가 있으면 JPG/JPRG 확장자라는 의미이다. 이제 이것을 row Data로 저장하자.

 

이렇게 row Data로 저장한 파일을 Hex Edit로 File Signature분석을 해보자. 

 

이제 우리는 file signature를 찾아야 하는데 아까 jpeg 확장라는 것을 알고 있었다. 구글 검색을 이용하여 jpeg파일 시그니처를 찾으면 된다. 즉 이 부분이 JPEG의 header signature이자 시작 포인트이다. 

 

그 다음 JPEG의 Footet Signature를 알아내 끝 지점을 알아내자. 

 

그 다음 Header Signature 기준으로 앞에 있는 Data를 삭제하고 저장을 해준면 된다.

여기서 저장 할때 확장자는 jpeg로 바꿔주고 저장을 해줘야 한다. 

 

저장을 하면 jpeg로 파일 생기고 열어보면 시드니 사진이 나와있는 걸 알 수 있다. 

댓글