백박스 리눅스를 활용한 모의 침투 — 4장
4장 공격 대상자와 사전 정보의 설정
INDEX
- 공격 대상자 가상환경
- Metasploitable 설치 및 설정
- 무차별 대입 공격
- 사전 기반 공격
4장에서는 앞으로 진행할 실습에 있어 공격 대상자에 대한 사전 정보를 설정하는 시간을 가질 것이다.
1. 공격 대상자의 운영체제
원활한 모의 침투 기법을 연습하기 위해서는 공격자와 공격 대상자가 있어야 한다.
공격자는 지금까지 설치해왔던 백박스이다.
취약점 분석 시 공격 대상자 보통 pc에 사용되는 운영 체제는 2가지 정도가 있다.
첫 번째는 윈도우 2000 서버이다.
윈도우 2000 서버에는 이후에 나오는 운영체제들과 달리 DEP, ASLR, 윈도우 방화벽이 없기 때문에 모의 침투를 할 때 큰 어려움이 없다.
여기서, DEP(Data Execution Prevention)란?
데이터 실행 방지라는 뜻의 DEP는 현대의 마이크로소프트 윈도우 운영 체제에 포함된 보안 기능으로, 실행 방지 메모리 영역의 실행 코드에서 버퍼 오버플로우와 같은 상황에 특정 코드가 저장되거나 응용 프로그램 실행되는 상황을 막기 위해서 고안된 것이다.
ASLR(Address Space Layout Randomization)이란?
프로세스의 가상 주소공간에 스택(stack), 힙(heap), 라이브러리(libc)의 주소를 랜덤하게 배치하여, 실행할 때마다 데이터 주소 값이 바뀌게 하는 기법이다. 이를 통해서 해커가 메모리상의 공격하는 것을 어렵게 만들 수 있다.
두 번째는 메타스프로잇터블 2.6 서버 이다.
메타스프로잇터블 2.6서버는 유닉스/리눅스 계열의 운영 체제 취약점을 분석하기 위한 운영 체제이다.
이 운영 체제는 오직 모의 침투 연습을 위해 보안 전문가들이 개발한 것으로, 특별한 보안 설정 없이도 모의 침투를 용이하게 수행할 수 있고, 다양한 인터넷 서비스 기능과 DBMS을 갖추고 있다.
DBMS(DataBase Management System)란?
데이터베이스를 관리하며 응용 프로그램들이 데이터베이스를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어이다.
My-SQL 서버와 PostgreSQL 서버 등을 이용할 수 있다.
본 실습에서는 윈도우 2000서버를 사용하기 힘들기 때문에, 가상머신에서 돌려서 바로 사용할 수 있는 ‘메타스플로잇터블’을 사용할 것이다.
2. Metasploitable 설치 및 기본 설정
메타스플로잇트블 운영 체제 이미지는 아래 사이트 주소에서 무료로 다운로드 할 수 있다.
메타스플로잇터블 운영 체제는 VM 이미지 형태로 제공하기 때문에 압축 해제 후 바로 VMware에서 작동시킬 수 있다.
해당 운영 체제에서 사용하는 계정과 비밀번호는 모두 msfadmin이다.
lsb_release -a 명령어를 입력해보면 현재 사용 중인 메타스플로잇터블은 우분투 8.04 버전에 기반을 둔 운영 체제라는 것을 알 수 있다.
메타스플로잇터블 운영 체제를 재시작하거나 종료하기 위해서는 루트 계정이 필요하다.
sudo passwd root를 이용하여 root 계정을 만들고,
su-를 이용하여 root 계정으로 로그인한다.
루트 계정으로 전환된 상태에서 나노 편집기 혹은 vi 편집기를 이용해 고정 IP 주소를 설정한다.
리부트 후에는 다시 루트 계정으로 로그인을 한다.
그 후에 ifconfig 명령어를 이용하면 바뀐 IP를 확인 할 수 있다.
루트 계정으로 SSH 서비스에 원격 접속이 가능하도록 하기 위해서 2장에서 배웠던 것처럼 변경하면 된다.
다음으로 MY-SQL 서버의 루트 비밀번호 설정을 해준다.
루트 계정을 이용해 그림과 같이 입력한 후 비밀번호를 물으면 Enter를 눌러준다.
update user set password=password(‘비밀번호’) where user=’root’; 명령어를 이용하여 my-sql 서버의 루트 비밀번호를 설정해준다.
본 실습에서는 비밀번호를 1234로 설정해주었다.
flush privileges 명령어는 변경 내용을 적용해주는 역할을 한다. 이 명령어를 꼭 사용해야지 변경 내용이 적용된다.
/var/www/dvwa/config/config.inc.php 파일에서 $_DVWA 부분을 [그림4–9]처럼 변경해주어야 한다.
이때 나노 편집기 혹은 vi 편집기를 이용하면 된다.
3. 무차별 대입 공격
무차별 대입 공격이란, 비밀번호 해독을 위해 사용 가능한 모든 값을 임의대로 조합하여 순차적으로 대입하는 공격을 의미한다. 이 방법은 가장 고전적이며 효과적인 방법이다.
백박스 운영 체제에서는 크런치(Crunch) 도구를 통해 무차별 대입 공격에 필요한 비밀번호 항목을 생성할 수 있다.
cat/usr/share/crunch/charset.lst numeric 명령어를 입력하면 다양한 옵션을 볼 수 있으며, 그 중 numeric을 이용하여 숫자로만 이루어진 비밀번호를 생성 할 수 있다.
특히 mixalpha-numeric-all-space-sv 옵션을 이용하여 가장 복잡한 비밀번호 체계를 생성할 수 있다.
crunch 1 4 -f /usr/share/crunch/charset.lst numeric -o /root/passwords.txt
numeric 플래그를 이용해서 (1부터 4까지) 4자리 비밀번호를 생성하고, 생성된 비밀번호들을 root 디렉터리에 저장하는 명령어이다.
이렇게 형성된 passwords.txt 파일은 11110줄로 이루어져 있다.
cat >> 명령어를 이용하여 passwords.txt 파일에 postgres를 추가해준다.
[그림4–12]는 cat 명령어를 통해 passwords.txt 파일에 1234, postgres를 출력해준 것이다. 이를 통해 파일에 postgres가 무사히 추가되었음을 알 수 있다.
4. 사전 기반 공격
사전 기반 공격은 영어 사전에 나온 단어를 이용한 공격이다.
구글 사이트에 password list txt 등을 입력하면 많은 정보를 볼 수 있을 것이다.
나노 편집기로 users.txt 파일을 작성한다. 이때, users.txt 파일에는 계정으로 사용하는 단어들을 적는다.
administrator은 윈도우 운영 체제에서 사용하는 관리자 계정,
sa는 MS-SQL 서버에서 사용하는 관리자 계정,
root는 유닉스/리눅스 기반의 운영 체제와 MY-SQL 서버 등에서 사용하는 관리자 계정,
postgres는 PostgresSQL 서버에서 사용하는 관리자 계정이다.
마치며
이번 4장은 실습 중에 1,2장과 비교했을 때 큰 문제 발생하지 않았습니다.
차근차근 잘 따라오셨다면 이번 실습은 무난하게 잘 넘어가실 수 있으실 것입니다. (박수
다음 시간에는 “다양한 정보 수집 도구”에 대해 포스팅 할 것 입니다.
[WARNING]
공부한 내용을 정리하는 글이라서 틀린 내용이 있을 수도 있습니다. 잘못된 내용이 있다면 망설이지 마시고 알려주세요!
읽어주셔서 감사합니다 :)