1. 윈도우 패스워드의 특성
- 기본적으로 윈도우의 패스워드 구조 자체가 취약하다.
- 윈도우 패스워드는 특이하게 패스워드의 길이에 관계없이 8바이트가 하나의 블록을 형성한다.
- 이 중 1바이트는 패스워드 블록에 대한 정보를 담고 있으므로, 실질적으로 패스워드 문자열을 저장하는 것은 7바이트다.
- 따라서 비밀번호가 qwer1234 일 경우 모두 8개의 문자이므로 두 개의 블록을 형성하게 된다.
- 지금까지 발매된 윈도우는 기본적으로 위와 같은 형태이며, 하나의 패스워드 블록은 별도로 운영된다.
- 따라서 하나의 패스워드 블록의 길이인 7 글자를 크래킹하는데 걸리는 노력이면, 아무리 긴 패스워드라도 풀 수 있는 것이다.
- qwer1234 일 경우 qwer123 과 4 로 저장이 되며, qwer123은 쉽게 크랙킹 하기 어렵겠으나, 뒤에 4 는 몇 초도 안되는 사이에 - 크래킹 할 수 있다. 그러므로 사실 상 7개의 글자나 8개의 글자나 패스워드의 강도는 같다고 봐도 무방하다.
- 즉 윈도우에서는 14개 문자 길이의 패스워드를 크래킹 하는 것은 7개의 패스워드를 2개 크래킹 하는 것이다.

하지만 다행히도 이러한 패스워드 강도는 공격자가 SAM 파일을 획득한 경우에만 해당되는 경우며,
원격에서 공격을 시도할 경우에는 윈도우에서도 리눅스처럼 글자수에 따라 강도가 커지게 된다.
SAM 파일을 획득해야만 7글자의 패스워드 블록 단위로 패스워드 크래킹이 가능하기 때문이다.


- 윈도우 패스워드 크래킹을 위한 툴
1. NAT ( NetBIOS Auditing Tool )
- nat -u userlist.txt -p dic.txt "ip주소"

2. pwdump3
 pwdump3 "\\아이피주소" sam_file administrator

3. LC4
- GUI 툴이며, import -> import From PWDUMP File 메뉴에서 사용한다.



'Hacking > System Hacking' 카테고리의 다른 글

윈도우의 인증 구조  (0) 2011.07.18
파일시스템 : FAT 과 NTFS  (0) 2011.07.18
윈도우의 주요 서비스  (0) 2011.07.18
윈도우의 부팅 순서  (0) 2011.07.16
윈도우 2000의 인증 과정에서 가장 중요한 구성 요소는 다음과 같다.

- LSA ( Local Security Authority )
- SAM (Security Accounts Manager )
- SRM ( Security Reference Monitor) 
LSA 
- 모든 계정의 로그인에 대한 검증을 하고, 시스템 자원 및 파일 등에 대한 접근 권한을 검사한다.
- 로컬, 원격 모두에 해당하며, SRM 이 생성한 감사 로그를 기록하는 역활도 한다.
- NT 보안의 중심 요소이며, 보안 서브 시스템 이라고 부르기도 한다.

SAM
- 사용자/그룹 계정 정보에 대한 데이터베이스를 관리한다. 사용자의 로그인 입력 정보와 SAM 디비 정보를 비교하여
- 인증 여부를 결정하도록 해주는 것이다.
- 보통 SAM 파일은 \system32\config\sam 에 위치하며, 이 파일은 시스템을 부팅시킨 경우
- 접근 제한으로 읽을 수 없는 파일이다.
- 하지만 윈도우에서는 SAM 을 이용한 인증이 모두 같은 것이 아니며, 다음의 세 가지로 나뉘게 된다.

1. LM ( Lan Manager )
윈도우에서 가장 약한 인증 방법이다. 랜에서 파일을 공유하기 위해 사용하는 인증 방법으로
윈도우 XP 이하 버전에서 사용하며, 크래킹하는데 10초도 걸리지 않는다.

