모의 해킹(Penetration Testing)은 조직 시스템 내부로 접근하거나 보안 시스템을 회피하는 방법을 시뮬레이션하기 위해 공격자가 사용하는 기술을 의미합니다. 여기에는 스캐너와 자동화된 도구를 실행한 후 보고서를 작성하는 행위도 포함됩니다. 올바른 모의 해킹을 위해서는 기본적인 원칙이 무엇인지 알아하겠죠? 아래의 링크는 모의 해킹 수행 표준안(Penetration Testing Execution Standard)에 대한 정보를 얻을 수 있는 곳입니다. 참고하세요~
모의 해킹 수행(Penestration Testing Execution Standard)의 7가지 주요 범주
- 사전 계약
- 정보 수집
- 위협 모델링
- 취약점 분석
- 침투 수행
- 포스트 익스플로잇
- 보고서 작성
모의 해킹의 유형
- 공개 모의 해킹
- 비공개 모의 해킹
취약점 스캐너는 주어진 시스템이나 애플리케이션의 보안 결함을 발견하는 데 사용하는 자동화된 도구입니다.
대상 운영체제에서 추출한 정보를 기반으로 전문적인 검증을 통해 취약점이 존재하는지 확인하는 것으로 도구 개발자의 기술만 반영되기 때문에 오탐과 미탐이 발생할 수 있습니다. 취약점 스캐너가 수집한 정보 중에는 가치 있는 정보가 포함돼 있지만, 모의 해킹에서 자동화할 수 없는 높은 성공률의 공격은 전문가의 지식과 기술을 요구하므로 맹신은 금물!
메타스플로잇(Metasploit)은 보안 커뮤니티의 수많은 사람이 참여하는 무료 오픈소스 소프트웨어(상용 버전도 존재)입니다. 아래의 링크에서 메타스플로잇을 설치에 관한 정보를 얻을 수 있으니 설치해주세요!
설치 하셨다면, 메타스플로잇에서 사용하는 용어를 몇 개를 살펴보겠습니다.
전문 용어
- 익스플로잇(Exploit)
- 익스플로잇(Exploit)은 공격자나 모의 해킹 전문가가 시스템, 애플리케이션, 서비스 등의 취약점을 악용하는 방법을 의미
- 공격자는 개발자가 결코 의도하지 않은 결과를 이용한 익스플로잇(보통 버퍼 오퍼플로우, SQL Injection 같은 웹 애플리케이션 취약점, 설정 오류 등)으로 시스템을 공격함
- 페이로드(Payload)
- 시스템에 실행시키고자 하는 코드이며, 프레임워크에 의해 선택되고 전달
- 쉘코드(Shellcode)
- 공격을 수행할 때 페이로드로 사용되는 명령 집합
- 보통 어셈블리 언어로 작성되고 연속된 명령을 대상 시스템에서 실행한 후 명령 쉘이나 미터프리터 쉘을 획득
- 모듈(Module)
- 메타스플로잇 프레임워크에서 사용되는 소프트웨어의 한 부분을 의미
- 리스너(Listener)
- 연결 요청을 기다리는 메타스플로잇의 구성 요소
이제 메타스플로잇에 대해 알아보겠습니다. 메타스플로잇은 콘솔, 커맨드라인, 그래픽을 지원하는 다수의 인터페이스를 제공하며, 인터페이스와 함께 제공되는 유틸리티는 메타스플로잇 프레임워크의 내장 기능에 직접 접근할 수 있습니다.
인터페이스
- MSFconsole
- 프레임워크에서 사용할 수 있는 거의 모든 옵션 설정이 가능한 인터페이스를 제공하고, 인터페이스 하나로 모든 공격을 수행할 수 있음
- 익스플로잇 실행, 보조 모듈 로딩, 점검 작업, 리스너 생성을 비롯해 전체 네트워크를 대상으로 한 대량 공격까지도 수행 가능함
- MSFcli
- 대화형 방식을 사용해 모든 기능에 접근
- 다른 콘솔 도구와 같이 스크립트 수행과 명령 해석 기능에 중점을 둠
- 다른 도구에서 MSFcli로 출력을 보내거나 MSFcli의 출력을 직접 다른 커맨드라인 도구로 보낼 수 있음
- 익스플로잇과 보조 모듈을 실행시킬 수 있으므로 새로운 익스플로잇을 개발하거나 모듈을 테스트할 때 유용함
- Armitage
- armitage의 구성 요소는 완전한 대화형 그래픽 사용자 인터페이스
유틸리티
- MSFpayload
- 쉘코드를 생성하고 실행하며, 프레임워크의 외부 공격을 유용하게 함
- 프로그램에서 비정상 종료의 원인이 되는 문자열 끝에 여러 널 문자가 포함됨
- 평문을 생성하므로 이를 네트워크로 보낼 경우 침입 탐지 시스템(IDS)와 안티바이러스 소프트웨어에 의해 탐지될 수 있음
- MSFencode
- 다수의 서로 다른 인코더를 통한 문자 인코딩이 MSFpayload의 문제를 해결함
- Nasm 쉘
- 어셈블리 코드를 이해하고자 할 때 유용하게 사용됨
지금까지 메타스플로잇에 대해 간단히 알아보았습니다. 다음 포스팅에 학습을 이어가도록 하겠습니다. 그럼 이만 ~.~
'Security' 카테고리의 다른 글
[Security] 레지스트리(Registry)와 하이브(Hive) 파일 (0) | 2020.03.12 |
---|---|
[Security] 윈도우(Window) 시스템 (0) | 2020.03.11 |
[Security] 리눅스 부팅(Booting) 및 인증과 권한 관리 (0) | 2020.03.08 |
[Security] 리눅스 파일 시스템 (0) | 2020.03.08 |
[Security] 리눅스(Linux) (0) | 2020.03.08 |