网安学习-Python安全开发

这篇具有很好参考价值的文章主要介绍了网安学习-Python安全开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Python学习的意义

涉及相关技术

案例一:IP&Whois&系统指纹获取代码段-外网

查询IP

whois查询

案例二:CDN&子域名&端口扫描&交互代码段-外网

判断CDN 

子域名查询

端口扫描

案例三:Py格式解析环境与可执行程序格式转换-Pyinstaller


        此后如竟没有炬火,我便是唯一的光。

Python学习的意义

  1. 学习相关安全工具的原理;
  2. 掌握自定义工具以及拓展开发;
  3. 解决实战中无工具或手工麻烦批量化等情况;
  4. 在二次开发Bypass,日常任务,批量测试利用等方面均有帮助;例如SRC批量收集并利用,AWD批量利用获取FLAG,CTF加解密脚本等;

涉及相关技术

  1. Socket部分技术
  2. 进程命令执行
  3. 交互参数执行
  4. NMAP工具模块使用
  5. 异常处理

案例一:IP&Whois&系统指纹获取代码段-外网

查询IP

功能:例如输入域名www.xxx.com;返回解析的IP

原理:利用Python中的socket模块的gethostbyname函数能够实现解析域名 IP 地址的功能

def ip_check(url):
    IP = socket.gethostbyname(url)
    print(IP)
    #return IP

输入某一个域名,解析的结果如下:

网安学习-Python安全开发

whois查询

功能:输入目标地址,能够查询目标的whois信息

原理:Python的whois模块的whois函数能够获取目标的whois信息;需要导入python-whois模块

import whois
#该段代码是小迪老师的代码,而在自己编写的时候需要使用的是whois.query(url),但是出现了错误
def whois_check(url):
    data = whois.whois(url)
    print(data)

网安学习-Python安全开发

案例二:CDN&子域名&端口扫描&交互代码段-外网

判断CDN 

功能:输入目标地址,能够判断目标是否是CDN服务器

原理:Python通过os库的system函数调用执行系统的nslookup命令来解析目标地址,如果解析地址的IP地址过多,那么说明使用了CDN服务器。

def cdn_check(url):
    ip_check(url)
    commend = 'nslookup '+url
    ip_CDN = os.popen(commend).read()
    ip_count = ip_CDN.count('.')
    if ip_count>9:
        print('存在CDN,具体结果如下:')
        print(ip_CDN)
    else:
        print('不存在CDN,具体结果如下:')
        print(ip_CDN)

通过点号来判断是否存在CDN,本方法,其实可以使用正则,我还没学会。

网安学习-Python安全开发

子域名查询

实现功能,查询目标的子域名

原理:如输入 www.baidu.com;先正则去掉 www;然后加载字典,如内容为 aa;与处理后的 url 进行 拼接,即 aa.baidu.com;然后调用 socket 模块的 gethostbyname 函数来判断该域名是否能够 解析 IP,如果能说明该域名存在,不能则说明不存在。

方法有两种:

  1. 利用字典加载爆破进行查询
  2. 利用ping或者第三方接口进行查询
def zyum_check(url):
    urls = url.replace('www','')
    for zym_dic in open('D:\Python\CTF\Python_信息收集\dic.txt'):
        zym_dic = zym_dic.replace('\n','')
        para = zym_dic+urls
        try:
            ip = socket.gethostbyname(para)
            print(para+'->'+ip)
            time.sleep(0.1)
        except Exception as e:
            pass

网安学习-Python安全开发

端口扫描

实现功能 能跑判断对应端口是否开放

原理 Socket 模块的 socket 函数

方法:

  1. 原生态:自写socket协议tcp、udp扫描

  2. 调用第三方masscan、nmap模块等扫描(内网)

  3. 调用系统工具脚本执行

def duankou_check(url):
    IP = ip_check(url)
    server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    port = {'20','21','22','25','23','80','443','135','110','8080','9080','9090','3389','8081','1521','1433','3306','139'}
    for de_port in port:
        result = server.connect_ex((IP,int(de_port)))
        if result==0:
            print(de_port+' is open')
        else:
            print(de_port+' is close')

案例三:Py格式解析环境与可执行程序格式转换-Pyinstaller

