[WHA-S] Background: File Vulnerabilities for Windows

실제로 운용되고 있는 웹 서비스 중 대다수의 서버가 유닉스 계열의 운영 체제를 사용하고 있지만 윈도우 운영 체제의 수요가 없는 것은 아니다. 윈도우에서는 기본적으로 내장 웹 서버를 제공하고, 아파치와 nginx 등의 웹 서버를 설치해 사용할 수 있다. 윈도우는 과거에 개발된 DOS 프로그램과 유닉스 운영 체제와의 호환성을 위해 다양한 경로 표기법이 존재한다. 개발자는 이를 통해 호환성과 유연한 서비스를 보장하는 프로그램을 개발할 수 있으며, 공격자의 입장에서는 경로 표기 문자 검사를 우회하고 공격할 수 있다.


파일 시스템

파일 시스템

**윈도우 (Windows)**는 기본적으로 마이크로소프트 Internet Information Services (IIS) ++ Server 내장 웹 서버를 제공한다. 이 뿐만 아니라 아파치 웹 서버, 그리고 nginx 등의 소프트웨어를 선택해 사용할 수 있다.

윈도우는 리눅스와 달리 드라이브를 지정할 수 있다. 일반적으로 윈도우를 구성하고, 애플리케이션 파일 등의 중요한 파일들을 C 드라이브에 위치한다. 또한 윈도우는 파일 시스템 접근만으로는 시스템 제어가 어렵다. 앞서 다룬 유닉스 계열의 운영 체제는 대부분이 파일로 구성되어 있어 파일에 접근하는 것으로도 특정 기능을 수행할 수 있었던 반면, 윈도우 기반의 NT 아키텍처는 VMS 계열의 운영 체제에 영향을 받았기 때문에 객체 지향 인터페이스를 사용한다. 따라서 기능에 알맞는 API를 사용해야 한다.

윈도우 특수 폴더

https://learn.microsoft.com/en-us/windows/win32/shell/knownfolderid

로그 및 데이터 파일

운영 체제 및 서비스의 로그와 각종 문서가 저장되는 위치를 의미한다.

디렉터리 설명
C:\inetpub IIS 서비스에서 웹 문서 및 기타 웹 서버에서 사용하는 파일을 저장한다.
C:\inetpub\wwwroot IIS의 웹 문서가 저장되는 기본 경로이다.
C:\ApacheXY\htdocs, C:\www Apache Web Server에서 문서 경로로 흔히 사용되는 디렉터리이다.
C:\Program Files 각종 프로그램 및 데이터를 저장할 때 사용한다. 데이터베이스 등이 이에 속한다.
C:\ProgramData 시스템의 각종 서비스에서 자료를 저장할 때 사용한다. 데이터베이스 등이 이에 속한다.
C:\ProgramData\MySQL\MySQL Server X.Y\Data MySQL 데이터베이스의 데이터가 일반적으로 이곳에 저장된다.
C:\Program Files\PostgreSQL\X.Y\data PostgreSQL 데이터베이스의 데이터가 일반적으로 이곳에 저장된다.
C:\Windows\System32\Winevt\Logs 윈도우 이벤트 로그를 저장할 때 사용한다.
C:\Windows\Prefetch Superfetch 데이터를 저장한다. 최근 사용한 애플리케이션 목록 등을 조회할 수 있다.

설정 파일

운영 체제 및 서비스를 구성하는 설정 파일을 의미한다.

디렉터리 설명
C:\Windows\System32\config 시스템 단위 레지스트리 하이브 파일이 저장된다.
C:\Boot 부팅 관련 파일을 저장한다. EFI 기반 시스템에서는 EFI 시스템 파티션에 저장된다.
%UserProfile%Ntuser.dat %UserProfile% 프로필 디렉터리를 가진 사용자의 레지스트리가 저장된다.
%UserProfile%\Local Settings\ApplicationData\Microsoft\Windows\UsrClass.dat %UserProfile% 프로필 디렉터리를 가진 사용자의 확장자 연결 정보 및 COM 클래스 등이 저장된다.
C:\Windows\drives\etc hosts, services와 같은 네트워크 관련 설정 파일을 저장한다.
C:\Program Files\Apache Software Foundation\Apache<버전>\conf Apache Web Server의 설정 정보를 저장한다.
파일 설명
C:\Boot\BCD Boot Configuration Data 파일이 위치한다.
C:\ProgramData\MySQL\MySQL Server X.Y\my.ini MySQL 데이터베이스 서버의 주 설정파일이다.
C:\Windows\System32\drivers\etc\hosts 호스트네임의 실주소를 탐색할 때 사용되는 정적 순람표이다.

프로그램 및 라이브러리

디렉터리 설명
C:\Program Files 각종 프로그램 및 데이터를 저장할 때 사용한다. 데이터베이스 등이 이에 속한다.
C:\Windows\System32 시스템 파일 및 DLL들이 위치한다.
C:\Windows\SysWOW64 32비트 호환(Windows-on-Windows) 레이어상 시스템 파일 및 DLL들이 위치한다.

장치 및 가상 파일