본문 바로가기

해커의 언어, 치명적 파이썬

3장 포렌식 수사

레지스트리의 무선 AP 분석


윈도우 레지스트리는 운영체제의 설정을 저장하는 데이터베이스이며 무선 통신 관련 정보 저장한다.

윈도우는 각각의 네트워크를 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged 밑의 서브키에 저장한다.

*관리자 모드로 프롬프트를 실행해야 한다.

Guid, 네트워크 설명, 네트워크 이름, 게이트웨이 MAC 주소 등의 정보를 볼 수 있다.

 

 

WinReg로 윈도우 레지스트리 읽기

discoverNetworks.py
결과

아무 일도 일어나지 않았다.

리눅스에서도 실행되지 않았다. 침착하게 다음으로 넘어가도록 하자.

 

 

MAC 주소로 AP의 물리적 위치 파악하기

->mechanize 브라우저의 실체를 만든다

->위글닷넷의 시작 페이지를 연다

->사용자이름과 패스워드글 파라미터로 인코딩하고 위글 로그인 페이지에서 로그인을 요청한다

->데이터베이스를 검색할 수 있도록 netid 파라미터를 MAC 주소로 사용하여 HTTP POST 를 전송한다

->검색 결과 중 maplat=과 maplon= 부분을 찾아서 위도와 경도를 얻는다

->이 좌표를 튜플(tuple)로 반환한다

 

discoverNetworks.py

무사히 실행된다면 이전에 연결했던 무선 네트워크와 함께 물리적 위치가 보인다.

 

 

파이썬으로 휴지통에서 삭제된 아이템 복구하기


마이크로소프트 운영체제에서는 휴지통에 삭제된 파일을 보관하는데 실제로 삭제된 것은 아니다. 휴지통의 위치는 다음과 같다.

윈도우 98, 그 이전의 윈도우 버전 : 'C:\Recycled\'

윈도우 NT, 2000, XP를 포함한 NTFS를 지원하는 운영체제 : 'C:\Recycler\'

윈도우 비스타, 7 : 'C:\$Recycle.Bin'

 

OS 모듈로 삭제된 아이템 찾기

두 개의 서브 디렉터리는 공통된 문자열을 가지고 있는데 이것은 사용자 SID를 나타낸다. SID는 사용자 계정마다 가지고 있는 고유의 번호다.

 

파이썬으로 SID를 사용자 계정으로 매핑하기

뭐가 되긴 된다.

dumpRecycleBin.py

휴지통에서 삭제된 아이템을 복구했을 때 누가 해당 아이템을 삭제했는지에 대한 정보를 출력하는 스크립트이다.

결과

뭐가 문제인걸까? 하..

 

 

 

메타데이터


메타데이터는 문서, 스프레드시트, 이미지, 오디오, 비디오 파일 등에 저장되어 있다. 문서 작성 애플리케이션은 파일의 저자, 생성 및 수정 일시, 버전 그리고 파일에 대한 설명과 같은 세부정보를 파일에 저장할 수도 있다. 파이썬으로 이 파일들을 일일이 확인하는 작업을 자동화할 수 있다.

 

PyPDF로 PDF 메타데이터 분석하기

Wired.com에서 미러링하고 있는 어나니머스의 문서 다운로드하기

 

- PYPDF : 문서 정보를 추출, 분할, 통합, 잘라내기, 암호화, 해독하는 기능 제공

- .getDocumentInfo() : 튜플의 배열을 변환

- 각 튜플에는 메타데이터 요소의 설명과 값이 포함

pdfRead.py

 

결과

pyPDF가 import 되지 않아 실행이 안된다.

 

Exif 메타데이터 이해하기

교환 이미지 파일 형식(Exchange Image File Format, 이하 Exif) 표준은 이미지 및 오디오 파일을 저장하는 방법에 대해서 정의한다. 필 하비(Phil Harvey)가 정의한 exiftool로 exif 태그들을 분석할 수 있다.

http://sno.phy.queensu.ca/~phil/exitfool/

불러오는 중입니다...

 

BeautifulSoup으로 이미지 다운로드하기

Beautiful Soup은 HTML과 XML 문서를 빠르게 구문분석할 수 있게 해준다.

http://www.crummy.com/software.BeautifulSoup/ 

