Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
informer — Python으로 작성된 텔레그램 대규모 감시 봇 | Kitploit
도구/GitHubGitHub/paulpierre/informer
OSINT (Open Source Intelligence)Impersonation ToolsData ExfiltrationInformation GatheringSocial EngineeringCrawler
GitHubpaulpierre/informer

informer

Python으로 작성된 텔레그램 대규모 감시 봇

저장소 보기
1.7k24310개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

image

Informer - Telegram 대규모 감시

업데이트 2025-10-20

  • 보안: mysql-connector-python의 고위험 취약점 CVE-2022-1941 수정
  • 보안: 사용 중단된 oauth2client에서 google-auth로 마이그레이션
  • 모든 의존성을 최신 보안 버전으로 업데이트
  • quick_start.sh 스크립트 버그 수정 (venv 생성 및 account_id 매개변수)
  • 크로스 플랫폼 호환성을 위한 Docker MySQL 연결 문제 수정
  • Google Sheets 설정 문서 개선

업데이트 2021-08-23

  • 최신 Telethon 1.23.0으로 업데이트
  • docker-compose로 마이그레이션하여 데이터베이스 문제 수정
  • 설정에서 Google Spreadsheets를 선택 사항으로 변경
  • 설정을 위한 보안 ENV 파일
  • 더 쉬운 설정
  • App Engine 대신 docker-compose로 대체 (AE가 별로라서)

소개

Informer (TGInformer)는 텔레그램에서 여러 실제 사용자인 것처럼 위장할 수 있는 봇 라이브러리로서, 계정당 500개 이상의 텔레그램 채널을 감시할 수 있습니다. 세부 정보는 MySQL 데이터베이스, 비공개 Google 시트, 그리고 분석을 위한 개인 채널에 기록됩니다.

이는 알려진 버그가 있는 작동하는 개념 증명 프로젝트입니다. 자유롭게 포크하고 공유해 주시고 연락 주세요.

image

잠재적 비즈니스 활용

  • 독재 정권 전복을 위한 가짜 계정 운영
  • 브랜드 모니터링 및 감정 분석
  • 금전적 이득을 위한 즉각적인 암호화폐 홍보
  • 논쟁적 이슈에 대한 여론 조작
  • 가격 변동에 조기 진입
  • 텔레그램 채널 분석 실행

기능

  • 클라우드에서 모든 봇을 실행 (사용자는 잠자는 동안). Docker Compose 지원

image

  • 모든 알림을 비공개 Google 시트에 기록

image

  • 키워드 필터링을 위한 정규 표현식 지원

  • SQLAlchemy를 사용한 데이터베이스 독립적 데이터 저장

image

  • 메시지 및 채널 컨텍스트 데이터를 개인 채널과 데이터베이스에 로깅

  • 메시지 발신자, 채널, 채널 참여자 수 등 메타 정보 저장

image

  • CSV 목록의 텔레그램 채널 URL을 통해 자동 채널 참여

image

  • 참여한 채널의 세션 유지

  • 한 번 로그인하면 2FA 재인증 없이 봇이 영구적으로 로그인 유지

  • 계정당 최대 500개 채널 참여

image

  • 실제 계정을 사용하여 봇 탐지를 피함. 이것은 텔레그램 봇이 아닙니다. 실제 자동화된 사용자 계정입니다. 이는 중요한 차이점입니다. 공식 봇 API는 제한적이며, 봇은 종종 공개 채널에서 제한되기 때문입니다.

요구 사항

