[모각코] 해킹맛보기 1강
해커
-
종류
-
- 화이트햇 해커(White hat Hacker)
-
선의의 목적으로 보안상의 취약점 찾고 해결책 제시(합법적인 범위)
-
- 블랙햇 해커(Black hat Hacker)
-
악의적인 목적으로 컴퓨터에 침입하고 개인적 이득을 취함
-> 이런 악의적인 목적을 가진 해커들은 ‘크래커(Cracker)’라 지칭
-
- 그레이햇 해커(Grey hat Hacker)
-
화이트햇과 블랙햇 해커의 중간단계로, 불법적인 해킹 시도
개인적 이득보단 해당 시스템의 취약점을 알려주는 등 직접적인 피해 초래X
핵티비스트(Hacktivist)
: 해킹을 수단으로 사회적, 종교적, 정치적 메세지 등을 설파
-> 사이트 페이지 변조나 운영 방해 등의 행위를 하며 대부분 불법
ex) 어나니머스(Anonymous)
## 윤리와 법
-
-
합법적 호기심
-
성공여부와 관계없이 타인의 시스템에 대한 해킹 시도는 불법
-> 따라서 성공/실패 여부를 떠나 호기심으로 해킹하면 안됨
-
-
법에 대한 무지와 애매함
ex) 리버스 엔지니어링(코드를 역으로 분석)
-> 호환성 확보를 목적으로 하는 행위일 경우에만 합법
해커 공격 시나리오
ex) 금융시스템
- 웹해킹: 내부 시스템으로 가는 통로 개방 & 시스템 권한 획득
- 리버스 엔지니어링: 프로그램의 취약점을 찾기 위해 분석
- 시스템 해킹: 공격을 위한 기본
- 버그 헌팅: 공격 대상이 공개된 보안 취약점을 모두 패치한 경우, 새로운 취약점 찾음
- 디지털 포렌식: 외부 해커로부터 공격당한 시스템 분석 및 원인 찾기
- 취약점 마켓 & 해킹 마켓: 다양한 취약점이나 악성코드와 같이 해커가 생산해낸 콘텐츠를 사고파는 시장
효과적인 해킹 학습 방법론
ex) 버퍼 오버플로우(Buffer Overflow)
: 정상적인 프로그램을 오작동시켜서 시스템 특정 메모리 영역을 공격
-
선행지식
-
시스템 관련 지식
-> 메모리값 조작
- 메모리 구조, 프로그램 작동원리, 시스템 권한 체계 등
-> 공격 환경
- 리눅스 운영체제, 원도우 운영체제 등
-
프로그래밍 언어
-> 해킹 공격 코드를 만드는 작업이 필요
- C, C++, 어셈블리, 파이썬 등이 빈번
-
=> 환경과 프로그래밍 언어에 대한 지식이 필요
워게임
: 취약한 가상의 환경을 구축 후, 실전처럼 공격할 수 있도록 만든 해킹 연습장
-
위챌
-> 자체적으로 제작된 해킹 문제, 유명 워게임 사이트 리스트..
실습)
-> use view sourcecode to get it( 소스코드를 확인)
- 소스코드안의 일부
Answer: html_sourcecode
가상환경
-> 해커가 직접 가상의 취약한 환경 구축후 해킹
-
가상환경구축 지원 프로그램
ex) Vmware, VirtualBox
-> 본인이 사용하는 시스템에서 테스트시 시스템 망가질 우려가 있기 때문
허가된 시스템
->실전과 가장 유사한 해킹 실습
=> 반드시 안정성 측면을 충분히 고려하기!
이벤트
-
락피킹(Lockpicking)
-> 잠겨 있는 자물쇠나 현관문 등의 잠금 장치를 클립이나 각종 도구로 여는 경연
-
Wall of Sheep
-> 안전하지 않은 무선 환경을 오가는 데이터를 스니핑(sniffing)해 얻어낸 각종 정보들을 모두가 볼 수 있는 커다란 스크린에 보여주는 것
(경각심 일깨우기)
- 스크린에 보여지는 것: 로그인 아이디, 비밀번호 등 사용자 인증 정보
-
2drunk2hack
-> 웹 방화벽으로 보호되고 있는 웹 애플리케이션의 취약점을 공격해 시스템 명령을 실행하여 최종 플래그(flag) 획득