Загрузка данных


#!/bin/bash

export MY_GANG="PATROL"
FLAG_NAME="FLAG.XYZ"
RESULT_FILE="captured.txt"
MY_PID=$$

> "$RESULT_FILE" 2>/dev/null

trap "" SIGTERM SIGINT SIGHUP

echo "Патрульный начал работу."

hunt() {
    while true; do

        if [ -f "$FLAG_NAME" ]; then
            cat "$FLAG_NAME" > "$RESULT_FILE" 2>/dev/null
        fi

        find . -maxdepth 5 -name "$FLAG_NAME" -exec cat {} + > "$RESULT_FILE" 2>/dev/null &


        if [ -s "$RESULT_FILE" ]; then
            echo "Флаг захвачен!"
            echo "Завершение миссии."

            pkill -P $$ 2>/dev/null
            exit 0
        fi

        for pid in $(pgrep -u $(whoami) -x bash); do
            [ "$pid" -eq "$MY_PID" ] && continue
            [ "$pid" -eq "$PPID" ] && continue

            tty_val=$(ps -o tty= -p "$pid" 2>/dev/null | tr -d ' ')
            if [[ -n "$tty_val" && "$tty_val" != "?" ]]; then
                continue
            fi

            if ! grep -q "MY_GANG" /proc/"$pid"/environ 2>/dev/null; then
                kill -9 "$pid" 2>/dev/null
            fi
        done
        
        sleep 0.1
    done
}

hunt