5 패스워드 크래킹.

Slides:



Advertisements
Similar presentations
10. 패스워드 크래킹. 2 패스워드  잘못된 패스워드 설정  길이가 너무 짧거나 널 (Null) 인 패스워드  사전에 나오는 단어나 이들의 조합  키보드 자판의 일련 나열  사용자 계정 정보에서 유추 가능한 단어들  좋은 패스워드 설정  좋은 패스워드란.
Advertisements

1 시스템보안 패스워드 크래킹 박근우 석재민. 2  패스워드 크래킹이란 ?  인증구조 이해  패스워드 크랙 & 크래킹  패스워드 복구 & 예방 Content.
을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 넷스팟 MAC ID 설정 방법 ( 서울캠퍼스 기준 ) 각종 스마트폰의 WiFi 를 이용시 각종 스마트폰의 WiFi 를 이용시 MAC ID 설정을 하는 방법 입니다. 아이폰의 경우는 별도의 설정없이 바로 사용이 가능하오니, 사용이 어려울 경우, 고객센터로 문의하시면 됩니다.
아이튠즈 계정 생성. 1. 인터넷을 통해 설치한 아이튠즈를 실행 한 후 그림의 순서대로 선택을 합니다. 1 2.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
Windows Function Windows XP Windows 7 Windows 8 FREE 조장 : 김동환 조원 : 전태우

