
AIL और अन्य सिस्टम को फीड करने के लिए डोमेन नाम पर्म्यूटेशन इंजन के साथ संभावित टाइपो स्क्वाटिंग डोमेन की सूची तैयार करें।
ail-typo-squatting एक Python लाइब्रेरी है जो डोमेन नाम क्रम-परिवर्तन (permutation) इंजन के साथ संभावित टाइपो स्क्वाटिंग डोमेनों की सूची उत्पन्न करने के लिए है, ताकि AIL और अन्य सिस्टम को फ़ीड किया जा सके।
इस टूल का उपयोग एक स्टैंड-अलोन टूल के रूप में या अन्य सिस्टम को फ़ीड करने के लिए किया जा सकता है।
यदि आप Python लाइब्रेरी का उपयोग नहीं करना चाहते हैं, तो https://typosquatting-finder.circl.lu/ एक ऑनलाइन सेवा है जो इस लाइब्रेरी का उपयोग करती है।
Python 3.6+
inflect लाइब्रेरी
ail-typo-squatting को poetry के साथ स्थापित किया जा सकता है। यदि आपने poetry स्थापित नहीं किया है, तो आप निम्न कार्य कर सकते हैं curl -sSL https://install.python-poetry.org | python3 -।
$ poetry install
$ poetry shell
$ cd ail-typo-squatting
$ python typo.py -h
$ pip3 install ail-typo-squatting
dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py --help
usage: typo.py [-h] [-v] [-dn DOMAINNAME [DOMAINNAME ...]] [-fdn FILEDOMAINNAME] [-o OUTPUT] [-fo FORMATOUTPUT] [-br] [-dnsr] [-dnsl] [-l LIMIT] [-var] [-ko] [-a] [-om] [-repe] [-repl] [-drepl] [-cho]
[-add] [-md] [-sd] [-vs] [-ada] [-hg] [-ahg] [-cm] [-hp] [-wt] [-wsld] [-at] [-sub] [-sp] [-cdd] [-addns] [-uddns] [-ns] [-combo] [-ca]
optional arguments:
-h, --help show this help message and exit
-v verbose, more display
-dn DOMAINNAME [DOMAINNAME ...], --domainName DOMAINNAME [DOMAINNAME ...]
list of domain name
-fdn FILEDOMAINNAME, --filedomainName FILEDOMAINNAME
file containing list of domain name
-o OUTPUT, --output OUTPUT
path to ouput location
-fo FORMATOUTPUT, --formatoutput FORMATOUTPUT
format for the output file, yara - regex - yaml - text. Default: text
-br, --betterregex Use retrie for faster regex
-dnsr, --dnsresolving
resolve all variation of domain name to see if it's up or not
-dnsl, --dnslimited resolve all variation of domain name but keep only up domain in final result json
-l LIMIT, --limit LIMIT
limit of variations for a domain name
-var, --givevariations
give the algo that generate variations
-ko, --keeporiginal Keep in the result list the original domain name
-a, --all Use all algo
-om, --omission Leave out a letter of the domain name
-repe, --repetition Character Repeat
-repl, --replacement Character replacement
-drepl, --doublereplacement
Double Character Replacement
-cho, --changeorder Change the order of letters in word
-add, --addition Add a character in the domain name
-md, --missingdot Delete a dot from the domain name
-sd, --stripdash Delete of a dash from the domain name
-vs, --vowelswap Swap vowels within the domain name
-ada, --adddash Add a dash between the first and last character in a string
-hg, --homoglyph One or more characters that look similar to another character but are different are called homogylphs
-ahg, --all_homoglyph
generate all possible homoglyph permutations. Ex: circl.lu, e1rc1.lu
-cm, --commonmisspelling
Change a word by is misspellings
-hp, --homophones Change word by an other who sound the same when spoken
-wt, --wrongtld Change the original top level domain to another
-wsld, --wrongsld Change the original second level domain to another
-at, --addtld Adding a tld before the original tld
-sub, --subdomain Insert a dot at varying positions to create subdomain
-sp, --singularpluralize
Create by making a singular domain plural and vice versa
-cdd, --changedotdash
Change dot to dash
-addns, --adddynamicdns
Add dynamic dns at the end of the domain
-uddns, --updatedynamicdns
Update dynamic dns warning list
-ns, --numeralswap Change a numbers to words and vice versa. Ex: circlone.lu, circl1.lu
-combo Combine multiple algo on a domain name
-ca, --catchall Combine with -dnsr. Generate a random string in front of the domain.
ail-project.org और circl.lu के लिए विविधताएँ (variations) बनाना।dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py -dn ail-project.org circl.lu -a -o .
dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py -fdn domain.txt -co -sub -hyp -o . -fo yara
ail-project.org और circl.lu के लिए विविधताएँ बनाना।dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py -dn ail-project.org circl.lu -a -dnsr -o .
ail-project.org के लिए विविधताएँ बनाना और विविधता उत्पन्न करने वाले एल्गोरिदम को दिखाना (केवल टेक्स्ट प्रारूप के लिए)।dacru@dacru:~/git/ail-typo-squatting/bin$ python3 typo.py -dn ail-project.org -a -o - -var
from ail_typo_squatting import runAll
import math
resultList = list()
domainList = ["google.com"]
formatoutput = "yara"
pathOutput = "."
for domain in domainList:
resultList = runAll(
domain=domain,
limit=math.inf,
formatoutput=formatoutput,
pathOutput=pathOutput,
verbose=False,
givevariations=False,
keeporiginal=False
)
print(resultList)
resultList = list()
from ail_typo_squatting import formatOutput, omission, subdomain, addDash
import math
resultList = list()
domainList = ["google.com"]
limit = math.inf
formatoutput = "yara"
pathOutput = "."
for domain in domainList:
resultList = omission(domain=domain, resultList=resultList, verbose=False, limit=limit, givevariations=False, keeporiginal=False)
resultList = subdomain(domain=domain, resultList=resultList, verbose=False, limit=limit, givevariations=False, keeporiginal=False)
resultList = addDash(domain=domain, resultList=resultList, verbose=False, limit=limit, givevariations=False, keeporiginal=False)
print(resultList)
formatOutput(format=formatoutput, resultList=resultList, domain=domain, pathOutput=pathOutput, givevariations=False)
resultList = list()
आउटपुट फ़ाइल के लिए 4 प्रारूप संभव हैं:
Text फ़ाइल के लिए, प्रत्येक पंक्ति एक विविधता है।
ail-project.org
il-project.org
al-project.org
ai-project.org
ailproject.org
ail-roject.org
ail-poject.org
ail-prject.org
ail-proect.org
ail-projct.org
ail-projet.org
ail-projec.org
aail-project.org
aiil-project.org
...
Yara फ़ाइल के लिए, प्रत्येक नियम (rule) एक विविधता है।
rule ail-project_org {
meta:
domain = "ail-project.org"
strings:
$s0 = "ail-project.org"
$s1 = "il-project.org"
$s2 = "al-project.org"
$s3 = "ai-project.org"
$s4 = "ailproject.org"
$s5 = "ail-roject.org"
$s6 = "ail-poject.org"
$s7 = "ail-prject.org"
$s8 = "ail-proect.org"
$s9 = "ail-projct.org"
$s10 = "ail-projet.org"
$s11 = "ail-projec.org"
condition:
any of ($s*)
}
Regex फ़ाइल के लिए, प्रत्येक विविधता को regex में बदल दिया जाता है और केवल एक बड़ा regex बनाने के लिए दूसरों के साथ जोड़ दिया जाता है।
ail\-project\.org|il\-project\.org|al\-project\.org|ai\-project\.org|ailproject\.org|ail\-roject\.org|ail\-poject\.org|ail\-prject\.org|ail\-proect\.org|ail\-projct\.org|ail\-projet\.org|ail\-projec\.org
Sigma फ़ाइल के लिए, प्रत्येक विविधता variations कुंजी के अंतर्गत सूचीबद्ध होती है।
title: ail-project.org
variations:
- ail-project.org
- il-project.org
- al-project.org
- ai-project.org
- ailproject.org
- ail-roject.org
- ail-poject.org
- ail-prject.org
- ail-proect.org
- ail-projct.org
- ail-projet.org
- ail-projec.org
यदि DNS रिज़ॉल्व चुना गया है, तो JSON प्रारूप में एक अतिरिक्त फ़ाइल बनाई जाएगी। प्रत्येक कुंजी एक विविधता होती है और यदि डोमेन नाम रिज़ॉल्व हो गया है तो उसमें "ip" फ़ील्ड हो सकती है। "NotExist" फ़ील्ड हर बार एक Boolean मान के साथ मौजूद रहेगी ताकि यह निर्धारित किया जा सके कि डोमेन मौजूद है या नहीं।
{
"circl.lu": {
"NotExist": false,
"ip": [
"185.194.93.14"
]
},
"ircl.lu": {
"NotExist": true
},
"crcl.lu": {
"NotExist": true
},
"cicl.lu": {
"NotExist": true
},
"cirl.lu": {
"NotExist": true
},
"circ.lu": {
"NotExist": true
},
"ccircl.lu": {
"NotExist": true
},
"ciircl.lu": {
"NotExist": true
},
...
}

