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로 활동 할 수 있게 됩니다.








참고 링크(1) : 

http://adwareremovaltips.net/post/Steps-To-Remove-PSW.OnlineGames3.AVRA_16_159984.html


간단간단한 분석밖에 하지 않았으나, 조금 더 공부하면서 어떤 기능이 어떻게 이루어지는지 알아내보고 싶어져서 쓰게 되었네요.

일단 간단한 동작부터 알아보지요.

-------<< 간단한 동작 증상 >>-------


1. USB, PSP, SD Card 등에 심어지더군요. 또한 PC Temp에 백업이 되지요.

2. Registry 변조, 삽입.

3. wscript.exe파일로 실행되는 프로그램.

4. 1번에 심어지고, USB나 PSP 등의 모든 파일들은 숨겨지며 바로가기로 변하게 되더군요.

5. avra.vbe를 안티 바이러스 소프트웨어(알약 or Avast)가 감지하여 삭제를 하게 되면 Registry에 있던 명령어가실행되며 백업한 실행파일을 실행한다.

  실행시, Regedit에 명령어 덮어쓰기(새로쓰기), wscript.exe로 avra.vbe를 실행(중복되어 실행됨)


-------<< 비슷한 바이러스 >>-------


증상은 AutoRun 바이러스와 비슷합니다.

참고 링크(2) : http://intumyself.tistory.com/36


-------<< 발전된 바이러스 증상 >>-------


AVRA는 AutoRun 바이러스보다 좀 더 발전한 녀석이었어요.

1. 쉽게 지우지 못하도록 Process를 실행시켜 놓는 점.

2. Registry삽입, Temp Folder 백업.

3. 삭제 감지시 백업된 파일을 실행하여 Registry 실행 및 증상을 복원합니다.(10초 정도 딜레이가 있습니다.)


-------<< REGISTRY 살펴보기 >>-------


Regedit을 살펴보고 삽입 위치를 알아보았습니다.

코드 삽입 위치 : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\

혹은

- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\

- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings

"CertificateRevocation" =Random

- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\run\

- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\


출처 : 참고 링크(1)




위의 캡처는 AVRA가 삽입한 코드입니다.

다음 명령어를 살펴보면 wscript.exe, 즉 Windows Script Host를 사용하여 해당 route에 어떤 명령을 내리는 것으로 볼 수 있어요.



//B 명령어를 통해 알림을 제거한 채 avra.vbe를 실행한다는 명령어가 삽입되었다는 걸 확인할 수 있어요.

하지만 avra.vbe를 //I 옵션으로 실행해도 알림창은 뜨지 않았어요.



avra.vbe를 실험한 cmd창의 모습입니다.

wscript.exe가 Process에 올라오기는 했지만 저 옵션에서는 아무런 알림창이나 실행 시 변하는 모습은 없었어요.

딱히 Alert창이 뜨지 않는 실행파일인 것 같아요.


-------<< 특이점 >>-------


제가 발견한 감염 경로는 PSP (COWON O2)입니다.

위의 PSP에는 파일들을 업로드 하면 파일들이 어떤 이름이고 어떤 형식인지를 저장한 .system디렉토리가 있습니다.

.dpl이라는 파일은 설정 파일 중 하나인데, .system디렉토리 내에 있으며, 이 파일을 백지화 했습니다.

또한 다른 설정파일들을 마구잡이로 지워놓는 것 같습니다. PSP에서는 더 이상 avi파일이나 mkv파일은 실행되지 않았습니다.


-------<< 치료 방법 >>-------


1. 작업관리자 -> 프로세스 -> wscript.exe를 선택하고 프로세스 끄기.


2. 시작 -> regedit -> 

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\ -> avra를 삭제.


3. 명령 프롬프트창을 열고 감염된 USB 혹은 PSP의 최상위 경로로 들어감.


4. attrib -r -s -h /s /d *.* 을 치고 엔터.


5. 바로가기 모두 삭제.


6. C:\Users\KKAMI\AppData\Local\Temp\avra.vbe로 들어가 avra.vbe파일 삭제.


7. Avast나 알약이 다운돼 있으면, USB혹은 PSP를 뺐다가 다시 삽입.(아마 Avast가 잡아줄 겁니다.)








+ Recent posts