私はプロキシチェーン(3.1および4)を使用しています。 Squid Proxy3.1.19を実行しているVM)があります。SquidProxyを使用するようにプロキシチェーンを適切に構成しました。つまり、「http squidip squidport」です。プロキシチェーンは、1つを除くすべての条件で期待どおりに機能します。プロキシチェーンを介してプロキシ経由で外部ネットワークからブロックされているポートに接続しようとすると、「接続が拒否されました」と返されます。
この場合、VMのポート22はすべてのネットワークに開かれ、ポート80はホストにのみ開かれます。IcanWebブラウザでSquidプロキシを設定するか、Niktoなどの他のツールのプロキシオプションを使用して、ポート80に接続します。プロキシチェーンを介してトラフィックをポート22にルーティングできますが、ポート80にはルーティングできません。
問題がSquidProxyにあるとは思わないか、Webブラウザやその他のツールから内部ポートに接続できません。これは単なるプロキシチェーンです。
Proxychainsは他のすべての目的で適切に機能しており、トラフィックがSquidProxyを介して宛先に流れていることを確認しました。それでも、外部からアクセスできないポートには接続できません。
この場合に開いているポートとそれに接続する他の方法がわかったので、nmapを使用してプロキシチェーンをスキャンし、ポート80が開いていることを検出できるようにしたいと思います。
誰かが以前にこの問題を見たことがありますか?プロキシチェーンがこのように動作する原因は何でしょうか?
編集:nmap--proxies設定がプロキシチェーンのように動作することがわかりました。 HTTPプロキシを介してルーティングしますが、外部からアクセス可能なポートのみをオープンとしてリストします。 NiktoとMetasploitは問題なく内部ポートを見つけることができるので、私はまだこれで混乱しています。
自分でテストしたい人のために、これVMは https://www.vulnhub.com/entry/sickos-11,132/ で入手できますが、私は実行しました他のホストで前にこの問題に。
これに遭遇する他の誰かのために、私はそれを理解しました。 ProxychainsはCONNECTを使用して、その要求をSquidProxyに送信します。 Squid Proxyは、外部からアクセス可能なポートへの動詞の通過を許可していますが、GETやHEADなどの特定の動詞は、外部でブロックされたポートへの接続にのみ使用できます。CONNECT動詞はSquidプロキシからの「403forbidden」。アクセスしようとしているポートにリクエストが渡されることはありません。
これを回避するために、netcatを使用してプロキシ経由でHEADリクエストを送信する独自のポートスキャナーをbashで作成しています。