制作网上大佬的脚本工具,使用cmd+参数。例如sqlmap工具。

import socket
import os
import time
import whois
import sys
import nmap

#输入域名
#web_name = input()

#通过域名反查IP地址
def ip_check(url):
    IP = socket.gethostbyname(url)
    print(IP)
    return IP

#识别目标域名是否采用了CDN
#通过nslookup来查看回显的结果是否存在两个及以上的IP地址
#利用python去执行系统命令

'''
    共有四种方法:
        1. os.system()      //不能将结果的值取出,不能进行操作
        2. os.popen()       //返回的是一个对象,那么继续通过read便可以将对象中的内容读取出来
        3. commands模块
        4. subprocess模块
'''

'''
ip_CDN = os.system('nslookup www.xiaodi8.com')
print(ip_CDN)
'''

def cdn_check(url):
    ip_check(url)
    commend = 'nslookup '+url
    ip_CDN = os.popen(commend).read()
    ip_count = ip_CDN.count('.')
    if ip_count>9:
        print('存在CDN,具体结果如下:')
        print(ip_CDN)
    else:
        print('不存在CDN,具体结果如下:')
        print(ip_CDN)

'''
    端口扫描
        1. 原生态:自写socket协议tcp、udp扫描
        2. 调用第三方masscan、nmap模块等扫描(内网)
        3. 调用系统工具脚本执行
'''

def duankou_check(url):
    IP = ip_check(url)
    server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    port = {'20','21','22','25','23','80','443','135','110','8080','9080','9090','3389','8081','1521','1433','3306','139'}
    for de_port in port:
        result = server.connect_ex((IP,int(de_port)))
        if result==0:
            print(de_port+' is open')
        else:
            print(de_port+' is close')


#whois反查
#通过第三方库进行查询或者是通过第三方接口进行查询
'''data_whois = whois.query(web_name)
print(data_whois)'''


#子域名查询
#1. 利用字典加载爆破进行查询
#2. 利用ping或者第三方接口进行查询
def zyum_check(url):
    urls = url.replace('www','')
    for zym_dic in open('D:\Python\CTF\Python_信息收集\dic.txt'):
        zym_dic = zym_dic.replace('\n','')
        para = zym_dic+urls
        try:
            ip = socket.gethostbyname(para)
            print(para+'->'+ip)
            time.sleep(0.1)
        except Exception as e:
            pass

#通过nmap进行内网存活主机的端口的探针
#关于nmap的出错,配置安装这方面的错误,可以借鉴这篇文章拿https://blog.csdn.net/mkmlmkmlmkml/article/details/116094552
def nmapscan():
    nm = nmap.PortScanner()
    try:
        data = nm.scan(hosts='192.168.52.0/24',arguments='-T4 -F')
        print(nm.all_hosts())
        print(nm.csv())
        print(data)
    except Exception as e:
        print('error')

if __name__ == '__main__':
    #zyum_check('www.xueersi.com')
    #cdn_check('www.xueersi.com')
    #ip_check('www.xueersi.com')

    check = sys.argv[1]
    url = sys.argv[2]
    if check=='-cdn':
        cdn_check(url)
    elif check=='-zym':
        zyum_check(url)
    elif check=='-ip':
        ip_check(url)
    elif check=='-port':
         duankou_check(url)
    else:
        zyum_check(url)
        cdn_check(url)
        ip_check(url)
        duankou_check(url)
    #nmapscan()

那么针对nmap内网探针存活的主机,那么内网中的主机,可能不存在python的解析环境。所以需要将我们的脚本打包生成可执行文件,例如windows中的exe文件。

需要安装pyinstaller,通过pip install pyinstaller,先安装。

之后就可以直接使用pytinstaller -F 脚本文件名。那么便会直接在C:\Users\用户\dist下面生成对应的可执行文件,通过cmd便可以直接执行该文件。

网安学习-Python安全开发

我这里没有开虚拟机,所以内网中没有主机存活。 文章来源地址https://www.toymoban.com/news/detail-404733.html

