Agartha
페이로드 주입 (LFI, RCE, SQLi, 선택적 BCheck 포함), 인증 문제 (접근 매트릭스, HTTP 403), JavaScript로 복사, Bambdas
Agartha는 고급 페이로드 생성 및 접근 제어 평가에 특화되어 있습니다. 주입 공격과 인증/권한 부여 문제와 관련된 취약점을 능숙하게 식별합니다. 동적 페이로드 생성기는 SQL Injection, Local File Inclusion (LFI), Remote Code Execution (RCE)을 포함한 다양한 주입 벡터에 대한 광범위한 워드리스트를 제작합니다. 또한, 이 확장 프로그램은 포괄적인 사용자 접근 매트릭스를 구성하여 잠재적인 접근 위반 및 권한 상승 경로를 드러냅니다. HTTP 403 우회 점검을 수행하여 인증 구성 오류를 밝혀내는 데도 도움을 줍니다. 또한 HTTP 요청을 JavaScript 코드로 변환하여 XSS 문제를 더 깊이 파헤치는 데 도움을 줄 수 있습니다.
요약하면:
- 페이로드 생성기: 다양한 인코딩 및 이스케이프 문자를 통합하여 주입 공격에 대한 포괄적인 워드리스트를 동적으로 생성하여 보안 테스트의 효율성을 높입니다. 이러한 워드리스트는 SQL Injection (SQLi), Local File Inclusion (LFI), Remote Code Execution (RCE)과 같은 중요한 취약점을 다루며, 이제는 Burp의 BCheck 프레임워크와의 원활한 통합을 위해 BCheck 구문도 지원합니다.
- 로컬 파일 포함, 경로 순회: 공격자가 서버 파일 시스템의 파일에 접근할 수 있게 하는 취약점 식별을 돕습니다.
- 원격 코드 실행, 명령 주입: 잠재적인 명령 주입 지점을 탐지하여 코드 실행 취약점에 대한 강력한 테스트를 가능하게 합니다.
- SQL 인젝션: Stacked Queries, Boolean-Based, Union-Based, Time-Based를 포함한 SQL 인젝션 취약점을 발견하는 데 도움을 줍니다.
- 인증 매트릭스: 포괄적인 접근 매트릭스를 구축하여 잠재적인 접근 위반 및 권한 상승 경로를 드러냅니다. 이 기능은 인증 및 권한 부여 문제를 해결하여 보안 태세를 강화합니다.
- 웹 스파이더 기능을 사용하여 사이트맵/URL 목록을 생성할 수 있으며, 사용자 세션에서 보이는 링크를 자동으로 크롤링합니다.
- 403 우회: HTTP 403 Forbidden 응답과 같은 일반적인 접근 제한을 해결하는 것을 목표로 합니다. URL 조작 및 요청 헤더 수정과 같은 기술을 사용하여 구현된 제한을 우회합니다.
- JavaScript로 복사: Http 요청을 JavaScript 코드로 변환하여 추가 XSS 악용 등에 사용합니다.
- Bambdas 스크립트 생성기: 사용자 입력을 기반으로 Bambdas 호환 스크립트의 자동 생성을 지원합니다. 수동 코딩의 필요성을 없애 사용자 정의 스크립트를 더 빠르게 생성하고 Bambdas 엔진과의 통합을 간소화합니다.
사용 방법에 대한 간단한 튜토리얼입니다.
설치
먼저 'Jython' 파일을 다운로드하고 환경을 설정해야 합니다:
- Burp 메뉴 > Extender > 옵션 > Python 환경 > Jython 독립 실행형 jar 파일 찾기
공식 스토어를 통해 Agartha를 설치할 수 있습니다:
- Burp 메뉴 > Extender > BApp Store > Agartha
또는 수동 설치:
- Burp 메뉴 > Extender > Extensions > 추가 > 확장 유형: Python > 확장 파일(.py): 'Agartha.py' 파일 선택
모든 작업을 마치면 메인 창에 'Agartha' 탭이 표시되고 마우스 오른쪽 버튼 클릭 메뉴에도 등록됩니다. 위치:
- 'Extensions > Agartha', 세 개의 하위 메뉴 포함:
-
'Auth Matrix'
-
'403 Bypass'
-
'Copy as JavaScript'
로컬 파일 포함 / 경로 순회
Unix 및 Windows 파일 구문을 모두 지원하여 원하는 경로에 대한 동적 워드리스트 생성을 가능하게 합니다. 또한 다양한 인코딩 및 기타 기술을 사용하여 웹 애플리케이션 방화벽(WAF) 구현을 우회하려고 시도할 수 있습니다.
- '깊이' 는 워드리스트 생성을 위한 디렉토리 순회 정도를 지정합니다. 이 지정된 수준까지의 워드리스트를 생성할 수 있습니다. 기본값은 5입니다.
- 'WAF 우회' 는 널 바이트 사용, 다양한 인코딩 기술 및 웹 애플리케이션 방화벽을 우회하는 기타 방법과 같은 모든 우회 기능을 활성화할지 여부를 묻습니다.

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

