Outsider Stage 0.5
실제 봉인된 Outsider Stage 0.5 개입 체인을 재생하고 검증합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Privacy-first email phishing analyzer SaaS
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Free, open-source phishing analysis for .eml files. Drop in a suspicious email and get a
verdict with the reasons behind it: SPF/DKIM/DMARC/ARC results, relay path, lookalike
domains, link and attachment checks, and content heuristics.
Every report includes an Investigation, the write-up a SOC analyst would produce: is it
phishing, is the sender spoofed (and why a matching Return-Path proves nothing), who really
sent it and from where, what it wants the recipient to do, why your defenses let it through,
role-labelled indicators, ATT&CK techniques, a response checklist, and ready-to-run Microsoft
Defender/Sentinel hunting and Purview purge queries. See docs/INVESTIGATION.md.
npx mxlens message.eml.MIT licensed.
Requires Node.js 20.9 or later.
git clone https://github.com/akmalmuhammed/mxlens.git
cd mxlens
npm ci
npm run build
npm start
Open http://localhost:3000/analyze and drop an .eml file (or try
public/samples/demo-phishing.eml).
For development: npm run dev.
npx mxlens suspicious.eml # readable report
npx mxlens --investigate suspicious.eml > case.md # full analyst write-up (Markdown)
npx mxlens --json reported-folder/ # JSON for every .eml in a folder
npx mxlens --fail-on malicious - < message.eml # exit code 2 if malicious
The CLI runs the same engine as the web app, entirely offline. See cli/README.md.
docker compose up -d --build
This serves MXLens on 127.0.0.1:3000. Put it behind your usual reverse proxy (with TLS) to
share it with a team.
Or run the published image:
docker run -d -p 127.0.0.1:3000:3000 ghcr.io/akmalmuhammed/mxlens:latest
None is required. All settings are optional environment variables; see
.env.example.
| Variable | Default | Effect |
|---|---|---|
MXLENS_ENRICHMENT | false | Enables server-side lookups of indicators extracted from emails. |
VIRUSTOTAL_API_KEY | VirusTotal reputation for IPs, domains and hashes. | |
ABUSEIPDB_API_KEY | AbuseIPDB reputation for IPs. | |
ABUSECH_API_KEY | MalwareBazaar and ThreatFox lookups. | |
GOOGLE_SAFE_BROWSING_KEY | Safe Browsing lookups for domains. | |
IPINFO_TOKEN | Higher rate limits for IP geolocation. |
| Enrichment off (default) | Enrichment on | |
|---|---|---|
| Email content, body, attachments | Stays in the browser | Stays in the browser |
| Public IPs, domains, attachment hashes | Stay in the browser | Sent by the server to the services above |
| Private IPs and internal hostnames | Stay in the browser | Filtered out, never sent |
The analyzer page states which mode the server is in. Enrichment endpoints are rate limited per client IP.
.eml ─► postal-mime (MIME parsing) ─► HeaderParser (auth results, hops, artifacts)
│
▼
AnalysisEngine
├─ HeaderScorer ├─ AttachmentScorer
├─ BodyScorer ├─ ImpersonationScorer / HomographDetector
├─ CrossContextScorer├─ DetectionPipeline (rules)
└─ Trust + Confidence ─► verdict with findings
The engine lives in src/lib/email and runs unchanged in the browser and in
Node.
npm run dev # local dev server
npm run test:run # unit tests
npm run typecheck # TypeScript
npm run lint # ESLint
npm run build:cli # bundle the CLI to cli/dist/mxlens.mjs
import { analyzeEmail } from "@/lib/email/analyze";
const result = await analyzeEmail(rawEml, { body: true, attachments: true });
result.verdict; // "clean" | "suspicious" | "malicious" | "unknown"
result.findings; // [{ reason, severity, impact, ... }]
MXLens is a triage aid, not an email security gateway. Verdicts are heuristic: expect some false positives and misses, and verify before acting. Reports with a sanitized sample are welcome.