홈페이지 취약점 분석 이야기 파일 지도 사진 깨알






>> 목록보이기
#Kali Linux #칼리리눅스 #Kali 2019.3 Large #가상머신 #VMware Fusion #칼리리눅스 한글 설정 #칼리리눅스 공유폴더 마운트 #Kali shared folders howto #공유폴더 #Shared Folder #한글입력기 #벼루 입력기

Kali Linux 2019.3 Large 특별배포판 설치하기

Offensive Security사는 2019년 11월 26일에 새로운 배포판인 Kali Linux 2019.4를 공개했다. 이번 배포판부터는 마이크로소프트 윈도우의 파워쉘(PowerShell)을 칼리에서 실행할 수 있다고 한다. 2019.4 표준배포판도 아래 과정과 별다른 차이없이 설치할 수 있다.

kali linux 2013.9

2019년 9월에 공개된 칼리리눅스 2019.3 배포판kali-linux-large-2019.3-amd64.iso라는 특별판을 포함하고 있다. 이 특별판은 2019.3 배포판에만 포함된 것으로 표준판에 비해서 보다 많은 모의침투 도구들을 포함하고 있다고 한다. 이 문서에서는 2019.3 Large 특별배포본의 설치 과정에 대해서 설명한다. 여기서 사용한 주 운영체제는 MacOS이며 가상머신 소프트웨어는 유료인 VMware Fusion이다. 무료로는 MS 윈도우, Linux, MacOS 운영체제 모두를 지원하는 공개용 가상머신 소프트웨어인 버추얼박스(VirtualBox)를 추천한다.

차례

  1. 기본 설치
  2. 소프트웨어 업그레이드: apt update && apt dist-updgrade
  3. 한국어 환경: 한글 글꼴 설치, 지역 및 언어 (Rigeon & Language) 설정
  4. 한국어 환경: 한글 입력기 UIM-벼루 설정
  5. 한국어 환경 설정: 로케일(Locale) 변경으로 메뉴에 한글 나오게..
  6. 한국어 환경 설정: 벼루 입력기의 툴바 숨기기
  7. 작업 환경 설정: 왼쪽의 즐겨찾기 추가하기
  8. 작업 환경 설정: 추가 작업
  9. 작업 환경 구성: 주 운영체제의 공유폴더 마운트

기본 설치

손님 운영체제는 생성시에 Linux -> Ubuntu 64bit를 선택하고 이름은 "Kali Large"로 설정하였다. 가상머신의 CPU는 2코어, 메모리(RAM)는 2,048MB(2GB), 하드디스크는 40GB를 할당하였다. (칼리 손님 OS를 취약점 점검 실무용으로 사용할 예정이라면 메모리 용량은 4096MB(4GB) 이상, 하드디스크 용량은 60GB 이상으로 설정할 것을 추천한다.) CD-ROM에는 kali-linux-large-2019.3-amd64.iso 파일을 지정하였다.

설치과정에서 칼리가 기본으로 제시하는 것 중에서 고칠 필요가 없는 것은 여기서 설명하지 않는다. 대부분의 단계에서 마우스로 "Continue"를 클릭하여 진행하면 된다. 다만 칼리의 기본 제시와 다른 부분이나 입력이 필요한 부분은 그림으로 설명하였다.

칼리리눅스 Large; 설치시작; Graphical Instal
[ Kali Linux 2019.3 Large 설치: Grapical Install ]

손님 OS를 켠다. Graphical Install을 선택하여 설치를 진행한다.

설치진행 과정에서 기본으로 지정되는 부분을 건드리지 않고 "Continue"를 클릭하여 진행한다. 다만 칼리의 기본 제시와 다른 부분이나 입력이 필요한 부분은 그림으로 설명한다.

칼리리눅스 Large; Location: Republic of Korea[ Kali Linux 2019.3 Large 설치: 지역 선택 - 대한민국 ]