到了这里,关于网安学习-Python安全开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python学习】Python学习18- 方法OS 文件/目录方法

    目录 文章所属专区 Python学习 本章节主要说明Python的os 模块常用的相关方法。os 模块提供了非常丰富的方法用来处理文件和目录 os.access() 方法用于检验鉴权模式。 os.access(path, mode); 示例: os.F_OK: 作为access()的mode参数,测试path是否存在。 os.R_OK: 包含在access()的mode参数中 , 测

    2024年01月20日
    浏览(40)
  • Python个人学习笔记目录

    以下目录基于黑马程序员B站视频个人学习笔记 正在更新中……

    2024年01月21日
    浏览(26)
  • 【网安小白成长之路】4.MySQL安全值守常用语句

    🐮博主syst1m 带你 acquire knowledge! ✨博客首页——syst1m的博客💘 🔞 《网安小白成长之路(我要变成大佬😎!!)》真实小白学习历程,手把手带你一起从入门到入狱🚭 😘《CTF专栏》超级详细的解析,宝宝级教学让你从蹒跚学步到健步如飞🙈 😎《大数据专栏》大数据从0到

    2024年04月12日
    浏览(24)
  • 开源网安受邀参加软件供应链安全沙龙,推动企业提升安全治理能力

    ​8月23日下午,合肥软件行业软件供应链安全沙龙在中安创谷科技园举办。此次沙龙由合肥软件产业公共服务中心联合中安创谷科技园公司共同主办, 开源网安软件供应链安全专家王晓龙、尹杰 受邀参会并带来软件供应链安全方面的精彩内容分享,共同探讨了软件供应链安

    2024年02月11日
    浏览(28)
  • 第五章 ip层安全协议——IPsec(郑大网安自用)

    提供如下3种服务: 数据完整性验证 通过哈希函数(如MD5)产生的校验来保证 数据源身份认证 通过在计算验证码时加入一个共享密钥来实现 防重放攻击 AH报头中的序列号可以防止重放攻击 格式、封装:…… 运行模式 传输模式 AH插入到IP首部(包括IP选项字段)之后、传输层

    2024年02月19日
    浏览(25)
  • “网安三人行”盘点:软件供应链安全的那些事儿

    2022年伊始,默安科技联合数世咨询举办以“软件供应链安全的时与势”为主题的访谈活动,由数世咨询创始人李少鹏主持,邀请 贝壳安全研发负责人李文鹏、北京邮电大学副教授张文博、默安科技副总裁沈锡镛 三位行业大咖做客网安小酒馆,从产业、企业、学术的不同维度

    2023年04月25日
    浏览(38)
  • 【Python_PySide学习笔记(目录)】

    下面是专栏的目录汇总: 序号 标题 1 【Python_PySide2学习笔记(一)】PySide2动态加载UI方式,重写关闭窗体事件 2 【Python_PySide2学习笔记(二)】QTabWidget 添加布局LayoutQTabWidget内控件大小自适应父窗体大小 3 【Python_PySide2学习笔记(三)】QPushButton设置背景图片 4 【Python_PySide

    2024年01月24日
    浏览(30)
  • 网络安全研究生选择哪个方向有前景?_网安学硕方向系统安全,网络安全,应用安全,信息系统安全

    写在前面 网络空间安全专业越来越受到国家政策的支持;而滴滴APP泄露个人隐私等事件,也使得大众的安全意识和安全需求前所未有的提高。在这样的环境下,越来越多的同学想要攻读网络安全专业,那么问题来了, 网安研究生哪个方向更具有前景呢? 网安方向介绍 BAOYA

    2024年03月15日
    浏览(45)
  • 网安学习经历小记

    明明自觉学会了不少知识,可真正开始做题时,却还是出现了“一支笔,一双手,一道力扣(Leetcode)做一宿”的窘境?你是否也有过这样的经历,题型不算很难,看题解也能弄明白,可一到自己做就变成了与题面面相觑无从下手。这种困境如今正烦恼着你还是已经被你克服

    2024年02月12日
    浏览(21)
  • 首届“天网杯”网络安全大赛启动 | 赛宁网安提供全面技术支撑

    ​​6月25日,由中华人民共和国公安部、天津市人民政府指导,天津市公安局、天津市委网信办、天津市工信局、天津市滨海新区人民政府、公安部第一研究所、国家计算机病毒应急处理中心共同主办,南京赛宁信息技术有限公司提供全面技术支撑的首届“天网杯”网络安全

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包