So from now on, i'll gonna try on some research about Bug bounty reports. Cause just hacking my site is literally not helpful anymore (Every vulnerabilities are already found by my thoughtful teammates..:P), and I wanted to study about more practical web-hacking exploitations. And I found a very detailed guide for beginners, so I'll gonna translate and summarize in korean. (for some extra english studies also.. hehe)
https://medium.com/bugbountywriteup/guide-to-basic-recon-bug-bounties-recon-728c5242a115
=> This is the post that I found. I highly recommend to read this, cause this posting isn't simply talking about the technical ways to find bug, but it shows a case of tactics to find bugs and introduces very useful sites & write-ups we can refer to. It will be pretty helpful for bug-bounty newbies... especially LIKE ME.
How To Do Your Reconnaissance Properly
Before Chasing a Bug Bounty
※ All rights belongs to the respective owner of this posting
- 이 포스팅은 버그 바운티 방법론에 대해서 서술하고 있으며, 기술적으로 버그 바운티를 찾는 법이 아닌 , 버그에 접근하는 전략과 사용할수 있는 툴들, 버그 바운티의 대표적인 write-up 들에 대해 정리한 문서이다.
+) 몇 주 동안 이 라이트업들을 연구하는걸 목표로 잡았음!
1. Is bug bounty a competition?
: 그렇다. 버그 바운티 프로그램은 꽤나 많은 경쟁을 요구한다. 사이트의 보안뿐만 아니라 그 사이트를 맡고 있는 수백명의 사람들에 대항해서 버그를 찾아야 한다는 것이다. 따라서 바운팅을 할때에는 단순한 침투 테스트를 할 때 보다 능동적이고 활동적으로 사이트에 대해 정찰하는 것이 상당히 중요하다.
2. Importance of Reconnaissance in Pentesting?
(여기서 Pentesting-> Penetration testing 의 줄임말으로, 모의침투 테스트라는 뜻.)
: 정찰 시에 관련있는 정보를 추출하는 것은 게임에서 유리한 위치를 선점할수 있다. 가끔씩 사이트를 정찰 할 때 우리는 단순한 정보를 얻는 것 뿐만 아니라, 아무런 모의 테스팅을 하지 않고도 우리를 취약점으로 이끄는 부분에 대한 정보 또한 식별해 낼 수 있다. 또한 취약점을 공격할 때에 꼼꼼한 정찰을 통해 이 공격을 좀더 쉽고, 빠르게 진행할 수 있게 된다.
3. Determining the target?
: 좀더 광범위 하게 공격 표면이 드러나 있고, 더 넓은 범위의 유효한 취약점이 있는 바운티 프로그램을 고를수록
더 많은 보수금을 받을 확률은 점점 높아진다. (so obvious...)
+) 공격 표면이란?
'공격 표면(attack surface)'이라는 표현도 이 목록에 포함된 흥미로운 개념 가운데 하나다. 공격 표면이란 정보 및 금융 자산, 지적 재산, 또는 비즈니스 수행 역량에 존재하는 잠재적 공격 지점을 확인하는 과정을 의미한다.
4. Time to map out the target!
- Rule No#1. 바운티를 시작하기 전에 정책을 제대로 읽고, 어떤 도메인이 바운티할 수 있는 범위 내에 있는지, 그리고 어떤 유형의 취약점들이 유효한 보고로 취급되는지 알아야 한다.
( 제대로 정책을 읽지 않았다가는 바운티 프로그램에 해당하지 않는 취약점을 제출할 수 있으니 조심할 것,)
- Rule No#2. "Keep your friends close and your enemies closer".
공격이나 pentest에 앞서서 아까 언급한 능동적인 정찰을 반드시 시행해야 우리의 타겟에 대해 좀더 많은 정보를 얻을 수 있을 것이다. 또한 어떻게 사이트가 구조화 되어있고, 어떻게 동작하는지도 파악할 수 있게 된다.
이제 recon을 시작해보자. 일단 가장 먼저, 구조를 파악하기 위해 도메인에 종속되어있는 서브도메인들을 전체적으로 스캐닝하기 위해 필자는 본인이 사용하는 툴 들을 친절하게 알려주었다.
+) 도메인과 서브도메인이란?
도메인은 IP를 우리가 사용하는 문자로 연결시킨 것이고, 서브 도메인이란 다중의 사이트를 만들고 연결을 하고자 할때 독립적으로 접속할 수 있게 도와주는 사이트라고 생각하면 된다.
예를 들어 www.naver.com이 이 메인 도메인이라면, cafe.naver.com, blog.naver.com 등이 서브 도메인이라고 이해하면 쉽다. 여기서 www이 메인 서비스로 연결시켜주는 역할을 하는 것이다.
The List:
- https://pentest-tools.com/
- https://virustotal.com/
- https://www.shodan.io/
- https://crt.sh/?q=%25taregt.com
- https://dnsdumpster.com/
- https://censys.io
- http://dnsgoodies.com
- https://bitbucket.org/LaNMaSteR53/recon-ng
- https://github.com/michenriksen/aquatone
- https://github.com/aboul3la/Sublist3r
- https://github.com/rbsec/dnscan
- https://github.com/Cleveridge/cleveridge-subdomain-scanner
그리고 두 번째로, 서버와 네트워크 커넥션에 대한 정보를 얻기 위해 포트 스캐닝을 진행한다.
가장 구식의 방법으로 1-50000까지의 포트 전부를, 또는 특정한 포트를 nmap을 통해 스캐닝하는 방법이 있고,
Masscan - https://github.com/robertdavidgraham/masscan https://github.com/robertdavidgraham/masscan
을 이용할 수도 있다.
- 다른 방법으로는 aquatone을 이용하여 서브도메인을 스캔하고, 많이 사용되는/큰 포트 위주로 스캔하는 것이 있다.
: 또한 aquatone을 사용하는 게 가장 좋지만, 비정상적인 포트에서 실행중인 서비스나 취약할수 있는 기본 포트에서 실행되는 서비스를 스캔하여 결과를 파일로 정리하고, 각각 실행중인 서비스를 검사해서 오래되고 잠재적으로 취약한 부분을 찾는 것은 매우 도움이 될 것이다.
=> 이 과정이 끝난 뒤에는 여러가지 툴을 이용하여 subdomain, dir info, s3 buckets, API endpoint, emails, social accounts, server banners, directory listing.. 등등을 차례대로 점검하여 취약점이 발견될만한 부분을 찾으면 된다.
+) etc... 상당히 많은 툴을 정리해 놓으셨지만 내가 사용할 수 있을 만한 툴만 정리해 놓겠다.
- Burpsuite (professional)- Burpsuite 프로 버전이 있다면 스파이더로 사이트의 구조를 쉽게 파악할 수 있고, intruder로 통해 brute-forcing 공격이 가능하다. 또한 burpsuite pro를 사용할 때 reflector extension을 사용하는 걸 추천한다고 한다. 이것은 burpsuite가 spidering하고 있는 부분 중 조작할 수 있는 파라미터를 전체적으로 보여줘 상당히 유용할 것 같다.
- SN1PER
https://github.com/1N3/Sn1per (for web)
: 전체적인 recon이 가능한 도구로 dns, subdomain, login page, backdoor, username/ password search 등 수많은 기능이 있다.
- 이러한 정찰 도중에 혼란을 방지하기 위해 메모를 작성하는 것과, 그 사이트가 어떻게 구조화 되어있고, 전체적으로 어떻게 작동하는지에 대한 흐름도를 그려놓는 것 또한 중요하다.
5. Bug- Bounty Reference
: 전체적인 버그 바운티에 대한 방법론에 대해서 모두 알아보았으니, 이미 공개적으로 오픈된 write-up 과 참고 자료들을 분석하여 보자. 운이 좋다면 이미 발견된 버그를 또다른 버그 바운티 프로그램에 적용하여 보고할 수도 있다!
https://github.com/djadmin/awesome-bug-bounty
: 버그 바운티에 대한 전체적인 정보를 담고 있는 깃헙이라고 하니, 읽어보면 도움이 될 것 같다.
- XSSI
- Cross-Site Scripting (XSS)
- Brute Force
- SQL Injection (SQLi)
- External XML Entity Attack (XXE)
- Remote Code Execution (RCE)
- Deserialization
- Image Tragick
- Cross-Site Request Forgery (CSRF)
- Insecure Direct Object Reference (IDOR)
- Stealing Access Token
- Google Oauth Login Bypass
- Server Side Request Forgery (SSRF)
- Unrestricted File Upload
- Race Condition
- Business Logic Flaw
- Authentication Bypass
- HTTP Header Injection
- Email Related
- Money Stealing
- Miscellaneous
=> 가장 많이 실행되는 웹해킹 공격 들. 이 라이트업들을 분석해보면서 직접 버그를 한개라도 찾아보는 게 2월의 목표이다.
: 일단 네트워크라던지 그런 쪽의 이런 공부가 안되어 있기 때문에 이 포스팅이 강조하는 것을 모두 실행해보기 힘들지만, 이 포스팅에서 정리된 전략과 라이트업, 해킹 툴들이 상당히 쓸모있을 것 같아서 필요한 내용만 간단히 요약을 해보았다. 전체적으로 실무적인 내용을 다루고 있는 것 같아서 두고두고 읽어보면 되게 좋을 것 같다.
'WEBHACKING > web' 카테고리의 다른 글
Bugbounty) 사례 분석 XSS-2) (0) | 2020.02.08 |
---|---|
Bugbounty) 사례분석 XSS -1) (0) | 2020.02.07 |
Bug Bounty) Naver Cafe XSS - 실패ㅋ (0) | 2020.02.06 |
[Mini-CTF] 취약점 찾기 (0) | 2020.01.30 |
1. XSS 공격 기법 : Cross-site Scripting (0) | 2019.12.30 |