일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 덧셈 암호
- 백엔드
- 마감임박
- package.json
- 호이스팅
- 디오판투스 알고리즘
- 웹 프레임워크
- 개인정보안전성
- 동적타이핑
- arrow function
- 한국산업인력공단
- 국가인적자원개발컨소시엄
- 확장 유클리드 알고리즘
- node.js
- 모듈러 연산
- Writeup
- 한국정보보호산업협회
- 한국정보보호산업협회기자단
- function scope
- package-lock.json
- 개인정보보호위원회
- 포너블
- 유클리드_알고리즘
- 곱셈 암호
- 개인정보보호
- pwnable.tw
- 가명정보처리
- 백엔드입문
- 무료교육
- 개인정보보호교육
- Today
- Total
짱짱해커가 되고 싶은 나
[워드 프로세서 문서 암호 분석] 암호화된 한글 파일 분석 (1) 본문
분석 대상 - 한글 2020
한글 파일은, 기본적으로 압축파일이기 때문에 반디집 같은 툴을 이용해서 압축 풀기를 할 수 있다.
test라고 동일한 내용이 적혀있는 no_password.hwp와 yes_password.hwp 파일을 만들었다.
yes_password.hwp는 default인 보안 수준 높음으로 password로 암호를 저장했다.
크게 BodyText, DocOptions, Scripts 폴더가 있고, 암호화한 파일에는 PrvText, PrvImage 정보가 없는 것을 볼 수 있다.
(이로 인해 비밀번호가 있는 파일 크기가 더 작은 것 같다)
PrevText는 미리보기 글, PrvImage는 미리보기 이미지다.
FileHeader에는 HWP Document File이라고 적혀있었는데, 암호화된 파일과 암호화지 않은 파일에서 1비트의 값이 달랐다. 아마도 이 비트가 암호화가 되어있는지 아닌지 체크하는 비트로 추측 된다.
DocInfo의 값은 두 개의 파일이 굉장히 많이 달랐고 HwpSummaryInformation은 동일했다.
BodyText 폴더에는 Section0이 들어있고, 이 안에는 문서의 내용이 들어있다.
같은 내용을 저장했음에도 불구하고 비밀번호가 있는 파일의 용량이 더 크고 내용도 변해있다.
DocOptions 폴더에는 _LinkDoc 파일이 있었고, 원래는 user의 temp 파일의 경로(아마 링크되어 있는 경로)를 저장하고 있는데, 암호화된 파일은 값이 바껴있는 것을 볼 수 있다. (파일 크기는 동일)
Scripts 폴더에는 JScriptVersion 파일과 DefaultJScript 파일이 있다. 비밀번호가 설정된 파일의 크기가 더 크며,
이 연광성을 좀 더 구체화하기 위해, 기본으로 있는 Welcome to Hwp파일을 암호화한것과 아닌것을 비교해보자.
FileHeader를 보면 이전에 확인한 것과 동일한 내용이며 암호화된 파일은 1, 암호화되지 않은 파일은 3으로 이전 케이스와 완전히 동일하다.
DocInfo를 보면, 신기하게도 비밀번호가 없는 파일은 값이 달랐는데, 비밀번호가 걸린 파일은 0x0~0x8까지의 내용이 동일했다. 아마, sha{}이런식으로 암호화 하는 부분을 쓰는게 아닐까? 싶기도 하다..
그리고 Script 부분을 보면, JScriptVersion이 모든 한글 파일이 동일하다는 사실을 알 수 있다. (모든은 아닐지도 모르겠지만,, 거의 모든)
당연한 이야기이긴 한데, 글의 내용은 달라도 모든 문서가 기본적으로 갖고 있는 JScrpitVersion 파일의 내용이 갖기 때문에 암호화하는 패스워드가 같다면 각기 다른 문서의 암호화된 파일의 JScriptVersino의 내용이 같다. 물론, 패스워드가 다르면 암호화된 내용은 다르게 나타난다.
Welcome to HWP 파일을 passwor 를 비밀번호로 암호화하면 이 파일의 JScriptVersion은 다음과 같다.
이 점을 이용해서 레인보우 테이블을 만들 수 있을 것이다.
'Web hacking' 카테고리의 다른 글
[Cheat Engine] Tutorial - Step 7 (0) | 2021.07.23 |
---|---|
[Cheat Engine] Tutorial - Step 6 (0) | 2021.07.21 |
[Cheat Engine] Tutorial - Step 5 (0) | 2021.07.21 |
[Cheat Engine] Tutorial - Step 4 (0) | 2021.07.21 |
[Cheat Engine] Tutorial - Step 3 (0) | 2021.07.21 |