( 01 ) Type 0
이것은 라우터가 실행/시작 파일에 저장할 때 암호가 암호화되지 않음을 의미함.
명령어 : enable password cisco123
( 02 ) Type 4
이것은 라우터가 SHA-256 을 사용하여 실행/시작 파일에 저장할 때 패스워드가 암호화된다는 것을 의미함.
이 유형은 IOS 15.3(3) 부터 더 이상 사용되지 않음.
Cain & Abel 과 같은 프로그램을 이용하여 크랙할 수 있지만 시간이 오래 걸림.
명령어 : enable secret 4 Rv4kArhts7yA2xd8BD2YTVbts
(위 명령어 주의사항! 문자열 자체가 암호가 아니라 암호의 해시값임)
( 03 ) Type 5
이것은 라우터가 MD5 를 사용하여 실행/시작 파일에 저장할 때 패스워드가 암호화된다는 것을 의미함.
Cain & Abel 과 같은 프로그램을 이용하여 크랙할 수 있지만 시간이 오래 걸림.
명령어 : enable secret 5 00271A5307542A02D22842
(위 명령어 주의사항! 문자열 자체가 암호가 아니라 암호의 해시값임)
or
enable secret cisco123
(위 명령어 주의사항! 문자열 자체가 암호임)
참고로 FreeBSD 에서 MD5 Crypt 로 알려진 알고리즘을 널리 사용됨.
Cisco 는 IOS 운영 체제에서 동일한 FreeBSD 암호화 라이브러리를 사용하므로 Type 5 해시 형식은 FreeBSD 암호 알고리즘과 동일함.
단, 유일한 예외는 Cisco 가 대부분의 시스템에서 사용하는 8 개 대신 4 개의 솔트 문자를 요구한다는 것임.
< FreeBSD 와 Cisco 간의 암호 해시 비교 >
< Cisco Type 5 암호 해시 분석 >
( 04 ) Type 7
이것은 라우타가 Vigenere 암호를 사용하여 실행/시작 파일에 저장할 때 패스워드가 암호화된 것을 의미함.
Type 7 리버서(Reverser) 가 있는 웹사이트에 1초 이내로 크랙할 수 있음.
Cisco 암호 크래킹 사이트 :
https://www.ifm.net.nz/cookbooks/passwordcracker.html
명령어 : ena password cisco123
service password-encryption
( 05 ) Type 8
이것은 라우터가 PBKDF2-SHA-256 을 사용하여 실행/시작 파일에 저장할 때 패스워드가 암호화된다는 것을 의미함.
IOS 15.3 (3) 부터 사용이 가능함.
여기서 PBKDF2-SHA-256 는 보안 해시 알고리즘 26비트(SHA-256)를 해싱 알고리즘으로 사용하는 암호 기반 키 파생 함수 2(PBKDF2)임.
사용예1 :
R1(config)#enable algorithm-type sha256 secret cisco
R1(config)#do sh run | i enable
enable secret 8 $8$mTj4RZG8N9ZDOkelY/asfm8kD3iDmkBe3hD2r4xcA/0oWS5V3os.O91u.
사용예2 :
R1(config)# username yasser algorithm-type sha256 secret cisco
R1# show running-config | inc username
username yasser secret 8 $8$dsYGNam3K1SIJO7nv/35M/qr6t.dVc7UY9zrJDWRVqncHub1PE9UlMQFs
( 06 ) Type 9
이것은 라우터가 scrypt 를 해싱 알고리즘으로 사용하여 실행/시작 파일에 저장할 때 패스워드가 암호되된다는 것을 의미함.
IOS 15.3 (3) 부터 사용이 가능함.
사용예1 :
R1(config)#enable algorithm-type scrypt secret cisco
R1(config)#do sh run | i enable
enable secret 9 $9$WnArItcQHW/uuEx5WTLbu7PbzGDuv0fSwGKS/KURsy5a3WCQckmJp0MbE
사용예2 :
R1(config)# username demo9 algorithm-type scrypt secret cisco
R1# show running-config | inc username
username demo9 secret 9 $9$nhEmQVczB7dqsOX.HsgL6x1il0RxkOSSvyQYwucySCt7qFm4v7pqCxkKM
( 07 )중요 사항
1. Type 8 또는 Type 9 암호를 구성한 다음 Type 8 또는 Type 9 암호를 지원하지 않는 릴리스로 다운그레이드하는 경우 하기 전에 Type 5 암호를 구성해야 함.
그렇지 않은 경우 장치가 잠기고 암호를 복구해야 함.
2. IOS 15.3 (3) 사용 시 Type 4 는 더 이상 사용되지 않으며 Type 8 또는 Type 9 알고리즘에 대한 지원이 추가되었으며 Type 4 알고리즘 지원 제거에 대한 경고 메시지가 추가됨.
( 08 ) Type 5 암호 생성하는 간단한 파이썬 코드
사전 준비 :
Python3 설치
passlib 모듈 설치 (pip install passlib)
# passlib 2.0 이상부터는 md5_crypt.hash() 메소드 사용할 것!
from passlib.hash import md5_crypt
# "koromoon" 문자열을 "hack" 솔트값으로 해싱
hash = md5_crypt.hash("koromoon", salt="hack")
print(hash)
결과값 : $1$hack$wJkdH5yC3eDLAoczafume/
( 09 ) Type 5 암호 크래킹하는 간단한 파이썬 코드
from passlib.hash import md5_crypt
# 사전 리스트
dict = ["password", "qwerty", "123456", "Password123", "koromoon"]
# 크랙하고자 하는 해시값
hash = "$1$hack$wJkdH5yC3eDLAoczafume/"
# 크래킹
for password in dict:
if md5_crypt.verify(password, hash):
print("Password Found: %s" % password)
Password Found: koromoon
참고 사이트 :
https://learningnetwork.cisco.com/s/article/cisco-routers-password-types
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/security/d1/sec-d1-cr-book/sec-cr-e1.html
https://axcheron.github.io/cracking-cisco-type-5-passwords/
============================================================
본 게시물은 KOROMOON 님께서 작성하였으며 CCL (Creative Commons License) 에서 "저작자표시-비영리-동일조건변경허락" 이용조건으로 자료를 이용하셔야 합니다.
댓글 없음:
댓글 쓰기