.. | ||
github-leaked-secrets.md | ||
README.md | ||
wide-source-code-search.md |
External Recon Methodology
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
If you are interested in hacking career and hack the unhackable - we are hiring! (fluent polish written and spoken required).
{% embed url="https://www.stmcyber.com/careers" %}
자산 발견
어떤 회사에 속한 모든 것이 범위 내에 있다고 들었고, 이 회사가 실제로 소유하고 있는 것이 무엇인지 알아내고 싶습니다.
이 단계의 목표는 주요 회사가 소유한 모든 회사와 이러한 회사의 자산을 얻는 것입니다. 이를 위해 우리는 다음을 수행할 것입니다:
- 주요 회사의 인수 목록을 찾습니다. 이는 범위 내의 회사를 알려줍니다.
- 각 회사의 ASN(있는 경우)을 찾아, 각 회사가 소유한 IP 범위를 알아냅니다.
- 역 Whois 조회를 사용하여 첫 번째와 관련된 다른 항목(조직 이름, 도메인 등)을 검색합니다(재귀적으로 수행할 수 있습니다).
- shodan
org
및ssl
필터와 같은 다른 기술을 사용하여 다른 자산을 검색합니다(ssl
트릭은 재귀적으로 수행할 수 있습니다).
인수
우선, 주요 회사가 소유한 다른 회사를 알아야 합니다.
한 가지 옵션은 https://www.crunchbase.com/를 방문하여 주요 회사를 검색하고 "인수"를 클릭하는 것입니다. 거기에서 주요 회사가 인수한 다른 회사를 볼 수 있습니다.
다른 옵션은 주요 회사의 위키피디아 페이지를 방문하여 인수를 검색하는 것입니다.
좋습니다. 이 시점에서 범위 내의 모든 회사를 알아야 합니다. 이제 그들의 자산을 찾는 방법을 알아봅시다.
ASN
자율 시스템 번호(ASN)는 **인터넷 할당 번호 관리 기관(IANA)**에 의해 자율 시스템(AS)에 할당된 고유 번호입니다.
AS는 외부 네트워크에 접근하기 위한 명확하게 정의된 정책을 가진 IP 주소 블록으로 구성되며, 단일 조직에 의해 관리되지만 여러 운영자로 구성될 수 있습니다.
회사가 할당된 ASN이 있는지 찾아보는 것이 흥미롭습니다. 이를 통해 IP 범위를 찾을 수 있습니다. 범위 내의 모든 호스트에 대해 취약성 테스트를 수행하고 이러한 IP 내의 도메인을 찾아보는 것이 좋습니다.
https://bgp.he.net/에서 회사 이름, IP 또는 도메인으로 검색할 수 있습니다.
회사의 지역에 따라 이 링크가 더 많은 데이터를 수집하는 데 유용할 수 있습니다: AFRINIC (아프리카), Arin(북미), APNIC (아시아), LACNIC (라틴 아메리카), RIPE NCC (유럽). 어쨌든, 아마도 모든 유용한 정보 **(IP 범위 및 Whois)**는 첫 번째 링크에 이미 나타납니다.
#You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla
amass intel -asn 8911,50313,394161
또한, BBOT의 서브도메인 열거는 스캔이 끝날 때 ASNs를 자동으로 집계하고 요약합니다.
bbot -t tesla.com -f subdomain-enum
...
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS394161 | 8.244.131.0/24 | 5 | TESLA | Tesla Motors, Inc. | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS16509 | 54.148.0.0/15 | 4 | AMAZON-02 | Amazon.com, Inc. | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS394161 | 8.45.124.0/24 | 3 | TESLA | Tesla Motors, Inc. | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS3356 | 8.32.0.0/12 | 1 | LEVEL3 | Level 3 Parent, LLC | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS3356 | 8.0.0.0/9 | 1 | LEVEL3 | Level 3 Parent, LLC | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
You can find the IP ranges of an organisation also using http://asnlookup.com/ (it has free API).
You can find the IP and ASN of a domain using http://ipv4info.com/.
취약점 찾기
At this point we known all the assets inside the scope, so if you are allowed you could launch some vulnerability scanner (Nessus, OpenVAS) over all the hosts.
Also, you could launch some port scans or use services like shodan to find open ports and depending on what you find you should take a look in this book to how to pentest several possible services running.
Also, It could be worth it to mention that you can also prepare some default username and passwords lists and try to bruteforce services with https://github.com/x90skysn3k/brutespray.
도메인
We know all the companies inside the scope and their assets, it's time to find the domains inside the scope.
Please, note that in the following purposed techniques you can also find subdomains and that information shouldn't be underrated.
First of all you should look for the main domain(s) of each company. For example, for Tesla Inc. is going to be tesla.com.
역 DNS
As you have found all the IP ranges of the domains you could try to perform reverse dns lookups on those IPs to find more domains inside the scope. Try to use some dns server of the victim or some well-known dns server (1.1.1.1, 8.8.8.8)
dnsrecon -r <DNS Range> -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns
dnsrecon -r 157.240.221.35/24 -n 1.1.1.1 #Using cloudflares dns
dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
For this to work, the administrator has to enable manually the PTR.
You can also use a online tool for this info: http://ptrarchive.com/
Reverse Whois (loop)
Inside a whois you can find a lot of interesting information like organisation name, address, emails, phone numbers... But which is even more interesting is that you can find more assets related to the company if you perform reverse whois lookups by any of those fields (for example other whois registries where the same email appears).
You can use online tools like:
- https://viewdns.info/reversewhois/ - 무료
- https://domaineye.com/reverse-whois - 무료
- https://www.reversewhois.io/ - 무료
- https://www.whoxy.com/ - 무료 웹, 무료 API 아님.
- http://reversewhois.domaintools.com/ - 무료 아님
- https://drs.whoisxmlapi.com/reverse-whois-search - 무료 아님 (단 100 무료 검색)
- https://www.domainiq.com/ - 무료 아님
You can automate this task using DomLink (requires a whoxy API key).
You can also perform some automatic reverse whois discovery with amass: amass intel -d tesla.com -whois
Note that you can use this technique to discover more domain names every time you find a new domain.
Trackers
If find the same ID of the same tracker in 2 different pages you can suppose that both pages are managed by the same team.
For example, if you see the same Google Analytics ID or the same Adsense ID on several pages.
There are some pages and tools that let you search by these trackers and more:
Favicon
Did you know that we can find related domains and sub domains to our target by looking for the same favicon icon hash? This is exactly what favihash.py tool made by @m4ll0k2 does. Here’s how to use it:
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
간단히 말해, favihash는 우리의 타겟과 동일한 파비콘 아이콘 해시를 가진 도메인을 발견할 수 있게 해줍니다.
게다가, 이 블로그 포스트에서 설명한 대로 파비콘 해시를 사용하여 기술을 검색할 수도 있습니다. 즉, 취약한 버전의 웹 기술의 파비콘 해시를 알고 있다면 shodan에서 검색하여 더 많은 취약한 장소를 찾을 수 있습니다:
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
이것은 웹의 파비콘 해시를 계산하는 방법입니다:
import mmh3
import requests
import codecs
def fav_hash(url):
response = requests.get(url)
favicon = codecs.encode(response.content,"base64")
fhash = mmh3.hash(favicon)
print(f"{url} : {fhash}")
return fhash
Copyright / Uniq string
웹 페이지 내에서 같은 조직의 서로 다른 웹에서 공유될 수 있는 문자열을 검색합니다. 저작권 문자열이 좋은 예가 될 수 있습니다. 그런 다음 구글, 다른 브라우저 또는 shodan에서 해당 문자열을 검색합니다: shodan search http.html:"Copyright string"
CRT Time
크론 작업이 있는 것이 일반적입니다.
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
to renew the all the domain certificates on the server. This means that even if the CA used for this doesn't set the time it was generated in the Validity time, it's possible to find domains belonging to the same company in the certificate transparency logs.
Check out this writeup for more information.
Mail DMARC 정보
You can use a web such as https://dmarc.live/info/google.com or a tool such as https://github.com/Tedixx/dmarc-subdomains to find domains and subdomain sharing the same dmarc information.
수동 인수
Apparently is common for people to assign subdomains to IPs that belongs to cloud providers and at some point lose that IP address but forget about removing the DNS record. Therefore, just spawning a VM in a cloud (like Digital Ocean) you will be actually taking over some subdomains(s).
이 게시물 explains a store about it and propose a script that spawns a VM in DigitalOcean, gets the IPv4 of the new machine, and searches in Virustotal for subdomain records pointing to it.
기타 방법
Note that you can use this technique to discover more domain names every time you find a new domain.
Shodan
As you already know the name of the organisation owning the IP space. You can search by that data in shodan using: org:"Tesla, Inc."
Check the found hosts for new unexpected domains in the TLS certificate.
You could access the TLS certificate of the main web page, obtain the Organisation name and then search for that name inside the TLS certificates of all the web pages known by shodan with the filter : ssl:"Tesla Motors"
or use a tool like sslsearch.
Assetfinder
Assetfinder 은 주 도메인과 관련된 도메인 및 서브도메인을 찾는 도구로, 정말 놀랍습니다.
취약점 찾기
Check for some domain takeover. Maybe some company is using some a domain but they lost the ownership. Just register it (if cheap enough) and let know the company.
If you find any domain with an IP different from the ones you already found in the assets discovery, you should perform a basic vulnerability scan (using Nessus or OpenVAS) and some port scan with nmap/masscan/shodan. Depending on which services are running you can find in this book some tricks to "attack" them.
Note that sometimes the domain is hosted inside an IP that is not controlled by the client, so it's not in the scope, be careful.
버그 바운티 팁: 가입하세요 Intigriti, 해커를 위해 만들어진 프리미엄 버그 바운티 플랫폼! 오늘 https://go.intigriti.com/hacktricks에서 저희와 함께하고 최대 $100,000의 보상을 받기 시작하세요!
{% embed url="https://go.intigriti.com/hacktricks" %}
서브도메인
We know all the companies inside the scope, all the assets of each company and all the domains related to the companies.
It's time to find all the possible subdomains of each found domain.
{% hint style="success" %} Note that some of the tools and techniques to find domains can also help to find subdomains! {% endhint %}
DNS
Let's try to get subdomains from the DNS records. We should also try for Zone Transfer (If vulnerable, you should report it).
dnsrecon -a -d tesla.com
OSINT
많은 서브도메인을 빠르게 얻는 방법은 외부 소스에서 검색하는 것입니다. 가장 많이 사용되는 도구는 다음과 같습니다 (더 나은 결과를 위해 API 키를 구성하세요):
# subdomains
bbot -t tesla.com -f subdomain-enum
# subdomains (passive only)
bbot -t tesla.com -f subdomain-enum -rf passive
# subdomains + port scan + web screenshots
bbot -t tesla.com -f subdomain-enum -m naabu gowitness -n my_scan -o .
amass enum [-active] [-ip] -d tesla.com
amass enum -d tesla.com | grep tesla.com # To just list subdomains
# Subfinder, use -silent to only have subdomains in the output
./subfinder-linux-amd64 -d tesla.com [-silent]
# findomain, use -silent to only have subdomains in the output
./findomain-linux -t tesla.com [--quiet]
python3 oneforall.py --target tesla.com [--dns False] [--req False] [--brute False] run
assetfinder --subs-only <domain>
# It requires that you create a sudomy.api file with API keys
sudomy -d tesla.com
vita -d tesla.com
theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye"
다른 흥미로운 도구/API가 있으며, 이들은 서브도메인을 찾는 데 직접적으로 특화되어 있지 않더라도 서브도메인을 찾는 데 유용할 수 있습니다. 예를 들어:
- Crobat: API https://sonar.omnisint.io를 사용하여 서브도메인을 얻습니다.
# Get list of subdomains in output from the API
## This is the API the crobat tool will use
curl https://sonar.omnisint.io/subdomains/tesla.com | jq -r ".[]"
curl https://jldc.me/anubis/subdomains/tesla.com | jq -r ".[]"
- RapidDNS 무료 API
# Get Domains from rapiddns free API
rapiddns(){
curl -s "https://rapiddns.io/subdomain/$1?full=1" \
| grep -oE "[\.a-zA-Z0-9-]+\.$1" \
| sort -u
}
rapiddns tesla.com
# Get Domains from crt free API
crt(){
curl -s "https://crt.sh/?q=%25.$1" \
| grep -oE "[\.a-zA-Z0-9-]+\.$1" \
| sort -u
}
crt tesla.com
- gau: 주어진 도메인에 대해 AlienVault의 Open Threat Exchange, Wayback Machine 및 Common Crawl에서 알려진 URL을 가져옵니다.
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
- SubDomainizer & subscraper: 이들은 웹을 스크랩하여 JS 파일을 찾고 그곳에서 서브도메인을 추출합니다.
# Get only subdomains from SubDomainizer
python3 SubDomainizer.py -u https://tesla.com | grep tesla.com
# Get only subdomains from subscraper, this already perform recursion over the found results
python subscraper.py -u tesla.com | grep tesla.com | cut -d " " -f
# Get info about the domain
shodan domain <domain>
# Get other pages with links to subdomains
shodan search "http.html:help.domain.com"
export CENSYS_API_ID=...
export CENSYS_API_SECRET=...
python3 censys-subdomain-finder.py tesla.com
python3 DomainTrail.py -d example.com
- securitytrails.com는 서브도메인 및 IP 기록을 검색할 수 있는 무료 API를 제공합니다.
- chaos.projectdiscovery.io
이 프로젝트는 버그 바운티 프로그램과 관련된 모든 서브도메인을 무료로 제공합니다. 이 데이터를 chaospy를 사용하여 접근할 수 있으며, 이 프로젝트에서 사용된 범위에 접근할 수도 있습니다: https://github.com/projectdiscovery/chaos-public-program-list
여기에서 이러한 도구들의 비교를 찾을 수 있습니다: https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off
DNS 브루트 포스
가능한 서브도메인 이름을 사용하여 DNS 서버를 브루트 포싱하여 새로운 서브도메인을 찾아보겠습니다.
이 작업을 위해서는 다음과 같은 일반 서브도메인 단어 목록이 필요합니다:
- https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056
- https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt
- https://localdomain.pw/subdomain-bruteforce-list/all.txt.zip
- https://github.com/pentester-io/commonspeak
- https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS
또한 좋은 DNS 해석기의 IP도 필요합니다. 신뢰할 수 있는 DNS 해석기 목록을 생성하기 위해 https://public-dns.info/nameservers-all.txt에서 해석기를 다운로드하고 dnsvalidator를 사용하여 필터링할 수 있습니다. 또는: https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt를 사용할 수 있습니다.
DNS 브루트 포스에 가장 추천되는 도구는:
- massdns: 이는 효과적인 DNS 브루트 포스를 수행한 첫 번째 도구입니다. 매우 빠르지만 잘못된 긍정 반응이 발생할 수 있습니다.
sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt
- gobuster: 이 도구는 1개의 리졸버만 사용하는 것 같습니다.
gobuster dns -d mysite.com -t 50 -w subdomains.txt
- shuffledns는
massdns
를 감싸는 도구로, Go로 작성되어 있으며, 능동적인 브루트포스를 사용하여 유효한 서브도메인을 열거하고, 와일드카드 처리를 통해 서브도메인을 해결하며, 간편한 입력-출력 지원을 제공합니다.
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
- puredns:
massdns
도 사용합니다.
puredns bruteforce all.txt domain.com
- aiodnsbrute는 asyncio를 사용하여 도메인 이름을 비동기적으로 무차별 대입합니다.
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
두 번째 DNS 브루트 포스 라운드
오픈 소스를 사용하고 브루트 포싱을 통해 서브 도메인을 찾은 후, 발견된 서브 도메인의 변형을 생성하여 더 많은 서브 도메인을 찾으려고 할 수 있습니다. 이 목적을 위해 여러 도구가 유용합니다:
- dnsgen: 도메인과 서브 도메인을 주면 순열을 생성합니다.
cat subdomains.txt | dnsgen -
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
- gotator: 도메인과 서브도메인을 기반으로 순열을 생성합니다. 순열 파일이 지정되지 않은 경우 gotator는 자체 파일을 사용합니다.
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
- altdns: 서브도메인 조합을 생성하는 것 외에도, 이를 해결하려고 시도할 수 있습니다(하지만 이전에 언급된 도구를 사용하는 것이 더 좋습니다).
- altdns 조합 단어 목록은 여기에서 얻을 수 있습니다.
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
- dmut: 서브도메인의 순열, 변형 및 변경을 수행하는 또 다른 도구입니다. 이 도구는 결과를 무작위로 시도합니다( dns 와일드카드를 지원하지 않습니다).
- dmut 순열 단어 목록은 여기에서 얻을 수 있습니다.
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
- alterx: 주어진 도메인을 기반으로 지정된 패턴에 따라 새로운 잠재적 서브도메인 이름을 생성하여 더 많은 서브도메인을 발견하려고 시도합니다.
스마트 순열 생성
python3 main.py adobe.com adobe adobe.rules
make_brute_list.sh adobe.rules adobe.brute
puredns resolve adobe.brute --write adobe.valid
- subzuf: _subzuf_는 매우 간단하지만 효과적인 DNS 응답 유도 알고리즘과 결합된 서브도메인 브루트포스 퍼저입니다. 맞춤형 단어 목록이나 역사적인 DNS/TLS 기록과 같은 제공된 입력 데이터 세트를 활용하여 더 많은 해당 도메인 이름을 정확하게 합성하고 DNS 스캔 중에 수집된 정보를 기반으로 루프에서 이를 더욱 확장합니다.
echo www | subzuf facebook.com
서브도메인 발견 워크플로우
도메인에서 서브도메인 발견을 자동화하는 방법에 대해 작성한 블로그 게시물을 확인해 보세요. Trickest 워크플로우를 사용하여 컴퓨터에서 여러 도구를 수동으로 실행할 필요가 없습니다:
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/" %}
{% embed url="https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/" %}
VHosts / 가상 호스트
서브도메인에 속하는 하나 이상의 웹 페이지를 포함하는 IP 주소를 찾았다면, OSINT 소스에서 IP의 도메인을 찾거나 해당 IP에서 VHost 도메인 이름을 브루트 포스하여 다른 서브도메인을 찾을 수 있습니다.
OSINT
HostHunter 또는 기타 API를 사용하여 IP에서 일부 VHosts를 찾을 수 있습니다.
브루트 포스
어떤 서브도메인이 웹 서버에 숨겨져 있다고 의심되면 브루트 포스를 시도할 수 있습니다:
ffuf -c -w /path/to/wordlist -u http://victim.com -H "Host: FUZZ.victim.com"
gobuster vhost -u https://mysite.com -t 50 -w subdomains.txt
wfuzz -c -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-20000.txt --hc 400,404,403 -H "Host: FUZZ.example.com" -u http://example.com -t 100
#From https://github.com/allyshka/vhostbrute
vhostbrute.py --url="example.com" --remoteip="10.1.1.15" --base="www.example.com" --vhosts="vhosts_full.list"
#https://github.com/codingo/VHostScan
VHostScan -t example.com
{% hint style="info" %} 이 기술을 사용하면 내부/숨겨진 엔드포인트에 접근할 수도 있습니다. {% endhint %}
CORS Brute Force
때때로 유효한 도메인/서브도메인이 Origin 헤더에 설정될 때만 Access-Control-Allow-Origin 헤더를 반환하는 페이지를 발견할 수 있습니다. 이러한 시나리오에서는 이 동작을 악용하여 새로운 서브도메인을 발견할 수 있습니다.
ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body
버킷 브루트 포스
서브도메인을 찾는 동안 버킷으로 포인팅되는지 주의하세요. 그런 경우 권한을 확인하세요.
또한, 이 시점에서 범위 내의 모든 도메인을 알게 되었으므로 가능한 버킷 이름을 브루트 포스하고 권한을 확인하세요.
모니터링
도메인의 새 서브도메인이 생성되는지 Certificate Transparency 로그를 모니터링하여 확인할 수 있습니다. sublert가 이를 수행합니다.
취약점 찾기
가능한 서브도메인 탈취를 확인하세요.
서브도메인이 어떤 S3 버킷으로 포인팅되고 있다면, 권한을 확인하세요.
자산 탐색에서 이미 발견한 것과 다른 IP를 가진 서브도메인을 발견하면, 기본 취약점 스캔(Nessus 또는 OpenVAS 사용)과 포트 스캔(nmap/masscan/shodan 사용)을 수행해야 합니다. 실행 중인 서비스에 따라 이 책에서 "공격"하는 몇 가지 요령을 찾을 수 있습니다.
서브도메인이 클라이언트가 제어하지 않는 IP 내에 호스팅되는 경우가 있으므로, 범위에 포함되지 않을 수 있습니다. 주의하세요.
IPs
초기 단계에서 일부 IP 범위, 도메인 및 서브도메인을 발견했을 수 있습니다.
이제 그 범위에서 모든 IP를 수집할 시간입니다. **도메인/서브도메인(DNS 쿼리)**에 대한 IP도 포함됩니다.
다음 무료 API 서비스를 사용하여 도메인과 서브도메인에서 사용된 이전 IP를 찾을 수 있습니다. 이 IP는 여전히 클라이언트가 소유하고 있을 수 있으며, CloudFlare 우회를 찾는 데 도움이 될 수 있습니다.
특정 IP 주소를 가리키는 도메인을 확인하려면 hakip2host 도구를 사용할 수 있습니다.
취약점 찾기
CDN에 속하지 않는 모든 IP에 대해 포트 스캔을 수행하세요(여기서는 흥미로운 것을 찾지 못할 가능성이 높습니다). 발견된 실행 중인 서비스에서 취약점을 찾을 수 있을지도 모릅니다.
호스트 스캔 방법에 대한 가이드를 찾으세요.
웹 서버 헌팅
우리는 모든 회사와 그 자산을 찾았고, 범위 내의 IP 범위, 도메인 및 서브도메인을 알고 있습니다. 이제 웹 서버를 검색할 시간입니다.
이전 단계에서 이미 발견된 IP와 도메인에 대한 일부 재콘을 수행했을 가능성이 높으므로, 모든 가능한 웹 서버를 이미 찾았을 수 있습니다. 그러나 찾지 못했다면 이제 범위 내에서 웹 서버를 검색하는 빠른 요령을 살펴보겠습니다.
이것은 웹 앱 발견을 위한 지향적이므로, 취약점 및 포트 스캔도 수행해야 합니다(범위에서 허용되는 경우).
웹 서버와 관련된 열려 있는 포트를 발견하는 빠른 방법은 masscan를 사용할 수 있습니다.
웹 서버를 찾기 위한 또 다른 유용한 도구는 httprobe, fprobe 및 httpx입니다. 도메인 목록을 전달하면 포트 80 (http) 및 443 (https)에 연결을 시도합니다. 추가로 다른 포트를 시도하도록 지정할 수 있습니다:
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443
스크린샷
이제 범위 내의 모든 웹 서버(회사의 IP와 모든 도메인 및 서브도메인 중)에 대해 발견했으므로, 아마도 어디서 시작해야 할지 모를 것입니다. 그러니 간단하게 시작하여 모든 웹 서버의 스크린샷을 찍어보세요. 메인 페이지를 살펴보는 것만으로도 이상한 엔드포인트를 발견할 수 있으며, 이는 취약점이 있을 가능성이 더 높습니다.
제안된 아이디어를 수행하기 위해 EyeWitness, HttpScreenshot, Aquatone, Shutter, Gowitness 또는 webscreenshot을 사용할 수 있습니다.
또한, eyeballer를 사용하여 모든 스크린샷을 분석하여 취약점이 있을 가능성이 있는 것과 그렇지 않은 것을 알려줄 수 있습니다.
퍼블릭 클라우드 자산
회사의 잠재적인 클라우드 자산을 찾기 위해서는 회사를 식별하는 키워드 목록으로 시작해야 합니다. 예를 들어, 암호화폐 회사의 경우 다음과 같은 단어를 사용할 수 있습니다: "crypto", "wallet", "dao", "<domain_name>", <"subdomain_names">
.
또한 버킷에서 사용되는 일반 단어의 단어 목록이 필요합니다:
- https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt
- https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt
- https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt
그런 다음, 이러한 단어로 순열을 생성해야 합니다(자세한 내용은 두 번째 라운드 DNS 브루트포스를 참조하세요).
결과 단어 목록을 사용하여 cloud_enum, CloudScraper, cloudlist 또는 S3Scanner와 같은 도구를 사용할 수 있습니다.
클라우드 자산을 찾을 때는 AWS의 버킷 이상으로 찾아야 한다는 점을 기억하세요.
취약점 찾기
열린 버킷이나 노출된 클라우드 기능과 같은 것을 발견하면 접속하여 제공하는 내용을 확인하고 이를 악용할 수 있는지 확인해야 합니다.
이메일
범위 내의 도메인과 서브도메인을 통해 이메일 검색을 시작할 수 있는 모든 것을 갖추게 됩니다. 다음은 회사의 이메일을 찾는 데 가장 효과적이었던 API와 도구입니다:
- theHarvester - API 사용
- https://hunter.io/의 API (무료 버전)
- https://app.snov.io/의 API (무료 버전)
- https://minelead.io/의 API (무료 버전)
취약점 찾기
이메일은 나중에 웹 로그인 및 인증 서비스(예: SSH)에 대한 브루트포스에 유용하게 사용됩니다. 또한, 피싱에도 필요합니다. 게다가, 이러한 API는 이메일 뒤에 있는 사람에 대한 더 많은 정보를 제공하므로 피싱 캠페인에 유용합니다.
자격 증명 유출
도메인, 서브도메인, 및 이메일을 통해 과거에 유출된 자격 증명을 찾기 시작할 수 있습니다:
취약점 찾기
유효한 유출된 자격 증명을 발견하면, 이는 매우 쉬운 승리입니다.
비밀 유출
자격 증명 유출은 민감한 정보가 유출되어 판매된 회사의 해킹과 관련이 있습니다. 그러나 회사는 이러한 데이터베이스에 없는 다른 유출로 인해 영향을 받을 수 있습니다:
깃허브 유출
자격 증명 및 API는 회사의 공개 리포지토리 또는 해당 깃허브 회사에서 일하는 사용자의 공개 리포지토리에 유출될 수 있습니다.
Leakos라는 도구를 사용하여 조직 및 그 개발자의 모든 공개 리포를 다운로드하고, gitleaks를 자동으로 실행할 수 있습니다.
Leakos는 또한 제공된 URL에 대해 gitleaks를 실행하는 데 사용할 수 있으며, 때때로 웹 페이지에도 비밀이 포함되어 있습니다.
깃허브 도크
공격 중인 조직에서 검색할 수 있는 잠재적인 깃허브 도크에 대한 페이지도 확인하세요:
{% content-ref url="github-leaked-secrets.md" %} github-leaked-secrets.md {% endcontent-ref %}
Paste 유출
때때로 공격자나 단순한 직원이 회사 콘텐츠를 paste 사이트에 게시합니다. 이는 민감한 정보를 포함할 수도 있고 포함하지 않을 수도 있지만, 검색할 가치가 있습니다.
Pastos라는 도구를 사용하여 동시에 80개 이상의 paste 사이트에서 검색할 수 있습니다.
구글 도크
오래되었지만 여전히 유용한 구글 도크는 거기에 있어서는 안 되는 노출된 정보를 찾는 데 항상 유용합니다. 유일한 문제는 google-hacking-database에 수천 개의 가능한 쿼리가 포함되어 있어 수동으로 실행할 수 없다는 것입니다. 따라서 좋아하는 10개를 선택하거나 Gorks와 같은 도구를 사용하여 모두 실행할 수 있습니다.
정기적인 Google 브라우저를 사용하여 모든 데이터베이스를 실행하려는 도구는 매우 빨리 차단되므로 결코 끝나지 않을 것입니다.
취약점 찾기
유효한 유출된 자격 증명이나 API 토큰을 발견하면, 이는 매우 쉬운 승리입니다.
공개 코드 취약점
회사가 오픈 소스 코드를 가지고 있다면, 이를 분석하고 취약점을 검색할 수 있습니다.
언어에 따라 사용할 수 있는 다양한 도구가 있습니다:
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}
또한 공개 리포지토리를 스캔할 수 있는 무료 서비스도 있습니다:
웹 펜테스팅 방법론
버그 헌터가 발견한 대부분의 취약점은 웹 애플리케이션 내에 존재하므로, 이 시점에서 웹 애플리케이션 테스트 방법론에 대해 이야기하고 싶습니다. 여기에서 이 정보를 찾을 수 있습니다.
또한 웹 자동 스캐너 오픈 소스 도구 섹션에 특별히 언급하고 싶습니다. 이 도구들은 매우 민감한 취약점을 찾을 것으로 기대하지 말아야 하지만, 초기 웹 정보를 얻기 위한 워크플로우에 유용합니다.
요약
축하합니다! 이 시점에서 모든 기본 열거 작업을 수행했습니다. 네, 기본적입니다. 더 많은 열거 작업이 가능하므로(나중에 더 많은 트릭을 볼 것입니다).
따라서 이미 다음을 수행했습니다:
- 범위 내의 모든 회사를 찾았습니다.
- 회사에 속하는 모든 자산을 찾았습니다(범위 내에서 일부 취약점 스캔 수행).
- 회사에 속하는 모든 도메인을 찾았습니다.
- 도메인의 모든 서브도메인을 찾았습니다(서브도메인 탈취 가능성은 있나요?).
- 범위 내의 모든 IP(CDN에서 온 것과 아닌 것)를 찾았습니다.
- 모든 웹 서버를 찾고 스크린샷을 찍었습니다(더 깊이 살펴볼 가치가 있는 이상한 점이 있나요?).
- 회사에 속하는 모든 잠재적 공개 클라우드 자산을 찾았습니다.
- 이메일, 자격 증명 유출, 및 비밀 유출로 인해 매우 쉽게 큰 승리를 얻을 수 있습니다.
- 발견한 모든 웹을 펜테스팅했습니다.
전체 재콘 자동 도구
주어진 범위에 대해 제안된 작업의 일부를 수행하는 여러 도구가 있습니다.
- https://github.com/yogeshojha/rengine
- https://github.com/j3ssie/Osmedeus
- https://github.com/six2dez/reconftw
- https://github.com/hackerspider1/EchoPwn - 조금 오래되었고 업데이트되지 않음
참고 문헌
- @Jhaddix의 모든 무료 과정, 예를 들어 버그 헌터의 방법론 v4.0 - 재콘 에디션
해킹 경력에 관심이 있고 해킹할 수 없는 것을 해킹하고 싶다면 - 우리는 채용 중입니다! (유창한 폴란드어 필기 및 구사 필요).
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %}
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나, Twitter에서 팔로우하세요 🐦 @hacktricks_live.
- HackTricks 및 HackTricks Cloud 깃허브 리포에 PR을 제출하여 해킹 트릭을 공유하세요.