
.NET 포맷터 다양한 종류를 위한 역직렬화 페이로드 생성기
YSoNet은 승인된 보안 연구를 위해 .NET 역직렬화 페이로드를 생성하며, 대화형 마법사와 반복 작업을 위한 명령줄을 제공합니다.
YSoNet은 Alvaro Munoz (@pwntester)가 만든 ysoserial.net의 포크이며, 해당 프로젝트 기여자들의 작업을 기반으로 합니다. YSoNet은 Soroush Dalili (@irsdl)가 유지 관리합니다.
최신 릴리스 다운로드 후, 시작하기를 따라 전체 ZIP의 압축을 풀고 마법사를 여십시오. 이 가이드는 Windows/런타임 요구 사항, 설치 진단, 개발 빌드를 다룹니다.
YSoNet은 안전하지 않은 .NET 객체 역직렬화를 연구하기 위한 유틸리티 및 프로퍼티 지향 프로그래밍 "가젯 체인" 모음입니다. 모듈에 필요한 입력을 제공하고, 호환되는 포매터를 선택한 뒤, 생성된 데이터를 저장하십시오. 대상 측 효과는 체인, 런타임, 애플리케이션에 따라 달라집니다. 사용법 및 예제와 런타임 증거를 참조하십시오.
취약점은 클래스패스에 가젯이 있는 것이 아니라, 애플리케이션이 안전하지 않은 역직렬화를 수행하는 데 있습니다. 이 프로젝트는 Chris Frohoff의 ysoserial 프로젝트에서 영감을 받았습니다.
YSoNet의 가젯 및 플러그인 카탈로그를 역직렬화 차단 목록으로 바꾸지 마십시오. 카탈로그는 모든 비공개, 미래, 애플리케이션별 또는 다르게 구성된 체인을 포함할 수 없으므로, 여기에 나열된 것을 차단한다고 해서 안전하지 않은 역직렬화기가 안전해지지 않습니다. 이는 공격을 지연시킬 뿐 잘못된 안심을 줄 수 있습니다.
애플리케이션을 강화하기 위해 이 저장소를 검토하는 경우, 가젯이나 플러그인을 살펴보기 전에 방어자와 검토자를 위한 보안 지침을 읽으십시오. 목표는 안전하지 않은 역직렬화를 제거하거나 고정 스키마의 데이터 전용 설계로 전환하는 것입니다. 엄격한 허용 목록은 마이그레이션을 즉시 수행할 수 없을 때의 임시 봉쇄책이며, 차단 목록은 해결책이 아닙니다.
전체 문서는 docs/에 있습니다:
./ysonet.exe -f Json.Net -g ObjectDataProvider -o raw -c "calc" -t
빠른 참조부터 시작하십시오. 모든 옵션은 ysonet.exe --fullhelp로, 가젯별 또는 플러그인별 도움말은 -g NameHere -help 또는 -p NameHere -help로 확인할 수 있습니다. 더 자세한 내용은 사용법 및 예제에 있습니다.
모든 빌드는 ysonet.exe 옆에 이식 가능한 Agent Skill을
.claude/skills/ysonet-payloads/에 포함합니다. Claude Code는 추출된 바이너리
폴더에서 작업할 때 해당 프로젝트 스킬을 발견합니다. 다른 Agent Skills 호환
클라이언트도 동일한 폴더를 가져올 수 있습니다.
이 스킬은 명령줄, 대화형 모드, 모든 공개 가젯과 플러그인, 그들의 포매터, 변형,
옵션, 그리고 대상 중심 페이로드 선택 워크플로를 다룹니다. 실행 중인 바이너리의
--list, 모듈 도움말, --fullhelp를 실시간 정보 원천으로 사용합니다. 바이너리
폴더에 생성된 CLAUDE.md는 필요하지 않습니다. 그것은 표준 스킬과 어긋날 수 있는
Claude 전용 두 번째 지침 사본이 될 것입니다.
Windows 툴체인, 빌드 명령, CLR2 호스트, Release 변환에 대해서는 빌드 및 테스트를 사용하십시오. 더 작은 클론을 원하면 아카이브 없는 소스를 따르십시오.
빌드 및 테스트는 자동 Debug 검사, 선택적 FULL 스위트, 런타임 효과 커버리지, 환경 제한을 설명합니다. 테스트 계층을 선택하기 전에 읽어 보십시오.
세션 설정, 영구 PowerShell 7 설치, 상태 확인 및 제거에 대해서는 PowerShell 완성을 사용하십시오. 완성 기능은 실행 중인 도구에서 모듈 및 포매터 이름을 읽습니다.
이 소프트웨어는 순전히 학술 연구와 효과적인 방어 기법 개발을 목적으로 만들어졌으며, 명시적으로 승인된 경우를 제외하고 시스템을 공격하는 데 사용되어서는 안 됩니다. 프로젝트 유지 관리자는 소프트웨어의 오용에 대해 책임지지 않습니다. 책임감 있게 사용하십시오.
이 소프트웨어는 개인 프로젝트이며, 프로젝트 소유자와 기여자의 고용주를 포함한 어떤 회사와도 관련이 없습니다.
irsdl/ysonet을 포크하고, master에서 브랜치를
만든 뒤, 변경 사항과 풀 리퀘스트에 대해 CONTRIBUTING.md를
따르십시오. 아키텍처 가이드는 가젯, 플러그인, 직렬화기를
추가하는 방법을 설명합니다. 테스트를 통과시키기 위해 테스트를 약화시키지 마십시오.
ysoserial.net의 창시자인
Alvaro Munoz (@pwntester)와 두 프로젝트의
기여자들에게 특별히 감사드립니다. YSoNet은
Soroush Dalili (@irsdl)가 개발하고 유지 관리합니다.
감사의 말은 크레딧을 참조하거나, 가젯 및 플러그인 크레딧은
ysonet.exe --credit을 실행하십시오. 기반 연구에 대해서는
참고 자료를 참조하십시오.
YSoNet은 MIT 라이선스에 따라 라이선스가 부여됩니다. 이 라이선스는 Alvaro Muñoz에 대한 원래 ysoserial.net 저작권 고지와 Soroush Dalili에 대한 YSoNet 저작권 고지를 보존합니다. 두 고지와 MIT 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에 남아 있어야 합니다.