글 작성자: ikimonotaku


#Windows 파워쉘과 보안설정


오랫만에 정보보안 관련글을 올리네요...^^;

본업에 충실해야하는데 노는데 정신이 팔려서...ㅎ 오늘은 윈도우에 있는 기능인 Powershell의 보안성 측면을 얘기해 보겠습니다.


파워쉘이란?

윈도우 파워셸(Windows PowerShell)은 마이크로소프트가 개발한 확장 가능한 명령 줄 인터페이스(CLI) 셸 및 스크립트 언어를 특징으로 하는 명령어 인터프리터이다. 스크립트 언어는 닷넷 프레임워크 2.0을 기반으로 객체 지향에 근거해 설계되었다. 이전에는 마이크로소프트 셸(MSH, 코드네임 Monad)로 불리고 있었다. 현재 윈도우 XP, 윈도우 서버 2003, 윈도우 비스타, 윈도우 서버 2008, 윈도우 7, 윈도우 8, 윈도우 8.1, 윈도우 10,윈도우 서버 2012, 윈도우 서버 2008 R2를 모두 지원한다.


파워셸은 COM과 WMI에 대한 완전한 접근이 가능하며, 이로부터 관리자가 현지와 원격지의 윈도우 시스템 모두의 관리 업무를 수행할 수 있고, 웹 서비스 관리(WS-Management)와 CIM으로 원격지의 리눅스 체계와 네트워크 장비를 관리할 수도 있다.


파워셸에서 관리 업무는 일반적으로 'cmdlets'(커맨드릿)에 의해 실행되는데, 이는 특정 작업을 구현하는 특화된 닷넷 클래스이다. 한 무리의 커맨드릿은 '스크립트', 독립된 응용 프로그램인 '실행 파일', 정규 닷넷 클래스 (또는 WMI/COM 객체)의 인스턴스로 결합될 수 있다. [1][2] 이들은 파일 시스템이나 레지스트리와 같은 서로 다른 데이터 저장소의 데이터에 접근하여 작동하는데, 윈도우 파워셸 제공자를 통하여 파워셸 런타임에 제공된다.


윈도우 파워셸은 또한 윈도우 파워셸 런타임이 다른 응용 프로그램에 내장될 수 있는 호스팅 API를 제공한다. 그리고 나서 이러한 응용 프로그램들은 윈도우 파워셸의 기능을 사용하여 그래픽 사용자 인터페이스를 통하여 노출된 것들을 포함한 특정 작업을 구현한다.

<출처 : https://ko.wikipedia.org/wiki/%EC%9C%88%EB%8F%84%EC%9A%B0_%ED%8C%8C%EC%9B%8C%EC%85%B8 (위키백과)>



파워쉘은 보안인 분들은 많이 아시다싶이 윈도우의 모든 권한을 통해 명령어를 실행할 수 있는 구조 입니다. 그래서 해커들은 해킹하고자 하는 내부시스템을 장악하여 파워쉘의 기능을 통해 여러 정보를 취득하고 쉽게 악성코드 또한 생성 및 실행 할 수 있게 됩니다. 또한 배치성 파일도 생성하여 윈도우즈 예약 기능을 통해 항상 악성코드가 실행할 수 있도록 설정 하는 등 관리자 모드에서 실행할 수 있는 모든 기능을 파워쉘을 통해 수행하게 됩니다.


아래 해외 파워쉘 침투테스트 연구자료는 참고용, 윈도우10 기준 파워쉘 설정 끄는 법을 확인 하시고 특별히 서버나 유저단 PC에서 파워쉘 기능을 사용하지 않는다면 서비스 중지할 것을 권고합니다.



PowerShell 침투테스트 연구자료 (Nikhil Mittal)

https://www.slideshare.net/nikhil_mittal/power-shell-forpenetrationtesters


윈도우10 기준 파워쉘 끄기 설정 법

1. 설정

2. 앱 (설치 제거, 기본값, 옵션 기능)

3. 프로그램 및 기능

4. Windows 기능 켜기/끄기

5. Windows PowerShell 2.0 설정 해제

6. 확인 후 재부팅


주요 정보통신기반시설 취약점 분석·평가기준 (Windows)