본문 바로가기

보안/웹 해킹_보안

웹쉘점검도구 활용

WHISTL

휘슬(WHISTL)은 Web Hacking Inspection Security TooL의 약자로 한국인터넷진흥원(이하 KISA, krcert.or.kr)에서 공개한 WebShell 탐지 프로그램이다. 

소정의 신청양식과 함께 사용 신청을 하면 휘슬을 사용할 수 있다. 휘슬은 Windows용과 Linux용이 존재하며 JSP,PHP, ASP 3개의 스크립트 언어를 지원한다.

http://www.krcert.or.kr/kor/webprotect/webprotect_02.jsp

  • WHISTL 프로그램은 공격자가 웹 서버를 해킹 한 후 생성한 웹쉘 파일 및 악성코드 은닉 사이트를 서버 관리자들이 쉽게 탐지 할 수 있도록 패턴과 인터페이스를 제공하는 프로그램입니다.
  • 또한 WHISTL은 홈페이지의 보안 강화용으로 사용할 수 없습니다. 웹서버 해킹을 예방하기 위해서는 웹 전용 보안장비를 운영 하시고 취약점 여부를 점검하셔야 합니다.
  • 개인, 관공서, 공공기관, 공기업, 국립대 등 정부기관이나 산하기관들은 이용하실 수 없습니다.

 

NeoPI NeoPI는 resources.infosecinstitute.com/web-shell-detection/에서 공개한 python으로 제작된 오픈 소스 툴이다.

python으로 제작되었기 때문에 윈도우, 리눅스 모두에서 사용할 수 있는 이식성이 좋은 툴이며, 난독화된 파일에 대해서도 탐지가 가능한 매우 강력한 툴이다.

entropy, longest word, Index of Coincidence, auto의 4가지 알고리즘으로 탐지를 하기 때문에 더정확한 탐지 결과를 얻을 수 있다.


WebShellFinder WebShellFinder는 윈도우용 WebShell 탐지 도구이다. 직관적인 인터페이스와 쉬운 사용법이 특징으로,  이 도구는 File Option과 Signature Option을 제공합니다.

휘슬과는 다르게 ASP 스크립트만 탐지가능하며, 일반적으로 중국어를 사용하지 않는 사이트라면 기본적으로 체크되어있는 Signature에 더해서

gb2312(중국어 간체) 항목을 체크하고 실행하면 더 정확한 결과를 얻을 수 있다.


WSF WSF는 Mr8Open님이 공개한 Windows용 오픈 소스 툴로 Geekslab.com에서 다운로드 할 수 있다.

이 툴은 직접 DB를 업데이트 할 수 있으며, 특정한날짜, Zip 파일의 탐지까지 가능하다.

또한, 직접 DB 업데이트가 가능하기 때문에 암호화 된 코드에서도 특정 부분을 발취하여 룰을 작성할 수 있다.

BWSF BWSF는 Bar4mi님이 공개한 오픈 소스 툴로 bar4mi.tistory.com/61에서 다운로드 핛 수 있다. 

이 툴은 perl로 제작되어 윈도우, 리눅스모두에서 실행가능하다. 

또한, 정규표현식 지원, 점검 시 예외 디렉터리 설정, 점검할 파일 크기 설정 등 다양한 기능이 제공되고 있다.

WSCAN WSCAN은 중국의 보안업체 safe3 network에서 제작한 Windows용 프리웨어 툴이다. 언어는 중국어만 지원하지만 메뉴가 단순하여 간단하게 사용할 수 있다.

DB가 공개되어있지 않아 DB의 내용은 알 수 없지만 대부분의 해킹 툴 및 WebShell이 중국에서 제작되기 때문에 

다른 Scanner를 수행한 후 WSCAN을 이용해서 재 스캐닝을 수행하면 더 좋다.

하로스 웹쉘/악성코드 탐지 전용솔루션 Web Guard

http://www.halos.co.kr/product/shellguard1.do


자이온 웹쉘 탐지 솔루션 ShellMonitor

http://zionlife.co.kr/products/product/shellmonitor-product-introduce/


유엠브이기술

http://www.qvsec.co.kr/web/qvsec/solution/ws01.php?depth1=3&depth2=3


SK인포섹

