<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    內網穿透工具使用總結

    VSole2021-11-17 07:10:35

    1. nps-npc

     1.1 簡介

    nps是一款輕量級、高性能、功能強大的內網穿透代理服務器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,并帶有功能強大的web管理端。

    • 一臺有公網IP的服務器(VPS)運行服務端(NPS
    • 一個或多個運行在內網的服務器或者PC運行客戶端(NPC

     1.2 特點

    1. Go語言編寫
    2. 支持跨平臺
    3. 支持多種協議的代理
    4. web管理端

     1.3 使用方法

    https://github.com/ehang-io/nps/releases

     1.4 NPS

    安裝配置

    找到自己服務器相應版本的server:

    plain

    cd ~
    wget https://github.com/cnlh/nps/releases/download/v0.23.2/linux_amd64_server.tar.gz
    tar xzvf linux_amd64_server.tar.gz
    cd ~/nps
    

    在nps目錄下面會有一個nps可執行文件、conf配置目錄和web網頁目錄,我們只需要修改conf/nps.conf即可:

    plain

    vim conf/nps.conf
    

    需要改一下#web下面的幾個參數,

    plain

    web_host= 服務器IP或者域名
    web_username= admin(登錄用戶名)
    web_password= 你的密碼
    web_port=8080(web管理端口)
    

    修改#bridge 可以更改 NPC的連接端口。比如我們拿到一臺權限受限的服務器,有防火墻,可能只有部分端口(80,443)可以出網,就需要修改成出網端口。

    plain

    ##bridge
    bridge_type=tcp
    bridge_port=443        # 修改連接端口
    bridge_ip=0.0.0.0
    

    啟動

    plain

    #Mac/Linux
    ./nps test|start|stop|restart|status  測試配置文件|啟動|停止|重啟|狀態
    #Windows
    nps.exe test|start|stop|restart|status 測試配置文件|啟動|停止|重啟|狀態
    

     1.5 NPC

    plain

    ./npc -server=你的IP:8024 -vkey=唯一驗證密碼 -type=tcp
    

    新建好客戶端后,也可以在+中看到,詳細的客戶端連接命令:

     1.6 web管理端

    在客戶端界面可以通過新增的方式添加客戶端連接,每一個連接的vkey都是唯一區分的。

    每一個客戶端,在建立連接后,都可以建立多個不同協議的隧道,這一個個隧道就是不同的代理了。

    通過不同的協議和端口就可以連接代理的內網機器。

    2. frp

     2.1 簡介

    frp 是一個專注于內網穿透的高性能的反向代理應用,支持 TCP、UDP、HTTP、HTTPS 等多種協議。可以將內網服務以安全、便捷的方式通過具有公網 IP 節點的中轉暴露到公網。

     2.2 特點

    • 客戶端服務端通信支持 TCP、KCP 以及 Websocket 等多種協議。
    • 端口復用,多個服務通過同一個服務端端口暴露。
    • 跨平臺,但是支持的比nps少一點
    • 多種插件,提供很多功能

     2.3 使用方法

    下載:https://github.com/fatedier/frp/releases

    以下內容摘自:https://segmentfault.com/a/1190000021876836

    1. 通過 rdp 訪問家里的機器

    1. 修改 frps.ini 文件,為了安全起見,這里最好配置一下身份驗證,服務端和客戶端的 common 配置中的 token 參數一致則身份驗證通過:
    2. plain
    # frps.ini
    [common]
    bind_port = 7000
    # 用于身份驗證,請自行修改,要保證服務端與客戶端一致
    token = abcdefgh
    
    1. 啟動 frps:
    2. ./frps -c ./frps.ini
    3. 修改 frpc.ini 文件,假設 frps 所在服務器的公網 IP 為 x.x.x.x:
    4. plain
    # frpc.ini
    [common]
    server_addr = x.x.x.x
    server_port = 7000
    # 用于身份驗證,請自行修改,要保證服務端與客戶端一致
    token = abcdefgh
    [rdp]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 3389
    remote_port = 6000
    
    1. 啟動 frpc:
    2. ./frpc -c ./frpc.ini
    3. 通過 rdp 訪問遠程的機器,地址為:
    4. x.x.x.x:6000

    開機自啟

    針對 Windows 系統,為了便于使用,可以配置一下開機的時候靜默啟動。

    1. 在 frpc.exe 的同級目錄創建一個 start_frpc.vbs:
    2. plain
    'start_frpc.vbs
    '請根據實際情況修改路徑
    CreateObject("WScript.Shell").Run """D:\Program Files\frp_windows_amd64\frpc.exe""" & "-c" & """D:\Program Files\frp_windows_amd64\frpc.ini""",0
    
    1. 復制 start_frpc.vbs 文件,打開以下目錄,注意將plain改為你的用戶名:
    C:\Users\\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
    
    1. 鼠標右擊,粘貼為快捷方式即可。

    2. 通過 SSH 訪問公司內網機器

    frps 的部署步驟同上。

    1. 啟動 frpc,配置如下:
    2. plain
    # frpc.ini
    [common]
    server_addr = x.x.x.x
    server_port = 7000
    # 用于身份驗證,請自行修改,要保證服務端與客戶端一致
    token = abcdefgh
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    
    1. 通過 SSH 訪問內網機器,假設用戶名為 test:
    2. ssh -oPort=6000 test@x.x.x.x

    3. 通過自定義域名訪問部署于內網的 Web 服務

    有時想要讓其他人通過域名訪問或者測試我們在本地搭建的 Web 服務,但是由于本地機器沒有公網 IP,無法將域名解析到本地的機器,通過 frp 就可以實現這一功能,以下示例為 http 服務,https 服務配置方法相同, vhost_http_port 替換為 vhost_https_port, type 設置為 https 即可。

    1. 修改 frps.ini 文件,設置 http 訪問端口為 8080:
    2. plain
    # frps.ini
    [common]
    bind_port = 7000
    vhost_http_port = 8080
    # 用于身份驗證,請自行修改,要保證服務端與客戶端一致
    token = abcdefgh
    
    1. 啟動 frps:
    2. ./frps -c ./frps.ini
    3. 修改 frpc.ini 文件,假設 frps 所在的服務器的 IP 為 x.x.x.x,local_port 為本地機器上 Web 服務對應的端口, 綁定自定義域名 www.yourdomain.com:
    4. plain
    # frpc.ini
    [common]
    server_addr = x.x.x.x
    server_port = 7000
    # 用于身份驗證,請自行修改,要保證服務端與客戶端一致
    token = abcdefgh
    [web]
    type = http
    local_port = 80
    custom_domains = www.yourdomain.com
    
    1. 啟動 frpc:
    2. ./frpc -c ./frpc.ini
    3. 將 www.yourdomain.com 的域名 A 記錄解析到 IP x.x.x.x,如果服務器已經有對應的域名,也可以將 CNAME 記錄解析到服務器原先的域名。
    4. 通過瀏覽器訪問 http://www.yourdomain.com:8080 即可訪問到處于內網機器上的 Web 服務。

    4. 對外提供簡單的文件訪問服務

    通過 static_file 插件可以對外提供一個簡單的基于 HTTP 的文件訪問服務。

    frps 的部署步驟同上。

    1. 啟動 frpc,啟用 static_file 插件,配置如下:
    2. plain
    # frpc.ini
    [common]
    server_addr = x.x.x.x
    server_port = 7000
    # 用于身份驗證,請自行修改,要保證服務端與客戶端一致
    token = abcdefgh
    [test_static_file]
    type = tcp
    remote_port = 6000
    plugin = static_file
    # 要對外暴露的文件目錄
    plugin_local_path = /tmp/file
    # 訪問 url 中會被去除的前綴,保留的內容即為要訪問的文件路徑
    plugin_strip_prefix = static
    plugin_http_user = abc
    plugin_http_passwd = abc
    
    1. 通過瀏覽器訪問 http://x.x.x.x:6000/static/ 來查看位于 /tmp/file 目錄下的文件,會要求輸入已設置好的用戶名和密碼。

     2.4 統計面板

    通過瀏覽器查看 frp 的狀態以及代理統計信息展示。

    注:Dashboard 尚未針對大量的 proxy 數據展示做優化,如果出現 Dashboard 訪問較慢的情況,請不要啟用此功能。

    需要在 frps.ini 中指定 dashboard 服務使用的端口,即可開啟此功能:

    plain

    [common]
    dashboard_port = 7500
    # dashboard 用戶名密碼,默認都為 admin
    dashboard_user = admin
    dashboard_pwd = admin
    

    打開瀏覽器通過 http://[server_addr]:7500 訪問 dashboard 界面,用戶名密碼默認為 admin

     2.5 加密與壓縮

    這兩個功能默認是不開啟的,需要在 frpc.ini 中通過配置來為指定的代理啟用加密與壓縮的功能,壓縮算法使用 snappy:

    plain

    # frpc.ini
    [ssh]
    type = tcp
    local_port = 22
    remote_port = 6000
    use_encryption = true
    use_compression = true
    

    如果公司內網防火墻對外網訪問進行了流量識別與屏蔽,例如禁止了 SSH 協議等,通過設置 use_encryption = true,將 frpc 與 frps 之間的通信內容加密傳輸,將會有效防止流量被攔截。

    如果傳輸的報文長度較長,通過設置 use_compression = true 對傳輸內容進行壓縮,可以有效減小 frpc 與 frps 之間的網絡流量,加快流量轉發速度,但是會額外消耗一些 CPU 資源。

     2.6 TLS

    從 v0.25.0 版本開始 frpc 和 frps 之間支持通過 TLS 協議加密傳輸。通過在 frpc.ini 的 common 中配置 tls_enable = true 來啟用此功能,安全性更高。

    為了端口復用,frp 建立 TLS 連接的第一個字節為 0x17。

    注意:啟用此功能后除 xtcp 外,不需要再設置 use_encryption。

     2.7 代理限速

    目前支持在客戶端的代理配置中設置代理級別的限速,限制單個 proxy 可以占用的帶寬。

    plain

    # frpc.ini
    [ssh]
    type = tcp
    local_port = 22
    remote_port = 6000
    bandwidth_limit = 1MB
    

    在代理配置中增加 bandwidth_limit 字段啟用此功能,目前僅支持 MB 和 KB 單位。

     2.8 范圍端口映射

    在 frpc 的配置文件中可以指定映射多個端口,目前只支持 tcp 和 udp 的類型。

    這一功能通過 range: 段落標記來實現,客戶端會解析這個標記中的配置,將其拆分成多個 proxy,每一個 proxy 以數字為后綴命名。

    例如要映射本地 6000-6005, 6007 這 6 個端口,主要配置如下:

    plain

    # frpc.ini
    [range:test_tcp]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 6000-6006,6007
    remote_port = 6000-6006,6007
    

    實際連接成功后會創建 8 個 proxy,命名為 test_tcp_0, test_tcp_1 ... test_tcp_7

    3. ew

     3.1 簡介

    EW 是一套便攜式的網絡穿透工具,具有 SOCKS v5服務架設和端口轉發兩大核心功能,可在復雜網絡環境下完成網絡穿透。但是,現在工具已經不更新了。。。

     3.2 特點

    1. 輕量級,C語言編寫
    2. 可以設置多級代理
    3. 跨平臺
    4. 但是只支持Socks5代理

     3.3 使用方法

    以下使用方法均摘自:http://rootkiter.com/EarthWorm/

    以下所有樣例,如無特殊說明代理端口均為1080,服務均為SOCKSv5代理服務.

    該工具共有 6 種命令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)。

    1. 正向 SOCKS v5 服務器

    plain

    $ ./ew -s ssocksd -l 1080
    

    2. 反彈 SOCKS v5 服務器

    這個操作具體分兩步:

    a) 先在一臺具有公網 ip 的主機A上運行以下命令:

    plain

    $ ./ew -s rcsocks -l 1080 -e 8888 
    

    b) 在目標主機B上啟動 SOCKS v5 服務 并反彈到公網主機的 8888端口

    plain

    $ ./ew -s rssocks -d 1.1.1.1 -e 8888 
    

    成功。

    3. 多級級聯

    工具中自帶的三條端口轉發指令, 它們的參數格式分別為:

    plain

    $ ./ew -s lcx_listen -l  1080   -e 8888  
    $ ./ew -s lcx_tran   -l  1080   -f 2.2.2.3 -g 9999  
    $ ./ew -s lcx_slave  -d 1.1.1.1 -e 8888    -f 2.2.2.3  -g  9999
    

    通過這些端口轉發指令可以將處于網絡深層的基于TCP的服務轉發至根前,比如 SOCKS v5。首先提供兩個“二級級聯”本地SOCKS測試樣例:

    a) lcx_tran 的用法

    plain

    $ ./ew -s ssocksd  -l 9999
    $ ./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999
    

    b) lcx_listenlcx_slave 的用法

    plain

    $ ./ew -s lcx_listen -l 1080 -e 8888
    $ ./ew -s ssocksd    -l 9999
    $ ./ew -s lcx_slave  -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
    

    再提供一個“三級級聯”的本地SOCKS測試用例以供參考

    plain

    $ ./ew -s rcsocks -l 1080 -e 8888 
    $ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999  
    $ ./ew -s lcx_listen -l 9999 -e 7777  
    $ ./ew -s rssocks -d 127.0.0.1 -e 7777
    

    數據流向: SOCKS v5 -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks

    4. ngrok

     4.1 簡介

    ngrok 是一個反向代理,通過在公共端點和本地運行的 Web 服務器之間建立一個安全的通道,實現內網主機的服務可以暴露給外網。ngrok 可捕獲和分析所有通道上的流量,便于后期分析和重放,所以ngrok可以很方便地協助服務端程序測試。

     4.2 特點

    1. 官方維護,一般較為穩定
    2. 跨平臺,閉源
    3. 有流量記錄和重發功能

     4.3 使用方法

    1. 進入ngrok官網(https://ngrok.com/),注冊ngrok賬號并下載ngrok;
    2. 根據官網給定的授權碼,運行如下授權命令;
    3. ./ngrok authtoken 1hAotxhmORtzCYvUc3BsxDBPh1H_****
    4. ./ngrok http 80即可將機器的80端口http服務暴露到公網,并且會提供一個公網域名。

    可以通過官網的UI界面查看數據包和流量等等(但是要付費==、)

    還可以通過一些命令將內網的文件和其他TCP服務 暴露到公網中。

    有授權的設置文件共享

    plain

    ngrok http -auth="user:password" file:///Users/alan/share
    

    無授權的設置文件共享

    plain

    ngrok http "file:///C:\Users\alan\Public Folder"
    

    將主機的3389的TCP端口暴露到公網

    plain

    ngrok tcp 3389
    

    更多使用方法參考:https://ngrok.com/docs

    5. 參考鏈接

    1. https://xz.aliyun.com/t/770
    2. https://segmentfault.com/a/119000002187683
    3. http://rootkiter.com/EarthWorm/
    端口轉發frp內網穿透
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    以上兩種代理方式雖均能實現穿透的目的,但是代理質量相對來說并不穩定,難以滿足滲透的需求。FRP反向代理 FRP 的 中文官方文檔 可了解其作用和用法。
    驗證子域郵箱名Invoke-DomainHarvestOWA-ExchHostname -Domain -UserList .\userName.txt -OutFile sprayed-ews-creds.txt. Office 365近源滲透物理滲透、物理攻擊、近源滲透,這幾個的意思都是在接近目標進行安全測試。Wi-Fi網線沒有終端準入控制,直接插網線 DHCP 獲取 IP。Bad USBBlack Hat 上提出 Bad USB。社會工程學在信息收集過程中就開始。釣魚本質是利用人的信任。Windows 主機FTP服務端開啟 FTP 服務。使用 certutil 下載的文件會原封不動在?目錄下保存一份,文件名位隨機字符,使用 delete 可以刪除剛下載的緩存。
    Windows如果RDP連接上去,可以使用圖形化工具(如御劍)。如果是webshell,可以使用fscan、nmap。重命名Dir,方便后續操作。將客戶端配置刪除?服務端監聽地址?服務端儀表板的端口。log_level記錄的日志級別。執行命令等待frpc連接./frps?#是該條規則在服務端開放的端口號,待會兒用proxyfier連的端口
    構建隱蔽通道,從而突破各種安全策略限制,實現對目標服務器的完美控制。
    本文以滲透的視角,總結幾種個人常用的穿透代理工具,介紹其簡單原理和使用方法。nps-npc簡介nps是一款輕量級、高性能、功能強大的穿透代理服務器。目前支持 tcp、udp 流量轉發,可支持任何tcp、udp上層協議(訪問網站、本地支付接口調試、ssh訪問、遠程桌面,dns解析等等……),此外還支持http代理、socks5代理、p2p等,并帶有功能強大的web管理端。
    nps是一款輕量級、高性能、功能強大的穿透代理服務器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問網站、本地支付接口調試、ssh訪問、遠程桌面,dns解析等等……),此外還支持http代理、socks5代理、p2p等,并帶有功能強大的web管理端。
    前言 有的時候希望把本地系統映射到公網方便跨局域網訪問,Sunny-Ngrok提供國內免費的映射服務器,可以滿足我們這個需求。
    本文以滲透的視角,總結幾種個人常用的穿透代理工具,介紹其簡單原理和使用方法。 1.1 簡介 nps是一款輕量級、高性能、功能強大的穿透代理服務器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問網站、本地支付接口調試、ssh訪問、遠程桌面,dns解析等等……),此外還支持http代理、socks5代理、p2p等,并帶有功能強大的web管理端。
    該篇章目的是重新牢固地基,加強每日訓練操作的筆記,在記錄地基筆記中會有很多跳躍性思維的操作和方式方法,大家能共同加油學到東西。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类