如何看自己网站流量,梧州网站设计理念,wordpress 界面插件,河南省重点项目建设网站数据来源 Python 开发相关知识点#xff1a;
1.开发基础环境配置说明 Windows10Pycharm 2.Python 开发学习的意义 学习相关安全工具原理 掌握自定义工具及拓展开发解决实战中无工具或手工麻烦批量化等情况 在二次开发 Bypass#xff0c;日常任务#xff0c;批量测试利用…数据来源 Python 开发相关知识点
1.开发基础环境配置说明 Windows10Pycharm 2.Python 开发学习的意义 学习相关安全工具原理 掌握自定义工具及拓展开发解决实战中无工具或手工麻烦批量化等情况 在二次开发 Bypass日常任务批量测试利用等方面均有帮助 如SRC 批量收集并利用AWD 批量利用获取 FLAGCTF 加解密脚本等 3.本篇涉及的技术方向 Socket爬虫正则表达式框架开发等 演示案例
IPWhois系统指纹获取代码段-外网 CDN子域名端口扫描交互代码段-外网01 域名反查IP功能 import os
import socket#1、域名反查IP功能采用nslookup执行结果进行返回IP解析数目判断利用python去调用系统命令ip socket.gethostbyname(www.xiaodi8.com)
print(ip) # 47.75.212.15502、识别目标是否存在CDN(内容分发网络) import os
import socket
1、域名反查IP功能采用nslookup执行结果进行返回IP解析数目判断利用python去调用系统命令ip socket.gethostbyname(www.xiaodi8.com)
print(ip) # 47.75.212.1552、识别目标是否存在CDN(内容分发网络)采用nslookup执行结果进行返回IP解析数目判断“.”的数量利用python去调用系统命令# 使用 os.system 方法执行的返回结果是不能进行操作的
# cdn_data os.system(nslookup www.xiaodi8.com) # nslookup 手工解析域名
# 使用os.popen() 方法执行系统命令
cdn_data os.popen(nslookup www.xiaodi8.com)
cdn_datas cdn_data.read() # read()读取返回的结果
x cdn_datas.count(.) # count()方法统计某个字符串出现的数量,统计有多少的点来判断有多少个ip如果有多个ip都是不同的那这个域名就是开启了CDN
print(cdn_datas)
print(x)
if x 10: # CDN 不存在的一般是10个点以内大于这个数就是存在服务器有两这个点这里的服务器是未知所有少了两个点print(CDN存在)
else:print(CDN不存在) 03 域名扫描 1. 原生自写socket协议tcp,udp扫描开启的端口 import os
import socket
from whois import whois # 安装pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-whois
1、域名反查IP功能采用nslookup执行结果进行返回IP解析数目判断利用python去调用系统命令ip socket.gethostbyname(www.xiaodi8.com)
print(ip) # 47.75.212.1552、识别目标是否存在CDN(内容分发网络)采用nslookup执行结果进行返回IP解析数目判断“.”的数量利用python去调用系统命令# 使用 os.system 方法执行的返回结果是不能进行操作的
# cdn_data os.system(nslookup www.xiaodi8.com) # nslookup 手工解析域名
# 使用os.popen() 方法执行系统命令cdn_data os.popen(nslookup www.xiaodi8.com)
cdn_datas cdn_data.read() # read()读取返回的结果
x cdn_datas.count(.) # count()方法统计某个字符串出现的数量,统计有多少的点来判断有多少个ip如果有多个ip都是不同的那这个域名就是开启了CDN
print(cdn_datas)
print(x)
if x 10: # CDN 不存在的一般是10个点以内大于这个数就是存在服务器有两这个点这里的服务器是未知所有少了两个点print(CDN存在)
else:print(CDN不存在)3、端口扫描1.原生自写socket协议tcp,udp扫描2.调用第三方模块等进行扫描3.调用系统工具脚本执行扫描# 1.原生自写socket协议tcp,udp扫描
# 创建一个socket对象
server socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 常见的计算机端口
ports{21,22,135,443,445,80,1433,3306,3389,1521,8000,8888,7002,7001,8080,9090,8089,4848}
for i in ports:# 连接到服务端result server.connect_ex((www.xiaodi8.com,int(i))) # 指定域名/ip 和连接端口,int()把字符转换成整数if result 0:print(f连接成功,端口{i}|open开启)else:print(f连接失败,端口{i}|close关闭) 2. 调用第三方模块等进行扫描 域名信息扫描 import os
import socket # 网络编程模块
import time # 时间模块
from whois import whois # 第三方的域名查询模块 安装pip install python-whois
1、域名反查IP功能采用nslookup执行结果进行返回IP解析数目判断利用python去调用系统命令ip socket.gethostbyname(www.xiaodi8.com)
print(ip) # 47.75.212.1552、识别目标是否存在CDN(内容分发网络)采用nslookup执行结果进行返回IP解析数目判断“.”的数量利用python去调用系统命令# 使用 os.system 方法执行的返回结果是不能进行操作的
# cdn_data os.system(nslookup www.xiaodi8.com) # nslookup 手工解析域名
# 使用os.popen() 方法执行系统命令cdn_data os.popen(nslookup www.xiaodi8.com)
cdn_datas cdn_data.read() # read()读取返回的结果
x cdn_datas.count(.) # count()方法统计某个字符串出现的数量,统计有多少的点来判断有多少个ip如果有多个ip都是不同的那这个域名就是开启了CDN
print(cdn_datas)
print(x)
if x 10: # CDN 不存在的一般是10个点以内大于这个数就是存在服务器有两这个点这里的服务器是未知所有少了两个点print(CDN存在)
else:print(CDN不存在)3、端口扫描1.原生自写socket协议tcp,udp扫描2.调用第三方模块等进行扫描3.调用系统工具脚本执行扫描# 1.原生自写socket协议tcp,udp扫描
# 创建一个socket对象server socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 常见的计算机端口
ports{21,22,135,443,445,80,1433,3306,3389,1521,8000,8888,7002,7001,8080,9090,8089,4848}
for i in ports:# 连接到服务端result server.connect_ex((www.xiaodi8.com,int(i))) # 指定域名/ip 和连接端口,int()把字符转换成整数if result 0:print(f连接成功,端口{i}|open开启)else:print(f连接失败,端口{i}|close关闭)
# 2. 调用第三方模块等进行扫描
# whois 查询
# 第三方库whois查询也可以利用网上接口查询https://whois.chinaz.com/
# def whois_check(url):
data whois(www.xiaodi8.com)
print(data)子域名扫描 子域名字典 import os
import socket # 网络编程模块
import time # 时间模块
from whois import whois # 第三方的域名查询模块 安装pip install python-whois
1、域名反查IP功能采用nslookup执行结果进行返回IP解析数目判断利用python去调用系统命令ip socket.gethostbyname(www.xiaodi8.com)
print(ip) # 47.75.212.1552、识别目标是否存在CDN(内容分发网络)采用nslookup执行结果进行返回IP解析数目判断“.”的数量利用python去调用系统命令# 使用 os.system 方法执行的返回结果是不能进行操作的
# cdn_data os.system(nslookup www.xiaodi8.com) # nslookup 手工解析域名
# 使用os.popen() 方法执行系统命令cdn_data os.popen(nslookup www.xiaodi8.com)
cdn_datas cdn_data.read() # read()读取返回的结果
x cdn_datas.count(.) # count()方法统计某个字符串出现的数量,统计有多少的点来判断有多少个ip如果有多个ip都是不同的那这个域名就是开启了CDN
print(cdn_datas)
print(x)
if x 10: # CDN 不存在的一般是10个点以内大于这个数就是存在服务器有两这个点这里的服务器是未知所有少了两个点print(CDN存在)
else:print(CDN不存在)3、端口扫描1.原生自写socket协议tcp,udp扫描2.调用第三方模块等进行扫描3.调用系统工具脚本执行扫描# 1.原生自写socket协议tcp,udp扫描
# 创建一个socket对象server socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 常见的计算机端口
ports{21,22,135,443,445,80,1433,3306,3389,1521,8000,8888,7002,7001,8080,9090,8089,4848}
for i in ports:# 连接到服务端result server.connect_ex((www.xiaodi8.com,int(i))) # 指定域名/ip 和连接端口,int()把字符转换成整数if result 0:print(f连接成功,端口{i}|open开启)else:print(f连接失败,端口{i}|close关闭)
# 2. 调用第三方模块等进行扫描
# whois 查询
# 第三方库whois查询也可以利用网上接口查询https://whois.chinaz.com/data whois(www.xiaodi8.com)
print(data)
#子域名查询
#1.利用字典记载爆破进行查询
#2.利用 bing 或第三方接口进行查询
for zym_data in open(./子域名字典/dic.txt): # open() 方法读取文件zym_data zym_data.replace(\n,) # replace() 字符串的替换 将 \n 替换为空,就是把换行干掉因为打印出来的数据多了很多空行url zym_data .xueersi.com # 拼接成完整的域名就是查询xueersi.com的子域名try: # 异常处理因为如果子域名不存在gethostbyname() 查询会报错ip socket.gethostbyname(url) # socket.gethostbyname() 查询指定域名的ip地址如果能查到就说明这里子域名是存在的print(f{url} - {ip})time.sleep(0.1) # time.sleep() 延迟方法单位秒except Exception as e:pass # pass 没啥特殊的意义就是用来补全语法不让这里是空报错的# print(ferror,{url}子域名不存在) 但是现在代码看起很乱 我们以后要使用也不是很方便所以使用函数优化一下代码 Python开发-内外网收集Socket子域名DNS import os
import socket # 网络编程模块
import time # 时间模块
from whois import whois # 第三方的域名查询模块 安装pip install python-whois
import sys # sys模块提供了一系列有关Python运行环境的变量和函数,如如sys.argv函数实现从程序外部向程序传递参数sys.platform函数用于获取当前系统平台。
1、域名反查IP功能采用nslookup执行结果进行返回IP解析数目判断利用python去调用系统命令def ip_check(url):域名反查ip:param url: 要查询的域名如www.xiaodi8.com:return: Noneip socket.gethostbyname(url)print(ip) # 47.75.212.155
2、识别目标是否存在CDN(内容分发网络)采用nslookup执行结果进行返回IP解析数目判断“.”的数量利用python去调用系统命令# 使用 os.system 方法执行的返回结果是不能进行操作的
# cdn_data os.system(nslookup www.xiaodi8.com) # nslookup 手工解析域名
# 使用os.popen() 方法执行系统命令
def cdn_check(url):# www.xiaodi8.com识别目标是否存在CDN(内容分发网络):param url: 要查询的域名,如www.xiaodi8.com:return: Nonecdn_data os.popen(fnslookup {url})cdn_datas cdn_data.read() # read()读取返回的结果x cdn_datas.count(.) # count()方法统计某个字符串出现的数量,统计有多少的点来判断有多少个ip如果有多个ip都是不同的那这个域名就是开启了CDNprint(cdn_datas)print(x)if x 10: # CDN 不存在的一般是10个点以内大于这个数就是存在服务器有两这个点这里的服务器是未知所有少了两个点print(CDN存在)else:print(CDN不存在)
3、端口扫描1.原生自写socket协议tcp,udp扫描2.调用第三方模块等进行扫描3.调用系统工具脚本执行扫描# 1.原生自写socket协议tcp,udp扫描
# 创建一个socket对象
def port_check(url,ports[21,22,135,443,445,80,1433,3306,3389,1521,8000,8888,7002,7001,8080,9090,8089,4848]):查询指定域名的开放端口:param url: 要查询的域名如www.xiaodi8.com:param ports: 要查询的端口默认是{21,22,135,443,445,80,1433,3306,3389,1521,8000,8888,7002,7001,8080,9090,8089,4848}:return: Noneserver socket.socket(socket.AF_INET,socket.SOCK_STREAM)# 常见的计算机端口for i in ports:# 连接到服务端result server.connect_ex((url,int(i))) # 指定域名/ip 和连接端口,int()把字符转换成整数if result 0:print(f连接成功,端口{i}|open开启)else:print(f连接失败,端口{i}|close关闭)# 2. 调用第三方模块等进行扫描
# whois 查询
# 第三方库whois查询也可以利用网上接口查询https://whois.chinaz.com/
def whois_check(url):域名信息查询:param url: 要查询的域名如www.xiaodi8.com:return: Nonedata whois(url)print(data)子域名查询1.利用字典记载爆破进行查询2.利用 bing 或第三方接口进行查询def zym_check(url):子域名查询:param url: 要查询的域名如www.xueersi.com:return: Noneurls url.replace(www.,) # 如果url中有带有www.就替换为空www.for zym_data in open(./子域名字典/dic.txt): # open() 方法读取文件zym_data zym_data.replace(\n,) # replace() 字符串的替换 将 \n 替换为空,就是把换行干掉因为打印出来的数据多了很多空行url zym_data urls # 拼接成完整的域名就是查询urls这个变量的子域名try: # 异常处理因为如果子域名不存在gethostbyname() 查询会报错ip socket.gethostbyname(url) # socket.gethostbyname() 查询指定域名的ip地址如果能查到就说明这里子域名是存在的print(f{url} - {ip})time.sleep(0.1) # time.sleep() 延迟方法单位秒except Exception as e:pass # pass 没啥特殊的意义就是用来补全语法不让这里是空报错的# print(ferror,{url}子域名不存在)if __name__ __main__: # 这里里面的代码是模块内部的测试代码外部调用是不会执行的# port_check(www.xiaodi8.com) # 查询开放的端口# ip_check(www.xiaodi8.com) # 域名反查ip# cdn_check(www.xiaodi8.com) # cdn查询# whois_check(www.xiaodi8.com) # 域名信息查询# zym_check(www.xueersi.com) # 调用子域名查询函数把要查询的域名传入使用sys模块让我们写的脚本在程序外部也可以调用# 使用了sys模块的argv方法后我们就可以在程序外部给程序传参如在cmd命令提示符中输入python.exe的路径 当前的程序路径 参数1 参数2# sys.argv[0] # 表示程序自身的文件路径# sys.argv[1] # 表示程序的第一个参数# sys.argv[2] # 表示程序的第二个参数try:check sys.argv[1]urls sys.argv[2]print(程序运行中...)if check all:port_check(urls) # 查询开放的端口ip_check(urls) # 域名反查ipcdn_check(urls) # cdn查询whois_check(urls) # 域名信息查询zym_check(urls) # 调用子域名查询函数把要查询的域名传入except Exception as e:print(请在程序外部传入两个参数)可以直接运行代码也可以在程序外部运行代码 如在cmd命令提示符中输入python.exe的路径 当前的程序路径 参数1 参数2 F:\网安软件\python3\python.exe F:\python项目\python_study\day76\test.py all www.xiaodi8.com 注意如果要子域名的函数正常执行就要把cmd命令行的路径使用cd 改到程序的根目录或在把子域名的字典路径改成绝对路径 IP计算机名存活主机端口扫描代码段-内网 如果希望在Python中正常使用python-nmap模块必须先在系统中安装Nmap。因为在这个模块文件中会调用Nmap的一些功能。 Python安全渗透测试之Socket 模块、python-nmap模块_python 安全测试_Magiskpig的博客-CSDN博客 python-nmap模块安装命令pip install python-nmap
开一台虚拟机使用命令ipconfig 查看虚拟机的ip将该ip的网段写入代码中进行检测使用nmap模块进行扫描import nmap
def nmappascan():nm nmap.PortScanner(nmap_search_path(nmap, rF:\网安软件\Nmap\nmap.exe))try:# -T4指定扫描过程中使用的时序模板总共6个等级0 - 5等级越高扫描速度越快但是容易被防火墙和入侵检测设备发现。在扫描中应选择合适的等级。# 使用-f 选项可以对 nmap 发送的探测数据包进行分段。这样将原来的数据包分成几个部分目标网络的防御机制例如包过滤、防火墙等在对这些数据包进行检测的时候就会变得更加困难data nm.scan(hosts192.168.100.0/24,arguments-T4 -F)# print(nm.all_hosts()) # all_hosts()#扫描的所有主机print(nm.csv()) # csv()函数返回值是一个CSV(逗号分隔文件格式)的输出。如果想看的更清楚一点可以使用print输出csv()的内容。# print(data)except Exception as err:print(error)if __name__ __main__:nmappascan() Py 格式解析环境与可执行程序格式转换-Pyinstaller
Pyinstaller安装与介绍
安装pip install pyinstaller
更新pip install --upgrade pyinstaller
然后在pthon项目文件的根目录打开cmd 输入pyinstaller -F test76.py # -F 产生单个的可执行文件 test76.py 是要转换的文件名
打包后的.exe文件可以在不是python系统下执行 在项目的根目录下有个dist文件夹打包后的程序就在里面 运行exe文件把文件拉到cmd命令行中回车运行