1. 레지스트리의 무선 AP 분석
- 윈도우 레지스트리
>운영체제의 설정을 저장하는 데이터베이스로 무선 통신과 관련된 정보가 저장됨
> 레지스트리의 키의 위치와 의미에 따라 실제 노트북 컴퓨터가 어디에 있었는지 확인 가능
> 윈도우(Vista 이후) HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList \Signature\Unamanged 밑 서브키에 각각의 네트워크를 저장함
> 저장된 값을 통해 Guid, 네트워크 설명, 네트워크 이름, 게이트웨이 MAC 주소등의 정보를 얻을 수 있음
2. WinReg로 윈도우 레지스트리 읽기
- 레지스트리는 게이트웨이 MAC주솔르 REG_BINARY 타입으로 저장함
주요 레지스트리 값의 종류 | |
REG_SZ | 일반문자열 |
REG_BINARY | 이진수 |
REG_DWORD | 32비트 정수 |
REG_QWORD | 62비트 정수 |
REG_MULTI_SZ | 다중 문자열 값 |
REG_EXPAND_SZ | 확장 가능한 문자열 |
- val2addr() : REG_BINARY값을 실제 MAC주소로 변환하는 함수
- printNets()
> _winreg 라이브러리 활용(레지스트리에 연결 후 OpenKey()함수를 통해 키를 열 수 있음(key의 네트워크 프로파일 정보를 가져올 수 있음)
> 프로파일에는 ProfileGuid, Description, Source, DnsSuffix, FirstNetwork, DefaultGatewayMac등의 서브키가 있음
3. MAC 주소로 AP의 물리적 위치 파악하기
- 여러 오픈소스와 상용 데이터베이스를 통해 무선 AP의 MAC주소를 가지고 AP의 물리적 위치를 출력 가능함
- 위글닷넷을 활용하는 스크립트 만들기
> 위글닷넷의 최초 페이지를 엶(http://wigle.net)
> 위글에 로그인(http://wigle.net/gps/gps/main/login)
> 위글에 특정 무선 SSID MAC주소를 쿼리(http://wigle.net/gps/gps/main/confirmquery/)
> MAC 주소 쿼리를 캡쳐하면 HTTP POST의 netid 파라미터에 AP의 GPS를 요청하는 MAC주소가 포함되어 있음
> 응답에는 GPS좌표가 포함되어 있으며, maplat, maplon 변수를 통해 AP의 위도와 경도를 알 수 있음
# 위글을 통해 물리적위치를 알 수 있는 스크립트
- mechanize를 통해 실체를 만든 후 위글 닷넷의 시작페이지를 엶
- 사용자의이름과 패스워드를 파라미터로 인코딩한 후 로그인 함
- netid를 파라미터로하여 데이터베이스를 검색하도록 HTTP POST를 전송함
- 검색 결과 중 maplat=과 maplon= 부분을 찾아서 위도와 경도를 얻어 튜플(tuple)로 반환함
4. 메타데이터
1) PyPDF로 PDF 메타데이터 분석하기
- ANONOPS_The_Press_Release.pdf라는 문서 다운로드
- PYPDF : PDF문서를 관리에 유용한 유틸리티로 문서정보추출, 문서분할, 통합, 잘라내기, 암호화, 해독기능을 제공함
- getDocumentInfo() : 메타데이터를 가져옴(이 메소드는 메타데이터 요소의 설명과 값이 포함되어 있는 튜플의 배열 을 반환함) > 튜플을 통해 PDF문서의 모든 메타데이털르 출력 가능
>> 하지만 pyPdf가 import 되지 않아 실행되지 않음...
2) Exif 메타데이터 이해하기
- Exif(Exchange Image File Format, 교환 이미지 파일 형식) 표준은 이미지 및 오디오 파일을 저장하는 방법에 대해 정 의함
- Exif 태크를 조사하려면 분량이 매우 많기 때문에 축약된 버전으로 살펴봄
- 사진의 위치정보와 같이 메타데이터는 악의정인 용도로도 사용 가능함
- beautiful Soup
> HTML과 XML 문서를 빠르게 구문분석 할 수 있음
> urllib2 라이브러리를 사용하여 문서를 엶
> beautifulsoup 객체 생성, 이 객체에서 .findall("img")메소드를 사용하여 모든 이미지 태그 추출
> 이미지 태그에서 소스 주소를 가져와 이미지의 바이너리 콘텐츠를 변수로 불러들임
> "write-binary"모드로 파일을 열어서 이미지의 콘텐츠를 파일로 씀
3) 파이썬 이미지 라이브러리로 이미지의 Exif 메타데이터 읽어오기
- PIL : 이미지 처리기능(in python)
- _getexif() : 파일의 메타데이터를 테스트하기 위해 객체를 PIL 이미지로 엶
- Exif 데이터를 배열로 처리하고 메타데이터 타입으로 인덱스화 함.
- 배열이 완료되면 GPSInfo가 있는 Exif 태그가 있는 지 배열을 검색함(GPS 메타데이터의 존재 여부를 알 수 있음)
>> URL 주소에 연결하여 모든 이미지 파일을 구문분석 및 다운로드 한 후 Exif 메타데이터의 존재 여부를 각 파일을 대상으로 테스트할 수 있게 됨(http://www.flickr.com/photos/dvids/4999001925/sizess/o)
>> 테스트 결과 이미지 중 하나에 GPS 메타데이터 정보가 있는 것을 알 수 있음
>> 공격자들이 사이트를 공격하기 전에 취약점이 있는지의 여부를 확인 가능
5. 파이썬으로 애플리케이션 사용흔적 수사하기
- SQLite 데이터베이스를 사용하는 데이터들을 활용함
(SQLite : 프로그래밍 언어로부터 독립적으로 바인딩하기 때문에 많은 애플리케이션, 특히 웹 브라우저의 로컬/클라 이언트 스토리지로써 인기가 많음, 클라이언트/서버 관계가 아닌 전체를 하나의 파일로 호스트에 저장함)
# 스카이프 Sqlite3 데이터베이스 이해하기
- SQLite 데이터베이스 사용
https://www.blackmoreops.com/2014/02/26/install-skype-in-kali-linux/
SELECT tbl_name FROM sqlite_master WHERE type=="table"
> SQLite 데이터베이스 중 sqlite_master라는 테이블에 tbl_name이라는 컬럼을 불러옴
> 해당 테이블에는 연락처, 통화기록, 계정정보, 문자메시지 등이 담겨있음
SELECT fullname, skypename, city, county, datetime(profile_timestamp, 'unixepoch') FROM accounts;
> account 컬럼으로부터 해당 데이터를 불러옴
# 파이썬과 Sqlite3으로 스카이프 데이터베이스 쿼리 자동화하기
* Accounts
- SELECT 문을 실행하는 것보다 자동화하는 것이 더 많은 컬럼과 테이블 정보를 가져올 수 있음
- printProfile() : main.db 데이터베이스와 연결을 생성후 프롬프트를 요구하고 SELECT문을 실행함
- SELECT 문의 결과는 array of arrays(배열의 배열)를 반환함
- 반환된 결과마다 사용자, 스카이프 사용자이름, 위치, 프로파일 날짜에 대한 컬럼이 인덱스화 되어 있음
* Contacts
- 이름, 스카이프 사용자이름, 위치, 휴대전화, 생일 정보가 저장되어 있음
* 두 개의 테이블 동시 출력
- Calls 테이블 + Conversations
- "SELECT datetime(begin_timestamp, 'unixepoch'), identity FROM calls, conversations WHERE calls.conv_dbid = conversations.id";
6. 파이썬으로 파이어폭스 Sqlite3 데이터베이스 구문분석하기
- download.sqlite
> 파이어폭스 사용자가 다운로드한 파일에 대한 정보가 있음
> moz_downloads라는 테이블 단 하나만 저장되어 있음
(파일이름, 다운로드한 사이트, 다운로드한 날짜, 파일 크기, 파일 저장한 위치 등이 저장되어 있음)
# 수사관이 인증이 필요한 사이트로 다시 로그인 하고 싶을 때(접근하기 위한 패스웓나 인증정보 없을 때)
- 쿠키활용(HTTP 프로토콜은 설계적으로 상태를 유지하지 않음)
- moz_cookies 테이블에서 호스트, 이름, 쿠키 값과 관련된 컬럼을 쿼리 후 출력함
- places.sqlite db : 방문기록 저장
- URL의 검색어 추출
> 방문기록 URL에 Google 중, q=와 &(검색어를 표시하는 문자들)가 있는 지 검색
> 검색어를 찾는 다면 URL에 있는 문자를 일부 교체하고 공백을 실제 공백으로 바꿔서 결과값을 깔끔하게 만듦
> 최종적으로 수정된 결과값을 화면에 출력함
7. 파이썬으로 iTunes 백업 조사하기
- iOS가 기기의 GPS좌표를 추적하고 consolidated.db에 데이터를 저장하고있음
- 데이터베이스 안의 Cell-Location이라는 테이블에는 전화기가 수집한 GPS포인트가 저장되어있음
> 기기는 주변에 있는 휴대전화 송수신 타워를 기반으로 삼각 측량을 실시하여 위치를 파악함
- 악의적인 목적으로 사용 가능
(현재는 해당 기능이 제거됨)
- 백업 파일 분석
> file * : 각 파일의 파일 타입을 가져옴
> 스크립트를 통해 디렉터리의 콘텐츠를 열거하고 각 파일에 데이터베이스 연결을 시도함
> 연결 성공시 - SELECT tbl_name FROM sqlite_master WHERE type=='table' 실행
- 모바일 백업 디렉터리에 있는 모든 데이터베이스의 구조를 열거하는 스크립트
- 문자메시지가 저장되어 있는 SQLite db가 어떤 것인지 판단하는 스크립트
- 날짜, 주소, 문자메시지를 출력하는 스크립트
" SELECT datatime(date, \'unixepoch\'), address, text from message WHERE address>0; "
'Security' 카테고리의 다른 글
2. 네트워크 트래픽 분석 (0) | 2020.03.21 |
---|---|
1. 네트워크 트래픽 분석(PyGeoIP, Dpkt 패킷, 구글어스) (0) | 2020.03.14 |
컨피커, 노력하면 된다 (0) | 2020.03.12 |
침투테스트(FTP와 웹을 이용한 대규모 공격) (0) | 2020.03.11 |
침투 테스트(포트스캐너 만들기, SSH 봇넷 구축하기) (0) | 2020.03.11 |