Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ghostbuster — अपने सभी AWS खातों में अपने संसाधनों का विश्लेषण करके लटकते Elastic IPs को हटाएं। | Kitploit
उपकरण/GitHubGitHub/assetnote/ghostbuster
टोहीभेद्यता स्कैनरक्लाउड सुरक्षासबडोमेन एनुमरेशनDNS विश्लेषण
GitHubassetnote/ghostbuster

ghostbuster

अपने सभी AWS खातों में अपने संसाधनों का विश्लेषण करके लटकते Elastic IPs को हटाएं।

रिपॉजिटरी देखें
2783681 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

विषय सूची

  • विषय सूची
  • Ghostbuster
    • समस्या
    • परियोजना की विशेषताएँ
    • Ghostbuster को स्थापित करना
    • Ghostbuster का उपयोग करना
    • उदाहरण आउटपुट
    • AWS खातों को सेटअप करना
    • Cloudflare को सेटअप करना (वैकल्पिक)
    • लेखक
    • लाइसेंस

Ghostbuster

अपने सभी AWS खातों में संसाधनों का विश्लेषण करके दांगलिंग elastic IPs को समाप्त करें।

Ghostbuster आपके सभी AWS खातों (Route53) में मौजूद सभी DNS रिकॉर्ड प्राप्त करता है, और वैकल्पिक रूप से CSV इनपुट या Cloudflare के माध्यम से रिकॉर्ड ले सकता है।

इन रिकॉर्डों को एकत्र करने के बाद, Ghostbuster आपके सभी AWS Elastic IPs और Network Interface Public IPs के माध्यम से पुनरावृत्त करता है और यह डेटा एकत्र करता है।

DNS रिकॉर्ड्स (route53, फ़ाइल इनपुट या cloudflare से) की पूरी तस्वीर और आपके संगठन के स्वामित्व वाले AWS IPs की पूरी तस्वीर होने से, यह उपकरण उपडोमेन का पता लगा सकता है जो दांगलिंग elastic IPs (IPs जो अब आपके स्वामित्व में नहीं हैं) की ओर इशारा कर रहे हैं।

समस्या

जब आप AWS में इन्फ्रास्ट्रक्चर तैनात कर रहे होते हैं, तो आप EC2 इंस्टेंस चालू कर सकते हैं जिनके साथ एक IP जुड़ा होता है। जब आप इन IPs की ओर इशारा करते हुए DNS रिकॉर्ड बनाते हैं, लेकिन EC2 इंस्टेंस को नया IP देने या नष्ट करने के बाद DNS रिकॉर्ड को हटाना भूल जाते हैं, तो आप सबडोमेन अधिग्रहण हमलों के लिए अतिसंवेदनशील हो जाते हैं।

elastic IP अधिग्रहण पर बहुत अधिक शोध किया गया है, जहाँ हमलावरों के लिए लगातार elastic IPs का दावा करना संभव है जब तक कि वे उस कंपनी के सबडोमेन से जुड़ा IP प्राप्त नहीं कर लेते जिसे वे लक्षित कर रहे हैं।

जबकि AWS अक्सर उन खातों पर प्रतिबंध लगाता है जो इस हमले के पैटर्न को करने का प्रयास कर रहे हैं, AWS द्वारा कोई दीर्घकालिक समाधान जारी नहीं किया गया है।

दांगलिंग elastic IP सबडोमेन अधिग्रहण हमलों का प्रभाव एक सामान्य सबडोमेन अधिग्रहण से अधिक गंभीर होता है जहाँ आप केवल प्रस्तुत की जा रही सामग्री को नियंत्रित कर सकते हैं। दांगलिंग elastic IP अधिग्रहण के साथ, एक हमलावर के लिए निम्नलिखित करना संभव है:

  • सबडोमेन के लिए SSL प्रमाणपत्र का दावा करना
  • सभी पोर्ट पर ट्रैफ़िक सुनना (संभावित रूप से संवेदनशील जानकारी की खोज करना जो अभी भी सबडोमेन को भेजी जा रही है)
  • HTTPOnly कुकीज़ चुराने की क्षमता के साथ सर्वर-साइड स्क्रिप्ट चलाना, आमतौर पर एक-क्लिक खाता अधिग्रहण हमले की ओर ले जाता है जब कुकीज़ *.domain.com पर दायरे में होती हैं

