
CVE-2025-11492, CVE-2025-11493에 대한 Writeup 및 코드 - 중간자 공격(Adversary-in-the-Middle)을 통한 ConnctWise Automate RMM의 RCE
침투 테스트의 일환으로 ConnectWise Automate 원격 모니터링 및 관리(RMM) 에이전트에서 여러 취약점을 발견했습니다. ConnectWise는 많은 관리형 서비스 제공업체(MSP)가 클라이언트 기기를 관리하고 모니터링하는 데 사용합니다. 이 취약점들은 공격자가 네트워크 중간자 공격(Adversary-in-the-Middle)을 수행할 수 있으면 원격 코드 실행을 가능하게 하며, 공격자가 ConnectWise Automate 에이전트가 실행 중인 기기에 대한 코드 실행 또는 물리적 접근 권한을 얻은 경우 로컬 권한 상승 및 은밀한 지속성으로 사용될 수 있습니다.
이 취약점들은 2025년 8월 20일 ConnectWise에 보고되었습니다. ConnectWise는 CVE ID를 할당하고 2025년 10월 16일 버전 2025.9에서 패치를 배포했습니다.
ConnectWise 공지:
CVE ID:
2025.9를 출시하고 보안 공지와 CVE를 게시.ConnectWise의 신속한 대응과 수정에 대한 협력적 접근 방식, 그리고 분류 및 수정 접근 방식에 대한 논의에 기꺼이 참여해 준 점에 감사드립니다.
이 취약점들을 분류하는 것은 흥미로운 도전이었습니다. HTTPs로 전환하면 이 보고서의 거의 모든 시나리오가 해결되지만, 이는 원래 에이전트-서버 통신의 신뢰성을 향상시키기 위한 설계 선택(HTTP 지원)이었음이 분명했습니다. 암호화 체계는 AiTM의 위험을 부분적으로 인지하고 완화하려는 시도로 보였지만, 일관되게 적용되지는 않았습니다. 이를 분석하면서 취약점이 http 자체인지, HTTP 위에 암호화가 부재한 것인지, 재생 방지, 플러그인 검증 등이 각각 별도의 취약점인지 분류하려고 했습니다. 한때 ConnectWise는 취약점의 여러 측면에 대해 5개 이상의 별도 CVE를 고려하고 있었습니다.
또한 취약점을 AiTM(예: 커피숍 Wi-Fi) 또는 LPE/물리적 접근 관점에서 고려하느냐에 따라 범위와 공격 벡터가 달라졌습니다. 대안적 접근 방식은 각 시나리오를 별개의 취약점으로 간주하는 것입니다(예: AiTM RCE, LPE, 지속성 탈취 등).
마지막으로 배운 점은 2025년에도 파일을 효과적으로 공유하는 데 여전히 어려움을 겪고 있다는 것입니다 :D (이메일 보안이 .dll 파일이나 이를 포함한 .zip 파일을 첨부하는 것을 좋아하지 않았습니다).
이 보고서는 ConnectWise가 패치를 출시하고 CVE를 공개한 이후, 그러한 공개가 사용자에게 해를 끼치지 않는다는 ConnectWise의 동의하에 게시됩니다. 또한 이러한 취약점과 완화 방안의 공개가 다른 공급업체와 보안 전문가가 ConnectWise Automate 및 기타 RMM 시스템의 위험을 더 잘 이해하고 완화하는 데 도움이 될 것이라고 믿습니다.
본 콘텐츠는 합법적이고 승인된 보안 연구 및 교육 목적으로만 제공됩니다. 이 정보를 무단으로 사용하여 시스템, 네트워크 또는 데이터를 손상시키는 것은 불법적이고 비윤리적입니다. 본 콘텐츠는 있는 그대로 제공되며 어떠한 종류의 보증도 없습니다. 작성자는 이 정보의 사용 또는 오용으로 인한 모든 손해에 대해 책임을 지지 않습니다.
이 코드나 정보를 추가 연구에 사용하는 경우, 발견된 취약점을 해당 공급업체에 보고하여 책임 있는 공개를 실천하십시오.
아래 보고서 외에도 이 저장소에는 취약점을 시연하는 PoC 코드가 포함되어 있습니다. 가짜 서버 구현 및 사용 방법에 대한 자세한 내용은 automate_server/README.md를 참조하십시오.
이 코드는 ConnectWise Automate에 대한 추가적인(윤리적인) 보안 연구를 수행하는 데에도 사용될 수 있습니다.
다음 보고서(또는 이에 가까운 버전)와 이 저장소의 PoC 파이썬 코드는 권장 완화 방안과 함께 ConnectWise에 제공되었습니다.
제거된 완화 방안 섹션에는 이러한 취약점으로부터 Automate 에이전트를 여러 방면으로 강화하기 위해 적용할 수 있는 변경 사항에 대한 자세한 내용이 담겨 있습니다.
이러한 변경 사항 중 일부는 여전히 ConnectWise가 검토 중이므로 해당 섹션은 이 공개 자료에서 제거되었습니다.
ConnectWise Automate 원격 모니터링 및 관리(RMM) 에이전트(2025년 8월 기준 최신 버전, 버전 문자열 250.252)는 특정 구성에서 네트워크 기반 원격 코드 실행에 취약합니다. 에이전트가 Server Address에 대해 암호화되지 않은 HTTP 전송(주 전송 또는 폴백으로)을 사용하도록 구성되어 있고 공격자가 중간자(AiTM) 공격을 수행할 수 있는 경우, SYSTEM으로 원격 코드를 실행할 수 있습니다. 이 구성은 여러 관리형 서비스 제공업체(MSP)의 실제 환경에서 관찰되었습니다.
공격자가 비관리자로 기기에 물리적 접근 권한을 얻거나 기기를 공격자가 제어하는 네트워크에 연결할 수 있는 경우에도 악용이 가능합니다(즉, 이 취약점은 로컬 권한 상승으로 사용될 수 있습니다). Automate는 대부분의 RMM 명령을 암호화하고 검증하기 위해 암호화 시스템을 사용하지만, 플러그인 시스템은 적절한 보호가 부족하여 원격 코드 실행에 취약한 상태입니다.
Automate의 제어 서버를 모방한 맞춤형 서버를 구현함으로써 Automate 에이전트가 악성 플러그인을 다운로드하여 실행하도록 강제할 수 있습니다.
손상된 에이전트는 매력적인 지속성 형태로도 활용될 수 있습니다. RCE를 사용하여 에이전트의 대칭 암호화 키를 추출하면 맞춤형 서버가 표준 RMM 채널을 통해 에이전트에 임의 명령을 보낼 수 있습니다. AiTM 시나리오에서 공격자는 파일 추출, 자격 증명 덤프, 명령 실행, 구성 변경을 포함한 임의 RMM 명령을 실행할 수 있습니다. 공격자는 RMM의 Server Address를 공격자 자신의 서버로 수정하여 AiTM 이후에도 은밀한 지속성을 확보할 수도 있습니다. 또는 RCE를 활용하여 시스템 수준 명령을 직접 실행할 수 있습니다.
http:// 엔드포인트를 포함하는 Server Address를 사용합니다. 서로 다른 두 MSP에서 취약한 구성이 관찰되었습니다(실제 MSP 도메인 및 IP는 대체됨):
https://automate.msp-one.com|http://automate.msp-one.comhttps://msp.msp-two.com|http://msp.msp-two.com|http://12.346.6.78https:// 연결이 실패하면 http:// 엔드포인트가 폴백으로 사용되지만, 공격자는 https를 차단하여 이를 시뮬레이션할 수 있습니다.Automate 에이전트는 서버 주소로 http:// URL을 사용하도록 구성할 수 있습니다. 이 구성은 설치 프로그램 스크립트/패키지에 의해 설정될 가능성이 높지만, 레지스트리 키 HKLM\SOFTWARE\LabTech\Service\Server Address를 확인하여 검증할 수 있습니다.

