Public surface assessment — Tieturi
WordPress training site. Live XML-RPC methods, SSH:22 on web IP, weak headers, partial DMARC. True L3: HIGH 4 · MEDIUM 5.
Executive summary
Why act now
These findings are not theoretical: they are public surfaces a human or a hacker agent can consume today. Each card has proof links, impact, owner, fix, and validation — so the team takes risk seriously and acts.
WordPress training site. Live XML-RPC methods, SSH:22 on web IP, weak headers, partial DMARC. True L3: HIGH 4 · MEDIUM 5.
Stack in this run
| Component | Used | Note |
|---|---|---|
| ParviClaw Core + AWP | YES (lab) | full pack on engagement |
| ParviSight browser | partial | HTTP walk / agentic |
| PayBotFin Witness live | as engaged | honest scope in annex |
Findings
Each finding includes: problem, where (clickable link), attacker/agent impact, owner, PoC (read-only), how to fix, and how to validate.
XML-RPC fully enabled
HIGHhttps://tieturi.fi/ — POST system.listMethods returns large method set (system.multicall, wp., metaWeblog., pingback., WPML translationproxy., …). last_reprobe=2026-07-31.
XML-RPC enables amplified brute force and pingback abuse.
- Human: Public xmlrpc surface on tieturi.fi expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Tieturi — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sS -X POST https://tieturi.fi/xmlrpc.php -H 'Content-Type: text/xml' --data '<?xml version="1.0"?><methodCall><methodName>system.listMethods</methodName></methodCall>' | head -c 500
Disable XML-RPC if unused; WAF rate-limit; block system.multicall from internet.
Disable XML-RPC if unused; WAF rate-limit; block system.multicall from internet.
SSH TCP/22 open on web IP
HIGHWhat / evidence: Live connect to port 22 open on https://tieturi.fi / www. Fix: Bastion/VPN only; key-only last_reprobe=2026-07-31.
SSH on public web IP is a permanent brute-force target.
tieturi.fi · TCP/22
- Human: SSH on public IP is a permanent brute-force target.
- Agent (LLM+tools): Port-scan brand IPs; spray against TCP/22.
- If invasive/destructive: Shell on host. L3 only proves port open.
Tieturi — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
nc -zv -w 3 tieturi.fi 22
Close TCP/22 on public edge or restrict by allowlist/bastion; keys-only; fail2ban; no password auth.
Close TCP/22 on public edge or restrict by allowlist/bastion; keys-only; fail2ban; no password auth.
Dangerous HTTP methods (deep matrix)
HIGHhttps://tieturi.fi/ — What / evidence: Deep: TRACE/PUT/DELETE/PATCH returned 200 HTML — re-baseline methods on edge. Fix: Force 405 for TRACE/write verbs last_reprobe=2026-07-31.
Public brand surface on tieturi.fi expands recon until closed.
- Human: Public edge surface on tieturi.fi expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Tieturi — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://tieturi.fi/'
Remove unnecessary public hosts on tieturi.fi DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on tieturi.fi DNS or enforce strong auth/WAF; re-test from internet.
Public wp-login + weak headers
HIGHhttps://tieturi.fi/wp-login.php — What / evidence: wp-login public; CSP/XFO/nosniff missing (only HSTS class). Fix: MFA/WAF + full headers last_reprobe=2026-07-31.
Default WP login is a permanent spray target.
- Human: Public wp_login surface on tieturi.fi expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Tieturi — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://tieturi.fi/wp-login.php'
MFA, rate limit, WAF, optional allowlist; combine with blocking user REST enum.
MFA, rate limit, WAF, optional allowlist; combine with blocking user REST enum.
DMARC quarantine pct=25
MEDIUMDNS TXT at _dmarc.tieturi.fi publishes a DMARC policy with p=none (monitor-only). Receiving servers do not quarantine/reject forged @tieturi.fi mail on DMARC fail. This is email brand spoofing / BEC risk, not a website bug. Proof: dig TXT _dmarc.tieturi.fi +short last_reprobe=2026-07-31.
Brand email spoofing / BEC remains easier while DMARC on tieturi.fi is not reject.
DNS record (not a website): _dmarc.tieturi.fi TXT
Mail domain: @tieturi.fi
- Human: Forge invoices / IT resets as
@tieturi.fiwhilep=none. - Agent (LLM+tools): Re-check DMARC; automate brand-domain spoof campaigns.
- If invasive/destructive: Financial fraud via trusted-looking mail — not CMS takeover from this alone. L3 only proves DNS policy (dig).
Tieturi — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
dig TXT _dmarc.tieturi.fi +short
Align SPF/DKIM for all legitimate senders; move DMARC to p=quarantine then p=reject; monitor rua; document third-party senders.
Align SPF/DKIM for all legitimate senders; move DMARC to p=quarantine then p=reject; monitor rua; document third-party senders.
Fat SPF ~all
MEDIUMmulti-vendor softfail (surface: https://tieturi.fi/). last_reprobe=2026-07-31.
Weak SPF increases spoof windows for the brand domain.
- Human: Public spf surface on tieturi.fi expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Tieturi — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://tieturi.fi/'
Tighten SPF includes for tieturi.fi; avoid overly broad ~all without DMARC reject.
Tighten SPF includes for tieturi.fi; avoid overly broad ~all without DMARC reject.
No CAA / security.txt
MEDIUMNo CAA / security.txt (surface: https://tieturi.fi/). last_reprobe=2026-07-31.
Public brand surface on tieturi.fi expands recon until closed.
- Human: Public edge surface on tieturi.fi expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Tieturi — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://tieturi.fi/'
Remove unnecessary public hosts on tieturi.fi DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on tieturi.fi DNS or enforce strong auth/WAF; re-test from internet.
Related hosts
MEDIUMevents Eventilla, uutiskirje, true.tieturi.fi live (surface: https://tieturi.fi/). last_reprobe=2026-07-31.
Public brand surface on tieturi.fi expands recon until closed.
- Human: Public edge surface on tieturi.fi expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Tieturi — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://tieturi.fi/'
Remove unnecessary public hosts on tieturi.fi DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on tieturi.fi DNS or enforce strong auth/WAF; re-test from internet.
Session cookie flags incomplete
MEDIUMSession cookie flags incomplete (surface: https://tieturi.fi/). last_reprobe=2026-07-31.
Public brand surface on tieturi.fi expands recon until closed.
- Human: Public edge surface on tieturi.fi expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Tieturi — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://tieturi.fi/'
Remove unnecessary public hosts on tieturi.fi DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on tieturi.fi DNS or enforce strong auth/WAF; re-test from internet.
Evidence annexes (AWP + Core)
Real pack from L3 max retest 2026-07-31 (public-max, non-destructive). Each file has a caption. Links open the artifact.
What it is: signed Agent Witness Protocol receipt (offline-verifiable).
What it proves: integrity of our test/engagement log.
What it is NOT: not alone proof of the bug on your host (that is each finding’s PoC).
→ download awp-receipt.json
What it is: append-only leaves (scope, probes seal, catalog, quality, seal).
What it proves: timeline of this retest run.
→ download leaves.jsonl · leaf-chain.txt (PASS)
What it is: status/headers/samples from public-max probes.
What it proves: what the internet saw during the run.
→ download retest-raw.json
What it is: multi-page walk summary (URLs, sizes, forms).
→ download agentic-walk.json · core-export.json
→ open full evidence folder · engagement eng_tieturi_l3_retest_1361 · witness_mode local_awp_dev (DEV_LAB keys — not production ceremony).
How to use / verify AWP (open-source)
- Download
awp-receipt.jsonfrom the annex (or clone the evidence folder). - On any machine with Node 18+:
# from the evidence folder npx agent-witness-protocol verify awp-receipt.json # or with local package node /path/to/agent-witness-protocol/bin/awp.js verify awp-receipt.json
Honest PASS meaning: the receipt’s signature, Merkle inclusion, and checkpoint check out — the test log is intact.
PASS does NOT mean: your production bug is fixed, or that PayBotFin live network witness was used (this pack is local_awp_dev / DEV_LAB unless noted).
PayBotFin Witness: live network emit is optional and engagement-scoped. If not listed above as network_emit, do not claim live PayBot verification for this run.
Remediation order for the team
- Close HIGH public exposures first (auth / VPN / DNS / policy).
- Fix MEDIUM headers, mail policy, and non-prod exposure.
- Re-test every PoC from the public internet until closed.
- Archive AWP/evidence pack for audit and retest baseline.