2. NTLM ver1 
LM 보다는 안전하나 취약점이 발견되어 오래 적용되지 않았다.

3. NTLM ver2
윈도우 XP와 2000의 시스템에 적용되어 있다.

NTLM 은 인증에 도전/응답 (Challenge / Response )  방식을 사용한다.
이러한 인증법을 사용하는 이유는 네트워크에 패스워드를 흘려보내지 않고 인증을 성공시키기 위해서다.
유닉스의 텔넷과 같은 경우, 기본적으로 네트워크에 패스워드를 보내는데 이는 매우 취약하기 때문이다.


SRM
- SAM 이 사용자의 계정과 패스워드가 일치하는 지를 확인하여 SRM 에게 알려주면 SRM 은 사용자에게
- 고유의 SID 를 부여한다. 또한 SRM 은 SID에 기반하여 파일이나 디렉토리에 접근 제어를 하게 되고, 이에 대한
- 감사 메시지 또한 생성한다.

SID
- SRM 이 할당해준 SID 를 윈도우 2003에서는 whoami user/SID   명령을 이용해 간단히 알아 볼 수 있었으나,
- 윈도우 2000과 XP 에서는 윈도우 리소스 킷의 getsid 란 툴을 이용해야 한다.
- 사용법은 cmd 창에 getsid 명령을 명령 프롬프트에서 실행하면 된다.
- getsid 툴은 기본적으로 설치되어 있지 않으므로 따로 구해서 사용해야 한다.



'Hacking > System Hacking' 카테고리의 다른 글

윈도우의 패스워드 구조  (0) 2011.07.18
파일시스템 : FAT 과 NTFS  (0) 2011.07.18
윈도우의 주요 서비스  (0) 2011.07.18
윈도우의 부팅 순서  (0) 2011.07.16

FAT ( File Allocation Table )

FAT 은 기본적으로 16 비트 크기의 테이블을 가지고 있으며, 하나의 클러스터는 32 KB 이므로 전체 가능 용량은
2GB 이다. (2 * 1024 * 1024 * 1024 Byte )

이후 FAT 의 최대 용량의 한계가 지적이 되자 FAT 32가 개발이 되었고, 이 후 윈도우95 OSR2에서 처음 도입되어 사용되었다.
FAT32 는 총 32 비트 개수만큼의 클러스터를 가질 수 있었으므로 FAT 과는 비교할 수 없을만큼 큰 용량이 가능해졌다.
현재도 FAT32는 USB 에 종종 사용되는데, 이는 호환성이 좋은 편이어서 윈도우에서 리눅스나 리눅스에서 윈도우로 파일을 옮길 때 유용하게 쓰인다. 그러나 보안 관점에서 NTFS 처럼 접근 제어를 설정할 수 없으므로 보안에 많이 취약하다.

이후 NTFS는 FAT 과 OS/2 의 파일 시스템이었던 HPFS 의 장점을 모아 만든 것이며, 윈도우 2000부터 적용되었다.
NTFS는 아주 다양한 기능을 가지고 있으며, 윈도우 NT 계열의 운영체제에서만 사용할 수 있다.
물론 리눅스에서 마운트하거나 부팅 디스켓을 이용하여 읽을 수는 있으나 쓰기는 불가능하다.
이런 점은 호환성에 문제가 있어 보이나, 보안에서는 굉장히 중요한 사항이다. 또한 NTFS 는 파일 시스템의 결함 관리에 있어,
FAT이나 FAT32 보다 훨씬 좋은 성능을 보여주는데, FAT 이나 FAT32 경우 , 파일 시스템에 문제가 생길 경우
파일 이름이 깨지거나 폴더 구조가 이상하게 된다. 이러한 문자게 생기면 디스크 도구에서 에러 검사를 수행해주어야 했다.
그러나 NTFS를 사용한다면 디스크 에러 검사를 수행할 일은 거의 없다.
NTFS 는 갑작스런 전원의 차단에도 하드디스크의 사용에 대한 자신의 로그를 따로 기록하여 스스로 복구하는 기능이 있다.
안전성면에서도 FAT, FAT32를 능가한다.

