질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

긴급 nt 4.0 admin 계정패스 분실 !!

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

hwp.gif windows_비밀번호분실시.hwp 

CHNTPW를 이용하여 Windows NT/2000/XP 패스워드 복구하기


이 문서는 리눅스를 이용해서 윈도우의 비밀번호를 변경하는 방법에 대한 문서이다

Windows NT 계열 운영체제(Windows NT/2000/XP)는 로그온 패스워드를 잃어버리게 되면 복구하기가 상당히까다롭다. Unix/Linux 처럼 싱글모드 로그온 기능을 제공하지 않기 때문이다. 물론 Windows XP에서 '암호기억'이라는 툴을 제공하기는 하지만 NT나 2000에서는 불가능하고, 또 유비무환의 정신이 없으면 아무 쓸모가 없기 때문에 별로도움이 되지 않는다.

이 문제를 해결하기 위해 몇가지 서드파티 툴이 공개되었는데 그 중 하나를 소개하고자 한다.

Offline NT Password &Registry Editor 라는 Freeware 툴이다. 이툴은 레지스트리(SAM) 파일상의 암호화된 패스워드를 변경함으로써 로컬 계정의 패스워드를 재설정(복구) 해준다.

사용방법은 비교적 간단하다. 패스워드를 변경하는 여러가지 스크립트가 담긴 Linux 부팅 디스켓으로 부팅해서 이후 나타나는 몇가지 질문에 답을 해주면 된다. 자세한 내용은 아래 부분에서 다룰 것이다.

NTFS 파일시스템에 액세스가 가능하기 때문에 파일시스템에 따른 고민은 필요없으며, 이 글의 주목적과는 상관없지만 패스워드 설정 이외 레지스트리의 수정도 가능하다.


작성자 : 수퍼유저코리아 김형채

작성일 : 2005년 1월




프로그램 다운받기


http://home.eunet.no/~pnordahl/ntpasswd/

를 참고해서 다운로드 한다


테스트OS

NT 3.51, NT 4 (all versions and SP), Windows 2000 (all versions),

Windows XP(all versions, also SP2), Windows Server 2003 (at least Enterprise).


이미지 라이팅 하기


Floppy Image 라이팅 Unix / Linux : 콘솔창에서...

dd if=bd030118.bin of=/dev/fd0 bs=1024

000pt;co

SCSI HDD를 사용하는 경우에는 위의 SCSI 드라이버 파일을 다운로드한 후 압축을 해제하고, 별도의 디스켓에 저장하면 된다. (디렉토리 구조를 똑같이 해야 한다.)


사용법


설정은 대화식(Interactive)으로 이루어 지는데 기본값(defaut)이 '[ ]'에 주어진다.

기본값을 선택할 경우 그냥 엔터만 치면 된다.

캡쳐 사진중 중요한 내용을 회색 박스에 따로 옮겼으며, 이는 대개 캡쳐 사진의 맨 아래 부분이다.

플로피 디스켓이나 CD로 부팅

앞서 작성한 디스켓이나 CD를 넣고 시스템을 부팅한다. 당연한 애기지만 CMOS에서 부팅 순서를 FDD나 CD-ROM으로 설정해야 한다. 여기서는 플로피디스켓을 이용하기로 하겠다.

Loading vmlinuz... → Linux 부팅디스켓으로 부팅할때와 똑같다는 것을 알 수 있다.

확인하기

 Swap to SCSI-drives disk now if needed (not needed on CD).
Press return/enter to continue

 

 

SCSI HDD를 사용하는 경우 지금 SCSI 드라이버가 담겨있는 디스켓으로 바꾸고, 시작할 준비가 되었다면 엔터키를 친다.

CD를 사용하는 경우에는 CD안에 SCSI 드라이버가 들어 있기 때문에 별도의 SCSI 디스켓이 필요없다.

SCSI 장치 검색

Do you have your NT disks on a SCSI controller?
  y - this will autoprobe for the dirver
  n - no, skip SCSI, I have IDE drives
  or give the scsi-driver modules name (without the .o or .gz)
  + optional parameters to go directly for a known driver

 Probe for SCSI-drivers: [n]

 

 

