SNMP RCE
SNMP RCE
如果管理员忽视设备或服务器上的默认配置,攻击者可以利用SNMP。通过在Linux操作系统上滥用具有写权限的SNMP社区(rwcommunity),攻击者可以在服务器上执行命令。
使用附加命令扩展服务
要扩展SNMP服务并添加额外命令,可以将新行附加到“nsExtendObjects”表。这可以通过使用snmpset
命令并提供必要的参数来实现,包括可执行文件的绝对路径和要执行的命令:
注入命令以执行
向 SNMP 服务注入命令需要被调用的二进制文件/脚本的存在和可执行性。NET-SNMP-EXTEND-MIB
要求提供可执行文件的绝对路径。
要确认注入命令的执行,可以使用 snmpwalk
命令枚举 SNMP 服务。输出将显示命令及其相关细节,包括绝对路径:
运行注入的命令
当注入的命令被读取时,它会被执行。这种行为被称为**run-on-read()
**。可以在snmpwalk读取期间观察到命令的执行。
使用SNMP获取服务器Shell
要控制服务器并获得服务器Shell,可以使用mxrch开发的python脚本,地址为https://github.com/mxrch/snmp-shell.git。
或者,可以通过将特定命令注入SNMP手动创建反向Shell。这个命令由snmpwalk触发,建立与攻击者机器的反向Shell连接,从而实现对受害者机器的控制。您可以安装运行此所需的先决条件:
或反向 shell:
参考文献
Last updated