403Webshell
Server IP : 119.195.102.159  /  Your IP : 216.73.217.134
Web Server : nginx/1.18.0
System : Linux picell 5.15.0-181-generic #191-Ubuntu SMP Fri May 22 19:09:02 UTC 2026 x86_64
User : altablue ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/altablue/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/altablue/telegram_notify.sh
#!/bin/bash
# ============================================================
#  πŸ“¨ 등급별 ν…”λ ˆκ·Έλž¨ μ•Œλ¦Ό μ‹œμŠ€ν…œ
#  μ„œλ²„ 배포 경둜: /home/altablue/telegram_notify.sh
#
#  μ‚¬μš©λ²•:
#    ./telegram_notify.sh "CRITICAL" "μ„œλ²„κ°€ ν•΄ν‚Ήλ‹Ήν–ˆμŠ΅λ‹ˆλ‹€!"
#    ./telegram_notify.sh "WARNING"  "μ˜μ‹¬μŠ€λŸ¬μš΄ 파일 발견"
#    ./telegram_notify.sh "INFO"     "일일 μŠ€μΊ” μ™„λ£Œ"
#
#  λ“±κΈ‰:
#    CRITICAL (πŸ”΄) - 즉각 λŒ€μ‘ ν•„μš” (백도어 발견, 파일 λ³€μ‘° λ“±)
#    WARNING  (🟑) - 주의 ν•„μš” (μ˜μ‹¬ 파일, 비정상 μ ‘κ·Ό λ“±)
#    INFO     (πŸ”΅) - 정보성 (μŠ€μΊ” μ™„λ£Œ, μ‹œμŠ€ν…œ μƒνƒœ λ“±)
# ============================================================

# μ„€μ • 파일 λ‘œλ“œ
CONFIG_FILE="/etc/security-watchdog/config"
if [ -f "$CONFIG_FILE" ]; then
    source "$CONFIG_FILE"
# 폴백: 직접 μ„€μ • (λ³΄μ•ˆ μœ„ν—˜ - 제거됨)
else
    echo "❌ μ„€μ • νŒŒμΌμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€: $CONFIG_FILE" >&2
    echo "   μ„€μΉ˜: sudo /home/altablue/deploy_security.sh" >&2
    exit 1
fi

# ── 인자 처리 ──────────────────────────────────────
LEVEL="${1:-INFO}"
MESSAGE="${2:-λ©”μ‹œμ§€ μ—†μŒ}"
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")

# ── 등급별 이λͺ¨μ§€ 및 헀더 ─────────────────────────
case "$LEVEL" in
    CRITICAL)
        EMOJI="πŸ”΄πŸš¨"
        HEADER="κΈ΄κΈ‰ λ³΄μ•ˆ κ²½κ³ "
        ;;
    WARNING)
        EMOJI="🟑⚠️"
        HEADER="λ³΄μ•ˆ κ²½κ³ "
        ;;
    HIGH)
        EMOJI="πŸŸ πŸ”Ά"
        HEADER="높은 μœ„ν—˜ 탐지"
        ;;
    INFO)
        EMOJI="πŸ”΅β„ΉοΈ"
        HEADER="λ³΄μ•ˆ μ•Œλ¦Ό"
        ;;
    HEALTH)
        EMOJI="πŸ’š"
        HEADER="μ„œλ²„ μƒνƒœ"
        ;;
    DAILY)
        EMOJI="πŸ“Š"
        HEADER="일일 λ³΄μ•ˆ λ³΄κ³ μ„œ"
        ;;
    *)
        EMOJI="πŸ“‹"
        HEADER="μ•Œλ¦Ό"
        ;;
esac

# ── λ©”μ‹œμ§€ ν¬λ§·νŒ… ─────────────────────────────────
FORMATTED="${EMOJI} <b>${HEADER}</b>
━━━━━━━━━━━━━━━━━━━━
πŸ–₯️ μ„œλ²„: ${SERVER_NAME:-AltaBlue}
πŸ• μ‹œκ°„: ${TIMESTAMP}
━━━━━━━━━━━━━━━━━━━━

${MESSAGE}"

# ── Rate Limiting (flock 기반 λ™μ‹œ μ ‘κ·Ό 보호) ──────
LOCK_FILE="/tmp/.telegram_notify.lock"
RATE_GLOBAL="/tmp/.telegram_rate_global"

(
    # 잠금 νšλ“ (μ΅œλŒ€ 5초 λŒ€κΈ°)
    flock -w 5 200 || {
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ 잠금 νšλ“ μ‹€νŒ¨ (λ‹€λ₯Έ μ•Œλ¦Ό 전솑 쀑)" >&2
        exit 1
    }

    # κΈ€λ‘œλ²Œ 속도 μ œν•œ (μ΅œμ†Œ 1초 간격)
    if [ -f "$RATE_GLOBAL" ]; then
        LAST_SEND=$(cat "$RATE_GLOBAL" 2>/dev/null || echo 0)
        NOW=$(date +%s)
        DIFF=$((NOW - LAST_SEND))
        if [ "$DIFF" -lt 1 ]; then
            sleep 1
        fi
    fi

    # ── 쀑볡 μ•Œλ¦Ό λ°©μ§€ ────────────────────────────
    COOLDOWN=${ALERT_COOLDOWN:-300}
    MSG_HASH=$(echo "$MESSAGE" | md5sum | cut -d' ' -f1)
    COOLDOWN_FILE="/tmp/.telegram_cooldown_${MSG_HASH}"

    if [ -f "$COOLDOWN_FILE" ]; then
        LAST_ALERT=$(cat "$COOLDOWN_FILE" 2>/dev/null || echo 0)
        NOW=$(date +%s)
        if [ $((NOW - LAST_ALERT)) -lt "$COOLDOWN" ]; then
            # CRITICAL 등급은 μΏ¨λ‹€μš΄ λ¬΄μ‹œ
            if [ "$LEVEL" != "CRITICAL" ]; then
                exit 0
            fi
        fi
    fi

    # ── λ©”μ‹œμ§€ 전솑 ───────────────────────────────
    RESPONSE=$(curl -s -w "\n%{http_code}" -X POST \
        "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
        -d chat_id="${CHAT_ID}" \
        -d text="${FORMATTED}" \
        -d parse_mode="HTML" 2>&1)

    HTTP_CODE=$(echo "$RESPONSE" | tail -1)
    BODY=$(echo "$RESPONSE" | sed '$d')

    # 전솑 νƒ€μž„μŠ€νƒ¬ν”„ 기둝
    date +%s > "$RATE_GLOBAL"

    if [ "$HTTP_CODE" = "200" ]; then
        date +%s > "$COOLDOWN_FILE"
        exit 0
    else
        # 전솑 μ‹€νŒ¨ μ‹œ 둜그 기둝
        LOG_DIR="${LOG_DIR:-/home/altablue/logs}"
        mkdir -p "$LOG_DIR"
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] ν…”λ ˆκ·Έλž¨ 전솑 μ‹€νŒ¨ (HTTP $HTTP_CODE): $BODY" >> "${LOG_DIR}/telegram_errors.log"

        # μž¬μ‹œλ„ (1회)
        sleep 2
        curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
            -d chat_id="${CHAT_ID}" \
            -d text="${FORMATTED}" \
            -d parse_mode="HTML" >/dev/null 2>&1

        exit 1
    fi

) 200>"$LOCK_FILE"

Youez - 2016 - github.com/yon3zu
LinuXploit