SNMP RCE
SNMP RCE
如果管理员忽视设备或服务器上SNMP的默认配置,攻击者可以利用SNMP。通过在Linux操作系统上滥用具有写权限(rwcommunity)的SNMP community,攻击者可以在服务器上执行命令。
使用附加命令扩展服务
要扩展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:
参考资料
最后更新于