보안 관점에서도 NTFS는 개별적인 폴더와 파일에 대해 사용 권한을 설정할 수 있고, 각 파일과 폴더에 해당 계정만이 접근하여 읽을 수 있도록 암호화할 수도 있다. 폴더를 암호화하면 그 안 내용도 모두 암호화된다.
이렇게 암호화된 폴더나 파일은 복사나 이동을 해도 암호화된 속성이 사라지지 않으며, 파일 단위로 어떤 계정을 가진 사람이
어느날 몇시 몇분에 파일을 열어보거나, 열려다 실패했는지도 알 수 있는 감사 (auditing) 기능이 있다.

또한 파일이나 폴더 별로 압축하여 관리할 수 있으며, 재부팅하지 않고 파티션을 변경할 수도 있다.
그러나 운영체제를 구동중인 파티션은 예외다. 그리고 쿼터 기능도 지원하는데 기본적으로 4개까지 파티션 지원이 가능하다.
파티션은 크게 기본 파티션(Primary) 와 확장 파티션 (Extended) 으로 나뉘는데, FAT 에서는 기본 파티션을 하나만
설정할 수 있는데 반해, NTFS 는 3개까지 설정이 가능하다.
확장 파티션은 다시 몇개의 파티션으로 나눌수도 있다.
이렇듯 많은 기능을 가진 NTFS의 단점은 하나의 파일이 가져야 할 정도가 그만큼 많아 지므로, 오버헤드가 크다.
오버헤드는 하나의 파티션에 5MB 정도이며, NTFS로 포멧시 하드 디스크의 용량 중에 5MB 는 사라지게 된다.

'Hacking > System Hacking' 카테고리의 다른 글

윈도우의 패스워드 구조  (0) 2011.07.18
윈도우의 인증 구조  (0) 2011.07.18
윈도우의 주요 서비스  (0) 2011.07.18
윈도우의 부팅 순서  (0) 2011.07.16


중지하면 안되는 주요 서비스들

1. Network Connections
- 시스템에 관련된 모든 네트워크 및 전화 접속 연결에 대한 서비스를 제공하며, 상태를 표시한다.
이 서비스를 중지 시킬 경우 네크워크에 대한 모든 접속이 불가능해진다.

2. Plug and Play
- 하드웨어에 대한 자동 인식과 설정을 도와주는 서비스이며, 중지시킬 경우 시스템이 불안정해진다.

3. Security Accounts Manager  (SAM)
- 인증에 관련된 서비스로 중지시킬 경우 다른 시스템이 해당 시스템에 접근할 수 없게 된다.

4. Windows Management Instrumentation ( WMI )
- 시스템의 관리 정보를 제공하는 서비스다. 응용 프로그램과 서비스가 생성하는 관리 이벤트를 포함하여
응용 프로그램 서비스에 접근 정보를 제공한다. 또한 SNMP 와도 호환된다.

5. Application Management
- 응용 프로그램의 설치, 제거와 같은 서비스를 제공하며, 중지시킬 경우 응용 프로그램을 추가/삭제하지 못한다.

6. Remote Procedure Call ( RPC )
- RPC 에 관련된 서비스를 제공한다. 서비스를 끄면 해당 컴퓨터가 부팅되지 않는다!!

7. Server
- RPC 지원 및 파일, 인쇄 등을 위한 자원 공유를 제공한다.




다음은 선택 사항의 서비스들에 대해 알아보자.

1. COM+ ( an extension to the Component Object Model) Event System
- COM 은 프로그램의 컴포넌트 객체들을 개발하고 지원하기 위한 하부 기반 구조로, COBRA ( Common Object Request Broker Architecture ) 에서 정의된 수준의 기능 제공을 목표로 한다. 마이크로소프트의 OLE 가 사용자가 화면에서 볼 수 있는 복합 문서를 위한 서비스를 제공하는 반면에, COM 은 인터페이스 교섭과 언제쯤 객체가 시스템에서 제거될 수 있는지를 판단하며, 라이센스 및 이벤트 서비스 등을 제공한다. COM+ 는 이러한 COM 구성요소에 이벤트를 자동으로 배포한다. COM + 이벤트는 COM + 프로그래밍 모델을 확장하여 게시자/가입자와 이벤트 시스템 사이의 이벤트나 메소드 호출을 지원한다.

