웹해킹

  • 사례

    • 7.7 DDoS, 3.4 DDoS

      -> 2009년 7월 7일, 2011년 3월 4일 오후 6시를 기점으로 청와대, 국방부, 국회, 국가정보원, 대형 포털 사이트 등이 수십만 대의 좀비 PC로부터 DDoS 공격을 당함

      • 진행과정

        1. dnpqgkem(P2P) 사이트 해킹
        2. 업데이트 서버 장악
        3. 업데이트 파일에 악성코드 삽입
        4. 웹하드 사이트 사용자 악성코드 감염
        5. 공격 날짜, 시간에 맞춰 공격 개시

        => DDoS 공격은 동시간에 일제히 공격

    • EBS 해킹

      -> 2012년 5월 15일 EBS 게시판 파일 업로드 취약점을 통해 400만명의 개인정보 유출

    • 현대캐피탈 해킹

      -> 홈페이지 해킹 후 웹 쉘을 설치 후, 트래픽 관제를 피하기 위해 5만 회에 걸쳐 148만 명의 개인정보 유출

      • 웹 쉘 (web Shell) : 웹 서버 백도어로 웹 해킹에 자주 쓰임
    • 구글 해킹

      -> 구글 검색을 통해 100여 개 사이트에서 총 884만 건의 회원정보 유출

      -> 국내에 정보 유출에 무방비 상태인 사이트가 많음

    • 크로스 사이트 스크립트 웸 배포

      -> 소셜 네트워크 서비스인 ‘마이스페이스’에서 ‘Samy’라는 닉네임 사용자가 크로스 사이트 스크립트(XSS, cross Site Script) 취약점을 이용해, 자신의 프로필을 열람할 때 ‘Samy’ 사용자를 친구 요청한 후 열람한 피해자의 프로필에도 악성코드가 삽입되는 형태로 공격

환경 구축

★웹 애플리케이션 해킹에서 보이지 않는 서버 사이드 언어데이터베이스 쿼리를 추측

  • APM

    -> 무료 & 우수한 성능으로 인해 점유율이 세계에서 가장 높음

  1. 윈도우 APM 설치

구글 해킹(=Google Dork)

-> 구글 검색을 활용한 해킹

  • 정보수집

    -> 타겟 사이트에 대한 관리자 페이지 등 많은 정보 수집 가능

    ​ ( 기밀문서나 개인정보가 노출되기도 함 )

  • 검색 부울 연산자(구글 검색엔진이 지원)

    1) AND

    ​ ex) “가” & “나”

    ​ “가” “나”

    ​ “가” AND “나”

    ​ => “가” 와 “나” 모두 포함된 문서 검색

    2) OR

    ​ ex) “가” “나”

    ​ “가” OR “나”

    ​ => “가” 혹은 “나”가 포함된 문서 검색

    3) NOT

    ​ ex) “가나다” - “한글”

    ​ => “가나다”에서 “한글”을 제외한 문서 검색

  • 검색 연산자

    1) ”“

    ​ ex) “security conference”

    ​ => 인용부호를 사용해 정확한 단어 또는 문구 검색

    2) ~

    ​ ex) “~hacking”

    ​ => 동의어 또는 관련 검색어와 함께 검색

    3) *

    ​ ex) *모아* 이다

    ​ => 알수 없는 단어가 위치한 부분에 “*” 연산자 사용

​ 4) /..

​ ex) 월드컵 1950..2000

=> 숫자 사이 “..”넣어 범위 문서 검색

검색을 이용한 공격

1. 백업 파일의 노출

-> 대부분의 편집용 프로그램에서 기본적으로 제공하는 백업 기능은 특정파일이 편집중이거나 삭제되었을 때 다음과 같은 백업 파일을 저장

Vi editor: .{파일명}.{확장자}.swp
EditPlus, UltraEdit: {파일명}.{확장자}.bak
기타: {파일명}.{확장자}.back, {파일명}.{확장자}.backup 등

-> 홈 폴더에 관리자 실수로 다음과 같은 백업 파일 남기는 경우가 있음

html.tar.gz
public_html.tar.gz
www.tar.gz
sql.sql
db.sql
backup.sql

2. 관리자 페이지 권한의 실수, 노출

-> 많은 홈페이지들이 /admin/이나 /manager/과 같은 관리자 페이지 사용

