网络安全技术课件 第7章 Python渗透测试_第1页
网络安全技术课件 第7章 Python渗透测试_第2页
网络安全技术课件 第7章 Python渗透测试_第3页
网络安全技术课件 第7章 Python渗透测试_第4页
网络安全技术课件 第7章 Python渗透测试_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章Python渗透测试07本章内容01027.1Python编程基础7.2

用python调用Metasploit(ms17-010)00

7.3编码7.4用scapy模块实现网络攻击与防范017.1Python编程基础7.1.1基础语法7.1.3分支与循环7.1.2列表与字典7.1.4函数7.1.5模块7.1Python编程基础学习目标项目分析相关知识项目实例项目实施项目训练项目评价学习路径【学习目标】1.Python的版本查看。2.熟悉的基础语法。3.掌握Python的基本操作。7.1.1基础语法【项目分析】

网络安全光靠点鼠标一步步操作可不行,如果面对大量的重复运算以及需要自己构造数据包的时候,以点鼠标的方式基本上不能实现以上需求,所以需要用到Python语言是实现一些批量操作以及构造数据的处理操作。Python语言并不止用于此,其丰富的库给用户带来非常多便捷的体验。

本次任务需要从一个零开始的学习者,在KaliLinux上从打开Python的界面开始,到完成一些简单的定义变量,输入、输出参数,然后变成Python的执行文件再利用操作系统的命令行实现效果。7.1.1基础语法Python有几个显著的优点。一、它注重软件质量,拥有丰富的测试工具和强大的社区支持,有助于开发高质量的软件。二、Python的简洁语法和丰富的库使开发效率大幅提升,能够快速开发和迭代应用程序。三、Python的跨平台特性意味着几乎可以在任何操作系统上运行,极大地提升了程序的移植性和灵活性。什么是Python、为什么用Python?7.1.1基础语法【相关知识】

作为一个网络管理员以及安全渗透测试员的初期阶段,需要知道如何使用Python作为网络运维以及脚本编写,你必须要掌握如何正确地使用,才可以正确地利用Python编写程序。

这时候网络管理员需要掌握如何查看Python的版本,了解如何执行Python命令或者Python文件,以及定义变量、判断对错、引号、注释、输入、打印命令等基本语法。python基础入门7.1.1基础语法【项目实例】KaliLinux2020上查看Python版本号,并且打开Python3的界面。步骤一017.1.1基础语法【项目实施】Python基本用法进入Python3并且输出HelloWorld!步骤一017.1.1基础语法【项目实施】命令界面进行基础语法输入定义字符串与数值并且打印;打印混合的字符串与额外字符步骤二027.1.1基础语法【项目实施】命令界面进行基础语法输入Python的输入提示框步骤三037.1.1基础语法【项目实施】命令界面进行基础语法输入一行同时执行两段代码,用分号隔断步骤四047.1.1基础语法【项目实施】命令界面进行基础语法输入退出Python的交互界面步骤五057.1.1基础语法【项目实施】命令界面进行基础语法输入编写python脚本步骤一017.1.1基础语法【项目实施】利用Python的.py文件执行Python命令修改文件权限并运行步骤二027.1.1基础语法【项目实施】利用Python的.py文件执行Python命令根据项目实施的两个步骤,学习使用python填写以下训练项目名称或参数。7.1.1基础语法【项目训练】项目名称项目节点节点参数查看版本号1、查看python2的版本号

2、查看python3的版本号

命令界面基础语法1、输出HelloWorld!

2、定义字符串与数值并且打印

3、打印混合的字符串与额外字符

4、python的输入提示框

5、一行同时执行两段代码,用分号隔断python执行py文件1、在命令行中使用python3执行文件7.1.1基础语法【作业布置】1.根据任务实施的步骤,完成python的基础语法测试。2.利用.py文件的方式,实现输入字符的操作,并且输出所输入的字符。【学习目标】1.掌握列表的用法。2.掌握字典的操作。7.1.2列表与字典【项目分析】

目前在网络安全的领域中,网络安全工程师们往往会以列表或字典的形式存储大量序列中的字符,然后通过循环语句输出或者直接调用,这样一来即可快速地实现重复动作快速读取。

本阶段任务在KaliLinux上打开Python的交互界面,通过创建列表与字典的方式,去对比两者之间的不同以及实现列表与字典的效果。7.1.2列表与字典

