twintについて使ってみる

Twint について使ってみる(初級編) 何をするにも現代人はすぐにTwintterに情報を投稿する。 それはそれで良いのだが、ごくまれにどのような情報を投稿しているか・フォロー/フォロワーは・たくさんRTしている人は誰かなんとなく調べたくなってしまう時がある。 Twitterに連絡してのAPI利用許可を貰えばいいだろうと思うが、昔と違い今はAPI申請も難しくなっている(ぶっちゃけ面倒) そんなわけでどうにかしてAPIを使わずにTwitterの情報を集めるツールがないか探したところTwintに出会った。 特定のユーザーからツイートを収集したり、特定のトピック、ハッシュタグやトレンドに関連するツイートを収集することができる(ツイート取得3,200件の壁はあるものの) しかもプロキシ使い放題とは流石だ(未検証) そんなわけで今回はTwintを利用するところまでを紹介する。 インストール GitHubに書かれている内容そのままで簡単にインストールできる。 pipでインストール pip3 install twint 使ってみる 対象ユーザの最近のツイートとフォロワーをcsvファイルにしてみる。 今回は私のスクリーンネームFAMASoonで検索してみる。 import twint def get_followers(username): c = twint.Config() c.Username = username c.Profile_full = True c.Store_csv = True c.Output = "recent_followers.csv" twint.run.Followers(c) def get_recent_tweets(username): c = twint.Config() c.Username = username c.Store_csv = True c.Output = "recent_tweets.csv" twint.run.Search(c) def main(): # ここに任意のスクリーンネームを入力 user_name = "FAMASoon" get_recent_tweets(user_name) get_followers(user_name) if __name__ == "__main__": main() recent_followers.csvやrecent_tweets.csvという名前でフォロワーやツイートがリストアップされているだろう。 所感 結構簡単に使えた。 特定ユーザの動向をヲチするときとかに使えそう。

<span title='2020-05-17 00:00:00 +0000 UTC'>May 17, 2020</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;71 words&nbsp;·&nbsp;FAMASoon

How to use crashwalk

How to use crashwalk crashwalk can check to quickly determine which crashes may lead to exploitable or not. Install Install gdb and golang by apt Download exploitable.py Install crashwalk $ sudo apt install gdb golang $ mkdir ~/src $ cd ~/src $ git clone https://github.com/jfoote/exploitable $ go get -u github.com/bnagy/crashwalk/cmd/... Usage crashwalk can be used immediately if there is a path of AFL crash outputs. For example, I will show using crashwalk on ....

<span title='2020-04-02 00:00:00 +0000 UTC'>April 2, 2020</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;139 words&nbsp;·&nbsp;FAMASoon

Jupyter Notebook の導入

Jupyter Notebook の導入 はじめに Mac を買ったので新しく環境構築しました。 その際に行った作業のメモです。 Jupyter Notebook とは Python の対話的な実行環境のこと。 コードの共有や結果の可視化が楽にできます。 Markdownでメモを添えることもできます、便利ですね。 実はPython 以外も扱えます。 詳細は公式を見てください。 インストール Jupyter Notebook pip3 install jupyter で簡単にインストールできます。 Jupyter extension これだけでも便利ですが、さらに便利にできる拡張機能群があるのでインストールします。 ソースコードはここ pip3 install jupyter_contrib_nbextensions jupyter contrib nbextension install --user これで拡張機能が使えるようになりました。 http://localhost:8888/nbextensions で拡張機能を選択できるようになっています。 ちなみに自分はVimのキーバインドを使うために"Select CodeMirror Keymap"を、コードの展開とかを良い感じにやってくれる"Codefolding"と"Codefolding in Editor"を使っています。 jupyter-themes 少し暗めの色が好きなのでテーマカラーを変更できる jupyter-themes をインストールしてみます。 pip3 install jupyterthemes jt -t oceans16 -T -N これでテーマを変更することができました。 今回はoceans16を選択したが他にもテーマはあります。 下記コマンドで使用可能なテーマがリストとして出力されます。 jt -l お好みのテーマを選んでみてください。 おわりに Jupyter Notebook の環境構築をやってみました。 本当に便利なので使う人増えて欲しいですね。 何か良い拡張機能を知っている方は良ければ教えてください。

<span title='2020-03-26 00:00:00 +0000 UTC'>March 26, 2020</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;68 words&nbsp;·&nbsp;FAMASoon

Malware Analysis links

