cert

Nagios 대상 SQL Injection - (1)

secujordan 2021. 4. 18. 23:59

업무중 아래와 같은 SQL Injection이 발생하였습니다.

 

 

POST /nagiosql/admin/helpedit.php

HTTP/1.1 Content-Type: application/x-www-form-urlencoded 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Encoding: gzip,deflate 
Content-Length: 144 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36
Host: 생략
Connection: Keep-alive 

selInfoKey1=1'UNION SELECT MD5(31337) -- &hidKey1=common&selInfoKey2=&hidKey2=free_variables_name&selInfoVersion=&hidVersion=&taContent=&modus=0

 

Body 값에서 selInfoKey1값이 인젝션 벡터인것 같네요. 해당 취약점이 어떤 특정 프레임워크나 장비에서 동작하는 취약점인지 확인해봅시다. 우선 경로 정보를 기반으로 구글서칭했습니다.

 

nagiosxi란?

시스템, 네트워크를 모니터링하는 오픈소스 도구라고 합니다.

 

kali에서 해당 취약점으로 동작하는 exploit이 있는지 확인해보겠습니다. exploit db 사이트를 참조해서 해당 edb 코드 44560을 조회하였습니다.

 

 

세부 옵션들을 확인해 봤습니다.

RHOSTS와 RPORT를 넣어주면 될것 같습니다. 코드를 보았을때 공격코드는 이미 exploit에 고정되어있는것 같습니다.

설정해줄 항목들을 설정해주고 실행하였으나, text함수가 nil값으로 반환되어 정상적으로 실행이 안되는 모습입니다.

코드를 살펴보니 아래 함수에서 nil이 반환되는 것 같습니다... 이유는 모르겠네요.. 하여 직접 exploit 이아닌 분석을 해보려고 합니다.

 

세부 코드를 확인해보겠습니다.

 

코드를 확인하여 보니 아래와 같이 selInfoKey값에서 sqlInjection을 시도하는 것으로 확인됩니다.

 

인젝션 벡터로 확인되지만, 해당 SQL Injection 만으로는 권한 부족으로 명령어들을 실행할 수 없다고 합니다.

 

허나 nagiosql의 해당 버젼에서는 인증우회(CVE-2018-8733), 권한상승(CVE-2018-8736), 명령어 주입(CVE-2018-8735)등 다른 취약점이 추가로 확인되었다고 하네요.

 

하여 인증 우회, 권한 상승, 실제 명령어 주입을 통한 바이너리 파일을 다운로드 하는 과정이 일련의 취약점인 것으로 확인되네요.. 기간을 좀더 가져야 할 듯 싶습니다.

 

이 주제는 하나의 글로 다 다루진 못할것 같아 분할하여 작성하여야 할듯 합니다...

 

이번글은 아직 정리가 덜되어 이후 항목들은 정리가 끝나는대로 작성하려 하니 알아주시길 바랍니다.

 

우선 이번꺼는 여기까지...

 

참조

www.exploit-db.com/exploits/44560

blog.easyshell.io/exploits/2018/04/26/nagios.html