일부 쉘 스크립트를 생성한 다음 실행하고 삭제하는 프로그램이 있습니다. 이 스크립트를 생성한 프로그램을 해킹하지 않고 이 스크립트의 내용을 얻을 수 있는 기회가 있습니까?
답변1
cat
일시적으로 스크립트 해석기를 화면의 스크립트를 검사하거나 어딘가에 저장할 수 있는 원하는 프로그램(예: )으로 바꿀 수 있습니다 . 정의에 따르면, 인터프리터에서 스크립트를 숨길 수 있는 방법은 없습니다.
extundelete
문제의 프로그램이 스크립트를 비밀로 유지하도록 설계되지 않은 경우 사용 중인 파일 시스템에 대해 유사한 도구를 사용하여 디스크에서 해당 프로그램을 찾을 수 있습니다 .
답변2
나는 다음과 같은 중요한 해결책을 찾았습니다.
#!/bin/sh
file_path=$1/script-file-name
while inotifywait -e create "$1"; test ! -f "$file_path"
do
:
done
chmod g+rw "$file_path"
chown root "$file_path"
이 스크립트는 다음 권한으로 실행되어야 합니다 root
.
sudo <catch-script> /dir/where/the/target/will/be/generated
이전에는 스크립트가 생성될 디렉터리를 다음과 같이 변경해야 했습니다.
chown root /dir/where/the/target/will/be/generated
chmod 1775 /dir/where/the/target/will/be/generated
즉, 스크립트가 위치한 디렉토리에 고정 비트를 설정합니다. 그런 다음 지정된 (캡처) 스크립트는 대상 스크립트가 생성될 때까지 기다리고 이에 대한 쓰기 권한을 설정하고(생성기가 사용할 수 있도록) 소유자를 다음으로 변경합니다 root
(삭제 비활성화).
답변3
모든 파일 버전을 유지하는 파일 시스템에 임시 파일을 정렬합니다.파일 복사. 사용 예:
mkdir /tmp/backend /tmp/recorded
copyfs-mount /tmp/backend /tmp/recorded
TMPDIR=/tmp/recorded myprogram
ls /tmp/backend
cat /tmp/backend/metadata.
…
fusermount -u /tmp/recorded