
LFI, RCE, SQLi)와 같은 인젝션 결함, 인증/권한 문제, HTTP 403 접속 위반을 식별하는 Burp Suite 확장 프로그램입니다. 동적 페이로드 생성을 지원하며(BCheck 문법 포함), Bambdas 스크립트를 자동으로 생성할 수 있습니다. 또한 'Copy as JavaScript' 기능을 제공하여 HTTP 요청을 변환함으로써 XSS 테스트를 강화합니다.
Agartha는 고급 페이로드 생성 및 접근 제어 평가에 특화되어 있습니다. 주입 공격과 인증/권한 부여 문제와 관련된 취약점을 능숙하게 식별합니다. 동적 페이로드 생성기는 SQL Injection, Local File Inclusion (LFI), Remote Code Execution (RCE)을 포함한 다양한 주입 벡터에 대한 광범위한 워드리스트를 제작합니다. 또한, 이 확장 프로그램은 포괄적인 사용자 접근 매트릭스를 구성하여 잠재적인 접근 위반 및 권한 상승 경로를 드러냅니다. HTTP 403 우회 점검을 수행하여 인증 구성 오류를 밝혀내는 데도 도움을 줍니다. 또한 HTTP 요청을 JavaScript 코드로 변환하여 XSS 문제를 더 깊이 파헤치는 데 도움을 줄 수 있습니다.
요약하면:
사용 방법에 대한 간단한 튜토리얼입니다.
먼저 'Jython' 파일을 다운로드하고 환경을 설정해야 합니다:
공식 스토어를 통해 Agartha를 설치할 수 있습니다:
또는 수동 설치:
모든 작업을 마치면 메인 창에 'Agartha' 탭이 표시되고 마우스 오른쪽 버튼 클릭 메뉴에도 등록됩니다. 위치:
'Auth Matrix'
'403 Bypass'
'Copy as JavaScript'
Unix 및 Windows 파일 구문을 모두 지원하여 원하는 경로에 대한 동적 워드리스트 생성을 가능하게 합니다. 또한 다양한 인코딩 및 기타 기술을 사용하여 웹 애플리케이션 방화벽(WAF) 구현을 우회하려고 시도할 수 있습니다.

제공된 명령을 기반으로 명령 실행을 위한 동적 워드리스트를 생성합니다. Unix 및 Windows 환경 모두에 대해 다양한 구분 기호와 종결자를 결합합니다.

Stacked Queries, Boolean-Based, Union-Based, Time-Based를 포함한 다양한 유형의 SQL 인젝션 공격에 대한 페이로드를 생성합니다. 사용자 입력이 필요하지 않습니다. 원하는 SQL 공격 유형과 데이터베이스를 선택하기만 하면 다양한 조합의 워드리스트가 생성됩니다.

