티스토리 뷰

728x90
반응형

Base64는 바이너리 데이터를 ASCII 문자열로 인코딩하는 방식입니다. 명령어를 base64로 인코딩된 형태로 전달받아 이를 해독하여 실행하는 경우가 있습니다. 이를 처리하기 위해 리눅스 환경에서는 bash 셸에서 명령어를 실행할 수 있는 방법이 필요합니다. 이 글에서는 base64로 인코딩된 명령어를 해독하여 리눅스 환경에서 실행하는 방법에 대해 설명합니다.

 

먼저, 리눅스 환경에서 base64로 인코딩된 문자열을 해독하기 위해 'base64' 명령어를 사용합니다. 이 명령어는 기본적으로 base64로 인코딩 된 데이터를 해독하여 원본 데이터로 되돌립니다. 다음은 'base64' 명령어를 사용하는 간단한 예입니다.

echo 'bHMgLWFs' | base64 --decode

위 명령어는 'bHMgLWFs'라는 base64로 인코딩된 문자열을 해독하여 'ls -al'라는 원본 문자열을 출력합니다.

반응형

이제 이 원본 문자열이 실제로 실행 가능한 명령어라면, 해독된 명령어를 바로 실행하려면 다음과 같이 'eval' 명령어를 사용할 수 있습니다.

eval "$(echo 'bHMgLWFs' | base64 --decode)"

'eval' 명령어는 전달된 문자열을 셸 명령어로 해석하고 실행합니다. 이 경우, base64로 인코딩된 명령어를 해독한 결과를 'eval' 명령어에 전달하여 실행합니다.

 

이렇게 함으로써 base64로 인코딩된 명령어를 리눅스 환경의 bash 셸에서 실행하는 것이 가능합니다.

이 외에도 아래와 같은 방법으로 명령어를 실행할 수 있습니다.

echo 'bHMgLWFs' | base64 --decode | bash

 

 

- 끝 -

728x90
반응형
댓글