web penetration

25
1/22 Introduction Pre-Ready Exploitation Reporting Vulnerabilities Web Penetration - demo.testfire.net th!nkh@ck-hackartist cafe.thinkhack.org September 29, 2014

Upload: jongseok-choi

Post on 08-Jun-2015

281 views

Category:

Software


1 download

DESCRIPTION

demo.testfire.net

TRANSCRIPT

Page 1: Web penetration

1/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Web Penetration - demo.testfire.net

th!nkh@ck-hackartist

cafe.thinkhack.org

September 29, 2014

Page 2: Web penetration

2/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

1 IntroductionWhat is Penetration Test?Test SiteProgress Phases

2 Pre-ReadySetting TargetCrawling Target

3 ExploitationAcquiring Sensitive DataDirectory ListingRevealing Souce CodesRedirecting to MalSiteSQL Injection

Simple SQL InjectionAdvanced SQL Injection

4 Reporting VulnerabilitiesReference Types of Web AttackDocumentation

Page 3: Web penetration

3/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Outline

1 IntroductionWhat is Penetration Test?Test SiteProgress Phases

2 Pre-ReadySetting TargetCrawling Target

3 ExploitationAcquiring Sensitive DataDirectory ListingRevealing Souce CodesRedirecting to MalSiteSQL Injection

Simple SQL InjectionAdvanced SQL Injection

4 Reporting VulnerabilitiesReference Types of Web AttackDocumentation

Page 4: Web penetration

4/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

What is Penetration Test?

What is Penetration Test?

모의해킹은 무엇인가??

사전에 협의 후에 특정 서버를 정해진 범위내에서 공격을 시도한 후 각 공격에 대한

취약점과 대응방법등을 제시하는 작업

모의해킹과 해킹의 차이점

공격 대상과 범위에 대해 사전에 협의를 했는지 여부

정해진 대상과 범위를 공격후 그것을 협의대상에게 리포트화 하여

제공해주었는지 여부

Page 5: Web penetration

5/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Test Site

Test Site

타겟설정

공격대상 : http://demo.testfire.net공격범위 : 해당서버에서 가능한 모든 공격

demo.testfire.net 소개

항목 설명

제작사 IBM목적 모의해킹을 테스트하기 위한 목적

공격범위 웹 사이트를 가능하면 바꾸지 않는 범위내에서 수행

웹 유형 은행 웹사이트

Page 6: Web penetration

6/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Progress Phases

Progress Phases

준비단계

대상설정

대상 서버 설정대상서버의 공격범위 설정

대상스캐닝

웹의 경우 Proxy 도구를 이용하여 Crawling 을 통해서 대상의 스캐닝이 가능

공격단계

대상서버의 스캐닝된 정보를 토대로 취약점을 추측하고, 해당 취약점에 대해서 공격을수행

리포트단계

공격단계에서 수행한 공격들에 대해서 전항목적으로 문서화 하는 단계

문서화 항목으로는 공격종류, 공격경로, 공격패킷 등이 있음.

Page 7: Web penetration

7/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Outline

1 IntroductionWhat is Penetration Test?Test SiteProgress Phases

2 Pre-ReadySetting TargetCrawling Target

3 ExploitationAcquiring Sensitive DataDirectory ListingRevealing Souce CodesRedirecting to MalSiteSQL Injection

Simple SQL InjectionAdvanced SQL Injection

4 Reporting VulnerabilitiesReference Types of Web AttackDocumentation

Page 8: Web penetration

8/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Setting Target

Setting Target

대상서버 설정

demo.testfire.net을 대상서버로 설정

공격범위 설정

demo.testfire.net의 소스코드 등을 변경하지 않는 공격에 한해서 demo.testfire.net의전항목적 테스트를 수행

Page 9: Web penetration

9/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Crawling Target

Burp Suite 실행

다운로드 및 실행

다운로드 사이트 : http://portswigger.net/burp/download.html실행 : java -jar -Xmx1024m burpsuite.jar

Page 10: Web penetration

10/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Crawling Target

Proxy 설정

Proxy 설정방법

Internet Explorer

인터넷옵션 -> 랜설정 -> Proxy 설정

Safari

Safari -> 환경설정 -> 고급 -> 프록시 설정변경 -> Web 프록시 설정

Page 11: Web penetration

11/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Outline

1 IntroductionWhat is Penetration Test?Test SiteProgress Phases

2 Pre-ReadySetting TargetCrawling Target

3 ExploitationAcquiring Sensitive DataDirectory ListingRevealing Souce CodesRedirecting to MalSiteSQL Injection

Simple SQL InjectionAdvanced SQL Injection

4 Reporting VulnerabilitiesReference Types of Web AttackDocumentation

Page 12: Web penetration

12/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Acquiring Sensitive Data

Acquiring Sensitive Data

/admin/clients.xls 를 직접 접근하여 다운로드를 시도

Page 13: Web penetration

13/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Acquiring Sensitive Data

Clients Information

다운로드 받은 파일을 열람 가능

