Find S3 bucket takeover , S3 Misconfiguration using pipelining(s3reverse/meg/gf/s3scanner)

Hi hackers! Today, i’m going to talk about easy-to-find methods using S3 Bucket takeover and Misconfiguration (Write/Read…). 오랜만에 글을 쓰는 것 같네요. 요즘 코로나19로 인해 재택근무를 한달넘짓 한 것 같은데, 평소보다 일을 더 많이하게 되는 것 같습니다. 덕분에 블로그에 약간 소흘했던 것 같은데요, 다시 가다잡고 글 작성해봅니다. 오늘은 S3 Bucket takeover와 Misconfiguration(Write/Read, etc..) pipelining을 이용하여 쉽게 찾는 방법들에 대해 이야기하려고 합니다.

What is pipelining

As defined in the wikipedia, the result of a particular command or tool is often used in build scripts, distributions, and so on, hackers automate a lot of testing. 위키에 정의된 내용과 같이 특정 명령이나 도구의 결과가 다음 도구의 인풋이 되는 것을 의미하는데요, 보통 빌드스크립트, 배포등에 많이 사용되고 해커들 또한 이를 통해 굉장히 많은 테스팅 부분을 자동화하여 사용합니다. https://en.wikipedia.org/wiki/Pipeline_(computing)

e.g (nmap 스캔 결과를 msf로 밀어넣음)

nmap -PN {target-address} | msf_db_importer 

저의 경우엔 사실 별로 중요시하지 않던 부분이였는데(그냥 버프키고 한땀한땀..), 유명 해커들(톰놈놈, 남섹 등등)이 사용하는 방법들을 보고 약간 후회하며 급히 자동화 부분에서 많이 개발을 진행했던 것 같네요..

제 트윗을 보면.. 작년부터 이런 파이프라인에 대한 글이 좀 많을겁니다.. find subdomain takeover https://twitter.com/hahwul/status/1228364474282733568 https://www.hahwul.com/2019/10/find-subdomain-takeover-with-amass-and-subjack.html

naabu + httprobe + meg https://twitter.com/hahwul/status/1236335091044855808

등등…

Tools to Use Today

s3reverse https://github.com/hahwul/s3reverse

meg https://github.com/tomnomnom/meg

gf https://github.com/tomnomnom/gf

s3scanner https://github.com/sa7mon/S3Scanner

Find S3 bucket takeover

https://twitter.com/hahwul/status/1236334555000274944 First, create a host file. Read the tweet above to create a list of http services based on multiple targets through the pipeline. 먼저 hosts 파일을 하나 만들어줍니다. 위에 트윗을 잘 읽어보면 파이프라인을 통해 다수의 타겟을 기반으로 http 서비스의 리스트를 만들 수 있습니다.

cat hosts
www.hahwul.com:80
www.hahwul.com:443
www.google.com:443
www.google.com:4435
...

meg를 통해 get 요청을 발생시키고 이에대한 결과 중 gf로 s3 주소 리스트를 뽑아냅니다. 이 때 뽑히는 주소는 path-style, virtual-hosted style, s3 url 등등 여러가지 패턴이고 s3reverse를 통해 한가지 포맷으로 치환할 수 있습니다. -verify 옵션의 경우 현재 버킷의 상태를 읽어옵니다.

meg -d 1000 -v / ; cd out ; gf s3-buckets | s3reverse -verify | grep NoSuchBucket > takeovers

Find S3 Misconfiguration

meg -d 1000 -v / ; cd out ; gf s3-buckets | s3reverse -tN > buckets ; s3scanner buckets

Pipelining!!!

subfinder -d {target} >> domains ; assetfinder -subs-only {target} >> domains ; amass enum -norecursive -noalts -d {target} >> domains ; naabu -silent -hL {target} | httprobe | tee hosts ; meg -d 1000 -v / ; cd out ; gf s3-bucekts | s3reverse -verify

Reference

https://twitter.com/hahwul/status/1236209674799558657 https://twitter.com/hahwul/status/1228364474282733568 https://www.hahwul.com/2019/10/find-subdomain-takeover-with-amass-and-subjack.html https://github.com/hahwul/s3reverse https://github.com/tomnomnom/meg https://github.com/tomnomnom/gf https://github.com/sa7mon/S3Scanner