Kali 보안 도구 탐색하기

Kali LinuxBeginner
지금 연습하기

소개

이 실습에서는 모의 해킹 및 사이버 보안 작업을 위해 Kali Linux 의 필수 보안 도구들을 탐색하고 활용하는 방법을 배웁니다. 이번 실습 세션에서는 dpkg -l을 이용한 사전 설치 도구 확인, msfconsole을 사용한 Metasploit 프레임워크 시작, nmap을 이용한 네트워크 스캔 수행, nikto를 이용한 웹 서버 스캔, man 페이지를 통한 도구 문서 확인, 그리고 명령 출력을 파일로 저장하는 과정을 단계별로 안내합니다. 초보자를 위해 설계된 이 실습은 LabEx VM 의 통제된 컨테이너 환경 내에서 Kali Linux 를 경험할 수 있는 기회를 제공합니다. 터미널을 열면 자동으로 Kali Linux 컨테이너 셸에 연결되어 즉시 실습을 시작할 수 있습니다.

dpkg -l 을 사용하여 사전 설치된 도구 확인하기

첫 번째 단계에서는 dpkg -l 명령을 사용하여 Kali Linux 시스템에 사전 설치된 도구와 패키지를 확인하는 방법을 배웁니다. 이는 모의 해킹 및 시스템 관리에 어떤 소프트웨어를 사용할 수 있는지 파악하는 데 있어 기본적이면서도 필수적인 기술입니다.

LabEx VM 환경에서 터미널을 열면 Kali Linux 컨테이너 셸에 자동으로 연결됩니다. 컨테이너를 수동으로 시작하거나 셸에 진입할 필요가 없으며, 모든 환경이 이미 준비되어 있습니다.

먼저 설치된 모든 패키지를 나열하는 명령을 실행해 보겠습니다. 터미널에 다음 명령을 입력하고 Enter 를 누르세요.

dpkg -l

이 명령은 설치된 모든 패키지의 이름, 버전, 아키텍처 및 간단한 설명을 포함한 상세 목록을 표시합니다.

예상 출력 결과 (예시이며 실제 출력은 다를 수 있음):

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                           Version              Architecture Description
+++-==============================-====================-============-========================================================
ii  adduser                        3.118                all          add and remove users and groups
ii  apt                            2.2.4                amd64        commandline package manager
ii  base-files                     11.1+deb11u7         amd64        Debian base system miscellaneous files
...

이 출력은 각 패키지의 상태 (ii는 설치됨을 의미) 와 기타 세부 정보를 보여줍니다. 목록이 길기 때문에 터미널 화면을 넘어갈 것입니다. 위아래 화살표 키나 마우스 휠을 사용하여 내용을 탐색할 수 있습니다.

출력 내용을 더 효율적으로 관리하기 위해 특정 도구를 검색하도록 필터링할 수 있습니다. 예를 들어 apt와 관련된 패키지를 찾으려면 다음 명령을 입력하고 Enter 를 누르세요.

dpkg -l | grep apt

예상 출력 결과 (예시이며 실제 출력은 다를 수 있음):

ii  apt                            2.2.4                              amd64        commandline package manager

이렇게 하면 이름이나 설명에 apt가 포함된 패키지만 필터링하여 보여줍니다. 이 기술을 사용하면 나중에 사용할 도구들을 빠르게 찾을 수 있습니다. 시스템에서 사용 가능한 도구가 무엇인지 이해하는 것은 구체적인 보안 작업을 수행하기 전의 기초 단계입니다.

Metasploit 설치 및 msfconsole 시작하기

Kali Linux 에서 사용 가능한 도구들을 확인했으니, 이제 가장 강력한 모의 해킹 프레임워크 중 하나인 Metasploit 을 msfconsole 명령으로 시작해 보겠습니다. 이 단계는 시스템 도구에 대한 이해를 바탕으로 보안 테스트의 핵심 플랫폼을 소개합니다.