Select your location(지역 선택)이 나타나면 "other" -> "Asia" -> "Korea, Republic of"를 선택한다. 참고로 "Republic of Korea"는 남한(대한민국), "Democratic People's Republic of Korea"는 북한(조선민주주의인민공화국)이다.

칼리리눅스 Large; Keyboard: Korean[ Kali Linux 2019.3 Large 설치: 자판 선택 - 한글 ]

Configure the keyboard(자판 설정)에서는 "Korean"(한글)을 선택한다.

칼리리눅스 Large; root 비밀번호 설정; toor[ Kali Linux 2019.3 Large 설치: root 비밀번호 설정 ]

위와 같이 root 계정의 비밀번호는 알아보기 쉽게 "toor"로 지정하여 두번 입력한다. (설명의 편의상 root를 거꾸로 읽은 것을 비번으로 선택함)

칼리리눅스 Large; write disk yes[ Kali Linux 2019.3 Large 설치: 디스크 설정을 쓰기 ]

Partion disks 단계에 오면 "Write changes to the disk?"라고 묻는다. No 대신 "Yes"를 선택하고 "Continue"로 진행한다. 참고: 이 단계에서 40GB짜리 하드디스크를 각각 38GBext4 파티션과 swap으로 사용할 2GB 파티션으로 분할한다. Swap 파티션은 물리적인 메모리가 모자라면 이 파티션을 메모리처럼 사용하게 되며 일반적으로 물리적 메모리 크기와 같게 설정한다.

Installing the system...
이제부터는 ISO 파일에서 손님 OS의 디스크로 파일을 복사한다. 많은 시간이 걸리므로 쉬거나 다른 일을 하자.

칼리리눅스 Large; GRUB 설치 /dev/sda[ Kali Linux 2019.3 Large 설치: GRUB 부트로더 설치 ]

Install the GRUB boot loader on a hard disk 단계에 오면 "/dev/sda"를 선택한다. GRUB은 GRand Unified Bootloader의 약자로 리눅스 진영의 부트 로더이며 디스크의 첫부분(MBR)에 저장된다. 리눅스 커널을 불러오는 역할을 담당한다.

설치가 끝나면 자동으로 재시동이 이루어진다.
재시동이 끝나면 root/toor로 로그인한다.

소프트웨어 업그레이드

배포용 ISO 파일이 만들어진 후에도 소트프웨어는 계속 발전과 개선이 이루어지므로 최신 버전으로 업데이트하는 것이 좋다. 칼리와 같은 데비안 계열의 리눅스는 apt 명령어로 손쉽게 업데이트가 가능하다.

칼리리눅스 Large; apt update; apt -y dist-upgrade[ Kali Linux 2019.3 Large 설치: 최신판으로 업그레이드 ]

왼쪽 즐겨찾기에서 세번 째 아이콘을 눌러서 터미널을 실행한다. 터미널에서 다음 명령어를 실행한다.

root@kali:~# apt update && apt dis-upgrade -y

무언가 묻는 것이 나오면 [Enter]를 계속 눌러서 소프트웨어 업데이트를 진행하면 된다.

업그레이드 과정은 많은 시간이 소요된다. 대략 3시간 정도가 걸렸다. 국내에는 칼리리눅스 미러가 부경대학교에 하나만이 존재한다(ftp.harukasan.org). 다른 미러 서버가 제공된다면 이런 병목현상이 좀 해결될 수 있을텐데...

업그레이드가 완료되면 시스템을 다시 시작한다.

root@kali:~# reboot

한국어 환경: 한글 글꼴 설치, 지역 및 언어 (Rigeon & Language) 설정

재부팅이 끝나면 root로 로그인하고 터미널을 열어서 한글 글꼴을 설치한다. 여기서는 구글이 한중일 3국을 위해 무료로 제공하는 Noto CJK 글꼴과 네이버가 제공하는 고정폭 글꼴인 나눔고딕 코딩 글꼴을 선택하였다. Noto는 글꼴이 없을 경우에 두부와 비슷한 사각형 문자를 출력하는 오류를 없애겠다는 구글의 의지(NO more TOfu)를 표현한다.

