728x90
반응형
bash-obfuscate 사용하기
해당 툴 관련 사이트는 아래 주소이다.
https://www.npmjs.com/package/bash-obfuscate
bash-obfuscate 툴은 스크립트에 존재하는 문자열을 분할하여 변수에 저장하고, eval로 선언된 변수 난독화를 풀어준다.
$ npm install -g bash-obfuscate
$ bash-obfuscate script.sh -o output.sh
해당 툴의 사용법 혹은 옵션은 아래와 같다.
Usage: bash-obfuscate <inputFilename> [options]
Options:
-o, --out Output file
-c, --chunk-size, --chunk-size Chunk size (for variables in obfuscated code)
[default: 4]
-r, --randomize Randomize variable order
[boolean] [default: true]
테스트 할 쉘 스크립트 코드는 아래와 같다.
#!/bin/bash
pwd
id
hostname
echo "명령어 실행 완료"
명령어 사용을 통해 얻은 결과는 아래와 같다.
z="
";Cz='host';Ez='echo';Gz='어 실행';Bz='id';Hz=' 완료"';Dz='name';Az='pwd';Fz=' "명령';
eval "$Az$z$Bz$z$Cz$Dz$z$Ez$Fz$Gz$Hz"
결과물 파일에 실행 권한을 주고 실행시켜보면 문제 없이 실행이 된다.
난독화가 매우 복잡해보이지 않아서 중요한 파일 내용을 숨기려는 것이라면, 다른 방법과 혼용하여 쓰는 것이 좋을 것 같다.
728x90
반응형