
CVE-2020-11881: MikroTik SMB 서비스에 대한 인증되지 않은 원격 DoS
이 보고서는 RouterOs에서 실행되는 MikroTik의 SMB 서비스에 대한 인증되지 않은 원격 DoS인 CVE-2020-11881에 대해 설명합니다. 이 취약점은 공격자가 실행 중인 SMB 서비스를 중단시킬 수 있으며, 2020년 4월 6일에 security<@>mikrotik.com에 책임감 있게 공개되었습니다.
서버 메시지 블록(SMB) 프로토콜은 Microsoft에 의해 도입되었으며, Windows 시스템 및 서비스와의 파일 교환 호환성을 유지하기 위해 여러 벤더에 의해 재구현되었습니다. 이 프로토콜은 일반적으로 Windows 시스템 간의 파일 교환에 사용됩니다.
6.41.3 (장기 지원 릴리스)
6.45.8 (장기 지원 릴리스)
6.45.9 (장기 지원 릴리스)
6.46.4 (안정 릴리스)
6.47.2 (안정)
6.47.3 (안정)
7.0beta5 (베타)
7.1beta2 및 이하
2020년 9월 12일 이전에 릴리스된 더 많은 버전이 영향을 받을 가능성이 있습니다. 단, 버전 6.47.0은 예외로, 초기 책임 공개 프로세스에 대한 응답으로 한 릴리스 주기 동안 수정된 것으로 보입니다.
SMB 서버는 negotiation-request 패킷을 수신한 후 수정된 setup-request 패킷을 받으면 중단됩니다. 취약점을 트리거하려면 setup-request 패킷의 MessageID 필드가 1로 설정되고 SessionID 필드가 0으로 설정되어야 합니다. 서비스는 SessionID 필드를 처리할 수 없기 때문에 중단됩니다.
버그를 안정적으로 재현하려면 이 저장소에서 제공하는 테스트 환경을 다시 구축하십시오.
RouterOs 환경을 다운로드하고 시작합니다.
Ubuntu 18.04의 새로 설치된 버전에서 다음 스크립트를 실행하십시오. 스크립트는 필요한 모든 소프트웨어를 설치합니다. 스크립트는 RouterOs VM의 IP를 제공하면서 종료됩니다.
sudo ./setupMikroTikEnvironment.sh
RouterOs에서 SMB 활성화
SMB 서비스를 활성화하려면 다음 명령을 실행하십시오.
telnet <RouterOs IP>
(user: admin, <no password>)
ip smb set enabled=yes
ip smb print
서비스가 실행 중인 한 호스트 시스템에서 다음 명령으로 서비스를 수동으로 확인할 수 있으며 Anonymous login successful 응답이 와야 합니다.
smbclient -N -L \\\\<RouterOs IP>
서비스 거부 공격
python3 스크립트 cve-2020-11881.py는 악용 과정 전후에 SMB 서비스의 가용성을 확인합니다. 성공적으로 실행되면 SMB 서비스를 사용할 수 없게 됩니다. 아래와 같이 스크립트를 실행하십시오.
python3 cve-2020-11881.py --ip <RouterOs Ip>
다음 명령으로 SMB 서비스를 테스트하면 실패합니다.
smbclient -N -L \\\\<RouterOs IP>
VM 제거
VM을 제거하려면 스크립트를 다시 실행하십시오.
sudo ./setupMikroTikEnvironment.sh
버그는 2020년 4월 6일에 보고되었으며 여러 요청에도 불구하고 2020년 9월 12일에 수정되지 않았습니다.
CVE 관련 토론: https://forum.mikrotik.com/viewtopic.php?f=2&t=166137
현재 장기 지원 버전 채널(v6.46.7)만 이 CVE에 필요한 모든 수정 사항을 포함하고 있습니다. 안정 및 테스트 채널에도 게시하기 위해 노력하고 있습니다. 불편을 끼쳐 드려 죄송합니다.