परियोजना की विशेषताएँ

  • .aws/config में कॉन्फ़िगर किए गए प्रत्येक AWS प्रोफ़ाइल के माध्यम से गतिशील रूप से पुनरावृत्त करता है
  • AWS Route53 से A रिकॉर्ड खींचता है
  • Cloudflare से A रिकॉर्ड खींचता है (वैकल्पिक)
  • CSV इनपुट से A रिकॉर्ड खींचता है (वैकल्पिक)
  • सभी क्षेत्रों, एकल क्षेत्र, या अल्पविराम से अलग किए गए क्षेत्रों की सूची के माध्यम से पुनरावृत्त करता है
  • आपके सभी AWS खातों से जुड़े सभी Elastic IPs प्राप्त करता है
  • आपके सभी AWS खातों से जुड़े सभी Public IPs प्राप्त करता है
  • DNS रिकॉर्ड्स को आपके संगठन के स्वामित्व वाले IPs के साथ क्रॉस-चेक करके संभावित अधिग्रहणों का पता लगाता है
  • अधिग्रहणों की सूचना भेजने के लिए Slack Webhook समर्थन

महत्वपूर्ण:

इस उपकरण के प्रभावी होने के लिए, इसके पास आपके AWS वातावरण की पूरी तस्वीर होनी चाहिए। यदि इसके पास पूरी तस्वीर नहीं है, तो यह गलत सकारात्मक निष्कर्षों की ओर ले जाएगा।

Ghostbuster को स्थापित करना

Ghostbuster को स्थापित करना उतना ही आसान है जितना चलाना: pip install ghostbuster। CLI उपकरण तब ghostbuster कमांड के माध्यम से सुलभ होगा।

इसके लिए Python 3.x वातावरण की आवश्यकता है।

Ghostbuster का उपयोग करना

root@kitploit:~
❯ ghostbuster scan aws --help                                                                                                                                                                     
Usage: ghostbuster scan aws [OPTIONS]

  Scan for dangling elastic IPs inside your AWS accounts.

Options:
  --profile TEXT          Specify a specific AWS profile to run ghostbuster
                          on.

  --skipascii             Skip printing the ASCII art when starting up
                          Ghostbuster.

  --json                  Only return a JSON object.
  --slackwebhook TEXT     Specify a Slack webhook URL to send notifications
                          about potential takeovers.

  --records PATH          Manually specify DNS records to check against.
                          Ghostbuster will check these IPs after checking
                          retrieved DNS records. See records.csv for an
                          example.

  --cloudflaretoken TEXT  Pull DNS records from Cloudflare, provide a CF API
                          token.

  --allregions            Run on all regions.
  --exclude TEXT          Comma delimited list of profile names to exclude.
  --regions TEXT          Comma delimited list of regions to run on.
  --help                  Show this message and exit.

उदाहरण कमांड

Cloudflare DNS रिकॉर्ड तक पहुँच के साथ Ghostbuster चलाएँ, Slack वेबहुक को सूचनाएँ भेजें, सभी AWS क्षेत्रों के लिए .aws/config या .aws/credentials में कॉन्फ़िगर किए गए प्रत्येक AWS प्रोफ़ाइल के माध्यम से पुनरावृत्त करें।

root@kitploit:~
❯ ghostbuster scan aws --cloudflaretoken APIKEY --slackwebhook https://hooks.slack.com/services/KEY --allregions

