From 9a78427a3f0af5d770bd41a12411d8e293269d36 Mon Sep 17 00:00:00 2001
From: boyhack <34109680@qq.com>
Date: Tue, 25 Oct 2016 12:05:10 +0800
Subject: [PATCH 1/8] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E7=A4=BE?=
=?UTF-8?q?=E4=BC=9A=E5=B7=A5=E7=A8=8B=E5=AD=A6=E5=AF=86=E7=A0=81=E7=94=9F?=
=?UTF-8?q?=E6=88=90=E5=92=8Cwhois=E6=9F=A5=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
myweb.py | 34 ++
password.py | 217 +++++++++++
templates/base.html | 2 +
templates/password.html | 111 ++++++
templates/whois.html | 50 +++
whois.py | 802 ++++++++++++++++++++++++++++++++++++++++
6 files changed, 1216 insertions(+)
create mode 100644 password.py
create mode 100644 templates/password.html
create mode 100644 templates/whois.html
create mode 100644 whois.py
diff --git a/myweb.py b/myweb.py
index 3600170..5fecd63 100644
--- a/myweb.py
+++ b/myweb.py
@@ -4,8 +4,10 @@
from flask import Flask,render_template,request
import re
import baiduip
+from password import PasswdGenerator
import cms
import sys
+import whois
reload(sys)
sys.setdefaultencoding('utf-8')
@@ -42,5 +44,37 @@ def webdna():
else:
return render_template('cms.html',title="CMS识别")
+#在线密码生成
+@app.route('/password',methods=["get","post"])
+def password_build():
+ if request.method == 'POST':
+ birthday = request.form.get("birthday","")
+ fullname = request.form.get("fullname","")
+ nickname = request.form.get("nickname","")
+ englishname = request.form.get("englishname","")
+ partnername = request.form.get("partnername","")
+ phone = request.form.get("phone","")
+ qq = request.form.get("qq","")
+ company = request.form.get("company","")
+ domain = request.form.get("domain","")
+ oldpasswd = request.form.get("oldpasswd","")
+ keywords = request.form.get("keywords","")
+ keynumbers = request.form.get("keynumbers","")
+ pwgen = PasswdGenerator(fullname=fullname,nickname=nickname,englishname=englishname,partnername=partnername,phone=phone,qq=qq,company=company,domain=domain,oldpasswd=oldpasswd,keywords=keywords,keynumbers=keynumbers,birthday=birthday)
+ wordlist = pwgen.generate()
+ return render_template('password.html',data=wordlist,title="社工密码生成")
+ else:
+ return render_template('password.html',title="社工密码生成")
+
+#Whois 在线查询
+@app.route('/whois',methods=["get","post"])
+def whoisa():
+ if request.method == 'POST':
+ url = request.form.get("search")
+ data = whois.whois(url).replace("\n","")
+ return render_template('whois.html',data=data,title="Whois查询")
+ else:
+ return render_template('whois.html',title="Whois查询")
+
if __name__ == '__main__':
app.run(debug=True)
diff --git a/password.py b/password.py
new file mode 100644
index 0000000..b935149
--- /dev/null
+++ b/password.py
@@ -0,0 +1,217 @@
+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+
+'''
+Pentestdb, a database for penetration test.
+Copyright (c) 2015 alpha1e0
+================================================================
+社工密码生成器.
+'''
+
+
+import time
+import itertools
+
+
+
+class PasswdGenerator(object):
+ '''
+ Password generator.
+ '''
+ # 常用密码关键数字
+ _numList = ['123456', '123123', '123123123', '112233', '445566', '456456', '789789', '778899', '321321', '520', '1314', '5201314', '1314520', '147369', '147258', '258', '147', '456', '789', '147258369', '111222', '123', '1234', '12345', '1234567', '12345678', '123456789', '987654321', '87654321', '7654321', '654321', '54321', '4321', '321']
+ # 常用前缀列表
+ _prefixList = ['a','qq','yy','aa','abc','qwer','woaini']
+ # 常用密码
+ _commonPasswd = ['123456', 'a123456', '123456a', '123456abc', 'abc123456', 'woaini1314', 'qq123456', 'woaini520', 'woaini123', 'woaini521', 'qazwsx', '1qaz2wsx', '1q2w3e4r', '1q2w3e4r5t', '1q2w3e', 'qwertyuiop', 'zxcvbnm']
+ # 和partner混合的常用前缀列表
+ partnerPrefixList = ['520','5201314','1314','iloveu','iloveyou']
+ # 和domian,company组合的前缀列表
+ domainPrefixList = ['admin','root','manager','system']
+
+
+ def __init__(self, fullname="", nickname="", englishname="", partnername="", birthday="", phone="", qq="", \
+ company="", domain="", oldpasswd="", keywords="", keynumbers=""):
+ '''
+ Params:
+ Parameters of args:
+ fullname: specified the fullname, format: 'zhang san' 'wang ai guo' 0
+ nickname: specified the nickname 0
+ englishname: specified the english name 0
+ partnername: specified the partner name
+ birthday: specified the birthday day, format: '2000-1-10' 0
+ phone: specified the phone number 0
+ qq: specified the QQ number 0
+ company: specified the company
+ domain: specified the domain name
+ oldpasswd: specified the oldpassword
+ keywords: specified the keywords, example: 'keyword1 keyword2'
+ keynumbers: specified the keynumbers, example: '123 789' 0
+ '''
+ self.fullname = fullname
+ self.nickname = nickname
+ self.englishname = englishname
+ self.partnername = partnername
+ self.birthday = birthday
+ self.phone = phone
+ self.qq = qq
+ self.company = company
+ self.domain = domain
+ self.oldpasswd = oldpasswd
+ self.keywords = keywords
+ self.keynumbers = keynumbers
+
+ # 常用数字列表,用户和用户名、昵称、英文名、关键字等混合
+ self.innerNumList = []
+ # 常用前缀列表,用于和手机号、QQ号混合
+ self.innerPrefixList = []
+
+ # 段名列表,由原始全名生成
+ self.shortNameList = []
+ # 全名列表,由原始全名生成
+ self.fullNameList = []
+ # 待混合的keyword列表,由于用户名、昵称、英文名、关键字的混合规则一致,因此放到这一个列表内进行混合
+ self.mixedKeywordList = []
+
+ self.result = []
+
+
+ def _genShortNameList(self, fullname=None):
+ fullname = fullname if fullname else self.fullname
+ if not fullname:
+ return []
+ else:
+ result = []
+ func = lambda x:[x, x.title(), x[0].lower(), x[0].upper(), x.upper()]
+ nameSplited = fullname.split()
+ if len(nameSplited) == 1:
+ result += func(nameSplited[0])
+ elif len(nameSplited) == 2:
+ shortName = nameSplited[0][0].lower() + nameSplited[1][0].lower()
+ result += func(shortName)
+ else:
+ shortName = nameSplited[0][0].lower() + nameSplited[1][0].lower() + nameSplited[2][0].lower()
+ result += func(shortName)
+ shortNameRS = nameSplited[1][0].lower() + nameSplited[2][0].lower() + nameSplited[0][0].lower()
+ shortNameR = nameSplited[1][0].lower() + nameSplited[2][0].lower() + nameSplited[0]
+ result += [shortNameR, shortNameRS, shortNameRS.upper()]
+
+ return result
+
+
+ def _genFullNameList(self, fullname=None):
+ fullname = fullname if fullname else self.fullname
+ if not fullname:
+ return []
+ else:
+ result = []
+ nameSplited = fullname.split()
+ if len(nameSplited) == 1:
+ result.append(nameSplited[0])
+ elif len(nameSplited) == 2:
+ result += ["".join(nameSplited), nameSplited[1]+nameSplited[0]]
+ else:
+ result += [nameSplited[0]+nameSplited[1]+nameSplited[2], nameSplited[1]+nameSplited[2]+nameSplited[0]]
+
+ return result + [x.upper() for x in result]
+
+
+ def _genInnerNumList(self):
+ result = self._numList
+ for i in range(0,10):
+ result += [str(i)*x for x in range(1,10)]
+
+ endyear = int(time.strftime("%Y"))
+ result += [str(x) for x in range(2000, endyear+1)]
+
+ if self.keynumbers:
+ result += self.keynumbers.split()
+ if self.oldpasswd:
+ result.append(self.oldpasswd)
+
+ return result
+
+
+ def _genDateList(self, date):
+ if not date:
+ return []
+ else:
+ result = []
+ dateSplited = date.split("-")
+ if len(dateSplited) == 1:
+ result.append(dateSplited[0])
+ elif len(dateSplited) == 2:
+ result += [dateSplited[0], dateSplited[0]+dateSplited[1], dateSplited[0][-2:]+dateSplited[1]]
+ else:
+ result += [dateSplited[0], dateSplited[0]+dateSplited[1], dateSplited[0]+dateSplited[1]+dateSplited[2]]
+ result += [dateSplited[0][-2:]+dateSplited[1], dateSplited[0][-2:]+dateSplited[1]+dateSplited[2]]
+
+ return result
+
+ def _mixed(self, listA, listB):
+ if not listA and not listB:
+ return []
+ result = []
+ for a,b in itertools.product(listA, listB):
+ if len(a+b)>5 and len(a+b)<17:
+ result.append(a+b)
+ result.append(a+"@"+b)
+
+ return result
+
+
+ def _preHandlePhase(self):
+ self.innerNumList = self._genInnerNumList()
+ self.innerPrefixList = self._prefixList + [x.upper() for x in self._prefixList]
+ self.shortNameList = self._genShortNameList()
+ self.fullNameList = self._genFullNameList()
+
+ self.mixedKeywordList += self.shortNameList
+ self.mixedKeywordList += self.fullNameList
+ if self.nickname:
+ self.mixedKeywordList.append(self.nickname)
+ if self.englishname:
+ self.mixedKeywordList.append(self.englishname)
+ if self.keywords:
+ self.mixedKeywordList += self.keywords.split()
+
+
+ def _mixedPhase(self):
+ self.result += self._mixed(self.mixedKeywordList, self.innerNumList)
+ self.result += self._mixed(["520"], self.mixedKeywordList)
+ if self.phone:
+ self.result += self._mixed(self.innerPrefixList+self.mixedKeywordList, [self.phone])
+ if self.qq:
+ self.result += self._mixed(self.innerPrefixList+self.mixedKeywordList, [self.qq])
+ if self.partnername:
+ nameList = self._genShortNameList(self.partnername)
+ nameList += self._genFullNameList(self.partnername)
+ self.result += self._mixed(self.partnerPrefixList, nameList)
+ if self.birthday:
+ dateList = self._genDateList(self.birthday)
+ self.result += self._mixed(self.innerPrefixList+self.mixedKeywordList, dateList)
+ if self.domain:
+ self.result += self._mixed(self.domainPrefixList, [self.domain])
+ if self.company:
+ self.result += self._mixed(self.domainPrefixList, [self.company])
+
+
+ def _lastHandlePhase(self):
+ self.result += self._commonPasswd
+ self.result += [x+"." for x in self.result]
+
+
+ def generate(self):
+ self._preHandlePhase()
+ self._mixedPhase()
+ self._lastHandlePhase()
+
+ return self.result
+
+
+ # [usage]
+ # pwgen = PasswdGenerator(nickname=nickname,qq=qq)
+ # wordlist = pwgen.generate()
+
+
+
diff --git a/templates/base.html b/templates/base.html
index 0b87c3a..e9248b7 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -165,6 +165,8 @@
diff --git a/templates/password.html b/templates/password.html
new file mode 100644
index 0000000..d0186df
--- /dev/null
+++ b/templates/password.html
@@ -0,0 +1,111 @@
+{% extends "base.html" %}
+{% block content %}
+
+
+
+
在线社工字典生成
+
+
利用人性的弱点 精准的分析个人密码
+
+
+
+
+
+
+{% endblock %}
diff --git a/templates/whois.html b/templates/whois.html
new file mode 100644
index 0000000..6a0bfb3
--- /dev/null
+++ b/templates/whois.html
@@ -0,0 +1,50 @@
+{% extends "base.html" %}
+{% block content %}
+
+
+
+{% endblock %}
diff --git a/whois.py b/whois.py
new file mode 100644
index 0000000..9cc89dd
--- /dev/null
+++ b/whois.py
@@ -0,0 +1,802 @@
+#!/usr/bin/env python
+# coding=utf-8
+
+"""
+Function: Whois 模块
+Author: w8ay
+Time: 2016年10月22日 21:12:33
+"""
+
+import socket
+
+TLDS = [
+ ('.br.com', 'whois.centralnic.net', None),
+ ('.cn.com', 'whois.centralnic.net', None),
+ ('.de.com', 'whois.centralnic.net', None),
+ ('.eu.com', 'whois.centralnic.net', None),
+ ('.gb.com', 'whois.centralnic.net', None),
+ ('.gb.net', 'whois.centralnic.net', None),
+ ('.gr.com', 'whois.centralnic.net', None),
+ ('.hu.com', 'whois.centralnic.net', None),
+ ('.in.net', 'whois.centralnic.net', None),
+ ('.no.com', 'whois.centralnic.net', None),
+ ('.qc.com', 'whois.centralnic.net', None),
+ ('.ru.com', 'whois.centralnic.net', None),
+ ('.sa.com', 'whois.centralnic.net', None),
+ ('.se.com', 'whois.centralnic.net', None),
+ ('.se.net', 'whois.centralnic.net', None),
+ ('.uk.com', 'whois.centralnic.net', None),
+ ('.uk.net', 'whois.centralnic.net', None),
+ ('.us.com', 'whois.centralnic.net', None),
+ ('.uy.com', 'whois.centralnic.net', None),
+ ('.za.com', 'whois.centralnic.net', None),
+ ('.jpn.com', 'whois.centralnic.net', None),
+ ('.web.com', 'whois.centralnic.net', None),
+ ('.com', 'whois.verisign-grs.com', 'VERISIGN'),
+ ('.za.net', 'whois.za.net', None),
+ ('.net', 'whois.verisign-grs.com', 'VERISIGN'),
+ ('.eu.org', 'whois.eu.org', None),
+ ('.za.org', 'whois.za.org', None),
+ ('.org', 'whois.pir.org', None),
+ ('.edu', 'whois.educause.edu', None),
+ ('.gov', 'whois.dotgov.gov', None),
+ ('.int', 'whois.iana.org', None),
+ ('.mil', 'NONE', None),
+ ('.e164.arpa', 'whois.ripe.net', None),
+ ('.in-addr.arpa', None, 'ARPA'),
+ ('.arpa', 'whois.iana.org', None),
+ ('.aero', 'whois.aero', None),
+ ('.asia', 'whois.nic.asia', None),
+ ('.biz', 'whois.biz', None),
+ ('.cat', 'whois.cat', None),
+ ('.coop', 'whois.nic.coop', None),
+ ('.info', 'whois.afilias.net', None),
+ ('.jobs', 'jobswhois.verisign-grs.com', 'VERISIGN'),
+ ('.mobi', 'whois.dotmobiregistry.net', None),
+ ('.museum', 'whois.museum', None),
+ ('.name', 'whois.nic.name', None),
+ ('.post', 'whois.dotpostregistry.net', None),
+ ('.pro', 'whois.dotproregistry.net', None),
+ ('.tel', 'whois.nic.tel', None),
+ ('.travel', 'whois.nic.travel', None),
+ ('.xxx', 'whois.nic.xxx', None),
+ ('.ac', 'whois.nic.ac', None),
+ ('.ad', '', 'NONE'),
+ ('.ae', 'whois.aeda.net.ae', None),
+ ('.af', 'whois.nic.af', None),
+ ('.ag', 'whois.nic.ag', None),
+ ('.ai', 'whois.ai', None),
+ ('.al', '', 'NONE'),
+ ('.am', 'whois.amnic.net', None),
+ ('.an', '', 'NONE'),
+ ('.ao', '', 'NONE'),
+ ('.aq', '', 'NONE'),
+ ('.ar', 'http://www.nic.ar/', 'WEB'),
+ ('.as', 'whois.nic.as', None),
+ ('.priv.at', '', 'whois.nic.priv.at'),
+ ('.at', 'whois.nic.at', None),
+ ('.au', 'whois.audns.net.au', None),
+ ('.aw', 'whois.nic.aw', None),
+ ('.ax', '', 'whois.ax'),
+ ('.az', 'http://www.nic.az/', 'WEB'),
+ ('.ba', 'http://www.nic.ba/stream/whois/', 'WEB'),
+ ('.bb', 'http://whois.telecoms.gov.bb/search_domain.php', 'WEB'),
+ ('.bd', 'http://whois.btcl.net.bd/', 'WEB'),
+ ('.be', 'whois.dns.be', None),
+ ('.bf', '', 'NONE'),
+ ('.bg', 'whois.register.bg', None),
+ ('.bh', '', 'NONE'),
+ ('.bi', 'whois1.nic.bi', None),
+ ('.bj', 'whois.nic.bj', None),
+ ('.bm', 'http://207.228.133.14/cgi-bin/lansaweb?procfun+BMWHO+BMWHO2+WHO', 'WEB'),
+ ('.bn', '', 'whois.bn'),
+ ('.bo', 'whois.nic.bo', None),
+ ('.br', 'whois.registro.br', None),
+ ('.bs', 'http://www.nic.bs/cgi-bin/search.pl', 'WEB'),
+ ('.bt', 'http://www.nic.bt/', 'WEB'),
+ ('.bv', '', 'NONE'),
+ ('.by', 'whois.cctld.by', None),
+ ('.bw', 'whois.nic.net.bw', None),
+ ('.bz', 'AFILIAS', None),
+ ('.co.ca', 'whois.co.ca', None),
+ ('.ca', 'whois.cira.ca', None),
+ ('.cc', 'ccwhois.verisign-grs.com', 'VERISIGN'),
+ ('.cd', 'whois.nic.cd', None),
+ ('.cf', 'whois.dot.cf', None),
+ ('.cg', 'http://www.nic.cg/cgi-bin/whois.pl', 'WEB'),
+ ('.ch', 'whois.nic.ch', None),
+ ('.ci', 'whois.nic.ci', None),
+ ('.ck', 'NONE', None),
+ ('.cl', 'whois.nic.cl', None),
+ ('.cm', 'whois.netcom.cm', None),
+ ('.edu.cn', 'whois.edu.cn', None),
+ ('.cn', 'whois.cnnic.cn', None),
+ ('.uk.co', 'whois.uk.co', None),
+ ('.co', 'whois.nic.co', None),
+ ('.cr', 'http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do', 'WEB'),
+ ('.cu', 'http://www.nic.cu/', 'WEB'),
+ ('.cv', 'http://www.dns.cv/', 'WEB'),
+ ('.cw', '', 'NONE'),
+ ('.cx', 'whois.nic.cx', None),
+ ('.cy', 'http://www.nic.cy/nslookup/online_database.php', 'WEB'),
+ ('.cz', 'whois.nic.cz', None),
+ ('.de', 'whois.denic.de', None),
+ ('.dj', 'http://www.nic.dj/whois.php', 'WEB'),
+ ('.dk', 'whois.dk-hostmaster.dk', None),
+ ('.dm', 'whois.nic.dm', None),
+ ('.do', 'http://www.nic.do/whois-h.php3', 'WEB'),
+ ('.dz', 'whois.nic.dz', None),
+ ('.ec', 'whois.nic.ec', None),
+ ('.ee', 'whois.tld.ee', None),
+ ('.eg', '', 'NONE'),
+ ('.er', '', 'NONE'),
+ ('.es', 'https://www.nic.es/', 'WEB'),
+ ('.et', '', 'NONE'),
+ ('.eu', 'whois.eu', None),
+ ('.fi', 'whois.fi', None),
+ ('.fj', 'whois.usp.ac.fj', None),
+ ('.fk', '', 'NONE'),
+ ('.fm', 'http://dot.fm/whois.html', 'WEB'),
+ ('.fo', 'whois.nic.fo', None),
+ ('.fr', 'whois.nic.fr', None),
+ ('.ga', '', 'whois.dot.ga'),
+ ('.gb', 'NONE', None),
+ ('.gd', 'whois.nic.gd', None),
+ ('.ge', 'http://www.registration.ge/', 'WEB'),
+ ('.gf', 'https://www.dom-enic.com/whois.html', 'WEB'),
+ ('.gg', 'whois.gg', None),
+ ('.gh', 'http://www.nic.gh/customer/search_c.htm', 'WEB'),
+ ('.gi', 'AFILIAS', None),
+ ('.gl', 'whois.nic.gl', None),
+ ('.gm', 'http://www.nic.gm/htmlpages/whois.htm', 'WEB'),
+ ('.gn', '', 'NONE'),
+ ('.gp', 'https://www.dom-enic.com/whois.html', 'WEB'),
+ ('.gq', 'whois.dominio.gq', None),
+ ('.gr', 'https://grweb.ics.forth.gr/Whois?lang=en', 'WEB'),
+ ('.gs', 'whois.nic.gs', None),
+ ('.gt', 'http://www.gt/who_is.html', 'WEB'),
+ ('.gu', 'http://gadao.gov.gu/domainsearch.htm', 'WEB'),
+ ('.gw', '', 'NONE'),
+ ('.gy', 'whois.registry.gy', None),
+ ('.hk', 'whois.hkirc.hk', None),
+ ('.hm', 'whois.registry.hm', None),
+ ('.hn', 'whois.nic.hn', None),
+ ('.hr', 'whois.dns.hr', None),
+ ('.ht', 'whois.nic.ht', None),
+ ('.hu', 'whois.nic.hu', None),
+ ('.id', 'whois.pandi.or.id', None),
+ ('.ie', 'whois.domainregistry.ie', None),
+ ('.il', 'whois.isoc.org.il', None),
+ ('.im', 'whois.nic.im', None),
+ ('.in', '', 'whois.inregistry.net'),
+ ('.io', 'whois.nic.io', None),
+ ('.iq', '', 'whois.cmc.iq'),
+ ('.ir', 'whois.nic.ir', None),
+ ('.is', 'whois.isnic.is', None),
+ ('.it', 'whois.nic.it', None),
+ ('.je', 'whois.je', None),
+ ('.jm', '', 'NONE'),
+ ('.jo', 'http://www.dns.jo/Whois.aspx', 'WEB'),
+ ('.jp', 'whois.jprs.jp', None),
+ ('.ke', 'whois.kenic.or.ke', None),
+ ('.kg', 'whois.domain.kg', None),
+ ('.kh', '', 'NONE'),
+ ('.ki', 'whois.nic.mu', None),
+ ('.km', '', 'NONE'),
+ ('.kn', 'http://www.nic.kn/', 'WEB'),
+ ('.kp', '', 'NONE'),
+ ('.kr', 'whois.kr', None),
+ ('.kw', 'http://www.kw/', 'WEB'),
+ ('.ky', 'http://kynseweb.messagesecure.com/kywebadmin/', 'WEB'),
+ ('.kz', 'whois.nic.kz', None),
+ ('.la', 'whois.nic.la', None),
+ ('.lb', 'http://www.aub.edu.lb/lbdr/', 'WEB'),
+ ('.lc', 'AFILIAS', None),
+ ('.li', 'whois.nic.li', None),
+ ('.lk', 'whois.nic.lk', None),
+ ('.lr', '', 'NONE'),
+ ('.ls', 'http://www.co.ls/co.asp', 'WEB'),
+ ('.lt', 'whois.domreg.lt', None),
+ ('.lu', 'whois.dns.lu', None),
+ ('.lv', 'whois.nic.lv', None),
+ ('.ly', 'whois.nic.ly', None),
+ ('.ma', '', 'whois.iam.net.ma'),
+ ('.mc', '', 'NONE'),
+ ('.md', 'http://www.dns.md/wh1.php', 'WEB'),
+ ('.me', 'whois.nic.me', None),
+ ('.mg', 'whois.nic.mg', None),
+ ('.mh', '', 'NONE'),
+ ('.mk', 'whois.marnet.mk', None),
+ ('.ml', '', 'whois.dot.ml'),
+ ('.mm', '', 'NONE'),
+ ('.mn', 'whois.nic.mn', None),
+ ('.mo', 'http://www.monic.net.mo/', 'WEB'),
+ ('.mp', '', 'NONE'),
+ ('.mq', 'https://www.dom-enic.com/whois.html', 'WEB'),
+ ('.mr', '', 'NONE'),
+ ('.ms', 'whois.nic.ms', None),
+ ('.mt', 'https://www.nic.org.mt/dotmt/', 'WEB'),
+ ('.mu', 'whois.nic.mu', None),
+ ('.mv', '', 'NONE'),
+ ('.mw', 'http://www.registrar.mw/', 'WEB'),
+ ('.mx', 'whois.mx', None),
+ ('.my', 'whois.mynic.my', None),
+ ('.mz', 'whois.nic.mz', None),
+ ('.na', 'whois.na-nic.com.na', None),
+ ('.nc', 'whois.nc', None),
+ ('.ne', '', 'NONE'),
+ ('.nf', 'whois.nic.nf', None),
+ ('.ng', 'whois.nic.net.ng', None),
+ ('.ni', 'http://www.nic.ni/', 'WEB'),
+ ('.nl', 'whois.domain-registry.nl', None),
+ ('.no', 'whois.norid.no', None),
+ ('.np', 'http://register.mos.com.np/userSearchInc.asp', 'WEB'),
+ ('.nr', 'http://www.cenpac.net.nr/dns/whois.html', 'WEB'),
+ ('.nu', 'whois.iis.nu', None),
+ ('.nz', 'whois.srs.net.nz', None),
+ ('.om', 'whois.registry.om', None),
+ ('.pa', 'http://www.nic.pa/', 'WEB'),
+ ('.pe', 'kero.yachay.pe', None),
+ ('.pf', 'whois.registry.pf', None),
+ ('.pg', '', 'NONE'),
+ ('.ph', 'http://www.dot.ph/whois', 'WEB'),
+ ('.pk', 'http://www.pknic.net.pk/', 'WEB'),
+ ('.co.pl', '', 'whois.co.pl'),
+ ('.pl', 'whois.dns.pl', None),
+ ('.pm', 'whois.nic.pm', None),
+ ('.pn', 'http://www.pitcairn.pn/PnRegistry/', 'WEB'),
+ ('.pr', 'whois.nic.pr', None),
+ ('.ps', 'whois.pnina.ps', None),
+ ('.pt', 'whois.dns.pt', None),
+ ('.pw', 'whois.nic.pw', None),
+ ('.py', 'http://www.nic.py/consultas.html', 'WEB'),
+ ('.qa', 'whois.registry.qa', None),
+ ('.re', 'whois.nic.re', None),
+ ('.ro', 'whois.rotld.ro', None),
+ ('.rs', 'whois.rnids.rs', None),
+ ('.edu.ru', 'whois.informika.ru', None),
+ ('.ru', 'whois.tcinet.ru', None),
+ ('.rw', '', 'whois.ricta.org.rw'),
+ ('.sa', 'whois.nic.net.sa', None),
+ ('.sb', 'whois.nic.sb', None),
+ ('.sc', '', 'AFILIAS'),
+ ('.sd', '', 'NONE'),
+ ('.se', 'whois.iis.se', None),
+ ('.sg', 'whois.sgnic.sg', None),
+ ('.sh', 'whois.nic.sh', None),
+ ('.si', 'whois.arnes.si', None),
+ ('.sj', '', 'NONE'),
+ ('.sk', 'whois.sk-nic.sk', None),
+ ('.sl', 'whois.nic.sl', None),
+ ('.sm', 'whois.nic.sm', None),
+ ('.sn', 'whois.nic.sn', None),
+ ('.so', 'whois.nic.so', None),
+ ('.sr', '', 'NONE'),
+ ('.st', 'whois.nic.st', None),
+ ('.su', 'whois.tcinet.ru', None),
+ ('.sv', 'http://www.svnet.org.sv/', 'WEB'),
+ ('.sx', 'whois.sx', None),
+ ('.sy', 'whois.tld.sy', None),
+ ('.sz', '', 'NONE'),
+ ('.tc', 'whois.meridiantld.net', None),
+ ('.td', 'http://www.nic.td/', 'WEB'),
+ ('.tf', 'whois.nic.tf', None),
+ ('.tg', 'http://www.nic.tg/', 'WEB'),
+ ('.th', 'whois.thnic.co.th', None),
+ ('.tj', 'http://www.nic.tj/whois.html', 'WEB'),
+ ('.tk', 'whois.dot.tk', None),
+ ('.tl', 'whois.nic.tl', None),
+ ('.tm', 'whois.nic.tm', None),
+ ('.tn', 'whois.ati.tn', None),
+ ('.to', 'whois.tonic.to', None),
+ ('.tp', '', 'NONE'),
+ ('.tr', 'whois.nic.tr', None),
+ ('.tt', 'http://www.nic.tt/cgi-bin/search.pl', 'WEB'),
+ ('.tv', 'tvwhois.verisign-grs.com', 'VERISIGN'),
+ ('.tw', 'whois.twnic.net.tw', None),
+ ('.tz', 'whois.tznic.or.tz', None),
+ ('.biz.ua', 'whois.biz.ua', None),
+ ('.co.ua', 'whois.co.ua', None),
+ ('.pp.ua', 'whois.pp.ua', None),
+ ('.ua', 'whois.ua', None),
+ ('.ug', 'whois.co.ug', None),
+ ('.ac.uk', 'whois.ja.net', None),
+ ('.bl.uk', 'NONE', None),
+ ('.british-library.uk', 'NONE', None),
+ ('.gov.uk', 'whois.ja.net', None),
+ ('.icnet.uk', 'NONE', None),
+ ('.jet.uk', 'NONE', None),
+ ('.mod.uk', 'NONE', None),
+ ('.nhs.uk', 'NONE', None),
+ ('.nls.uk', 'NONE', None),
+ ('.parliament.uk', 'NONE', None),
+ ('.police.uk', 'NONE', None),
+ ('.uk', 'whois.nic.uk', None),
+ ('.fed.us', 'whois.nic.gov', None),
+ ('.us', 'whois.nic.us', None),
+ ('.com.uy', 'https://nic.anteldata.com.uy/dns/consultaWhois/whois.action', 'WEB'),
+ ('.uy', 'whois.nic.org.uy', None),
+ ('.uz', 'whois.cctld.uz', None),
+ ('.va', 'NONE', None),
+ ('.vc', 'AFILIAS', None),
+ ('.ve', 'whois.nic.ve', None),
+ ('.vg', 'whois.adamsnames.tc', None),
+ ('.vi', 'http://www.nic.vi/whoisform.htm', 'WEB'),
+ ('.vn', 'http://www.vnnic.vn/en/domain', 'WEB'),
+ ('.vu', 'vunic.vu', None),
+ ('.wf', 'whois.nic.wf', None),
+ ('.ws', 'whois.website.ws', None),
+ ('.ye', '', 'NONE'),
+ ('.yt', 'whois.nic.yt', None),
+ ('.ac.za', 'whois.ac.za', None),
+ ('.alt.za', 'whois.alt.za', None),
+ ('.co.za', 'whois.registry.net.za', None),
+ ('.gov.za', 'whois.gov.za', None),
+ ('.net.za', 'whois.net.za', None),
+ ('.org.za', 'http://www.org.za/', 'WEB'),
+ ('.web.za', 'whois.web.za', None),
+ ('.za', '', 'NONE'),
+ ('.zm', 'whois.nic.zm', None),
+ ('.zw', '', 'NONE'),
+ ('.xn--3e0b707e', '', 'whois.kr'),
+ ('.xn--45brj9c', '', 'whois.inregistry.net'),
+ ('.xn--80ao21a', '', 'whois.nic.kz'),
+ ('.xn--90a3ac', '', 'whois.rnids.rs'),
+ ('.xn--clchc0ea0b2g2a9gcd', '', 'whois.sgnic.sg'),
+ ('.xn--d1alf', '', 'whois.marnet.mk'),
+ ('.xn--fiqs8s', '', 'cwhois.cnnic.cn'),
+ ('.xn--fiqz9s', '', 'cwhois.cnnic.cn'),
+ ('.xn--fpcrj9c3d', '', 'whois.inregistry.net'),
+ ('.xn--fzc2c9e2c', '', 'whois.nic.lk'),
+ ('.xn--gecrj9c', '', 'whois.inregistry.net'),
+ ('.xn--h2brj9c', '', 'whois.inregistry.net'),
+ ('.xn--j1amh', '', 'whois.dotukr.com'),
+ ('.xn--j6w193g', '', 'whois.hkirc.hk'),
+ ('.xn--kprw13d', '', 'whois.twnic.net.tw'),
+ ('.xn--kpry57d', '', 'whois.twnic.net.tw'),
+ ('.xn--l1acc', '', 'whois.nic.mn'),
+ ('.xn--lgbbat1ad8j', '', 'whois.nic.dz'),
+ ('.xn--mgb9awbf', '', 'whois.registry.om'),
+ ('.xn--mgba3a4f16a', '', 'whois.nic.ir'),
+ ('.xn--mgbaam7a8h', '', 'whois.aeda.net.ae'),
+ ('.xn--mgbayh7gpa', 'http://idn.jo/whois_a.aspx', 'WEB'),
+ ('.xn--mgbbh1a71e', '', 'whois.inregistry.net'),
+ ('.xn--mgbc0a9azcg', '', 'NONE'),
+ ('.xn--mgberp4a5d4ar', '', 'whois.nic.net.sa'),
+ ('.xn--mgbx4cd0ab', '', 'whois.mynic.my'),
+ ('.xn--node', '', 'whois.itdc.ge'),
+ ('.xn--o3cw4h', '', 'whois.thnic.co.th'),
+ ('.xn--ogbpf8fl', '', 'whois.tld.sy'),
+ ('.xn--p1ai', '', 'whois.tcinet.ru'),
+ ('.xn--pgbs0dh', '', 'NONE'),
+ ('.xn--s9brj9c', '', 'whois.inregistry.net'),
+ ('.xn--wgbh1c', '', 'whois.dotmasr.eg'),
+ ('.xn--wgbl6a', '', 'whois.registry.qa'),
+ ('.xn--xkc2al3hye2a', '', 'whois.nic.lk'),
+ ('.xn--xkc2dl3a5ee0h', '', 'whois.inregistry.net'),
+ ('.xn--yfro4i67o', '', 'whois.sgnic.sg'),
+ ('.xn--ygbi2ammx', '', 'whois.pnina.ps'),
+ ('.abogado', 'whois.abogado', None),
+ ('.academy', 'whois.academy', None),
+ ('.accountants', 'whois.accountants', None),
+ ('.active', 'whois.active', None),
+ ('.actor', 'whois.actor', None),
+ ('.agency', 'whois.agency', None),
+ ('.airforce', 'whois.airforce', None),
+ ('.allfinanz', 'whois.allfinanz', None),
+ ('.alsace', 'whois.alsace', None),
+ ('.archi', 'whois.archi', None),
+ ('.army', 'whois.army', None),
+ ('.associates', 'whois.associates', None),
+ ('.attorney', 'whois.attorney', None),
+ ('.auction', 'whois.auction', None),
+ ('.audio', 'whois.audio', None),
+ ('.autos', 'whois.autos', None),
+ ('.axa', 'whois.axa', None),
+ ('.band', 'whois.band', None),
+ ('.bar', 'whois.bar', None),
+ ('.bargains', 'whois.bargains', None),
+ ('.bayern', 'whois.bayern', None),
+ ('.beer', 'whois.beer', None),
+ ('.berlin', 'whois.berlin', None),
+ ('.best', 'whois.best', None),
+ ('.bid', 'whois.bid', None),
+ ('.bike', 'whois.bike', None),
+ ('.bio', 'whois.bio', None),
+ ('.black', 'whois.black', None),
+ ('.blackfriday', 'whois.blackfriday', None),
+ ('.bloomberg', 'whois.bloomberg', None),
+ ('.blue', 'whois.blue', None),
+ ('.bmw', 'whois.bmw', None),
+ ('.bnpparibas', 'whois.bnpparibas', None),
+ ('.boo', 'whois.boo', None),
+ ('.boutique', 'whois.boutique', None),
+ ('.brussels', 'whois.brussels', None),
+ ('.budapest', 'whois.budapest', None),
+ ('.build', 'whois.build', None),
+ ('.builders', 'whois.builders', None),
+ ('.business', 'whois.business', None),
+ ('.buzz', 'whois.buzz', None),
+ ('.bzh', 'whois.bzh', None),
+ ('.cab', 'whois.cab', None),
+ ('.cal', 'whois.cal', None),
+ ('.camera', 'whois.camera', None),
+ ('.camp', 'whois.camp', None),
+ ('.cancerresearch', 'whois.cancerresearch', None),
+ ('.capetown', 'whois.capetown', None),
+ ('.capital', 'whois.capital', None),
+ ('.caravan', 'whois.caravan', None),
+ ('.cards', 'whois.cards', None),
+ ('.care', 'whois.care', None),
+ ('.career', 'whois.career', None),
+ ('.careers', 'whois.careers', None),
+ ('.casa', 'whois.casa', None),
+ ('.cash', 'whois.cash', None),
+ ('.catering', 'whois.catering', None),
+ ('.center', 'whois.center', None),
+ ('.ceo', 'whois.ceo', None),
+ ('.cern', 'whois.cern', None),
+ ('.channel', 'whois.channel', None),
+ ('.cheap', 'whois.cheap', None),
+ ('.christmas', 'whois.christmas', None),
+ ('.chrome', 'whois.chrome', None),
+ ('.church', 'whois.church', None),
+ ('.citic', 'whois.citic', None),
+ ('.city', 'whois.city', None),
+ ('.claims', 'whois.claims', None),
+ ('.cleaning', 'whois.cleaning', None),
+ ('.click', 'whois.click', None),
+ ('.clinic', 'whois.clinic', None),
+ ('.clothing', 'whois.clothing', None),
+ ('.club', 'whois.club', None),
+ ('.codes', 'whois.codes', None),
+ ('.coffee', 'whois.coffee', None),
+ ('.college', 'whois.college', None),
+ ('.cologne', 'whois.cologne', None),
+ ('.com', 'whois.com', None),
+ ('.community', 'whois.community', None),
+ ('.company', 'whois.company', None),
+ ('.computer', 'whois.computer', None),
+ ('.condos', 'whois.condos', None),
+ ('.construction', 'whois.construction', None),
+ ('.consulting', 'whois.consulting', None),
+ ('.contractors', 'whois.contractors', None),
+ ('.cooking', 'whois.cooking', None),
+ ('.cool', 'whois.cool', None),
+ ('.country', 'whois.country', None),
+ ('.credit', 'whois.credit', None),
+ ('.creditcard', 'whois.creditcard', None),
+ ('.crs', 'whois.crs', None),
+ ('.cruises', 'whois.cruises', None),
+ ('.cuisinella', 'whois.cuisinella', None),
+ ('.cymru', 'whois.cymru', None),
+ ('.dad', 'whois.dad', None),
+ ('.dance', 'whois.dance', None),
+ ('.dating', 'whois.dating', None),
+ ('.day', 'whois.day', None),
+ ('.deals', 'whois.deals', None),
+ ('.degree', 'whois.degree', None),
+ ('.delivery', 'whois.delivery', None),
+ ('.democrat', 'whois.democrat', None),
+ ('.dental', 'whois.dental', None),
+ ('.dentist', 'whois.dentist', None),
+ ('.desi', 'whois.desi', None),
+ ('.diamonds', 'whois.diamonds', None),
+ ('.diet', 'whois.diet', None),
+ ('.digital', 'whois.digital', None),
+ ('.direct', 'whois.direct', None),
+ ('.directory', 'whois.directory', None),
+ ('.discount', 'whois.discount', None),
+ ('.dnp', 'whois.dnp', None),
+ ('.domains', 'whois.domains', None),
+ ('.durban', 'whois.durban', None),
+ ('.dvag', 'whois.dvag', None),
+ ('.eat', 'whois.eat', None),
+ ('.education', 'whois.education', None),
+ ('.email', 'whois.email', None),
+ ('.emerck', 'whois.emerck', None),
+ ('.energy', 'whois.energy', None),
+ ('.engineer', 'whois.engineer', None),
+ ('.engineering', 'whois.engineering', None),
+ ('.enterprises', 'whois.enterprises', None),
+ ('.equipment', 'whois.equipment', None),
+ ('.esq', 'whois.esq', None),
+ ('.estate', 'whois.estate', None),
+ ('.eus', 'whois.eus', None),
+ ('.events', 'whois.events', None),
+ ('.exchange', 'whois.exchange', None),
+ ('.expert', 'whois.expert', None),
+ ('.exposed', 'whois.exposed', None),
+ ('.fail', 'whois.fail', None),
+ ('.farm', 'whois.farm', None),
+ ('.feedback', 'whois.feedback', None),
+ ('.finance', 'whois.finance', None),
+ ('.financial', 'whois.financial', None),
+ ('.fish', 'whois.fish', None),
+ ('.fishing', 'whois.fishing', None),
+ ('.fitness', 'whois.fitness', None),
+ ('.flights', 'whois.flights', None),
+ ('.florist', 'whois.florist', None),
+ ('.flsmidth', 'whois.flsmidth', None),
+ ('.fly', 'whois.fly', None),
+ ('.foo', 'whois.foo', None),
+ ('.forsale', 'whois.forsale', None),
+ ('.foundation', 'whois.foundation', None),
+ ('.frl', 'whois.frl', None),
+ ('.frogans', 'whois.frogans', None),
+ ('.fund', 'whois.fund', None),
+ ('.furniture', 'whois.furniture', None),
+ ('.futbol', 'whois.futbol', None),
+ ('.gal', 'whois.gal', None),
+ ('.gallery', 'whois.gallery', None),
+ ('.gbiz', 'whois.gbiz', None),
+ ('.gent', 'whois.gent', None),
+ ('.gift', 'whois.gift', None),
+ ('.gifts', 'whois.gifts', None),
+ ('.gives', 'whois.gives', None),
+ ('.glass', 'whois.glass', None),
+ ('.gle', 'whois.gle', None),
+ ('.global', 'whois.global', None),
+ ('.globo', 'whois.globo', None),
+ ('.gmail', 'whois.gmail', None),
+ ('.gmo', 'whois.gmo', None),
+ ('.gmx', 'whois.gmx', None),
+ ('.google', 'whois.google', None),
+ ('.gop', 'whois.gop', None),
+ ('.graphics', 'whois.graphics', None),
+ ('.gratis', 'whois.gratis', None),
+ ('.green', 'whois.green', None),
+ ('.gripe', 'whois.gripe', None),
+ ('.guide', 'whois.guide', None),
+ ('.guitars', 'whois.guitars', None),
+ ('.guru', 'whois.guru', None),
+ ('.hamburg', 'whois.hamburg', None),
+ ('.haus', 'whois.haus', None),
+ ('.healthcare', 'whois.healthcare', None),
+ ('.help', 'whois.help', None),
+ ('.here', 'whois.here', None),
+ ('.hiphop', 'whois.hiphop', None),
+ ('.hiv', 'whois.hiv', None),
+ ('.holdings', 'whois.holdings', None),
+ ('.holiday', 'whois.holiday', None),
+ ('.homes', 'whois.homes', None),
+ ('.horse', 'whois.horse', None),
+ ('.host', 'whois.host', None),
+ ('.hosting', 'whois.hosting', None),
+ ('.house', 'whois.house', None),
+ ('.how', 'whois.how', None),
+ ('.ibm', 'whois.ibm', None),
+ ('.immo', 'whois.immo', None),
+ ('.immobilien', 'whois.immobilien', None),
+ ('.industries', 'whois.industries', None),
+ ('.info', 'whois.info', None),
+ ('.ing', 'whois.ing', None),
+ ('.ink', 'whois.ink', None),
+ ('.institute', 'whois.institute', None),
+ ('.insure', 'whois.insure', None),
+ ('.international', 'whois.international', None),
+ ('.investments', 'whois.investments', None),
+ ('.jetzt', 'whois.jetzt', None),
+ ('.joburg', 'whois.joburg', None),
+ ('.juegos', 'whois.juegos', None),
+ ('.kaufen', 'whois.kaufen', None),
+ ('.kim', 'whois.kim', None),
+ ('.kitchen', 'whois.kitchen', None),
+ ('.kiwi', 'whois.kiwi', None),
+ ('.koeln', 'whois.koeln', None),
+ ('.krd', 'whois.krd', None),
+ ('.kred', 'whois.kred', None),
+ ('.lacaixa', 'whois.lacaixa', None),
+ ('.land', 'whois.land', None),
+ ('.lawyer', 'whois.lawyer', None),
+ ('.lease', 'whois.lease', None),
+ ('.lgbt', 'whois.lgbt', None),
+ ('.life', 'whois.life', None),
+ ('.lighting', 'whois.lighting', None),
+ ('.limited', 'whois.limited', None),
+ ('.limo', 'whois.limo', None),
+ ('.link', 'whois.link', None),
+ ('.loans', 'whois.loans', None),
+ ('.london', 'whois.london', None),
+ ('.lotto', 'whois.lotto', None),
+ ('.ltda', 'whois.ltda', None),
+ ('.luxe', 'whois.luxe', None),
+ ('.luxury', 'whois.luxury', None),
+ ('.maison', 'whois.maison', None),
+ ('.management', 'whois.management', None),
+ ('.mango', 'whois.mango', None),
+ ('.market', 'whois.market', None),
+ ('.marketing', 'whois.marketing', None),
+ ('.media', 'whois.media', None),
+ ('.meet', 'whois.meet', None),
+ ('.melbourne', 'whois.melbourne', None),
+ ('.meme', 'whois.meme', None),
+ ('.menu', 'whois.menu', None),
+ ('.miami', 'whois.miami', None),
+ ('.mini', 'whois.mini', None),
+ ('.moda', 'whois.moda', None),
+ ('.moe', 'whois.moe', None),
+ ('.monash', 'whois.monash', None),
+ ('.mortgage', 'whois.mortgage', None),
+ ('.moscow', 'whois.moscow', None),
+ ('.motorcycles', 'whois.motorcycles', None),
+ ('.mov', 'whois.mov', None),
+ ('.nagoya', 'whois.nagoya', None),
+ ('.navy', 'whois.navy', None),
+ ('.net', 'whois.net', None),
+ ('.network', 'whois.network', None),
+ ('.neustar', 'whois.neustar', None),
+ ('.new', 'whois.new', None),
+ ('.nexus', 'whois.nexus', None),
+ ('.ngo', 'whois.ngo', None),
+ ('.nhk', 'whois.nhk', None),
+ ('.ninja', 'whois.ninja', None),
+ ('.nra', 'whois.nra', None),
+ ('.nrw', 'whois.nrw', None),
+ ('.nyc', 'whois.nyc', None),
+ ('.okinawa', 'whois.okinawa', None),
+ ('.ong', 'whois.ong', None),
+ ('.onl', 'whois.onl', None),
+ ('.ooo', 'whois.ooo', None),
+ ('.org', 'whois.org', None),
+ ('.organic', 'whois.organic', None),
+ ('.otsuka', 'whois.otsuka', None),
+ ('.ovh', 'whois.ovh', None),
+ ('.paris', 'whois.paris', None),
+ ('.partners', 'whois.partners', None),
+ ('.parts', 'whois.parts', None),
+ ('.pharmacy', 'whois.pharmacy', None),
+ ('.photo', 'whois.photo', None),
+ ('.photography', 'whois.photography', None),
+ ('.photos', 'whois.photos', None),
+ ('.physio', 'whois.physio', None),
+ ('.pics', 'whois.pics', None),
+ ('.pictures', 'whois.pictures', None),
+ ('.pink', 'whois.pink', None),
+ ('.pizza', 'whois.pizza', None),
+ ('.place', 'whois.place', None),
+ ('.plumbing', 'whois.plumbing', None),
+ ('.pohl', 'whois.pohl', None),
+ ('.poker', 'whois.poker', None),
+ ('.praxi', 'whois.praxi', None),
+ ('.press', 'whois.press', None),
+ ('.prod', 'whois.prod', None),
+ ('.productions', 'whois.productions', None),
+ ('.prof', 'whois.prof', None),
+ ('.properties', 'whois.properties', None),
+ ('.property', 'whois.property', None),
+ ('.pub', 'whois.pub', None),
+ ('.qpon', 'whois.qpon', None),
+ ('.quebec', 'whois.quebec', None),
+ ('.realtor', 'whois.realtor', None),
+ ('.recipes', 'whois.recipes', None),
+ ('.red', 'whois.red', None),
+ ('.rehab', 'whois.rehab', None),
+ ('.reise', 'whois.reise', None),
+ ('.reisen', 'whois.reisen', None),
+ ('.ren', 'whois.ren', None),
+ ('.rentals', 'whois.rentals', None),
+ ('.repair', 'whois.repair', None),
+ ('.report', 'whois.report', None),
+ ('.republican', 'whois.republican', None),
+ ('.rest', 'whois.rest', None),
+ ('.restaurant', 'whois.restaurant', None),
+ ('.reviews', 'whois.reviews', None),
+ ('.rich', 'whois.rich', None),
+ ('.rio', 'whois.rio', None),
+ ('.rip', 'whois.rip', None),
+ ('.rocks', 'whois.rocks', None),
+ ('.rodeo', 'whois.rodeo', None),
+ ('.rsvp', 'whois.rsvp', None),
+ ('.ruhr', 'whois.ruhr', None),
+ ('.ryukyu', 'whois.ryukyu', None),
+ ('.saarland', 'whois.saarland', None),
+ ('.sarl', 'whois.sarl', None),
+ ('.sca', 'whois.sca', None),
+ ('.scb', 'whois.scb', None),
+ ('.schmidt', 'whois.schmidt', None),
+ ('.schule', 'whois.schule', None),
+ ('.scot', 'whois.scot', None),
+ ('.services', 'whois.services', None),
+ ('.sexy', 'whois.sexy', None),
+ ('.shiksha', 'whois.shiksha', None),
+ ('.shoes', 'whois.shoes', None),
+ ('.singles', 'whois.singles', None),
+ ('.social', 'whois.social', None),
+ ('.software', 'whois.software', None),
+ ('.sohu', 'whois.sohu', None),
+ ('.solar', 'whois.solar', None),
+ ('.solutions', 'whois.solutions', None),
+ ('.soy', 'whois.soy', None),
+ ('.space', 'whois.space', None),
+ ('.spiegel', 'whois.spiegel', None),
+ ('.supplies', 'whois.supplies', None),
+ ('.supply', 'whois.supply', None),
+ ('.support', 'whois.support', None),
+ ('.surf', 'whois.surf', None),
+ ('.surgery', 'whois.surgery', None),
+ ('.suzuki', 'whois.suzuki', None),
+ ('.sydney', 'whois.sydney', None),
+ ('.systems', 'whois.systems', None),
+ ('.taipei', 'whois.taipei', None),
+ ('.tatar', 'whois.tatar', None),
+ ('.tattoo', 'whois.tattoo', None),
+ ('.tax', 'whois.tax', None),
+ ('.technology', 'whois.technology', None),
+ ('.tienda', 'whois.tienda', None),
+ ('.tips', 'whois.tips', None),
+ ('.tirol', 'whois.tirol', None),
+ ('.today', 'whois.today', None),
+ ('.tokyo', 'whois.tokyo', None),
+ ('.tools', 'whois.tools', None),
+ ('.top', 'whois.top', None),
+ ('.town', 'whois.town', None),
+ ('.toys', 'whois.toys', None),
+ ('.trade', 'whois.trade', None),
+ ('.training', 'whois.training', None),
+ ('.tui', 'whois.tui', None),
+ ('.university', 'whois.university', None),
+ ('.uno', 'whois.uno', None),
+ ('.uol', 'whois.uol', None),
+ ('.vacations', 'whois.vacations', None),
+ ('.vegas', 'whois.vegas', None),
+ ('.ventures', 'whois.ventures', None),
+ ('.versicherung', 'whois.versicherung', None),
+ ('.vet', 'whois.vet', None),
+ ('.viajes', 'whois.viajes', None),
+ ('.villas', 'whois.villas', None),
+ ('.vision', 'whois.vision', None),
+ ('.vlaanderen', 'whois.vlaanderen', None),
+ ('.vodka', 'whois.vodka', None),
+ ('.vote', 'whois.vote', None),
+ ('.voting', 'whois.voting', None),
+ ('.voto', 'whois.voto', None),
+ ('.voyage', 'whois.voyage', None),
+ ('.wales', 'whois.wales', None),
+ ('.wang', 'whois.wang', None),
+ ('.watch', 'whois.watch', None),
+ ('.webcam', 'whois.webcam', None),
+ ('.website', 'whois.website', None),
+ ('.wed', 'whois.wed', None),
+ ('.wedding', 'whois.wedding', None),
+ ('.whoswho', 'whois.whoswho', None),
+ ('.wien', 'whois.wien', None),
+ ('.wiki', 'whois.wiki', None),
+ ('.williamhill', 'whois.williamhill', None),
+ ('.wme', 'whois.wme', None),
+ ('.work', 'whois.work', None),
+ ('.works', 'whois.works', None),
+ ('.world', 'whois.world', None),
+ ('.wtc', 'whois.wtc', None),
+ ('.wtf', 'whois.wtf', None),
+ ('.xyz', 'whois.xyz', None),
+ ('.yachts', 'whois.yachts', None),
+ ('.yandex', 'whois.yandex', None),
+ ('.yoga', 'whois.yoga', None),
+ ('.yokohama', 'whois.yokohama', None),
+ ('.youtube', 'whois.youtube', None),
+ ('.zip', 'whois.zip', None),
+ ('.zone', 'whois.zone', None),
+]
+
+def whois_request(domain, server, port=43):
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.connect((server, port))
+ sock.send(("%s\r\n" % domain).encode("utf-8"))
+ buff = b""
+ while True:
+ data = sock.recv(1024)
+ if len(data) == 0:
+ break
+ buff += data
+ return buff.decode("utf-8")
+
+#print whois_request("baidu.com","whois.verisign-grs.com")
+def whois(domain):
+ r = domain.rindex(".")
+ houz = domain[r:]
+ for data in TLDS:
+ if data[0] == houz:
+ return whois_request(domain,data[1])
+ return ""
+
From 414918e6ad9ddaaccabbad7f7a5033dfb7f9ce8d Mon Sep 17 00:00:00 2001
From: boyhack <34109680@qq.com>
Date: Tue, 25 Oct 2016 12:11:01 +0800
Subject: [PATCH 2/8] update readme.md
---
README.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 85be403..8520cd6 100644
--- a/README.md
+++ b/README.md
@@ -3,9 +3,11 @@
web框架是flask 前端框架是amazeUI
需要支持 flask
+
pip install flask
+pip install requests
输入 python myweb.py 就可以运行了
+10.25更新 加入了社会工程学密码生成和whois查询
10.21更新 加入了CMS在线识别
-需要pip install requests
\ No newline at end of file
From 636310c7ec3c9830b0da300db56d832d45fccfb4 Mon Sep 17 00:00:00 2001
From: boyhack <34109680@qq.com>
Date: Mon, 7 Nov 2016 12:23:19 +0800
Subject: [PATCH 3/8] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E4=BA=86=E7=A4=BE?=
=?UTF-8?q?=E5=B7=A5=E5=BA=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
myweb.py | 12 ++++++++++
skg.py | 33 ++++++++++++++++++++++++++
templates/base.html | 1 +
templates/skg.html | 58 +++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 104 insertions(+)
create mode 100644 skg.py
create mode 100644 templates/skg.html
diff --git a/myweb.py b/myweb.py
index 5fecd63..192c92b 100644
--- a/myweb.py
+++ b/myweb.py
@@ -8,6 +8,8 @@
import cms
import sys
import whois
+import skg
+
reload(sys)
sys.setdefaultencoding('utf-8')
@@ -76,5 +78,15 @@ def whoisa():
else:
return render_template('whois.html',title="Whois查询")
+#调用外部社工库进行查询
+@app.route('/pass',methods=["get","post"])
+def findpass():
+ if request.method == 'POST':
+ info = request.form.get("search")
+ data = skg.findpass(info)
+ return render_template('skg.html',data=data,title="社工库查询")
+ else:
+ return render_template('skg.html',title="社工库查询")
+
if __name__ == '__main__':
app.run(debug=True)
diff --git a/skg.py b/skg.py
new file mode 100644
index 0000000..b33013a
--- /dev/null
+++ b/skg.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+# coding=utf-8
+
+"""
+社工库调用
+"""
+
+import requests
+import json
+
+def findpass(username):
+ payload = {'q':username}
+ headers = {"Accept":"application/json, text/javascript, */*; q=0.01",
+ "User-Agent":"Mozilla/5.0 (Windows NT 9.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36",
+ "Referer":"http://www.fangzhuangku.com/pwd"}
+ r = requests.post("http://www.fangzhuangku.com/function/pwdsearch.php",data = payload,headers=headers)
+ s = json.loads(r.text)
+ sdata = s["data"]
+ dict = list()
+ if len(sdata):
+ for key in sdata:
+ for key1 in sdata[key]:
+ ls_data = {'u':'','p':'','e':'','s':key}
+ if 'u' in key1.keys():
+ ls_data["u"] = key1["u"]
+ if 'p' in key1.keys():
+ ls_data["p"] = key1["p"]
+ if 'e' in key1.keys():
+ ls_data["e"] = key1["e"]
+ dict.append(ls_data)
+ return dict
+if __name__ == '__main__':
+ pass
\ No newline at end of file
diff --git a/templates/base.html b/templates/base.html
index e9248b7..c741660 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -167,6 +167,7 @@
CMS识别
密码生成
whois查询
+ 社工库
开启全屏
diff --git a/templates/skg.html b/templates/skg.html
new file mode 100644
index 0000000..aae89e2
--- /dev/null
+++ b/templates/skg.html
@@ -0,0 +1,58 @@
+{% extends "base.html" %}
+{% block content %}
+
+
+
+{% endblock %}
From a5914295a1ecbba58fec161494758889b71b64a7 Mon Sep 17 00:00:00 2001
From: boyhack <34109680@qq.com>
Date: Mon, 7 Nov 2016 12:31:42 +0800
Subject: [PATCH 4/8] update md
---
README.md | 24 ++++++++++++++++++------
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index 8520cd6..1e52ee5 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,25 @@
# pythonwebhack
-用python 2.7实现的web框架建立的在线渗透平台
-web框架是flask 前端框架是amazeUI
-需要支持 flask
+> 用python 2.7实现的web框架建立的在线渗透平台
+> web框架是flask 前端框架是amazeUI
+## 安装
pip install flask
pip install requests
+[usage]: python `myweb.py `
-输入 python myweb.py 就可以运行了
+## 更新
-10.25更新 加入了社会工程学密码生成和whois查询
-10.21更新 加入了CMS在线识别
+- 11.7 更新 加入了在线社工库 调用的接口~
+- 10.25 更新 加入了社会工程学密码生成和whois查询
+- 10.21 更新 加入了CMS在线识别
+
+## 学习教程
+每一步都记录了 [编写记录][1]
+
+
+ 用新浪云搭建了下 [http://systeminfo.applinzi.com/][2]
+
+
+ [1]: http://bbs.ichunqiu.com/forum.php?mod=collection&action=view&ctid=65
+ [2]: http://systeminfo.applinzi.com/
From 8d54d77448d12b130684b2f5922a2d5f72c56773 Mon Sep 17 00:00:00 2001
From: boyhack <34109680@qq.com>
Date: Mon, 7 Nov 2016 12:38:55 +0800
Subject: [PATCH 5/8] =?UTF-8?q?=E5=AF=86=E7=A0=81=E7=94=9F=E6=88=90?=
=?UTF-8?q?=E6=94=B9=E4=B8=BA=E4=B8=8B=E8=BD=BD=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
myweb.py | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/myweb.py b/myweb.py
index 192c92b..389846b 100644
--- a/myweb.py
+++ b/myweb.py
@@ -50,6 +50,7 @@ def webdna():
@app.route('/password',methods=["get","post"])
def password_build():
if request.method == 'POST':
+ from flask import make_response
birthday = request.form.get("birthday","")
fullname = request.form.get("fullname","")
nickname = request.form.get("nickname","")
@@ -64,7 +65,12 @@ def password_build():
keynumbers = request.form.get("keynumbers","")
pwgen = PasswdGenerator(fullname=fullname,nickname=nickname,englishname=englishname,partnername=partnername,phone=phone,qq=qq,company=company,domain=domain,oldpasswd=oldpasswd,keywords=keywords,keynumbers=keynumbers,birthday=birthday)
wordlist = pwgen.generate()
- return render_template('password.html',data=wordlist,title="社工密码生成")
+ content = '\n'.join(wordlist)
+ #content = "long text"
+ response = make_response(content)
+ response.headers["Content-Disposition"] = "attachment; filename=pass.txt"
+ return response
+ #return render_template('password.html',data=wordlist,title="社工密码生成")
else:
return render_template('password.html',title="社工密码生成")
From ab1fb88c7df389839716622518f7905655dafc9c Mon Sep 17 00:00:00 2001
From: boyhack <34109680@qq.com>
Date: Tue, 22 Nov 2016 16:47:09 +0800
Subject: [PATCH 6/8] =?UTF-8?q?=E9=9B=86=E6=88=90=E4=BA=86=E4=B9=8C?=
=?UTF-8?q?=E4=BA=91=E6=BC=8F=E6=B4=9E=E6=9F=A5=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 10 ++++++--
myweb.py | 36 ++++++++++++++++++++++++++-
templates/base.html | 1 +
templates/wooyun.html | 58 +++++++++++++++++++++++++++++++++++++++++++
4 files changed, 102 insertions(+), 3 deletions(-)
create mode 100644 templates/wooyun.html
diff --git a/README.md b/README.md
index 1e52ee5..0597e84 100644
--- a/README.md
+++ b/README.md
@@ -4,15 +4,20 @@
> web框架是flask 前端框架是amazeUI
## 安装
-pip install flask
-pip install requests
+`pip install flask`
+`pip install requests`
+`pip install MySQLdb `
+
[usage]: python `myweb.py `
+乌云数据库文件安装 链接: http://pan.baidu.com/s/1hrKYy8W 密码: yrrr
+
## 更新
- 11.7 更新 加入了在线社工库 调用的接口~
- 10.25 更新 加入了社会工程学密码生成和whois查询
- 10.21 更新 加入了CMS在线识别
+- 11.22 更新 集成了乌云漏洞查询 [搭建教程][3]
## 学习教程
每一步都记录了 [编写记录][1]
@@ -23,3 +28,4 @@ pip install requests
[1]: http://bbs.ichunqiu.com/forum.php?mod=collection&action=view&ctid=65
[2]: http://systeminfo.applinzi.com/
+ [3]: http://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=15744&page=1&extra=#pid261144
diff --git a/myweb.py b/myweb.py
index 389846b..0f9e168 100644
--- a/myweb.py
+++ b/myweb.py
@@ -10,12 +10,18 @@
import whois
import skg
+import MySQLdb
+import sys
reload(sys)
sys.setdefaultencoding('utf-8')
-app = Flask(__name__)
+app = Flask(__name__)
+#连接数据库操作
+db = MySQLdb.connect("127.0.0.1","root","","pyhack",charset='utf8' )
+cursor = db.cursor()
+
@app.route('/',methods=["get","post"])
def index():
return render_template('ip.html')
@@ -94,5 +100,33 @@ def findpass():
else:
return render_template('skg.html',title="社工库查询")
+#集成wooyun漏洞平台
+@app.route('/wooyun',methods=["get","post"])
+def wooyun():
+ searchword = request.args.get('key', '').strip()
+ log_id = request.args.get('id', '').strip()
+ data = {}
+ table = list()
+ if log_id:
+ # 使用execute方法执行SQL语句
+ cursor.execute(MySQLdb.escape_string("SELECT * from emlog_blog where gid=%s"%log_id))
+ # 使用 fetchone() 方法获取一条数据库。
+ results = cursor.fetchone()
+ data["id"] = results[0]
+ data["text"] = results[2]
+ data["title"] = results[1]
+ if searchword:
+ sql = 'SELECT gid,title from emlog_blog where title like "%%%s%%"'%searchword
+ cursor.execute(sql)
+ #cursor.execute('SELECT * from emlog_blog limit 10')
+ results = cursor.fetchall()
+
+ for rows in results:
+ tdata = {}
+ tdata["id"] = rows[0]
+ tdata["title"] = rows[1]
+ table.append(tdata)
+ return render_template("wooyun.html",title="乌云漏洞查询",data=data,table=table)
+
if __name__ == '__main__':
app.run(debug=True)
diff --git a/templates/base.html b/templates/base.html
index c741660..46c037d 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -168,6 +168,7 @@
密码生成
whois查询
社工库
+ 漏洞查询
开启全屏
diff --git a/templates/wooyun.html b/templates/wooyun.html
new file mode 100644
index 0000000..6df5a15
--- /dev/null
+++ b/templates/wooyun.html
@@ -0,0 +1,58 @@
+{% extends "base.html" %}
+{% block content %}
+
+
+
+{% endblock %}
\ No newline at end of file
From 82cb5eca3458d3fdbac142d464a6ef37a27253ee Mon Sep 17 00:00:00 2001
From: boyhack <34109680@qq.com>
Date: Tue, 22 Nov 2016 16:48:34 +0800
Subject: [PATCH 7/8] readme.me
---
README.md | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 0597e84..81bece2 100644
--- a/README.md
+++ b/README.md
@@ -4,9 +4,12 @@
> web框架是flask 前端框架是amazeUI
## 安装
-`pip install flask`
-`pip install requests`
-`pip install MySQLdb `
+`pip install flask`
+
+`pip install requests`
+
+`pip install MySQLdb `
+
[usage]: python `myweb.py `
From b3caca973425c44e59dd439a34a3a52cf95b704d Mon Sep 17 00:00:00 2001
From: boyhack <34109680@qq.com>
Date: Wed, 7 Dec 2016 22:33:42 +0800
Subject: [PATCH 8/8] =?UTF-8?q?update=20wooyun=E5=BF=BD=E7=95=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 4 +++-
myweb.py | 25 +++++++++++++++++++++++--
templates/base.html | 10 +++++++++-
templates/wooyun.html | 8 +++++++-
4 files changed, 42 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 81bece2..7b84718 100644
--- a/README.md
+++ b/README.md
@@ -17,10 +17,12 @@
## 更新
+- 12.7 更新 加入乌云漏洞库忽略漏洞查询
+- 11.22 更新 集成了乌云漏洞查询 [搭建教程][3]
- 11.7 更新 加入了在线社工库 调用的接口~
- 10.25 更新 加入了社会工程学密码生成和whois查询
- 10.21 更新 加入了CMS在线识别
-- 11.22 更新 集成了乌云漏洞查询 [搭建教程][3]
+
## 学习教程
每一步都记录了 [编写记录][1]
diff --git a/myweb.py b/myweb.py
index 0f9e168..6b4a0df 100644
--- a/myweb.py
+++ b/myweb.py
@@ -102,7 +102,8 @@ def findpass():
#集成wooyun漏洞平台
@app.route('/wooyun',methods=["get","post"])
-def wooyun():
+@app.route('/wooyun/',methods=["get","post"])
+def wooyun(pages = 0):
searchword = request.args.get('key', '').strip()
log_id = request.args.get('id', '').strip()
data = {}
@@ -116,7 +117,7 @@ def wooyun():
data["text"] = results[2]
data["title"] = results[1]
if searchword:
- sql = 'SELECT gid,title from emlog_blog where title like "%%%s%%"'%searchword
+ sql = 'SELECT gid,title from emlog_blog where title like "%%%s%%"'%(searchword)
cursor.execute(sql)
#cursor.execute('SELECT * from emlog_blog limit 10')
results = cursor.fetchall()
@@ -128,5 +129,25 @@ def wooyun():
table.append(tdata)
return render_template("wooyun.html",title="乌云漏洞查询",data=data,table=table)
+#集成wooyun漏洞平台 -被忽略的漏洞
+@app.route('/wooyun1',methods=["get","post"])
+@app.route('/wooyun1/',methods=["get","post"])
+def wooyun1(pages=0):
+ if pages is None:
+ pages = 0
+ if pages < 0:
+ pages = 0
+ sql = 'SELECT gid,title from emlog_blog where content like "%%%s%%" limit %d,%d'%("无影响厂商忽略",pages*20,20)
+ print sql
+ cursor.execute(sql)
+ results = cursor.fetchall()
+ table = list()
+ for rows in results:
+ tdata = {}
+ tdata["id"] = rows[0]
+ tdata["title"] = rows[1]
+ table.append(tdata)
+ return render_template("wooyun.html",title="乌云忽略漏洞查询",table=table,next=pages+1,prev=pages-1)
+
if __name__ == '__main__':
app.run(debug=True)
diff --git a/templates/base.html b/templates/base.html
index 46c037d..f770704 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -168,7 +168,15 @@
密码生成
whois查询
社工库
- 漏洞查询
+
+
+ 漏洞bugs
+
+
+
开启全屏
diff --git a/templates/wooyun.html b/templates/wooyun.html
index 6df5a15..76ce071 100644
--- a/templates/wooyun.html
+++ b/templates/wooyun.html
@@ -38,11 +38,17 @@ WooYun漏洞查询
| {{foo.id}} |
{{foo.title}} |
- 查看 |
+ 查看 |
{% endfor %}
+ {% if next %}
+
+ {% endif %}
{% endif %}
{% if data %}
{{data.title}}