2. Computer Browser
- 네트워크에 있는 컴퓨터의 최신 목록을 유지하고, 요청하는 프로그램에게 목록을 제공한다.
이 서비스는 네트워크 도메인과 리소스를 보아야 할 윈도우 컴퓨터에게 사용한다. 브라우저로 지정된 컴퓨터는 해당 네트워크에서 사용되는 모든 공유 리소스를 포함하는 찾아보기 목록을 유지한다.

3. Distributed Link Tracking (DLT) Client
- 네트워크 도메인의 여러 컴퓨터에 걸쳐 있거나, 하나의 컴퓨터에 있는 NTFS 파일 시스템 사이의 링크를 유지 및 관리한다.
DLT 클라이언트 서비스를 사용하면 대상 파일의 이름이 바뀌거나 이동 된 후에도 바로 가기와 OLE 링크가 계속 작동한다.

4. File Replication
- 자동 파일 복제 서비스다. 여러 서버에 존재하는 파일을 복사 및 관리하고 동기화 시켜준다.
또한 내결함성이 있는 DFS ( Distributed File System )과 관련된 대체 대상 사이에서 파일을 동기화하도록 이 서비스를 구성할 수 있으며, 도메인 컨트롤러의 경우 이 서비스를 중지시킬 경우 심각한 손상이 발생할 수 있다.

5. Internet Authentication Service ( IAS )
- VPN , RAS 장비 또는 무선 및 LAN, WAN 네트워크에 접속하는 사용자의 인증, 권한 부여, 감사 및 계정 작업을 수행한다.

6. Intersite Messaging (ISM)
- 윈도우 서버간에 메시지를 주고 받을 수 있다.



'Hacking > System Hacking' 카테고리의 다른 글

윈도우의 패스워드 구조  (0) 2011.07.18
윈도우의 인증 구조  (0) 2011.07.18
파일시스템 : FAT 과 NTFS  (0) 2011.07.18
윈도우의 부팅 순서  (0) 2011.07.16
1. POST (Power On Self Test)
- POST 란, 운영체제와는 상관없이 하드웨어 자체가 시스템에 문제가 있는지 체크하는 과정이다.
BIOS 에 의해 실행되며, 라우터나 스위치, 브릿지 등도 처음 켜면 POST 를 실시한다.
POST 도중 하드웨어에 문제가 발견되면 여러 방법으로 문제를 알리는데, 예를 들면
그래픽 카드를 제대로 설치하지 않거나, 접촉 불량이 있을 경우 삐삑~ 하는 경고음을 말한다.
이런 경고음은 POST 에 의해서 만들어진다. 문제에 따라 경고음의 횟수와 음의 길이가 다르므로
경고음만 들어도 어디에 문제가 있는지 판단할 수 있고, 요즘에는 메인보드의 LED 를 이용해 표시한다.


2. CMOS ( Complementary Metal - OXide Semiconductor )
- BIOS 와 거의 같다고 보면 된다.


3. MBR  ( 마스터 부트 레코드 )
- CMOS 정보를 읽어 부팅 매체를 확인한 뒤, 부팅 매체의 MBR 정보를 읽는데,
MBR에는 부팅 매체에 대한 기본적인 파일 시스템 정보가 들어있다. MBR 정보는
운영체제가 부팅된 뒤에는 편집할 수 없으며, 접근할 수도 없다.
윈도우 2000이 설치되어 있을 경우 MBR에는 NTLDR 의 위치정보를 담고 있다.
그러나 반드시 필요한 것은 아니며, C 드라이브에 운영체제를 기본 설정대로 설치했다면,
MBR이 삭제되어도 문제가 생기지 않는다.

