diff options
author | CoprDistGit <copr-devel@lists.fedorahosted.org> | 2023-02-24 07:42:26 +0000 |
---|---|---|
committer | CoprDistGit <copr-devel@lists.fedorahosted.org> | 2023-02-24 07:42:26 +0000 |
commit | c993331cd168b43ce11382d7b748c27128232965 (patch) | |
tree | 540aa60a4e5911704f0d485a454bb586dbfffc14 | |
parent | 2e4992234d70f652a2a25d26887452775664de14 (diff) |
automatic import of python3-dnsgenopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-dnsgen.spec | 259 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 261 insertions, 0 deletions
@@ -0,0 +1 @@ +/dnsgen-1.0.4.tar.gz diff --git a/python-dnsgen.spec b/python-dnsgen.spec new file mode 100644 index 0000000..dde22b8 --- /dev/null +++ b/python-dnsgen.spec @@ -0,0 +1,259 @@ +%global _empty_manifest_terminate_build 0 +Name: python-dnsgen +Version: 1.0.4 +Release: 1 +Summary: Generates DNS possibilities from existing domain names. +License: MIT +URL: https://github.com/me/myproject +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/5f/e1/1c7d86f51da5b93f3f99ac99e3ad051ed82234147ddd869f77a3959e6abc/dnsgen-1.0.4.tar.gz +BuildArch: noarch + +Requires: python3-Click +Requires: python3-tldextract + +%description + +# :cyclone: dnsgen (DNS generator) + +This tool generates a combination of domain names from the provided input. Combinations are created based on wordlist. Custom words are extracted per execution. Refer to [Techniques](#techniques) section to learn more. + +`dnsgen` is very similar to [altdns](https://github.com/infosec-au/altdns). It does not contain DNS resolver. You should use [massdns](https://github.com/blechschmidt/massdns) for DNS resolution. + + + +## Installation + +```pip3 install dnsgen``` + +..or from GitHub directly: + +``` +git clone https://github.com/ProjectAnte/dnsgen +cd dnsgen +pip3 install -r requirements.txt +python3 setup.py install +``` + +## Usage + +```$ dnsgen domains.txt``` (`domains.txt` contains a list of active domain names) + +* `-l` / `--wordlen`: minimum size of custom words to be extracted +* `-w` / `--wordlist`: path to custom wordlist +* `-f` / `--fast`: Generate lower amount of domains with most probable words only +* `filename`: required parameter for an input list of domains. The input file should contain domain names separated by newline character (`\n`). You can also use STDIN as an input method, providing `-` to this argument. + +**Combination with massdns:** + +`$ cat domains.txt | dnsgen - | massdns -r /path/to/resolvers.txt -t A -o J --flush 2>/dev/null` + +## Techniques + +*(For demo purposes, let's say that wordlist contains just one word: `stage`)* + +* **Insert word on every index** — Creates new subdomain levels by inserting the words between existing levels. `foo.example.com` -> `stage.foo.example.com`, `foo.stage.example.com` + +* **Increase/Decrease num found** — *(In development)* If number is found in an existing subdomain, increase/decrease this number without any other alteration. `foo01.example.com` -> `foo02.example.com`, `foo03.example.com`, `...` + +* **Prepend word on every index** — On every subdomain level, prepend existing content with `WORD` and `WORD-`. `foo.example.com` -> `stagefoo.example.com`, `stage-foo.example.com` + +* **Append word on every index** — On every subdomain level, append existing content with `WORD` and `WORD-`. `foo.example.com` -> `foostage.example.com`, `foo-stage.example.com` + +* **Replace the word with word** — If word longer than 3 is found in an existing subdomain, replace it with other words from the wordlist. *(If we have more words than one in our wordlist)*. `stage.foo.example.com` -> `otherword.foo.example.com`, `anotherword.foo.example.com`, `...` + +* **Extract custom words** — Extend the wordlist based on target's domain naming conventions. Such words are either whole subdomain levels, or `-` is used for a split on some subdomain level. For instance `mapp1-current.datastream.example.com` has `mapp1`, `current`, `datastream` words. To prevent the overflow, user-defined *word length* is used for word extraction. The default value is set to **6**. This means that only words strictly longer than **5** characters are included (from the previous example, `mapp1` does not satisfy this condition). + +## Resources + +- [Subdomain Enumeration: 2019 Workflow](https://0xpatrik.com/subdomain-enumeration-2019/) +- [Subdomain Enumeration: Doing it a Bit Smarter](https://0xpatrik.com/subdomain-enumeration-smarter/) + +## TO DO + +- Improve README +- Tests + + + + +%package -n python3-dnsgen +Summary: Generates DNS possibilities from existing domain names. +Provides: python-dnsgen +BuildRequires: python3-devel +BuildRequires: python3-setuptools +%description -n python3-dnsgen + +# :cyclone: dnsgen (DNS generator) + +This tool generates a combination of domain names from the provided input. Combinations are created based on wordlist. Custom words are extracted per execution. Refer to [Techniques](#techniques) section to learn more. + +`dnsgen` is very similar to [altdns](https://github.com/infosec-au/altdns). It does not contain DNS resolver. You should use [massdns](https://github.com/blechschmidt/massdns) for DNS resolution. + + + +## Installation + +```pip3 install dnsgen``` + +..or from GitHub directly: + +``` +git clone https://github.com/ProjectAnte/dnsgen +cd dnsgen +pip3 install -r requirements.txt +python3 setup.py install +``` + +## Usage + +```$ dnsgen domains.txt``` (`domains.txt` contains a list of active domain names) + +* `-l` / `--wordlen`: minimum size of custom words to be extracted +* `-w` / `--wordlist`: path to custom wordlist +* `-f` / `--fast`: Generate lower amount of domains with most probable words only +* `filename`: required parameter for an input list of domains. The input file should contain domain names separated by newline character (`\n`). You can also use STDIN as an input method, providing `-` to this argument. + +**Combination with massdns:** + +`$ cat domains.txt | dnsgen - | massdns -r /path/to/resolvers.txt -t A -o J --flush 2>/dev/null` + +## Techniques + +*(For demo purposes, let's say that wordlist contains just one word: `stage`)* + +* **Insert word on every index** — Creates new subdomain levels by inserting the words between existing levels. `foo.example.com` -> `stage.foo.example.com`, `foo.stage.example.com` + +* **Increase/Decrease num found** — *(In development)* If number is found in an existing subdomain, increase/decrease this number without any other alteration. `foo01.example.com` -> `foo02.example.com`, `foo03.example.com`, `...` + +* **Prepend word on every index** — On every subdomain level, prepend existing content with `WORD` and `WORD-`. `foo.example.com` -> `stagefoo.example.com`, `stage-foo.example.com` + +* **Append word on every index** — On every subdomain level, append existing content with `WORD` and `WORD-`. `foo.example.com` -> `foostage.example.com`, `foo-stage.example.com` + +* **Replace the word with word** — If word longer than 3 is found in an existing subdomain, replace it with other words from the wordlist. *(If we have more words than one in our wordlist)*. `stage.foo.example.com` -> `otherword.foo.example.com`, `anotherword.foo.example.com`, `...` + +* **Extract custom words** — Extend the wordlist based on target's domain naming conventions. Such words are either whole subdomain levels, or `-` is used for a split on some subdomain level. For instance `mapp1-current.datastream.example.com` has `mapp1`, `current`, `datastream` words. To prevent the overflow, user-defined *word length* is used for word extraction. The default value is set to **6**. This means that only words strictly longer than **5** characters are included (from the previous example, `mapp1` does not satisfy this condition). + +## Resources + +- [Subdomain Enumeration: 2019 Workflow](https://0xpatrik.com/subdomain-enumeration-2019/) +- [Subdomain Enumeration: Doing it a Bit Smarter](https://0xpatrik.com/subdomain-enumeration-smarter/) + +## TO DO + +- Improve README +- Tests + + + + +%package help +Summary: Development documents and examples for dnsgen +Provides: python3-dnsgen-doc +%description help + +# :cyclone: dnsgen (DNS generator) + +This tool generates a combination of domain names from the provided input. Combinations are created based on wordlist. Custom words are extracted per execution. Refer to [Techniques](#techniques) section to learn more. + +`dnsgen` is very similar to [altdns](https://github.com/infosec-au/altdns). It does not contain DNS resolver. You should use [massdns](https://github.com/blechschmidt/massdns) for DNS resolution. + + + +## Installation + +```pip3 install dnsgen``` + +..or from GitHub directly: + +``` +git clone https://github.com/ProjectAnte/dnsgen +cd dnsgen +pip3 install -r requirements.txt +python3 setup.py install +``` + +## Usage + +```$ dnsgen domains.txt``` (`domains.txt` contains a list of active domain names) + +* `-l` / `--wordlen`: minimum size of custom words to be extracted +* `-w` / `--wordlist`: path to custom wordlist +* `-f` / `--fast`: Generate lower amount of domains with most probable words only +* `filename`: required parameter for an input list of domains. The input file should contain domain names separated by newline character (`\n`). You can also use STDIN as an input method, providing `-` to this argument. + +**Combination with massdns:** + +`$ cat domains.txt | dnsgen - | massdns -r /path/to/resolvers.txt -t A -o J --flush 2>/dev/null` + +## Techniques + +*(For demo purposes, let's say that wordlist contains just one word: `stage`)* + +* **Insert word on every index** — Creates new subdomain levels by inserting the words between existing levels. `foo.example.com` -> `stage.foo.example.com`, `foo.stage.example.com` + +* **Increase/Decrease num found** — *(In development)* If number is found in an existing subdomain, increase/decrease this number without any other alteration. `foo01.example.com` -> `foo02.example.com`, `foo03.example.com`, `...` + +* **Prepend word on every index** — On every subdomain level, prepend existing content with `WORD` and `WORD-`. `foo.example.com` -> `stagefoo.example.com`, `stage-foo.example.com` + +* **Append word on every index** — On every subdomain level, append existing content with `WORD` and `WORD-`. `foo.example.com` -> `foostage.example.com`, `foo-stage.example.com` + +* **Replace the word with word** — If word longer than 3 is found in an existing subdomain, replace it with other words from the wordlist. *(If we have more words than one in our wordlist)*. `stage.foo.example.com` -> `otherword.foo.example.com`, `anotherword.foo.example.com`, `...` + +* **Extract custom words** — Extend the wordlist based on target's domain naming conventions. Such words are either whole subdomain levels, or `-` is used for a split on some subdomain level. For instance `mapp1-current.datastream.example.com` has `mapp1`, `current`, `datastream` words. To prevent the overflow, user-defined *word length* is used for word extraction. The default value is set to **6**. This means that only words strictly longer than **5** characters are included (from the previous example, `mapp1` does not satisfy this condition). + +## Resources + +- [Subdomain Enumeration: 2019 Workflow](https://0xpatrik.com/subdomain-enumeration-2019/) +- [Subdomain Enumeration: Doing it a Bit Smarter](https://0xpatrik.com/subdomain-enumeration-smarter/) + +## TO DO + +- Improve README +- Tests + + + + +%prep +%autosetup -n dnsgen-1.0.4 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-dnsgen -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri Feb 24 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.4-1 +- Package Spec generated @@ -0,0 +1 @@ +fde21e8ba2b85abee22b1b4b6fa2a7f1 dnsgen-1.0.4.tar.gz |