Hello,
I am currently trying different tests to see how I can recover an encrypted file without using a PHP recovery tool. Here is my infrastructure:
version: '3'
services:
db:
image: postgres:alpine
restart: always
volumes:
- ./db:/var/lib/postgresql/data
environment:
POSTGRES_DB: nextcloud
POSTGRES_USER: nextcloud
POSTGRES_PASSWORD: nextcloud
app:
image: nextcloud
ports:
- 8080:80
links:
- db
volumes:
- ./nextcloud:/var/www/html
environment:
POSTGRES_HOST: db
POSTGRES_DB: nextcloud
POSTGRES_USER: nextcloud
POSTGRES_PASSWORD: nextcloud
restart: always
volumes:
db:
nextcloud:
My goal is to upload a file to Nextcloud, with encryption enabled on my server. I then want to save the corresponding files related to this file, specifically the encrypted file with the master key, and subsequently delete them from the Nextcloud hierarchy.
#!/bin/bash
# Define variables
FILE_NAME="name.pdf"
NEXTCLOUD_FILES_DIR="./nextcloud/nextcloud/data/nextcloud/files/test"
NEXTCLOUD_ENCRYPTION_DIR="./nextcloud/data/nextcloud/files_encryption/keys/files/test"
SAVE_DIR="./nextcloud/save"
SAVE_KEY_DIR="$SAVE_DIR/keys/$FILE_NAME/OC_DEFAULT_MODULE"
mkdir -p "$SAVE_DIR"
mkdir -p "$SAVE_KEY_DIR"
cp "$NEXTCLOUD_FILES_DIR/$FILE_NAME" "$SAVE_DIR/"
cp "$NEXTCLOUD_ENCRYPTION_DIR/$FILE_NAME/OC_DEFAULT_MODULE/master_4a01101e.shareKey" "$SAVE_KEY_DIR/"
rm "$NEXTCLOUD_FILES_DIR/$FILE_NAME"
rm "$NEXTCLOUD_ENCRYPTION_DIR/$FILE_NAME/OC_DEFAULT_MODULE/master_4a01101e.shareKey"
rmdir "$NEXTCLOUD_ENCRYPTION_DIR/$FILE_NAME/OC_DEFAULT_MODULE"
rmdir "$NEXTCLOUD_ENCRYPTION_DIR/$FILE_NAME"
After that, I search in Nextcloud and see that name.pdf
is no longer available. Now, I copy the files back to their original location and perform a sync.
#!/bin/bash
FILE_NAME="name.pdf"
NEXTCLOUD_FILES_DIR="./nextcloud/nextcloud/data/nextcloud/files/test"
NEXTCLOUD_ENCRYPTION_DIR="./nextcloud/nextcloud/data/nextcloud/files_encryption/keys/files/test"
SAVE_DIR="./nextcloud/save"
SAVE_KEY_DIR="$SAVE_DIR/keys/$FILE_NAME/OC_DEFAULT_MODULE"
mkdir -p "$NEXTCLOUD_FILES_DIR"
mkdir -p "$NEXTCLOUD_ENCRYPTION_DIR/$FILE_NAME/OC_DEFAULT_MODULE"
cp "$SAVE_DIR/$FILE_NAME" "$NEXTCLOUD_FILES_DIR/"
cp "$SAVE_KEY_DIR/master_4a01101e.shareKey" "$NEXTCLOUD_ENCRYPTION_DIR/$FILE_NAME/OC_DEFAULT_MODULE/"
docker exec -u www-data -it bf php /var/www/html/occ files:scan --path="nextcloud/files/test"
The file then reappears in Nextcloud, but it cannot be opened. Does anyone have an idea of what I might be doing wrong?