इस परियोजना को CEF-TC-2020-2 - 2020-EU-IA-0260 - JTAN - Joint Threat Analysis Network द्वारा सह-वित्तपोषित किया गया है।
| एल्गोरिदम | विवरण |
|---|
| AddDash | ये टाइपो किसी स्ट्रिंग में पहले और अंतिम वर्ण के बीच एक डैश जोड़कर बनाए जाते हैं। |
| Addition | ये टाइपो डोमेन नाम में वर्ण जोड़कर बनाए जाते हैं। |
| AddDynamicDns | ये टाइपो मूल डोमेन के अंत में एक डायनामिक DNS जोड़कर बनाए जाते हैं। |
| AddTld | ये टाइपो सही tld से पहले एक tld जोड़कर बनाए जाते हैं। उदाहरण: google.com, google.com.it बन जाता है। |
| ChangeDotDash | ये टाइपो डॉट को डैश में बदलकर बनाए जाते हैं। |
| ChangeOrder | ये टाइपो डोमेन के प्रत्येक भाग में अक्षरों का क्रम बदलकर बनाए जाते हैं। |
| Combo | ये टाइपो कई एल्गोरिदमों को संयोजित करके बनाए जाते हैं। उदाहरण के लिए, circl.lu, cirl6.lu बन जाता है। |
| CommonMisspelling | ये टाइपो किसी शब्द को उसकी गलत वर्तनी (misspelling) से बदलकर बनाए जाते हैं। Wikipedia से 8000 से अधिक सामान्य गलत वर्तनियाँ। उदाहरण के लिए, www.youtube.com, www.youtub.com बन जाता है और www.abseil.com, www.absail.com बन जाता है। |
| Double Replacement | ये टाइपो डोमेन नाम के समान, क्रमागत अक्षरों को बदलकर बनाए जाते हैं। |
| Homoglyph | ये टाइपो वर्णों को किसी अन्य वर्ण से बदलकर बनाए जाते हैं जो समान दिखते हैं लेकिन भिन्न होते हैं। एक उदाहरण यह है कि छोटा अक्षर l, अंक एक (1) के समान दिखता है, जैसे l बनाम 1। उदाहरण के लिए, google.com, goog1e.com बन जाता है। |
| Homophones | ये टाइपो किसी शब्द को दूसरे ऐसे शब्द से बदलकर बनाए जाते हैं जो बोलने पर समान सुनाई देते हैं। 450 से अधिक शब्द-समूह जो बोलने पर समान लगते हैं। उदाहरण के लिए, www.base.com, www.bass.com बन जाता है। |
| MissingDot | ये टाइपो डोमेन नाम से एक डॉट हटाकर बनाए जाते हैं। |
| NumeralSwap | ये टाइपो संख्या को शब्दों में और इसके विपरीत बदलकर बनाए जाते हैं। उदाहरण के लिए, circlone.lu, circl1.lu बन जाता है। |
| Omission | ये टाइपो डोमेन नाम का एक अक्षर, एक समय में एक अक्षर छोड़कर बनाए जाते हैं। |
| Repetition | ये टाइपो डोमेन नाम के एक अक्षर को दोहराकर बनाए जाते हैं। |
| Replacement | ये टाइपो डोमेन नाम के प्रत्येक अक्षर को बदलकर बनाए जाते हैं। |
| StripDash | ये टाइपो डोमेन नाम से एक डैश हटाकर बनाए जाते हैं। |
| SingularPluralize | ये टाइपो एकवचन डोमेन को बहुवचन बनाकर और इसके विपरीत बनाकर तैयार किए जाते हैं। |
| Subdomain | ये टाइपो सबडोमेन बनाने के लिए डोमेन नाम में एक डॉट लगाकर बनाए जाते हैं। उदाहरण: google.com, goo.gle.com बन जाता है। |
| VowelSwap | ये टाइपो पहले अक्षर को छोड़कर डोमेन नाम के भीतर स्वरों को बदलकर बनाए जाते हैं। उदाहरण के लिए, www.google.com, www.gaagle.com बन जाता है। |
| WrongTld | ये टाइपो मूल टॉप-लेवल डोमेन को किसी अन्य में बदलकर बनाए जाते हैं। उदाहरण के लिए, www.trademe.co.nz, www.trademe.co.mz बन जाता है और www.google.com, www.google.org बन जाता है। यह 19 सबसे सामान्य टॉप-लेवल डोमेन का उपयोग करता है। |
| WrongSld | ये टाइपो मूल सेकंड-लेवल डोमेन को किसी अन्य में बदलकर बनाए जाते हैं। उदाहरण के लिए, www.trademe.co.uk, www.trademe.ac.uk बन जाता है और www.google.com अभी भी www.google.com ही रहेगा। |