Python二级域名信息收集工具

独自等待 2017年5月12日02:14:04评论453 views字数 2178阅读7分15秒阅读模式

最近实在是太忙了,没空更新博客,实在不好意思。今天抽空把之前的一些想法实现出来,没啥技术含量,各位小伙伴勿喷哦。

之前本站转过 Python二级域名暴破神器subDomainsBrute ,感觉不错,本站介绍的方法用于简单的二级域名收集,速度比较快,准备率也算高的了。

脚本集成了两个域名收集的接口,一个是360的,一个是links.cn的,下面是使用方法及脚本。

二级域名收集

二级域名收集源码:

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2015/9/17
# Created by 独自等待
# 博客 http://www.waitalone.cn/
import sys, os
import urllib2

try:
    from lxml import html
except ImportError:
    raise SystemExit('\n[X] lxml模块导入错误,请执行pip install lxml安装!')


class SubMain():
    '''
    渗透测试域名收集
    '''

    def __init__(self, submain):
        self.submain = submain
        self.url_360 = 'http://webscan.360.cn/sub/index/?url=%s' % self.submain
        self.url_link = 'http://i.links.cn/subdomain/'
        self.link_post = 'domain=%s&b2=1&b3=1&b4=1' % self.submain
        self.sublist = []

    def get_360(self):
        scan_data = urllib2.urlopen(self.url_360).read()
        html_data = html.fromstring(scan_data)
        submains = html_data.xpath("//dd/strong/text()")
        return self.sublist.extend(submains)

    def get_links(self):
        link_data = urllib2.Request(self.url_link, data=self.link_post)
        link_res = urllib2.urlopen(link_data).read()
        html_data = html.fromstring(link_res)
        submains = html_data.xpath("//div[@class='domain']/a/text()")
        submains = [i.replace('http://', '') for i in submains]
        return self.sublist.extend(submains)

    def scan_domain(self):
        self.get_360()
        self.get_links()
        return list(set(self.sublist))


if __name__ == '__main__':
    print '+' + '-' * 50 + '+'
    print '\t    Python 二级域名信息收集工具'
    print '\t   Blog:http://www.waitalone.cn/'
    print '\t\t Code BY: 独自等待'
    print '\t\t Time:2015-09-17'
    print '+' + '-' * 50 + '+'
    if len(sys.argv) != 2:
        print '用法: ' + os.path.basename(sys.argv[0]) + ' 主域名地址'
        print '实例: ' + os.path.basename(sys.argv[0]) + ' waitalone.cn'
        sys.exit()
    domain = sys.argv[1]
    print u'报告爷,正在收集域名信息,请稍候!\n'
    submain = SubMain(domain).scan_domain()
    print u'报告爷,共发现域名信息 [ %d ] 条!\n' % len(submain)
    with open(domain + '.txt', 'wb+') as domain_file:
        for item in submain:
            domain_file.write(item + '\n')
            print item

脚本特点:

1、脚本并非采用暴破的形式,所以速度比较快。

2、从360获取的数据一般都是网站管理员自己添加的,所以准备率比较高。

3、links.cn获取的有部分不是很准确,不影响使用。

4、域名结果默认保存在脚本同目录下,例如waitalone.cn.txt中。

5、大家可以拿去任意更改,请保留版权信息哦。



from www.waitalone.cn.thanks for it.

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
独自等待
  • 本文由 发表于 2017年5月12日02:14:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Python二级域名信息收集工具https://cn-sec.com/archives/50350.html

发表评论

匿名网友 填写信息