테스트 환경 설정
이 단계에서는 은밀한 네트워크 감사를 위한 환경을 준비합니다. 스캐닝 대상으로 작동할 간단한 웹 서버를 설정할 것입니다. 이러한 제어된 대상은 실제 시스템에 영향을 주지 않고 은밀한 스캐닝 기술을 연습할 수 있도록 하는 데 필수적입니다.
먼저 터미널을 열어야 합니다. 터미널은 컴퓨터와 상호 작용하기 위해 명령어를 입력할 수 있는 명령줄 인터페이스와 같습니다. 터미널을 연 후 작업 공간으로 이동합니다. 작업 공간은 모든 프로젝트 관련 파일을 보관하는 특정 디렉토리입니다. 다음 명령어를 사용하여 작업 공간으로 이동합니다.
cd /home/labex/project
cd 명령어는 "디렉토리 변경"을 의미합니다. 시스템에 현재 위치에서 지정된 디렉토리 (/home/labex/project) 로 이동하도록 지시합니다.
이제 작업 공간에 있다면 stealth라는 새 디렉토리를 만듭니다. 디렉토리는 컴퓨터의 폴더와 같으며, 전용 디렉토리를 만드는 것은 작업을 정리하는 데 도움이 됩니다. 다음 명령어를 사용하여 디렉토리를 만듭니다.
mkdir -p /home/labex/project/stealth
mkdir 명령어는 새 디렉토리를 만드는 데 사용됩니다. -p 옵션은 경로에 중간 디렉토리가 존재하지 않으면 해당 디렉토리도 함께 생성하도록 합니다.
디렉토리를 만든 후에는 해당 디렉토리로 이동해야 합니다. 이렇게 하면 만드는 모든 파일이 stealth 디렉토리 내에 저장됩니다. cd 명령어를 다시 사용합니다.
cd /home/labex/project/stealth
다음으로 간단한 HTML 파일을 만듭니다. HTML(Hypertext Markup Language) 은 웹 페이지를 만드는 표준 언어입니다. 이 파일은 실제 웹 서비스를 시뮬레이션하는 웹 서버에서 제공될 것입니다. 다음 명령어를 사용하여 파일을 만듭니다.
echo "Robotics server running..." > index.html
echo 명령어는 "Robotics server running..."이라는 텍스트를 터미널에 출력합니다. > 기호는 출력을 리디렉션하여 index.html이라는 새 파일로 작성합니다.
이제 DNS 리졸버를 설정해야 합니다. DNS(Domain Name System) 는 인터넷의 전화번호부와 같습니다. 도메인 이름 (예: google.com) 을 IP 주소로 변환합니다. DNS 리졸버를 설정하면 시스템이 다른 네트워크에 제대로 연결될 수 있도록 합니다. 다음 명령어를 사용합니다.
sudo sh -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo 명령어는 특별한 권한이 필요한 작업을 수행하기 위한 관리자 권한을 부여합니다. sh -c는 쉘 명령어를 실행하는 데 사용됩니다. "nameserver 8.8.8.8"이라는 줄을 /etc/resolv.conf 파일에 작성합니다. 이 파일은 시스템이 DNS 구성을 저장하는 위치입니다.
마지막으로 nc(netcat) 명령어를 사용하여 간단한 웹 서버를 시작합니다. Netcat 은 다양한 작업에 사용될 수 있는 유연한 네트워킹 유틸리티로, 간단한 서버를 설정하는 데 사용할 수 있습니다. 이 서버는 포트 8080 에서 수신 대기하고 앞서 만든 HTML 파일을 제공합니다. 다음 명령어를 사용합니다.
nc -lvp 8080 < index.html &
이 명령어를 자세히 살펴보겠습니다.
nc는 네트워크 연결을 위한 netcat 유틸리티입니다. 서로 다른 네트워크 엔드포인트 간의 연결을 생성할 수 있습니다.
-l은 netcat 이 들어오는 연결을 수신 대기하도록 지시합니다. 다른 서버에 연결하려고 하기보다는 다른 시스템이 연결될 때까지 기다립니다.
-v는 자세한 출력을 활성화합니다. 즉, netcat 은 수행 중인 작업에 대한 자세한 정보를 제공합니다.
-p 8080은 수신 대기할 포트를 지정합니다. 포트는 컴퓨터의 문과 같으며, 이 경우 들어오는 연결을 위해 포트 8080 을 엽니다.
< index.html은 index.html의 내용을 모든 연결에 제공합니다. 클라이언트가 서버에 연결하면 index.html 파일의 내용을 수신합니다.
&는 프로세스를 백그라운드에서 실행합니다. 이렇게 하면 서버가 실행되는 동안 다른 명령어를 실행하기 위해 터미널을 계속 사용할 수 있습니다.
명령어를 실행한 후 서버가 포트 8080 에서 수신 대기 중임을 나타내는 출력이 표시되어야 합니다.
Listening on 0.0.0.0 8080
이제 포트 8080 에서 실행 중인 웹 서버가 은밀한 스캐닝 연습의 대상으로 작동합니다.