root@kali:~# apt -y install fonts-noto-cjk fonts-nanum-coding

글꼴 설치가 끝나면 제어판(gnome-control-center)을 실행한다.

root@kali:~# gnome-control-center

칼리리눅스 Large; Region: Korea; Language: Korean[ Kali Linux 2019.3 Large 설치: Settings -> Rigeon & Language ]

제어판의 Rigoen & Language 항목으로 들어간다. Language(언어)는 "Korean"(한국어), Formats(형식)는 "Korea, Republic of"(한국식)으로 선택한다. 이제 Langauage 아래 새로 생긴 "Restart" 단추를 누르거나 터미널에서 reboot 명령어를 입력하여 시스템을 다시 시작한다.

칼리리눅스 2019.3을 업그레이드 했더니 위의 화면과 같이 기본 테마가 "Kali Dark"로 변경되었다. MacOS, 윈도우 등에 이어서 리눅스 계에서도 어두운 테마가 유행인 듯...

한국어 설정: 한글 입력기 벼루 설치

리눅스에서 사용할 수 있는 한글 입력기는 fcitx, nimf(님프), nabi(나비), byeoru(벼루)의 4종이 있다. 여기서는 벼루를 선택하였다. (참고: 나비와 벼루 입력기에는 <Esc> 키를 누르면 한글 모드에서 영어 모드로 변경되는 기능이 있어서 vim(vi) 사용자에게는 좋은 선택이다.)

root@kali:~# apt -y install uim uim-byeoru im-config zenity

위 명령어 실행이 완료되면 im-config 명령을 실행한다.

root@kali:~# im-config

칼리리눅스 Large; im-config; uim[ Kali Linux 2019.3 Large 설치: im-config -> uim ]

입력방법(Input Method)을 uim으로 선택하고 im-config 프로그램을 종료한다. 이제 uim-pref-gtk 명령을 실행하여 UIM의 입력 방법을 조정한다.

root@kali:~# uim-pref-gtk

칼리리눅스 Large; uim-default-byeoru[ Kali Linux 2019.3 Large 설치: 기본 입력기 벼루 선택]

Global settings에서 Specify deafult IM(기본 입력기)를 활성화시키고 그 값은 "Direct"에서 "Byeoru"(벼루 입력기)로 변경한다.

칼리리눅스 Large; uim-global-key1-delete[ Kali Linux 2019.3 Large 설치: Global key bindings 1 수정 ]

Global key bindings 1 항목을 선택하고 첫번째와 두번째 줄의 "zenkaku-hankaku", "<Shift>space"를 제거한다. 벼루의 기본 한영전환키가 <Shift>space이기 때문에 중복에 의한 오작동을 피하기 위함이다. [OK] 단추를 눌러서 프로그램을 종료한다. 벼루 입력기가 작동하기 위해서는 시스탬 재시작이 필요하다.

root@kali:~# reboot

칼리리눅스 Large; byeoru shift-space[ Kali Linux 2019.3 Large 설치: 터미널에서 한글입력 ]

시스템 재시작 후에는 위와 같이 <Shift>space로 한글 입력모드로 전환하여 한글을 입력할 수 있다. 화면 오른쪽 아래에 벼루 입력기의 상태창이 외딴섬처럼 떠 있다. 로케일(Locale)을 한국어로 바꾼 후에 상태창 없애는 방법을 설명한다.

OWASP-ZAP 실행시 "도움말" 하나.

root@kali:~# owasp-zap

칼리리눅스 Large; owasp-zap start[ Kali Linux 2019.3 Large 설치: zaproxy 실행 ]

