Vulnerability in Print Spooler Service Could Allow Remote Code Execution detection rule

metasploit에서 module공개를 했습니다.

https://www.metasploit.com/redmine/projects/framework/repository/revisions/10369/entry/modules/exploits/windows/dcerpc/ms10_061_spoolss.rb

테스트 결과는 뭐.. 되는군요..

ms10_061_spoolss.rb 파일을 분석해보면.

write_file_contents(ph, fname, exe) 이 함수를 이용해서
start_doc_printer(ph, doc, fname) 함수를 호출해 취약점을 이용
write_printer(ph, data) 함수로 악성파일을 작성하는 형태입니다.

SMB의 RPCStartDocPrinter를 이용해 reverse_tcp payload를 system32 폴더에 써버리는 형태입니다.

\\ip\\pipe\atsvc 와 렌덤16자의 doc명 8자의 exe파일명 사용합니다.

여기서 취약한 값은 없습니다. 그러나 이런 방식으로 파일을 쓰는 형태도 드뭅니다.

특정 SMB 함수(RPCStartDocPrinter)를 호출하고 특정 구조체의 document file 과 output file 변수가 쓰이는 경우를 탐지하면 되나

오탐이 발생할 수 있으며 이 쓰여진 파일이 악성인지 여부를 가려내야합니다.

룰은 다음과 같습니다. 445, 혹은 139

alert tcp any any -> any 445 (content:”|ff|SMB|25|”; offset:4; depth:5; content:”|0040|”; distance:58; within:2; content:”|1100|”; distance:41; within:2;)

alert tcp any any -> any 445 (content:”|ff|SMB|2f|”; offset:4; depth:5; content:”|0040|”; distance:32; within:2; content:”|1100|”; distance:46; within:2;)

공유된 print를 이용한 파일쓰기를 탐지하는것입니다.

단, 탐지 키워드가 unique 하지 않아 성능을 많이 떨어뜨릴 수 있습니다.


뭐 점점 가면갈수록 네트워크 단에서 취약점 탐지하기란 여간 어렵군요.

패킷에서 파일을 추출해서 백신으로 검사하여 결과 리턴을 해주는 과정의 메커니즘이 필요한 시점입니다. 존재하나요? ;;

NIDS와 HIDS(백신)의 convergence 가필요..

위 테스트 관련 메일내용이네요.

http://seclists.org/metasploit/2010/q4/30

http://seclists.org/metasploit/2010/q4/31

Stuxnet을 얘기해보죠.

최초 USB감염 후 감염된 호스트가 다른 호스트로 감염을 시킨다면 이 취약점을 이용할 수 있겠습니다만

SCADA환경에서 프린트를 공유하는가? 거의 없겠죠.

감염된 호스트가 공유된 프린터를 스캐닝하는 시도를 한다하더라도 없다면 이 방법으로 전파는 힘들듯 합니다.

그리고 룰을 만든다 하더라도 호스트끼리 게이트를 거치지 않고 감염을 시킨다면 장비에서 탐지도 안될거고요.

Advertisements

About this entry