파이프 |로 구분된 HTTPS 및 HTTP 엔드포인트를 모두 사용하면 이론상 HTTPS 연결에 문제가 발생할 경우 Automate 에이전트가 HTTP 연결로 전환됩니다.
공격자가 Automate 에이전트와 서버 간 네트워크 트래픽에 대한 중간자(AiTM) 접근 권한을 얻으면 HTTPS 연결을 의도적으로 방해하여 HTTP로 전환되게 할 수 있습니다. 이를 통해 공격자는 에이전트와 서버 간에 교환되는 트래픽을 가로채고, 모니터링하고, 변경할 수 있습니다. 그런 다음 공격자는 트래픽을 https://automate.msp-one.com으로 역방향 프록시하여 에이전트가 "정상 운영"되는 것처럼 보이게 하면서 데이터를 도청할 수 있습니다. 또한 응답을 주입하거나 수정하거나, Automate 에이전트의 요청에 응답하는 완전히 가짜 Automate 서버를 설정할 수도 있습니다.
이는 "불량(rogue)" Wi-Fi 액세스 포인트(hostapd, dnsmasq, IP 포워딩 + NAT)를 설정하고 iptables 규칙을 사용한 트래픽 리디렉션 및 mitmproxy 스크립트를 사용한 역방향 프록시로 달성되었습니다.

실행 중인 프로그램, 전체 네트워크 구성, 문서 경로를 포함한 기타 더 민감한 데이터도 Automate 에이전트 응답에서 때때로 관찰되었습니다.
iptables -t nat -A PREROUTING -i wlx90916440139a -p tcp --dport 80 -j REDIRECT --to-port 8080 iptables -A FORWARD -i wlx90916440139a -p tcp --dport 443 -j DROP
#### mitmproxy 스크립트:```python
# run with AiTMweb --mode transparent@8080 -s automate_AiTM.py