앞에서도 언급했지만 [ ] 안의 값이 기본값이다. 엔터를 친다면 'n'이 입력된다.
위 내용은 'SCSI 드라이버를 자동으로 검색하겠느냐' 라는 의미이다. 대부분 IDE HDD를 사용하기 때문에 'n'을 누르면된다. 물론 SCSI HDD controller 검색을 원한다면 'y' 를 누르면 된다. 또한 SCSI controller의정확한 드라이버명을 알고 있다면 끝에 .o 나 .o.gz를 제외한 드라이버명을 기재하면 된다.

Windows가 설치된 파티션 선택

 Probable NT partitions:
/dev/hda1   *   1   2088   16771828+   7   HPFS/NTFS
What partition contains your NT installation?
[/dev/hada1] :

 

 

어떤 파티션에 Windows NT/2000/XP가 설치되어 있는지 묻는 질문이다. 기본값은 [/dev/hda1]이다. C 드라이브에 Windows가 설치되어 있다면 대부분 그냥 엔터를 눌러도 별 지장이 없을 것이다.

리눅스를 사용해 보신 분들은 낯익은 용어일텐데 Linux를 모른다고 해도 상관은 없다. 선택할 수 있는 파티션을 검색해주니말이다. 필자의 시스템은 C 드라이브만 존재하기 때문에 /dev/hda1만이 검색된 것을 볼 수 있다. C, D, E...이상의 드라이브를 가진 시스템에서는 좀더 많이 검색될 것이다.

리눅스 파티션 명명에 관한 내용은 여기를 참고한다.

레지스트리 경로 지정

 What is the full path to the registry directory?
[winnt/system32/config] :

 

 

레지스트리 파일이 위치한 경로를 묻는 질문이다. Windows NT/2000/XP에서는%SystemRoot%system32config에 레지스트리가 존재하는데 본 툴이 Linux에 기반하여 작동하기 때문에''가 아니고 '/'로 표시된다.

기본값으로 Windows NT/2000에서 %SystemRoot%는 C:WINNT이고, Windows XP에서는 C:WINDOWS이다. 하지만 대개 자동으로 검색되기 때문에 크게 신경쓰지 않아도 된다.

편집할 Hive 선택

 Which hives (files) do you want to edit (leave default for password setting. separate multiple names with spaces)
[sam system security] :

 

레지스트리 경로를 올바르게 지정하였다면, 위 그림처럼 파일이 리스팅된다. 이 파일중 확장자가 없는 파일이 바로 레지스트리를 구성하는 파일(Hive)이다.

이제 실제로 편집할 Hive 파일을 선택하라는 질문이 나타나는데, 사용자 계정 정보가 들어 있는 SAM을 반드시 포함하여 선택하면된다. syskey를 설정하지 않은 경우 SAM만으로 충분하다. 물론 기본값으로 그대로 선택해도 무방하다.

작업 선택

<>========<> chntpw Main Interactive Menu <>========<>
Loaded hives: 
1 - Edit user data and passwords
2 - Syskey status &change
    - - -
9 - Registry editor, now with full write support!
q - Quit (you will be asked if there is something to save)

what to do? [1] ->

 

이제 'chntpw' 툴이 시작된다. 더불어 chntpw Main Interactive Menu 라는 메뉴가 나타나는데, 사용자가하고자 하는 작업을 선택하는 부분이다. 우리는 패스워드를 복구하려고 하기 때문에 '1'을 선택하면 된다.

기타 syskey를 설정(on/off)하고, 레지스트리를 편집할 수 있다.

패스워드를 변경할 계정명 확인

==== chntpw Edit User Info &Passwords ====

RID: 01f4, Username: <Administrator>
RID: 01f5, Username: <Guest>, *disabled or locked*
RID: 03eb, Username: <lion21>
RID: 03e8, Username: <TsInternetUser>

Select: ! - Quit, . - list users, 0x - User with RID (hex)
or simply enter the username to change: [Administrator]

 

패스워드를 변경할 계정을 묻는 질문이다. 기본값은 Administrator 이며, 자신의 상황에 맞게 입력하면 된다. 사용자 계정이 한글인 경우 RID를 입력하면 된다. 자동으로 검색된 리스트중의 RID를 적당하게 입력하면 된다.

패스워드 입력

 * = blank the password (This may work better than setting a new password!)
Enter nothing to leave it unchanged
Pleas enter new password:

 

새로운 패스워드를 입력한다. 영문자를 기준으로 14자까지만 허용한다.

