티스토리 뷰

반응형

🍊 Netenum 개요

🍊 Netenum이란?

사용자에게 살아있는 호스트 목록을 매우 빠르게 보여주는 기본적인 Ping-Sweep 및 열거 도구

라고 되어있다.



즉 칼리 리눅스에서 제공하는 도구이며, 호스트 목록을 확인 가능하다.
Net"enum"이라는 이름에 걸맞게 열거 도구라는 정의를 가지고 있다.




🍊 Netenum의 필요성

만약 192.168.13.200이라는 IP address가 있다고 가정하자.
이 C클래스 IP 주소를 대상으로 포트 스캔을 한다고 하면,
192.168.13.~에서 존재할 수 있는 모든 IP를 대상으로 스캐닝하게 될 것이다.


실제로 사용되지도 않는 IP 주소에 대해 포트 스캔을 시도하는 것은 비효율적이다.
Netenum은 현재 사용중인 IP 주소만 필터링하는 기능이 있으므로,
먼저 Netenum을 통해 실사용 IP만 가려낸 후 포트 스캐닝을 진행하는 것이 훨씬 효율적이기에
Netenum이 필요한 것이라 할 수 있겠다.





🍍 IP 대상 확인

🍍 실습 환경

환경은 VMware Workstation 16 Player에서
칼리 리눅스 2019.1 버전을 사용하여 실습한다.




🍍 IP 대역 확인

먼저 metasploit framework에서 eth0의 inet 주소를 확인한다.


192.168.19.132로 확인된다.
이제 이 IP 대역으로 Netenum을 사용할 것이다.




🍍 명령어 입력

터미널을 열고, 자신의 IP 대역으로 테스트한다.
필자의 경우에는 netenum 192.168.19.132/24를 입력한다.
결과는 아래와 같이 모든 IP가 출력된다.





🍍 문제 해결

netenum 같은 경우에는, timeout이나 verbosity에 대한 옵션을 지정해주어야 한다.
옵션이 지정되어 있지 않은 경우에는,
내부의 time-sleep이 0인 것과 같게 간주되어
살아있는 호스트인지 판단을 하기도 전에 출력되는 것이다.


그러므로 netenum 192.168.19.132/24 10 0 명령어를 입력하여
해당 대역을 테스트하면서 timeout은 10으로, verbosity는 0(default)으로 지정하여
다시 명령하도록 하자.




🍍 사용중인 호스트 확인

지정한 timeout과 시간이 비슷하게 지나고 나면,
결과가 화면에 나타난다.
이 결과는 wireshark에서 ICMP 프로토콜을 사용하는 패킷으로도 확인할 수 있다.







🍐 자동화 스크립트 작성과 실행

다음으로는 파이썬 스크립트를 작성하여
다중 대역 IP가 있는 스크립트를 읽어
각각의 텍스트(.txt) 파일로 저장해본다.
스크립트는 다음과 같이 작성한다.




🍐 스크립트 작성


1
2
3
4
5
6
7
8
9
10
11
12
13
14
import os
import sys
import os.path
 
file = open("server.txt")
 
for line in file.readlines():
  print line
 
os.system('netenum ' + line[:-1+ ' 10 0 > ' + line[:-4] + '.txt')
 
  if not line:
    break
  pass 
cs




🍐 스크립트 설명

필자의 IP 대역에서 설명해보겠다.
server.txt라는 파일을 읽어서 한 줄씩 읽고,
시스템에 netenum 192.168.19.0/24 10 0 명령을 한 후
192.168.19.0.txt라는 이름의 파일을 만든다.
더 이상 읽을 라인이 없을 경우 반복문을 중단하며,
그렇지 않은 경우는 계속 반복한다.


즉 server.txt 파일에는 하나 또는 그 이상 개수의 IP 대역이 있을 수 있으며,
이것은 작성하기 나름이다.
그것들을 읽어서 살아있는 호스트를 확인하고
각각의 이름을 가진 텍스트 파일로 만든다는 것이다.


🧩 예를 들어, server.txt 파일의 내용이
192.168.19.0/24
192.168.13.0/24 라면,
1) netenum 192.168.19.0/24
를 실행하여 살아있는 호스트를
192.168.19.0.txt에 저장하고,
2) netenum 192.168.13.0/24
를 실행하여 살아있는 호스트를
192.168.13.0.txt에 저장하는 것이다.



🍐 server.txt 파일

server.txt 파일은 hfs로 윈도우에서 가져와도 되고,
cat > server.txt 명령어로 직접 작성해도 된다.


각 텍스트 파일 안에는 위에서 설명했듯,
살아있는 IP 주소를 찾고자 하는 IP 대역을 작성하면 된다.


터미널에서 python myNetenum.py 명령어로
파이썬 파일을 실행시켜보자.




🍐 실행 결과


🧶 1. 먼저, print line으로 인해 읽어들인 줄이 출력되었다.
고로 server.txt 파일에는 192.168.19.0/24가 저장되어 있었던 것이다.



🧶 2. 또한 myNetenum.py가 있는 경로에
192.168.19.0.txt 파일이 생성되었다.




🧶 3. 파일의 내용을 확인하면
살아있는 호스트의 IP 주소를 확인할 수 있다.





🥝 마무리

이 글에서는 터미널에서 직접 Netenum으로
살아있는 IP 대상을 확인하는 방법과
파이썬 스크립트를 사용하여
여러 대역의 IP들을 자동으로 명령어를 실행하는 방법을 알아보았다.


Netenum은 ping을 통해 ICMP 프로토콜로
해당 호스트가 사용중인지를 확인하는 것이라는 점을
잘 이해하고 있어야 한다.


🖐 ps. 코드 실행이 되지 않거나 잘 이해되지 않는 부분은
댓글로 남겨주시면 답변드리겠습니다.
같이 고민하고 공부합시다!
오늘도 읽어주셔서 감사합니다.



반응형
댓글
반응형
Recent Post.
Recent Reply.
Thanks for comming.
오늘은
명이 방문했어요
어제는
명이 방문했어요