목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
안성시립도서관 무선랜 사용자 Mac 확인 및 설정방법
제어판 –> 네트워크 및 인터넷 –> 네트워크 및 공유센터 이동 후 화면에서 “새 연결 또는 네트워크 설정” 클릭
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
ch18 – 7. 패스워드 크래킹 - Intruders -
코크파트너 설치 가이드 Window 7.
㈜디아이씨 SSLVPN 협력사 접속방법 2017년 4월.
Windows Server 장. Windows Server 2008 개요.
SSL - VPN 사용자 가이드 - IT 지원실 네트워크 운영팀 -.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Outlook Express 메일 백업 및 복원가이드
DPR-1630&1615 IP공유기 셋팅 방법 고객지원팀 작성자 : 정청석.
업체등록신청절차 목차 메인화면 메세지별 유형 2-1. 이미 가입된 공급업체
Windows Server 장. 사고를 대비한 데이터 백업.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
Windows 8 Ksystem G&I 설치.
5장 Mysql 데이터베이스 한빛미디어(주).
홍익대학교 메일 시스템 구축 Outlook 설정 매뉴얼.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
8장. 원격지 시스템 관리하기.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
Heesang kim PL/SQL 3 Heesang kim.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Error Detection and Correction
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
5장 Mysql 데이터베이스 한빛미디어(주).
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
홀인원2.0 설치 메뉴얼.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
WZC 무선 연결 방법 (Windows XP Ver.).
뇌를 자극하는 Windows Server 2012 R2
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Hash.txt를 이용한 크래킹 알고리즘팀.
2 보안 1 도구 윈도우 XP > 온밀크 프로그램 설치 장애 (보안 설정) / 품목추가 깨질 때 장애증상
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
Day-27(Tue_10.16) 파일 서비스 설정 AD 가 설치된 환경에서 DHCP 설치 할 경우 권한 자격을 주어야함.
PC에 설치된 엔드포인트 클라이언트 프로그램을 클릭하여 프로그램 상자를 엽니다
법령안편집기 연결버튼 표시가 안 될 경우 정부입법지원센터( 입안 및 심사안을 진행시
PMIS 서버 설정 환경설정 작성자 : 배경환.
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
WZC 무선 연결 방법 (Windows 7 Ver.).
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
업체등록신청절차 목차 메인화면 메세지별 유형 2-1. 이미 가입된 공급업체
Chapter 10 데이터 검색1.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
IPC 펌웨어 업그레이드 방법 안내 ** 반드시 IPC를 NVR POE 포트 연결 전에 작업 하시기 바랍니다. IPC를 NVR POE 포트에 연결 하실 경우 IP 대역폭을 마추셔야 하는 작업이 필요합니다. **
FTP 스캔 설정 방법 강사 : 이성휘 대리.
CCIT 네트워크 발표 정보보호학과 평문 사이트와 SSL 사이트, SSL strip과 데이터 변조를 이용한 로그인 취약점
 6장. SQL 쿼리.
7 생성자 함수.
6 객체.
Presentation transcript:

5 패스워드 크래킹

학습목표 내용 패스워드의 중요성을 이해한다 윈도우와 리눅스/유닉스 시스템의 인증 구조를 이해한다. 패스워드 크래킹을 수행할 수 있다. 적절한 패스워드를 생성할 수 있다. 관리자 패스워드 분실 시 이를 복구할 수 있다. 내용 패스워드 크래킹에 대한 이해 윈도우 인증과 패스워드 리눅스/유닉스 인증과 패스워드 서비스 데몬 패스워드 크래킹 운영체제별 패스워드 복구

패스워드 크래킹에 대한 이해 패스워드 관리 보안 관리자의 첫번째 방어책 크래킹되기 쉬운 패스워드 길이가 너무 짧거나 널(Null)인 패스워드 사전에 나오는 단어나 이들의 조합으로 이루어진 패스워드 키보드 자판을 일련순으로 나열한 패스워드 사용자 계정 정보에서 유추 가능한 단어들로 된 패스워드 좋은 패스 워드 : 기억하기는 쉽고 크래킹하기 어려운 패스워드

패스워드 크래킹에 대한 이해 해시의 암호화 임의의 데이터로부터 일종의 짧은‘전자 지문’을 만들어 내는 방법 암호화(Encryption) : 특별한 알고리즘을 이용해 데이터를 전달하는 것 로마시대 암호화 방식 : 기본적인치환(Substitution) 방식 3자씩 알파벳을 밀어내 대응되는 글자로 치환

패스워드 크래킹에 대한 이해 ‘Wish to be free from myself’문구 암호화 암호화 알고리즘 : ‘알파벳을 밀어서 대응되는 글자로 치환’ 암호화 키(Key) : 3 123456789수와123486789 가 있을 때, 두 수를 가운데를 기준으로 둘로 나누고 큰 수를 작은 수로 나눈다 앞 6자리 숫자를 버리고 나머지 값이 해시의 결과 값이라면 123456789의 해시 값은 2677861, 123486789의 해시 값은 4569155 로직을 알더라도 버려진 1.81838과 1.81882를 알 수 없으므로 두 해시 값만으로 해시 전의 원래 수를 알아내는 것은 불가능 해시는 로직을 알고 있을 경우 해시의 결과 값을 구하기가 쉽다 해시 결과 값을 통해 해시를 생성하기 전의 원래 값은 알기 어렵다 값이 아주 조금만 다르더라도 해시 결과 값은 무척 상이하게 생성

패스워드 크래킹에 대한 이해 Salt 해시나 암호화로 패스워드 저장→ 같은 패스워드는 같은 해시 값, 같은 암호문으로 저장 같은 해시 결과나 암호문은 같은 결과만으로도 패스워드를 노출시키는 약점 Salt는 이런 상황을 막기 위해 패스워드 해시와 암호화에 사용되는 첨가물의 일종 운영체제별로 다양한 알고리즘 존재. 간단한 ‘eodlf@!11’을MD5 알고리즘 해시 해시값 : ‘E2E783C7C3660CC594BFB35753E454F6’ root 계정은 a2, wishfree 계정은 4F라는 문자2개 생성하여 해시 값 생성(a2와4F가 Salt)

패스워드 크래킹에 대한 이해 [표 4-1] Salt와 패스워드를 조합한 값에 대한 MD5 해시 값의 생성 예 Salt와 패스워드 합한‘a2eodlf@!11’과‘4Feodlf@!11’을 각각 해시한 결과 값은 다름 패스워드 파일로 저장 시 MD5 해시 값만 저장 불가능 시스템이 패스워드와 어떤 것을 합해 해시를 구한 것인지 알 수 없기 때문 패스워드 파일에 저장 시 간단한 인코딩을 통해 해시 결과 값 앞이나 뒤에 Salt 붙임 [표 4-2] 해시된 패스워드 값에 Salt 정보를 붙인 예 적용된 Salt는 똑같은 패스워드를 숨길 뿐만 아니라 적용 수준에 따라 패스워드 크래킹을 매우 어렵게 만드는 요소 계정 Salt 패스워드 Salt+패스워드를 MD5로 해시한 결과 값 root a2 eodlf@!11 9EF83D5BEF4A7CBC6F7D4940D8447089 wishfree 4F 6B796B0DD16C30CCF0B7F02E6457F024 계정 Salt+MD5 root a29EF83D5BEF4A7CBC6F7D4940D8447089 wishfree 4F6B796B0DD16C30CCF0B7F02E6457F024

패스워드 크래킹에 대한 이해 패스워드 크래킹 방법에 대한 이해 사전대입공격 무작위 대입 공격 레인보우 테이블을 이용한 공격 사용자가 설정하는 대부분의 패스워드에 특정 패턴이 있음에 착안 패스워드로 사용할 만한 것을 사전으로 만들어놓고 하나씩 대입 패스워드 일치 여부 확인 무작위 대입 공격 패스워드에 사용될 수 있는 문자열의 범위 정하고, 그 범위 내에서 생성 가능한 모든 패스워드 생성하여 입력 패스워드가 그다지 복잡하지 않거나 짧을 경우 단시간에 크래킹 레인보우 테이블을 이용한 공격 1980년 마틴 헬만(Martin Hellman)에 의해 소개 2000년대에 들어 윈도우의LM 패스워드를 몇 분 만에 크래킹하며 유명해지기 시작 레인보우 테이블은 하나의 패스워드에서 시작해 변이된 형태의 여러 패스워드 생성 변이된 각 패스워드의 해시를 고리처럼 연결하여 일정 수의 패스워드와 해시로 이루어진 체인(Chain)을 무수히 만들어 놓은 테이블 레인보우 테이블의 가장 기본적인 개념 : 패스워드별 해시 값 미리 생성 크래킹하고자 하는 해시 값을 테이블에서 검색하여 원래 패스워드를 찾는 것 패스워드 ‘12qw’, 해시 값 ‘123452323242’라면 각 패스워드별 해시 값 미리 구해둔 해시 테이블에서‘123452323242’를 찾아 ‘12qw’ 찾는다

패스워드 크래킹에 대한 이해 레인보우 테이블의 또 다른 핵심 아이디어 대용량으로 생성될 수 있는 해시 테이블을 R(Reduction) 함수를 이용해 작은 크기로 줄이는 것 패스워드가 6자리 숫자로 이루어진 ‘234342’ MD5 해시 값은 ‘C1F2FE224298D6E39EBA607D46F3D9CC’ R 함수는 이 해시 값에서 또 다른 형태의 무작위 패스워드 추출 R 함수가 MD5 해시 값 중 앞의 6개 숫자만 뽑아낸다고 가정 R(C1F2FE224298D6E39EBA607D46F3D9CC)은‘ 122242’

패스워드 크래킹에 대한 이해 최초 패스워드 ‘234342’에서 MD 5 해시 값을 3번 구하고, R 함수가 2번 동작 C1F2FE224298D6E39EBA607D46F3D9CC 첫 번째 R 함수 동작 결과 122242 89DBCA68BE341E03B5FB59777B93067E 두 번째 R 함수 동작 결과 896834 22B7D9922C994737D0D9DFCCF6B415B6 패스워드 MD5 해시 최초 패스워드 346343 A62798B2BFCF406BD76FCBC7A3678876 첫 번째 R 함수 동작 결과 627982 570727EE4270E0C1A4D8FBB741926DB8 두 번째 R 함수 동작 결과 570727 86AB6B3355F33F7CD62658FDDA5AF7D6

패스워드 크래킹에 대한 이해 [표 4-6] 898232의 MD5와 R 함수의 반복 실행 결과 [표 4-7] [표 4-4]~[표 4-6] 값을 이용해 생성한 레인보우 테이블 패스워드 MD5 해시 최초 패스워드 898232 91CF19DD04A05110A2D2A30D578DDA29 첫 번째 R 함수 동작 결과 911904 3B8635770F22C17E9643441A3E49992E 두 번째 R 함수 동작 결과 386357 E2038DD2A8315D9BF7F72AE5C07530F8 패스워드 MD5 해시 234342 22B7D9922C994737D0D9DFCCF6B415B6 346343 86AB6B3355F33F7CD62658FDDA5AF7D6 898232 E2038DD2A8315D9BF7F72AE5C07530F8

패스워드 크래킹에 대한 이해 레인보우 테이블을 이용한 패스워드 크래킹 과정 패스워드 해시 값 ‘570727EE4270E0C1A4D8FBB741926DB8’ ➊ 레인보우 테이블에 크래킹하려는 해시 값과 같은 MD5 해시 값이 있는지 확인 → [표 4-7]에는‘570727EE4270E0C1A4D8FBB741926DB8’해시 값 없다 ➋ 레인보우 테이블에 크래킹하려는 해시 값이 없으면 크래킹할 해시 값에 R 함수 적용 패스워드 구하고 다시 해시 값 구한다. →‘570727EE4270E0C1A4D8FBB741926DB8’에 R함수 적용 패스워드‘570727’구한다‘ 570727’ 해시 값을 구하면 ‘86AB6B3355F33F7CD62658FDDA5AF7D6’ ➌ ➋에서 구한 해시 값‘86AB6B3355F33F7CD62658FDDA5AF7D6’ 레인보우 테이블에 있는지 확인 → [표4-7]에서 생성한 레인보우 테이블에‘86AB6B3355F33F7CD62658FDDA5AF7D6 ’값이 있다 ➍ 레인보우 테이블에서 확인한 해시 값 발견한 뒤 그 해시 값에 해당하는 최초 패스워드 구한다 (값이 없다면 같은 해시 값이 나올 때까지 ➋와 ➌ 과정을 해시 테이블 생성 시에 설정한 체인 수만큼 반복) → [표 4-7]에서‘86AB6B3355F33F7CD62658FDDA5AF7D6’에 해당하는 패스워드는 ‘346343’ ➎ 확인한 최초 패스워드에서 다시 패스워드와 일치하는 해시 값이 나올 때까지 MD5 해시와 R함수 반복 수행. 해당 해시 값이 확인되면 찾는 패스워드는 해당 해시 값을 생성한 문자열 레인보우 테이블 체인 2,000개 이상, 최초 패스워드, 최종 해시 값만 레인보우 테이블에 저장 체인을 2,000개 사용하는 레인보우 테이블에서 해시 값을 10,000개 저장하고 있다면, 레인보우 테이블에서 확인할 수 있는 패스워드의 종류는 20,000,000 (2000*10000)개

윈도우 인증과 패스워드 윈도우 인증의 구성요소 LSA(Local Security Authority), SAM(Security Account Manager), SRM(Security Reference Monitor) SAM : 윈도우에서 패스워드 암호화하여 보관하는 파일의 이름과 동일 LSA : 모든 계정의 로그인에 대한 검증, 시스템 자원 및 파일 등에 대한 접근 권한 검사 로컬, 원격 모두에 해당, 이름과 SID를 매칭하며, SRM이 생성한 감사 로그 기록 SAM : 사용자/그룹 계정 정보에 대한 데이터베이스 관리, 사용자의 로그인 입력 정보와 SAM 데이터베이스 정보를 비교해 인증 여부 결정. 윈도우의 SAM 파일 위치 SRM : SAM이 사용자의 계정과 패스워드 일치 여부를 확인하여 알리면 사용자에게 SID(Security Identifier) 부여, SID에 기반하여 파일이나 디렉터리에 대한 접근(access) 허용 여부 결정, 이에 대한 감사 메시지 생성 %systemroot%/system32/config/sam

윈도우 인증과 패스워드 로컬 인증과 도메인 인증 로컬인증 Ctrl+Alt+Delete → Winlogon 화면 → 아이디와 패스워드 입력 → LSA 서브 시스템이 인증 정보를 받아 NTML 모듈에 아이디와 패스워드 넘겨줌 → SAM이 받아 확인 → 로그인 허용

윈도우 인증과 패스워드 도메인 인증 Ctrl+Alt+Delete → Winlogon 화면 → 인증 정보 입력 → 해당 정보 LSA 서브 시스템에 인계 LSA 서브 시스템에서 해당 인증 정보가 로컬 인증용인지 도메인 인증용인지 확인 → 커버로스(Kerberos) 프로토콜 이용, 도메인 컨트롤러에 인증 요청 도메인 인증에서는 기본적으로 풀 도메인 이름(FQDN: Full qualifieddomain name)과 커버로스 프로토콜을 이용하게 되어 있지만, IP를 이용해 접근을 시도할 경우NTML 사용

윈도우 인증과 패스워드 인증 구조 Challenge & Response 인증 패스워드 값을 인증 서버와 같은 인증 주체에 전달, 올바른 패스워드임을 증명하는 가장 직관적이고 쉬운 방법은 패스워드 값을 직접 전달하는 것 텔넷이나 FTP가 아이디와 패스워드를 네트워크를 통해 직접 전달 웹포털 사이트에서 사용자 아이디와 패스워드로 로그인하는 것이 그러한 경우 운영체제 인증과 같이 높은 수준의 인증이 필요한 경우, 이런 단순 인증 방식은 패스워드 노출 또는 패스워드 재사용 공격에 매우 취약해서 Challenge & Response 방식으로 인증을 수행

윈도우 인증과 패스워드 Challenge & Response 인증 단계 ➊ 인증 요청 : 인증을 수행하고자 하는 주체가 인증 서버에 인증 요청 ➋ Challenge 값 생성 / ➌ Challenge 값 전송 인증 요청받은 인증 서버는 문자열 등의 값을 특정 규칙을 따르거나 혹은 랜덤하게 생성 인증 요구자에 전달 ➍ Response 값 생성 인증 요구자는 서버에서 전달받은 Challenge 값과 본인이 입력한 패스워드 정보 이용해 서버에 보낼 Response 값 생성, 대부분의 프로토콜이 Response 값 생성하는 로직에서 차이 남. ➎ Response 값 전송 / ➏ Response 값 확인 / ➐ 인증 성공 인증 요구자는 생성한 Response 값을 인증 서버에게 전달, 인증 서버는 Response 값을 확인하여 인증 요구자의 적절한 패스워드 소유 여부 확인, 확인된 Response가 적절하면 인증의 성공 여부 인증 요구자에 알림

윈도우 인증과 패스워드 LM & NTML LM 해시 1980년대에 만들어진 알고리즘으로, 본래 IBM의 OS 2에서 사용 MS에서 1993년에 만든 윈도우 NT에 탑재되기 시작 LM은 구조적으로 취약한 알고리즘 윈도우 2000, XP의 기본 알고리즘

윈도우 인증과 패스워드 ➊ 대문자 변환 : 사용자가 패스워드 입력하면 모두 대문자로 전환, 대소문자 구분 않음 ➋ 패딩(Padding) : 기본적으로 14글자를 하나의 패스워드로 인식 14글자가 되지 않는 패스워드는 뒤에 0을 붙여 14자리로 만듬 ➌ 분리 : 패스워드 길이에 관계없이 8바이트가 블록 하나를 형성 이 중 1바이트는 패스워드 블록에 대한 정보를 담고 있어 실질적 패스워드 문자열은 7바이트, 즉 문자 7개로 구성 패스워드가 qwer1234라면 8자이므로 패스워드 블록 두 개 형성 ➍ DES 암호화 : 두 개 블록으로 분리된 패스워드는 각각“KGS!@#$%”라는 문자열을 암호화 키(Key)로 사용해 암호화 ➎ 결합 : “ KGS!@#$%”로 각각 암호화한 두 결과 값을 합하여 SAM 파일에 저장 LM 알고리즘 그림에서 확인한 바와 같이 패스워드 블록 하나는 별도로 운영 qwer1234는 qwer123과 4로 나뉨 qwer123이 쉽게 크래킹되지 않을 수도 있으나, 4는 수초 내 크래킹 윈도우는 문자열 7개 패스워드 블록 이용 패스워드 구현, 7자나 8자 패스워드 강도동일 윈도우에서 14자 패스워드 크래킹이 7자 패스워드 두 개 크래킹과 같은 노력 필요 14자 패스워드의 보안 강도는 7자 패스워드보다 겨우 2배 더 셈

윈도우 인증과 패스워드 NTML 해시 LM 해시에 MD4 해시가 추가

윈도우 인증과 패스워드 NTML v2해시 v2는 윈도우 비스타 이후의 윈도우 시스템에서 기본 인증 프로토콜로 사용

윈도우 인증과 패스워드 자격 증명 일반PC 사용자는 로그인할 때 로컬 계정 이용 해당 컴퓨터가 도메인과 네트워크에 연결되어 있는 경우에는 NTML이나 커버로스 이용해 로그인 네트워크가 연결되지 않은 경우에도 도메인에 등록된 PC에 로그인할 때 도메인 계정을 사용해 로그인하는데, 이를 가능하게 만는 것이 자격 증명(Cache Credential) ‘Password verifier’라고도 함

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 테스트 계정 생성 및 패스워드 설정 패스워드 크래킹에 사용할 계정 몇 개 생성 다양한 난이도의 패스워드 크래킹 시도 위해, 숫자로만 된 패스워드, 짧은 패스워드 영문자와 숫자로만 된 패스워드, 특수 문자 등을 포함한 패스워드 등을 설정 윈도우 XP 계정 생성,패스워드 설정 : [컴퓨터 관리]-[로컬 사용자 및 그룹]-[사용자] [그림 4-17] 테스트 계정 생성과 패스워드 설정 1

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 Cain & Abel을 이용한 LM/NTML 해시 덤프 [Cracker] 탭의‘LM&NTML Hashes’항목 선택 → 오른쪽 빈 창에서 마우스 오른쪽 버튼 → [Add to list] 메뉴 선택 → 로컬 시스템에서 LM/NTML 해시 획득하도록 선택 [그림 4-18] 로컬 시스템에서 LM/NTML 해시 덤프 2

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 Cain & Abel을 이용한 무작위 대입 공격 로컬시스템에서 NT/NTML 해시 덤프, 사용자이름, LM, NT(NTMLv2)해시 값 확인 윈도우XP의 경우LM 해시,NTMLv2 해시 모두 크래킹 대상, 더 취약한 LM 해시 크래킹 확인된 계정 모두 크래킹 위해 계정에서 마우스 오른쪽 버튼 → [Select All] 메뉴 선택 → [Brute-Force Attack]-[LM Hashes] 메뉴 패스워드 크래킹 방법 선택 [그림 4-19] 패스워드 크래킹 방법 선택 3

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 무작위 대입 공격 수행위한 상세 옵션 선택(패스워드 길이 1~7 자리, 무작위 대입 공격에 사용 할 문자열 선택, LM이 대소문자 구분 않으므로, 문자열은 대문자 알파벳 숫자, 특수문자 포함) → <Start>버튼(공격 시작) [그림 4-20] 패스워드 크래킹 옵션 선택

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 LM 패스워드는 패스워드가 7자리가 넘는 경우 7자리가 패스워드 블록 2개로 나뉨 뒷 블록의 패스워드가 먼저 크래킹되어 나옴 [그림 4-21] 크래킹되는 패스워드 확인

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 <Stop> 버튼을 누르면 패스워드 중 현재까지 크래킹된 부분 확인 [그림 4-22] 크래킹되는 패스워드 확인

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 레인보우 테이블 생성 Cain & Abel과 함께 내려받은 Winrtgen 프로그램 이용 레인보우 테이블 생성 사용 Wintrgen을 실행 → <Add Table> 버튼 생성할 레인보우 테이블의 옵션 선택 [그림 4-23] Winrtgen 실행 4

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 Hash는 ‘lm’로, Charset은‘alphanum-symbol14’로 선택 No of tables에서 레인보우 테이블의 크기 결정 Charset을 ‘alpha-num-symbol14’로 선택한 경우 테이블이 35개 되어야 크래킹 성공률 98.33% <Benchmark> 버튼을 누르면 레인보우 테이블을 생성하는 데 약 37일 소요 확인 (a) 실제용 (b) 테스트용 [그림 4-24] 레인보우 테이블 실행 옵션

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 [그림 4-25] 레인보우 테이블 생성

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 레인보우 테이블을 이용한 패스워드 크래킹 레인보우 테이블을 생성한 후 다시 패스워드 크래킹 Cain & Abel에서 모든 계정 선택 → 마우스 오른쪽 버튼 [Cryptanalysis Attack]-[LM Hashes]-[viaRainbowTables (RainbowCrack)] 메뉴 선택 [그림 4-26] 레인보우 테이블 크래킹 선택 5

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 레인보우 테이블을 이용한 패스워드 크래킹 <Add Table> 버튼을 눌러 앞서 생성한 LM 레인보우 테이블 선택 <Start> 버튼(크래킹 시작) [그림 4-27] 레인보우 테이블 선택 5

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 레인보우 테이블을 이용한 패스워드 크래킹 약 20초의 후 전체 패스워드들이 크래킹되어 나오기 시작 전체 레인보우 테이블을 이용한 크래킹에 약3분 소요 [그림 4-28] 레인보우 테이블을 이용한 패스워드 크래킹 5

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 테스트 계정 생성 및 패스워드 설정 윈도우 2008 [제어판]-[관리 도구]-[로컬 보안 설정]-[계정정책]-[암호 정책] 암호는 복잡성을 만족해야 함’항목 값이‘사용’ 기본 설정, 간단한 암호 설정 못함 [그림 4-29] 로컬 보안 정책과 윈도우 2008 패스워드 설정 정책 확인 6

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 Cain & Abel을 이용한 NTMLv2 해시 덤프 윈도우 2008이나 윈도우 7에서 NTML 해시를 덤프하는 방법은 윈도우XP와 같다 [Cracker] 탭에서‘LM&NTML Hashes’ 선택 → 오른쪽 빈 창에서 마우스 오른쪽버튼 → [Add to list] 메뉴 선택. 덤프 결과 LM 해시 값은 보이지만, LM Password에서‘* empty *’로 표시된 것처럼 이는 사용되지 않는 기본 값 [그림 4-30] NTML 해시 덤프 7

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 Cain & Abel을 이용한 NTMLv2 해시 덤프 [Brute-Force Attack]-[NTLM Hashes] 메뉴로 크래킹 [그림 4-31] NTML 패스워드 크래킹 방법 선택 7

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 Cain & Abel을 이용한 NTMLv2 해시 덤프 <Start> 버튼(패스워드 크래킹 시작) [그림 4-32] NTML 패스워드 크래킹 수행 7

실습 5-1 윈도우 XP, 2008, 7 패스워드 크래킹하기 레인보우 테이블의 생성 시간으로 LM 패스워드와 NTML 패스워드 크래킹의 크래킹 시간 가늠 [표 4-8] 해시 종류와 패스워드 설정 강도에 따른 레인보우 테이블 생성 조건 [표 4-8]의 세 번째 NTMLv2 해시의 경우 패스워드의 길이를 10자리로 하고, 구성하는 문자를 알파벳(소문자), 숫자, 특수문자(14가지)로 설정하면 약 5140년의 시간 소요 패스워드 크래킹이 불가능 Winrtgen보다 효율적인 레인보우 테이블을 구매하여 크래킹하면 약 1시간 소요. 해시 종류 LM NTMLv2 패스워드 최대 길이 7 10 구성 문자 알파벳(소문자), 숫자, 특수문자(14가지) 알파벳, 숫자 레인보우 테이블 숫자 30 3,700,000 1,400,000 레인보우 테이블 용량 17.88GB 2,205,371.85GB 83,456.50GB 성공률 97% 97.16% 97.19% 레인보우 테이블 생성 시간 20일 12일 5140년 189년

리눅스/유닉스의 인증과 패스워드 유닉스의 인증 방식 : 윈도우의 인증 방식보다 단순하지만 더 취약하지는 않다 유닉스에서 인증에 가장 중요한 역할을 하는 것은 패스워드 파일과 shadow 파일 패스워드는 shadow 파일에 암호화되어 저장 shadow 파일에서 root 계정에 대한 정보 확인(각 정보는 :로 나뉘어 있다) ➊ 사용자 계정 ➋ 암호화된 사용자의 패스워드 저장, 시스템마다 조금씩 다르며 페도라 14 버전에서는 SHA512 형식을 기본으로 저장, MD5, SHA256 등의 해시를 선택, ‘ $1$’로 시작하면 MD5,‘ $5$’와‘$6$’로 시작하면 각각 SHA256, SHA512를 나타냄 ➌ 1970년 1월 1일부터 마지막으로 패스워드 변경한 날까지 계산 값, 14923일은 약 41년 ➍ 패스워드 변경하기 전 패스워드 사용한 기간, 최초 설정 후 바꾸지 않았으므로 0 ➎ 패스워드 바꾸지 않고 최대한 사용할 수 있는 기간,이 값은 보안 정책에 따라 변경 됨 보통 패스워드의 최대 사용 기간을 60일로 권고 ➏ 패스워드 최대 사용 기간에 가까워질 경우 사용자에게 미리 통지,패스워드 사용 기한 며칠 전에 경고를 보낼지 지정 root : $6$LL489S99Pyh6∼중략∼Pazr/uKuAkuFT0/ : 14923 : 0 : 99999 : 7 : : : ➊ ➋ ➌ ➍ ➎ ➏ ➐ ➑

리눅스/유닉스의 인증과 패스워드 ➐ 계정에 대한 사용 제한을 설정, 며칠 후에 완전히 사용 정지할지 설정 ➑ 1970년 1월 1일부터 계정이 완전 사용 정지된 기간 계산 값 기록 ➒ 관리자 임의 사용 부분 shadow 파일 : 암호화된 패스워드 저장 기능, 패스워드에 대한 보안 정책을 적용, 시스템에 shadow 파일 존재하지 않고 passwd 파일에 암호화된 패스워드 저장되면, 시스템에 계정에 대한 보안 정책 적용 안된 것

리눅스/유닉스의 인증과 패스워드 페도라 14에서 [System]-[Administration]-[Authentication] 메뉴 선택 하면 ‘Advanced option’에서 SHA512 해시 알고리즘 사용 확인 및 MD5, SHA256 등의 알고리즘 선택 가능 리눅스의 경우에는 passwd 파일과 shadow 파일이 대부분 /etc/passwd와 /etc/shadow 파일로 생성, passwd 파일은 대부분 /etc/passwd 파일로 동일 shadow 파일은 운영체제별로 고유한 경로와 파일명을 사용하는 경우도 많음 [그림 4-34] Shadow 파일 해시 알고리즘 선택

실습 5-2 리눅스 패스워드 크래킹하기 John-the-ripper 설치 페도라 14에서 Johnthe-ripper는 yum으로 간단히 설치 [그림 4-35] john the ripper의 설치 john the ripper 설치 후 john 명령으로 간단한 사용법 등을 확인 1 yum install john.i686

실습 5-2 리눅스 패스워드 크래킹하기 John-the-ripper 설치 john the ripper 설치 후 john 명령으로 간단한 사용법 등을 확인 [그림 4-36] john the ripper의 사용법 확인 1

실습 5-2 리눅스 패스워드 크래킹하기 테스트 계정 생성 및 패스워드 설정 윈도우에서처럼 패스워드 크래킹에 사용할 계정 생성 다양한 난이도의 패스워드 크래킹 시도를 위해 숫자만으로 이뤄진 패스워드 짧은 패스워드, 영문자와 숫자만으로 이루어진 패스워드, 특수문자 등을 포함한 패스워드 등으로 설정 useradd 명령으로 계정 생성 [그림 4-37] 패스워드 크래킹을 위한 테스트 계정 추가 2 useradd user passwd user

실습 5-2 리눅스 패스워드 크래킹하기 테스트 계정 생성 및 패스워드 설정 추가한 사용자의 패스워드 정보는 /etc/shadow 파일에서 확인 [그림 4-38] 추가한 계정의 SHA512로 해시된 패스워드 확인 2 cat /etc/shadow

실습 5-2 리눅스 패스워드 크래킹하기 패스워드 크래킹 리눅스에서의 패스워드 크래킹은 패스워드로 사용될 수 있는 사전 파일 미리 작성 이 사전 파일에 있는 패스워드 대입 사전 파일에‘dideodlf(양대일)’이라는 패스워드를 미리 넣어둔 상태에서 john the ripper로 패스워드 크래킹을 시도 [그림 4-39] 사전 대입법을 이용한 패스워드 크래킹 3 john --wordlist=dic /etc/shadow

실습 5-2 리눅스 패스워드 크래킹하기 패스워드 크래킹 사전 대입 공격에 실패한 경우 무작위 대입법으로 패스워드 크래킹 시도 무작위 대입법을 이용한 패스워드 크래킹은‘--wordlist’옵션 없이 바로 실행 이때 패스워드가 크래킹되면 바로 확인할 수 있도록‘--show’옵션 사용 [그림 4-40] 사전 대입법을 이용한 패스워드 크래킹 SHA512해시를 사용한 shadow 파일을 무작위 대입법을 사용해 패스워드 크래킹 하기는 매우 어렵다. SHA512 알고리즘을 사용한 해시 생성에 시간 소요 많아 경우의 수 모두 대입 어려움 SHA512와 같은 알고리즘으로 해시된 shadow 파일을 크래킹하기 위해 레인보우 테이블을 이용해 크래킹하는 것이 효율적 3 john --show /etc/shadow

서비스 데몬 패스워드 크래킹 HTTP, FTP, 텔넷, SMB(NetBIOS) 데몬처럼 서버에서 제공하는 서비스 프로그램도 패스워드 크래킹 가능 서비스 데몬 대부분은 운영체제와 동일한 아이디와 패스워드 소유 서비스 데몬을 통한 패스워드 크래킹 시도로 운영체제의 다른 서비스에 대한 접근 권한을 얻을 수도 있음 윈도우의 파일 공유 서비스(SMB(NetBIOS))나 리눅스의 텔넷 서비스 등이 대표적 서비스 데몬에 대한 패스워드 크래킹에서 획득한 계정이 반드시 운영체제에 존재 않음 일부 윈도우 서비스의 경우 서비스 데몬에 대한 계정과 패스워드 별도 생성 관리

실습 5-3 서비스 데몬 패스워드 크래킹하기 UNS가 가장 좋은 성능을 보이는 것은 FTP 포트인 21번 포트에 대한 공격 BRUTUS : HTTP, FTP, 텔넷, SMB(NetBIOS) 데몬의 패스워드 크래킹 백도어인 NetBUS 패스워드 크래킹도 가능 [그림 4-41] FTP 계정 크래킹

실습 5-3 서비스 데몬 패스워드 크래킹하기 ➊ ➋ ➌ ➍ ➎ BRUTUS-AET2 인터페이스 확인 1 [그림 4-42] 인터페이스 확인 1 ➊ ➋ ➌ ➍ ➎

실습 5-3 서비스 데몬 패스워드 크래킹하기 BRUTUS-AET2 인터페이스 확인 ➊ 목표 시스템의 IP 주소와 크래킹할 데몬 선택(선택할 수 있는 데몬 : HTTP,FTP, 텔넷, SMB(NetBIOS), NetBUS) ➋ 연결 포트와 1회 시도 횟수(Connections), 응답 대기 시간(Timeout) 설정 1회시도 시 10개의 패스워드 테스트하는 것이 기본, 시스템 응답 시간이 많이 걸릴 경우 응답 대기 시간을 충분한 값으로 설정 ➌ 텔넷 데몬에 대한 특정 시퀀스를 입력하고 변경 ➍ 크래킹하고자 하는 계정과 패스워드 목록 설정 ➎ 크래킹의 진행 과정 및 결과 출력 1

실습 5-3 서비스 데몬 패스워드 크래킹하기 ➊ ➋ 텔넷 서비스 인증 순서 확인하기 BRUTUS를 이용해 텔넷 서비스 크래킹 위해 규칙성 파악 규칙성을 파악 후 ➌<Modify sequence> 버튼 누르고 적절한 값 입력 ➊ ‘login:’뒤에 계정 입력 Enter(CR, Carriage Return) 입력. 줄이 바뀌면(LF, Line Feed)‘password:’문자열 나옴 잘못된 패스워드 입력한 경우 다시‘CR+LF’과정 거치고‘Login incorrect’문자열 뜸 ➋ 로그인 성공한 때도 정상적인 패스워드 입력 후,‘CR+LF’과정 거침 비슷한 과정으로 단지‘Last login: Tue .... ’만 다름 [그림 4-43] 인증 순서 확인 2 ➊ ➋

실습 5-3 서비스 데몬 패스워드 크래킹하기 ➌ ➊ ➋ ➍ 텔넷 서비스 규칙성 설정 ➌의 <Modify Sequence> 버튼 클릭, ‘Selected authentication phase’를 ‘UserID phase’로 설정, 처음 아이디 로그인하는 과정과 아이디 입력에 따른 응답 규칙 입력 ‘Selected authentication phase’를 ‘Password phase’로 바꿈, (b)에서는 패스워드 입력하는 규칙과 그에 대한 응답 규칙 입력 (a) UserID phase 설정 화면 (b) Password phase 설정 화면 [그림 4-44] 규칙성 설정 3 ➌ ➊ ➋ ➍

실습 5-3 서비스 데몬 패스워드 크래킹하기 ➊ Authentication Sequence : UserID phase - 문자열‘login :’에 대한 입력 설정 ➋ Authentication Sequence : Password phase - 문자열‘Password :’에 대한 입력 설정 ➌ Response Sequence : Primary - 위 테스트에서 잘못된 패스워드 입력 시 ‘Login incorrect’문자열 응답. 그대로 입력하고 해당 문자열을 만났을 때 On match action을 Send UserID phase로 한다. 이로써 ➊과정으로 돌아가 처음부터 계정과 패스워드 입력받게 함 ➍ Response Sequence : Secondary - 올바른 패스워드 입력 시 응답받는‘Last Login ...’ 입력. 해당 문자열 받을 경우 올바른 패스워드 입력한 것이므로 ‘ Response is positive authentication’에 체크표시. On no match action은 잘못된 패스워드 입력한 것이므로 ‘Disconnect’로 설정

실습 5-3 서비스 데몬 패스워드 크래킹하기 ➎ [그림 4-45]에서 설정한 규칙성 확인. Stage2에서‘login:’문자열을 받으면 Stage3에서 크래킹하고자 하는 계정 입력, Stage 4에서‘Password :’문자열을 받으면 Stage5에서 크래킹할 패스워드 입력, Stage6에서는 Login incorrect를 만나면 Stage3으로 돌아가 계정을 입력하는 과정 반복 [그림 4-45] 설정한 규칙성 확인

실습 5-3 서비스 데몬 패스워드 크래킹하기 패스워드 크래킹 [그림 4-46] 패스워드 크래킹 4

실습 5-4 윈도우 패스워드 복구하기 윈도우 시스템에서 패스워드 초기화 CD의 미리 만들어진 이미지로 부팅 NTFS를 무시하고 하드웨어 기반에서 패스워드가 저장된 섹터를 임의로 바꾸는 것 패스워드 복구를 위한 BRUTUS-AET2 인터페이스 확인 파티션 마운트 [그림 4-47] 윈도우 파티션 마운트 1 2

실습 5-4 윈도우 패스워드 복구하기 파티션 마운트와 윈도우 디렉토리 저장 [그림 4-48] 윈도우 디렉터리 지정 3

실습 5-4 윈도우 패스워드 복구하기 SAM파일 편집 [그림 4-49] SAM 파일 선택 및 편집 메뉴 선택 4

실습 5-4 윈도우 패스워드 복구하기 SAM파일 편집 [그림 4-50] 계정 선택 후 계정에 대한 패스워드 초기화 4

실습 5-4 윈도우 패스워드 복구하기 실시사항 저장 [그림 4-51] 패스워드 변경 후 저장 5

실습 5-5 리눅스 패스워드 복구하기 부팅 이미지 선택 1 [그림 4-52] GRUB 시작 화면 [그림 4-53] 부트 이미지 선택 1

실습 5-5 리눅스 패스워드 복구하기 부팅 이미지 선택 싱글모드 부팅 설정 2 [그림 4-54] 싱글 모드 부팅 설정 3 [그림 4-55] 싱글모드 셸 획득 2 3

실습 5-5 리눅스 패스워드 복구하기 패스워드 파일 수정 [그림 4-56] 패스워드 파일 편집 4