
투명한 랜섬웨어 주장 추적기 🥷🏼🧅🖥️
ransomwatch는 랜섬웨어 그룹이 사용하는 협박 사이트를 추적하고, 수집된 주장(claims)의 통합 피드를 제공합니다
새 그룹을 제출할 때는 이슈 템플릿을 사용해 주세요
ransomwatch.telemetry.ltd, posts.json, groups.json 및 docs/와 source/ 디렉토리의 콘텐츠는 실제 위협 행위자의 호스팅 선택에 따라 거의 실시간으로 동적으로 생성됩니다.
정화(sanitisation) 노력이 이루어졌지만, ransomwatch를 열람하거나 접근함으로써 귀하는 이를 본인의 책임 하에 수행함을 인정하는 것입니다
web:// ransomwatch.telemetry.ltd
json:// ransomwhat.telemetry.ltd/posts
json:// ransomwhat.telemetry.ltd/groups
groups.json에는 추적 중인 그룹 또는 행위자의 호스트, 노드, 릴레이 및 미러가 포함됩니다posts.json에는 발견 시간과 담당 그룹이 표시된 추출된 게시물이 포함됩니다이것은 GitHub Actions와 서비스 컨테이너의 조합을 활용하는 라이브 저장소입니다. 자체 포함 방식으로 거의 실시간으로 모니터링되는 호스트를 방문하고, 파싱하고, 보고합니다
콘텐츠 가져오기는 psf/requests로 수행됩니다 - 렌더링이 필요한 경우 mozilla/geckodriver와 seleniumhq/selenium이 활용됩니다.
프론트엔드는 궁극적으로 markdown.py를 사용하여 마크다운으로 생성되며, pages.github.com 덕분에 docsifyjs/docsify로 제공됩니다
그래프 또는 시각화는 matplotlib/matplotlib의 도움으로 plotting.py로 생성됩니다
게시물 인덱싱은 parsers.py 내에서 grep, awk 및 sed의 조합으로 수행됩니다 - 취약하며 다른 ̴̭́H̶̤̓T̸̙̅M̶͇̾L̷͑ͅ ̴̙̏p̸̡͆a̷̛̦r̵̬̿s̴̙͛ĩ̴̺n̸̔͜g̸̘̈과 마찬가지로 수명이 제한적입니다.
각 페이지의 렌더링된 HTML은 source 디렉토리에서 확인할 수 있습니다
각 호스트를 개별 객체로 갖는 groups.json의 평면화된 버전은 assets/groups-kv.json에서 찾을 수 있습니다. 구조는 객체 배열이며, 각 객체는 고유한 엔티티/그룹을 나타내며 각각 name, captcha, parser 등과 같은 모든 속성을 동일한 수준에서 포함하고 profile 및 meta와 같은 요소의 잠재적 반복도 포함합니다. 일부 데이터 분석 도구는 이 구조로 더 쉽게 작업할 수 있어 전치(transposing)가 덜 필요합니다.
숨겨진 서비스를 가져오려면 tor 회로가 필요합니다! 다음으로 설정하세요;
docker run -p9050:9050 ghcr.io/joshhighet/torsocc:latest
usage: ransomwatch.py [-h] [--name NAME] [--location LOCATION] {add,scrape,parse,markdown}
positional arguments:
{add,scrape,parse,markdown}
실행할 작업
optional arguments:
-h, --help 이 도움말 메시지를 표시하고 종료
--name NAME 제공자 이름
--location LOCATION 대상 웹 위치 (전체 URI)
_______________ |*\_/*|________
| ___________ | ||_/-\_|______ |
| | | | | | | |
| | 0 0 | | | | 0 0 | |
| | - | | | | - | |
| | \___/ | | | | \___/ | |
| |___ ___| | | |___________| |
|_____|\_/|_____| |_______________|
_|__|/ \|_|_.............💔.............._|________|_
/ ********** \ / ********** \
/ ************ \ 👀 🦅 ransomwatch / ************ \
-------------------- --------------------
새로 인덱싱된 게시물은 parse 실행 시 DISCORD_WEBHOOK 변수를 제공하여 디스코드로 보낼 수 있습니다.
DISCORD_WEBHOOK=https://discord.com/api/webhooks/xxxxx/xxx ./ransomwatch.py parse
erDiagram
groups_json ||--|{ group : contains
group {
string name "그룹 이름"
boolean captcha "캡차 상태"
boolean parser "파서 상태"
boolean javascript_render "자바스크립트 상태"
string meta "자유 형식 텍스트"
string url "주목할 만한 기사 및 참조"
}
group ||--|{ locations : has
locations {
string fqdn "정규화된 도메인 이름"
string title "페이지 제목"
int version "숨겨진 서비스 버전"
string slug "전체 URI"
boolean available "가용성 상태"
datetime updated "마지막 업데이트 타임스탬프"
datetime lastscrape "마지막 스크레이프 타임스탬프"
boolean enabled "상태"
}
group ||--|{ post : references
post {
string post_title "게시물 제목"
string group_name "관련 그룹 이름"
datetime discovered "발견 타임스탬프"
}lockbit3의 마지막 10개 주장 출력curl -sL ransomwhat.telemetry.ltd/posts \
| jq -r '.[] | select(.group_name == "lockbit3") | .post_title' \
| tail -n 10
curl -sL ransomwhat.telemetry.ltd/groups \
| jq -r '.[] | .locations[] | select(.available == true) | .slug'
curl -sL ransomwhat.telemetry.ltd/groups \
| jq -r '.[] | select(.name == "lockbit3")'
curl -sL ransomwhat.telemetry.ltd/posts \
| jq -r '.[] | [.group_name, .post_title] | @tsv' \
| sed 's/ /_/g' | column -t | tail -n 20
ransomwatch는 unlicense.org에 따라 라이선스가 부여됩니다