Mohamed Elbadry | Blog
  • About Me
    • Acknowledgement
  • Dangling DNS
    • Amazon Web Services
      • Dangling DNS: Amazon EC2
      • Dangling DNS: Amazon EC2 IPs (Current State)
    • Vulnerable Services
      • Dangling DNS: Worksites.net
      • Dangling DNS: Announcekit
  • Write-ups
    • Fuzzing
      • Automate Cache Poisoning Vulnerability - Nuclei
      • How I built the PoC for the Log4j zero-day security vulnerability
Powered by GitBook
On this page
  • First Clue - Oct 3rd, 2019
  • Second Clue - Nov 24th, 2019
  • Third Clue - Nov 26th, 2019
  • Dangling Record - Dec 26th, 2019
  • Payment Day - Jun 16th, 2020
  • Underlying Issue - Jul 10th, 2020
  • How to find this kind of issue?
  • Case Studies
  • A piece of advice

Was this helpful?

  1. Dangling DNS
  2. Amazon Web Services

Dangling DNS: Amazon EC2

Inspired by Matt Bryant's research on AWS dangling domains in 2015, I was able to revisit the research and apply the technique to bug bounty programs during my bug bounty journey.

PreviousAmazon Web ServicesNextDangling DNS: Amazon EC2 IPs (Current State)

Last updated 2 years ago

Was this helpful?

First Clue - Oct 3rd, 2019

Asset: Private Program [fig.example.com]

Report:

Details:

Response:

Then I decided to look for similar issues affecting other subdomains. Soon after, I found two other subdomains github.example.com and goose.example.com with the same issue. How did I figure it out? Simply it was redirecting to a different site.

Then I checked DNS records for github.example.com maybe it will help me identify other subdomains with the same issue.

I realized what they all have in common, “Amazon Web Service”.

Second Clue - Nov 24th, 2019

Asset: Private Program [emu.example.com]

Report:

Respond:

Now I know this program has a severe issue with dangling DNS records.

Third Clue - Nov 26th, 2019

Asset: Private Program [rev.example.com]

Report:


Dangling Record - Dec 26th, 2019

Now I have a list of subdomains with possible dangling DNS records with no way to make sure it really is. What can we do?

  1. Let’s check SSL certificate data for pilot.example.com And this turned out very helpful as I found an SSL certificate issued for a totally different Org.

2. Let’s check Shodan for archived data (SSL certificates - HTML) for henry.example.com, And again SSL certificate was issued for a different Org.

Shodan Query: net:54.161.231.55

3. Let’s use Google or Bing dorks ip:54.161.231.55 And check for crawled data.

4. Maybe all you have to do is ask.

Payment Day - Jun 16th, 2020

Asset: Private Program [ipa01.example.com]

Report:

Details:

After monitoring subdomains and confirming that every subdomain has a dangling DNS record before reporting, Program asked me to supply every possible dangling record, and they will confirm it all at once.

Turned out they all had dangling DNS records, Yay!!

Underlying Issue - Jul 10th, 2020

“What happened to that IP tied to that EC2 instance that you just killed? Well, when you terminate an instance, that IP address isn’t put to waste. Instead, it’s reused by other AWS customers. There is a massive pool of IP addresses that are constantly being recycled and trusted by various organizations and people.”

The issue happens when a company uses EC2 instance public DNS as CNAMEor A record, without using elastic IP. If the EC2 instance is killed or terminated and the DNS is not updated, this will lead to creating a dangling DNS record for the subdomain. Then EC2 IP will be released to the AWS IP pool, which means it’s possible to assign the IP to a new EC2 instance.

How to find this kind of issue?

Check for compute.amazonaws.com or compute-1.amazonaws.com in CNAME record.

Ensure that subdomain has dangling DNS before reporting to avoid N/A, As mentioned before. Avoid managed bug bounty programs as they require a PoC file.

Case Studies

  • Asset: Private Programs

A piece of advice

  • Don’t ignore old research; It might be old but not dead.

  • Building trust with security teams is a two-way street.

I began with enumerating subdomains using when I stumbled upon an interesting subdomain fig.example.com(I have no idea why it was interesting, but it was).

I opened http://fig.example.com/ on the browser, It showed nothing but a blank page with empty _HTML _code, So I decided to brute force directories using . When I found http://fig.example.com/includes/a directory with directory listing enabled.

At this point, I decided to filter subdomains based on CNAME records. I used this which I have created with Python. Now let’s check for a similar issue; After spending some time, I had no luck. I had to take some time out. Then I realized what I had missed, Port scanning.

list of subdomains send in report

It all started on Oct 7, 2015, when Matt Bryant "Fishing the AWS IP Pool for Dangling Domains" about the AWS IP pool.

Asset:

Asset:

Asset: (Ironically, Amazon had a similar issue)

Sublist3r
Dirsearch
tool
blogged
Transloadit
Avast
Amazon
About Me
GET request for https://github.example.com/
dig command result for github.example.com
SSL certificate data for pilot.example.com
SSL certificate for henry.example.com subdomain
E-mail from security@example.com
Private Program #2
Private Program #3