欢迎光临散文网 会员登陆 & 注册

【小迪安全-web渗透测试课程】第76天:Python开发-内外网收集Socket&子域名&DNS

2023-05-01 14:53 作者:shtome  | 我要投稿

Python开发-内外网收集Socket&子域名&DNS

 

Python


应急响应靶机

应急响应靶机,在“应急响应资料工具”的压缩包内

过关的思路与知识点在PDF里

 

Python开发相关知识点

1.开发基础环境配置说明

Windows10 + Pycharm

2.Python开发学习的意义

学习相关安全工具原理

掌握自定义工具及拓展开发

解决实战中无工具或手工麻烦批量化等情况

在二次开发Bypass,日常任务,批量测试利用等方面均有帮助

    如:SRC批量收集并利用,AWD批量利用获取FLAG,CTF加解密脚本等

3.本篇直播涉及的技术方向

Socket、爬虫、正则表达式、框架开发等

 

本次直播涉及知识点

Socket部分技术、进程命令执行、交互参数执行、NMAP工具模块使用、异常处理等

 

简要批量SRC


安装Python解释器和集成开发工具(IDE)PyCharm

https://www.runoob.com/w3cnote/pycharm-windows-install.html

Windows下载python非官方库

1.运行cmd

2.使用命令安装指定库

    pip install [库名]

3.若是python3.0以上的版本,则使用

    pip3 install [库名]

4.卸载格式

    pip uninstall [库名]

5.pip可以通过-i参数临时换源

    pip install [库名] -i [镜像地址]

6.查看已安装的库和版本

    pip list

下载非官方库并不需要在pip的文件目录下打开cmd

Windows下永久换源

1.需要在“%HOMEPATH%”下,即“C:\Users\[计算机用户名]”下,创建“pip/pip.ini”,并在pip.ini中加入如下信息

    [global]

    timeout = 6000

    index-url = [镜像地址]

    trusted-host = [镜像地址,但是没有前面的“https://”和后面的“/simple”]

2.命令行中执行

    pip config set global.index -url [镜像地址]

 

声明要用到的库

方法一

    import [库名]

    [库名].[函数名]([函数参数])

方法二

    from [库名] import [函数名]

    [函数名]([函数参数])

方法三

    import [库名] as [库别名]

    [库别名].[函数名]([函数参数])

一次导入多个函数,用逗号“,”隔开

 

域名反查IP

    ip=socket.gethostbyname([域名])

    print(ip)

声明一个变量“ip”,ip的值是域名对应的IP地址

 

识别目标是否存在CDN

1.命令行指令

    nslookup [域名]

存在CDN:应答的名称不是域名而是某CDN,且IP地址有多个

2.执行命令行指令

    os.system([命令行指令])

不推荐使用os.system,因为它只能返回指令是否成功执行,无法返回结果集

    os.popen([命令行指令])

会返回一个object装载回显内容,建议直接加“.read()”来读取结果

3.读取一个文件的内容

    read()

4.统计字符串里某个字符出现的次数

    count()

5.Python的if语句

    if [条件]:

        [python语句]

    else:

        [python语句]

 

端口扫描

自写socket协议tcpudp扫描

    server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

声明一个变量server,值为套接字。AF_INET(又称PF_INET)是IPv4网络协议的套接字类型,AF_INET6则是IPv6的,而AF_UNIX则是Unix系统本地通信。SOCK_STREAM是tcp/ip套接字,SOCK_DGRAM为udp/ip套接字

    result = server.connect_ex(‘[服务器的IP地址]’,[端口号]))

主动连接服务器,根据返回的出错码判断是否连接,返回值为0说明连接成功。配合for循环实现端口扫描

调用第三方masscannmap等扫描

调用系统工具脚本执行

 

whois查询

利用网上接口查询或使用第三方库的函数

    from whois import whois

    data = whois(‘[域名]’)

    print(data)

网络接口信息会更全

 

子域名查询

利用字典载爆破进行查询

    for zym_data in open([子域名字典文件]):

        zym_data = zym_data.replace(‘\n’,‘’)

        url = zym_data + ‘.’ + ‘[测试的域名]’

        try:

            ip =  socket.gethostbyname(url)

            print(url + ‘->’ + ip)

            time.sleep(0.1)

        except exception as e:

            pass

子域名字典去掉换行符,和域名拼接成完整的域名。用域名反查的方式检查是否有该域名,有则输出ip,没有的通过异常处理输出“error”,也可以通过“pass”跳过。为了减轻网络负荷可以加一个延迟(需要time库)。

利用bing或第三方接口进行查询

利用网络查询,速度快但是结果不全,有些域名可能查不到

    domain:[域名]

 

通过def函数定义函数

定义函数

    def [函数名]([参数]):

        [函数体]

    def zym_check(url):

        [具体功能]

调用

    if __name__ == '__main__':

        [函数名]([参数])

    if __name__ == '__main__':

        zym_check([域名])

 

加入交互

通过input函数输入参数

通过sys.argv函数读取命令行参数的参数列表

需要sys库

    import sys

argv[0]是python的文件名,argv[1]及之后是输入的参数。获取参数通过if判断执行对应的功能

 

内网主机信息探针

利用原生的ping获取

利用原生的icmp、tcp、udp等获取

利用nmap等扫描获取信息

 

内网调用nmap扫描

1.使用第三方nmap库

2.调用nmap工具

将nmap工具打包,通过python调用

 

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

由于有的电脑没有python环境,可以通过Pyinstaller生成可执行文件

    pyinstaller.exe -F [python文件]

在dist文件夹下会生成exe文件

 

涉及资源:

PyCharm安装教程(Windows):https://www.runoob.com/w3cnote/pycharm-windows-install.html

JetBrains Pycharm Pro 2021.3.3 中文专业免费正式版:https://www.jb51.net/softs/598504.html

python socket.socket()函数 套接字详解及TCP、UDP程序示例(粘包等):

https://blog.csdn.net/Dontla/article/details/103679153#socket_11

Python中python-nmap模块的使用:https://www.cnblogs.com/csnd/p/11807823.html

Python开发源码资料:https://pan.baidu.com/s/13y3U6jX3WUYmnfKnXT8abQ 提取码:xiao

应急响应资料工具:https://pan.baidu.com/s/1tQS1mUelmEh3I68AL7yXGg 提取码:xiao


【小迪安全-web渗透测试课程】第76天:Python开发-内外网收集Socket&子域名&DNS的评论 (共 条)

分享到微博请遵守国家法律