Manav.id
Comparison · 4 min read

Seventy-two spoofed sites, one phone call: which MFA factors survive a real-time proxy

Seventy-two spoofed sites, one phone call: which MFA factors survive a real-time proxy

The firms that were compromised had multi-factor authentication. That is the point of the incident, not an aside: the attack was designed against MFA, and the factors most commonly deployed are the ones it defeats.

Which MFA factors survive a real-time phishing proxy?

Only origin-bound ones. In 2026 attackers telephoned staff at large private equity firms and funnelled them into dozens of spoofed authentication sites where codes were captured in real time. Every shared-secret and push-based factor fell; a factor the browser scopes to the real domain did not.

Key takeaways
  • A real-time proxy relays whatever the user provides. Any factor the user can transmit is a factor the attacker can forward.
  • Origin binding solves the login. It does not solve the transaction, because a compromised session does not require another login.
  • Two layers are needed: origin-bound credentials for authentication, and per-transaction signing for the money.

Prerequisites

Phone call primes the targetauthority and urgencyDirected to a spoofed siteone of dozensCode enteredrelayed in real timeSession establishedattacker holds it
The victim authenticates correctly. The proxy relays it.

Step 1 — Understand the attack as a relay

A real-time proxy sits between the user and the real service. The user believes they are on the login page. The proxy forwards everything to the genuine site and returns the genuine responses.

Whatever the user types, the proxy types. Whatever the service sends back, the user sees. The user's session cookie is issued to the proxy and the attacker inherits an authenticated session.

This is why enumerating factors by strength is the wrong exercise. The relevant question is not how strong a factor is; it is whether the user can transmit it.

Step 2 — Score your factors

Survives = the attacker still cannot complete authentication. The middle column is the deciding property.
FactorCan the user transmit it?Survives real-time proxy
PasswordYesNo
SMS one-time codeYesNo
Authenticator app codeYesNo
Push approvalEffectively — they tap for a prompt the proxy triggeredNo
Push with number matchingEffectively — the number comes from the proxy's sessionNo
Hardware OTP tokenYesNo
Origin-bound credential (passkey / FIDO2)NoYes

The last row differs for a structural reason. An origin-bound credential signs an assertion tied to the domain requesting it. Presented with a proxy domain, it produces an assertion the real service will reject, or refuses to produce one at all. The user cannot transmit it wrongly because the credential will not cooperate.

Step 3 — Recognise what origin binding does not cover

This is where most deployments stop, and it is a mistake.

Origin binding protects the login. Once an attacker holds a session — through a stolen cookie, a compromised device, or a session issued before the upgrade — they act inside it. No further authentication is invoked, because the application does not ask.

For a firm whose applications can initiate transfers, that residual is the entire exposure.

Step 4 — Add the transaction layer

A per-transaction signature is session-independent by construction. The user signs a canonical statement of the specific action — amount, destination, date — and the assertion is meaningless for any other action.

AttackOrigin-bound loginPer-transaction signing
Credential phishing via proxyBlocksn/a
Stolen session cookie replayDoes not blockBlocks
Compromised endpoint with active sessionDoes not blockBlocks unless the device itself signs
Insider with legitimate accessDoes not blockAttributes the action to them

Row three deserves a caveat. If the attacker controls the user's own device, they may be able to prompt for a signature the user approves believing it is theirs. That is a materially harder attack and it is not eliminated — rendering the transaction detail in the signing prompt is what gives the user a chance to notice.

Step 5 — Sequence the rollout

  1. Start with the applications that can move money or expose LP data, not with email. Email is the largest surface and the least consequential single action.
  2. Enrol two authenticators per user before enforcing anything. A single-authenticator rollout generates a help-desk surge that becomes its own social engineering surface.
  3. Invalidate existing sessions at cutover. Sessions issued before the upgrade carry the old assurance.
  4. Add transaction signing to transfer and instruction actions in the same programme, not as a later phase that never arrives.

Failure traps

Factor-by-factor survivability

Against a real-time proxy
FactorSurvives?Why
SMS or voice codeNoA bearer secret with no context
TOTP applicationNoRelayable within the window
Push approvalNoThe user approves the proxy's login
Push with number matchingPartlyRaises effort; the number is displayed on the proxy page
Origin-bound assertionYesThe browser will not sign for the wrong domain

Objections and honest limits

“Our staff are trained to spot spoofed domains.” Under a phone call from someone claiming authority, with a plausible reason and time pressure. Training is being asked to beat a professional who chose the moment.

“Origin binding solves it entirely.” It solves the ceremony. The session issued afterwards is an ordinary bearer token, and any fallback to a weaker factor is a path the attacker will steer toward.

Hardening against relay

  1. Remove weaker factors once enrolment is complete. A fallback that exists will be induced.
  2. Make recovery require an existing credential. Not a knowledge-based conversation.
  3. Step up at consequential actions. So a relayed session yields browsing, not money movement.
  4. Train on the call, not the page. The phone call is the part that actually works.

Terms used here

Real-time proxy
Phishing infrastructure that relays a live session between victim and genuine site, capturing tokens as they pass.
Origin binding
The property that an authenticator will only sign for the domain the credential was registered to.
Number matching
A push variant requiring the user to enter a number shown by the requesting site, which raises effort without closing relay.

Frequently asked questions

Is number matching not sufficient? No. The number is displayed by the proxy's session and relayed to the user, who matches it correctly. The mechanism assumes the user is looking at the legitimate site.

What about hardware OTP tokens? The code is a string the user types. A proxy relays strings. Possession of the token does not help if the code can be forwarded.

Does this mean we should remove all other factors? Eventually, for the applications in scope. Leaving a weaker fallback enabled means the attacker chooses it, which nullifies the upgrade.

How long does enrolment take per user? Minutes. The programme cost is coordination and help-desk readiness, not user time.

Do any shared-secret factors survive a relay? No. Anything the user can read out or type can be relayed within its validity window.

Does origin binding end the problem? It ends the ceremony attack. The session afterwards is a bearer token, and any weaker fallback is a path the attacker will steer toward.

What should training focus on? The phone call. That is the part that works, and the part staff can actually act on.

Where this fits in Manav

Manav binds the authorising individual to the exact record change or instruction, and produces a receipt a custodian, a transfer agent or a regulator can verify without calling the issuer.

See instruction receipts →

Sources and further reading