I published a collection of links related to malware analysis. Please use it. Best Regards :) Links Tracker Haruko MalwareBazaar CyberCrime Tracker VXvault AZORult Tracker CCAM CyberCrime Tracker ATM CyberCrime Tracker Feodo Tracker URLhaus viriback RAT Tracker C2 Panel Tracker INQUEST LABS Source MALWARE-TRAFFIC-ANALYSIS.NET Twitter IoC Sandbox/Analyzer manalyzer VirusTotal Any.Run RE techniques THISISSECURITY XyliBox Fumik0_’s box MalwareTech Malware don’t need coffee nao_sec ZEROPHAGE SentinelLABS blog 0ffset MalwareLab.pl Research Notes Malware Reversing Encyclopedia malpedia ATT&CK Report APT_REPORT CyberThreatIntel Community OTX VirusBay kernelmode....

<span title='2020-03-26 00:00:00 +0000 UTC'>March 26, 2020</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;87 words&nbsp;·&nbsp;FAMASoon

OpenFaas で function を自作する

OpenFaas で function を自作する OpenFaas で function を実装してデプロイしてみる。 OpenFaas のセットアップについてはこちら function をビルドする 下記コマンドで function の実装ができる $ faas-cli new --lang <実装したい言語> <functionの名前> 今回は入力されたドメインの whois 情報を出力する function を Golang で実装してみる。 faas-cli で function を作成すると諸々の設定ファイルや function を実装するためのファイルが生成される。 $ faas-cli new --lang go whois $ ls template whois whois.yml ファイルの中身を確認する whois.yml ファイルには実装する function に関する設定が書かれている。 provider: name: faas gateway: http://127.0.0.1:8080 functions: whois: lang: go handler: ./whois image: whois:latest whois/handler.go ファイルには function の処理が書かれている。 package function import ( "fmt" ) // Handle a serverless request func Handle(req []byte) string { return fmt....

<span title='2020-03-26 00:00:00 +0000 UTC'>March 26, 2020</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;210 words&nbsp;·&nbsp;FAMASoon

OpenFaas をセットアップして function を呼び出す

OpenFaas をセットアップして function を呼び出す AWS lambda を何となく触ってみて、ベンダロックインしない形で同じような機能を実現できないかなと思って色々と調べているとOpenFaasというOSSを見つけた。 AWS lambda とAPI Gatewayをまとめた感じの処理をdockerを使って実現するプロジェクトのようだ。 試しに触ってみたのでその記録を書く。 OpenFaas とは Serverless な処理を Docker や Kubernetes で実装するためのフレームワーク。 公式で日本語化されたチュートリアルがある link OpenFaas のセットアップ 必要なソフトは下記の通り Docker まずは OpenFaas を動かすための swarm をセットアップ $ docker swarm init openfaas-cli のインストール 次に OpenFaas を動かすためのCLIコマンドをインストールする。 ここでインストールするfaas-cliを使用すればCLIからfunctionの新規作成、ビルド、デプロイ等の操作ができるようになる。 mac環境なら以下のコマンドでインストール $ brew install faas-cli Linux とかの環境なら下記のコマンドでインストール $ curl -sL cli.openfaas.com | sudo sh インストールされたか確認 $ faas-cli version OpenFaasのデプロイ GitHub から最新版の OpenFaas をダウンロードして Docker swarm で起動させる。 $ git clone https://github....

<span title='2020-03-26 00:00:00 +0000 UTC'>March 26, 2020</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;148 words&nbsp;·&nbsp;FAMASoon

retdecでHello, worldをデコンパイルする

retdec とは retdec とはセキュリティ企業のavast社が公開しているデコンパイラです。 詳細はavast社のブログを参照(アバストが自社のマシンコード逆コンパイラをオープンソース化) ちゃんとデコンパイルするのか気になったのでインストールから"Hello, world"をデコンパイルする所まで書きます。 実行環境 当記事は下記環境で実行した結果を書いています。 $ uname -a Linux ubuntu 4.15.0-36-generic #39~16.04.1-Ubuntu SMP Tue Sep 25 08:59:23 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux $ gcc --version gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609 $ docker -v Docker version 18.06.1-ce, build e68fc7a retdec をインストール dockerを使用してビルドする。 ビルドが終わるまでそこそこ時間がかかるのでコーヒーでも飲んで待っていましょう。 $ git clone https://github.com/avast-tl/retdec $ cd retdec $ docker build -t retdec . デコンパイルしてみる ビルドが終わったらデコンパイルできるか試してみます。 まずはサンプルとして"Hello, world"を書きます。 #include <stdio.h> int main(int argc, char *argv[]){ printf("Hello, world\n"); return 0; } 次にこのコードをコンパイルします。 一点、注意が必要でretdecはx86-64のコードには対応していません。 なので今回はx86でコンパイルします。...

<span title='2020-03-26 00:00:00 +0000 UTC'>March 26, 2020</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;196 words&nbsp;·&nbsp;FAMASoon

