보안동향

최신 보안정보를 신속하게 전해드립니다.

[보안동향] Nginx Backdoor

2020-07-28
  1. 개요

2020-07-16일 경 https://ti.dbappsecurity.com.cn/ 사이트에 nginx backdoor 에 관한 포럼이 올라왔으며,

게시 시점 nginx 의 backdoor가 모든 백신에서 탐지되지 않았습니다.

backdoor는 공격자가 ngx_http_header_filter 함수를 수정하여 컴파일했으며 http 요청 시

cookie에 임의의 문자열을 넣었을 때 reverse shell이 연결되도록 하였습니다.

 

  1. 취약한 버전

File MD5 Checksum : ab498686505dfc645e14c6edad280da7

 

  1. 취약점 설명 및 분석

아래는 게시 시점 변조된 nginx에 대한 안티 바이러스 검사 결과입니다.

 

수정된 ngx_http_header_filter 함수는 아래와 같습니다. http 요청 시

cookie 에 “lkfakjf” 라는 문자열이 포함되어 있으면 connect_shell 함수를 호출합니다.

해당 문자열은 connect_shell()을 호출시키기 위한 key로 사용됩니다.

 

connect_shell 함수는 reverse shell을 생성하는 로직입니다. 위의 로직에서

key외에 값을 더 받는 것을 알 수 있으며 아래 로직에서 host, port 가 필요한 것이 보입니다.

 

즉, http 요청 시 cookie 에 lkfakjf[host]:[port]와 같은 형식으로 요청 시

connect_shell()이 호출 되면서 입력한 host:port server로 연결하게 되는 것입니다.

 

현 시점 nginx 특정 버전에 한해 몇몇 백신에서 안티 바이러스가 검출됩니다. 하지만 많은 백신에서 검출하지 못하고 있습니다.

발견된 파일의 checksum 은 공개되었지만 해당 파일을 따라하여 변조한 파일들이 존재할 수 있기 때문에

nginx 공식 사이트에서 제공받은 파일만 사용하도록 해야 합니다.

또한 nginx 자체의 보안 문제는 아니기 때문에 별도의 패치는 존재하지 않습니다.

 

  1. 위협요소

변조된 nginx로 서버를 구동할 경우 공격자의 주기적인 접속이 있을 수 있고 내부 서버로의 침투, 좀비PC로 활용될 수 있습니다.

또한 파일 업로드와 같은 취약점이 존재할 시 정상적인 nginx가 변조된 nginx로 교체될 수 있습니다.

 

  1. 대응방안

1) Nginx 공식 사이트에서 제공되는 서버 사용

2) Decompiler 를 사용해 “sh”, ”bash”, “cmd.exe” 과 같은 문자열 혹은 정상적이지 않은 함수 확인

3) ps 명령어를 사용해 nginx 권한으로 “sh”, “cmd.exe”, “nc” 와 같은 프로그램이 실행되었는지 확인

4) 변조된 파일이라면 정상적인 파일로 교체

 

 

목록