1. 일반적인 해킹 단계
1단계 정보수집 : 웹스캔이나 포트스캔 및 웹사이트를 접속하여 소스 코드 및 구조를 분석함으로써
어떠한 애플리케이션과 웹 서버를 사용하는지, 웹 서버의 버번은 무엇인지를 수집합니다.
2단계 취약점 분석 : 정보 수집 단계를 거쳐서 수집한 정보를 바탕으로 애플리케이션 자체의 취약점
및 웹서버의 취약점을 분석합니다.
3단계 실제 공격 : 취약점 분석을 바탕으로 원격에서 공격을 시도합니다. 원격에서 SQL Injection
공격이나, XSS, 파일 업로드등의 다양한 공격으로 웹서버에 침투를 시도합니다.
4단계 뒤처리 : 침투에 성공한 경우 악의적인 공격자는 로그를 삭제하고 스니퍼를 설치하기도
하지만, 어떤 해켜의 경우는 가끔 패치도 해주고 관리자에게 통보까지 해줍니다.
2. 웹사이트 탐색과 분석
홈페이지의 파일 확장자를 확인하고 자료실이나 게시판의 취약점 및 웹서버의 취약점을 분석하고 자료실이 존재할 경우 파일 업로드 공격을 통해 공격을 시도하거나, 디렉토리 구조 탐색을 통해 관리자 디렉토리가 있는지 디렉토리 리스팅 취약점이 존재하는지를 조사한다.
2-1) 탐색 및 분석 도구
1. IntelliTemper : 웹사이트에 존재하는 디렉토리들에 대한 탐색을 자동으로 시도
2. Sleuth : 홈페이지의 소스코드나, 폼, 주석, 쿠키 등과 같은 홈페이지의 전반적인 내용에 대해서
자동으로 분석
3. 구글 검색엔진을 이용(고급 검색 기능)
site : 특정 사이트만을 선정해서 검색
예) site:xxx.com admin -> xxx.com 사이트에서 admin 문자열을 찾을 때 사용
filetype : 특정 파일 타입에 대해 검색할 때 사용
예) filetype:txt 패스워트 -> 텍스트 파일 중 패스워드가 포함된 문자열을 찾을 때 사용
link : 특정 주소가 링크된 페이지를 찾을 때 사용
그외 cache, intitle, inurl 기능이 있고 사용 예제는 같습니다.
2-2) 검색 엔진의 검색을 회피하는 방법
서버의 홈 디렉토리에 robots.txt 파일을 만들어 검색할 수 없게 만들 수 있습니다.
예를 들어, http://www.xxx.com/robots.txt 파일이 있으면 구글 검색 엔진은 robots.txt에 있는
디렉토리들과 규칙에 대항하는 부분을 검색하지 않습니다.
<<robots.txt. 파일의 포멧은 두 개의 필드로 구성되어 있습니다.>>
1. User-Agent : 특정 검색 엔진으로부터 검색을 막음
예) User-Agent:googlebot( 구글 봇으로부터 막음)
2. Disallow : 특정 파일 또는 디렉토리를 로봇이 검색하지 못하게 하기 위해 사용
예) Disallow : dbconn.ini, Disallow: /admin/
3. 웹스캐닝
웹사이트를 조사하는 방법으로 수동적인 방법보다는 도구를 이용하여 웹서버의 종류나 버전, 그리고 디렉토리 정보나 중요 파일 정보가 존재하는지, 웹서버 자체의 취약점은 무엇인지 검사하기 위한 방법
3-1) 원리
공격 대상에게 취약하다고 알려진 HTTP 요청(Request)을 보내고, 대상 시스템이 이에 대한 응답
코드(Response Code)를 보고 해당 페이지의 존재 여부 및 취약점을 확인
4. 파일접근
4-1) 파일 업로드 공격
공격자가 공격 프로그램을 해당 시스템에 업로드하여 공격하는 방법으로 공격 난이도가 쉬우면서
영향력이나 파급도가 큰 공격입니다.
공격방식은 공격자가 시스템 내부 명령어를 실행시킬 수 있는 웹프로그램을 제작하여 자료실과
같이 파일 업로드를 할 수 있는 곳에 공격용 프로그램을 업로드하고 공격용 프로그램을 웹에서
브라우저를 이용해 접근하면 시스템 내부 명령어를 실행시킬 수 있게 되는 것입니다.
<대응> : 업로드 시 파일 확장자 이름을 체크합니다. asp나 jsp 같은 소문자만 아니라 aSp, Jsp
같은 대소문 혼합도 시스템에서는 인식하기 때문에 가능한 모든 조합에 대해 필터링을 해야합니다.
또한 자바스크립트와 같은 클라이언트 스크립트 언어로 필터링을 하지 말고 서버 사이드 스크립트
언어나 서버단에서 필터링을 해야합니다.
파일이 업로드되는 디렉토리에 실행 권한을 제거하는 방법도 있습니다. 이럴 경우에는 파일이 업로
드 된다고 해도 실행되지 않기 때문에 브라우저에 그대로 나타나거나 파일을 다운로드하게 됩니다.
4-2) 디렉토리 탐색
웹 브라우저에서 확인 가능한 경로의 상위로 올라가서 특정 시스템 파일을 다운로드 하는 공격
자료실에 올라간 파일을 다운로드 할 때 전용 다운로드 프로그램이 파일을 가져오는데, 이때 파일
이름을 필터링하지 않아 발생하는 취약점
1. 특정 파일을 다운로드할 때 다음과 같은 URL을 이용하여 다운로드 된다고 할때
http ://www.xxx.com/board/down.jsp?filename=upload.hwp'
2. 공격자는 filename 변수에 해당하는 값을 다음과 같이 조작하면 상위 디렉토리로 거슬러 올라가
etc/passwd 파일을 다운로드 할 수 있을 것입니다.
http ://www.xxx.com/board/down.jsp?filename=../../../../../../../../../../../etc/passwd
<대응> : 전용 파일 다운로드 프로그램을 이용할 때는 위 예에서 보는 바와 같이 '..' 문자열이나
'/' 문자열 에 대한 필터링을 하고 파일 업로드와 마찬가지로 필터링하는 부분을 자바스
크립트와 같은 CSS 언어가 아닌 SSS 언어에 필터링을 해야 합니다.
4-3) 디렉토리 리스팅
특정 디렉토리를 브라우저에서 열람하면 그 디렉토리에 있는 모든 파일과 디렉토리들의 목록이
나열됩니다. 공격자는 이 취약점을 이용하여 웹 서버에 어떤한 파일이 있는지 확인할 수 있고
추가적인 공격 취약점을 찾을 수 있습니다.
4-4) 인증 우회
관리자 페이지나 인증이 필요한 페이지에 대한 인증 미처리로 인해 인증을 우회하여 접속
<대응> 관리자 페이지나 인증이 필요한 페이지에 대해서는 관리자 로그인 세션에 대한 검사를
수행하는 과정을 넣어야 한다.
5. 리버스 텔넷
리버스 텔넷 기술은 방화벽이 존재하는 시스템을 공격할 때 자주 사용되는 기법입니다.
방화벽 정책에서 인바운드 정책(외부에서 방화벽 내부로 들어오는 패킷에 대한 정책)은 일반적으로
80번 포트 외에 필요한 포트 말고는 다막아 놓는다. 그러나 아웃바운드 정책(내부에서 외부로 나갈
때)은 보통 별다른 필터링을 수행하지 않는 경우가 많다. 이러한 상황에서 리버스 텔넷은 유용한
기법입니다.
일반적으로 공격자는 웹서버의 80번 포트로의 접근은 가능하나 방화벽 정첵에 의해서 내부에서
외부로 나가는 정책은 모두 허용이기 때문에 웹서버에서 공격자 컴퓨터 쪽으로 리버스 텔넷 시도를
하는 것이 가능한 것입니다.
5-2) 리버스 텔넷 원리
5-2) 리버스 텔넷 예
리버스 텔넷을 사용하기 위해 netcat(=nc) 프로그램을 많이 이용하는데, netcat은 리버스 텔넷
기능뿐만 아니라 스케닝 기능 등 매우 유용하고 많은 기능르 수행할 수 있는 프로그램입니다
<대응> : 리버스 텔넷이 불가능하도록 하기 위해서는 사이트의 파일 업로드 기능을 철저하게
점검해야 하고 , 방화벽의 아웃 바운드 정책 역시 엄격하게 적용해야 합니다.
'IT Management > Security' 카테고리의 다른 글
| 웹해킹 (0) | 2009/06/24 |
|---|---|
| 보안툴 총정리 (0) | 2009/04/25 |
| Steganography 를 잘 표현한 영화... 뷰티플 마인드 (0) | 2009/02/03 |
| 보안관련 사이트 (0) | 2008/12/07 |
| [뉴스] 중국 여성과학자, HASH 알고리즘 뚫다 (0) | 2008/09/30 |
| MD5 Hash Algorithm (0) | 2008/04/22 |




