
HTTP 프로토콜 스택의 취약점으로 원격 코드 실행 및 잠재적 시스템 충돌 가능.
HTTP 프로토콜 스택의 취약점으로 원격 코드 실행 및 잠재적 시스템 충돌 가능
CVE-2022-21907은 Windows 10의 HTTP 프로토콜 스택(http.sys)에서 발생하는 취약점으로, 공격자가 HTTP 프로토콜 스택을 사용하여 패킷을 처리하는 대상 서버에 특수하게 조작된 패킷을 전송함으로써 악용될 수 있습니다. 이로 인해 서버가 응답하지 않거나 충돌하여 서비스 거부(DDoS) 공격이 발생할 수 있습니다.
이 결함을 악용하면 인증이나 사용자 상호작용 없이 Windows 10 버전 2004 머신을 오프라인 상태로 만들어 서비스를 중단시킬 수 있습니다.
먼저, 이 취약점을 테스트하려면 하드 디스크에 충분한 여유 공간이 있어야 합니다(VM 설치 후 메모리 할당과 디스크 할당을 조정할 수 있습니다).
취약점 테스트를 시작하려면 다음 링크를 사용하여 Vagrant와 VirtualBox를 설치하세요.
VBoxManage 명령이 작동하는지 CMD 또는 PowerShell에서 입력하여 확인하세요. 다음과 같은 오류가 발생하는 경우:
"'VBoxManage' 용어가 cmdlet의 이름으로 인식되지 않습니다..."
VirtualBox 경로(예: C:\Program Files\Oracle\VirtualBox)가 시스템 환경 변수에 추가되었는지 확인하세요. 그런 다음 다음 명령을 실행하세요.
VBoxManage natnetwork add --netname MyCustomisedNet --network "192.168.100.0/24" --enable --dhcp on
필요한 Vagrant 파일을 얻으려면 다음 저장소를 클론하세요.
git clone https://github.com/kamal-marouane/CVE-2022-21907.git
저장소를 클론한 후, 다음 명령을 실행하여 사용자 머신의 피해자 머신 디렉터리로 이동하세요.
cd CVE-2022-21907/Victim Machine
이 폴더에는 Vagrantfile이 있습니다. 다음을 실행하기만 하면 됩니다.
vagrant up

그리고 상자가 다운로드되어 추가될 때까지 기다리세요. 크기가 약 5GB이므로 시간이 많이 걸립니다(위 이미지는 참고용입니다).
설치가 끝나면 VirtualBox로 이동하여 MyWindowsVul이 추가되어 실행 중인 것을 확인할 수 있습니다.
Show를 클릭하면 피해자 머신이 실행 중인 것을 확인할 수 있습니다.
이제 공격자 머신을 설정하겠습니다. 공격자 머신에 접근해야 합니다.
cd ../Attacker Machine
이 폴더에는 Vagrantfile이 있습니다. 사용자 머신으로 돌아가서 다음을 실행하기만 하면 됩니다.
vagrant up
상자가 다운로드되어 추가될 때까지 기다리면 머신이 실행됩니다. Show를 클릭하면 공격자 머신이 실행 중인 것을 볼 수 있습니다.
이제 머신이 설정되었으며 사용할 준비가 되었습니다! 공격자 머신에 접속하기 위한 사용자 이름과 비밀번호는 다음과 같습니다.
username : attacker
password : att
취약점을 악용하려면 다음 단계를 주의 깊게 따르세요.
1 - 실행 중인 VM을 엽니다.
2 - 피해자 머신에서 cmd를 열고 ipconfig를 입력하여 미리 설정된 IPv4 주소를 찾습니다.
ipconfig
그러면 위에서 VBoxManage 명령을 사용하여 설정한 IPv4 주소를 확인할 수 있습니다.
주의!! : 가상 머신의 IP 주소는 제가 가진 것과 다를 수 있습니다. ipconfig 명령을 실행한 후 얻은 IP 주소를 사용하세요(기본 게이트웨이는 192.168.100.1이어야 하며, 이는 VBoxManage 명령으로 이미 생성했습니다. 따라서 피해자 머신의 IP 주소는 192.168.100.X 형태여야 합니다).
3 - Kali Linux 머신에서 익스플로잇 디렉터리로 이동하여 익스플로잇 스크립트를 실행합니다.
cd CVE-2022-21907-Exploit
4 - 공격자 머신에서 Python 스크립트를 실행하여 피해자 머신을 충돌시킵니다.
python3 CVE-2022-21907-exploit.py -i VICTIM_MACHINE_IP
여기서 VICTIM_MACHINE_IP를 피해자 머신에서 얻은 주소로 바꾸세요.
5 - 축하합니다!!! 피해자 머신이 충돌했습니다 :/
익스플로잇 섹션에 언급된 모든 단계를 따른 후, 피해자 머신이 충돌합니다.