4. NTLDR
- 하드디스크의 부팅 파티션에 있는 프로그램으로, 부팅될 수 있도록 간단한 파일 시스템을 실행하며,
boot.ini  파일의 내용을 읽어 가능한 부팅 옵션을 보여준다.



5. NTDETECT.com
- NTDETECT  는 NTLDR 로부터 제어권을 위임받아 시스템에 설치된 하드웨어를 검사한다.
- 다음은 NTLDR 이 검사하는 하드웨어다.

  • PC의 컴퓨터 CPU 유형
  • 버스유형
  • 비디오 보드 유형
  • 키보드와 마우스 종류
  • 컴퓨터에 장착되어 있는 직렬 포트와 병렬포트
  • 플로피 드라이브

NTDETECT 가 문제없이 작동하면 레지스트리에 하드웨어 키를 만드는데, 이 키는 HKEY_LOCAL_MECHINE 에 있다.
컴퓨터를 부팅할 때마다 레지스트리의 해당 부분이 만들어지기 때문에 항상 현재의 하드웨어 구성을 반영하게 된다.


6. ntoskrnl.exe (NT OS Kernel)
- ntoskrnl 은 Hardware Abstraction Layer (HAL.DLL) 을 로드한다.
- 다음은 4단계의 로드 단계다.

(1) 커널 로드 단계
- 운도우 2000은 시스템 설정을 로드하고, 이것을 HKEY_LOCAL_MACHINE\System\CurrentControlset\Services 에 저장한다.
윈도우 2000은 이 정보를 확인하고 로드할 드라이브와 그 순서를 결정한다.

(2) 커널 초기화 단계
- 드라이버에 대한 현재의 제어 세트를 검사하고 작업을 시작한다.

(3) 서비스 로드 단계
- Session ManagerSubSystem(smss.exe)와 Win32 서브 시스템을 로드한다.

(4) 서브시스템 시작 단계
- 윈도우 서브시스템이 초기화된다. Win32 서브 시스템은 로그인에 대한 처리를 하고 winlogon.exe 를 시작한다.
- 컨트롤 + 알트 + DEL 키를 누르면 로그인 창이 활성화되고, 계정과 패스워드를 입력받아 로컬 보안 인증서버
(lsass.exe) 에 보낸다. 로컬 보안 인증 서버는 보안 계정 관리자( SAM) 에 저장되어 있는 정보와 비교하여
일치하면 userinit.exe 프로세스가 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogn 의 셀 값에서 참조되는 셸을 실행한다.


이상 윈도우의 부팅 과정에 대해 알아보았다.











  1. 운영체제를 선택하는 화면에서의 대기시간을 말한다. 30초 동안 입력하지 않으면 밑에 명시되어 있는 default 로 운영체제를 부팅한다. [본문으로]
  2. multi(0) = E-IDE 컨트롤러를 가지는 디스크임을 나타내며, SCSI 컨트롤러에 부착된 디스크에서 부팅시 mult(0) 대신에 scsi(0) 를 쓰게 된다. 숫자 0은 첫 번째 컨트롤러 임을 나타낸다.disk(0) 는 scsi로 시작할 경우에 rdisk(0)은 IDE,E-IDE,SCSI with BIOS 방식의 디스크에 해당하는 표현이다.마찬가지로 0은 해당 컨트롤러에서 첫번째 임을 말하고, partition(3)은 파티션의 순서를 나타내며, 이 값은 0이 아닌 1부터 시작한다.partition(3) 이므로 디스크의 세 번째 파티션에 운영체제가 있음을 나타낸다. [본문으로]

'Hacking > System Hacking' 카테고리의 다른 글

윈도우의 패스워드 구조  (0) 2011.07.18
윈도우의 인증 구조  (0) 2011.07.18
파일시스템 : FAT 과 NTFS  (0) 2011.07.18
윈도우의 주요 서비스  (0) 2011.07.18

+ Recent posts