उपडोमेन A रिकॉर्ड की मैन्युअल रूप से इनपुट सूची के साथ Ghostbuster चलाएँ (उदाहरण फ़ाइल के लिए इस रिपॉजिटरी में records.csv देखें):

root@kitploit:~
❯ ghostbuster scan aws --records records.csv

आप --regions का उपयोग करके विशिष्ट क्षेत्रों को निर्दिष्ट कर सकते हैं, क्षेत्रों की अल्पविराम से अलग की गई सूची पर सेट करें, जैसे us-east-1,us-west-1।

उदाहरण आउटपुट

root@kitploit:~
❯ ghostbuster scan aws --cloudflaretoken whougonnacall
Obtaining all zone names from Cloudflare.
Obtaining DNS A records for all zones from Cloudflare.
Obtained 33 DNS A records so far.
Obtaining Route53 hosted zones for AWS profile: default.
Obtaining Route53 hosted zones for AWS profile: account-five.
Obtaining Route53 hosted zones for AWS profile: account-four.
Obtaining Route53 hosted zones for AWS profile: account-four-deploy.
Obtaining Route53 hosted zones for AWS profile: account-two-deploy.
Obtaining Route53 hosted zones for AWS profile: account-one-deploy.
Obtaining Route53 hosted zones for AWS profile: account-three-deploy.
Obtaining Route53 hosted zones for AWS profile: account-six.
Obtaining Route53 hosted zones for AWS profile: account-seven.
Obtaining Route53 hosted zones for AWS profile: account-one.
Obtained 124 DNS A records so far.
Obtaining EIPs for region: us-east-1, profile: default
Obtaining IPs for network interfaces for region: us-east-1, profile: default
Obtaining EIPs for region: us-east-1, profile: account-five
Obtaining IPs for network interfaces for region: us-east-1, profile: account-five
Obtaining EIPs for region: us-east-1, profile: account-four
Obtaining IPs for network interfaces for region: us-east-1, profile: account-four
Obtaining EIPs for region: us-east-1, profile: account-four-deploy
Obtaining IPs for network interfaces for region: us-east-1, profile: account-four-deploy
Obtaining EIPs for region: us-east-1, profile: account-two-deploy
Obtaining IPs for network interfaces for region: us-east-1, profile: account-two-deploy
Obtaining EIPs for region: us-east-1, profile: account-one-deploy
Obtaining IPs for network interfaces for region: us-east-1, profile: account-one-deploy
Obtaining EIPs for region: us-east-1, profile: account-three-deploy
Obtaining IPs for network interfaces for region: us-east-1, profile: account-three-deploy
Obtaining EIPs for region: us-east-1, profile: account-six
Obtaining IPs for network interfaces for region: us-east-1, profile: account-six
Obtaining EIPs for region: us-east-1, profile: account-seven
Obtaining IPs for network interfaces for region: us-east-1, profile: account-seven
Obtaining EIPs for region: us-east-1, profile: account-one
Obtaining IPs for network interfaces for region: us-east-1, profile: account-one
Obtained 415 unique elastic IPs from AWS.


Takeover possible: {'name': 'takeover.assetnotecloud.com', 'records': ['52.54.24.193']}

AWS खातों को सेटअप करना

पहला कदम आपके AWS खातों में कुंजियाँ या भूमिकाएँ बनाना है जो Route53 रिकॉर्ड पढ़ने और elastic पतों और EC2 नेटवर्क इंटरफ़ेस का वर्णन करने के लिए आवश्यक विशेषाधिकार प्रदान करती हैं।

  1. AWS में एक नया IAM उपयोगकर्ता बनाने के लिए, निम्नलिखित URL पर जाएँ: https://console.aws.amazon.com/iam/home#/users$new?step=details
  2. केवल Access key - Programmatic access चुनें, और Next: Permissions पर क्लिक करें।
  3. Attach existing policies directly पर क्लिक करें और फिर Create policy पर क्लिक करें।
  4. JSON पर क्लिक करें और फिर निम्नलिखित नीति पेस्ट करें:
