Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    863105079

Contributors to this blog

  • HireHackking 16114

About this blog

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

0x00はじめに

この記事は、「2024年のカレッジネットワークセキュリティ管理操作およびメンテナンス競争」の詳細なソリューションです。これは、主にWeb、PWN、RE、その他、アルゴリズムなどの多方向質問の問題解決プロセスをターゲットにしています。

0x01 Misc

サインイン

GIFを与え、オンラインで直接フレーム化します

y2nvtbjrloa1033.png

synt {fvtava-dhvm-jryy-qbar}を取得し、Caesarを見て、rot13で直接デコードします

4tt1gsjwzrp1034.png

flag {signin-quiz-well-done}

Phing Emailの認識

電子メールソフトウェアを使用して表示するか、直接表示できるEML電子メールファイルを提供しました(面倒かもしれません)

11ets415aql1035.png

フラグ1

0eufmayx2tc1036.png

直接base64フラグを取得するためのデコード{welcometo}

gr0klifywn21037.png

フラグ2

次のコンテンツは、base64によってエンコードされた情報です

xiofn4czvg31038.png

3tjnm3beara1039.png

デコード後、それをチェックしてフラグを取得します{phishhunting}

44m2eu0kih41040.png

フラグ3

EMMLファイルの残りのコンテンツにはフラグがないため、送信者のドメイン名からのみ開始できます。

cretkgyh0pp1041.png

DNS分析を確認してください、ここに360脅威インテリジェンスセンターがあります

https://ti.360.net/domain/foobar-edu-cn.com

c4tg0xf1g1t1042.png

(このインテリジェンスセンターは、競争プロセスの分析履歴を記録するため、サブドメイン情報を見るだけでフラグを取得できます)

sbxs1sq3exn1043.png

クエリプロセスはまだ正常です

サードパーティのサービスプラットフォームに加えて、ドメイン名のTXTレコードを表示するためにWindowsに付属するNSLookupを使用することもできます。

nslookup -qt=txt foobar-edu-cn.com

lxsbr25jiiw1044.png

プロンプトによると、ドメイン名の下にサブドメイン名の分析レコードを見つけ、3つの方法で完全なフラグをスプライスする必要があります

ドメイン名は海外で適用されるため、多くの国内のウェブサイトを解析できないため、外国のウェブサイトを使用してゆっくりと試すことができます

https://www.virustotal.com/gui/domain/spf.foobar-edu-cn.com/detailsspf

psi0ggt43af1045.png

https://dnsspy.io/scan/foobar-edu-cn.comdefault._domainkey

4dzy21ta4xj1046.png

https://www.misk.com/tools/#dns/_dmarc.foobar-edu-cn.com_dmarc

gzvchzmjxhz1047.png

3つの部分を個別に取得し、フラグを取得するためにそれらをスプライシングします

flag_part1={n0wy0u

flag_part2=_kn0wh0wt0_

flag_part3=analys1sdns}

flag {n0wy0u_kn0wh0wt0_analys1sdns}

実際、これらの3つのサブドメインは、それぞれ対応するサービスを提供するSPF、DKIM、DMARCなど、電子メールサーバーに対応するいくつかのプロトコルです。

https://help.aliyun.com/document_detail/2685946.html

opd3wu51dne1048.png

easyshell

PCAPトラフィックパッケージを提供すると、horseが送信された後に実行する必要があるshell.phpのリクエストを郵送に直接確認できます。

qmc1gi53gdj1049.png

HTTPストリームをフィルタリングし、上記の推測を確認してください

aa4hgur2ioj1050.png

HTTPストリームを追跡すると、投稿のコンテンツが暗号化されます。 Ice Scorpion 4.0の質問と交通特性を組み合わせて、これはIce Scorpion Horseであると推測されます。

アイスサソリフロー特性:

