bashOffensive Tools#bash
45 linhas•sync-vaults-to-portfolio.sh

sync-vaults-to-portfolio.sh — Offensive Tool

Ferramenta de automação ofensiva desenvolvida em Shell Script.

Destaques Operacionais

  • Script adicionado dinamicamente ao arsenal
  • Execução automatizada em ambientes CTF e pentest
  • Código fonte integral disponível para inspeção

Como Executar

./sync-vaults-to-portfolio.sh

* Ajuste as permissões de execução com chmod +x sync-vaults-to-portfolio.sh se necessário.

Código Fonte — sync-vaults-to-portfolio.sh
bash
#!/bin/bash
# ==============================================================================
# Sync Vaults (WriteUps & Cyber-security & Scripts) -> Portfolio & Push
# ==============================================================================

PORTFOLIO_DIR="/home/gbmel/portfolio"

if [ ! -d "$PORTFOLIO_DIR" ]; then
    exit 0
fi

echo -e "\033[1;35m[⚡] Sincronizando conteúdo dos Vaults com o Portfolio...\033[0m"

# 1. Sincronizar Writeups (*.md)
if [ -d "/home/gbmel/WriteUps" ]; then
    rsync -av --include="Writeup*.md" --include="writeup*.md" --exclude="*" \
        /home/gbmel/WriteUps/ "$PORTFOLIO_DIR/content/writeups/" >/dev/null 2>&1
fi

# 2. Sincronizar Cyber-security Notes (*.md)
if [ -d "/home/gbmel/Cyber-security" ]; then
    rsync -av --include="*.md" --exclude=".obsidian" --exclude=".git" --exclude="*" \
        /home/gbmel/Cyber-security/ "$PORTFOLIO_DIR/content/notes/" >/dev/null 2>&1
fi

# 3. Sincronizar Scripts ofensivos (*.py e *.sh)
if [ -d "/home/gbmel/Scripts" ]; then
    # Buscar recursivamente todos os .py e .sh úteis em Scripts (ignorando a pasta .git)
    find /home/gbmel/Scripts -not -path '*/.*' \( -name "*.py" -o -name "*.sh" \) -type f -exec cp -u {} "$PORTFOLIO_DIR/content/scripts/" \; 2>/dev/null
fi

# 4. Verificar se há alterações e fazer commit/push automático
cd "$PORTFOLIO_DIR" || exit 0

if [ -n "$(git status --porcelain)" ]; then
    echo -e "\033[1;32m[✓] Novas alterações detectadas nos Vaults. Atualizando repositório portfolio...\033[0m"
    git add content/
    DATE=$(date "+%Y-%m-%d %H:%M")
    git commit -m "docs: auto-sync vaults update ($DATE)" >/dev/null 2>&1
    git push origin main >/dev/null 2>&1 &
    echo -e "\033[1;34m[🚀] Push disparado em background para o GitHub!\033[0m"
else
    echo -e "\033[1;30m[•] Nenhuma alteração nos Vaults para sincronizar.\033[0m"
fi