ZAP 세션 처리에 대한 물음에 No, I do not want to persist this session at this moment in time을 선택하고 Remember my choice and do not ask me again을 설정하면 OWASP-ZAP에서 사용한 데이타를 저장하지 않는다. 이 부분을 설정하지 않으면 OWASP-ZAP이 많은 데이타를 저장하기 때문에 디스크가 꽉 차는 현상이 종종 발생한다.

OWASP-ZAP을 실행했는 데 오른쪽 아래의 벼루 상태창이 계속 눈에 거슬린다.

한국어 환경 설정: 로케일(Locale)을 한글로 변경

위 그림에서 보듯이 메뉴들이 Activities, Applications, Places 등과 같이 영어로 나온다. 프로그램의 메뉴들도 모두 영어로 나온다. 이를 한글로 바꾸고 싶을 경우에는 로케일(Locale)의 언어를 한국어로 변경하면 된다. LANGUAGE 환경변수는 메뉴나 오류 메시지 등에 출력할 언어의 순서를 의미하는 것 같다. 반면 LANG 변수는 문자의 인코딩을 의미하는 것으로 보인다. 다음과 같이 vi와 같은 편집기를 이용하여 /etc/default/locale 파일을 수정한다. 수정 후에는 운영체제 재시작이 필요하다.

root@kali:~# vi /etc/default/locale
[여기서 LANGUAGE=en_US:en을 LANGUAGE=ko_KR:ko로 변경]
<Esc>
<Shift>zz
root@kali:~# cat /etc/default/locale
LANG=ko_KR.UTF-8
LANGUAGE=ko_KR:ko
root@kali:~# reboot

한국어 환경 설정: 벼루 입력기의 툴바 숨기기

위에서 보았듯이 벼루 툴바(상태창)이 항상 화면의 한 곳에 떠 있다. 그냥 사용해도 되지만 눈에 거슬린다면 UIM 설정도구(uim-pref-gtk)에서 툴바를 숨길 수 있다.

root@kali:~# uim-pref-gtk

칼리리눅스 Large; byeoru-toolbar never to hide[ Kali Linux 2019.3 Large 설치: UIM 상태창 숨김]

위 그림에서 보면 메뉴들이 Activities, Applications, Places와 같은 영어에서 현재활동, 프로그램, 위치로 바뀌어 나타나는 것을 볼 수 있다. 그 외에도 많은 곳에서 한국어가 사용되고 있다. 앞에서 로케일(Locale)을 수정한 결과이다.

툴바 항목의 Display behavior를 "Always"에서 "Never"로 변경하고 저장한다. 적용 단추를 누르거나 시스템 재시작 후에는 벼루 상태창이 나타나지 않지만 여전히 <Shift>space로 한영 전환이 가능하다. (다른 글쇠를 한영전환으로 사용하고 싶다면 벼루 키 설정 1[벼루]한글모드로[벼루]영문모드로에 원하는 글쇠를 추가하거나 변경할 수 있다.)

root@kali:~# reboot

작업 환경 설정: 왼쪽의 즐겨찾기 보완하기

자주 사용하는 프로그램의 아이콘을 왼쪽의 즐겨찾기에 넣어놓으면 웹취약점 점검을 진행할 때 편리하다. 가장 많이 사용하는 도구는 역시나 OWASP-ZAP 또는 burp suite와 같은 프록시 도구와 파이어폭스(firefox) 웹브라우저이다. 파이어폭스와 버프스위트는 이미 즐겨찾기에 위치해있다. OWASP-ZAP을 즐겨찾기에 추가해 보자.

칼리리눅스 Large; owasp-zap 즐겨찾기 추가 화면[ Kali Linux 64bit 2019.3 Large 설치: zaproxy를 즐겨찾기에 추가 ]

현재 활동을 눌러서 "zap" 또는 "zaproxy"를 검색한다. 결과에 뜨는 아이콘에 마우스의 오른쪽 딴추를 클릭하면 "즐겨찾기에 추가"를 선택한다.