Accept: Application/JSON、Text/JavaScript、 */*; Q=0.01Content-Type: Application/x-www-form-urlencodedConnection: Keep-Alive…ec4rxbj3zhb1051.png

Ice Scorpion 4.0はAES暗号化を使用し、デフォルトキーはE45E329FEB5D925Bです。つまり、MD5の最初の16ビット( 'Rebeyond')です。

Ice Scorpion 3.0、デフォルトのパスワードは次のとおりです。E45E329FEB5D925B、あなたはそれをチェックすることができます:backing_decrypt/decropt.Php

最後の応答パッケージからデコードしてみてください

ここでは、CyberのAES-CBCモードIVが空になることはできないが、オフセットする必要はないので、0に入力する必要があることに注意する必要があります。

4sevmt3zewb1052.png

5letdfyj3ef1053.png

コンテンツのあるものを見つけます

odbwrq5tn3u1054.png

giskvw4zp4m1055.png

toqbwrxjwub1056.png

リクエストパッケージがリクエストしているものをご覧ください。ここで、デコードされた結果を置くと、Secret2.txtファイルを読んでいることがわかります

jgggcbpqdqt1057.png

Secret2.txt

こんにちは、しかしあなたが探しているものは私ではありません。

次に、以前の応答パッケージでキーコンテンツを見つけます

ub5qw2azl321058.png

bwq02juf3dq1059.png

ZIP圧縮パッケージで、直接保存します

5y5aokfl4pr1060.png

zipを確認してください。Secret1.txtとSecret2.txtがあり、パスワードが必要です。

11jpq51yxgt1061.png

既知のsecret2.txtのコンテンツを組み合わせて、既知のプレーンテキストを介して攻撃することができます

最初にsecret2.txtを書き、それをzipとして保存して、元の暗号化アルゴリズムと同じであることを確認してください

l0v1ijra2px1062.png

プレーンテキスト攻撃を開始します。ここに小さなトリックがあります。取得するパスワードが表示されたら停止します。 [ポップアップ]ウィンドウをクリックして、解凍します。

oqvi43yhokq1063.png

Get Flag {70854278-EA0C-462E-BC18-468C7A04A505}

jiykxq0wmbl1064.png

secretdb

タイトルはSQLite DBファイルを提供し、遅すぎるだけで、あなたのためのフラグは開かれていません。

1jmy5om2qhx1065.png

削除された情報を復元する必要があります。直接復元されるツールはありません。復元できないか、文字化けしています。手動で抽出してみてください。

参照:https://www.cnblogs.com/jiangcsu/p/6569045.html

焦点は、ユニット内の構造にあります

fkspmx0belk1066.png

010editorはsecret.dbを開き、それをフラグに見つけて表示します。赤いボックスの下の部分は、以前に削除されたデータです。

jprvvqa1tyl1067.png

上記のデータベースフラグテーブルの構造から、列がID、ソート、メッセージであることがわかります。ソートは、ソートに使用されるインデックスです。メッセージは表示されている文字を保存するため、上記の図の可視文字、つまりメッセージ、および以前の数字がソートであることを単純に観察できます。たとえば、可視文字9の16進数は39であり、以前の数字は0Eであるため、インデックス0Eの値は9です。

sab01qcmfnv1068.png

したがって、残りの値を抽出します

0x17-

0x0 f

0xe 9

0x1b 7

0x10 3

0xa b

0x19 2

0x14 b

0xf 2

0x12-

0x23 4

0x16 6

0x1f a

0x25 8

0x2a

0x1e

0x5 f

0x3 g

0x11 c

0xc 0

0x4 {

0x22a

0x21 b

0x7 2

0x1d f

0x26 f

0x1c-

0x9 1

0x27 0

0xd-

0xb

0x8 9

0x1 l

0x13 4

0x29}

0x15 a

0x28 b

0x6 6

0x1a d

0x24 e

0x20 b

スクリプトを書き、それをソートし、フラグを出力します

f:としてopen( '1.txt'、 'r')

data=f.readlines()

out=['' for iの範囲(43)]

data:のiの場合

index、val=i.replace( '\ n'、 '').split( '')

index=int(index、16)

out [index]=val

flag=''

インデックス=0

out:のiの場合

print(hex(index)、i)

インデックス +=1

フラグ +=i

印刷(フラグ)

#flag {f6291bf0-923c-4ba6- 2d7-ffabba4e8f0b}

1つが欠けていて、それを爆破して旗を取得します{f6291bf0-923c-4ba6-82d7-ffabba4e8f0b}

ゲートウェイ

ゲートウェイソースコードを与え、index.htmlには製品名HS8145Vがあります

ydfgyvxszkv1069.png

クエリパスワード、cgi-bin/baseinfoset.jsonに一連のパスワードがあります

1jwtitpqyul1070.png

10611210110712710110449575653565456495151105561031064956505610310256521011041041021055310153102129

CGI-BIN/BASEINFOSET.JSONを検索します

https://github.com/iheshime/chinatelecom-esurfing-gateway-hg260-admin-password-algorithm

ゲートウェイ管理者の一般的な暗号化アルゴリズムであり、スクリプトがわずかに変更されたことがわかりました。

exp.py:

def passwd_decode(code) - str:

passwd_list=map(int、code.split( ''))

結果=[]

passwd_list:のiの場合

97=i=100または65=i=68:の場合

I +=22

Elif I 57:

i - =4

result.append(chr(i))

#print(i、chr(i))

return( '' .join(result))

passwd=passwd_decode( '10611210110712710110449575653565456495151105561031064956505610310256521011041021055310153102129')

印刷(passwd)

#flag {AD1985868133E8CF1828CB84ADBE5A5B}またはcode='106112101107127101104957565356545649515110556103103106495650561031025652101101021055310153102129' [:-1] 'baseinfoset_telecompassword':'1147355110693753113'list=map(int、code.split(' '))result=[] for for i in list: i- 57: i-=4 result.append(ch)プリント( '' .join(result))#flag {ad1985868133e8cf1828cb84adbe5a5b}

zip

#include arpa/inet.h

#include sys/wait.h

#include stdbool.h

#include stdlib.h

#include string.h

#include unistd.h

#include stdio.h

#include pty.h

Char Token [1024]、buf [1024];

void load(){

file *f=fopen( 'token.txt'、 'r');

fgets(token、sizeof(token)、f);

トークン[64]=0; //たぶん64バイトで十分です

fclose(f);

}

int cmmpstr(char const *a、char const *b){

MEMCMPを返します(a、b、strlen(a));

}

void zip(char *password){

intマスター、pid;

pid=forkpty(master、null、null、null);

if(pid==0){

char* argv []={'7z'、 'a'、 'flag.zip'、 'tmp/flag.txt'、 '-mem=aes256'、 '-p'、null};

execve( '/usr/bin/7z'、argv、null);

} それ以外{

CHARバッファー[4097];

while(true){

ssize_t n=read(master、buffer、4096);

if(n 0)break;

ffflush(stdout);

書き込み(1、バッファ、n);

バッファー[n]=0;