침해사고 분석

침해 사고 분석 예시#1

sheow13 2024. 4. 21. 12:28
728x90

 실습 환경

■ 공격자

- 운영체제 : Kali linux 

- IP : 192.168.145.136

- Role : Attacker & C&C

 

■ 희생자

- 운영체제 : Windows Server 2016

- IP : 192.168.145.131

- Role : Victim & Web

 

 공격 시나리오

No ATT&CK Matrix 공격방법 공격도구
1 Initial Access - 추가 다기능 웹쉘 업로드 venus
2 Privilege Escalation - 올데이(Olday) 취약점을 이용하여 권한상승
- AV 실시간탐지 기능 종료
- 계정탈취 도구를 이용하여 계정정보 획득
JuicyPotato
Mimikatz
3 Persistence - Dll Side-Loading 기법을 이용하여 자동실행 등록(서비스 & 레지스트리 활용) Kali Metasploit
Github
4 Command and
Control
- 프록시(Proxy)를 이용하여 터널링 구축 frp Proxy

 

 

 Exploit 진행 절차

Step 1. 공격자는 서버 웹 페이지를 스캔하는 과정에서 웹 페이지에 파일 업로드할 수있는 경로를 확인하였으며, 서버 내 웹쉘 탐지 및 차단하는 것을 우회하기 위하여, 인코딩된 sm0.cer 파일을 서버에 업로드 시 정상 동작 확인.

[희생자 웹 페이지 내 파일 업로드가 가능한 경로 확인]

 

[서버 파일 업로드 차단 정책을 우회하기 위하여 암호화 및 인코딩 진행]

 

[업로드한 웹쉘 정상 동작 확인]

 

 

Step 2. 업로드한 웹쉘을 동작하기 위해선 패스워드를 입력 필요. 패스워드의 경우, 암호화,인코딩 등을 도와주는 'Cyberchef'를 통해 디코딩 시 패스워드 획득 성공

 

[CyberChef를 통해 디코딩 시 평문으로 웹쉘코드 획득 확인]

 

[디코딩된 웹쉘 코드에서 패스워드가 Base64로 인코딩되어 있음을 확인]

 

[Base64 디코딩 시, 패스워드가 venus임을 확인]

 

[획득한 패스워드를 입력 시, 웹쉘 정상 동작 확인]

 

 

 

Step 3. 공격자는 백도어 설치 및 리버스 쉘 획득을 위하여, netcat 연결을 통해 리버스 쉘 연결 진행 시 정상적으로 연결 확인.

[리버스 쉘 획득을 위한 bat 파일 생성]
[희생자 서버에 업로드 진행]

 

[업로드한 nc.bat 파일 실행]

 

[리버스 쉘 연결 확인]

 

 

Step 4. 웹쉘을 통해 권한 획득한 계정을 확인 했을 때, IIS 계정으로 확인. IIS 계정 권한의 경우, administrator만 접근 가능한 경로 접근 불가, 특정 명령 실행 불가 등의 제한적인 부분이 존재하기 때문에, 권한 상승을 위하여 juicypotato를 사용하여 로컬 권한 상승 명령 수행 시, 정상 동작 확인.

 

[juicypotato 업로드 후, Kali Linux에서 실행]
[시스템 권한 획득 성공]

 

 

Step 5. 윈도우 계정 정보를 탈취할 때 사용하는 mimikatz를 업로드 후, 실행 시 admin 계정을 탈취가능한 것을 확인할 수 있으며, 해당 계정으로 정상 접근 가능 확인.

 

[mimikatz를 통해 계정 정보 탈취 성공 확인]

 

[획득한 계정으로 정상 접근 확인]

 

 

Step 6. 공격자는 획득한 시스템 계정 권한을 지속적으로 유지하기 위하여, Dll Side-Loading 공격 기법을 사용. 마이크로소프트 정상 파일인 'wsmprovhost.exe' 실행 시, 공격자가 첨부한 악성 DLL을 같은 폴더 경로에 저장하여 응용 프로그램이 실행될 때 악성 DLL이 동작하여, 공격자가 삽입한 쉘코드가 동작하는 하는 것을 통해 지속적으로 공격자로 연결되게끔 설정.

[metasploit 연결을 위한 쉘 코드 생성]

 

[백신 프로그램 및 디펜더를 우회하기 위해 XOR 싸이퍼 사용]

 

[정상 파일인 'wsmprovhost.exe'에 악성 dll 파일 이동]

 

[ProcessMonitor를 통해 확인 시, 같은 경로에 있는 악성 Dll이 동작함을 확인]

 

['wsmprovhost.exe' 파일 실행 시 리버스 쉘 획득 성공 확인]

 

 

Step 7. 보통 서버의 경우, 전원을 끼는 경우가 없어 공격자가 지속적으로 연결을 할 수 있지만, 서버가 꺼졌을 때는 그 연결이 끊어지는 상황이 발생하여, 재부팅 이후에도 백도어 연결을 위하여 레지스트리 등록을 통해 지속적으로 연결을 진행

 

[서비스 등록을 통해 지속적으로 연결을 유지]

 

[레지스트리 등록을 통해 서버 재부팅이후에도 백도어 연결을 위한 설정 진행]

 

 

Step 8. 공격자는 거점 서버(Kali Linux)를 C&C로 설정하여, 다른 네트워크에서 희생자 서버(Windows Server 2016)으로 붙을 때, 다른 네트워크 IP가 아닌 거점 서버 IP가 찍히도록 프록시 설정.

 

[frps를 통해 프록시 설정을 진행하여, Kali Linux를 C&C로 설정]

 

[Kali 리눅스 IP, Port로 연결 시도 시, 희생자 서버로 연결 성공 확인]

 

 

 침해사고 분석 방법

 ■ 하기에 기재된 사항은 침해사고에 대한 초동조치 또는 공격자가 공격 행위에 대한 흔적을 지우지 않은 경우에 대해 작성을 하였으며, 흔적을 지웠을 경우에는 포렌식을 통해 분석 필요 

ⓐ 현재 공격자랑 지속적으로 연결이 되어 있는지 확인

 - 명령어 : netstat -ano or netstat -ano | find "[공격자 IP]"

[연결되어 있는 네트워크 중에 의심되는 네트워크 등을 확인]

 

ⓑ 동적 분석 도구인 process monitor 등을 통해 의심될만할 프로세스 등을 확인

 - 현재 활성화되어 있는 프로세스 중 의심될만한 프로세스가 있는지 확인

 - 다른 네트워크와 리버스 쉘로 연결을 하고 있거나, 시스템 권한 또는 관리자 권한으로 동작할 필요가 없는 프로세스가 실행되고 있는지 등을 확인

[프로세스 모니터를 통해 의심될만한 프로세스 확인]

 

[리버스 쉘 등 의심할만한 통신이 있는지 확인]

 

ⓒ 윈도우 이벤트 로그 등을 통해 원격 접근, 명령어 실행 등을 수행한 이력 확인

- 원격 데스크톱 연결,  서비스 등록 등을 분석

 

[이벤트 뷰어를 통해 원격 접속 연결 허용 확인]

 

[공격자가 서비스 등록한 이벤트를 확인]

 

ⓓ 웹서버 로그 등을 통해 공격자가 초기 접근을 어떠한 식으로 진행했는지를 확인

- IIS : C:\intepub\logs\LogFiles