본문 바로가기

Hacking

OWASP Top10 2013 - A10. Unvalidated Redirects and Forwards (인가되지 않은 리다이렉트와 포워드) 인가되지 않은 리다이렉트와 포워드 정의 웹 어플리케이션이 리다이렉트와 포워드 기능을 사용하는데 이를 검증하지 않았을 때 나타날 수 있는 공격이다. 리다이렉트 브라우저가 응답을 받은 후 다시 보낼때 새로운 URL (이동할 URL)을 포함하여 요청하는 방식이다. 완전히 새로운 요청을 하는 것이기 때문에 Requset 속성이 가지고 있는 객체는 리다이렉트 발생시 추가적으로 발생한 왕복 처리를 해야 하기 때문에 Forward 보다는 느린 방식이다. 특히 URL에 파라미터 값이 보여지기 때문에 중요한 정보는 포함되지 않도록 유의해야 한다. 포워드 클라이언트가 웹 브라우저에서 요청시 포워드는 리다이렉트와 달리 클라이언트에게는 보여지지 않는 페이지에서 작업을 하게 된다. 따라서 클라이언트는 페이지의 이동을 알아챌 수.. 더보기
OWASP Top 10 2013 - A9. Using Components with Known Vulnerabilities (알려진 취약점이 있는 컴포넌트 사용) 알려진 취약점이 있는 컴포넌트 사용 정의 말 그대로 취약점이 있는 컴포넌트를 사용한다는 것이다. 여기서 컴포넌트란 쉽게 말해서 객체 지향(C++, Java) 언어에서의 Class와 유사한 것으로 어떤 기능을 수행하는 것으로 생각 할 수 있다. 다만 개인적인 생각으로는 컴포넌트 뿐만 아니라 서버에서 사용되는 모든 서비스와 프로그램들에 대한 취약점도 포함시켜 말할 수 있다고 생각한다. 즉, 이 취약점을 짧게 요약하자면 어떤한 사유로 인해 최신 버전의 업데이트를 설치하지 않고 계속 구버전을 사용하는 것으로 말할 수 있다. 발생 원인 사용 중인 컴포넌트, 서비스, 프로그램들에 대한 지속적인 유지 관리를 하지 않고 보안 업데이트를 설치하지 않았기 때문에 발생한다. * 항목 자체가 "알려진 취약점이 있는 ~~" 이.. 더보기
OWASP Top 10 2013 - A8. CSRF CSRF 정의 공격자는 변조된 HTTP 요청을 통하여 이미지 태그, XSS이나 기타 방법들을 통하여 피해자가 변조된 HTTP 요청을 하도록 속인다. 만약 피해자가 이미 해당 웹 사이트에 대해 인증이 된 상태라면, 재인증 절차 없이 피해자의 권한으로 공격자의 의도되로 공격이 성공된다. 다시 말하면 공격자는 인가된 피해자의 권한으로 악성 스크립트를 서버에 요청하고, 서버는 요청에 대한 처리를 하게 되는 것이다. 발생 원인 공격자가 자신이 요청한 특정 동작에 대해 전체 과증이 예측 가능할때 발생한다. 주로 프록시 툴을 사용하여 전체 과정을 예측하고 모자르는 부분은 직접 뽑아낼 수도 있고, 뽑아낸 내용 안에는 각종 인증 관련 사항들이 포함될 수 있기 때문에 공격자는 정상적인 요청과 구별될 수 없는 변조된 요청을.. 더보기
OWASP Top 10 2013 - A7. Missing Function Level Access Control (기능 수준의 접근 통제 누락) 기능 수준의 접근 통제 누락 정의 OWASP 2007년부터 2010년까지는 URL 접근 제한 실패 항목이 확장 된 것이라 다소 낯설게 느껴질 수 있지만 기본적인 개념은 같다. URL 접근 제한 실패는 URL에서의 접근 제한 실패이지만, 기능 수준이라는 것은 URL 이외의 모든 것들을 말한다. (프로그램의 계정, ARP 스푸핑 등) 웹 어플리케이션이 페이지들에 접근될 때 마다 접근 통제 확인이 필요한데, 이러한 행위가 이루어지지 않을 경우에는 권한이 없는 용자가 접근할 수 있게 되는데 이를 접근 제한 실패 (접근 통제 누락)이라고 한다. 보안 취약점 취약점 원리의 이해를 돕기 위해 URL 측면에서 살펴보면 관리자가 페이지를 관리하기 위한 페이지 (admin_page.php)가 있다고 가정한다. 일반적으로 .. 더보기
OWASP Top 10 2013 - A6. Sensitive Data Exposure (민감 데이터 노출) 민감 데이터 노출 정의 개인 정보 수정 페이지 및 회원 가입 과정에서 주요 개인정보 (주민번호 등)가 HTML 페이지 내에 평문으로 저장되어 있어 정보가 노출되는 취약점을 의미한다. 개인 정보가 제일 많이 포함되어 있는 곳은 정보 수정 페이지, 이력서 페이지 등이 있다. 사용자 들이 자신의 개인정보 수정페이지에 접근하게 되면 기본적으로 이메일 정보, 전화번호, 주소 등이 포함되어져 있고, 보안이 심각한 경우에는 주민번호가 페이지에 그대로 평문으로 노출되는 경우도 있다. 흐름도 취약점 모의 테스트 본 테스트는 OWASP Broken Apps에 포함된 WebGoat을 이용한다. WebGoat의 항목 중에 Insecure Communication – Insecure Login 항목을 누르면 다음과 같이 나타난.. 더보기
OWASP Top 10 2013 - A5. Security Misconfiguration (보안상 잘못된 구성) 보안상 잘못된 구성 정의 웹 어플리케이션을 운영하는데 있어서 개발자와 시스템 관리자들이 자주 실수로 놓치게 되어 발생하는 일련의 문제들을 말한다. 테스트 파일이나 샘플, 웹 서버 설치 시 기본적으로 설치되는 파일 또는 관리자나 운영자가 임시로 만들어 놓은 파일들이 만약 아무런 접근 제한 없이 웹의 홈 디렉토리에 놓여 있을 경우 권한이 없는 일반 사용자나 해커가 이 파일명을 직접 입력하여 디렉토리 정보, 시스템 정보 및 중요한 파일 정보를 획득할 수 있다. 취약점 모의 테스트 백업 파일의 노출 일반적으로 관리자는 홈페이지상에서 작은 수정을 위해 기존 홈페이지 파일의 원본을 임시로 저장할 수 있다. 혹은 대부분의 Text 전용 에디터(editplus 등)의 경우 수정을 위해 기존 원본을 특정 확장자(.bak.. 더보기
OWASP Top 10 2013 - A4. Insecure Direct Object References (취약한 직접 개체 참조) 취약한 직접 객체 참조 정의 및 취약점 발생 환경 취약한 직접 객체 참조란 개발자의 부주의로 인해 파일, 디렉토리, 데이터베이스의 레코드 등이 URL 이나 변수로 내부의 객체를 노출시킬 때 발생하는 취약점이다. 직관적으로 개발자는 종종 웹 페이지를 구성할 때 예측하기 쉬운, 혹은 실제 이름을 키 값으로 사용한다. 그리고 사용자가 요청하는 페이지에 대하여 적절한 인증 절차를 생략한 경우가 이따금 발생하기 마련인데, 이런 부분을 통하여 본 취약점이 발생한다. 공격 유형 취약한 직접 객체 참조 취약점을 이용한 공격에는 파라미터 변조, 파일 다운로드 취약점이 있다. 직접적으로는 DB나 서버 객체에 접근을 시도하는 취약점이여서 상당히 위협적인 취약점이라 할 수 있다. 파라미터 변조 공격은 매개변수라고 불리는 파라.. 더보기
OWASP Top 10 2013 - A3. Cross Site Scripting (XSS) XSS 개요 XSS는 Cross Site Scripting의 줄임말로 2013년도 OWASP TOP 10에서는 A3로 지정된 웹 어플리케이션 취약점이며, 2013년도 뿐만 아니라 이전 년도의 버전에서도 꾸준히 TOP 10 안에 드는 HTML Injection의 한 부분으로서 단순하면서도 매우 치명적인 공격이다. 이 공격 기법은 다른 공격 대부분과 달리 공격의 대상이 서버가 아닌 클라이언트라는 큰 차이점을 가지고 있다. 발생원인 본 취약점은 컨텐츠를 암호화, 검증하는 절차 없이 사용자가 제공하는 데이터를 어플리케이션에서 받아들이거나 보낼 때 발생한다. 이러한 XSS의 취약점이 발생되는 원인은 사용자들의 편의를 위해 웹 어플리케이션에서 HTML 태그 사용이 허용되었기 때문에 발생하며, 이렇게 발생되는 취약점.. 더보기
Web for Pentester - I 해설서/설명서 Web for Pentester - I 문제들에 대한 해답(풀이) 입니다. 물론 제가 만든 문서라 한글입니다 ㅋ 더보기
OWASP Top 10 2013 - A2.Broken Authentication and SessionManagement (인증 및 세션 관리 취약점) 인증 방법 쿠키 - 서버에서 클라이언트쪽에 상태 정보를 저장하고 추출할 수 있는 방법 - 클라이언트쪽에 사용자 정보를 텍스트(.txt) 형태로 저장하며, 클라이언트의 매 요청마다 웹 브라우저로부터 서버에서 전송되는 정보 패킷의 일종 * 쿠키를 이용한 인증 순서 1. 클라이언트가 사용자 로그인 정보로 인증 요청 2. 서버가 사용자 정보를 쿠키 값으로 클라이언트에 전송하며, 인증 확인 결과를 반환 3. 클라이언트는 사용자 정보를 Tempory Internet Files (기본 값) 폴더에 저장 4. 클라이언트는 쿠키 값을 이용하여 로그인 상태를 유지 세션 - 클라이언트와 서버간에 네트워크 연결이 지속적으로 유지되고 있는 상태 - 클라이언트의 로그인 정보를 서버 내에 저장하여, 유저의 로그인/다른 상태를 지속.. 더보기
OWASP Top 10 2013 - A1.SQL Injection SQL 개요 - 사용자와 관계형 데이터베이스를 연결시켜주는 언어로서 DDL, DML, DCL과 특수 연산자를 포함한다. - 단순한 질의 기능 뿐만 아니라 완전한 데이터 정의 기능과 조작 기능을 갖추고 있다. - 아직 표준 SQL이 100% 확정되지 않았기 때문에 상호 DBMS 간의 호환성은 완벽하지 않다. 언어 - DDL (Data Defintion Language) - 객체의 생성, 변경, 삭제를 하는 명령어 - 스키마, 도메인, 테이블, 인덱스 정의 변경 또는 삭제 - CREATE, ALTER, DROP, RENAME 등과 같은 명령어 - DML (Data Manipulation Language) - 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터 처리시 사용하는 명령어 - 사용자와 DBMS.. 더보기
OWASP Top 10 2013, 2010, 2007, 2004 Open Web Application Security Project - 오픈 소스 웹 어플리케이션 보안 프로젝트 - 웹에 관한 정보 노출, 악성파일 및 슼립트, 보안 취약점 연구 - 3년 (현재까지 04, 07, 10, 13년도)마다 10대 웹 어플리케이션 취약점 문서 발표 더보기
WEP 크랙 WEP 프로토콜은 2000년에 이미 결점이 발견되었지만 여전히 사용 중이며 거의 모든 AP가 WEP 기능을 탑재하고 있다. 따라서 주변 AP를 스캔하고 그 중 WEP가 있다면 해당 네트워크의 내부에 접속이 가능할 수도 있도. WEP 크랙은 다음과 같이 진행된다. 1). 실습을 위해 AP를 다음과 같이 세팅 2. 무선랜카드를 모니터 모드로 만듬 3. 주변 AP를 스캔 및 스캔 결과를 저장 # airodump-ng mo0 주변 AP를 스캔하여 크랙할 AP를 찾음 # airodump-ng -c 9 --bssid 00-26-66-12-cc-9c -w WEPCrack mon0 위에서 얻은 AP 중 한 개를 골라서 각각의 채널 (9번)과 MAC주소 (00-26-66-~)를 설정하고, 해당 AP를 스캔한 결과를 WE.. 더보기
숨겨진 SSID 찾기 AP는 기본적으로 비콘 프레임을 이용해서 자신의 SSID를 알리는데 이 덕분에 근처의 클라이언트는 AP를 쉽게 발견 할 수 있다. 숨겨진 SSI는 AP가 비콘 프레임을 이용해서 SSID를 알리지 않도록 설정하는 것을 말한다. 이 경우에는 SSID를 이미 알고 있는 클라이언트만 AP에 접속할 수 있다. 아쉽게도, SSID를 숨기는 것은 그리 강력한 보안 기법이 아니지만 대부분의 네트워크 관리자들은 그렇다고 오해하고 있다. 숨겨진 SSID를 찾는 방법에는 와이어샤크를 이용하는 방법과 명령어를 이용하는 방법이 있다. 1) 와이어샤크 사용 1. 우선 AP의 SSID를 공개한 상태에서 와이어샤크로 패킷을 캡쳐해 보면 SSID를 평문 그대로 확인할 수 있다. 아래 사진에서의 비콘 프레임에 해당하는 줄의 제일 뒷 부.. 더보기
SET - 웹 재킹 웹 재킹은 중간자 공격 (이하 MITM)의 일종이다. MITM은 이미 감염된 사이트의 HTTP 리퍼러를 사용하거나 HTTP 서버에게 역으로 대상의 자격 증명을 전달하기 위해 XSS를 사용한다. XSS 취약점을 찾아 대상에게 URL을 보내고 대상이 링크를 클릭하면 웹 사이트는 정상적으로 동작하는 것처럼 보이지만, 대상이 시스템에 로그온 할 때 그의 자격 증명이 고역자에게 전달된다. MITM 벡터는 SET의 웹 공격 벡터 인터페이스를 통해 접근할 수 있다. 웹 재킹 공격 방법은 웹 사이트를 복제하고 웹 사이트가 이동했다는 상태의 링크를 대상에게 보여준다. (도메인 이전 등으로 사람들은 속을 수 있음) 대상이 링크에 마우스를 올렸을 때 URL은 공격자의 URL이 아닌 실제 URL로 표시된다. G메일을 복제했다.. 더보기
SET - 사용자명과 패스워드 수집 SET 웹 사이트를 복제하고 이어서 자동으로 SET 웹 서버로 전달하는 웹 사이트 POST 파라미터를 재작성해 정상적으로 보이는 복제된 웹사이트로 사용자를 리다이렉트 한다. (즉, 사용자 입력값을 얻을 수 있음) set 실행 후 웹사이트 공격 벡터를 선택 한 후 3번을 선택한다. 2번을 눌러 복제할 사이트를 입력한다 (http:/192.168.0.4) 복사가 완료되면 자동으로 공격자의 웹 서버가 동작된다. 대상이 공격자의 웹 서버(192.168.0.3)에 접속 후 아이디와 비밀번호를 입력했을 시의 화면이다. 위에서 계정 2개를 얻을 수 있다. (test,test) (admin,admin) Ctrl+C 를 누를 경우 웹 사이트를 중지 하며 지금까지 얻은 결과를 레포트로 (html 및 xml)로 저장한다. .. 더보기
SET - 클라이언트 웹 익스플로잇 SET은 클라이언트 웹 익스플로잇을 사용할 수도 있는데, 이때 대상에 자바 애플릿이 표시되는 대신 메타스플로잇에서직접 가져온 클라이언트 익스플로잇이 시스템을 공격하는데 사용된다. 클라이언트 익스플로잇을 사용하려면 이전에 정찰한 정보에 의존하거나 사용자가 특정 취약점에 취약하길 바라는 수 밖에 없다. 특히 이 방법은 제로데이 취약점이 발견될 경우 만족스러운 결과를 얻을 수 있다. 메타스플로잇에서 익스플로잇이 발표되면 보통 테스트되고 1시간 이내에 SET을 통해 공개된다. 다음의 사진을 보면 미터프리터 쉘을 통해 해당 시스템의 SYSTEM 권한을 얻는 과정을 알 수 있다. set을 실행하고 1번을 선택하여 사회 공학 공격을 선택한다. 2번을 선택하여 웹 사이트 공격 벡터를 선택한다. 2번을 선택하여 메타스플.. 더보기
메타스플로잇 보조 모듈 (사용 및 선택) 메타스플로잇의 보조 모듈에는 대표적인 것들로 사용자명, 패스워드 목록을 로드하여 무작위로 대입하여 로그인을 시도하는 ssh_loing, 포트 스캐너, 핑커 프린트 등의 유용한 정보 수집 동구 등이 있다. 혹은 다양한 프로토콜에 대한 퍼저인 ftp-pre-post, ssh_version_corrupt 등의 보조 모듈도 있다. 퍼저는 대상 서비스를 익스플로잇 할 수 있는 취약점을 찾는게 큰 도움을 준다. 또한 보조 모듈은 페이로드를 포함하지 않으므로 페이로드를 고려할 필요가 없다. 보조 모듈의 전체 목록은 다음과 같다. * Kali의 경로와 백트랙5의 경로는 다르다. (백트랙 5일 경우 /opt/frameowrk3/msf3/modules/auxiliary 에서 확인이 가능하다) 사진에서 보듯이 모듈은 제공하.. 더보기
파일 포맷 익스플로잇 (pdf, doc 등) 파일 포맷 버그는 Abode의 문서 같은 특정 어플리케이션 내에서 발견되는 익스플로잇이 가능한 취약점이다. 익스플로잇의 분류는 사용자가 취약한 어플리케이션에서 악성 파일을 실제로 열었을 때에 따라 다르다. 악성 파일은 보통 이메일을 통해 전달된다. 아래의 사진은 MS 윈도우의 CreateSizedDIBSECTION 스택 버퍼 오버플로우로 알려진 ms11-006을 활용한다. 위와 같이 설정 후 exploit를 한다. 오류를 일부런 낸 이유는 해당 파일이 생성되는 기본 값의 경로를 보여주기 위함인데, 저 경로가 없을 경우 위와 같은 오류를 발생한다. 따라서 위의 경로를 만들거나 다음의 명령어로 생성 파일 경로를 바꾸면 된다. (set outputpath /root) msf.doc가 바로 악성 문서이다. 공격.. 더보기
오로라 익스플로잇 (IE 취약점) 오로라 익스플로잇은 20개가 넘는 대형 기술 업체에 사용된 악명 높은 익스플로잇이다. 2010년도 초반에 발표되기는 했지만 기술 분야의 유명한 기업을 타격해 특히 널리 알려 졌다. 오로라 메타스플로잇 모듈의 사용을 시작으로 페이로드 설정을 진행한다. SRVPORT 옵션은 목표가 된 사용자가 익스플로잇을 실행하기 위해 접속하는 포트를 지정한다. URIPATH는 취약점 실행을 위해 사용자가 입력해야 하는 URI를 지정한다. LHOST와 LPORT는 공격자의 IP주소와 세션을 수립할 포트이다. 이제 Windows XP에서 다음과 같이 해당 URL에 접속을 시도한다. 다시 공격자의 환경으로 돌아와 보면 다음과 같이 세션이 맺어진 것을 알 수 있다. 세션을 수립했지만 약간의 문제가 있다. 위의 과정에서 Windo.. 더보기