OAST
Introduction
OAST는 Out-of-band application security testing의 약자로 OOB(Out-Of-Band)를 이용한 보안 테스팅 방법을 의미합니다. OOB 자체만으로 보안 이슈가 발생하는건 아니지만, 이를 통해서 Blind 계통의 취약점(Blind RCE, Blind XSS, Blind SSRF 등)을 식별하거나 중요정보를 유출하는 등 활용도가 아주 높은 분석 방법입니다.
그리고 OAST는 ZAP, Burp 등 DAST(Dynamic Application Security Testing)에서 주요 스캔 모델로 선택되기도 하며 이는 실제로 스캔 성능에 큰 영향을 미칩니다. (탐지율 상승)
DNS Reaction
OAST의 핵심은 DNS Reaction 입니다. 서비스를 운영하는 회사들은 각 인프라 환경에 따라 다르겠지만 보통은 Outbound의 경우 기본은 차단하고 조건 또는 예외적으로 허용하는 형태의 보안 정책을 가집니다. 그래서 OAST 등으로 Reaction 요청이 발생하여도 Outbound가 차단되었기 때문에 요청을 받을 수 없는 경우가 많습니다.
다만 DNS의 경우 해당 서버에서 직접 요청하는 것이 아닌 Infra 내/외부의 Resolver를 통해서 DNS Query가 발생하기 때문에 이러한 Outbound 정책과는 별개로 DNS Reaction은 확인할 수 있는 경우가 많습니다. 그래서 전통적인 HTTP 기반의 Callback 방식보다 DNS 등을 포함하는 OAST 방식이 훨씬 더 강력합니다.
HTTP/Other Reaction
DNS Query 이후 HTTP, SMTP 등의 Reaction이 발생했다면 Outbound가 가능한 상태라고 볼 수 있습니다. DNS Reaction 이 식별 목적이 강했다면 이외 나머지 Reaction은 실제 영향력과 관련이 있습니다. 간단한게는 이를 통해서 내부 정보를 유출하거나 SSRF, XSS 등 다른 Blind 취약점으로 연결할 수 있는 포인트가 됩니다.
Offensive techniques
Protocols
HTTP/HTTPS, DNS 2개면 대부분의 요청을 처리할 수 있지만, 테스터에게 조금 더 양질을 정보를 주기 위해 SMTP, LDAP 등의 여러 프로토콜을 지원하는 경우가 있습니다. 아래는 대표적으로 사용되는 프로토콜입니다.
- HTTP/HTTPS
- DNS
- SMTP
- LDAP
- NTLM
- SMB
- FTP
- Etc..
Provider
ZAP | Burp | Nuclei | CLI | Receiver | OSS | Self-Host | |
---|---|---|---|---|---|---|---|
BOAST | O | X | X | O | DNS, HTTP(S) | Yes | Yes |
Interactsh | O | O | O | O | DNS, HTTP(S), SMTP, LDAP, SMB, FTP | Yes | Yes |
Burp Collaborator | X | O | O | O | DNS, HTTP(S), SMTP | No | Yes |
TukTuk | X | X | X | O | DNS, HTTP(S), SMTP, LDAP, SMB, FTP, TCP | Yes | Yes |
Interfaces
ZAP
ZAP에선 OAST 메뉴를 통해서 OAST 도메인을 얻고, Polling할 수 있습니다. 또한 Active Scan 시 OAST 페이로드를 자동으로 생성하고 사용하며 스캐닝을 진행합니다.
ZAP에선 BOAST, Interactsh, Callback(IP기반) 이렇게 3가지의 OAST 서비스를 사용할 수 있습니다.
Burpsuite
Burpsuite에선 Burp Collaborator를 이용하여 테스트할 수 있습니다. Tarborator란 Extension 설치 후 페이로드를 생성하고, 테스트할 수 있습니다. ZAP과 동일하게 Active Scan 시 OAST 페이로드를 자동으로 생성하고 사용하며 스캐닝을 진행합니다.
Burpsuite에선 Burp Collaborator, Interactsh 2가지의 OAST 서비스를 사용할 수 있습니다.
CLI interface
CLI 환경에선 Interactsh가 CLI client도 지원하기 때문에 이를 이용하는 것이 좋습니다. 이외에도 BOAST, TukTuk의 경우 API 형태로는 제공되기 때문에 Code(BOAST), Web(TukTuk) 으로 사용하실 수 있습니다.
# Public server
interactsh-client
# Self-hosted server
interactsh-client -server <YOUR-SELF-HOSTED-SERVER> -token <YOUR-SECRET>
OAST in DAST
DAST에서 Blind 계열의 취약점, 그리고 OOB를 통한 취약점 식별을 위해 OAST를 사용하는 경우가 있습니다. 보통 아래와 같은 순서로 동작합니다.
1) 매번 요청 시 OAST 서비스를 통해 도메인을 생성함 (e.g o5rglw6hawoivfmeylovdxtqji.odiss.eu) 2) 해당 도메인을 포함한 페이로드로 테스팅 진행 3) 지정된 시간만큼 Polling 하며 해당 도메인을 대상으로 Reaction이 있는지 체크
Bypass techniques
- System Hardening을 피해 RCE를 탐지하기 위한 OOB 방법들
- Private OOB 테스팅을 위한 Self Hosted Interactsh
- Log4shell 이슈 이후 Public OAST 서비스들은 차단되는 경우가 많아졌습니다.
- 그래서 OAST 서비스들은 각각 도메인을 더 추가로 구매했습니다.
- 그래도 Private OAST를 사용하는게 가장 좋긴합니다.
Defensive techniques
OAST(OOB)는 방어자 입장에선 시스템 하드닝으로 어느정도 대응할 수 있습니다. 기본적으로 OOB가 발생할 수 있는 여지를 최소한으로 줄이고, 방화벽 정책 등 네트워크적인 요소로 일부 해소할 수 있습니다.
Known OAST Service Address
- ZAP
*.odiss.eu
- Burpsuite
*.oastify.com
*.burpcollaborator.net
- Interactsh (Web client)
*.oast.pro
*.oast.live
*.oast.site
*.oast.online
*.oast.fun
*.oast.me
- CVSS Advisor (Web client)
*.c5.rs
*.ssrf.cvssadvisor.com
Tools
- 🌐 ZAP OAST (public/private)
- 🌐 Burpsuite Collaborator (public/private)
- 🌐 CVSS Advisor’s SSRF (public)
- 🔒 Interachsh (public/private)
- 🔒 boast (private)
- 🔒 tuktuk (private)
Articles
- System Hardening을 피해 RCE를 탐지하기 위한 OOB 방법들
- ZAP OAST 릴리즈! 이제 ZAP에서 Out-Of-Band가 더 쉬워집니다 🚀
- If you need test Out-of-band on ZAP? Use OAST!
- ZAP OAST 미리 구경하기 (for OOB)
- 이제 Interact.sh 가 ZAP OAST에서 지원됩니다
- OOB Testing with interactsh!
- Private OOB 테스팅을 위한 Self Hosted Interactsh
- Bypass domain check using ToCToU for SSRF/XXE/OOB, Etc