用户
搜索
  • TA的每日心情
    开心
    2021-4-14 14:32
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    i春秋-呆萌菜鸟

    Rank: 1

    1

    主题

    1

    帖子

    40

    魔法币
    收听
    0
    粉丝
    1
    注册时间
    2021-4-5
    发表于 2021-4-10 17:55:26 555947
    本帖最后由 Rubi1i队长 于 2021-4-10 18:21 编辑

    l 常用后门的制作(实战情况下需要对后门程序进行免杀处理):

    1、粘滞键后门  2、放大镜后门
    3、注册表自启动 4、映像劫持
    5、计划任务启动


    l 0×01  粘滞键后门的使用:

      之前设置粘滞键的后门很简单,直接将 sethc 程序替换成 cmd 程序,sethc 即粘滞键程序,在 c:/windows/system32 下,删除 sethc 或者重命名备份一下,(重命名后 5 下 shift 依然会调用粘滞键,且文件名修改成 sethc 的 cmd 也会执行)然后复制 cmd 修改成 sethc 即可,这时在目标机登录页面连续按 5 下 shift 可调出 cmd 命令行。






           如果目标主机系统是 winvista版本 以上的,即 winvista 之后的更高版本,修改 sethc 会提示需要trustedinstaller 权限,trustedinstaller 是一个安全机制,即系统的最高权限,权限比 administrator 管理员高,windows 权限分为三种从低到高依次是 user,administrator,system。而 trustedinstaller 比 administrator 高但没有 system 高,这么做的好处是避免了一些恶意软件修改系统文件的可能,坏处就是自己不能直接操作了,所以要先修改 sethc 需要将其所有者改为改为我们当前管理员用户

          



      当你获得一个管理员账号登录进目标的RDP中的时候,可以采用这个方法留后门。

    修改所有者需要在 sethc 右键属性,安全,高级,更改权限处,切换到所有者选项卡,把所有者更改成你所需要操作的用户,如下图:


          


          



    在修改所有者之前,直接编辑其权限都是灰色的不能修改,有了所有权之后,便可以编辑其用户与用户组的权限,这里需要给予自己用户对该文件的完全控制权限,勾选完全控制,如下图:

          


    因为这里笔者已经修改过,修改成管理员组的权限,在管理员组下的用户可以对该文件进行完全控制的权限操作。


      之后将修改好文件名的 cmd.exe >sethc.exe   覆盖原来的sethc可执行文件











    锁屏后连按五次shift键调出使用粘滞键,发现cmd命令行出现,而且是系统权限。

          

    之后管理员修改了用户密码也可以使用System权限的shell环境,美滋滋。


    l 细节扩展:


    那我们在实战中,是以远程登录界面为基础的。这时,我们又要拓展另一个权限,userauthentication权限 ,用于远程连接的身份验证。

    我们以图片直观地查看该权限开启与关闭的区别:

    开启状态:

       


    关闭状态:


       

      

    重点!!!:


      鉴权开启的时候,如果管理员修改了密码,我们就无法进入到主机登录页面从而调用各项快捷功能工具(如粘滞键、放大镜等等),所以说我们需要关闭这个鉴权模式,然后对粘滞键进行调用后调出我们拥有system权限的cmdshell。

    如何关闭鉴权模式,我们采用如下命令:

    REG ADD"HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0


    0代表关闭,1代表开启

      关闭鉴权模式还不够,还需要关闭securitylayer安全层验证  :
      
    具体指:0 就是连接前使用 rdp 协议进行身份验证,rdp 即远程桌面连接,相当于关闭验证。1 是指在连接前两端协商来进行身份验证,2 就是使用 tls 协议来进行。

    将其参数设置为0,命令如下:

    REG ADD"HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0
    在笔者测试中,两个参数同时关闭(也存在关掉一个参数而不用验证的情况,但最好还是两个参数都关闭) 才可以不用输入正确凭证进入3389的登录页面进行调用粘滞键和放大镜后门。

      



    以上操作的基础是目标机开启了远程桌面连接,所以我们这里也记录下如何开启远程桌面连接,首先是配置一下防火墙,设置为允许远程桌面连接,命令行运行以下命令:

    netshadvfirewall firewall add rule name="Remote Desktop" protocol=TCPdir=in localport=3389 action=allow


    netsh 是 windows 的网络配置命令,advfirewall firewall 意思是防火墙高级设置,add rule 是添加一条规则,name 指定规则名称,protocol 指定协议,dir 指定是出战还是入站,localport 指定端口,action 指定动作 allow 允许。
    设置后,我们再通过注册表来设置一下允许远程桌面连接,命令行运行以下命令:

    REG ADD"HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer" /vfDenyTSConnections /t REG_DWORD /D 0 /f


    至此,我们的粘滞键后门就已经完成了,远程桌面连接输入 ip 就会直接跳到目标锁屏页,如果用户没有设置密码则可以直接登录,如果有密码而又不知道密码的情况下,则可以用shift 调出命令行来执行一些操作



    不用凭证验证进入到登录页面:





    -------------------------------------------------------分界线------------------------------------------------------------------

    l 0×02  容易忽视的放大镜后门:


    • 实验环境:Win10 x64专业版  虚拟机

    • 实验简介:跟粘滞键后门一样的思路,但放大镜后门被关注性较低,重命名替换系统自带的工具程序,利用登录界面的“轻松访问工具”进行调用我们所替换的后门。

    所做标记的为轻松访问工具栏:


       



       


    方法①:

    批量处理bat脚本自动生成后门(cmd.exe的替换)


    #切换目录到c:\windows\system32;
    cd c:\windows\system32
    #更改文件名为magnify.exe的所有者为当前用户;
    takeown /f magnify.exe
    #将当前用户所在的组(管理员组)赋予完全访问权限;
    icaclsmagnify.exe /grant administrators:F
    #将可执行文件magnify.exe更名为magnify_back.exe;
    ren magnify.exemagnify_back.exe
    #将cmd.exe复制并更名为magnify.exe;

          完整bat处理脚本代码:


    cdc:\windows\system32
    takeown/f magnify.exe
    icaclsmagnify.exe /grant administrators:F
    renmagnify.exe magnify_back.exe
    copycmd.exe magnify.exe

         


    双击运行bat脚本,即可修改成功。
    来到锁屏页面,打开 轻松访问  工具栏,使用放大镜,在没有输入用户名和密码的情况下弹出了系统权限的cmdshell,成功执行cmd.exe。(可以利用以上思路,修改代码,加载其他的后门程序)

          



    方法②:

    图形化操作(在成功连接登录进RDP后进行的操作,如何开启RDP登录界面并调用相关工具请回到上文“关闭鉴权”)更换放大镜程序执行获得cmdshell(根据情况更换所执行的程序或后门)

    (1)进入目录C:\Windows\System32,找到mangify.exe,将其重命名为:mangify_backup.exe,发现无法重命名,这时候需要我们去更改文件的控制权限(与上文的粘滞键后门操作一致)。


          

    (2)右键打开mangify.exe调出工具栏打开属性,来到 “安全--高级” 下根据情况修改文件所有者

          

         

    (3)根据情况再次修改对于用户/用户组 对文件的控制权限,设置为 完全控制  (笔者这里测试的权限为管理员,实际情况下根据自己所获得的用户权限进行更改,万变不离其宗)

         

    (4)查看Administrator的权限,可以看到权限是完全控制

          

    (5)然后我们将原来的放大镜程序mangify.exe 修改为 mangify_backup.exe,再将cmd.exe复制一份并改名为mangify.exe,让系统调用执行程序的时候cmd.exe认为是mangify.exe。

         


    (6)打开RDP登录页面或者重新启动,可以看到右下角“轻松访问工具栏”的标识,。

         


    (7)打开后,就直接弹出cmdshell,权限为system,替换的程序执行成功!

          

    思维扩展:

    两种不同的操作方法,可以根据环境和需要进行选择,但所执行的程序需要具有一定的免杀效果。


    -------------------------------------------------------分界线-----------------------------------------------------------




    l 0×03  注册表自启动项:

    MSF的Persistence模块利用的就是写注册表自启动项来实现的,一般自启动项是这两个键:Run和RunOnce,两者的区别如下:
    1.     Run该项下的键值即为开机启动项,每一次随着开机而启动
    2.     RunOnceRunOnce和Run差不多,唯一的区别就是RunOnce的键值只作用一次,执行完毕后就会自动删除 。



    常见注册表启动项键的位置:

    用户级(每个用户的启动项键值设置是不同、独立的,登录不同用户,那个用户所自启动的程序是互不干扰的,可以针对某个用户执行某个程序):

    \HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    \HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce


    系统级(所有用户的启动项键值设置是相同的,只要登录这台计算机,不管是谁,都dei被执行拿下):

    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
    \HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
    \HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce


    创建个新的字符串值名为 test(值名字随意), 其值为要执行的后门文件的路径
       (Win7下执行文件的物理路径要用双引号括起,Win10无所谓,但最好还是养成习惯用双引号括起来)


            


    保存退出,当电脑启动或重启的时候,过一段时间会自动执行所指向的程序,成功利用如下图:


          

    -------------------------------------------------------分界线---------------------------------------------------------------


    l 0×04  映像劫持:

    1、什么是映像劫持(IFEO hijack):

    也许你曾遇到过这种情况:无论你将软件安装在什么地方,在运行的时候总会出现“系统找不到指定的文件”的错误提示,导致软件无法运行。如果你将软件的exe文件改个名称,就可以正常运行了。这种现象就叫做映像劫持(IFEO hijack)。映像劫持是一种影响系统正常运转的手段,这种手段可以阻止AV。简单来说,就是要执行A程序的时候,A程序被劫持不能正常执行,却执行了B程序


    2映像劫持的原理:

    映像劫持是利用Windows的IFEO(Image FileExecution Options)功能来实现的。IFEO实际上是Windows的一项正常功能,主要用于调试程序,其初衷是在程序启动的时候开启调试器来调试程序,这样一来可以在调试器中观察程序在难以重现的环境中的行为。例如,某个程序在随用户登录自动启动时会出错,但在登录后手动启动时却一切正常,这就可以通过IFEO设置一个调试器,无论程序何时启动,都会开启这个调试器对其进行调试,以便找出问题。


    映像劫持并不等于IFEO,反之亦然。映像劫持的正式英文名称其实是“Image Hijack”。

    Windows NT系统在执行一个从命令行调用的可执行文件运行请求时,首先会检查这是否是一个可执行文件,如果是,又是
    什么格式的,然后就会检查是否存在(HKLM为HKEY_LOCAL_MACHINE的缩写):
    [HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options\ImageName]

    如果存在,首先会试图读取这个键值:
    [HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options\ImageName]

    所用的参数为Debugger "Debugger"="所要执行的程序路径",如果存在,就执行所设置的程序


    目前已知的IFEO参数有:
    ApplicationGoo
    Debugger
    PageHeapFlags
    DisableHeapLookAside
    DebugProcessHeapOnly
    PageHeapSizeRangeStart
    PageHeapSizeRangeEnd
    PageHeapRandomProbability
    PageHeapDllRangeStart
    PageHeapDllRangeEnd
    GlobalFlag
    BreakOnDllLoad
    ShutdownFlags


    HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options\ 该项中新建一个项(该项为要劫持的可执行程序的文件名,可以设置劫持为后门程序)并添加字符串键值
    键名为参数Debugger ,值为要执行的程序:


         



    设置好后,执行Origin.exe 这个程序,发现程序被劫持并执行为系统自带的计算器程序calc.exe,所需要劫持和执行的程序根据情况配置。

         


    也可以命令行管理员直接执行:


    REGADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image FileExecutionOptions\notepad.exe" /t REG_SZ /v Debugger/d"C:\windows\system32\cmd.exe" /f




    l 思路扩展:

    在这种情况下,被劫持的文件无法正常执行,所以说我们需要利用社工或者一定的代码构造进行更近一步的诱导或者隐蔽性的优化,比如:在执行后门程序的情况下,被劫持的文件也被索引然后正常执行,可以达到混淆管理员的作用。









    l 0×05  计划任务启动后门:

    • 方法:①At 计划任务 ; ②schtasks

    • 在Windows 8 及以上已经废用At命令创建计划任务了,所以说我们需要按情况选用方法进行创建任务。

    两种计划的主要不同之处:At命令在win708等高版本的windows中是不能将任务在前台执行的,也就是只会打开一个后台进程,而schtasks是将定时的任务在前台执行

    比如:
    利用At命令创建的任务进行执行计算器程序calc.exe,只会在后台执行这个程序,不会弹出计算器的GUI图形页面;而利用schtasks命令创建的任务执行计算器程序calc.exe会在前台执行,意思是会弹出计算器的GUI图形页面如下图:


                 
      




    Schtasks命令的使用demo:
    schtask语法
    schtasks /create /tn TaskName /tr TaskRun /sc schedule [/mo modifier] [/d day] [/m month[,month...] [/i IdleTime]


    参数的解析:
    /tn:(要创建或删除的)任务名;

    /tr:要执行的程序路径;

    /sc:指定计划类型进行执行,有效值为 MINUTE(按分钟)、HOURLY(按小时)、DAILY(按每天)、WEEKLY(按每周)、MONTHLY(每月)、ONCE(任务在指定的日期和时间运行一次)、ONSTART(任务在每次系统启动的时候运行。可以指定启动的日期,或下一次系统启动的时候运行任务。)、ONLOGON(每当用户(任意用户)登录的时候,任务就运行。可以指定日期,或在下次用户登录的时候运行任务。)、ONIDLE。(要系统空闲了指定的时间,任务就运行。可以指定日期,或在下次系统空闲的时候运行任务。)

    /mo modifier指定任务在其计划类型内的运行频率。这个参数对于 MONTHLY 计划是必需的。对于 MINUTE、HOURLY、DAILY 或WEEKLY 计划,这个参数有效,但也可选,默认值为 1。


    命令Demo:

    计划任务每天运行一次:

    下面的范例计划 MyApp程序在每天的 8:00 A.M. 运行一次,直到 2001 年 12 月 31 日结束。由于它忽略了 /mo 参数,所以使用默认间隔 1 来每天运行命令。


    schtasks /create/tn "My App" /tr c:appsmyapp.exe /sc daily /st 08:00:00 /ed12/31/2001



    计划任务每隔一天运行一次:

    下面的范例计划MyApp 程序从 2001 年 12 月 31 日起每隔一天在 1:00 P.M. (13:00) 运行。命令使用 /mo 参数来指定两 (2) 天的间隔。


    schtasks /create/tn "My App" /tr c:appsmyapp.exe /sc daily /mo 2 /st 13:00:00 /sd12/31/2001



    :计划任务每隔一周在周五运行
    下面的命令计划任务每隔一周在周五运行。它使用 /mo 参数来指定两周的间隔,使用 /d参数来指定是一周内的哪一天。如计划任务在每个周五运行,要忽略 /mo 参数或将其设置为 1。

    schtasks /create/tn "My App" /tr c:appsmyapp.exe /sc weekly /mo 2 /d FRI









    利用At命令进行创建任务:


    语法:AT[\\computername] time [/INTERACTIVE] [ /EVERY:date[,...] | /NEXT:date[,...]]"command"


    命令Demo:

    在下午16:20 运行,/every 代表指定日期, Monday 是星期一,在星期一的16:20 分运行mkdir.bat 这个批处理程序运行批处理程序要使用绝对路径. 记得用 双引号 括起来。


    at16:20 /every:Monday "C:\Users\Administrator\Desktop\mkdir.bat"


    发表于 2021-4-12 10:34:56
    使用道具 举报 回复
    队长刘辟
    使用道具 举报 回复
    好嘛好嘛
    使用道具 举报 回复
    发表于 2021-4-28 17:58:21
    牛6666666666666
    使用道具 举报 回复
    发表于 2021-4-29 15:19:20
    让我们一起干大事!
    有兴趣的表哥加村长QQ:780876774!
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册