SQL 인젝션
Stacked Queries, Boolean-Based, Union-Based, Time-Based를 포함한 다양한 유형의 SQL 인젝션 공격에 대한 페이로드를 생성합니다. 사용자 입력이 필요하지 않습니다. 원하는 SQL 공격 유형과 데이터베이스를 선택하기만 하면 다양한 조합의 워드리스트가 생성됩니다.
- 'URL 인코딩' 은 출력을 인코딩합니다.
- 'WAF 우회' 는 널 바이트 사용, 다양한 인코딩 기술 및 웹 애플리케이션 방화벽을 우회하는 기타 방법과 같은 모든 우회 기능을 활성화할지 여부를 묻습니다.
- 'Union-Based' 는 페이로드 생성을 위해 지정된 깊이가 필요합니다. 주어진 값까지의 워드리스트를 생성할 수 있습니다. 기본값은 5입니다.
- 나머지 측면은 데이터베이스 유형 및 다양한 공격 벡터와 관련됩니다.

BCheck 코드 생성기
BCheck는 사용자 정의 스캔 검사를 생성하고 가져오기 위한 Burp Suite의 프레임워크입니다. 이러한 사용자 정의 검사는 Burp Scanner의 내장 루틴과 함께 실행되어 특정 취약점이나 테스트 요구 사항에 맞게 스캔을 조정할 수 있게 합니다. BCheck를 사용하면 Burp의 스캔 기능을 확장하고 보다 타겟팅되고 효율적인 평가를 위해 워크플로우를 간소화할 수 있습니다.
이제 코드를 자동으로 생성할 수 있습니다:
- 위의 파란색 상자에 있는 "페이로드 생성" 버튼을 클릭하여 수동으로 Burp의 Intruder 또는 Repeater에서 사용할 수 있는 클래식 워드리스트를 만들 수 있습니다.
- 이제 빨간색 상자에 있는 "BCheck용 페이로드 생성" 버튼을 클릭하여 스캔에 사용할 준비가 된 BCheck 구문으로 형식화된 동일한 페이로드를 생성할 수도 있습니다.
Bambdas 스크립트 크기가 커지면 특히 스캔 중에 성능 문제가 발생할 수 있습니다. 스크립트가 클수록 응답성이 저하되고 메모리 사용량이 증가하며 작업 실행이 지연될 수 있습니다.
"BCheck용 페이로드 생성" 버튼을 클릭하면 BCheck 코드가 자동으로 클립보드에 복사됩니다.
그런 다음 Burp Suite 메뉴에서 'Extensions > BChecks > New > Blank'로 이동하여 생성된 코드를 붙여넣기만 하면 됩니다.
이제 페이로드가 BCheck에 통합되었습니다. HTTP 요청을 수동으로 보내거나 스캔하거나, BCheck 컨트롤을 통합하여 도구에서 생성된 인젝션 페이로드를 자동으로 테스트하는 Burp 스캔을 시작할 수 있습니다.
- 수동 스캔: HTTP 요청을 마우스 오른쪽 버튼으로 클릭하고 "Send to BChecks Editor"를 선택합니다. 그런 다음 생성된 BCheck 항목을 클릭하고 "Run test"를 선택합니다.
- 자동 스캔: HTTP 요청을 마우스 오른쪽 버튼으로 클릭하고 'Open Scan Launcher'를 선택한 다음 'Scan configuration > Select from library > Audit checks – BChecks only'로 이동합니다. 대화 상자를 닫으면 이제 정의한 BCheck로만 스캔이 실행됩니다.
미세 조정 조언: 생성된 코드는 템플릿 역할을 하며 애플리케이션과 서버에 따라 동작이 다를 수 있으므로 일부 조정이 필요할 수 있습니다.
HTTP 응답 코드 또는 응답 내 키워드와 같은 필터를 구체화하면 오탐을 줄이고 결과를 더 정확하고 덜 시끄럽게 만들 수 있습니다.
인증 매트릭스 / 사용자 접근 테이블
이 부분은 사용자 세션과 URL 관계를 분석하여 접근 위반을 식별하는 데 중점을 둡니다. 도구는 사전 정의된 사용자 세션과 연결된 모든 URL을 체계적으로 방문하고 테이블을 HTTP 응답으로 채웁니다. 기본적으로 접근 매트릭스를 생성하여 인증 및 권한 부여 문제를 식별하는 데 도움을 줍니다. 궁극적으로 이 프로세스는 어떤 사용자가 특정 페이지 콘텐츠에 접근할 수 있는지 보여줍니다.
- 아무 요청에서 마우스 오른쪽 버튼을 클릭하고 'Extensions > Agartha > Auth Matrix'로 이동하여 사용자 세션을 정의할 수 있습니다.
- 다음으로, 사용자(HTTP 헤더/세션 소유자)가 접근할 수 있는 URL 주소를 제공해야 합니다. 자동 크롤링을 위해 웹 'Spider' 기능을 사용하거나 수동으로 선별된 URL 목록을 제공할 수 있습니다.
- 그런 다음 '사용자 추가' 버튼을 사용하여 사용자 세션을 포함시킬 수 있습니다.
- 이제 실행 준비가 되었습니다. '실행' 버튼을 클릭하기만 하면 테이블이 그에 따라 채워집니다.
약간 더 자세한 내용:
- 이 필드는 제공하는 세션의 사용자 이름을 입력하는 곳입니다. 최대 4명의 다른 사용자를 추가할 수 있으며, 각 사용자에게는 가독성을 높이기 위해 고유한 색상이 할당됩니다.
- '사용자 추가' 버튼을 사용하면 매트릭스에 사용자 세션을 포함시킬 수 있습니다.
- HTTP 요청 메서드를 'GET', 'POST' 또는 프록시 기록 기반의 'Dynamic'으로 변경할 수 있습니다.
- '재설정' 버튼은 모든 내용을 지웁니다.
- '실행' 버튼은 작업을 실행하여 사용자 접근 매트릭스에 결과를 표시합니다.
- '경고' 섹션은 잠재적인 문제를 쉽게 식별할 수 있도록 다른 색상을 사용하여 강조 표시합니다.
- '스파이더(SiteMap)' 버튼은 사용자의 헤더/세션을 기반으로 URL 목록을 자동으로 생성합니다. 표시된 URL은 다음 텍스트 상자에 채워지며, 필요에 따라 계속 수정할 수 있습니다.
- '크롤링 깊이'는 '스파이더'가 링크를 감지하기 위해 크롤링해야 하는 최대 하위 링크 수를 정의합니다.
- 이 필드는 요청 헤더를 지정하기 위한 것이며, 여기에 정의된 세션을 사용하여 모든 URL에 접근합니다.
- 사용자가 방문할 수 있는 URL 주소를 지정합니다. 이 목록을 수동으로 만들거나 '스파이더' 크롤러 기능을 사용할 수 있습니다. 각 사용자에 대해 방문 가능한 URL 목록을 제공해야 합니다.
- 제공된 모든 URL이 여기에 나열되며 해당 사용자 세션을 사용하여 접근을 시도합니다.
- 첫 번째 열은 인증 시도가 없는 시나리오를 나타냅니다. 모든 쿠키, 토큰 및 잠재적 세션 매개변수가 HTTP 호출에서 제거됩니다.
- 나머지 열은 이전에 생성된 사용자에 해당하며, 각각 고유한 색상으로 표시되어 해당 URL 소유자를 나타냅니다.
- 셀 제목은 각 사용자 세션에 대한 HTTP 응답 '코드:길이'를 표시하여 각 접근 시도에 대한 응답 세부 정보를 명확하게 보여줍니다.
- 검토하려는 셀을 클릭하기만 하면 HTTP 세부 정보가 하단에 표시됩니다.
잠재적인 세션 종결자(예: 로그오프, 로그아웃 등)와 특정 파일 유형(예: CSS, 이미지, JavaScript 등)은 '스파이더' 및 사용자 URL 목록 모두에서 필터링됩니다.
'실행'을 클릭하면 도구가 사용자와 URL 매트릭스를 다른 색상으로 채웁니다. 사용자별 색상 외에도 잠재적인 접근 문제를 나타내는 빨간색, 주황색, 노란색 셀이 표시됩니다.
- 빨간색은 응답이 동일한 콘텐츠 길이로 'HTTP 200'을 반환하여 심각한 접근 위반을 강조합니다.
- 주황색은 응답이 'HTTP 200'을 반환하지만 콘텐츠 길이가 다른 경우 주의가 필요한 중간 정도의 문제를 나타냅니다.
- 노란색은 응답이 'HTTP 302' 상태를 반환하여 리디렉션을 나타냅니다.