[네트워크] 컴퓨터 네트워크

[네트워크] SNMP_2 (실습)

ITsubin 2022. 9. 16. 23:03

실습 환경은 아래와 같이 세팅하겠습니다.

공격자 Ubuntu Desktop (Ubuntu 20.04.4 LTS)
공격 대상 Windows Server 2012 (R2)
사용 프로그램 snmpwalk

1) SNMP 설치

Windows Server 2012에 SNMP를 설치하겠습니다.

Server Manager의 Manage탭에 "Add Roles and Features"를 클릭합니다.

 

Features 탭에서 "SNMP Service"를 찾아 체크 후 install 버튼을 눌러 설치해줍니다.

 

Server Manager의 Tools탭에 있는 "Services" 에서 SNMP가 구동 중인 것을 확인할 수 있습니다.

 

2) SNMP Community String 설정

위의 창에서 SNMP Service 우클릭 => Properties 메뉴를 선택합니다.

(Server Manager => Tools => Services => SNMP Service 우클릭 => Properties)

 

Security 탭에서 Add... 클릭 후 커뮤니티 이름을 "public"으로 설정 후 추가하겠습니다.

 

추가 후 아래의 라디오 박스는 "Accept SNMP packets from any host" 를 체크합니다.

( 장치를 쿼리할 수 있는 Host 이름 또는 IP 주소를 입력하여 클라이언트를 지정할 시 아래의 라디오박스를 체크합니다. )

 

3) snmpwalk 설치 및 스캐닝

snmpwalk를 설치하기 위해 공격자인 우분투 데스크탑으로 돌아와서 snmp를 설치합니다.

sudo apt-get install snmp

 

설치 후 포트가 열려있는지 확인해야 합니다.

SNMP는 UDP 161번 포트를 사용하기 때문에, 아래의 명령으로 스캔합니다.

nmap -sU -p 161 192.168.0.1

 

( nmap에서 brute force 공격을 도와주는 Script를 사용하여 해당 Community String을 알아낼 수 있습니다. )

nmap -sU -p 161 --script=snmp-brute 192.168.0.1

 

snmpwalk로 스캔을 하려면 아래와 같이 명령을 사용합니다.

snmpwalk -v 1 -c public 192.168.0.1 1.3.6.1.2.1.1

 

( -v 옵션  :  Version

  -c 옵션  :  Community String

  1.3.6.1.2.1.1  :  MIB 정보 )

 

Timeout: No Response from 192.168.0.1

 

위와 같은 오류가 뜨는 경우, 아래와 같이 localhost나 loopback으로 바꿔서 테스트해보시길 권장합니다.

snmpwalk -v 1 -c public localhost 1.3.6.1.2.1.1

snmpwalk -v 1 -c public loopback 1.3.6.1.2.1.1

 

( 오류가 뜨는 이유는 192.168.0.1에서 161번 포트를 LISTEN하지 않아서 생긴 문제같습니다. 

  정확한 이유를 아시는 분이나 해결법을 아시는 분은 댓글로 부탁드립니다. )

root@ubuntu:/# sudo netstat -ltup | grep 161
root@ubuntu:/#