칼리리눅스 Large; 즐겨찾기에 추가된 zaproxy[ Kali Linux 64bit 2019.3 Large 설치: 즐겨찾기의 OWASP-ZAP ]

그 결과, 왼쪽의 즐겨찾기 아래 쪽에 owasp zap이 추가된 것을 볼 수 있다. 순서를 바꾸고 싶으면 마우스의 왼쪽 단추를 누른 상태에서 아래위로 옮기면 된다.

작업 환경 설정: 추가 작업

크로미움 웹브라우저 chromium, 화면갈무리 도구 kde-spectacle, 그림그리기 도구 kolourpaint, PHP의 curl 라이브러리 php-curl 등을 추가로 설치한다.

  • 크로미움(chromium)은 점검 이외의 목적으로 웹을 열람하기에 편리하다. (대안: 오페라)
  • kde-spectacle은 보고서에 넣을 화면을 갈무리할 용도로 사용한다. (대안: kazam, gnome-screeenshot, xfce4-screenshot 등 다수)
  • kolourpaint는 갈무리한 그림에 화살표, 네모 상자, 글자 등의 도움이 되는 추가작업에 필요하다.(대안: gimp, inkscape, mypaint, gpaint 등 다수)
  • php, php-curl은 PHP로 웹 취약점 점검을 위한 간단한 프로그래밍을 할 때 필요하다.

root@kali:~# apt -y install chromium kde-spectacle kolourpaint php php-curl

설정 ->장치 -> 디스플레이 -> 해상도를 적절하게 조절한다. 또는 손님 OS를 전체화면(Full Screen) 모드로 전환하여 사용할 수도 있을 것이다. 여기서는 1440x900으로 바꿨다.

기본적으로 rootchromium을 직접 실행할 수 없다. 이 문제 해결을 위해 관련 파일을 수정하자.

root@kali:~# vi /usr/share/applications/chromium.desktop
[Exec=/usr/bin/chromium %U] -> [Exec=/usr/bin/chromium --no-sandbox %U]
<Esc>
:wq[Enter]
root@kali:~# 

칼리리눅스 Large; bash ls -FCs alias[ Kali Linux 64bit 2019.3 Large 설치: 설치를 완료한 모습 ]

거의 완성된 모습의 칼리리눅스 2019.3 Large 배포판의 모습이다.

ls 명령어를 좀 더 보기 편하게 하기 위해서는 alias에 -FCs를 추가한다.

root@kali:~# vi ~/.bashrc
    alias ls='ls -FCs --color=auto'
<Esc>
:wq[Enter]
root@kali:~# reboot

작업 환경 구성: 주 운영체제의 공유폴더 접근

손님 운영체제는 주인 OS와 sshscp를 이용하여 파일을 주고 받을 수도 있지만 주인 OS가 제공하는 공유폴더(shared folders)를 이용하면 보다 편리하다. 과정은 다음과 같다.

  1. 먼저 주인 운영체제의 가상머신 소프웨어에서 칼리리눅스와 공유할 디렉토리를 공유폴더로 설정한다.
  2. Kali Linux에 /mnt/hgfs 디렉토리를 생성하고, /etc/fstab 파일을 수정한다(아래 참조).
  3. 칼리에서 mount /mnt/hgfs 명령어로 공유폴더를 칼리 운영체제에 마운트(mount)할 수 있다.

