프로그래밍 농장

[Jenkins] 암호화된 Credentials 복호화 본문

Devops

[Jenkins] 암호화된 Credentials 복호화

Tennessee201 2025. 8. 26.
728x90

개요

Jenkins 빌드의 Credentials 값이 전부 Serect으로 처리되어 있으며, 백업본도 없다는 전제하에 해당 크리덴셜을 복호화하는 방법에 대해 포스팅한다. 

 

hudson.util.Secret.decrypt

Jenkins 스크립트 콘솔에서 hudson.util.Secret.decrypt 함수를 사용하면 암호화된 값을 복호화할 수 있다. 단, 암호화된 값을 알아내야 하는데, 개발자 모드를 사용하면 알아낼 수 있다.

 

1. 암호문 알아내기

값을 확인할 Credential로 접근한다.

이 페이지에서 Update 버튼을 클릭하면 값을 갱신할 수 있는 페이지로 이동하는데,

보면 값에 해당하는 부분이 Concealed되어 있음을 알 수 있다. 여기서 Change Password 버튼을 클릭하면 아래와 같이 마스킹된 값을 볼 수 있다.

이 상태에서 브라우저의 개발자 모드로 접근해 확인할 요소를 클릭하면 아래와 같이 선택한 요소의 HTML을 찾을 수 있다.

찾은 tag 속성 중 value가 바로 Secret의 암호문에 해당한다.

 

2. 스크립트 콘솔에서 복호화

이제 Jenkins 스크립트 콘솔로 접근하여 아래 코드를 실행시킨다.

println hudson.util.Secret.decrypt("암호문")

# 예시
println hudson.util.Secret.decrypt("{AQAAABAAAAAQ9Db4FBoIVP6J7HBc2bhBlwjf56/tbk5wtWWQbgD2NC8=}")

평문이 test라는 것을 확인할 수 있다.

 

 

 

Accessing and dumping Jenkins credentials | Codurance

Jenkins offers a credentials store where we can keep our secrets. Of someone stole your source code and dumped your databases, you might think it's game over, but that's not always true...

www.codurance.com

728x90