Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Find
- vi 외부 명령어
- libpcap
- >
- KASAN
- linux
- #IntelManual
- vim
- #IntelManual #segment Descriptor #세그먼트 디스크립터 #MINT64 #Sqix
- Network
- #Qt Creator
- libtins
- command
- Overwatch League SaberMetrics
- ftz
- BEST of the BEST
- #
- #MINT64 #Sqix
- 오버워치
- 오버워치 세이버메트릭스
- FTZ 레벨2
- #Best of the Best #OS #MINT64 #Sqix
- vi
- Sqix
- C++11
- 인터럽트
Archives
- Today
- Total
Sqix
FTZ Level8 본문
===================================================
$ cat hint
level9의 shadow 파일이 서버 어딘가에 숨어있다.
그 파일에 대해 알려진 것은 용량이 "2700"이라는 것 뿐이다.
===================================================
Shadow 파일 용량이 2700이라고 하니, 아마 2700바이트를 의미하는 것 같습니다.
그 전에 Shadow 파일이 무엇인지에 대해서 자세히 알아보는 것이 좋을 것 같습니다.
리눅스 시스템은 단방향으로 암호화한 패스워드를 포함해서 계정 유효 기간 등의 정보를 /etc/passwd에 보관합니다.
이 파일은 수정할 수는 없지만, 이전에는 이 정보를 아무나 볼 수 있었습니다. 따라서 보안 문제가 있었습니다.
이를 해결하기 위해 도입된 것이 shadow라는 패스워드 시스템입니다.
shadow 파일의 권한은 -r---------로, Root 권한으로의 읽기만 허용이 됩니다. 꽤나 안전한 방법입니다.
그리고 이 또한 /etc/shadow 위치에 존재합니다.
shadow의 계정 정보는 다음의 구조를 따릅니다.
level9:$1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps.:11040:0:99999:7:-1:-1:134549524
1 2 3 4 5 6 7 8 9 10 11
1. 사용자 계정명
2. Hashid. 1은 MD5, 2a는 Blowfish, md5는 md5, 5는 SHA-256, 6은 SHA-512
3. Salt (Rainbow Table을 이용한 Brute Force를 방지하기 위한 값)
4. Hash Value (실제 해쉬값)
5. Last Changed(1970.1.1 이후로 패스워드가 며칠 뒤에 마지막으로 수정되었는가)
6. Minimum(패스워드 변경 전 최소 사용기간)
7. maximum (패스워드 변경 전 최대 사용시간)
8. Warn (패스워드 만기 <Warn>일 전에 경고 메시지 제공)
9. Inacvite (로그인 접속 차단된 날짜 수)
10. Expire (로그인 금지일 수)
11. Reserved (사용되지 않는 필드)
처음에는 MD5-decode 코드를 작성하여 해결하려 했으나, Rainbow Table 부분에서 많이 막혀서, 이번에는 툴을 이용해 보기로 했습니다.
제가 사용한 tool은 Hashcat입니다.
https://github.com/hashcat/hashcat에서 클론하여 이용하실 수 있습니다.
단, openCL을 이용하는 프로그램이기 때문에 여기에서 opencl을 다운로드 하셔서 이용하셔야 합니다.
우선, shadow file의 크기가 2700바이트이기 때문에, find 명령어를 이용해야 합니다. txt파일은 하나이기에, 이를 cat하여 봅시다.
$ find -size 2700c 2> /dev/null
$ cat /etc/rc.d/found.txt
그러면 level9:$1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps.:11040:0:99999:7:-1:-1:134549524 이라는 문장이 나타납니다.
이제 이를 hashcat을 이용하여 solve합니다. example500.hash에 $1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps.을 넣어 줍니다.
그 후, example500.sh을 실행해 줍니다.
'Wargame > FTZ' 카테고리의 다른 글
FTZ Level10 (0) | 2018.06.18 |
---|---|
FTZ Level9 (0) | 2018.06.18 |
FTZ Level7 (0) | 2018.06.12 |
FTZ Level6 (0) | 2018.06.12 |
FTZ Level5 (0) | 2018.06.12 |
Comments