'*'(인용부호 제외)을 입력하면 공백의 패스워드가 입력된다. 즉, 패스워드가 null(빈값)이 된다. 본문 중에 '*' 을 입력하는것이 좀더 나을 수 있다고 하는데 실제 필자의 경험상 공백(*)이 아닌 새로운 패스워드를 입력하는 경우 제대로 작동하지 않은것을 경험했다. 가급적 '*' 을 입력하기를 권장한다.

변경 확인하기

Blanking password!

Do you really wish to change it? (y/n) [n]

 

Blanking password가 설정되었음을 알리고, 이를 반영하는지 여부를 묻는다. 기본값이 'n'이지만 우리는 패스워드를 변경하는 것이 목적이기 때문에 반드시 'y'를 입력한다.

이때 'y'를 입력했다고 하더라도 실제 Hive에 저장된 것은 아니다. 이는 원본 Hive 파일을 복사하여 사용한 것이기 때문이다.

주메뉴로 이동

 Select: ! - Quit, . - list users, 0x - User with RID (hex) or simply enter the username to change: [Administrator]

 

주메뉴로 이동하려면 '!'(인용부호 제외)를 입력하고, 또다른 사용자 계정의 패스워드를 변경하려면 해당 사용자 계정을 입력한다. 우리는 이미 패스워드를 변경하였기 때문에 '!'을 입력하고 엔터키를 누른다.

패스워드 변경작업 종료

<>========<> chntpw Main Interactive Menu <>========<>
Loaded hives: 
1 - Edit user data and passwords
2 - Syskey status &change
    - - -
9 - Registry editor, now with full write support!
q - Quit (you will be asked if there is something to save)

what to do? [1] ->

 

다시 주메뉴로 돌아왔다. 이제 패스워드 변경 스크립트를 종료하면 된다. 'q'를 입력하고 엔터키를 누른다.

Hive 파일 저장 여부 확인

 Hives that have changed:
  # Name
  0 <sam>
Write hive files? (y/n) [n]

 

SAM Hive가 변경되었음을 알리고 이를 실제 Hive(%SystemRootsystem32configSAM)에 반영(저장)할지 여부를 묻는다. 당연히 'y'를 입력하고 엔터키를 눌러야 한다.

Hive 파일 저장 여부 재확인

 Calling Write.rc to select write back sam file
About to write file(s) back! Do it? [n]

 

정말로 변경된 내용을 저장할 것인지 재차 확인하다. 'y'를 입력한다.

스크립트 종료

 * end of scripts.. returning to the shell..
* Press CTRL-ALT-DEL to reboot now (remove floppy first)
* or do whatever you want from the shell..
* However, if you mount something, remember to umount before reboot
* You may also restart the script procedure with 'sh /scripts/main.rc'
#

 

이제 패스워드 변경 스크립트('chntpw' 툴)가 완전히 종료되고 리눅스 쉘(shell)로 빠져 나왔음을 알린다. Ctrl-Alt-Del 키를 눌러서 재부팅하면 된다. 물론 그 전에 Floopy Disk 를 빼야 한다.

패스워드 변경여부가 궁금한 분은 바로 재시작해도 좋지만, 리눅스의 맛(?)을 느껴보고 싶다면 적절한 명령어를 사용해 보는 것도괜찮다. 어떤 종류의 쉘(shell)을 사용하는지 확인해 보지 않았지만 대부분의 기본 명령어는 가능할 것 같다. pwd, ls,cp, mv, rm 등등 :-)


참 고


Offline NT Password &Registry Editor 는 Windows 의레지스트리를 해킹하는 방법으로 패스워드를 변경하는 방법이므로 Windows 2000 Domain Controller 에서는제대로 작동하지 않는다.
위 툴을사용함으로써 많은 것이 잘못될 수 있지만 대부분의 문제는 사용자의 시스템을 손상하지는 않는다고 한다. 가장 위험한 순간은레지스트리 파일을 NTFS(원본 Hive 파일)에 다시 기록할 때이다. 이 때 레지스트리가 망가질 수 있으며, 시스템이 제대로부팅되지 않을 수 있다. SAM Hive가 손상되었을 때는 사용자 로그온을 담당하는 Netlogon 서비스가 시작되지 않는다.또한 무한정 리부팅되는 경우도 있다.

마지막으로... 기술적인 내용이 궁금하신 분들은 직접 참고 사이트를 방문하기 바란다. 툴 소스코드까지 같이 제공하고 있다.


참고 사이트


http://home.eunet.no/~pnordahl/ntpasswd/

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,017 명
  • 현재 강좌수 :  35,690 개
  • 현재 접속자 :  219 명