Honeypotter-on-the-GCP-1

# 概要

### Von Voyage !

ハニーポットは初心者です。
I am a beginner honeypotter on GCP.

セキュリティをやっている人間としてハニーポットは興味があったので、WowHoneypotをGCPで建ててみました。
I usually work as security sales engineer, I have been interested in honeypot, so this time I built a WOWhoneypot on GCP.

# 資料 / Document
Wowhoneypotについては、以下の書籍で解説されています。超おススメな本です！
You can see about WOWhoneypot below . I strongly recommend this book !
https://www.amazon.co.jp/dp/B07GJ5R2QM/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

# 取れ高（国別） / Results per nations 
５日くらい建てていて、取れ高としてはこんな感じでした。トータルで66アクセス。多いのか少ないのか。。。
Results is below in 5 days. Total 66 access.

しかし、実際にアクセスがあると、世の中の風を感じるようでちょっと面白いです。CNとUSの2トップですね。
US and China is the most !

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/6cd95351-f047-78d1-dc77-d3e7e901b784.png)

なお今回試したのはTWリージョンに建てたVMを使っています。1日数十円くらい。。。この程度のコストでこれだけできるのは素晴らしいですね。
This time , I build a VM on Taiwan region. and it costs a dozn of yen per a day.
I think this is great that we can do that with such a small cost !

# 仕組み / system
Infrastracture：Google Cloud Platform（GCP） / Google Compute Engine(GCE) / Debian OS
Honeypot：WowHoneypot
API to get geolocation info：ipstack ( https://ipstack.com/ )


## Infrastracture：Google Cloud Platform（GCP）
GCP上にLinuxのVMを建てて、そこにWohHoneypotをインストールします。
I build a Linux VM on GCP, and installed WOWHoneypot on it.

GCEで、リソースの指定はほぼデフォルトのままでVMを建てます。
When building a VM, almost all of settings are default settings.

ファイアウォールの設定で、http/httpsは許可しておきました。
And allowed http/https connection on Firewall settings.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/7da10239-65fc-50e3-828e-0ae108c8c0cc.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/66828e97-ef3b-a7eb-d611-5eb259e4d277.png)

## Honeypot：WowHoneypot
作ったLinux（Debian）にsshでアクセスし、上記の本の通りにHoneypotを設定します。

コマンドとしては、以下の通りです。
# root ユーザで
apt update
apt upgrade


apt install ufw
apt install git


iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

ufw default DENY
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 8080/tcp
ufw allow 443/tcp
ufw enable


$ 一般ユーザで
git clone https://github.com/morihisa/WOWHoneypot.git wowhoneypot
cd ./wowhoneypot
python3 ./wowhoneypot.py &

（今回はデフォルトの設定のままでWEBサーバを起動します。）


しばらくすると、access_logに色々とアクセスされていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/b9b33775-bedb-6ba7-3b98-82e86de6a603.png)

## ロケーション情報：ipstack ( https://ipstack.com/ )
IPアドレスは分かるんですが、それがどこなのか、を知りたいと思ったので、
上記サイトで無料サインアップし、IPアドレスからロケーション情報を取得するAPIを利用します。

APIを、ハニーポットで得られたIPアドレスを含めてcurlで叩くと以下のような結果が得られます。

curl http://api.ipstack.com/194.32.117.3?access_key=[APIキー] 
{"ip":"194.32.117.3","type":"ipv4","continent_code":"EU","continent_name":"Europe","country_code":"EE","country_name":"Estonia","region_code":null,"region_name":null,"city":null,"zip":null,"l
atitude":59,"longitude":26,"location":{"geoname_id":null,"capital":"Tallinn","languages":[{"code":"et","name":"Estonian","native":"Eesti"}],"country_flag":"http:\/\/assets.ipstack.com\/flags\
/ee.svg","country_flag_emoji":"\ud83c\uddea\ud83c\uddea","country_flag_emoji_unicode":"U+1F1EA U+1F1EA","calling_code":"372","is_eu":true}}



それをシェルにしたのが以下のものです。
IPアドレスを元に、大陸名、国名、都市名、を表示したいと思います。

for ip in `cat access_log | awk '{print $3 }' `
do
curl -s http://api.ipstack.com/$ip?access_key=[ipstack登録時に取得したキー] |sed "s/ /_/g" |sed "s/,/ /g" | awk {'print \$4,\$6,\$9'} 
done

画像だと以下です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/731ced5b-5eca-c874-5a49-2ca530503936.png)

バッククォートで、cat から'{print $3 }'　までを囲っています。
Qiita上ではそのままだと文字が灰色になるだけなので、画像でも貼っておきました。


で、上記シェルを実施すると以下のようになります。（一部抜粋）
"continent_name":"North_America" "country_name":"United_States" "city":null
"continent_name":"Europe" "country_name":"Ukraine" "city":"Dnipro"
"continent_name":"North_America" "country_name":"United_States" "city":"Brea"
"continent_name":"Asia" "country_name":"Bangladesh" "city":null
"continent_name":"South_America" "country_name":"Brazil" "city":"Palhoca"
"continent_name":"South_America" "country_name":"Brazil" "city":"Ariquemes"
"continent_name":"Asia" "country_name":"Indonesia" "city":"Cilangkap"
"continent_name":"North_America" "country_name":"United_States" "city":"San_Diego"
"continent_name":"Europe" "country_name":"Estonia" "city":null
"continent_name":"Europe" "country_name":"Netherlands" "city":"Amsterdam"
"continent_name":"South_America" "country_name":"Ecuador" "city":"Guayaquil"
"continent_name":"North_America" "country_name":"United_States" "city":"San_Diego"
"continent_name":"Asia" "country_name":"Nepal" "city":null
"continent_name":"Europe" "country_name":"Norway" "city":null
"continent_name":"Africa" "country_name":"Seychelles" "city":"Anse_aux_Pins"
"continent_name":"South_America" "country_name":"Brazil" "city":"Assis"
"continent_name":"Europe" "country_name":"Spain" "city":"Polinya_de_Xuquer"
"continent_name":"North_America" "country_name":"Mexico" "city":"Mexico_City"
"continent_name":"Asia" "country_name":"Japan" "city":"Heiwajima"
"continent_name":"North_America" "country_name":"United_States" "city":"Los_Angeles"
"continent_name":"South_America" "country_name":"Brazil" "city":"Santa_Ines"
"continent_name":"Asia" "country_name":"Japan" "city":"Tokyo"
"continent_name":"Asia" "country_name":"China" "city":"Hangzhou"
"continent_name":"Asia" "country_name":"China" "city":"Guiyang"

上記結果を国別に表計算ソフトでまとめたのが、冒頭に挙げたグラフです。（以下再掲）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/26548ed1-0074-21b3-bb8a-c10ec8c05b56.png)

改めて見ると、結構いろんな国からアクセスしてきていますね。

日本からのは平和島からだったりしていますね。あと、ネパールとかからも来てますね。

とりあえず今回はこんなところで。ではまた。

### I wish you Von Voyage !