目錄
- 什么是代理
- 正向代理
- 反向代理
- ew
- ew正向代理
- ew反向代理
- ssh
- ssh正向代理
- 語法
- 演示
- ssh反向代理
- frp內網穿透
- 服務器端(1)
- 客戶端(1)
- 服務端(2)
- 客戶端(2)
- DNS隧道
- HTTPS隧道
- 利用知名網站的子域名
什么是代理
客戶端無法直接請求服務器,只能將請求發往轉發代理服務器(簡稱代理服務器),代理服務器將請求轉發給服務器,接收到服務器回應后再將回應轉發回客戶端,適用于客戶端從內部網路訪問外部網路時,可能由于防火墻的存在無法直接訪問外網,這時需要借助轉發代理服務器訪問外部網路
正向代理
內網不能直接訪問外網,要通過代理服務器訪問外網,
此時是代理服務器去訪問服務器,用戶知道我要請求哪個服務器,但是服務器不知道是哪個用戶請求的,用戶被隱藏了,

反向代理
服務器在內網,用戶訪問不了,于是服務器把自己的資訊放到代理服務器上,然后用戶是去訪問代理服務器,比如我用我的個人電腦做服務器,搭個網站,可以說我的服務器在內網,顯然不能直接從公網上訪問到我的網站,這時就需要一個反向代理了,
假設代理服務器的80埠只能從內網訪問,8080埠能從公網訪問,
用戶從公網訪問代理服務器的8080埠,上一段說了,服務器將自己的資訊放到代理服務器上,代理服務器就在自個身上找,看用戶請求的服務器有沒有在自己身上留資訊,
有的話,代理服務器將用戶的請求通過nat等方式轉發給80埠,然后代理服務器的80埠去訪問處在內網的服務器,
如果用戶請求的服務器沒有再代理服務器上留下資訊,那就不好意思,訪問不了,(很顯然,我用代理服務器給我內網里的服務器做了代理,所以你能從公網通過代理服務器來訪問我的服務器,但是你不能通過這個代理服務器上去訪問別人在內網上的服務器吧,他又沒在代理服務器上做代理)

ew
-l 指定要監聽的本地埠
-d 指定要反彈到的機器 ip
-e 指定要反彈到的機器埠
-f 指定要主動連接的機器 ip
-g 指定要主動連接的機器埠
-t 指定超時時長,默認為 1000
ew正向代理
kali ip : 172.16.11.83
windows 1 ip :192.168.177.134
windows 2 ip :192.168.0.114
直接用windows 2(192.168.0.114)遠程連接windows 1(192.168.177.134)不行,
于是win 2訪問kali,kali訪問win 1.間接達到了目的,
./ew_for_Linux32 -s lcx_tran -l 1080 -f 192.168.177.134 -g 3389

………………
ew反向代理
./ew_for_linux64 -s lcx_listen -l 1080 -e 8080
ew_for_Win.exe -s lcx_slave -d 192.168.0.114 -e 8080 -f 192.168.177.134 -g 3389
參考資料
https://blog.csdn.net/ws13129/article/details/94445378
https://www.dazhuanlan.com/2019/12/09/5dee274f7ea0d/?cf_chl_jschl_tk=58d918e555ad103b0904672529e4a4934315b53c-1601314345-0-ATMs1q7lqiUsMuHW4PYa5DJxYMDjI9Y1sQCHDu9EPxt_JIgezyh6wLP-4N9fp3glhSsdLlXpdHNcG6768r5R7J0faIp-_g4gDKl8MJWidMXNnE-UZzjHMvaSbUU3ke0xgTgJo3oKmLNkyTPYtE4-3P4r0_4wGqqnn9462FH5ZbRJqLvghisABV2XZYmEefXpJBW3qm2rh1LJv5Kxz6q-cCvrNWDvfn6qxC47FgduwZgbO2usj7k6VCdB5PppBJ6l1kW6Z9r4QyfnW4giO21ByeVIns5mXR7I4RjcvsP8254qM4G-01LB4pV55IGc__0I-Q
ssh
centos ip :172.16.11.78
kali ip:172.16.11.83
首先,centos開啟web服務
這里在網站根目錄下新建一個123.html檔案
內容是 i am 172.16.11.78.也就是centos的ip地址,

ssh正向代理
語法
ssh -L [客戶端IP或省略]:[客戶端埠]:[服務器側能訪問的IP]:[服務器側能訪問的IP的埠] [登陸服務器的用戶名@服務器IP]
-g:允許遠程主機連接主機(host)的轉發埠;
-f 后臺執行ssh指令
-C 允許壓縮資料
-N 不執行遠程指令
-R 將遠程主機(服務器)的某個埠轉發到本地主機指定的埠 //即反向代理
-L 將本地機(客戶機)的某個埠轉發到遠端指定機器的指定埠 //即正向代理
-p 指定遠程主機的埠
演示
在kali里輸入
ssh -CfNg -L 172.16.11.83:80:172.16.11.78:80 root@172.16.11.78
(直接訪問172.16.11.78,訪問不了,172.16.11.83可以訪問172.16.11.78)

此時,在瀏覽器里訪問172.16.11.83,顯示的是172.16.11.78的內容,

ssh反向代理
/etc/ssh/sshd_config
GatewayPorts yes
ssh -R 80:192.168.177.134:22 root@47.*.*.232
Ssh root@localhost –p 80
參考
http://www.toxingwang.com/linux-unix/2581.html
frp內網穿透
客戶端:kali 172.16.11.83
服務端:centos 47.*.*.232 (遠程主機)
服務器端(1)
服務端將關于客戶端的檔案刪了
rm -rf frpc*

然后修改服務器組態檔(frps.ini)
vi frps.ini

[common]
bind_port = 7000
vhost_http_port = 8080
[common]部分是必須有的配置
bind_port是frp服務端埠
vhost_http_port是http訪問埠
然后保存,啟動frp服務器端
./frps -c ./frps.ini

客戶端(1)
同樣,為了避免敲錯,客戶端將關于服務端的檔案都刪了,
rm -rf frps*

然后改組態檔
vi frpc.ini
[common]
server_addr = 47.*.*.232
server_port = 7000
# server_addr填frp服務端的ip(也就是外網主機的IP),server_port填frp服務端的bind_prot,
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
# local_port 是本地的ssh埠
[web]
type = http
local_port = 80
custom_domains = www.*.cn
# local_port 是本地的web埠,custom_domains為要映射的域名,記得域名的A記錄要決議到外網主機的IP(當然,也可以改hosts檔案)

然后保存,運行frp客戶端
./frps -c ./frps.ini

時間超時,將遠程服務器換成本地虛擬機
服務端(2)
操作同(1),成功操作后反饋如下:

客戶端(2)


DNS隧道
……
HTTPS隧道
……
利用知名網站的子域名
比如github、twitter等網站,能允許用戶創建子域名,
C&C服務
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/145433.html
標籤:其他
