
Net-SNMP의 extend 기능을 이용한 셸 시뮬레이션
다음은 미리 보기입니다 :

대상에 "extend" 기능이 있는 Net-SNMP 인스턴스가 있고, 쓰기 액세스 권한을 제공하는 SNMP 커뮤니티 문자열을 확보했다면, 이 도구를 사용하여 SNMP RCE로 명령 전송 과정을 자동화할 수 있습니다.
이 도구는 사용자를 자동으로 실제 셸을 시뮬레이션하는 경로로 안내합니다.
완전한 대화형 셸이 필요한 명령(MySQL, Vim, Nano 등)을 제외하고 상상할 수 있는 모든 명령을 사용할 수 있습니다.
Windows와 호환되지 않습니다. 죄송합니다.
sudo apt install snmp snmp-mibs-downloader rlwrap -y
git clone https://github.com/mxrch/snmp-shell
cd snmp-shell
sudo python3 -m pip install -r requirements.txt
$ rlwrap python shell.py <IP> -c <community string>
SSH 공개 키처럼 더 긴 문자열을 보내야 한다면 legacy.py 버전을 사용하세요.
전송할 수 있는 문자 수 제한이 짧습니다(SNMP 제한).
팁 : RSA가 아닌 ed25519 SSH 공개 키를 사용하세요. 더 짧습니다.
Usage: shell.py [OPTIONS] IP
Simulates a terminal over Net-SNMP "extend" functionality. Be sure your
SNMP Community String has write access.
Options:
-c, --communitystring TEXT Community string for SNMP
-v, --version TEXT SNMP version (1/2c/3)
-ss, --snmpset TEXT Path for the snmpset binary
-sw, --snmpwalk TEXT Path for the snmpwalk binary
-h, --help Show this message and exit.
https://mogwailabs.de/blog/2019/10/abusing-linux-snmp-for-rce/