root@kali:~# mkdir /mnt/hgfs
root@kali:~# cat /etc/fstab
# /etc/fstab: static file system information.
# ...생략...
UUID=5323513b-39ec-4a76-b4c7-485682c96fd3 /               ext4    errors=remount-ro 0     1
UUID=837ebfeb-861d-42a0-aad9-ed9094b9ac2b none            swap    sw            0     0
/dev/sr0        /media/cdrom0   udf,iso9660               user,noauto           0     0
.host:/		/mnt/hgfs	fuse.vmhgfs-fuse	noauto,allow_other	0     0
root@kali:~# mount /mnt/hgfs/
root@kali:~# df
Filesystem     1K-blocks      Used Available Use% Mounted on
udev              970888         0    970888   0% /dev
tmpfs             201088      6528    194560   4% /run
/dev/sda1       38958432  12453072  24496684  34% /
tmpfs            1005440         0   1005440   0% /dev/shm
tmpfs               5120         0      5120   0% /run/lock
tmpfs            1005440         0   1005440   0% /sys/fs/cgroup
tmpfs             201088        12    201076   1% /run/user/133
tmpfs             201088        24    201064   1% /run/user/0
vmhgfs-fuse    976797816 763214664 213583152  79% /mnt/hgfs
root@kali:~# 

위에서 df 명령어의 결과를 보면 /dev/sda1의 사용량이 12,453,072KB(12.5GB)이다. Kali 2019.3 Large 배포판은 Light 배포판의 4GB에 비해서 매우 많은 설치용량을 차지한다.

이제 /mnt/hgfs에서 주운영체제가 제공하는 공유폴더를 접근할 수 있다.
부팅할 때마다 매번 mount /mnt/hgfs 명령을 실행하기 귀찮을 경우에는 crontab에 추가하여 시스템이 시작할 때마다 자동으로 공유폴더를 마운트시킬 수 있다.

root@kali:~# crontab -e
G
o
@reboot    mount /mnt/hgfs
<Esc>ZZ
root@kali:~# crontab -l
# Edit this file to introduce tasks to be run by cron.
# ...생략...
@reboot    mount /mnt/hgfs
root@kali:~# reboot

crontab -e 명령에서 마지막에 @reboot mount /mnt/hgfs 한 줄을 추가하면 된다. 이제는 칼리리눅스가 부팅될 때마다 공유폴더를 자동으로 마운트시켜준다.

칼리리눅스 Large; OWASP-ZAP; Nikto[ Kali Linux 64bit 2019.3 Large 설치: 홈페이지 취약점 점검 예시 ]

드디어 설치와 작업환경 구성이 끝났다.
설치가 완료되면 위와 같이 nikto, owasp-zap 등을 이용하여 홈페이지 취약점 점검을 시험해 볼 수 있다.

[처음 작성한 날: 2019.11.29]    [마지막으로 고친 날: 2019.12.05] 


< 이전 글 : Kali Linux 2019.4 64bit Light 배포판 설치 설명서 (권장) (2019.12.02)

> 다음 글 : [과제] WH-MissAuth-1 웹해킹훈련장: 접속자 권한인증 후 출력 제어 취약점 (2018.06.19)


크리에이티브 커먼즈 라이선스 이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 이용할 수 있습니다.
잘못된 내용, 오탈자 및 기타 문의사항은 j1n5uk{at}daum.net으로 연락주시기 바랍니다.
문서의 시작으로 컴퓨터 깨알지식 웹핵 누리집 대문
 __
( 소 잃고 외양간 고친다?  )
(  )
( 하드 날리고 방화벽 깐다!  )
 --
   o
    o        .
     .---.  //
    Y|o o|Y// 
   /_(i=i)K/ 
   ~()~*~()~  
    (_)-(_)   

     Darth 
     Vader    
     koala        
.. -- -- | - .. .... | ... / .. .../ ... {] . .. .. .. ..| ...... .../ .../ .. ...... ... ... ] .. [ .../ ..../ ......./ .. ./// ../ ... .. ... .. -- -- | - .. .... | ... / .. .../ ... {] . .. .. .. ..| ...... .../ .../ .. ./// ../ ... .. ... ...| ..../ ./ ... / ..| ....| ........ / ... / .... ...... ... ... ] .. [ .../ ..../ ......./ .....| ..../ ./ ... / ..| ....| ........ / ... / .... ...| ..../ ./ ... / ..| ....| ........ / ... / .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .