패스워드는 보안을 강화하기 위한 좋은 수단이지만, 이를 잊어버리면 매우 성가신 상황에 처한다. 하지만 패스워드를 잊었다고 너무 걱정하지 말라. 여기, 패스워드를 알아낼 수 있는 다양한 기술과 소프트웨어를 소개한다.
필자는 IT 분야 가운데 가장 많은 오해를 받는 개념이 해킹이 아닌가 하는 생각한다. 필자가 친구나 가족들에게 해킹을 해본 경험이 있다고 하면, 그들은 경찰에 체포돼 감옥에 갇힐까 걱정하곤 한다. 그러나 일반적인 생각과 달리 이 세상에는 합법적인 해킹이 존재하며, IT 관련 직종에서 일하다 보면 종종 해킹이 필요할 때가 있다.
패스워드 복구 작업이 그런 경우다. 필자는 IT 담당 직원이 회사를 그만두었는데 후임 직원이 관리자 패스워드를 모른다며 패스워드를 알아내 달라는 기업들의 해킹 요구를 받곤 한다. 이 글은 이와 같은 상황에 처했을 때 패스워드를 바꾸거나 알아낼 수 있는 몇 가지 기술을 적은 것이다.
시스템 계정 이용해 패스워드 복구하기
패스워드를 알아내는 대부분의 방법은 해킹 툴이나 별도의 유틸리티를 필요로 한다. 그러나 윈도우 NT 4.0을 사용하고 있다면 별도의 툴 없이도 관리자 패스워드를 비롯한 어떤 패스워드라도 다 변경할 수 있다. 이것은 운영체제에 포함된 시스템 계정을 이용한 것으로, 시스템 계정은 일반적으로 특정 서비스에만 제한적으로 이용돼 왔다. 그러나 여러분도 짐작하듯, 시스템 계정은 무한의 권한을 갖고 있으니 이를 잘 활용하면 도움이 된다.
시스템 계정을 이용해 패스워드를 복구하는 방법은 다음과 같다. 일단 윈도우 NT 4.0에 로그온하면 스풀러 서비스가 작동된다. 스풀러 서비스는 시스템에 대한 여러가지 권한을 필요로 하므로 현재 로그인하고 있는 사용자 권한이 아닌 시스템 계정으로 작동한다. 따라서 시스템이 스풀러 서비스 대신 유저 매니저를 작동시키도록 속일 수 있다면, 유저 매니저는 시스템 계정이 주는 모든 권한을 가진 채 실행된다. 즉 당신은 시스템의 어떠한 사용자 계정도 마음대로 수정할 수 있게 되는 것이다.
유저 매니저를 시스템 게정으로 실행시키도록 시스템을 속이는 방법도 간단하다. 먼저 임의의 사용자명이나 패스워드를 사용해서 로그인한다. 이때는 계정의 권한은 신경쓸 필요가 없다. 로그인했으면 Spoolss.exe 파일 이름을 Spoolss.bak로 변경하고 Usrmgr.exe를 Spoolss.exe로 바꾼다. 이제 시스템을 재부팅하면 유저 매니저를 통해서 사용자 계정에 얼마든지 접속할 수 있다. 단, 일을 마치고 나면 반드시 파일들을 본래 이름으로 되돌려 놓고 시스템을 재부팅해야 한다.
윈도우 소스 코드를 토대로 개발된 ‘ERD 커맨더’
필자가 가장 즐겨쓰는 패스워드 복구 유틸리티는 윈터널즈 소프트웨어의 ERD 커맨더다. ERD 커맨더는 플로피 디스크나 CD를 이용해 시스템을 부팅할 수 있다는 점을 이용한 유틸리티다. 즉 윈도우 대신 ERD 커맨더 자체 운영체제를 이용해 부팅하는 것이다.
이렇게 하면 하드디스크의 시스템 파티션에 접근할 수 있으며 윈도우 보안체계의 방해를 받지 않고 필요한 작업을 할 수 있다. ERD 커맨더는 이런 원리로 시스템에 로그온하지 않은 채 관리자 패스워드나 다른 패스워드로 변경한다.
ERD 커맨더의 가장 큰 강점은 윈도우 소스 코드를 토대로 개발됐다는 사실이다. 이 때문에 RAID 하드디스크를 인식하는 것은 물론 시스템의 하드웨어 사양에 관계없이 관리자 패스워드에 접속해 변경할 수 있다. ERD 커맨더의 가격은 399달러이며 각종 지원 유틸리티가 포함된 관리자 팩은 699달러다.
간편한 복구 유틸리티 ‘패스워드 리커버리 XP’
지금까지 윈도우 로그온 패스워드를 깨는 방법을 살펴봤는데, 애플리케이션 패스워드는 이와 다소 차이가 있다. 대부분의 애플리케이션은 애플리케이션만의 고유 패스워드를 갖고 있어서, 이런 애플리케이션에 관리자 권한 접속이 필요하다면 반드시 이를 위한 고유 패스워드를 알아야 한다.
문제는 이런 종류의 패스워드는 자주 사용하지 않기 때문에 쉽게 잊어버린다는 점이다. 웹에는 이처럼 잊어버린 패스워드를 해킹하는 여러가지 방법이 소개되고 있는데, 여기서는 이 가운데 매우 보편적인 해킹 유틸리티인 ‘패스워드 리커버리 XP(Password Recovery XP)’에 대해 살펴본다.
아이오퍼스(iOpus)가 개발한 패스워드 리커버리 XP를 사용하면 흔히 별표(*)로 표기되는 패스워드 대부분을 알아낼 수 있다. 이와 같은 패스워드를 찾아주는 유틸리티는 많이 소개됐지만, 최근 MS가 패스워드 암호화 기술을 변경하면서 이들 유틸리티는 윈도우 XP 이전 버전에서만 사용할 수 있게 됐다.
반면 패스워드 리커버리 XP는 모든 버전의 윈도우에서 사용할 수 있으며 실행을 위한 최소환경도 매우 낮다. 패스워드 리커버리 XP는 486 이상의 프로세서와 1MB 이상의 하드 디스크 공간만 있으면 실행할 수 있으며, 윈도우 95부터 98, Me, NT, 2000, XP 등 모든 윈도우 버전을 지원한다.
아이오퍼스 웹사이트를 방문하면 패스워드 리커버리 XP의 무료 버전을 다운로드 하거나 정식버전을 구입할 수 있다. 무료 버전은 패스워드의 첫 3글자까지만 보여주는 기능제한이 걸려 있어 전체 패스워드를 짐작하기 쉽지 않지만, 정식버전 구입에 앞서 이 소프트웨어를 당신의 시스템에서 사용할 수 있는지 확인하는 것은 가능하다.
패스워드 리커버리 XP 정식버전의 가격은 29.95달러이며, CD롬 형태로 구입하면 택배 비용 7.99달러가 추가된다. 한가지 알아둘 것은 이 소프트웨어의 라이선스가 유저 기준이 아니라 시스템 기준이라는 점이다. 저작권법에 저촉되지 않으려면 소프트웨어를 설치해 사용할 시스템을 기준으로 시스템 개수만큼 소프트웨어 라이선스를 구입해야 한다.
소프트웨어 사용법은 간단하다. 다운로드한 파일은 자동으로 압축이 풀려 실행되는 방식이며 설치 과정도 거의 자동으로 이루어진다. 설치를 완료하면 윈도우 작업표시줄에서 ‘시작 -> 모든 프로그램 -> 아이오퍼스 패스워드 리커버리 XP 메뉴’로 이동해 이를 선택한다.
프로그램을 실행하면 <그림 1>과 같은 화면이 나타나는데, 아이콘을 클릭한 후 알아내고자 하는 패스워드 입력 필드로 이를 드래그한다. 이제 잠시 기다리면 패스워드 리커버리 XP 윈도우 안에 찾고자 했던 패스워드가 나타난다. 패스워드를 복구하는 시간은 그리 오래 걸리지 않는다. 필자가 사용했을 때는 일부 웹 기반 패스워드를 알아내는데 다소 애를 먹었지만 그 외 다른 경우들은 알아내기 매우 쉬웠고 처리시간도 짧았다.