root@kitploit:~
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "GhostbusterPolicy",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAddresses",
                "ec2:DescribeNetworkInterfaces",
                "route53:ListResourceRecordSets",
                "route53:ListHostedZonesByName",
                "route53:GetTrafficPolicyInstance",
                "route53:GetTrafficPolicy"
            ],
            "Resource": "*"
        }
    ]
}
  1. Next: Tags पर क्लिक करें और फिर Next: Review पर क्लिक करें।
  2. नीति का नाम GhostbusterPolicy सेट करें।
  3. Create Policy पर क्लिक करें।
  4. https://console.aws.amazon.com/iam/home#/users$new?step=permissions&accessKey&userNames=ghostbuster&permissionType=policies पर जाएँ।
  5. GhostbusterPolicy चुनें।
  6. Next: Tags पर क्लिक करें और फिर Next: Review पर क्लिक करें।
  7. Create user पर क्लिक करें और अपने .aws/credentials फ़ाइल में AWS क्रेडेंशियल सेटअप करें।

उपरोक्त चरणों को अपने प्रत्येक AWS खाते के लिए दोहराएँ।

यह उपकरण आपकी AWS कॉन्फ़िगरेशन (एकाधिक कुंजियाँ, या क्रॉस-अकाउंट अनुमान भूमिका प्रोफ़ाइल) के साथ काम करेगा। यह boto3 द्वारा प्रबंधित किया जाता है, जो AWS के साथ इंटरफ़ेस करने के लिए उपयोग की जाने वाली लाइब्रेरी है।

एक उदाहरण कॉन्फ़िगरेशन इस प्रकार दिखता है:

.aws/credentials:

root@kitploit:~
[default]
aws_access_key_id = AKIAIII...
aws_secret_access_key = faAaAaA...

.aws/config:

root@kitploit:~
[default]
output = table
region = us-east-1

[profile account-one]
role_arn = arn:aws:iam::911111111113:role/Ec2Route53Access
source_profile = default
region = us-east-1

[profile account-two]
role_arn = arn:aws:iam::911111111112:role/Ec2Route53Access
source_profile = default
region = us-east-1

[profile account-three]
region = us-east-1
role_arn = arn:aws:iam::911111111111:role/Ec2Route53Access
source_profile = default

वैकल्पिक रूप से, भूमिकाओं के बजाय जिन्हें ग्रहण किया जाता है, आप .aws/credentials फ़ाइल को दायरे में पहुँच के साथ प्रोफ़ाइलों और संबद्ध कुंजियों की सूची के साथ भी कॉन्फ़िगर कर सकते हैं।

एक बार जब आपकी AWS कॉन्फ़िगरेशन आपके AWS वातावरण के सभी खातों के साथ सेट हो जाती है, तो आप निम्नलिखित कमांड का उपयोग करके उपकरण चला सकते हैं:

--roles के लिए AWS अनुमतियाँ सेटअप करना

Ghostbuster प्रोफ़ाइलों के बजाय भूमिकाओं का उपयोग कर सकता है, जो एक ही स्थान पर इतने सारे क्रेडेंशियल रखने की आवश्यकता को समाप्त करता है। हालाँकि, भूमिका दृष्टिकोण के लिए आपके संगठन के भीतर अतिरिक्त IAM नीतियाँ बनाने की आवश्यकता होगी।

भूमिकाओं का उपयोग --roles roles.csv या --autoroles फ़्लैग के माध्यम से किया जा सकता है। --roles को काम करने के लिए सेटअप करने के लिए, स्कैन किए जा रहे प्रत्येक खाते में GhostbusterTargetAccountRole भूमिका ठीक उसी नाम से बनानी होगी:

root@kitploit:~
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "GhostbusterTargetAccountRole",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAddresses",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "route53:ListResourceRecordSets",
                "route53:ListHostedZonesByName",
                "route53:GetTrafficPolicyInstance",
                "route53:GetTrafficPolicy"
            ],
            "Resource": "*"
        }
    ]
}

