南通网站建设.,新浪云 wordpress 主题,wordpress最新文章加图标,wordpress后台登陆太慢添加Python模块
Python 有一个专门用于安装和管理 Python 包的包管理器#xff0c;称为 pip#xff08;Pip Installs Packages#xff09;。由于我们在这里使用 Python 3#xff0c;因此您将需要 Python 3 的 pip 来下载和安装软件包。默认情况下应包含 Pip#xff0c;但…添加Python模块
Python 有一个专门用于安装和管理 Python 包的包管理器称为 pipPip Installs Packages。由于我们在这里使用 Python 3因此您将需要 Python 3 的 pip 来下载和安装软件包。默认情况下应包含 Pip但如果需要可以输入以下命令从存储库下载并安装 pipapt-get install python3-pip
现在要从 PyPI 下载模块您只需输入pip3 install 功能包名
当您下载这些包时它们会自动放置在 /usr/local//lib/python-version/dist-packages 目录中。如果您不确定软件包在系统上的位置有时不同的 Linux 发行版使用不同的目录您可以输入 pip3后跟 show 和软件包名称如下所示pip3 show 功能包名
作为使用 pip 的替代方法您可以直接从站点下载软件包确保下载到正确的目录解压它然后进入对应目录运行以下命令python3 setup.py install这将安装尚未安装的解压包。
安装第三方模块
要安装由 Python 社区的其他成员创建的第三方模块而不是官方发布的 Python 包您只需使用 wget 从在线存储的任何位置下载它解压缩该模块进入该模块目录然后运行 python setup.py install命令。
开始使用 Python 编写脚本
变量
变量是编程中最基本的数据类型之一。 简单来说变量是与特定值关联的名称这样每当您在程序中使用该名称时它就会调用关联的值。
它的工作方式是变量名指向存储在内存位置的数据该数据可能包含任何类型的值例如整数、实数、字符串、浮点数、布尔值真或假陈述、列表、 或字典。
为了熟悉基础知识我们创建一个简单的脚本并将其保存为 hackers-arise_greetings.py。
#! /usr/bin/python3
nameOccupyTheWeb
print(Greetings to name from Hackers-Arise. The Best Place to Learn Hacking!)第一行只是告诉你的系统你希望它使用Python解释器来运行这个程序而不是任何其他语言。 第二行定义一个名为 name 的变量并为其分配一个值在本例中为“OccupyTheWeb”。 您应该将此值更改为您自己的名字。 该变量的值采用字符串字符数据格式这意味着内容用引号引起来并被视为文本。 您也可以将数字放入字符串中它们将被视为文本因为您将无法在数值计算中使用它们。
第三行创建一个 print() 语句将 Greetings 与 name 变量中的值连接起来后跟 Hackers-Arise 中的文本。 print() 语句将在屏幕上的括号内显示您传递给它的任何内容。
现在在运行此脚本之前您需要授予自己执行它的权限。 我们需要 chmod 命令来做到这一点。chmod 755 hackers-arise_greetings.py
要运行此脚本请输入以下内容./hackers-arise_greetings.py
注释
解释器会忽略注释。 这意味着解释器会跳过任何指定为注释的行解释器会继续执行直到遇到合法的代码行。 Python 使用 # 符号来指定单行注释的开始。 如果要编写多行注释可以在注释部分的开头和结尾使用三个双引号 ()。
函数
Python 中的函数是执行特定操作的代码段。 例如您之前使用的 print() 语句是一个显示您传递给它的任何值的函数。Python 有许多可以立即导入和使用的内置函数。 其中大多数可以在 Kali Linux 中默认安装的 Python 中使用但还有更多可以从可下载的库中获取。 让我们看一下您可以使用的数千个功能中的几个
exit() – 退出程序。float() – 以浮点数形式返回其参数。help() – 显示有关其参数指定的对象的帮助。int() – 返回其参数的整数部分截断。len() – 返回列表或字典中的元素数量。max() – 返回其参数列表中的最大值。open() – 以参数指定的模式打开文件。range() – 返回由其参数指定的两个值之间的整数列表。sorted() – 接受一个列表作为参数并按顺序返回它及其元素。type() – 返回其参数的类型例如int、文件、方法、函数。
列表
Python 中的列表是可迭代的这意味着当您一直运行列表时列表可以提供连续的元素。
模块
模块只是保存到单独文件中的一段代码您可以在程序中根据需要多次使用它而无需再次将其全部键入。 如果您想使用模块或模块中的任何代码则需要导入它。 如前所述使用标准和第三方模块是 Python 强大的关键功能之一。 如果我们想使用之前安装的模块我们可以将以下行添加到脚本中import 模块名
面向对象编程OOP
下图显示了 OOP 背后的基本概念该语言的主要工具是对象它具有属性和状态形式的属性以及由对象执行或在对象上执行的操作的方法。 Python 中的网络通信
构建 TCP 客户端
我们将使用套接字模块在 Python 中创建网络连接。 Python 附带了一个用于多种任务的模块库。 在这种情况下我们需要套接字模块来创建 TCP 连接。 让我们看看它的实际效果。
#! /usr/bin/python3
import socket
s socket.socket()
s.connect((127.0.0.1, 22))
answer s.recv(1024)
print(answer)
s.close()首先我们导入套接字模块以便我们可以使用它的功能和工具。 在这里我们将使用套接字模块中的网络工具来为我们处理网络连接。 套接字为两个计算机节点提供了一种相互通信的方式。 通常一个是服务器一个是客户端。
然后我们创建一个名为 s 的新对象从套接字模块的套接字类实例化。这样我们现在可以使用该对象执行进一步的操作例如连接和读取数据。
然后我们使用套接字模块中的 connect() 方法来建立到特殊 IP 和端口的网络连接。 请记住方法是可用于特定对象的函数。
这里我们使用接收方法recv从套接字读取1024字节的数据并将它们存储在名为answer的变量中这 1024 字节将包含横幅信息。 然后我们使用 print() 函数将该变量的内容打印到屏幕上以查看通过该套接字传递了哪些数据从而使我们能够监视它 在最后一行我们关闭连接。
创建 TCP 监听器
下面所示的 Python 脚本中您将在系统的任何端口上创建一个套接字当有人连接到该套接字时该套接字会收集有关连接器系统的关键信息。 输入脚本并将其保存为 tcp_server.py。 确保使用 chmod 授予自己执行权限。
#! /usr/bin/python3
import socket
TCP_IP 192.168.181.190
TCP_PORT 6996
BUFFER_SIZE 100s socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)conn, addr s.accept()
print(Connection address: , addr )while True:dataconn.recv(BUFFER_SIZE)if not data:breakprint(Received data: , data)conn.send(data) #echo
conn.close()我们声明我们希望脚本使用 Python 解释器运行然后像以前一样导入套接字模块这样我们就可以使用它的功能。 然后我们定义变量来保存 TCP/IP 地址、要侦听的端口以及我们想要从连接系统捕获的数据的缓冲区大小的信息。
我们定义套接字并使用刚刚创建的变量将套接字绑定到 IP 地址和端口。 我们使用套接字库中的listen()方法告诉套接字进行监听。
然后我们使用套接字库的accept方法捕获连接系统的IP地址和端口并将该信息打印到屏幕上以便用户可以看到它。 注意这里的 while True: 语法
最后我们将来自连接系统的信息放入缓冲区打印它然后关闭连接。
字典、循环和控制语句
字典
字典以无序对的形式保存信息其中每对都包含一个键和一个关联的值。 我们可以使用字典来存储项目列表并给每个项目一个标签以便我们可以单独使用和引用该项目。 例如我们可以使用字典来存储用户 ID 及其关联名称或者存储与特定主机关联的已知漏洞。 Python 中的字典就像其他语言中的关联数组。
与列表一样字典是可迭代的这意味着我们使用控制结构例如 for 语句来遍历整个字典将字典的每个元素分配给一个变量直到到达字典的末尾。
创建字典的语法如下dict {key1:value1, key2:value2, key3:value3...}
请注意对于字典您可以使用大括号并用逗号分隔项目。 您可以包含任意数量的键值对。
控制语句
控制语句允许您的代码根据某些条件做出决策。 Python 中有多种方法可以控制脚本的流程。 让我们看看 Python 中的一些结构。
if 语句
Python 中的 if 结构与包括 bash 在内的许多其他编程语言一样用于检查条件是否为真并为每个场景运行不同的代码集。 语法如下
if conditional expression:run this code if the expression is true在 Python 中引入控制块的行必须以冒号结尾并且控制块必须缩进。 这个缩进向解释器标识了控制块。 下一个未缩进的语句位于控制块之外因此不是 if 语句的一部分这就是 Python 在不满足条件时知道跳到哪里的方式。
if…else
if conditional expression: *** # run this code when the condition is met
else: *** # run this code when the condition is not met循环
循环是 Python 中另一个非常有用的结构。 循环使程序员能够根据值或条件多次重复代码块。 两种循环是 while 和 for。
while 循环
while 循环计算布尔表达式只能计算为 true 或 false 的表达式并在表达式计算为 true 时继续执行。 例如我们可以创建一个代码片段打印从 1 到 10 的每个数字然后退出循环如下所示
count 1
while (count 10): print(count) count 1for 循环
for 循环可以每次通过循环将列表、字符串、字典或其他可迭代结构中的值分配给索引变量从而允许我们逐个使用结构中的每一项。 例如我们可以使用 for 循环来尝试密码直到找到匹配项如下所示
for password in passwords: attempt connect(username, password) if attempt 230: print(Password found: password) sys.exit(0)