본문 바로가기

cert

Mozi Botnet 에서의 Command Injection Attack - (4)

저번에 확인하지 못했던 execute_cmdstager 메소드에 대해 확인해봅시다.

 

ruby에서 사용중인 라이브러리 함수들을 확인하기 위한 사이트가 있더군요.

출처 : https://www.rubydoc.info/github/rapid7/metasploit-framework/Msf%2FExploit%2FCmdStager:execute_cmdstager

코드는 안나와있네요. git에 있는지 봐봅시다.

있네요. 우선 해당 라이브러리 함수를 사용하기 위해선 아래처럼 라이브러리를 include 시켜야 한다고 합니다.

metasploit 코드

사용되는 인자값은 아래와 같다고 합니다.

flavor - 사용할 명령을 지정.(:bourne, :debug_asm, :debug_write, :echo, :printf, :vbs, :certutil, :tftp, :wget 등 다양함. 각 flavor 값마다 페이로드의 실행방식이 달라짐./ 각 인자별로의 동작과정은 git에서 보시는게 편하실듯 합니다. 저는 wget 만 확인하겠습니다.)

linemax - 명령당 최대문자수

delay - 기본 0.25초, 각명령 실행사이의 지연값.

 

 

flavor 값에서의 wget 명령어를 사용할 경우 어떤 코드가 동작하는지 확인하고싶어 github를 보고싶었으나, wget만 나와있지가 않네요. Kali 안에서 해당 라이브러리(루비에서는 mixin이라고 하는거같네요)를 찾아봐야겠습니다.

해당 믹스인을 찾아봅시다.

 

해당 믹스인에서 사용가능한 flavor 루비 코드 파일이 확인되네요 저희는 wget을 볼거니까 한번 열어봅시다.

 

 

위와 같은 코드가 확인되는데,  파일경로가 지정되지 않았다면 /tmp 경로로의 랜덤으로 파일이름을 생성하며, 

wget 을 통해(-qO옵션 : 출력없이 메세지들을 파일로 남김.) payload_path= (지정한 디렉터리나 /tmp/randomfile)로 payload_uri(지정되었었던 uri)로부터 파일을 다운로드 받는 시스템 명령어를 주입하는 것으로 확인되네요...

 

통상적으로 확인되었던 로그를 봤을때는 wget을 통한 원격지에서의 명령은 NTPServer를 SOAP 에서 설정해주는 부분에 시스템 명령어를 주입시켰던 것으로 확인됐었으며, 아마 실제 탐지되었던 내역들은 해당 취약점을 이용해 변형시킨 공격이라고 판단됩니다. 하여 동일한 공격구문은 확인되지 않는것 같고 자세한건 Mozi 샘플이 있어야 확인가능하겠지만...

 

하여 보안장비에서 해당 취약점을 막기위해선 flavor 인자값에서 확인되는 여러가지 시스템 명령어들을 탐지할 수 있어야겠으나 통상적으로 Command Injection 같은 같은경우 차단 설정을 해놓기때문에 공격영향성은 크지 않을 것 같네요.

또한 평소에 들어오는 공격로그를 확인하였을때 일반적으로 보이는 구문은 wget을 통한 파일 다운로드 시도가 대부분이기 떄문에 wget만 잘 방어하여도 큰 영향은 없을 것으로 판단되는 공격이었습니다.

 

나머지 기능들에 대해서도 돌아볼 필요가 있겠지만 너무많아 나머지 부분은 천천히 하나씩 풀어나가는 것으로.. 하겠습니다.

 

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

 

참조

github.com/rapid7/metasploit-framework/wiki/How-to-use-command-stagers

https://www.rubydoc.info/github/rapid7/metasploit-framework/Msf%2FExploit%2FCmdStager:execute_cmdstager