{"id":46366822,"url":"https://github.com/magneticstain/ip-2-cloudresource","last_synced_at":"2026-03-05T02:32:19.264Z","repository":{"id":181097327,"uuid":"661472178","full_name":"magneticstain/ip-2-cloudresource","owner":"magneticstain","description":"IP-2-CloudResource: a CLI tool for correlating a cloud IP address with its associated resources, with a focus on speed and ease-of-use.","archived":false,"fork":false,"pushed_at":"2025-12-01T21:45:23.000Z","size":1421,"stargazers_count":2,"open_issues_count":25,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-03T03:53:10.270Z","etag":null,"topics":["admin","alb","attack-surface","aws","azure","cloud","correlation","discovery","elb","gcp","ip","management-tools","resources"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/magneticstain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-03T00:19:17.000Z","updated_at":"2025-11-30T19:07:45.000Z","dependencies_parsed_at":"2024-04-01T02:44:23.874Z","dependency_job_id":"21973a5b-ea95-48a1-869c-8c2d42f6630a","html_url":"https://github.com/magneticstain/ip-2-cloudresource","commit_stats":{"total_commits":318,"total_committers":3,"mean_commits":106.0,"dds":0.4591194968553459,"last_synced_commit":"f153002e3dbd6ca688ef0320c0d924d10898ee50"},"previous_names":["magneticstain/ip2cr","magneticstain/ip-2-cloudresource"],"tags_count":55,"template":false,"template_full_name":null,"purl":"pkg:github/magneticstain/ip-2-cloudresource","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magneticstain%2Fip-2-cloudresource","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magneticstain%2Fip-2-cloudresource/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magneticstain%2Fip-2-cloudresource/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magneticstain%2Fip-2-cloudresource/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/magneticstain","download_url":"https://codeload.github.com/magneticstain/ip-2-cloudresource/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magneticstain%2Fip-2-cloudresource/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30107212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T01:39:18.192Z","status":"online","status_checked_at":"2026-03-05T02:00:06.710Z","response_time":93,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin","alb","attack-surface","aws","azure","cloud","correlation","discovery","elb","gcp","ip","management-tools","resources"],"created_at":"2026-03-05T02:32:18.522Z","updated_at":"2026-03-05T02:32:19.250Z","avatar_url":"https://github.com/magneticstain.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD013 --\u003e\n\u003c!-- markdownlint-disable-next-line MD041 --\u003e\n![IP2CR Logo](./assets/logo-transparent.png)\n\n---\n\n[![Build and Test - Main Branch](https://github.com/magneticstain/ip-2-cloudresource/actions/workflows/build_main.yml/badge.svg)](https://github.com/magneticstain/ip-2-cloudresource/actions/workflows/build_main.yml)\n[![Build and Test - Release Branches](https://github.com/magneticstain/ip-2-cloudresource/actions/workflows/build_release.yml/badge.svg)](https://github.com/magneticstain/ip-2-cloudresource/actions/workflows/build_release.yml)\n[![Release](https://github.com/magneticstain/ip-2-cloudresource/actions/workflows/release.yml/badge.svg)](https://github.com/magneticstain/ip-2-cloudresource/actions/workflows/release.yml)\n\n[![Codacy Badge - Quality](https://app.codacy.com/project/badge/Grade/5137ec7cf2d14a9c9fc3eac1cd37e0d3)](https://app.codacy.com/gh/magneticstain/ip-2-cloudresource/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade)\n[![Codacy Badge - Coverage](https://app.codacy.com/project/badge/Coverage/5137ec7cf2d14a9c9fc3eac1cd37e0d3)](https://app.codacy.com/gh/magneticstain/ip-2-cloudresource/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_coverage)\n\n![GitHub commits since latest release (by SemVer including pre-releases)](https://img.shields.io/github/commits-since/magneticstain/ip-2-cloudresource/v3.1.6)\n![GitHub issues](https://img.shields.io/github/issues/magneticstain/ip-2-cloudresource)\n![GitHub pull requests](https://img.shields.io/github/issues-pr/magneticstain/ip-2-cloudresource)\n![GitHub all releases](https://img.shields.io/github/downloads/magneticstain/ip-2-cloudresource/total)\n\n## Summary\n\nIP-2-CloudResource (IP2CR) is a tool used for correlating a cloud IP address with its associated resources. It focuses on providing as much context to the user as possible, as fast as possible.\n\n![IP2CR Demo](./assets/demo.gif)\n\n## Features\n\n- Built for speed and ease-of-use while only generating a small resource footprint\n- Supports finding IPs across multiple cloud platforms:\n  - **AWS**: CloudFront, ALBs \u0026 NLBs, Classic ELBs, EC2 instances with public IP addresses\n  - **GCP**: Compute Engine instances\n  - **Azure**: Virtual Machines, CDN endpoints, Load Balancers\n- Support for searching through accounts within an AWS Organization\n- IPv6 support\n- JSON output to easily integrate with scripts\n- Ability to map the network path taken from the internet to the identified resource (currently AWS-only)\n\n### Roadmap\n\n#### 2025\n\n- [ ] Add IP Fuzzing Support to All Supported Cloud Providers ([#426](https://github.com/magneticstain/ip-2-cloudresource/issues/426))\n- [ ] Extend Network Mapping Feature to All Supported Cloud Platforms ([#427](https://github.com/magneticstain/ip-2-cloudresource/issues/427))\n- [ ] Add Support for Alibaba Cloud ([#557](https://github.com/magneticstain/ip-2-cloudresource/issues/557))\n- [ ] Add Support for Digital Ocean ([#558](https://github.com/magneticstain/ip-2-cloudresource/issues/558))\n\n## Prerequisites\n\n### OS\n\n- Linux\n- MacOS\n- Windows\n\n### Go\n\nIP2CR requires Go 1.22 or later. It is tested against the current stable and previous stable versions of Go.\n\n## Install\n\n### Docker\n\nThe most portable way to install and run IP2CR is by using Docker.\n\n#### Via Container Registry\n\nThe easiest way to run IP2CR in Docker is by using the public containers hosted on container registries. IP2CR images are available on both Docker Hub and GitHub Container Registry. See the commands below for how to run IP2CR using each registry.\n\n##### Docker Hub\n\n```bash\ndocker run --rm --name=ip-2-cloudresource magneticstain/ip-2-cloudresource\n```\n\n##### Github Container Registry\n\n```bash\ndocker run --rm --name=ip-2-cloudresource ghcr.io/magneticstain/ip-2-cloudresource\n```\n\n#### Via Local Build\n\nIn the case that container registries are unavailable, there's also the option to build the image locally. To do that, check out the `main` branch of this repo, build the IP2CR image, and run it.\n\n```bash\ngit clone https://github.com/magneticstain/ip-2-cloudresource.git\ndocker build -t ip-2-cloudresource .\ndocker run --rm --name=ip-2-cloudresource ip-2-cloudresource\n```\n\n### Homebrew\n\nThe easiest way to install IP2CR if you're using Mac OS is to use [Homebrew](https://brew.sh). With homebrew installed, run the following to install IP2CR:\n\n```bash\nbrew tap magneticstain/ip2cr\nbrew install ip2cr\n```\n\nOnce the install completes, you should be able to run the `ip2cr` command from your path.\n\n### Go Install\n\nIf homebrew isn't an option, you can also install using `go install`:\n\n```bash\ngo install github.com/magneticstain/ip-2-cloudresource@latest\n```\n\n### Binary\n\nFinally, if all else fails or you prefer directly managing IP2CR, to install the IP2CR binary, download the version that matches your OS from the latest release in the release page. The link for that page can be found to the right of this page.\n\nAfter downloading, extract to your preferred app directory. E.g.:\n\n```bash\nmkdir -p /opt/ip2cr\ntar -xvzf ip2cr_Linux_x86_64_v0.0.3.tar.gz -C /opt/ip2cr/\ncd /opt/ip2cr/\n```\n\n## Usage\n\nAfter installing, run the `ip2cr` binary to see available parameters:\n\n\u003c!-- markdownlint-disable MD010 --\u003e\n```bash\n\u003e ip2cr --help\nUsage of ip2cr:\n  -adv-ip-fuzzing\n    \tToggle the advanced IP fuzzing feature to perform a more intensive heuristics evaluation to fuzz the service (not recommended for IPv6 addresses) (default true)\n  -ip-fuzzing\n    \tToggle the IP fuzzing feature to evaluate the IP and help optimize search (not recommended for small accounts) (default true)\n  -ipaddr string\n    \tIP address to search for (default \"127.0.0.1\")\n  -json\n    \tOutputs results in JSON format; implies usage of --silent flag\n  -network-mapping\n    \tIf enabled, generate a network map associated with the identified resource, if found (default: false)\n  -org-search\n    \tSearch through all child accounts of the organization for resources, as well as target account (target account should be parent account)\n  -org-search-ou-id string\n    \tThe ID of the AWS Organizations Organizational Unit to target when performing a search\n  -org-search-role-name string\n    \tThe name of the role in each child account of an AWS Organization to assume when performing a search (default \"ip2cr\")\n  -org-search-xaccount-role-arn string\n    \tThe ARN of the role to assume for gathering AWS Organizations information for search, e.g. the role to assume with R/O access to your AWS Organizations account\n  -platform string\n    \tPlatform to target for IP search (e.g. aws, gcp, etc) (default \"aws\")\n  -project-id string\n    \tFor cloud platforms that require it (e.g. GCP), set this to the ID of the target project to search\n  -silent\n    \tIf enabled, only output the results\n  -svc string\n    \tSpecific cloud service(s) to search. Multiple services can be listed in CSV format, e.g. elbv1,elbv2. Available services are: cloudfront , ec2 , elbv1 , elbv2 (default \"all\")\n  -verbose\n    \tOutputs all logs, from debug level to critical\n```\n\n### Using IP2CR With MFA Role\n\nA large number of enterprises configure their IAM architecture such that users login to a central AWS account and then assume various IAM roles in other accounts as needed. It's [recommended by AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) that these roles are configured to require the principal to be authenticated using MFA. This can present a problem when configuring AWS credentials using a profile that assumes a target role using MFA (denoted by the usage of the `mfa_serial` as part of the profile) as the AWS SDK does not support (automatically) prompting the user for MFA input.\n\nInstead, this will present itself as a fatal error within IP2CR, e.g.:\n\n```text\nINFO[0000] starting IP-2-CloudResource\nDEBU[0000] generating AWS connection\nFATA[0000] assume role with MFA enabled, but AssumeRoleTokenProvider session option not set.\n```\n\n#### Workaround\n\nTo get around this, you will need to generate the STS credentials outside of IP2CR and set them as stated in AWS's documentation. There are several options for this; the two most common are included below:\n\n1. Use the AWS CLI to [generate STS credentials for the role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html#using-temp-creds-sdk-cli)\n2. Use [awsume](https://awsu.me/) or a similar tool to easily handle AWS credentials\n\nOnce you have used your preferred method to generate and set STS credentials, rerun IP2CR and it should work as expected.\n\n### Use Case Recommendations \u0026 Parameter Guide\n\n#### Basic Usage\n\n```bash\nip2cr -ipaddr=1.2.3.4\n```\n\n#### Single AWS Account or AWS Organizations Search?\n\nIf you're searching a single account with a small - medium amount of IP addresses, it's recommended to disable IP fuzzing as the overhead results in a longer search time than simply searching through all IPs.\n\n```bash\nip2cr -ipaddr=1.2.3.4 -ip-fuzzing=false -adv-ip-fuzzing=false\n```\n\nIf you're performing a search across multiple accounts in your AWS Organization, you can enable the feature by adding the `-org-search` flag:\n\n```bash\nip2cr -ipaddr=1.2.3.4 -org-search\n```\n\nIf using a cross-account role name other than the default, ensure that is specified as well:\n\n```bash\nip2cr -ipaddr=1.2.3.4 -org-search -org-search-role-name=ip2cr-xaccount-role\n```\n\nIf you need to assume a target role to read AWS Organizations metadata, you can add another parameter with the target role ARN:\n\n```bash\nip2cr -ipaddr=1.2.3.4 -org-search -org-search-role-name=ip2cr-xaccount-role -org-search-xaccount-role-arn=arn:aws:iam::123456789012:role/org-manage\n```\n\nIf you know which AWS Organizations OU contains the account the target IP is in, you can specify it by adding the `-org-search-ou-id` parameter:\n\n```bash\nip2cr -ipaddr=1.2.3.4 -org-search -org-search-role-name=ip2cr-xaccount-role -org-search-xaccount-role-arn=arn:aws:iam::123456789012:role/org-manage -org-search-ou-id=ou-abcd-12345\n```\n\nFor more information on this feature, see the [AWS Organizations Support Guide](https://github.com/magneticstain/ip-2-cloudresource/wiki/AWS-Organizations-Support-Guide).\n\n#### IPv4 or IPv6 Address?\n\nIf searching for an IPv6 address, you should disable advanced IP fuzzing. It uses reverse DNS lookups to perform hostname analysis, which [doesn't really work the same in IPv6 land as it does with IPv4 addresses](https://en.wikipedia.org/wiki/Reverse_DNS_lookup#IPv6_reverse_resolution):\n\n```bash\nip2cr -ipaddr=2001:0db8:85a3:0000:0000:8a2e:0370:7334 -adv-ip-fuzzing=false\n```\n\n#### Programmatic Usage?\n\nFor programmatic usage of IP2Cr, you may benefit from using the `-json` flag to toggle JSON-formatted output:\n\n```bash\nip2cr -ipaddr=1.2.3.4 -json\n```\n\n#### Speed Run\n\nIf you're looking to run IP2CR as fast as possible (single account), disable IP fuzzing (both basic and advanced) and specify the cloud service for IP2CR to search:\n\n```bash\nip2cr -ipaddr=1.2.3.4 -ip-fuzzing=false -adv-ip-fuzzing=false -svc=ec2\n```\n\n#### Multi-Cloud Search\n\nTo search across different cloud providers, use the `-platform` flag:\n\n```bash\n# Search GCP\nip2cr -ipaddr=1.2.3.4 -platform=gcp -project-id=my-project-id\n\n# Search Azure\nip2cr -ipaddr=1.2.3.4 -platform=azure\n```\n\n## Testing/Demo\n\nYou can use the Terraform plans provided here to generate sample resources in AWS for testing.\n\n\u003chttps://github.com/magneticstain/tf-ip2cr\u003e\n\n## Support, Feature Requests, and General Community Discussion\n\nThe `Discussions` module of this repository has been setup as a place to get support, discuss new features, and facilitate any general discussion related to IP2CR.\n\nIf you are having an issue when using IP2CR, or just need general help, you should start here as opposed to creating an Issue. Any Issues created for support purposes will be closed.\n\n## Contributing\n\nContributions are welcome! Please review the [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) and [SECURITY.md](./SECURITY.md) before contributing.\n\nFor security vulnerabilities, please refer to the [SECURITY.md](./SECURITY.md) file for responsible disclosure guidelines.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagneticstain%2Fip-2-cloudresource","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmagneticstain%2Fip-2-cloudresource","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagneticstain%2Fip-2-cloudresource/lists"}