해킹 툴도 또 다른 대안임을 잊지 말자
위에서는 운영체제나 합법적인 사용 애플리케이션을 이용해 패스워드를 복구하는 방법을 살펴 봤다. 그러나 당장 업무를 수행하는데 필요하다면 해킹 툴을 사용하는 것도 고려해 볼만 하다.
그러나 인터넷을 검색해 해킹 툴을 찾기 전에 한가지 명심할 것이 있다. 일반적으로 해커 웹사이트들은 믿을 수 없다는 점이다. 해커 유틸리티는 실행 이후 그 결과를 예측할 수 없으므로 이를 다운로드하고자 한다면 신중에 신중을 기해야 한다.
관리자 계정도 잊어버렸다면, 대안은 ‘레드 버튼’
지금까지 서술한 내용들은 패스워드를 잊어버린 상황을 가정한 것이다. 그러나 컴퓨터를 사용하려고 하는데 관리자 패스워드는 물론 관리자 계정 이름조차 모르는 경우라면 어떻게 할까? 실제 많은 사람들이 관리자 계정 이름을 바꿔 사용하고 있다. 이 경우 윈도우 NT를 사용하고 있다면 <그림 2>와 같이 관리자 이름이 바뀌었는지를 알아내는 해커 툴 ‘레드 버튼(Red Button)’이 대안이다. 레드 버튼은 관리자 계정 이름이 변경된 지 여부를 검토하고 변경됐다면 그 계정 이름을 알아내는 유틸리티다.

