嗨嗨安全
微信号 gh_dc18c8a0e913
功能介绍 提供网络安全资料与工具,分享攻防实战经验和思路。
__发表于
收录于合集
以下文章来源于flower安全混子 ,作者Flowers aq
一定要离梦想近一点.
前言:
在渗透的过程中,往往在拿到shell后还要进行长期的控制或监控去实现自己的攻防目的,所以花某今天给大家分享一些基本的权限维持思路。
权限维持:
权限维持的本质其实就是利用后门脚本文件长期劫持计算机。
**权限维持思路:
**
** 账户隐藏:**
获取了一个计算机shell要添加一个用户从而实现长期的控制,但是直接添加就很容易被溯源人员或者计算机用户发现,所以就可以隐藏添加账户。
首先先创建一个普通用户看看:
net user usert 12345678 /add
然后再用命令查看一下用户:
net user
能查看到我们创建的用户
然后再利用命令创建一个看不到的用户:
net user usert2$ 12345678 /add
可以看到net user命令已经看不到usert2的用户了。
但是这样并不是完全隐藏了,因为我们实际上是可以到【计算机管理】处的【用户组】里看到我们刚刚隐藏的这个账户的:
这时我们其实可以用注册表克隆一个管理员账户去造成混淆从而达到隐藏账户的目的,操作过程和花某之前写的《黑客(红队)攻防中后渗透阶段痕迹清理》中的伪造注册表从而打到伪造事件日志是差不多的:
首先打开注册表:
到路径:
计算机\HKEY_LOCAL_MACHINE\SAM下的SAM
中右键SAM选择权限
然后点击管理员账户打上下面【完全控制】的选项就能进一步操作这个注册表
然后刷新或重启一下注册表就能进一步展开SAM下的注册表
操作完这一步回到CMD把刚刚创建的隐藏账户加到administrator中:
net localgroup administrators usert2$ /add
添加到管理员是因为在实战情况下一般我们都会执行此操作来为我们自己的账户所添加权限,添加完之后再次回到注册表刷新下或是重启一下注册表
就会发现我们添加的usert2$账户然后在右边找到usert2$用户所对应表的名字把它给导出来:
找到03EC的表导出来:
命名为me.reg
在把刚刚的usert2$导出来:
保存为me2.reg
最后把管理员的0x注册表给导出来
保存为ad.reg
然后用记事本打开这这些注册表:
先打开管理员的ad.reg注册表复制它的F的hex:
蓝色部分都要复制,随后打开me.reg把这些替换掉:
随后到CMD把usert2$的账户给删除掉
net user usert2$ /del
随后在导入注册表me.reg和me2.reg
然后返回【计算机管理】就看不到我们的账户了
然后再用usert2$账户登录一下再看看用户组:
显示是administrator用户,因为我们刚刚克隆的是administrator用户的注册表,然后利用net user usert2$ /del 删除用户组也会显示用户不属于此组而不能删除。
** 映像劫持:
**
映像劫持[Image File Execution
Options]就是序启动时自动调用一个调试器,我们可以将恶意程序的名称添加到其中,恶意程序在启动时自动调用一个调试器,从而实现恶意代码的执行 **。
**
例如:
我这边有个【readme.txt】
我要查看【readme.txt】的内容,然后我点击打开【readme.txt】文件:
但是打开的却不是记事本而是弹了个计算器
具体操作为:
打开注册表
找到路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
然后右键新建项命名为【notepad.exe】
再右键【notepad.exe】新建字符
命名为【Debugger】
双击 **
**
在数值数据处写入要执行的代码
点击确定,然后只要用记事本打开的文件就都会弹计算机,而进阶玩法有,先新建一个1.bat,给它写入指令:
然后再把1.bat文件的地址复制给【debugger】的数值,然后双击运行记事本文件就能创建用户
但是不管是攻防演练还是渗透测试中一般是不会直接改notepad.exe的因为这样比较明显,可以尝试修改其它的属性,顺便提一嘴【notepad.exe】其实就是记事本文件,要是想修改其它操作的属性就能产生不一样的化学反应一般会配合粘滞键提醒之类的
windows属性就是连续按5次shift就会跳出粘滞键,然后我们利用同样的操作在注册表新建【sethc.exe】 **
**
新建字符串【debugger】
赋值cmd.exe,然后我们再次连续按5次shift试试
成功呼出cmd的框。
** Userinit启动:
**
Userinit.exe 是 Windows 操作系统中的一个系统进程,它在用户登录时启动,负责初始化用户环境。它的主要作用是加载用户配置文件、启动用户登录时需要的进程和服务,以及设置用户的桌面和壁纸等。在用户注销或关闭计算机时,Userinit.exe 也会负责清理用户环境,关闭用户进程和服务,保存用户配置文件等。
所以我们可以通过修改Userinit来达到【开机上线】等等目的,而Userinit也是过杀毒软件不错的选择,因为它在开机时是优于杀毒软件启动的,但同时修改Userinit注册表的行为较为敏感所以要有较高的管理员权限才能修改。
首先打开注册表,路径为:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
然后在右边找到【Userinit】,双击
Userinit支持多任务启动,所以我们可以利用【,】来分隔多个任务,例如:
重启查看效果:
重启成功弹窗,而还有许多其它玩法,比如路径文件执行,远控无文件等等,这边生成一个远控的1.exe,这边为了方便花某就用了个电脑以前就有的某远控软件,没用CS,花某首推用CS远控各方面都比较好
右键复制它的地址,然后复制到注册表值中
然后重启
在远控端成功上线
并且Userinit也是支持命令进程的,包括powershell等等的命令,这样的话在CS就能实现无远控文件直接上线了,可以在CS的【攻击】-【钓鱼攻击】-【脚本WEB传递】服务中选择生成【PowerShell】上线的命令,我这边拿PowerShell启动计算器给大家举例:
powershell -command "Start-Process calc.exe"
成功弹窗
**计划任务:
**
看过花某的《近源渗透从监控系统打到机房再到教育局Getshell》一文的师傅其实对这个应该是不陌生的,那次花某配合【计划任务】拿下机房的,计划任务从字面看就很明了,就是计划某个任务运行,可以指定运行时间啊等等等等,直接拿这个命令给大家举例吧
schtasks.exe /Create /TN testrun /TR cmd.exe /SC minute /mo 1 /F /RL HIGHEST
首先去运行此命令
等1分钟
又有一个CMD弹出,而这条命令的就是计划每1分钟运行cmd.exe程序的一个任务,将任务名记为testrun **
**
schtasks.exe /Create /TN testrun /TR cmd.exe /SC minute /mo 1 /F /RL HIGHEST
逐个分析就是:首先用schtasks.exe计划任务 /TN 的N代表的就是【Name】意思为计划的这个任务的名称,/TR 的R就是【Run】意为运行的任务 而后面的 /SC 和 /mo 都是计划任务运行的时间,前者的 /SC minute 为分钟 /mo 1 为每隔1分钟运行,/F 为强制执行如果已有此任务运行将会对之前的任务进行覆盖 /RL HIGHEST 意为执行的命令为最高权限执行。
而schtasks的玩法也是多种多样和前面的注册表玩法基本上一致,也可以指定某路径去运行路径中的文件,schtasks的参数也有很多,指定小时指定一天啊或是指定运行一次等等,具体参数师傅们可以到时候用的时候上网搜搜
Linux下的计划任务:
Linux下的计划任何和Windows下又有所不同,需要用到 crontab命令
首先我们用
crontab -l
来查看当前的计划的任务
发现并没有计划任务,然后用
crontab -e
创建计划任务
在最后一行加入指令意为每1分钟去执行后面的命令,然后保存退出,运行service cron restart
重启命令,这样每隔1分钟就会运行一次命令
总结:
以上就是些权限维持的基本思路,在实战的攻防中还得考虑具体情况去对症下药,也有许多工具关于权限维持的,花某比较擅长手工所以工具一直是痛处,大家在实战中可以利用工具达到事半功倍的效果!
预览时标签不可点
微信扫一扫
关注该公众号
知道了
微信扫一扫
使用小程序
取消 允许
取消 允许
: , 。 视频 小程序 赞 ,轻点两下取消赞 在看 ,轻点两下取消在看