列表和字典是Python中两种常用的数据结构。列表是有序的集合,使用方括号[]定义,可以存储任意类型的数据,通过索引访问元素。字典是一种键-值对的无序集合,使用花括号{}定义,每个键值对之间用逗号分隔,可以通过键来快速访问值。列表适合存储有序的项目集合,而字典适合存储键值关系的数据。列表与字典7.1.2列表与字典【相关知识】

作为一个网络管理员以及安全渗透测试员的初期阶段,需要知道如何使用Python作为网络运维以及脚本编写,你必须要掌握如何正确地使用,才可以正确地利用Python编写程序。

在前面的学习中,读者已经掌握了Python的基础语法与使用方式。现在需要通过列表或者字典的方式,为日后的循环语句创造一个良好的环境。列表与字典7.1.2列表与字典【项目实例】创建一个包含了几个值的列表listtest步骤一017.1.2列表与字典【项目实施】创建与修改列表打印列表的第一个值和第一个到第三个的值步骤二027.1.2列表与字典【项目实施】创建与修改列表修改列表第二个值与插入一个新的值步骤三037.1.2列表与字典【项目实施】创建与修改列表删除列表的第一个值(aa)步骤四047.1.2列表与字典【项目实施】创建与修改列表创建一个包含三个键值的字典,其中一个值为空步骤一017.1.2列表与字典【项目实施】创建与修改字典修改第二个键值的值步骤二027.1.2列表与字典【项目实施】创建与修改字典根据项目实施的两个步骤,学习使用列表与字典填写以下训练项目名称或参数。7.1.2列表与字典【项目训练】项目名称项目节点节点参数创建与修改列表1、创建一个包含了几个值的列表listtest

2、打印列表的第一个值和第一到第三个值

3、修改列表第二个值与插入一个新的值4、删除列表的第一个值创建与修改字典1、创建一个包含三个键值的字典,其中一个值为空2、修改第二个键值的值为37.1.2列表与字典【作业布置】1.根据任务实施的步骤,完成列表与字典的测试。2.创建一个名为list1的列表,对列表添加10个内容,并且输出第1到第6个的内容。【学习目标】1.掌握分支语句的用法。2.掌握for循环语句。3.掌握while循环语句。7.1.3分支与循环【项目分析】

在写Python程序的过程中,程序编写者往往会发现如果顺序执行的时候,程序没有问题,一旦出现条件判断时,则需要通过分支语句进行程序的分别执行。而往往遇到繁琐重复的情况下,其不断重复的过程也是相当于多了很多不必要的代码,因此出现了循环语句。7.1.3分支与循环

分支语句(if语句)根据条件表达式的真假来执行不同的代码分支,这使得程序可以根据不同的情况采取不同的行动。在Python中,if语句通常会与else或者elif(elseif的缩写)结合使用,以覆盖多个条件。

循环结构则允许程序重复执行特定的代码块,直到满足退出条件为止。for循环用于遍历可迭代对象中的元素,而while循环则基于条件判断来决定是否继续执行循环体内的代码。使用if语句判断范围7.1.3分支与循环【相关知识】

网络管理员为了方便批量管理机房,为节省时间,需要用到分支语句判定IP地址数是否超出默认地址范围,假设第一间机房以/24开始,第二间机房为/24,以此类推,一共有十间机房,管理员需要单独针对某间机房进行配置更改,通过分支语句,判断管理员输入的数字是否超出机房IP号,并且通过循环语句,首先判断要对从第一台主机开始到某一台主机结束,如果超出可用地址范围,则重新输入,最后打印该机房需要被更改配置的IP地址。ip判断7.1.3分支与循环【项目实例】定义输入变量步骤一017.1.3分支与循环【项目实施】使用if语句判断范围编写分支语句步骤二027.1.3分支与循环【项目实施】使用if语句判断范围执行程序测试步骤三037.1.3分支与循环【项目实施】使用if语句判断范围创建while循环判断循环是否结束步骤一017.1.3分支与循环【项目实施】通过循环语句输出需要被更改配置的IP地址建立实训室IP地址的输出循环步骤二027.1.3分支与循环【项目实施】通过循环语句输出需要被更改配置的IP地址程序输出结果步骤三037.1.3分支与循环【项目实施】通过循环语句输出需要被更改配置的IP地址根据项目实施的两个步骤,学习使用分支和循环填写以下训练项目名称或参数。7.1.3分支与循环【项目训练】项目名称项目节点节点参数使用if语句1、定义输入变量