Metasploit 은 대상 시스템에 대한 익스플로잇 (취약점 공격) 을 개발, 테스트 및 실행하는 데 사용되는 프레임워크입니다. msfconsole은 이 프레임워크의 명령줄 인터페이스로, 프레임워크와 상호작용하고 설정을 구성하며 다양한 보안 작업을 실행할 수 있게 해줍니다.

먼저 패키지 목록을 업데이트하고 필요한 패키지를 설치하여 Metasploit 이 설치되어 있는지 확인합니다. Kali Linux 컨테이너 터미널에 다음 명령들을 입력하고 각각 Enter 를 누르세요.

apt update
apt install -y metasploit-framework

이 명령들은 패키지 목록을 갱신하고 Metasploit 이 없는 경우 설치합니다. 설치가 완료될 때까지 기다리십시오. 시스템 상황에 따라 몇 분 정도 걸릴 수 있습니다.

설치가 완료되면 다음 명령을 입력하고 Enter 를 눌러 Metasploit 콘솔을 시작합니다.

msfconsole

이 명령을 처음 실행할 때는 데이터베이스를 설정하고 모듈을 로드하는 초기화 과정으로 인해 시간이 다소 걸릴 수 있습니다. 이 과정 동안 잠시 기다려 주세요.

예상 출력 결과 (예시이며 실제 출력은 다를 수 있음):

Metasploit Framework
...
msf6 >

msf6 > 프롬프트는 현재 Metasploit 콘솔 내부에 있으며 프레임워크와 상호작용할 준비가 되었음을 나타냅니다. 숫자 (예: 6) 는 Metasploit 의 버전을 의미합니다.

Metasploit 콘솔 프롬프트

지금은 Metasploit 에서 특정 작업을 수행할 필요가 없습니다. msf6 > 프롬프트에서 다음 명령을 입력하고 Enter 를 눌러 콘솔을 종료합니다.

exit

그러면 표준 터미널 프롬프트로 돌아갑니다. msfconsole을 시작하고 종료해 보는 과정을 통해 향후 학습하게 될 많은 모의 해킹 활동의 필수 도구에 접근하는 법을 익힐 수 있습니다.

기본 Nmap 스캔 설치 및 실행하기

Metasploit 을 시작해 보았으니, 이제 네트워크 탐색 및 보안 감사를 위한 다재다능한 도구인 nmap을 사용한 네트워크 스캔에 집중해 보겠습니다. 이 단계에서는 시스템의 열린 포트와 서비스를 식별하는 방법을 배우며, 이는 모의 해킹에서 매우 중요한 기술입니다.

Network Mapper 의 약자인 nmap은 패킷을 보내고 응답을 분석하여 네트워크상의 호스트와 서비스를 찾는 데 사용됩니다. 대상 시스템에서 접근 가능한 항목을 보여줌으로써 잠재적인 취약점을 식별하는 데 도움을 줍니다.

먼저 Kali Linux 컨테이너에 nmap이 설치되어 있는지 확인합니다. 터미널에 다음 명령을 입력하고 Enter 를 눌러 패키지 목록을 업데이트하고 nmap을 설치합니다.

apt install -y nmap

설치가 완료될 때까지 기다리십시오. 몇 초 정도면 완료됩니다. 설치가 끝나면 기본 스캔을 수행할 준비가 된 것입니다. 허가 없이 외부 시스템을 스캔하는 것은 비윤리적이므로, 안전한 대상인 localhost(사용자 자신의 컨테이너) 를 스캔하겠습니다.

먼저 컨테이너에서 기본 웹 서버를 실행해 보겠습니다.

apt install -y apache2
service apache2 start

그 다음 아래 명령을 입력하고 Enter 를 누르세요.

nmap localhost

이 명령은 로컬 시스템의 열린 포트와 서비스를 감지하기 위해 기본 스캔을 수행합니다.

예상 출력 결과 (예시이며 실제 출력은 다를 수 있음):

