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.bak.20260605_180507
#!/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
    # 폴백: 직접 μ„€μ •
    BOT_TOKEN="8095407589:AAFI7_XVRk1Z1J85hug5K9iYJQORI2DoDNI"
    CHAT_ID="5935655309"
    SERVER_NAME="AltaBlue"
fi

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

# ── 등급별 이λͺ¨μ§€ 및 헀더 ─────────────────────────
case "$LEVEL" in
    CRITICAL)
        EMOJI="πŸ”΄πŸš¨"
        HEADER="κΈ΄κΈ‰ λ³΄μ•ˆ κ²½κ³ "
        ;;
    WARNING)
        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 ──────────────────────────────────
# ν…”λ ˆκ·Έλž¨ API μ œν•œ: μ΄ˆλ‹Ή 30λ©”μ‹œμ§€, κ·Έλ£Ήλ‹Ή λΆ„λ‹Ή 20λ©”μ‹œμ§€
RATE_FILE="/tmp/.telegram_rate_$$"
RATE_GLOBAL="/tmp/.telegram_rate_global"

# κΈ€λ‘œλ²Œ 속도 μ œν•œ (μ΅œμ†Œ 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')

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

if [ "$HTTP_CODE" = "200" ]; then
    echo $(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

Youez - 2016 - github.com/yon3zu
LinuXploit