일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Multimedia
- 2022시작
- 포렌식
- CTF-D
- 디지털포렌식 with CTF
- 슬퍼유
- 윈도우 프로세스 종류
- 정보처리기사 필기 합격
- 네트워크 보안
- vinetto
- blkls
- 실기
- 생활코딩 html
- ftz
- 네트워크관리사2급
- network
- Window process
- 윈도우 프로세스
- pythonchallenge
- 24시간의 전사
- ZIP 파일구조
- N0Named
- slack space
- memory
- html
- disk
- Multimeida
- 디지털포렌식
- 생활코딩
- 는 하지마...
- Today
- Total
ssoL2 TISTORY
[WHOIS] 포렌식 교육 5주차 공부 / 스테가노그래피/openstego/zsteg/stegsolve.jar/steghide/이미지 스테가노 체크리스트 본문
[WHOIS] 포렌식 교육 5주차 공부 / 스테가노그래피/openstego/zsteg/stegsolve.jar/steghide/이미지 스테가노 체크리스트
ssoL2 2021. 2. 4. 17:25공부 1. 추천문서 bpsecblog.wordpress.com/2016/08/21/amalmot_4/ 정독 2. 스테가노 그래피 도구 알아보기 3. 이미지 스테가노 체크리스트 stegonline.georgeom.net/checklist 정독 |
1. 추천문서 정독하기
- 스테가노그래피(steganography) : 고대 그리스 언어 "stegos"(감추다) + "graphie"(글) = "감춰진 글"
- 일반 메세지에 비밀 메세지를 숨기고 최종 목적지에서 비밀 메세지를 볼 수 있는 것
- 호스트 파일(또는 carrier 파일) : 비밀 메세지를 저장하고 있는 파일
- 페이로드 : 호스트 파일 안에 숨겨진 비밀 문서
- 노이즈(noise) : 불필요한 데이터
- 각 파일의 노이즈에 페이로드를 숨기는 것
- 스테가노그래프 탐지는 어려우며 생성 시의 툴과 비밀번호를 모르면 페이로드 추출 매우 어렵거나 불가능
출처: https://ssol2-jjanghacker.tistory.com/entry/이제-시작이야-디지털-포렌식-Chapter-6-안티포렌식?category=909820 [ssoL2 TISTORY]
- 스태가노그래피: 이미지
- 삽입과 변조 두 가지 방법으로 이미지 파일에 메세지를 숨깁니다~!
1) 삽입
- JPEG, PNG, GIP 푸터 시그니처 뒤의 데이터는 무시되기 떄문에 데이터 숨김 가능
- 원본 이미지와 데이터를 숨긴 이미지는 차이가 없음
- 파일 헤더에도 이미지에 영향을 주지 않는 선에서 데이터 삽입 가능
- JPEG 파일 구조에서 파일 세부 사항 APPn 시그니처(FF Ex) 뒤~SOFn 시그니처(FF DA) 전까지 영역
- 이 역시 원본 이미지와 차이는 없다.
2) 변조
- 이미지를 변조하여 데이터를 숨기는 방법
- 최하위 비트인 LSB 변조
- 주로 JPEG, BMP 같은 24 Bit (빨강 8, 초록 8, 파랑 8) 이미지 파일에 적용 -> 변경 티가 별로 안남..주의
- 예를 들어 흰색이 0xFFFFFF인데 여기에 LSB 변조하여 FE가 섞여 있을 수 있음
- 이를 8 byte씩 끊어서 가져오면 8개의 자리수가 완성됨
- 여기서 FE의 LSB가 0이고 FF의 LSB가 1이므로 0과 1로 8자리 char을 만들어서 ASCII에 대응하여 글자 생성
- 흰색 바탕에서 LSB를 1만큼 변조하여 눈으로 파악 불가능하도록 만들어놓음..
- => 즉, 보기엔 똑같은 흰색 바탕인데 LSB가 1씩 차이난다면 변조 의심해봐야 함
- 물론, LSB나 MSB 변조뿐만 아니라 중간의 비트를 사용해서 데이터를 숨긴 경우도 존재함
- => 툴을 사용하거나 코드를 짭시다.
- 이미지 스테가노그래피 툴도 존재하지만, 직접 파이썬 코딩도 가능
- 아래는 Red의 네 번째 비트가 1인 경우 0xFFFFFF(흰색), 0인 경우 0X000000(검정)으로 나타내도록 코딩
'''
https://bpsecblog.wordpress.com/2016/08/21/amalmot_4/ 참조
Image Steganography
Bit Solve Tool
'''
import Image
def bitSolve(img):
img = Image.open(file)
width, height = img.size
for x in range(width):
for y in range(height):
curr_color = img.getpixel( (x,y) )
r,g,b = curr_color
if r&4 != 0:
r,g,b = (0xFF, 0xFF, 0xFF)
else:
r,g,b = (0, 0, 0)
img.putpixel( (x,y), (r,g,b) )
img.save("solved.png","png")
if __name__ == '__main__':
file = "DXvszyx7zAbjehgw.png"
bitSolve(file)
2. 스테가노 그래피 도구 알아보기
1) openstego
- 데이터를 숨기거나 숨겨진 데이터를 찾을 때 사용하는 스테가노그래피 오픈 툴
- openstego를 사용하려면 jre가 반드시 필요합니다
setupopenstego.exe 다운로드 -> github.com/syvaidya/openstego/releases
jre 다운로드(window10일 시 Windowsx64버전.exe 다운로드) -> www.oracle.com/java/technologies/javase-jre8-downloads.html
- 직접 사용해봅시다!
숨길 데이터인 페이로드를 만들어줍니다.
아래 그림은 제가 손수 그린 호스트 파일(비밀 메세지를 저장할 파일)입니다.
OpenStego.bat 실행파일 입니다! [Hide Data] 영역을 눌러 데이터를 숨겨봅시다.
Message File -> 페이로드
Cover File -> 호스트 파일
Output Stego File은 커버한 파일을 내보낼 파일로, 아무것도 없는 빈 파일을 만들어서 bmp 형식으로 저장했습니다.
간단히 데이터만 숨기는 목적이므로 패스워드 없이 숨겨봅시다.
아래는 overwrite된 ssol2_cover.bmp입니다. 그냥 보기에는 호스트 파일과 똑같은 그림입니다.
이제 반대로 [Extract Data] 영역을 선택하여 숨겼던 파일을 추출해봅시다.
Input Stego File을 통해 cover 파일을 올리고, 내보낼 파일 주소를 입력해서 추출합니다.
그러면 그대로 페이로드가 추출됩니다 !
2) zsteg
- png 및 bmp 파일에서 숨겨진 데이터를 감지 할 수 있는 도구
zsteg 설치 방법 -> ssol2-jjanghacker.tistory.com/entry/You-dont-have-write-permissions-for-the-varlibgems270-directory-%EC%98%A4%EB%A5%98-%EB%8C%80%EC%B2%98-%EB%B0%A9%EB%B2%95
zsteg 옵션 방법이다. 상당히 많지만 일단 [-a] 옵션이 모든 걸 출력하니까 이거 사용하면 유용할 듯 !
약간 이런 식으로 나온다는 말~~~ 뭔가 가장 수상해보이는 것부터 출력해주는 기분... 나만 그런가옹 ?
3) stegsolve.jar
- 이미지 스테가노그래피 툴
- openstego.bat 툴처럼 자바가 필수로 필요합니다 !
다운로드 안내 -> ddang-9.tistory.com/31
- 한번 사용해봅시다.
열자마자 나오는 stegsolve ! [File]에서 분석할 파일 오픈합시다.
원래 그림(Normal image)
하단에 위치한 화살표 버튼 이용해서 요리조리 RGB 값 바꿔가면서 볼 수 있습니다~
4) steghide
- 이미지에 데이터를 숨기거나 추출해내는 툴
- 사용해봅시다.
나는 설치를 했었어서...already라고 나오는데, sudo apt-get install steghide -y 치면 된다.
steghide의 수많은 옵션들...이 출력되는데 다 필요없고(나에게는..)
제일 마지막줄만 보면 된다.
txt 파일을 숨기려면 steghide embed -cf jpg -ef txt
txt 파일을 빼내려면 steghide extract -sf jpg
steghide 툴은 PNG는 안되고 JPG만 되는듯 싶다.. PNG해보니까 지원되지 않는다고 나옴
그리고 바로 위에 사진 마지막줄에도 JPG 예시만 나와있음..!
steghide 툴로 숨기는 상황이다. passphrase도 물어본다.
다시 잘 해체된 모습이다..
overwrite를 물어보는 건 이미 txt 파일이 존재하기 때문이다. 문제 풀 때는 나타나지 않을 것 !!
3. 이미지 스테가노 체크리스트 정독
- 스테가노그래피 이미지 문제 풀 때 체크리스트
1) File
- file filename 명령어로 파일의 타입을 확인합니다.
2) Strings
- strings -n 7 -t x filename 명령어로 모든 strings를 보여줍니다.
- [-n 7] 옵션은 7글자 이상으로, [-t x]는 파일에서의 string 주소를 출력합니다.
3) Exif
- 모든 이미지 파일의 metadata를 확인합니다.
Jeffrey's Image Metadata Viewer -> exif.regex.info/exif.cgi
4) Binwalk
- binwalk를 사용해서 이미지 안의 숨겨진 파일을 확인합니다.
- 기본적으로 binwalk filename 하면 숨겨진 파일의 목록을 출력합니다.
- binwalk -Me filename 명령어에서 [-Me] 옵션은 숨겨진 파일들을 독립적으로 추출까지 해줍니다.
binwalk 명령어 사용한 모습이고, 숨겨진 파일 목록을 출력만 합니다.
[-Me] 옵션이 들어가서 숨겨진 파일들을 모두 추출해서 새로운 폴더가 생긴 모습입니다.
5) pngcheck
- png의 청크를 확인하기 위한 명령어입니다.
- 만약 이미지가 손상이 갔다면 중요한 단서가 될 수 있습니다.
- pngcheck -vtp7f filename 명령어는 모든 정보를 출력합니다.
- [v] 옵션은 설명 옵션, [t] 과 [7] 옵션은 tEXt 청크를 출력하고 [p] 옵션은 몇몇 청크의 설명, [f] 옵션은 에러 설명
6) Explore Colour & Bit Planes
- 이미지의 색상 테이블 및 비트에 숨겨져 있을 경우 이용하는 사이트
사이트 -> stegonline.georgeom.net/upload
- 해당 사이트에서 이미지를 upload
- 이후 [Browse Bit Planes] 을 눌러서 모든 가능한 경우의 컬러 비트 변환을 볼 수 있다.
- [Extract Files/Data] 을 누르면 일부 데이터 추출도 가능하다.
7) Extract LSB Data
- 아래 사이트에 들어가 [Extract Files/Data] 을 누르면 일부 데이터 추출도 가능하다.
사이트 -> stegonline.georgeom.net/upload
8) Check RGB Values
- 이미지의 RGB(A) 값에 ASCII 문자 및 데이터가 숨겨져 있을 수 있다.
- [RGBA] preview를 보면서 ASCII를 찾을 수 있다.
사이트 -> stegonline.georgeom.net/upload
9) Found a password? (Or not)
- 만약 패스워드를 발견했다면 스테가노그래피 툴을 사용해야한다.
- 먼저 steghide 툴을 사용한다. (물론 패스워드 없어도 사용 가능하다)
- steghide 툴 이외에도 OpenStego 등등을 사용할 수 있다.
10) Browse Colour Palette
- PNG 속에 PLTE 청크가 type 3(indexed color) 이라면 그 속에 숨겨져 있을 가능성도 존재한다.
참고 사이트 -> www.w3.org/TR/PNG-Chunks.html
11) Pixel Value Differencing
- 스테가노그래피 방식이라고 말하지 않았을 경우에는 접근하기 굉장히 힘들기에 드물다.
- 픽셀의 짝들이 약간 조정된 것의 차이로 파악한다.
- 아래 사이트에서 PVD의 특징이 나와있다.
www.semanticscholar.org/paper/Pixel-Value-Differencing-a-Steganographic-method%3A-A-Salunkhe-Sirsikar/496ce48b441e70e475538fb4ad533972e0d887b2?p2df
< 참고 사이트 >