불러오는 중입니다...

 

파이썬 이미지 라이브러리로 이미지의 Exif 메타데이터 읽어오기

PIL(Python Image Library)은 http://www.pythonware.com/products/pil/ 에서 다운로드할 수 있으며 파이썬에 이미지 처리 기능을 제공한다. 또한 이미지 파일에 있는 위치 정보와 관련 있는 메타데이터를 쉽게 가져올 수 있게 해준다.

 

exifFetch.py
결과

공격자들이 사이트를 공격하기 전에 취약점이 있는지의 여부를 이제 직접 확인할 수 있게 되었다.

 

파이썬으로 애플리케이션 사용흔적 수사하기


SQLite 데이터 베이스

- 프로그래밍 언어로부터 독립정으로 바인딩 => 웹 브라우저의 로컬/클라이언트 스토리지로써 인기가 많음

- 클라이언트/서버 관계를 유지하는 다른 데이터베이스와는 다르게 데이터베이스 전체를 하나의 파일로 호스트에 저장

 

스카이프 Sqlite3 데이터베이스 이해하기

SELECT 문을 실행하면 스카이프의 main.db 데이터베이스에 있는 모든 테이블들을 볼 수 있다. 근데 안된다. 왜일까?

원하는데로 다 되면 얼마나 좋을까?

 

 

 

파이썬과 Sqlite3으로 스카이프 데이터베이스 쿼리 자동화하기

printProfile.py
결과

skypeDB 다운 받은거 아닌가? 왜 이럴까? 하면 할수록 의문이 쌓인다.

 

 

 

파이썬으로 파이어폭스 Sqlite3 데이터베이스 구문분석하기

downloads.sqlite

- 파이어폭스 사용자가 다운로드한 파일에 대한 정보가 담겨있음

- moz_downloads라는 테이블 단 하나만 저장되어 있음

->moz_downloads : 파일 이름, 다운로드한 사이트, 다운로드한 날짜, 파일 크기, 파일을 저장한 위치 등이 저장되어 있음

firefoxDownloads.py

사용자가 파이어폭스로 언제 특정 파일을 다운로드했는지 알 수 있게 되었다.

현재 조사 중인 사용자로부터 쿠키를 추출하는 파이썬 스크립트.

파이어폭스는 places.sqlite라는 데이터베이스 안에 방문기록을 저장.

moz_places 테이블 : 언제(date), 어떤(address) 사이트를 방문했는지 알려줌

구글의 검색 쿼리는 URL에 검색어 자체가 들어가 있다. 검색어를 찾으면 URL에 있는 문자(q=, &)를 일부 교체하고 공백을 실제 공백으로 바꿔서 결과값을 깔끔하게 만든다.

 

이를 모두 조합하면 이제 다운로드한 파일, 쿠키, 프로파일 방문기록 그리고 사용자가 검색한 언어까지 출력하는 함수들이 완성된다.

 

 

 

파이썬으로 iTunes 백업 조사하기


애플의 iOS 운영체제가 기기의 GPS 좌표를 추적하고 기록, consolidated.db라는 데이터베이스에 저장

->기기 사용자에게 좋은 서비스 제공이 목적이지만 악의적으로 사용될 수 있음

(현재는 기능 제거)

 

유닉스 명령어 file : 파일의 헤더와 푸터의 식별 바이트를 사용하여 파일 종류 판단

책과 다르기는 하지만 무언가 나오기는 했다.

모바일 백업 디렉터리에 있는 데이터베이스의 구조를 열거

디렉터리를 스캔, 문자 메시지가 저장되어 있는 SQLite 데이터베이스가 어떤 것인지 판단

데이터베이스에 저장되어 있는 데이터(날짜, 주소, 문자 메시지)를 출력

 

아이폰 백업 디렉터리에 이 스크립트를 실행하면 아이폰 백업에 저장되어 있는 최근 문자 메시지들을 볼 수 있다.

'해커의 언어, 치명적 파이썬' 카테고리의 다른 글

6장 정보수집  (0) 2020.03.29
5장 무선 기기 해킹  (0) 2020.03.22
4장 네트워크 트래픽 분석  (0) 2020.03.15
2장 침투 테스트  (0) 2020.03.13
1장 소개  (0) 2020.03.13