네트워크 관리자들은 어떻게 1초 만에 수천 개의 포트를 검사할 수 있을까요? 그 방법들을 함께 알아보겠습니다.
네트워크 내 특정 IP 주소 또는 IP 주소 범위에서 어떤 포트가 사용 가능한지 어떻게 확인할 수 있을까요?
수동으로 확인하는 것은 엄청난 시간이 소요됩니다. 더 빠른 포트 스캔을 위해서는 도구를 사용하는 것이 현명합니다. 이전에 인터넷 연결 IP에서 포트를 스캔하는 방법에 대해 논의했었고, 이번에는 인트라넷 네트워크 스캔에 유용한 도구들을 살펴보겠습니다.
포트 스캐닝에는 TCP, FIN, ICMP, Idle, SYN, UDP, ACK, Windows 등 다양한 스캔 방식이 있습니다. 모든 스캐너가 이 모든 방식을 지원하는 것은 아니므로, 본인의 요구 사항에 맞는 도구를 선택해야 합니다.
자, 이제 다양한 포트 스캐너들을 소개합니다.
TCP 포트 스캐너
이름에서 알 수 있듯이, 이 스캐너는 TCP 포트만을 스캔할 수 있습니다.
TCP 포트 스캐너는 SYN 방식을 사용하여 초당 최대 10,000개의 포트를 스캔할 수 있으며, Windows 운영체제에서만 작동합니다.
Nmap (엔맵)
Nmap (Network Mapper)은 네트워크 관리자들이 애용하는 도구 중 하나입니다. Windows, Linux, macOS에 설치하거나 소스 코드를 통해 직접 빌드할 수 있습니다. Nmap이 포트 스캔 기능도 제공한다는 사실을 알고 계셨나요?
다음은 몇 가지 간단한 예시입니다.
빠른 모드로 포트를 스캔하려면 `nmap -F $IPADDRESS` 명령어를 사용할 수 있습니다.
[[email protected] ~]# nmap -F xx.xx.xx.xx Starting Nmap 5.51 ( http://nmap.org ) at 2019-03-19 07:36 UTC Nmap scan report for xx.xx.xx.com (xx.xx.xx.xx) Host is up (0.039s latency). Not shown: 95 filtered ports PORT STATE SERVICE 22/tcp closed ssh 80/tcp open http 443/tcp closed https 3389/tcp closed ms-term-serv 5656/tcp open abyss Nmap done: 1 IP address (1 host up) scanned in 1.93 seconds [[email protected] ~]#
포트를 연속적으로 스캔하려면 `-r` 옵션을 사용할 수 있습니다.
nmap -r $IPADDRESS
특정 범위의 포트를 스캔하려면 `-p` 옵션을 사용할 수 있습니다. 아래 예시는 80번 포트부터 444번 포트까지 스캔하는 방법을 보여줍니다.
[[email protected] ~]# nmap -p80-444 xx.xx.xx.xx Host is up (0.039s latency). Not shown: 363 filtered ports PORT STATE SERVICE 80/tcp open http 443/tcp closed https Nmap done: 1 IP address (1 host up) scanned in 3.03 seconds [[email protected] ~]#
Nmap은 강력한 오픈 소스 도구이며, 더 자세히 배우고 싶다면 Udemy에서 제공하는 Nmap 윤리적 해킹 과정을 참고하세요.
Netcat (넷캣)
넷캣은 다양한 기능을 갖춘 네트워크 디버깅 도구로, 포트 스캔 기능도 내장되어 있습니다. NetBSD, FreeBSD, Linux, macOS 등 다양한 운영체제에 설치할 수 있습니다.
Port Authority (포트 어소리티)
모바일 환경에서 포트 스캔을 하고 싶으신가요? Port Authority를 사용해 보세요. 이 앱은 네트워크 장치를 검색하고 IP 주소를 스캔하는 데 유용한 도구입니다.
위의 이미지에서 볼 수 있듯이, 잘 알려진 포트 또는 포트 범위를 선택하여 스캔할 수 있습니다. 무료로 사용할 수 있으며, 다음과 같은 작업에도 도움이 됩니다.
- IP 주소 검색
- SSH/HTTPS 지문 확인
- DNS 레코드 조회
Advanced Port Scanner (고급 포트 스캐너)
실행 중인 서비스와 함께 열린 포트를 확인할 수 있는 무료 스캐너입니다. Advanced Port Scanner는 멀티스레드 스캐너이므로 속도가 매우 빠릅니다.
GUI를 통해 원격으로 명령을 실행하는 기능도 제공합니다.
MiTeC Network Scanner
MiTeC은 IP, 포트, AD, NetBIOS, ICMP, SNMP 스캔 등 다양한 기능을 제공하는 고급 스캐너 도구입니다. Windows 32비트 또는 64비트 운영체제용으로 다운로드할 수 있습니다.
장치 목록을 가져와 결과를 CSV 형식으로 내보낼 수 있으며, TCP와 UDP 스캔을 모두 지원하고 Whois 검사 기능도 내장되어 있습니다.
PortQryUI
Microsoft에서 제공하는 Portqry 명령줄 도구를 보다 편리한 GUI 환경에서 사용할 수 있도록 만든 것이 바로 PortQryUI입니다. 명령줄에서 제공하는 모든 기능을 GUI로 제공하며, Windows 운영체제에서만 작동합니다.
NetScanTools
NetScanTools는 DNS, Ping, SNMP, Discovery, Whois, ARP, Traceroute 등 50개 이상의 도구를 포함하는 프리미엄 도구 상자입니다.
다음 5가지 유형의 포트 스캔을 지원합니다.
- TCP 전체 연결
- TCP SYN 반개방
- UDP ICMP
- TCP/UDP ICMP
- 기타 – SYN, URG, PSH, FIN, ACK, RST 조합
스캔 결과는 보기 좋은 보고서 차트로 표시됩니다.
Angry IP Scanner
Angry IP Scanner는 Linux, Windows, macOS X에서 사용할 수 있는 오픈 소스 네트워크 검색 도구입니다. IP 주소와 포트를 스캔하는 데 사용할 수 있습니다.
또한 NetBIOS 정보를 가져오고 즐겨 찾는 IP 주소를 검색하고 웹 서버를 검색하는 기능도 제공합니다.
스캔 결과는 CSV, TXT, XML 또는 IP:포트 목록 형식으로 저장할 수 있습니다.
Masscan
Nmap과 유사하게 작동하는 TCP 포트 스캐너입니다. MASSCAN은 5분 이내에 전체 인터넷을 스캔할 수 있다고 합니다.
주로 Linux용으로 만들어졌지만 Windows, Mac, FreeBSD 등에서도 실행할 수 있습니다.
자세한 내용은 GitHub 저장소를 참고하세요.
결론
위에 소개된 도구들이 여러분의 내부 네트워크 또는 공용 IP 포트 스캔에 도움이 되기를 바랍니다. 대부분 무료로 사용할 수 있으니 자신에게 가장 적합한 도구를 찾아보세요.