
Nalpeiron Licensing Service (NLSSRV32) 임의 디스크 읽기 [CVE-2019-19315]
Nalpeiron Licensing Service (NLSSRV32.exe)는 특정 소프트웨어 설치의 일부로 설치되어 권한 있는 소프트웨어 라이선스 작업을 처리합니다. 이 서비스는 mailslots을 통해 서비스와 통신하는 클라이언트 구성 요소 (filechck.dll)와 쌍을 이룹니다(그래서 이름이 붙었습니다).
사용자 지정 직렬화를 사용하여 서비스에 호출이 수행되며, 많은 호출이 시스템에 연결된 디스크 볼륨에 직접 액세스하는 것과 관련됩니다. 이러한 호출은 서비스 자체와 클라이언트 바이너리의 무결성 검사에 사용된다고 생각합니다. 이러한 호출 유형 중 상당수는 관리자로 제한되지 않으므로 로컬 드라이브에서 원시 데이터를 읽거나(잠재적으로 쓰거나) 하는 데 사용될 수 있습니다.
이 서비스가 얼마나 흔한지 잘 모르겠습니다. 가장 대표적인 예는 Nitro PDF <= v10입니다. Nalperion은 이후 클라우드 기반 라이선스 모델로 전환했으며 더 이상 이 모델을 권장하지 않는 것으로 보입니다.
저는 개념 증명을 위해 기본 읽기 호출만 구현했습니다. 하지만 더 많은 기능을 노출하는 더 많은 제어 코드가 있습니다. 서비스가 호스팅될 때 기본 드라이브를 대상으로 작동하며, 섹터 증분(512)으로 섹터를 읽습니다. 동기만 있다면 전체 디스크를 읽고 NTFS 볼륨 정보를 재구성하는 것은 전적으로 가능할 것입니다. 독자의 몫으로 남겨둡니다.
PS C:\> MailOrder.exe c 4096
[+] Requesting sector from c: at offset 4096 ...
[+] Drive data [hex]:
45 46 49 20 50 41 52 54 00 00 01 00 5C 00 00 00 0D 24 5C 77 00 00 00 00 01 00 00 00 00 00 00 00
AF 6D 70 74 00 00 00 00 22 00 00 00 00 00 00 00 8E 6D 70 74 00 00 00 00 96 2F 01 83 CE 70 E7 41
...
악용 가능성을 나타내는 가장 강력한 두 가지 지표는 다음과 같습니다:
PS C:\> Get-Service nlsX86cc
Status Name DisplayName
------ ---- -----------
Running nlsX86cc Nalpeiron Licensing Service
\\.\mailslot\nlsX86ccMailslot서비스 및/또는 해당 서비스가 사용되는 소프트웨어를 제거하는 것 외에는 완화 방법을 알지 못합니다. 악용 가능성의 기본은 mailslot의 취약한 ACL이지만, 클라이언트 측이 제대로 통신하려면 그것이 필요하다고 생각합니다.
여러 차례에 걸쳐 공급업체에 연락을 시도했지만 응답이 없었습니다. Nalpeiron 관계자 중 세부 사항/수정을 지원하고자 하는 분이 있으면 연락 주시기 바랍니다.
CVE-2019-19315를 발행함