[모각코] #2 해킹맛보기 2강 웹해킹 (2.1~2.5)
웹해킹
-
사례
-
7.7 DDoS, 3.4 DDoS
-> 2009년 7월 7일, 2011년 3월 4일 오후 6시를 기점으로 청와대, 국방부, 국회, 국가정보원, 대형 포털 사이트 등이 수십만 대의 좀비 PC로부터 DDoS 공격을 당함
-
진행과정
- dnpqgkem(P2P) 사이트 해킹
- 업데이트 서버 장악
- 업데이트 파일에 악성코드 삽입
- 웹하드 사이트 사용자 악성코드 감염
- 공격 날짜, 시간에 맞춰 공격 개시
=> DDoS 공격은 동시간에 일제히 공격
-
-
EBS 해킹
-> 2012년 5월 15일 EBS 게시판 파일 업로드 취약점을 통해 400만명의 개인정보 유출
-
현대캐피탈 해킹
-> 홈페이지 해킹 후 웹 쉘을 설치 후, 트래픽 관제를 피하기 위해 5만 회에 걸쳐 148만 명의 개인정보 유출
- 웹 쉘 (web Shell) : 웹 서버 백도어로 웹 해킹에 자주 쓰임
-
구글 해킹
-> 구글 검색을 통해 100여 개 사이트에서 총 884만 건의 회원정보 유출
-> 국내에 정보 유출에 무방비 상태인 사이트가 많음
-
크로스 사이트 스크립트 웸 배포
-> 소셜 네트워크 서비스인 ‘마이스페이스’에서 ‘Samy’라는 닉네임 사용자가 크로스 사이트 스크립트(XSS, cross Site Script) 취약점을 이용해, 자신의 프로필을 열람할 때 ‘Samy’ 사용자를 친구 요청한 후 열람한 피해자의 프로필에도 악성코드가 삽입되는 형태로 공격
-
환경 구축
★웹 애플리케이션 해킹에서 보이지 않는 서버 사이드 언어와 데이터베이스 쿼리를 추측
-
APM
-> 무료 & 우수한 성능으로 인해 점유율이 세계에서 가장 높음
- 윈도우 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 파일이 존재하지 않을 경우 파일 목록을 출력해주는 아파치의 옵션이 있음
-> 이 옵션이 켜져 있는 경우에 백업파일이나 중요정보 파일이 노출
5. 웹 쉘 노출
-
이미 공격받아 생성된 웹 쉘을 찾아내는 경우, 구글 해킹만으로 점령 가능
-> 유명 웹 쉘 등이 많아 해당 웹 쉘의 특정 문자열로 검색 쿼리 제작 시, 많은 서버 획득
구글 해킹 예제
-> 웹 관리자들의 실수를 통해 다음 검색 쿼리 작성 가능
-
github.com 사이트 제외하고, {임의의 문자열}.php.bak이 주소에 포함되는 사이트 모두 검색
- 백업파일 노출
)
-
github.com 사이트 제외하고, wnthdp “sql”이 포함되며 본문에 “MySQL dump 10.10”이 포함되는 사이트 검색
-
MySQL Dump 파일 노출
-
-
타이틀이 “관리자 페이지”이고, 주소에 /admin/ 문자열이 포함된 사이트를 모두 검색
-
관리자 페이지 노출
-
-
타이틀이 “이력서”이고, 주소에 /recruit/, /upload/ 문자열이 포함된 사이트 검색
-
개인정보 및 이력서 노출
-
-
타이틀이 “Index Of”이고, 본문에 “Parent Directory”가 포함된 사이트 검색
- 디렉터리 리스팅
-
타이틀이 “R57shell”이고, 주소에 /upload/ 문자열이 포함된 사이트 검색
-
웹 쉘 노출
-
구글 해킹 도구
-
검색 패턴 데이터베이스 사이트
-> http://www.hackersforcharity.org/ghdb/
-> 수백가지 패턴의 데이터베이스가 등록되어 있음
방어 기법
-
크롤링 봇
-
검색엔지 사이트들이 서버 수집을 위해 사용
-
수많은 서버의 키워드와 이미지 수집
(무분별한 수집을 방지하기 위해, 로봇 배제 표준이라는 규약 만듦)
=> 검색 로봇이 웹 페이지 크롤링시, 가장 먼저 해당 사이트의 최상위 폴더에서 robots.txt 파일 호출하여 권한 확인
-
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로 봇의 크롤링 제외
-
파일 업로드
-> 파일 업로드 취약점으로 시스템 명령어 실행 권한 획득(공격방법이 쉬운편)
- 방법:
- 취약점을 통해 웹 쉘을 서버에 업로드
- 업로드 경로 찾아 웹 쉘 실행
- 웹쉘로 웹 애플리케이션 권한으로 시스템 명령어 실행