http://www.xxx.com/admin/
http://www.xxx.com/manager/
http://www.xxx.com/master/
http://www.xxx.com/deministrator/
http://admin.xxx.com/
http://manager.xxx.com/
...
  • 관리자 페이지가 위와 같은 경로를 포함할 경우:

“site:xxx.com, inurl:admin” 같은 쿼리를 통해 관리자 페이지 찾기 가능

& xxx.com 사이트의 admin 폴더 내부 파일 검색

  • 관리자 메인 페이지 제외하고 체크 안하는 경우도 문제

3.기밀 업로드 파일의 관리 실수

=> 파일 업로드 기능이 있는 게시판의 겨우 대다수가 다음과 같은 폴더에 업로드 파일 저장

/pds/
/upload/
/up/
/data/
/file/
/files/
...

=> 만약 비밀글이 있고 파일이 첨부되어 있다면, “inurl:/board/data/, site:xxx.com”과 같은 쿼리를 통해 비밀 글의 첨부파일 받을 수 있음

4.디렉터리 리스팅

  • 디렉터리 취약점:

    웹서버의 폴더 요청 시 index 파일이 존재하지 않을 경우 파일 목록을 출력해주는 아파치의 옵션이 있음

    -> 이 옵션이 켜져 있는 경우에 백업파일이나 중요정보 파일이 노출

    image

5. 웹 쉘 노출

  • 이미 공격받아 생성된 웹 쉘을 찾아내는 경우, 구글 해킹만으로 점령 가능

    -> 유명 웹 쉘 등이 많아 해당 웹 쉘의 특정 문자열로 검색 쿼리 제작 시, 많은 서버 획득

구글 해킹 예제

-> 웹 관리자들의 실수를 통해 다음 검색 쿼리 작성 가능

  • github.com 사이트 제외하고, {임의의 문자열}.php.bak이 주소에 포함되는 사이트 모두 검색

    • 백업파일 노출

    image)

  • github.com 사이트 제외하고, wnthdp “sql”이 포함되며 본문에 “MySQL dump 10.10”이 포함되는 사이트 검색

    • MySQL Dump 파일 노출

      image

  • 타이틀이 “관리자 페이지”이고, 주소에 /admin/ 문자열이 포함된 사이트를 모두 검색

    • 관리자 페이지 노출

      image

  • 타이틀이 “이력서”이고, 주소에 /recruit/, /upload/ 문자열이 포함된 사이트 검색

    • 개인정보 및 이력서 노출

      image

  • 타이틀이 “Index Of”이고, 본문에 “Parent Directory”가 포함된 사이트 검색

    • 디렉터리 리스팅

image

  • 타이틀이 “R57shell”이고, 주소에 /upload/ 문자열이 포함된 사이트 검색

    • 웹 쉘 노출

      image

구글 해킹 도구

  • 검색 패턴 데이터베이스 사이트

    -> http://www.hackersforcharity.org/ghdb/

    image

    image

    -> 수백가지 패턴의 데이터베이스가 등록되어 있음

방어 기법

  • 크롤링 봇

    • 검색엔지 사이트들이 서버 수집을 위해 사용

    • 수많은 서버의 키워드와 이미지 수집

    ​ (무분별한 수집을 방지하기 위해, 로봇 배제 표준이라는 규약 만듦)

    => 검색 로봇이 웹 페이지 크롤링시, 가장 먼저 해당 사이트의 최상위 폴더에서 robots.txt 파일 호출하여 권한 확인

    image

    • robots.txt 사용법

      -> 웹 서버의 최상위 폴더에 robots.txt 파일 생성후 다음 예제 사용

      //모든 로봇 문서 접근 허용
      User-Agent: *
      Disallow: 
      
      //모든 봇 접근 금지
      User-Agent: *
      Disallow: /
      
      //특정 폴더 봇 접근 금지('admin', 'data' 폴더)
      User-Agent: *
      Disallow: /admin/
      Disallow: /data/
      
      //구글 봇만 접근 허용
      User-Agent: Google
      Disallow:
      User-Agent: *
      Disallow: /
      

      => 민감한 정보가 담긴 폴더(관리자 페이지, 데이터 페이지..)는 robots.txt로 봇의 크롤링 제외

파일 업로드

-> 파일 업로드 취약점으로 시스템 명령어 실행 권한 획득(공격방법이 쉬운편)

  • 방법:
    1. 취약점을 통해 웹 쉘을 서버에 업로드
    2. 업로드 경로 찾아 웹 쉘 실행
    3. 웹쉘로 웹 애플리케이션 권한으로 시스템 명령어 실행