
개념 증명(PoC)으로, MS-Agent Shell 도구의 명령 주입 취약점을 시연하며, 보안 검사를 Python으로 우회하여 임의 명령 실행 및 리버스 셸을 가능하게 합니다.
MS-Agent 프레임워크 버전 1.5.2의 Shell 도구 구성 요소에서 심각한 명령 주입 취약점(CVE-2026–2256, CVSS X.X)이 확인되었습니다. 이 취약점은 셸 실행 컨텍스트에 직접 전달되는 사용자 영향 입력의 부적절한 검증에서 발생하며, 의도하지 않은 명령 실행을 가능하게 합니다. 공격자는 에이전트가 소비하는 데이터 소스(프롬프트, 문서, 로그, 연구 입력 등)에 조작된 콘텐츠를 주입하여 이 결함을 악용할 수 있으며, 직접적인 셸 접근이나 명시적인 운영자 오용이 필요하지 않습니다. 그 결과, 에이전트의 정상적인 실행 흐름의 일부로 호스트 시스템에서 MS-Agent 프로세스의 권한으로 임의 명령이 실행될 수 있으며, 잠재적으로 호스트 전체가 손상될 수 있습니다.
Shell 도구는 에이전트가 호스트에서 운영 체제 명령을 실행할 수 있게 해주는 MS-Agent의 내부 구성 요소입니다. 이 도구는 명령 실행을 기본 OS에 위임하여 파일 관리, 디렉터리 탐색, 자동화 작업과 같은 에이전트 워크플로우를 지원하기 위한 것입니다.
이 간소화된 PoC는 ms-agent의 Shell 도구에 있는 check_safe() 함수가 Python을 사용하여 리버스 셸을 구축하도록 우회될 수 있음을 보여줍니다.
nc(netcat)PoC를 실행하여 명령이 보안 검사를 우회하는지 확인합니다. 예상 출력: ✓ 우회 성공 - 명령이 모든 보안 검사를 통과합니다
새 터미널 창을 열고 다음을 실행합니다:
nc -l 1111
이렇게 하면 포트 1111에서 리스너가 시작됩니다. 이 터미널을 열어두고 대기 상태로 유지합니다.
원래 터미널에서 다음을 실행합니다:
./reverse_shell_poc.py --execute
프롬프트가 표시되면 yes를 입력하고 Enter를 누릅니다.
netcat 리스너가 있는 터미널(2단계)로 전환합니다. 이제 셸 프롬프트가 표시되어야 합니다!
다음과 같은 명령을 시도해 보세요:
whoami - 사용자 이름 확인pwd - 현재 디렉터리 확인ls - 파일 목록 확인exit - 연결 종료python3을 사용하여 임의 코드 실행python3은 차단 명령 목록에 없음check_safe() 함수는 다음과 같은 명령을 차단합니다:
sudo, rm -rf /, chmod, curl | bash 등하지만 다음은 차단하지 않습니다:
python3(임의 코드 실행)nc(netcat - 네트워크 연결)perl, ruby, node(기타 인터프리터)이는 심각한 취약점을 입증합니다:
테스트 후 테스트 디렉터리를 제거할 수 있습니다:
rm -rf /tmp/test_output
이는 로컬 호스트 전용 데모입니다(127.0.0.1에 연결). 이 PoC는 악용 위험을 줄이기 위해 의도적으로 원격 연결을 피합니다.