2、编写分支语句编写分支语句

通过循环语句输出需要被更改配置的IP地址1、创建while循环判断循环是否结束

2、建立实训室IP地址的输出循环

3、程序输出结果

学生自评01学生互评027.1.3分支与循环【项目评价】7.1.3分支与循环【作业布置】1.根据任务实施的步骤,完成python的分支与循环的学习。2.使用input函数输入两个数字,使用if语句比大小后,输出大的数字。3.使用for循环,输出/16网段的所有地址。4.使用while循环,输出所输入的值,直到输入999循环结束。【学习目标】1.熟悉函数的构造。2.掌握编写以及调用函数的方法。7.1.4函数【项目分析】

在程序的编写当中,程序员设计师所接触的程序场景过多,往往会出现大部分相似的场景,程序当中的一些参数可能会出现变化,但本质上是可以通过过往所编写的程序执行,只是参数的不同导致同一个程序需要部分修改后才能运行。

为了解决这一事情,利用程序语言中Python语言中函数的方式去解决不同参数引起的问题。即程序的执行方法一致,所需要的参数需要外部程序进行传输,通过外部参数替代函数内部的空缺参数执行函数的完整过程,之后将函数的执行结果返回到外部程序,完成函数的调用。7.1.4函数

函数是已经预先写好,并且可以被重复调用的代码。函数分为Python内置的与使用者自定义的函数。

自定义函数以def为关键字开头,在关键字后利用函数名称作为函数标识,注意函数名称不能与其他函数名称重复!在函数名称后有一对圆括号,圆括号内部是该函数的参数,函数的参数可以从外部传入,也可以自定义参数,圆括号后接冒号,以冒号为函数的开始。什么是函数7.1.4函数【相关知识】

最近网络安全测试员小温在程序编写的时候发现经常写重复的程序,但是之前的程序又与现在任务的程序不匹配,小温同学想到利用Python函数的方式,为之前做的批量输出机房IP地址的程序可以直接被其他Python程序作为程序调用那些输出的IP地址,这样的话就可以简单快捷地管理整个网络。函数的编写7.1.4函数【项目实例】定义函数名为iproom步骤一017.1.4函数【项目实施】编写好后端的机房IP函数将7.1.3章节的机房IP输出程序转化为可调用的函数步骤二027.1.4函数【项目实施】编写好后端的机房IP函数测试步骤三037.1.4函数【项目实施】编写好后端的机房IP函数根据项目实施的两个步骤,学习使用函数。填写以下训练项目名称或参数。7.1.4函数【项目训练】项目名称项目节点节点参数函数1、定义函数名为iproom

2、将7.1.3章节的机房IP输出程序转化为可调用的函数

7.1.4函数【作业布置】1.根据任务实施的步骤,完成python的函数学习。2.尝试编辑一个有关于加法的函数。【学习目标】1.了解模块的概念。2.掌握os、hashlib的概念与用法。7.1.5模块【项目分析】

在Python语言中,Python解释器已经内置了非常多的模块,而我们作为网络安全方面的使用者,应该了解什么是对于网络安全方面来说,什么是经常使用的模块,而后把经常会使用到的模块深入学习,了解其内部的功能以及实现方式。7.1.5模块

其实Python模块分为四种形式,一种是已经编写好的.py结尾的文件,我们在第四节学习的函数,其实也是模块的一种,也就是说,一个py的文件也可以叫做是一个Python模块。与之一样的,还有已经被编译好的C++扩展或者是DLL库,也可以是一个模块。模块可以让用户更加简洁的组织Python程序的编写,但是自定义的模块不可以与内置模块的名称相同。什么是Python的模块?7.1.5模块【相关知识】

