Windows 7환경의 로그온 화면에 백도어를 만들어보도록 하겠습니다.

참고 URL : http://mr-zero.tistory.com/51



먼저 계정 로그온 창에 있는 도구를 살펴보도록 합시다.

이 도구는 원래 Utilman.exe라는 프로그램으로 다양한 도구들을 로그온 창에서 사용할 수 있도록 하는 도구입니다.

[그림 1]에서 표시되어 있는 point 부분이 우리가 이용할 도구입니다.


[그림 1] 로그온 화면의 도구


[그림 1]에서 표시된 도구는 시스템 내부의 실행파일로 되어 있습니다.

위치는 C:\Windows\System32에 있고, 파일의 이름은 Utilman.exe입니다.

하지만 일반 사용자는 사용할 수 없도록 권한이 부여되어 있습니다.

권한은 System과 Administrator에게 아무런 수정 권한이 없으며, 실행과 읽기 권한만 있습니다.

또한 Owner도 아니기 때문에 권한 변경도 불가능하게 되어 있습니다.

여기서 우리의 첫번째 과제는 Owner를 우리로 바꿔주는 것입니다.


[그림 2] Utilman.exe의 권한 목록


[그림 2]를 보면 TrustedInstaller에 모든 권한이 부여되어 있는 것을 확인할 수 있습니다.

아마 Utilman.exe의 Owner 또한 TrustedInstaller라는 것을 짐작해볼 수 있습니다.

백도어를 만들기 위해서는 이 파일의 수정 권한이 필요하기 때문에 Takeown 명령어를 이용하여 권한을 가져오도록 합시다.

순서는 다음과 같습니다.


1. cmd를 관리자 권한으로 실행

2. 명령어 [takeown /f Utilman.exe]를 입력하여 권한을 가져옴(takeown에 대한 설명은 -help를 통해 확인)


[그림 3] takeown 명령어 수행


프로그램의 소유자(Owner)가 바뀌었기 때문에 이 프로그램은 이제 관리자의 권한으로 사용권한을 수정할 수 있습니다.

프로그램을 오른쪽 클릭하여 사용권한에 들어가 모든 권한을 사용할 수 있도록 보안설정을 바꿔주도록 합시다.


<권한 변경 방법>

[오른쪽 클릭] -> [보안 탭] -> [고급] -> [사용 권한 변경] -> [Administrator 더블 클릭] -> 모든권한 선택 


[그림 4] 모든 권한 설정


이제 소유자와 권한이 모두 변경됐기 때문에 Utilman.exe 파일은 우리가 마음대로 수정할 수 있게 되었습니다.

이제 우리는 모든 권한을 사용할 수 있는 Utilman.exe의 파일이름을 변경해줘야 합니다.

이는 Utilman.exe이라는 이름을 가진 다른 프로그램이 실행되게 하기 위함입니다.

두번째 과제는 Utilman_bak.exe로 수정하여 Utilman.exe이름을 가진 다른 파일로 덮어쓰는 것입니다.

(파일을 버릴 수 없기 때문입니다. ^^)


[그림 5] Utilman.exe 파일 이름 변경


이제 우리는 Utilman.exe 파일처럼 사용할 다른 프로그램을 선정해야 합니다.

기존에 있는, 또 우리가 사용할 수 있는 프로그램으로는 cmd가 가장 적절하다고 판단하였습니다.


[그림 6] Utilman.exe 이름으로 변경된 cmd.exe파일


System32 내에 있는 cmd.exe를 복사하여 Utilman.exe 파일의 이름으로 수정합니다.

Utilman_bak.exe 파일과 같은 경로에 두도록 합시다.


이제 세팅은 마무리가 되었습니다. 이제 로그온 화면으로(잠금화면)넘어가 Utilman.exe 아이콘을 클릭해봅시다.

실행 화면은 [그림 7]과 같이 cmd가 켜집니다.


[그림 7] cmd가 켜지는 잠금화면


여기서 눈여겨 봐야 할 부분은 커맨드 창에서 볼 수 있는 권한입니다.

whoami /user로 확인해 보면 결과는 system 권한을 가지고 있다는 것을 알 수 있습니다.

Windows 7에서 권한의 순서는 TrustedInstaller > System > Administrator > User > Guest 순으로 되어 있습니다.

즉 System 권한으로는 Administrator보다도 더 수준이 높은 행위를 할 수 있다는 것을 의미합니다.


이제 세번째 과제로는 새로운 계정을 생성하여 우리가 마음대로 드나들 수 있게 만들어야 합니다.


커맨드 창에서 net user를 입력하면 현재 Windows 시스템의 사용자 목록이 뜹니다.


[그림 8] net user를 사용한 사용자 목록 조회


net의 다른 옵션을 살펴보면 [그림 9]와 같습니다. net의 다른 기능을 이용하여 해커가 원하는 행동을 취할 수 있을 것입니다.

단 이 게시글에서는 Backdoor에 중점을 두도록 하겠습니다.


[그림 9] net 명령어의 다른 옵션 목록


여기서 아용할 옵션은 user입니다.

net user는 사용자의 비밀번호를 바꾸거나 생성/삭제를 할 수 있습니다.

우리의 목적은 Backdoor이기 때문에 사용자의 시스템에 마음대로 드나들 수 있는 계정을 생성해야 합니다.


kkami라는 계정을 생성/삭제하는 명령어는 다음과 같습니다.


생성 명령어 : [net user kkami * /add]

삭제 명령어 : [net user kkami /delete]


[그림 11] net user를 이용한 계정 생성 삭제


이런 방법으로 계정을 생성하여 침입할 수 있습니다.

또한 기존에 있는 계정을 탈취하는 방법도 있습니다. net user 명령어를 이용하여 기존 계정의 비밀번호를 바꾸어 보도록 합시다.


비밀번호 변경 명령어 : [net user kkami *]

비밀번호 삭제 명령어 : [net user kkami ]


기존의 명령어에서 옵션 부분만 제거해주면 됩니다.


Windows 7에서 net user 명령어를 이용하여 계정을 생성하면 Default localgroup은 Administrators가 아닌 Users로 되어 있습니다.

때문에 생성한 계정으로 들어간다고 해도 Users 권한으로는 아무것도 할 수 없습니다.

때문에 net localgroup 명령어를 이용하여 생성한 계정의 localgroup을 수정해주어야 합니다.

명령어는 다음과 같습니다.


로컬 그룹 변경(추가) 명령어 : [net localgroup Administrators kkami /add]


[그림 12] 로컬 그룹 변경


[그림 12]를 보면 로컬 그룹이 변경되었음을 확인할 수 있습니다.

이제 kkami로 로그인하면 권한은 Administrators로 활동 할 수 있게 됩니다.






+ Recent posts