SEO

CVE-2022-26923 기반 Active Directory 공격 실습 - 문제 해결 과정 본문

Security/RedTeam

CVE-2022-26923 기반 Active Directory 공격 실습 - 문제 해결 과정

Crain 2025. 3. 11. 23:39
반응형

최근 포트폴리오를 다시 정리하면서 이전에 올렸어야했던(까먹고 올리지 않았던) 다수의 문서를 발견했습니다 하하하

사실 이번 문서는 CVE-2022-26923 PoC와 Sigma 룰을 포스팅한 이후에 작성하려고 임시저장하고 있던 글이었는데 업로드 시간이 점점 늦어지는 것 같아서 먼저 업로드하게 되었습니다. 그래서 이야기의 선후가 좀 맞지 않을 수도 있다는 점 감안하고 읽어주시면 감사하겠습니다 :)

지금부터라도 다시 정리해서 올려보려고 합니다... 

 

 


 

본 시나리오와 실습은 금융보안아카데미 내 금붕어 아카데미 팀 프로젝트에서 진행하였습니다.

 

공격 시나리오

사진과 같은 구조로 구축된 홈랩과 레드팀 환경에서 공격을 수행하였습니다.

 

전체 시나리오 요약은 위와 같습니다.

 

사실 시나리오 작성부터 쉽지 않았습니다 하하

위 내용은 간략히 모든 공격이 성공했을 때의 시나리오지만, 실제로 팀원들과 자료조사를 하며 작성했던 내용은 어떤 도구, 어떤 취약점, 어떤 공격 등을 사용하여 최종 목표인 랜섬웨어 배포까지 최대한 자세하게 작성했습니다.

저희 모두 펜테스팅과 Active Directory라는 환경이 처음이었기 때문에 관련 도구들과 취약점을 조사하고, AD에서만 일어날 수 있는 공격들을 조사하는 과정에 길었습니다. 이 과정이 보고서에 담기지는 않았지만, 추후에도 더 다양한 실습을 해봐야겠다고 다짐하는 계기가 되었습니다. 재밌었어요!

 

실습 시 문제상황

정말 자세히 시나리오를 작성했다고 생각하고 실습을 시작하였지만, 실습 과정에서 이전에 고려하지 못했던 다양한 문제가 생겼습니다.

 

예를 들면,

- 시나리오 기반이라고 간과했던 정찰 테크닉 부분에서 더 많은 정보를 수집해야 하는 상황

- CVE-2022-26923이 취약한 환경인지 어떻게 확인할 것인지에 대한 문제

- WindowsDefender가 Meterpreter를 계속해서 탐지하여, 패킹과 난독화를 시도했음에도 우회가 안되는 상황

이러한 문제들이 있었습니다.

 

이 중에서도 가장 기억에 남았던 문제는 "공격에 필요한 도구를 피해자 PC로 어떻게 옮길 것인지"였습니다. 취약점 PoC 검증 시에는 칼리와 피해자 PC가 같은 망에 위치해 있어 칼리에서 Certipy, Impacket 등을 직접 실행시켜 취약점을 테스트할 수 있었습니다. 하지만 실제 실습 환경에서는 칼리(공격자 C2)가 피해자 PC와 다른 망에 위치해 있고, HTTP Redirector를 통해서만 통신이 가능했습니다. 즉, 망이 분리되어 있어 PoC 때처럼 실습을 진행할 수 없는 상황이었습니다.

 

그래서 다음과 같은 방법들을 시도해보았습니다.

 

1. 깃허브에 있는 portable 패키징 도구 또는 파워쉘 스크립트 사용

https://github.com/ropnop/impacket_static_binaries/releases/tag/0.9.22.dev-binaries

 

Release 0.9.22.dev-binaries · ropnop/impacket_static_binaries

0.9.22.dev-binaries Latest merged upstream/master

github.com

 

https://github.com/r3motecontrol/Ghostpack-CompiledBinaries/blob/master/Certify.exe

 

Ghostpack-CompiledBinaries/Certify.exe at master · r3motecontrol/Ghostpack-CompiledBinaries

Compiled Binaries for Ghostpack. Contribute to r3motecontrol/Ghostpack-CompiledBinaries development by creating an account on GitHub.