Ghostbuster lambda/ec2/आदि में ghostbuster भूमिका के साथ चलेगा - इसे ghostbuster मास्टर भूमिका कहते हैं। मास्टर भूमिका को TargetAccountRoles को ग्रहण करने में सक्षम होना चाहिए।

root@kitploit:~
resource "aws_iam_policy" "ghostbuster_target_account_roles" {
  name        = "ghostbuster_target_account_roles"
  path        = "/"
  description = "Allow inspecting DNS and elastic IP data."

  policy = jsonencode({
    "Version" : "2012-10-17",
    "Statement" : [
      {
        "Effect" : "Allow",
        "Action" : "sts:AssumeRole",
        "Resource" : ["arn:aws:iam::*:role/GhostbusterTargetAccountRole"]
    }]
  })

  tags = {
    Project = "ghostbuster"
  }
}

--autoroles के लिए AWS अनुमतियाँ सेटअप करना

स्वचालित खाता खोज के लिए --roles की तुलना में अतिरिक्त अनुमति की आवश्यकता होती है। --roles को काम करने के लिए सेटअप करने के बाद, संगठन अवलोकन वाले खाते में निम्नलिखित IAM नीति जोड़ने पर विचार करें:

root@kitploit:~
{
    sid = "BaseAccess"

    actions = [
      "organizations:DescribeAccount",
      "organizations:ListAccounts"
    ]

    resources = ["*"]
    effect    = "Allow"
  }
}

फिर, जिस खाते में ghostbuster चल रहा है, उसमें ghostbuster मास्टर भूमिका के साथ निम्नलिखित नीति संलग्न करें ताकि यह संगठन लुकअप भूमिका को ग्रहण कर सके:

root@kitploit:~
{
    "Version" : "2012-10-17",
    "Statement" : [
      {
        "Effect" : "Allow",
        "Action" : "sts:AssumeRole",
        "Resource" : ["arn:aws:iam::ORG_LOOKUP_ACCOUNT_ID:role/ghostbuster-org-role"]
    }]
}

ORG_LOOKUP_ACCOUNT_ID को वास्तविक खाता ID से बदलना न भूलें।

Cloudflare को सेटअप करना (वैकल्पिक)

यदि आप चाहते हैं कि Ghostbuster Cloudflare में आपके द्वारा सेट किए गए सभी A रिकॉर्ड खींचे, तो आपको एक API टोकन सेटअप करना होगा जो ज़ोन पढ़ सके।

https://dash.cloudflare.com/profile/api-tokens

नीचे स्क्रीनशॉट में दिखाए अनुसार Cloudflare API टोकन सेटअप करें:

एक बार जब आप यह API टोकन प्राप्त कर लें, तो इसे कहीं नोट कर लें (पासवर्ड मैनेजर)। Ghostbuster के साथ इसका उपयोग करने के लिए, इसे cloudflaretoken तर्क के माध्यम से पास करें।

लेखक

  • Shubham Shah - प्रारंभिक कार्य - github

उन योगदानकर्ताओं की सूची भी देखें जिन्होंने इस परियोजना में भाग लिया।

लाइसेंस

GNU Affero General Public License

Ghostbuster का परीक्षण करना

  1. इस रेपो को क्लोन करें।
  2. pip3 install virtualenv का उपयोग करके virtualenv स्थापित करें।
  3. virtualenv venv का उपयोग करके एक आभासी वातावरण बनाएँ।
  4. . venv/bin/activate का उपयोग करके आभासी वातावरण सक्रिय करें।
  5. रेपो की जड़ पर जाकर pip3 install --editable . के साथ ghostbuster स्थापित करें।
  6. अपने परिवर्तन करें और ghostbuster कमांड चलाएँ।
टूल डाउनलोड करें