Starting Nmap 7.91 ( https://nmap.org ) at ...
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
80/tcp   open  http
...
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

이 출력에서 Host is up은 대상에 연결할 수 있음을 확인해 줍니다. 표에는 열린 포트 (예: HTTP 를 위한 80/tcp), 상태 (open은 접근 가능함을 의미), 그리고 관련 서비스가 나열됩니다. 이 정보는 시스템에서 어떤 서비스가 실행 중인지 이해하는 데 필수적입니다. localhost를 스캔함으로써 안전하게 nmap 사용법을 연습했으며, 이는 향후 단계에서 더 고급 네트워크 정찰 작업을 수행하기 위한 준비 과정입니다.

웹 취약점 점검을 위한 Nikto 설치 및 스캔

nmap을 통한 네트워크 스캔 기술을 바탕으로, 이번 단계에서는 웹 서버의 취약점과 설정 오류를 식별하는 도구인 nikto를 소개합니다. 이는 웹 보안 테스트의 핵심적인 부분입니다.

nikto는 오래된 소프트웨어, 보안에 취약한 파일 및 기타 잠재적인 보안 결함과 같은 알려진 문제들을 웹 서버에서 확인하는 오픈 소스 도구입니다. 보안 전문가들이 웹 애플리케이션의 보안성을 평가하기 위해 널리 사용합니다.

먼저 Kali Linux 컨테이너에 nikto가 설치되어 있는지 확인합니다. 터미널에 다음 명령을 입력하고 Enter 를 눌러 설치합니다.

apt install -y nikto

설치가 완료될 때까지 기다리십시오. 몇 초 정도 소요됩니다. 설치가 완료되면 nikto의 기능을 확인하기 위해 localhost를 안전한 대상으로 스캔해 보겠습니다. 만약 localhost에서 실행 중인 웹 서버가 없더라도, 도구가 어떻게 연결을 시도하는지 보여주므로 학습에 도움이 됩니다. 다음 명령을 입력하고 Enter 를 누르세요.

nikto -h localhost

-h 옵션은 스캔할 호스트를 지정하며, 이 경우 localhost의 기본 웹 서버 포트 (보통 80) 를 대상으로 합니다.

예상 출력 결과 (예시이며 실제 출력은 다를 수 있음):

- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        80
---------------------------------------------------------------------------
+ End Time:           ...
---------------------------------------------------------------------------

이 출력은 niktolocalhost의 웹 서버에 연결을 시도하는 모습을 보여줍니다. 서버가 실행 중이지 않으면 위와 같이 연결할 수 없다는 보고를 합니다. 서버가 활성화되어 있다면 잠재적인 취약점이나 설정 오류 목록을 표시했을 것입니다. 이 단계는 웹 애플리케이션의 보안 약점을 식별하는 핵심 기술인 nikto 사용법을 이해하는 데 도움을 줍니다.

man 페이지를 통한 도구 문서 확인하기

nmapnikto 같은 도구들을 사용해 보았으니, 이제 더 깊이 있는 학습을 위해 해당 도구들의 문서에 접근하는 방법을 아는 것이 중요합니다. 이 단계에서는 man 페이지를 사용하여 Kali Linux 의 명령과 도구에 대한 상세 정보를 탐색하는 방법을 배웁니다.

manual pages 의 약자인 man 페이지는 대부분의 Linux 도구와 명령에 대한 포괄적인 가이드입니다. 상세한 설명, 옵션, 예시 및 사용 지침을 제공하므로 도구를 효과적으로 이해하고 사용하는 데 매우 유용합니다.

man이 설치되어 있지 않다면 먼저 설치합니다.

apt install -y man

예시로 nmapman 페이지에 접속해 보겠습니다. 터미널에 다음 명령을 입력하고 Enter 를 누르세요.

man nmap

그러면 less와 같은 페이저 인터페이스에서 nmap의 매뉴얼 페이지가 열리며 상세 문서를 읽을 수 있습니다.

예상 출력 결과 (예시이며 실제 출력은 다를 수 있음):

NMAP(1)                          Nmap Reference Guide                         NMAP(1)

NAME
       nmap - Network exploration tool and security / port scanner

SYNOPSIS
       nmap [Scan Type...] [Options] {target specification}

DESCRIPTION
       Nmap ("Network Mapper") is an open source tool for network exploration and
       security auditing. It was designed to rapidly scan large networks, although
       it works fine against single hosts. Nmap uses raw IP packets in novel ways
       to determine what hosts are available on the network, what services (application name and version) those hosts are offering, what operating systems (and
       OS versions) they are running, what type of packet filters/firewalls are in
       use, and dozens of other characteristics.
...

위아래 화살표 키를 사용하여 문서를 탐색할 수 있습니다. 사용법, 옵션 및 예제 섹션을 확인할 수 있습니다. man 페이지를 종료하고 터미널 프롬프트로 돌아가려면 q를 누르세요.

man 페이지 사용법을 익히면 어떤 도구의 기능이든 스스로 탐색할 수 있는 능력을 갖추게 됩니다. 특히 보안 작업 중에 참조해야 할 수많은 옵션이 있는 Kali Linux 도구들을 다룰 때 매우 유용합니다.

Nmap 출력을 파일로 저장하기

마지막 단계에서는 나중에 참조할 수 있도록 명령의 출력을 파일로 저장하는 방법을 배웁니다. 이는 앞서 사용한 nmap 활용을 바탕으로 하며, 결과를 기록하는 데 필수적인 Linux 기술인 출력 리다이렉션 (redirection) 을 소개합니다.

Linux 의 출력 리다이렉션을 사용하면 명령 결과를 터미널에 표시하는 대신 파일에 저장할 수 있습니다. 이는 > 기호를 사용하여 수행하며, 지정된 파일에 출력을 기록합니다. 파일이 이미 존재하면 덮어씁니다.

localhost에 대해 다시 한번 nmap 스캔을 수행하고 그 결과를 nmap_scan.txt라는 파일에 저장해 보겠습니다. 터미널에 다음 명령을 입력하고 Enter 를 누르세요.

nmap localhost > /root/nmap_scan.txt

> 기호는 nmap localhost 명령의 출력을 /root/nmap_scan.txt 파일로 보냅니다. 결과가 파일에 저장되고 있기 때문에 터미널에는 스캔 결과가 나타나지 않습니다.

출력이 제대로 저장되었는지 확인하기 위해 다음 명령을 입력하고 Enter 를 눌러 파일 내용을 확인합니다.

cat /root/nmap_scan.txt

예상 출력 결과 (예시이며 실제 출력은 다를 수 있음):

Starting Nmap 7.91 ( https://nmap.org ) at ...
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
80/tcp   open  http
...
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

스캔 결과가 /root/nmap_scan.txt에 성공적으로 저장되었음을 확인할 수 있습니다. 출력을 파일로 저장하는 것은 모의 해킹 과정에서 발견한 내용을 문서화하는 실용적인 방법이며, 명령을 다시 실행할 필요 없이 나중에 결과를 검토하거나 공유할 수 있게 해줍니다.

요약

이 실습에서는 모의 해킹을 위한 Kali Linux 의 필수 보안 도구들을 탐색하고 사용하는 방법을 배웠습니다. dpkg -l을 통한 사전 설치 도구 확인부터 시작하여, msfconsole을 이용한 Metasploit 설치 및 실행, nmap을 이용한 네트워크 스캔, nikto를 이용한 웹 취약점 점검, man 페이지를 통한 도구 문서 확인, 그리고 명령 출력을 파일로 저장하는 방법까지 익혔습니다. 이러한 기초 기술은 통제된 환경 내에서 사이버 보안 및 네트워크 분석을 심화 학습하기 위한 견고한 토대가 될 것입니다.