网络安全工程师打算利用Python的OS模块对本终端(KaliLinux)进行简单的程序测试,查看/root目录下的文件,并且利用hashlib模块,将/etc/hosts文件的内容进行加密处理。模块使用7.1.5模块【项目实例】定义py文件modtest.py以及引入os模块步骤一017.1.5模块【项目实施】使用OS模块编写程序复制以及查看文件的代码利用os模块读取/root目录下的文件步骤二027.1.5模块【项目实施】使用OS模块编写程序复制以及查看文件的代码测试读取程序步骤三037.1.5模块【项目实施】使用OS模块编写程序复制以及查看文件的代码在modtest.py中引入hashlib模块步骤一017.1.5模块【项目实施】利用hashlib加密文件的内容测试加密/etc/host文件的内容步骤一二027.1.5模块【项目实施】利用hashlib加密文件的内容根据项目实施的两个步骤,学习使用模块。填写以下训练项目名称或参数。7.1.5模块【项目训练】项目名称项目节点节点参数使用OS模块编写程序复制以及查看文件的代码1、定义py文件modtest.py以及引入os模块

2、利用os模块读取/root目录下的文件

利用hashlib加密文件的内容1、在modtest.py中引入hashlib模块7.1.5模块【作业布置】1.根据任务实施的步骤,完成python的模块内容学习。2.利用Python的hashlib模块对/etc/passwd文件进行加密。3.利用Python的OS模块读取/etc目录下的所有文件,并将该文件名存在列表list1中。017.2用python调用Metasploit(ms17-010)【学习目标】1.掌握python调用Metasploit(MS17010)的程序编写。7.2用python调用Metasploit【项目分析】

通过之前的学习,已经基本掌握了整个Python语言的编写,现在结合更前面章节内容,联动Python,实现通过Python程序调用Metasploit里面的MS17010模块,对模拟靶机实行渗透测试。7.2用python调用Metasploit

通过Python语言的编写,实现调用Metasploit里面的所有工具,从而使得不管是不是MS17010,都可以通过Python程序进行调用。python结合工具7.2用python调用Metasploit【相关知识】

网络安全工程师小温接到一个模拟渗透测试的任务,由于msf操作步骤多,故此想通过Python的方式调用Metasploit的内部模块,从而实现利用程序进行渗透测试。渗透测试7.2用python调用Metasploit【项目实例】使用Python调用Metasploit所需要用到的变量步骤一017.2用python调用Metasploit【项目实施】使用Python调用Metasploit将Metasploit里面的MS17-010漏洞进行调用步骤一017.2用python调用Metasploit【项目实施】将Metasploit里面的MS17-010漏洞进行调用并且测试结果对靶机28进行测试步骤二027.2用python调用Metasploit【项目实施】将Metasploit里面的MS17-010漏洞进行调用并且测试结果根据项目实施的两个步骤,学习使用python调用msf填写以下训练项目名称或参数。7.2用python调用Metasploit【项目训练】项目名称项目节点节点参数使用Python调用Metasploit号1、使用Python调用Metasploit所需要用到的变量

将Metasploit里面的MS17010漏洞进行调用并且测试结果1、将Metasploit里面的MS17010漏洞进行调用

2、对靶机进行测试

7.2用python调用Metasploit【作业布置】1.根据任务实施的步骤,完成用python调用Metasploit(MS17010)。037.3编码7.3.1url编码7.3.2Base64编码7.3.1url编码学习目标项目分析相关知识项目实例项目实施项目训练项目评价学习路径【学习目标】1、了解url编码的作用2、掌握使用Python对url编码与解码的能力。7.3.1url编码【项目分析】url编码是浏览器用来打包数据的表单输入的格式,有一些url编码是不能直接传送到服务器中的,需要移除那些不能传送的字符,并且重新对那些字符进行编码,作为url的一部分发送给服务器。7.3.1url编码URL编码在日常生活中比较少的运营到,大部分浏览器都会将输入到地址栏的非数字字母自动转换为url编码。但是现在SQL注入是一种主流攻击渗透技术,所以可以利用url编码进行编写防止SQL注入的脚本。url编码的作用7.3.1url编码【相关知识】网络安全工程师小温想使用对浏览器的url实现编码技术,并且同时进行解压,以实现对浏览器的安全传输加固测试。url编码的应用7.3.1url编码【项目实例】引入url相关模块并且定义变量步骤一017.3.1url编码【项目实施】使用Python进行url编码对输入的URL进行编码步骤二027.3.1url编码【项目实施】使用Python进行url编码测试url编码效果步骤三037.3.1url编码【项目实施】使用Python进行url编码引入模块并定义获取URL编码的变量步骤一017.3.1url编码【项目实施】使用Python对已经进行url编码的字段进行解码对变量获取的url编码进行解码步骤二027.3.1url编码【项目实施】使用Python对已经进行url编码的字段进行解码测试步骤一的编码是否能够解码成功步骤三037.3.1url编码【项目实施】使用Python对已经进行url编码的字段进行解码根据项目实施的两个步骤,学习使用crunch生成制定规则密码字典。填写以下训练项目名称或参数。7.3.1url编码【项目训练】项目名称项目节点节点参数url编码与解码1、完成用python进行url编码