BCheck는 사용자 정의 스캔 검사를 생성하고 가져오기 위한 Burp Suite의 프레임워크입니다. 이러한 사용자 정의 검사는 Burp Scanner의 내장 루틴과 함께 실행되어 특정 취약점이나 테스트 요구 사항에 맞게 스캔을 조정할 수 있게 합니다. BCheck를 사용하면 Burp의 스캔 기능을 확장하고 보다 타겟팅되고 효율적인 평가를 위해 워크플로우를 간소화할 수 있습니다. 이제 코드를 자동으로 생성할 수 있습니다:
Bambdas 스크립트 크기가 커지면 특히 스캔 중에 성능 문제가 발생할 수 있습니다. 스크립트가 클수록 응답성이 저하되고 메모리 사용량이 증가하며 작업 실행이 지연될 수 있습니다.
"BCheck용 페이로드 생성" 버튼을 클릭하면 BCheck 코드가 자동으로 클립보드에 복사됩니다.
그런 다음 Burp Suite 메뉴에서 'Extensions > BChecks > New > Blank'로 이동하여 생성된 코드를 붙여넣기만 하면 됩니다.
이제 페이로드가 BCheck에 통합되었습니다. HTTP 요청을 수동으로 보내거나 스캔하거나, BCheck 컨트롤을 통합하여 도구에서 생성된 인젝션 페이로드를 자동으로 테스트하는 Burp 스캔을 시작할 수 있습니다.
미세 조정 조언: 생성된 코드는 템플릿 역할을 하며 애플리케이션과 서버에 따라 동작이 다를 수 있으므로 일부 조정이 필요할 수 있습니다.
HTTP 응답 코드 또는 응답 내 키워드와 같은 필터를 구체화하면 오탐을 줄이고 결과를 더 정확하고 덜 시끄럽게 만들 수 있습니다.
이 부분은 사용자 세션과 URL 관계를 분석하여 접근 위반을 식별하는 데 중점을 둡니다. 도구는 사전 정의된 사용자 세션과 연결된 모든 URL을 체계적으로 방문하고 테이블을 HTTP 응답으로 채웁니다. 기본적으로 접근 매트릭스를 생성하여 인증 및 권한 부여 문제를 식별하는 데 도움을 줍니다. 궁극적으로 이 프로세스는 어떤 사용자가 특정 페이지 콘텐츠에 접근할 수 있는지 보여줍니다.
약간 더 자세한 내용:
잠재적인 세션 종결자(예: 로그오프, 로그아웃 등)와 특정 파일 유형(예: CSS, 이미지, JavaScript 등)은 '스파이더' 및 사용자 URL 목록 모두에서 필터링됩니다.
'실행'을 클릭하면 도구가 사용자와 URL 매트릭스를 다른 색상으로 채웁니다. 사용자별 색상 외에도 잠재적인 접근 문제를 나타내는 빨간색, 주황색, 노란색 셀이 표시됩니다.
이 작업은 대량 프로세스이며 사용될 HTTP 요청 메서드를 언급할 가치가 있습니다. 도구는 HTTP 호출을 수행하기 위한 세 가지 옵션을 제공합니다:
HTTP 403 Forbidden 상태 코드는 서버가 요청을 이해했지만 권한을 부여하기를 거부했음을 나타냅니다. 기본적으로 '나는 당신이 누군지 알고 있지만, 이 리소스에 접근할 권한이 없습니다'라는 의미입니다. 이 상태는 종종 '권한 부족', '인증 필요', 'IP 제한' 등과 같은 문제를 가리킵니다.
도구는 URL 조작 및 요청 헤더 수정과 같은 다양한 기술을 사용하여 일반적인 접근 금지 오류를 해결합니다. 이러한 전략은 접근 제한을 우회하고 원하는 콘텐츠를 검색하는 것을 목표로 합니다.
두 가지 다른 사용 사례를 언급할 가치가 있습니다:
도구에 HTTP 요청을 보내는 방법은 2가지가 있습니다.
접근하려는 페이지는 권한 있는 사용자 그룹에 속하며, 권한 상승이 가능한지 확인하기 위해 세션 식별자를 유지합니다.
'실행' 버튼을 클릭하기만 하면 작업이 실행됩니다.
아래 그림은 URL에 접근 문제가 있을 수 있으며 '빨간색'이 경고를 나타냄을 보여줍니다.
시도 횟수는 특정 대상 URL에 따라 달라집니다.
이 기능은 HTTP 요청을 JavaScript 코드로 변환할 수 있게 해주며, 이는 XSS 취약점을 넘어서고 헤더 제한을 우회하는 데 특히 유용할 수 있습니다.
이 기능을 사용하려면 HTTP 요청을 마우스 오른쪽 버튼으로 클릭하고 'Extensions > Agartha > Copy as JavaScript'를 선택하기만 하면 됩니다.
추가 참고 사항과 함께 자동으로 클립보드에 저장됩니다. 예를 들어:``` Http request with minimal parameters:
Http request with header fields:
Please note that the JavaScript code will execute within the original user session, with many header fields automatically populated by the browser. However, in some cases, the server may require specific mandatory header fields. For example, certain requests might fail if the 'Content-Type' is incorrect. Therefore, you may need to adjust the code to ensure compatibility with the server's requirements.
<br/><br/>
## Bambdas 코드 생성기
Bambdas는 Burp Suite 내에서 직접 실행되는 경량 스크립트로, 사용자가 다양한 작업을 빠르게 사용자 정의하고 자동화할 수 있도록 합니다. 사용자 정의 match-and-replace 규칙 정의, 동적 테이블 열 추가, 필터 적용, 인터페이스를 특정 테스트 워크플로에 맞게 조정하는 데 사용할 수 있습니다.
<img width="1000" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/1f24e30531216aea02630b65422c79753e12e44148338735a51450ba4d42be03.png">
설명 및 추가 세부 사항:
1. 스크립트 생성 GUI 관련: 여기서 일반 설정을 선택할 수 있습니다. 예:
- 인스코프(in-scope) 주소만 처리할지, 모든 도메인 주소를 처리할지.
- 특정 파일 확장자를 숨길지 여부.
- 그룹 3의 첫 번째 부분에 있는 스코프 섹션에 정의된 URL의 색상.
- 이미 테스트된 URL의 색상(그룹 3의 두 번째 부분).
- 주로 그룹 2에서 정의된 필터의 색상.
- 표시할 과거 일 수.
- 스크립트가 처리할 과거 일 수.
2. 두 번째 섹션의 옵션은 주로 HTTP 요청 및 응답 처리와 관련됩니다:
- 검색 기준을 URL, 요청 또는 응답 중 어디에 적용할지 지정하는 옵션을 제공합니다. 이 중 하나를 선택하면 아래 해당 옵션이 활성화됩니다. 예를 들어 '취약한 JavaScript 함수'를 검색하려면 HTTP 응답에서만 가능합니다.
- 특정 HTTP 메서드를 숨기는 옵션.
- "HTML 주석 검색", "다운로드 가능한 파일 확장자", "취약한 JS 함수"는 일반적으로 HTTP 응답 내에서 검색됩니다.
- "중요 키워드" 검색은 URL, 요청, 응답에 적용할 수 있습니다.
- "SQLi 의심 식별자, XSS 의심 식별자, LFI 의심 식별자, SSRF 의심 식별자, Open Redirect 의심 식별자, RCE 의심 식별자"는 URL 또는 요청에서 검색할 수 있습니다. "중요 키워드"가 자유 텍스트를 검색하는 것과 달리, 이 옵션들은 파라미터를 특별히 감지합니다.
3. 세 번째 섹션의 옵션은 주로 스코프 정의, 이미 테스트된 URL, 숨기려는 URL을 정의하는 데 사용됩니다.
- "테스트 스코프 정의" 섹션에서 테스트할 URL을 정의할 수 있습니다. '/'를 입력하면 전체 애플리케이션이 스코프로 간주됩니다. '/users'와 같은 특정 경로를 추가하면 해당 디렉터리와 그 내용만 스코프가 됩니다. "테스트 스코프 색상" 옵션이 이 섹션에 적용됩니다.
- "이미 테스트된 URL" 섹션에는 이미 테스트된 URL 목록이 포함됩니다. "테스트된 항목 색상" 옵션이 여기에 적용됩니다.
- "블랙리스트 URL" 섹션에는 프록시 기록에서 숨기려는 URL이 포함됩니다.
**정의 예시**:
- /
- 루트 경로 — 모든 것을 포함합니다.
참고: 테스트 및 테스트된 스코프 정의 외에도 블랙리스트 URL 섹션에 적용할 수 있으며, 일치 기준이 정의되지 않으면 모든 것을 제외합니다.
- /portal/users
- 이 경로와 하위 경로를 구체적으로 포함합니다. 예:
- /portal/users?id=1
- /portal/users/?id=1
- /portal/users/dashboard
- /admin/\*/users/\*/class
- 별표(*)는 ID, UUID 등의 자리 표시자 역할을 하며, 나머지 경로가 포함됩니다.
- /api/v\*/user
- 별표(*)는 **v** 다음에 오는 모든 문자 시퀀스와 일치하는 와일드카드 역할을 하며, 다음 '/'까지입니다. 예:
- /api/v1/user
- /api/v2/user
- /health-check
- 이 경로와 하위 경로를 구체적으로 포함합니다. 예:
- /health-check
- /health-check/Monitor
- /health-check/?Level=Info
4. 마지막으로 네 번째 섹션에서는 "실행" 버튼을 클릭하여 생성된 스크립트가 표시되며, 이제 스크립트를 사용할 준비가 됩니다. 일반적으로 이 스크립트는 두 가지 방법으로 추가할 수 있습니다:
- 임시(프로젝트 기반): 애플리케이션 메뉴에서 Proxy > HTTP History > Bambda Mode > Apply & Close로 이동합니다.
- 영구(애플리케이션 전체): 애플리케이션 메뉴에서 Extensions > Bambda Library > New > Blank > View filter + HTTP history > Save & Close로 이동합니다.
**참고**: 특히 대규모 프로젝트에서 모든 옵션을 활성화하면 시스템 리소스 사용량이 크게 증가하고 처리 시간이 길어질 수 있습니다. 생성한 스크립트가 합리적인 시간 내에 완료되지 않으면 스크립트를 수정하는 것이 좋습니다.
<img width="1000" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/cb116ad18bc53ebf770b5bc1cb2b920cc9ef3a4569fab9b12d5fb9979823a58c.png">
**옵션 우선순위**: 가장 높은 우선순위는 '테스트된 항목 색상'이며, 그 다음은 '테스트 스코프 색상', 마지막은 '파라미터/키워드 색상'입니다.
위 그림은 다음을 보여줍니다:
- **분홍색**은 테스트 스코프(그룹 3의 첫 번째 부분)를 나타냅니다.
- **노란색**은 테스트된 스코프(그룹 3의 두 번째 부분)를 나타냅니다.
- **시안색**은 검색 기준(그룹 2)과 일치하는 항목을 강조 표시합니다. 또한 각 HTTP 호출의 'Notes' 섹션에서 어떤 기준이 일치했는지 확인할 수 있습니다.
이미 생성된 스크립트를 나중에 업데이트하거나 수정할 때는 몇 가지 중요한 사항을 염두에 두어야 합니다:
- 스크립트를 영구(애플리케이션 전체)로 설정한 경우, 다음 단계에 따라 다시 로드해야 합니다:
Bambda Script mode > Load
<img width="800" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/5a840779ef9b2df5ac22e94d8ebf6771a677d5d45d49f35cae6f4b3a2e820cd2.png">
- 스크립트를 임시(프로젝트 기반)로 사용하는 경우 일반적으로 두 가지 옵션이 있습니다:
1. 수정된 스크립트를 해당 시점부터 활성화하려면 추가 단계 없이 Apply를 클릭하면 됩니다.
2. 수정된 스크립트가 전체 프록시 기록을 처리하도록 하려면 Bambda Mode를 다시 활성화하거나 스크립트 내에서 boolean resetScreen 파라미터를 전환해야 합니다:
```
// 'true'는 색상/메모를 지웁니다
// 'false'는 스크립트를 실행합니다
boolean resetScreen = false; // 또는 true
```
<img width="800" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/cf2dac03f0dd6f1db5d8950b0162eda9e18862b1fb9da7a57f4cc119ec233c57.png">
<br/><br/>
[Another tutorial link](https://www.linkedin.com/pulse/agartha-lfi-rce-auth-sqli-http-js-volkan-dindar)