github.com

https://github.com/maaaaz/impacket-examples-windows/blob/master/secretsdump.exe

 

impacket-examples-windows/secretsdump.exe at master · maaaaz/impacket-examples-windows

The great impacket example scripts compiled for Windows - maaaaz/impacket-examples-windows

github.com

https://github.com/r3motecontrol/Ghostpack-CompiledBinaries/blob/master/Certify.exe

 

Ghostpack-CompiledBinaries/Certify.exe at master · r3motecontrol/Ghostpack-CompiledBinaries

Compiled Binaries for Ghostpack. Contribute to r3motecontrol/Ghostpack-CompiledBinaries development by creating an account on GitHub.

github.com

위 도구들을 시도해보았는데 피해자 환경으로 파일을 옮겼을 때 모두 추가 파이썬  설치가 필요하거나 환경이 안맞아 돌아가지는 않았습니다..ㅠ

 

 

2. 직접 Certipy를 exe로 빌드하기

https://github.com/ly4k/Certipy

 

GitHub - ly4k/Certipy: Tool for Active Directory Certificate Services enumeration and abuse

Tool for Active Directory Certificate Services enumeration and abuse - ly4k/Certipy

github.com

 

Certipy Github에서 소스코드 zip 파일을 다운로드한 후, Certipy.spec 파일의 코드를 리눅스/윈도우 경로 형식에 맞게 수정했습니다.

 

pyinstaller로 빌드했을 때 리눅스에서는 호환성 문제 없이 ELF 파일이 잘 실행되었습니다.

하지만 이렇게 빌드한 exe 파일을 윈도우에서 실행하니 예상했던 대로(?) 호환성 문제로 제대로 실행되지 않았습니다.

 

그래서 리눅스 환경의 패키지가 다른 부분이 있기 때문에 윈도우 환경에서 빌드하기를 시작했습니다. 

 

그러나 여기서도 다양한 문제가 발생했습니다. Certipy의 종속성이 제대로 설치되지 않거나, 취약점 발생 조건이 모두 맞추어졌음을 도메인을 인식하지 못하거나 인증서 권한 문제가 발생했습니다. 특히 윈도우에서 사용하는 도구의 버전 문제인지에 대한 의문이 들 정도로, 동일한 로컬 환경에서 칼리의 Certipy로 테스트했을 때는 취약점이 잘 터지는 반복적인 상황이 발생했습니다.

 

이렇게 계속해서 호환성 문제에 부딪히다 보니 방향성에 대한 의문이 들었습니다.

- 실제 공격자들은 이런 도구들을 어떻게 사용하는 걸까?

- 공격자들이 이러한 도구를 직접 빌드해서 피해자 환경으로 옮기는 일이 많을까?

- 혹시 내가 지식 부족으로 방향을 잘못 잡은 건 아닐까?"

그래서 레드팀 커뮤니티에 질문을 남겼습니다.

 

 

3. Metaploit proxychain 사용하기

위처럼 상세한 답변을 해주신 덕분에 proxychains 를 처음 알게 되었습니다.

proxychains는 네트워크 연결을 프록시 서버를 통해 우회할 수 있게 해주는 도구입니다. Metasploit에서도 이 기능을 제공하여, SOCKS 프록시를 통해 피해자 PC의 네트워크에 연결하여 공격을 수행할 수 있습니다. 이 방법의 가장 큰 장점은 굳이 Certipy를 별도로 도구화하여 피해자 환경으로 옮길 필요 없이, 다른 망에 있는 칼리를 피해 환경에 피봇팅하여 모든 도구를 그대로 사용할 수 있다는 점이었습니다.

(proxychains의 작동 원리와 실제 활용 방법에 대해서는 조만간 별도의 포스팅으로 자세히 다루겠습니다.)

proxychain을 이용해 익스플로잇을 시도했는데 처음으로 다른 망에서 공격에 성공했습니다.

 

이제 다음 챕터에서 전체 익스 과정을 말씀드리겠습니다. (글이 길어져 두가지로 나누게 되었습니다)

https://scorchingnraining.tistory.com/220

 

CVE-2022-26923 기반 Active Directory 공격 실습 - 펜테스팅

 

scorchingnraining.tistory.com

 

 

반응형