Serverless Framework でHello world

概要 Serverless Framework とはサーバレスなアプリケーションを作成、デプロイが簡単にできるツール。 AWS Lambda や Google Cloud Functions といったFaasの実装や、API Gateway の構成変更が容易にできる。 今回はAPI Gateway経由でAWS Lambdaを呼び出してみる。 環境構築 インストール まずは Serverless Frameworkをインストール。 $ npm install serverless -g インストールが完了したらデプロイする際に必要なAWSのユーザ情報を作成する。 IAMユーザの作成・登録 Serverless Framework をAWSで利用するには色々と権限を付与したユーザを用意する必要がある。 公式でセットアップ手順が記載されているのでその通りにユーザを作成する。 AWSのIAM管理コンソールを開く “ユーザを追加"をクリックする 適当にユーザ名を入力する。ここでは"serverless-agent"とする。 “プログラムによるアクセス"にチェックボックスを入れ"次のステップ"をクリック “既存のポリシーを直接アタッチ"から"ポリシーの作成を選択” JSONをクリックし公式で案内しているgistから内容をコピペして上書き ポリシーの確認をクリック 適当にポリシー名を入力する。ここでは"serverless-agent-policy"とする。入力したらポリシーの作成をクリック。 ポリシーが作成されたらユーザを追加の画面に戻ってポリシーをリロード ポリシーから"serverless-agent-policy"を選択して"次のステップ"をクリック 次のステップ: 確認をクリック ユーザの作成をクリック ユーザの作成が成功したらアクセスキーIDとシークレットアクセスキーが表示されるので下記コマンドで Serverless Framework にユーザ情報を登録する。 $ serverless config credentials --provider aws --key <アクセスキーID> --secret <シークレットアクセスキー> これで Serverless Frameworkからサーバレスアプリケーションをデプロイするための準備ができた。 アプリケーションの作成 今回はPython 3.7 でアプリケーション(といっても中身はHello world)を作る。 Serverless Framework はslsという短いコマンドから操作できるので、これを用いてアプリケーションを実装していく。...

<span title='2020-03-26 00:00:00 +0000 UTC'>March 26, 2020</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;235 words&nbsp;·&nbsp;FAMASoon

Vuepress で生成したWebサイトを Now にデプロイしてみる

Vuepress とは Vuepress とは Vue で作られた静的サイトジェネレータのこと。 静的サイトジェネレータといえば有名どころは jekyll Hugo などが挙げられる。 Vueで静的にサイトを作るのなら Nuxt.js でも良さそうにも思えるが、Vuepressは技術文書を静的に管理することに焦点を当て作成している。 why-not Vuepress インストール 下記コマンドでインストールできる。 $ npm install -g vuepress Vuepress を使ってみる Vuepress はREADME.mdを起点にサイトを生成するようになっている。 実際にどのように動作するか下記のREADME.mdを作成して確認する。 # h1 ## h2 ### h3 #### h4 ##### h5 Headers ## List * Item 1 * Item 2 * Item 3 + Item 3-1 + Item 3-2 ## Link [Vuepress](https://vuepress.vuejs.org) README.mdのあるディレクトリで下記コマンドで動作を確認できる。 $ vuepress dev HTMLファイル等を生成するには下記コマンドを入力する。 $ vuepress build Now とは Nowとは簡単にWebアプリをデプロイできるサービスのこと。 CLIからコマンド一回でデプロイすることができる。 今回作成したサイトをさくっと公開するために使ってみる。 このデプロイの仕方はNow公式でも書かれている。 nowコマンドの使い方...

<span title='2020-03-26 00:00:00 +0000 UTC'>March 26, 2020</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;143 words&nbsp;·&nbsp;FAMASoon

x64の関数呼び出し

概要 関数呼び出しの解説でよくあるx86プログラムみたいな動きをx64でやってみる 環境 $ uname -a Linux ubuntu-xenial 4.4.0-97-generic #120-Ubuntu SMP Tue Sep 19 17:28:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.3 LTS Release: 16.04 Codename: xenial $ gcc --version gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609 x86でコンパイル まずはx86でのスタックの動きを書く。 まずは下のコードを"stack_test.c"として保存する。 void test_func(int a, int b, int c, int d){ int x, y, z; x = a + b; y = c + d; z = x + y; } int main(void){ test_func(1, 2, 3, 4); return 0; } これをコンパイルして"x86"というファイルで保存し、ディスアセンブルする。...

<span title='2020-03-26 00:00:00 +0000 UTC'>March 26, 2020</span>&nbsp;·&nbsp;6 min&nbsp;·&nbsp;1072 words&nbsp;·&nbsp;FAMASoon