Page 14: Web penetration

14/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Directory Listing

Directory Listing

/bank 디렉토리에 default.aspx 파일이 없음Directory Listing 옵션을 없애야 하는데, 설정하지 않았음.aspx.cs 와 같은 소스파일도 리스팅되고 있음을 알 수 있음.aspx.cs 와 같은 소스파일을 직접 읽기가 불가능함.

Page 15: Web penetration

15/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Revealing Souce Codes

content 파라미터 변경

대부분의 페이지의 로딩방법이 URL 파라미터 전달로 include 방식임을 추측할 수있음.

”/default.aspx?content=로딩할페이지”로 구성되어 있음.

content의 파라미터를 이용하여 aspx.cs 파일을 읽어 오는 것을 시도함.txt와 htm파일만 렌더링 되는 것을 알 수 있음.

Page 16: Web penetration

16/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Revealing Souce Codes

null-byte injection

aspx.cs파일을 txt파일로 속이기 위해서 null-byte injection을 사용?content=login.aspx.cs%00.txt

에러와 함께 웹사이트의 파일시스템상의 절대경로를 알 수 있음.

Page 17: Web penetration

17/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Revealing Souce Codes

Directory Traversal

파일경로가 ”/static/login.aspx.cs” 로 지정된 것을 알 수 있음.상위 디렉토리로 이동하여 bank 디렉토리의 파일을 로딩해야함.

static 디렉토리를 기준으로 하여 상대경로의 login.aspx.cs를 입력(static/)../bank/login.aspx.cs 를 content 파라미터로 전달

Page 18: Web penetration

18/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Redirecting to MalSite

Redirecting to MalSite

Crawling 에서 알 수 있듯이 disclaimer.htm 파일은 url 파라미터로 전달된 주소로리다이렉팅을 해주고 있음.

이런 경우 url파라미터의 값에 대해 악의적 사이트인지 검증을 거쳐야함.

화면은 사파리에서 제공해주는 검증기능으로 데모사이트에서는 검증을 제공하지

않음.

Page 19: Web penetration

19/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

SQL Injection

Form Injection

로그인 화면에서 간단하게 SQL Injection을 시도함.ID와 패스워드에 각각 ’ or ’1’=’1 을 삽입

관리자 계정으로 로그인되는 것을 확인

Page 20: Web penetration

20/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

SQL Injection

Cookie Injection

관리자 계정으로 로그인 되었는데 account detail에 아무정보도 없는 것을 알 수있음.Proxy 툴을 이용하여 account 정보를 얻어낼 수 있을 만한 단서가 있을지 검토amUserId 를 임의로 변경하면 Account 정보가 변경됨을 알 수 있음

모든 Account 정보를 얻기 위해 amUserId 파라미터에 SQL Injection 시도

Page 21: Web penetration

21/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

SQL Injection

Account Information

모든 account 목록이 나오며, 열람도 가능

Page 22: Web penetration

22/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

SQL Injection

Union Injection

Union Injection을 통해서 Account 정보 대신에 로그인 ID/PW를 얻을 수 있음.login.aspx.cs 소스코드를 분석하여 사용자 정보를 관리하는 테이블이름과 필드명을알아냄

1 union select username,password from users 를 삽입

Page 23: Web penetration

23/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Outline

1 IntroductionWhat is Penetration Test?Test SiteProgress Phases

2 Pre-ReadySetting TargetCrawling Target

3 ExploitationAcquiring Sensitive DataDirectory ListingRevealing Souce CodesRedirecting to MalSiteSQL Injection

Simple SQL InjectionAdvanced SQL Injection

4 Reporting VulnerabilitiesReference Types of Web AttackDocumentation

Page 24: Web penetration

24/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Reference Types of Web Attack

Reference Types of Web Attack

보고서 작성의 기준

보고서를 작성하기 위해서는 작성 기준이 있어야 함. 웹 분야에서는 이 기준이 되는것이 OWASP Top 10, CWE/SANS Top 25 이 대표적인 보고서를 작성하기 위한레퍼런스가 될 수 있음.

OWASP Top 10

3년주기로 갱신하고 있으며, OWASP라는 조직에서 웹에서 발생할 수 있는 10대취약점을 발표하고 있음.

CWE/SANS Top 25

CWE와 SANS가 공동으로 진행하는 것으로 소프트웨어 공통분야에서 발생할 수 있는취약점을 보고하고 있음. 현재는 2011년 버전이 가장최신 버전임.

Page 25: Web penetration

25/22

Introduction Pre-Ready Exploitation Reporting Vulnerabilities

Documentation

Documentation

문서화란?

문서화는 앞에서 수행한 분석 및 공격을 문서에 그대로 옮기는 것임. 모의해킹에서가장 중요한 부분으로 앞에서 수행한 공격들을 모두 기술하지 않는다면 악의적인

해킹과 동일함.

문서화 내용

공격종류

공격경로

공격에 사용된 Request 정보

대응방법

그 외 기타사항