에이전트형 웹쉘 탐지솔루션 `W쉴드 안티웹쉘'


안랩 

보안관제시스템 쉘모니터 탑재


ASP웹쉘 상세분석및 탐지방안

http://blog.pages.kr/543



웹쉘(webshell) 에 대해서

출처: http://cdral.net/m/post/959


bwsfinder.zip 

○ 다운 : https://code.google.com/p/bwsfinder/source/checkout

○ 출처 : http://cdral.net/m/post/view/id/959


웹을 통해 웹쉘을 업로드하는 경우가있는데 이미 웹셀이 구동중에 있고 다른 포트를 오픈해서 쓰고있다면 netstat 으로 확인해보자


tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 26032/httpd

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 588/sshd  

udp 0 0 0.0.0.0:37028 0.0.0.0:* 25089/sshd

udp 0 0 0.0.0.0:37029 0.0.0.0:* 25479/httpd


위에 두개는 정상포트인데 아래 두개는 hack프로세스이다.

lsof -p pid번호 로 해당 프로세스 트리를 조회해보자


COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME httpd 25479 apache cwd DIR 0,8 280 321300582 /dev/shm/bq httpd 25479 apache txt REG 0,8 612470 321300590 /dev/shm/bq/httpd


/dev/shm/ 이하 디렉토리에 웹쉘프로그램이 설치되어있다.


find 명령어로 /dev 디렉토리내에 파일을 검색해보자

# find /dev -type f

/dev/.udev/db/block:sdb1 /dev/.udev/db/block:sdb /dev/.udev/db/block:sda2 /dev/.udev/db/block:sda /dev/.udev/db/block:sr0


위에가 정상이라면 아래는 hack파일들이다.


/dev/shm/c.pl

/dev/shm/stopex.pl

/dev/shm/st/src/dcc.c


웹쉘권한을 얻었을때 이와같은 hack프로그램이 설치된이유는 해당 디렉토리가 777 퍼미션이기 때문이다.

/dev/shm, /var/tmp, /tmp 등은 주의깊게 관찰해야된다. 이외에도 디렉터리에 apache나 nobody, www-data유저에 쓰기 권한을 주거나 777같은 퍼미션을 주는 경우는 매우 잘못된 습관이라고 할 수 있다. 물론 curl, wget, lynx 등의 파일에도 755 퍼미션을 주면안된다.

chmod 701 /

chmod 701 /home

cd /etc

chmod 600 fstab

chmod 600 hosts.*

chmod 600 modprobe.conf

chmod 600 sysctl.conf

chmod 600 redhat-release

cd /usr/bin

chmod 700 wget

chmod 700 lynx

chmod 700 curl

chmod 700 lwp-*

몇가지 권한 설정을 하는건 필요하다.


만약 웹권한으로 웹쉘을 업로드하면 결과적으로 root 권한까지 탈취하게 되는데 최소한 php를 사용할 경우는 반드시 php.ini 파일에 아래 설정은 off를 해주자

allow_url_fopen = Off 

register_globals = Off


그리고 필요없는 php 함수들은 사용 할 수 없게 하는 것도 하나의 방법이다

대부분이 서버의 정보를 보여주는 설정들이다. 서비스에 별 필요 없는 기능들이고 서버에 어떠한 영향을 주는 함수들은 아니지만 해커에 의해 악용 될 수 있기 때문에 막아 놓은 것이 나을것이다.

disable_functions = php_uname, ini_set, getenv, get_user, phpversion, ini_get, ini_get_all, phpinfo, system, exec, passthru, escapeshellcmd, pcntl_exec, shell_exec

특히 주의할 점은 system, exec, passthru, escapeshellcmd, pcntl_exec, shell_exec 함수들은 

서버상에서 운영체제 명령어를 실행 시키는 명령들이다일단 웹쉘이 업로드 되면 위의 함수들로 서버상에서 작업을 할 수 있으므로 

막는게 좋으나 실제 운영되고 있는 홈페이지에서도 사용 할 수 있으므로 잘 알아 보고 필요한 함수는 빼고 설정 하는 것이 좋다.

웹쉘을 탐지해보자

참조 : http://hackersnews.org/hn/index.cgi?command=search&words=%C0%A5%BD%A9

참조: http://bar4mi.tistory.com/61

bwsfinder.zip




Bar4mi WebShell Finder Ver0.5

2010/07/18 22:09 | Posted by bar4mi
출처: http://bar4mi.tistory.com/61
예전에 공개한 바있는 웹 백도어 탐지 도구의 버그와 기능을 개선하여 구글 코드에 오픈 소스 프로젝트로 공개하였습니다. 


전반적으로 속도 문제를 일부 개선하였으며, 전체적인 개선 사항은 아래와 같습니다. 

1. ASP 점검시 정규표현식 처리에서 발생한 문제 수정
2. 점검시 예외 디렉터리를 설정할 수 있는 기능 제공
3. 사용자가 점검할 파일의 크기를 설정할 수 있는 옵션 제공
4. 점검 현황을 즉각적으로 볼 수 있도록 화면 출력
5. 점검 파일을 TEXT 형식으로 제한(속도 개선을 위해)
6. Fingerprint 출력시 시간 형식 변경(추후 비교를 손쉽게 하기 위해)

별것 아닌 도구지만 제가 실무에서 겪은 작은 필요에 의해 제작한 것이며, 이와 같은 니즈가 다른 분들에게도 있을 것이라고 생각에 공개하게 되었습니다. 오픈 소스로 진행되는 만큼 아래와 같은 부분에 대해서 여러분들의 도움을 받았으면 합니다. 

1. 프로그램에 대한 개선 의견 
2. 발견한 각종 웹쉘의 공유(패턴을 생성하기 위함)
3. 프로그램 개선에 참여(참여 의지가 있으신 분은 연락 주시기 바랍니다.)