子域名收集思路及工具编写

前言 :

    子域名在渗透测试之中的地位不低,当渗透测试在某一个大型的站点的时候,大多数情况下,主域名的站点是几乎没有什么漏洞的,这个时候我们应该去测试旗下的旁站,子域名等。

    渣渣白准备三种思路和方法去实现这子域名收集。(都是渣渣白的辛苦查询资料和总结想到方法)

第一种:

        利用一些在线网站查询子域名,把查询之后的结果使用爬虫爬出数据。下面是我找到可以使用的网站。

 

1.1 网站: https://dns.aizhan.com

1.2 网站: http://blast.uixsj.cn/

第二种:

  1. 利用谷歌hack语法查询收集子域名

    1. 使用谷歌语法site:+域名查询,把查询的结果的利用爬虫爬取出来。

 第三种: 

  1. 加载字典爆破子域名,利用ping命令检测是否存在

  2. (ping命令是一个黑客常用的命令,功能强大,我就不多说了。)

由于渣渣白的有拖延症的习惯,三种方法我就写了第三种(以后有机会就补上)。

下面我分享一下我编写的经验:

            #开发环境python2.7(为什么使用2.7呢?2.7在明年的时候就都不维护,我也问过这个问题(向大佬提问),大佬是这么说的:你告诉我sqlmap什么时候用3了,sqlmap的强大我就不解释了。)

            #开发工具:pycharm

    # 采用多线程开发(默认100),检测结果保存在一个ip.csvt文件之中
            # 在Windows下cmd中的ping命令

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2019/3/30 15:20
# @Author  : 清水
# @File    : Ping.py
# @Software: PyCharm
# @Function :使用ping命令检测某些网段是否被使用
# 采用多线程开发(默认100),检测结果保存在一个result.txt文件之中
# 在Windows下cmd中的ping命令
# 建议在集成环境下载运行(例如pycharm)不然会弹出一堆cmd命令框
import csv
import threading
from queue import Queue
import sys
from subprocess import PIPE, Popen
import os


class Ping(threading.Thread):
    def __init__(self, queue):
        threading.Thread.__init__(self)
        self._queue = queue

    def run(self):
        while not self._queue.empty():
            ip = self._queue.get()
            check_ip = Popen('ping ' + ip, stdin=PIPE, stdout=PIPE)
            data = check_ip.stdout.read()
            with open('D:\Python\Ai_Ping\ip.csv', 'a+', encoding='utf-8', newline='') as file:

                csvwriter = csv.writer(file)

                if "TTL" in str(data):
                    csvwriter.writerow([str(ip)])


def main():
    """
    调用Ping_Ip函数
    :return:
    """
    # 输入ping的网段地址
    ip = input("请输入一个网段(例如10.1.5):")
    threads = []
    # 线程数
    threads_count = 100
    # 队列
    queue = Queue()

    for i in range(1, 255):
        # 网段传入
        queue.put("" + ip + "." + str(i))
    for i in range(threads_count):
        # 线程的添加
        threads.append(Ping(queue))
    # 线程的开始与加入
    for i in threads:
        i.start()
    for i in threads:
        i.join()
    print("存活ip已经保存在ip.csv文件中。")

if __name__ == '__main__':
    main()
发布了35 篇原创文章 · 获赞 86 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/sun1318578251/article/details/89884385