<그림 2>를 보면 기본 관리자 계정이 N/A로 표시돼 있다. 이는 필자가 윈도우 NT 서버가 아닌 윈도우 2000 서버 운영체제에서 레드 버튼을 실행했기 때문이다. 윈도우 2000은 관리자 계정을 해킹할 수 없는 방식으로 개발됐다.
최후의 수단 ‘문자 조합 대입’
다시 패스워드 복구 방법 논의로, 소개한 다양한 기술과 유틸리티로도 관리자 패스워드를 알아낼 수 없다면 최후의 수단은 패스워드를 찾아낼 때까지 가능한 숫자나 글자, 기호를 조합해 대입하는 ‘브루트 포스 해킹(brute-force crack)’이다. 이 방법에는 장단점이 있는데, 장점은 모든 경우의 수를 다 입력하기 때문에 패스워드를 알아낼 확률이 높다는 것이다.
반면 시간이 많이 소요되는 것은 단점으로 꼽힌다. 전체 패스워드 길이가 한 문자만 추가돼도 전체 해킹 시간은 기하급수적으로 늘어나는데, 0-9까지의 숫자만으로 구성된 패스워드라고 해도, 한 자리 패스워드가 10가지 경우의 수를 가지며, 두 자리라면 100가지, 3자리라면 그 가지 수가 1000개까지 늘어난다.
여기서는 숫자만을 가정했지만 실제 PC 패스워드는 숫자 이외에도 256가지 서로 다른 문자값을 입력할 수 있다. 따라서 한 자리 패스워드라도 해도 256가지, 두 자리 6만 5536가지, 세 자리는 무려 1670만가지 조합이 가능하다.
신기한 것은 모든 가능한 문자 조합을 대입하는 방식이 예상보다는 그리 시간이 오래 걸리지 않는다는 사실이다. 소프트웨어의 종류와 하드웨어의 속도의 따라 차이가 있지만, 4단어짜리 패스워드를 깨는데는 몇 분 정도가 소요되며, 7자리 패스워드도 하루면 충분하다. 문제는 7자리 이상인데, 8자리 패스워드는 이를 알아내는데 일주일 이상 걸리는 경우도 허다했다.
최선의 상황은 브루트 포스 방식을 사용하지 않는 것이지만, 어쩔 수 없이 이 방법을 사용해야 한다면 ‘LOphtCrack’이라는 툴을 추천한다.
필자가 LOphtCrack을 선호하는 이유는 사전 기반 해킹 방식을 최초로 시도해, 문자 조합 과정을 최적화하고 있기 때문이다. LOphtCrack은 사전에 수록된 용어를 패스워드와 일치하는지 검토하는데, 일상 용어나 널리 통용되는 변형 철자법, 기술적인 용어들을 우선적으로 검색한다. 예를 들면 잊어버린 패스워드가 ‘PASSWORD’라는 8자리 문자라면 사전 해킹 방식의 LOphtCrack은 큰 문제없이 이를 알아낼 수 있다. 그러나 패스워드가 ‘WhAtz~Da*PasssWoyd’라면 사전 기반 방식으로는 도저히 알아낼 수 없으며 결국 모든 문자 조합을 일일이 대입하는 방식을 사용해야 한다.
현재 LOphtCrack 버전은 사용자가 패스워드 해킹 작업을 시작하기 전에 관리자 접속을 하도록 제한을 걸어 놓았다. 그러나 LOphtCrack 웹사이트에는 레지스트리의 패스워드 더미를 추출하는데 필요한 유틸리티가 올라와 있다. 일단 이를 이용해 패스워드 더미를 추출한 후 LOphtCrack로 이 패스워드 더미 가운데 필요한 패스워드를 알아내면 된다. LOphtCrack 최신 버전에서도 이런 방식의 해킹이 가능한지 확인하지는 못했으나, 인터넷에서 검색해 찾을 수 있는 구버전의 경우는 이 기능을 지원한다.
보안 관리과 해킹 사이 ‘잊어버린 패스워드 찾기’
패스워드는 네트워크 보안에 큰 도움이 되지만 가끔은 골칫거리가 되기도 한다. 패스워드를 잊어버렸다면 이를 복구할 수 있는 방법이 필요하며 이 때 앞서 언급한 툴들을 사용하면 패스워드 복구 작업을 간단히 처리할 수 있다. 이를 통해 절약한 시간은 더 중요한 문제에 투자할 수 있을 것이다. @