2、完成用python进行url解码

url链接进行编码与解码1、对任意一个网站的url链接进行编码测试

2、对任意一个网站的url链接进行解码测试

7.3.1url编码【作业布置】思考题:url编码如何能够防止SQL注入呢?【学习目标】1、掌握使用Python对Base64编码的能力。2、掌握使用Python对Base64解码的能力。7.3.2Base64编码【项目分析】

在计算机字节组合当中,ascii码存在比较多的不可见字符。在网络进行ascii码的数据传输时,有可能会经过某些网络设备,每个网络设备对字符的处理上不一定都是相同的,有些网络设备对基于ascii码的不可见字符可能会进行特殊处理,造成数据结构丢失,使得数据传输失败。而Base64编码则可以将所有字符转化为可见字符,这样子就杜绝了许多因字符编码问题而造成的传输失败。7.3.2Base64编码Base64编码可以在网络传输的环境中传送长度较长的标志信息。例如用传递HTTP的表单参数。并且,在某些应用程序当中,也会将一些数据转换为base64。Base64编码不仅比较简短,同时也具有不可读性,也就是说编码的内容即使被人看到也不能看出里面传递的数据是什么,需要解码后才能正常阅读。Base647.3.2Base64编码【相关知识】网络安全工程师小温想使用Base64编码对数据进行混淆,之后再进行解码获取原来的数据。Base64编码与解码7.3.2Base64编码【项目实例】引入base64相关模块并且定义变量步骤一017.3.2Base64编码【项目实施】使用Python进行Base64编码对输入的数据进行编码步骤二027.3.2Base64编码【项目实施】使用Python进行Base64编码测试Base64编码效果步骤三037.3.2Base64编码【项目实施】使用Python进行Base64编码引入模块并定义获取Base64解码的变量步骤一017.3.2Base64编码【项目实施】使用Python对已经进行Base64编码的字段进行解码对变量获取的Base64编码进行解码步骤二027.3.2Base64编码【项目实施】使用Python对已经进行Base64编码的字段进行解码测试步骤一的编码是否能够解码成功步骤三037.3.2Base64编码【项目实施】使用Python对已经进行Base64编码的字段进行解码根据任务实施的步骤,完成用python进行base64编码与解码。填写以下训练项目名称或参数。7.3.2Base64编码【项目训练】项目名称项目节点节点参数base64编码与解码1、Base64编码的概念

2、对指定base64进行编码与解码

7.3.2Base64编码【作业布置】思考题:base64编码在传输过程中的报文是什么样子的呢?047.4用scapy模块实现网络攻击与防范7.4.1主机发现7.4.2端口开放状态【学习目标】1、了解icmp包的构造。2、掌握构造与发送icmp报文的方法。7.4.1主机发现【项目分析】

网络安全工程师一般在对某网段进行主机存活测试的项目中,会通过Python语言构造icmp报文,icmp报文其实就是ping命令所发送的报文,当范围内主机收到构造的报文并回复时,主机会回复icmp协议表示自己在线,如此一来,当构造的icmp报文收到响应结果的话,即代表目标存活。7.4.1主机发现Icmp报文的格式7.4.1主机发现【相关知识】网络安全工程师小温打算对公司的内部网络做一次主机存活检测,查看是否出现未知的主机出现在公司内部,小温设计通过Python的scapy模块进行icmp报文的狗仔,然后通过ICMP协议进行ping测试,看看当发送icmp报文后到有多少台主机收到并回复。icmp主机存活检测7.4.1主机发现【项目实例】引入scapy模块并构造IP地址表步骤一017.4.1主机发现【项目实施】导入模块并设置需要被检测的IP段构造虚假icmp报文步骤一017.4.1主

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论