OS / 인프라

  • Python 3+
  • Docker (선택 사항)
  • Telegram (Desktop, Web 또는 Mobile 다운로드: https://www.telegram.org/)
  • Burner 앱

Python 패키지

  • SQLAlchemy (1.4.54)
  • sqlalchemy-migrate (0.13.0)
  • Telethon (1.36.0)
  • mysql-connector-python (8.4.0)
  • gspread (6.1.4)
  • google-auth (2.37.0) - 사용 중단된 oauth2client 대체
  • python-dotenv (1.0.1)

빠른 시작

ENV 변수 설정

Informer에 필요한 모든 환경 변수가 포함된 informer.env 파일을 편집하세요.

필요한 텔레그램 관련 정보는 여기서 가져올 수 있습니다:

텔레그램 앱 설정

  1. https://my.telegram.org/auth로 이동하여 전화번호와 전화(또는 텔레그램)로 전송된 확인 코드를 제공하여 계정을 인증합니다. image

image

  1. 인증되면 "API Development Tools"를 클릭합니다. image

  2. 아래 양식을 작성하여 새 애플리케이션을 만듭니다. image

  3. 이제 informer.env 파일의 TELEGRAM_API_HASH 및 TELEGRAM_API_APP_ID 필드에 필요한 매개변수 값이 준비되었습니다.

image

  1. TELEGRAM_ACCOUNT_PHONE_NUMBER를 포함한 값을 바꾸고 다음 섹션으로 넘어갑니다.

image

텔레그램 ID 얻기

지금까지 Telethon과 Informer가 텔레그램 API에 접근하는 데 필요한 것을 얻었습니다. 다음으로 봇 계정의 식별자를 가져와야 합니다.

  1. 텔레그램을 열고 userinfobot 사용자를 검색합니다.

image

  1. 여러 개가 표시되며, 올바르게 철자된 계정을 선택해야 합니다.

image

  1. 사용자를 클릭하면 하단에 "시작"이라는 대화 상자가 표시됩니다. 이것을 클릭합니다.

image

  1. 봇의 유일한 목적은 현재 텔레그램 계정 정보를 반영해 주는 것입니다.

텔레그램 사용자 이름과 텔레그램 계정 ID를 받게 됩니다. 이는 중요합니다.

image

  1. informer.env 파일을 편집하고 TELEGRAM_ACCOUNT_ID 값(이전 단계의 텔레그램 계정 ID)과 TELEGRAM_ACCOUNT_USER_NAME을 채웁니다.

선택적으로 TELEGRAM_NOTIFICATIONS_CHANNEL_ID에 사용자 이름 또는 채널 ID를 입력할 수 있습니다.

  1. TELEGRAM_ACCOUNT_PHONE_NUMBER가 작성되었는지 확인하세요. 이것이 세션 생성의 핵심입니다. 여러 계정을 생성하려면 아래 Burner App을 확인하세요.

세션 초기화 및 인증

Python 3을 실행 중인지 확인하고 디렉토리에서 ./quick_start.sh를 실행하기만 하면 됩니다.

처음 실행 시 텔레그램으로 인증하고 로컬 세션 파일을 생성하려면 먼저 이 작업을 수행해야 합니다.

나중에 app/session에 다른 계정의 파일을 복사하고 원한다면 Docker를 통해 마운트할 수 있습니다.

image

이전에 로그인한 적이 있으면 텔레그램을 통해, 그렇지 않으면 SMS를 통해 받은 인증 코드를 입력하라는 메시지가 표시됩니다.

image

Enter 키를 누르면 app/session 폴더에 .session 확장자를 가진 국제 전화번호를 파일명으로 하는 세션이 생성됩니다.

다음 섹션에서는 Docker Compose를 사용하여 데이터베이스를 설정합니다.

알림 채널 설정

이 단계는 선택 사항이지만, 비공개 그룹 채널을 만들고 그룹 ID를 가져오려면 다음을 수행하세요:

  • 그룹(또는 채널)을 만들고 비공개 또는 공개로 설정합니다.
  • 텔레그램 URL을 반드시 가져옵니다. image

informer.env 파일의 TELEGRAM_NOTIFICATIONS_CHANNEL_URL 매개변수에 URL을 설정합니다.

채널 ID를 얻으려면 app 디렉토리에서 python3 bot.py <TELEGRAM_ACCOUNT_ID>를 실행합니다. 여기서 <TELEGRAM_ACCOUNT_ID>는 이전에 생성한 계정 ID입니다.

스크립트가 로드되면 현재 속한 모든 채널이 표시됩니다. 이 값을 복사하여 informer.env 파일의 TELEGRAM_NOTIFICATIONS_CHANNEL_ID 매개변수에 넣고 스크립트를 종료합니다. 이제 Informer를 실행할 준비가 되었습니다.

Docker Compose 실행

quick_start.sh를 실행한 후 다음을 통해 Docker Compose를 실행할 수 있습니다:

  • ./start.sh를 실행하여 MySQL 데이터베이스를 포함한 Docker 컨테이너를 빌드합니다.

image

  • ./stop.sh를 실행하여 컨테이너를 중지합니다.

  • ./clean.sh를 실행하여 고아 컨테이너와 볼륨을 제거합니다. 참고: 이렇게 하면 데이터베이스가 RESET되어 모든 데이터가 손실됩니다.

참고 사항:

이전에는 자체 MySQL 인스턴스를 실행해야 했으며, 이로 인해 연결 문자열 호환성 및 버전 문제가 발생했습니다. 이번 업데이트에서는 인스턴스가 자동으로 생성되고 디스크에 유지됩니다.

또한 Dozzle이 제공되어 브라우저에서 로그를 볼 수 있습니다. http://localhost:9999로 이동하여 app_informer 컨테이너를 클릭하면 됩니다.

Burner App으로 텔레그램 계정 만들기

자신의 전화번호를 사용하지 않고 어느 정도 익명성을 가지고 Informer 봇을 실행하려면 iOS 및 Android에서 사용 가능한 Burner App을 사용할 수 있습니다.

  1. Burner 앱 설치

    • Android - https://play.google.com/store/apps/details?id=org.thunderdog.challegram&hl=en_US
    • iOS - https://apps.apple.com/us/app/telegram-x/id898228810

image

  1. 위와 동일한 단계를 따라 여기에 새 전화번호를 제공합니다: https://my.telegram.org/auth

  2. Burner로 인증합니다. SMS를 통해 인증 코드가 전송되며, 이를 제공해야 합니다.

image

  1. 텔레그램에 로그인합니다.

  2. app 디렉토리에서 python3 bot.py <api_user_id>를 실행하여 앱으로 로그인을 시도합니다.

  3. Telethon으로 로그인하므로 이전처럼 터미널에 인증 코드를 요청할 것입니다.

이는 텔레그램 메시지 또는 SMS를 통해 전송되었습니다.

이것을 제공하면 아래 언급된 세션 파일에 세션 자격 증명이 저장됩니다. 세션 파일이 저장되어 있는 한 더 이상 인증할 필요가 없습니다.

세션은 app/session/ 폴더에 <telegram_phone_number>.session으로 저장됩니다.

필요한 모든 세션 파일을 얻을 때까지 반복하고 Docker에 마운트하기만 하면 됩니다.

텔레그램 계정 확장

계정을 확장하는 방법을 알아내는 것은 약간의 악몽이었습니다. 자동화된 프로세스가 필요했기 때문입니다. 텔레그램은 짧은 코드로 문자를 받을 수 있는 실제 전화번호를 요구합니다.

불행히도 Twilio와 같은 API를 가진 서비스는 사기 방지를 위해 미국, 캐나다, 영국에서 단문 코드로 SMS를 수신하는 것이 금지되어 있습니다 https://support.twilio.com/hc/en-us/articles/223181668-Can-Twilio-numbers-receive-SMS-from-a-short-code- . 이것이 이상적이었을 텐데, 아쉽습니다.

이 작업에 저녁 내내 시간을 낭비하다가 예전에 사용했던 훌륭한 앱인 Burner (https://www.burnerapp.com/)가 생각났습니다. 우연히도 이 앱에는 API가 있습니다 (https://developer.burnerapp.com/api-documentation/incoming-webhooks/). 즉, 동적으로 번호를 생성하고, 새 계정을 만들고, Python의 텔레그램 클라이언트 SDK (Telethon: https://docs.telethon.dev/en/latest/)를 통해 모두 인증할 수 있습니다.

가장 좋은 점은 Burner 번호가 14일 동안 무료라는 것입니다. 클라이언트 API를 통해 연결된 텔레그램 계정은 한 번만 로그인하면 세션이 영구적으로 유지됩니다. Burner API와 통합하지는 않았지만, 과정은 간단합니다.

Telethon SDK

봇은 Telethon Python SDK (https://docs.telethon.dev/en/latest/) 위에 구축되었습니다.

이 개념 증명을 구축하면서 발견한 몇 가지 참고 사항과 문제점:

  1. 속도 제한 텔레그램은 강력한 속도 제한을 적용하여 FloodWaitErrors를 발생시킵니다. 연구 결과 아무도 이 알고리즘을 모르는 것 같습니다. 그러나 위반하여 알 수 없는 속도 제한을 초과하면 대기 시간이 기하급수적으로 증가합니다. 제 접근 방식에서는 적절한 중간 지점을 찾았습니다.

FloodWaitErrors는 API에 너무 많은 요청을 보낼 때 발생할 수 있습니다. 사용자 정보를 조회하거나 너무 많은 채널에 너무 빨리 가입하는 경우 등입니다.

  1. Telethon 세션 Telethon은 세션 파일을 생성합니다. Telethon 클라이언트를 인스턴스화할 때 세션 파일의 이름을 설정할 수 있습니다:

TelegramClient(<session_file_name>, <api_user_id>, <api_user_hash>)

이 파일은 SQLite 데이터베이스이며 연결할 수 있습니다. 캐시 역할을 하며 기록 데이터와 세션 인증 정보를 저장하므로 텔레그램의 2FA를 다시 인증할 필요가 없습니다. API를 처음 사용할 때는 처음 로그인하여 인증해야 합니다.

여러 봇 계정 관리

봇이 실행되고 채널에 가입하면 클라이언트가 실시간으로 업데이트되고 새로 가입한 채널이 표시됩니다.

image

팁: TelegramX는 다중 로그인을 지원하므로 이러한 목적에 가장 적합한 클라이언트입니다. 여기서 다운로드하세요:

  • Android - https://play.google.com/store/apps/details?id=org.thunderdog.challegram&hl=en_US
  • iOS - https://apps.apple.com/us/app/telegram-x/id898228810

Google Sheets 통합

참고: Google Sheets 통합은 완전히 선택 사항입니다. 애플리케이션은 MySQL 데이터베이스만으로도 완벽하게 작동합니다.

Google Sheets 로깅을 활성화하려면:

  1. app/credentials/README.md의 자세한 설정 가이드를 따르세요.
  2. 가이드에는 Google Cloud 서비스 계정 자격 증명(JSON 키 파일)을 얻기 위한 업데이트된 지침이 포함되어 있습니다.
  3. Google은 여전히 JSON 자격 증명 파일을 제공합니다. 2020년 이후로 프로세스가 약간 변경되었을 뿐입니다.

간단한 개요:

  • Google Cloud 프로젝트 생성
  • Google Sheets API 및 Google Drive API 활성화
  • 서비스 계정 생성 및 JSON 키 다운로드
  • JSON 파일을 app/credentials/google_credentials.json에 배치
  • 서비스 계정 이메일로 Google 시트 공유

이는 선택 사항이며 봇은 이것 없이도 작동합니다.

알려진 버그

  • 현재 키워드 모니터링을 시작하려면 채널에 이미 가입되어 있어야 합니다. 아마도 bot.py를 두 번 실행해야 할 것입니다. 한 번은 채널에 가입하게 하고, 다른 한 번은 모니터링하게 합니다. 이 명백한 버그를 인지하고 있으며 다음 수정 버전에서 수정할 예정입니다.

할 일

  • 봇 관리를 위한 사용자 인터페이스 대시보드 생성
    • 새 계정 생성
    • 채널 추가/제거
    • 모니터링할 키워드 추가/제거
    • 알림 보기
    • 웹 푸시 알림 수신
  • 데이터베이스를 자동으로 폴링하여 메모리에서 모니터링할 키워드 업데이트
  • Burner API 및 인증 코드 프로세스를 통한 전화번호 생성 자동화

연락하기

이 프로젝트가 흥미로웠나요? 그렇다면 별표를 눌러주세요.

암호화폐 업계의 친구를 위해 이틀 만에 개념 증명으로 만들었습니다. 흥미롭거나 수익성 있는 응용 프로그램을 찾으셨다면, 언제든지 협업할 의향이 있습니다. 다음 주소로 연락 주세요:

Twitter의 @paulpierre 또는 hi (at) paulpierre (dot) com

제 흥미로운 프로젝트의 대부분은 github에서 비공개이지만, http://www.github.com/paulpierre 또는 과거 작업은 http://www.paulpierre.com에서 확인하실 수 있습니다.

오픈 소스 라이선스


Copyright (c) 2020 Paul Pierre Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

도구 다운로드