短縮 URL 狩り

短縮 URL のブルートフォースが公開されています。 秘密の URL が一狩りされてしまうかもしれないのでお気をつけを。。そんなお話をします。

はじめに

サイバーディフェンス研究所 アドベントカレンダー 2022 の 14 日目(10 記事目)です。

大掃除なシーズンですね🧹。ということで社内で共有した雑メモを整理していたら shortened url hunting と題したちょっとおもしろいメモを発掘したので公開してみたいと思います。

2021年3月頃に書いたもので、少し古い内容を含んでいたり、今とは変わっているところもあるかもしれません。 また当時けしからんドメインを調査していたので本稿では黒塗りとさせて頂きました。

前置きはそこそこに、、

ひと狩りいこうぜ!

shortened url hunting

短縮 URL をブルートフォースしたコレクションが公開されている。 機密情報の漏洩検出を試みる。 ペンテストなどへの活用を検討する。

References


【ブログ注記】本稿のメモでは特に触れられてないのですが、最初の https://wiki.archiveteam.org/index.php/URLTeam は必見です。 短縮 URL アーカイブのすべてが記されているといっても過言ではありません。

urlhunter

https://github.com/utkusen/urlhunter

たぶんこのアプローチのパイオニア的存在? コマンド1つでアーカイブのダウンロード、解凍、検索と一見便利だが真面目に使い始めると厳しいものがある。

  • ダウンロードに時間がかかる
  • 解凍に時間がかかる
  • 同じ日付で複数アーカイブが存在する場合(このケースはかなり多い)、最初の1つしか対象にならない
  • 検索もコマンドでやってしまったほうが効率的
  • 内部のロジック的に何度も重複作業をやってしまい効率が悪い

【ブログ注記】悪口ばかり言っているように見えますが、いろいろな気付きを与えてくれたツールでしっかり敬意を持ってます。。 現在もマージリクエストベースでメンテナンスは続いているようですが、状況は大きく変わっていないように見えます。

shorteners.grayhatwarfare

https://shorteners.grayhatwarfare.com/

たぶん出来たてホヤホヤ。

  • 無料の範囲で見れるデータに制限があるが、かなり少ない印象
    • 宣伝ブログでは期限切れドメイン、404返す URL など削除と謳っている
    • アクセス出来なくても URL から漏洩する情報は狙いたいので削除しないでほしい
  • 宣伝ブログにアーカイブの全データ保存にストレージが 500GB 必要と書いてあったが何の数字かわからない
    • torrent 全て落とした状態で 400GB 弱
      • 2014以前のデータを入れてなかった
      • 入れたら450GB程度だと思うので多分このサイズ(解凍前全データ)のことを言ってる気がする
    • 全解凍は出来てないが解凍後の状態だと 2TB 弱必要そう
      • 解凍後は1.6TB程度になった
  • いまいち信用出来なくて、このサービスに課金するよりストレージ買いたい気持ちになった

【ブログ注記】また悪口ばかり言っているように見えますが、頑張って作ってると思います、自力でこれをやるのはなかなか大変です。 2022年12月現在、出来たてホヤホヤではないです。 ちゃんとデータをアップデートしながらサービス継続しているようです。 宣伝ブログと言っているのは https://grayhatwarfare.medium.com/how-to-search-urls-exposed-by-shortener-services-f68e199cd560 です。 これ以降でサービスの説明をしたものは見当たらなかったので、サービスの性質は大きく変わってないと思われます。

DIY する

アーカイブのリストを取得。 specはswagger

https://archive.org/services/search/v1/scrape?debug=false&xvar=production&total_only=false&count=10000&fields=identifier%2Citem_size&q=Urlteam%20Release

{
  "items": [
    {
      "identifier": "URLTeamTorrentRelease2013July",
      "item_size": 79749135271
    },
    {
      "identifier": "UrlteamWebCrawls",
      "item_size": 3068235545
    },
    {
      "identifier": "urlteam_2014-11-06-20-33-23",
      "item_size": 67894663
    },
    {
      "identifier": "urlteam_2014-11-06-22-09-43",
      "item_size": 53847111
    },
    {
      "identifier": "urlteam_2014-11-06-23-10-12",
      "item_size": 37426337
    },
    
...

torrent ファイルのダウンロード。 わざわざダウンロードしなくてもいい。

jq -r '.items[].identifier' list | fgrep urlteam_ | while read d; do wget "https://archive.org/download/${d}/${d}_archive.torrent"; done

BitTorrent daemon 起動。 オフィスでやる時はイタズラされないようにもうちょいセキュアにしたほうがいい。

transmission-daemon -w .

torrent ファイルを追加してダウンロード開始。 なんとなくまとめてはやらなかった。

\ls urlteam_2014-*_archive.torrent | while read t; do transmission-remote -a "$t"; done

解凍。パラレらない方が早かったりするかもしれない。

find . -type f -name \*.zip | xargs -P 8 -Ifile bash -c 'unzip -o -d $(dirname file) file; rm file'
find . -type f -name \*.txt.xz | xargs -P 8 -Ifile xz --decompress file

ここでストレージ不足したため 5TB の HDD を借用。 全期間(2014-11-06 - 2021-03-12)データは解凍後で約 1.6TB だった。

ターゲットのドメインやIPアドレスを target.lst へ書いて grep。 目茶苦茶時間かかるので DB 化するなどしたいところ。

fgrep -f target.lst -riah archives | tee target_url_tmp.log
cat target_url_tmp.log | cut -d\| -f2- | sort -u > target_url.log

今は見れなくなっている URL も多く見つかるが、intra の URL やユーザー情報が漏洩していたり明らかに脆弱な URL(パラメーターに SQL 文)など見つかった。 Basic 認証情報が入ってることもある。

2014以前のデータはtorrentで落とせなかったりデータ構造が違ったりでまだ手を出してない。

  • URLTeamTorrentRelease2013July
  • UrlteamWebCrawls

【ブログ注記】今だと fgrep は grep -F ですね。 コマンドがよくわからない時はシェル芸関連記事もどうぞ!

examples

cyberdefense.jp

大方の予想通り、おもしろいものは無い。

http://cyberdefense.jp/ift.html
http://io.cyberdefense.jp/archive/category/Development
http://io.cyberdefense.jp/entry/2016/05/12/%E3%82%B9%E3%83%9E%E3%83%9B%E3%81%B8%E3%81%AEBurp%E3%81%AE%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
http://io.cyberdefense.jp/entry/2016/05/13/Burp_Extension%E9%96%8B%E7%99%BA_-_MessagePack
http://io.cyberdefense.jp/entry/2016/06/22/Docker%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%80%81Apache_Struts2%E3%81%AE%E8%84%86%E5%BC%B1%E6%80%A7S2-037%E3%81%AE%E3%82%84%E3%82%89%E3%82%8C%E7%92%B0%E5%A2%83%E3%82%92%E6%89%8B%E8%BB%BD%E3%81%AB%E4%BD%9C
http://io.cyberdefense.jp/entry/2016/06/28/%E7%B5%84%E8%BE%BC%E6%A9%9F%E5%99%A8%E3%81%AE%E8%A8%BA%E6%96%AD%E3%83%BB%E7%B7%B4%E7%BF%92%E9%A2%A8%E6%99%AF%EF%BC%88%E8%B6%B3%E4%B8%8A%E3%81%92%E7%B7%A8%EF%BC%89
http://io.cyberdefense.jp/entry/2016/09/23/Burp_Extension_JSON_Pretty%E3%81%AE%E5%85%AC%E9%96%8B
http://io.cyberdefense.jp/entry/2016/12/21/%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E8%A8%BA%E6%96%AD%E3%81%AE%E5%86%85%E8%A3%BD%E5%8C%96%E3%81%AB%E5%90%91%E3%81%91%E3%81%A6_%E7%AC%AC%E4%B8%80%E5%9B%9E%E3%80%9CWeb%E3%82%A2%E3%83%97
http://io.cyberdefense.jp/entry/2017/02/09/twitter%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%82%92C2%E3%82%B5%E3%83%BC%E3%83%90%E4%BB%A3%E3%82%8F%E3%82%8A%E3%81%AB%E3%81%99%E3%82%8BAndroid%E3%83%9E%E3%83%AB%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE
http://io.cyberdefense.jp/entry/2017/06/12/Server-Side_Template_Injection
http://michellekelly.men/track/ins/freshbase?IN_link=cyberdefense.jp#01qMwZz6wX
http://michellekelly.men/track/ins/freshbase?IN_link=cyberdefense.jp#Xes9wnQ1Sw
http://michellekelly.men/track/ins/freshbase?IN_link=cyberdefense.jp#tAYhPv8ASP
http://www.cyberdefense.jp/company_profile/index.html
http://www.cyberdefense.jp/company_profile/prerelse10001.html
http://www.cyberdefense.jp/company_profile/prerelse10005.html
http://www.cyberdefense.jp/en/seminar/exploit/
http://www.cyberdefense.jp/product/oxygenforensic.html
http://www.cyberdefense.jp/seminar/hack/webapp.html
http://www.cyberdefense.jp/seminar/security/network.html
http://www.cyberdefense.jp/service_consulting/
http://www.cyberdefense.jp/service_seminar/seminar.html
http://www.cyberdefense.jp/service_seminar/seminar02.html
http://www.cyberdefense.jp/service_seminar/seminar09.html
http://www.google.com/url?sa=X&q=https://www.cyberdefense.jp/seminar/hack/network.html&ct=ga&cad=CAcQARgBIAEoATAAOABA3tWe7QRIAlgAYgVqYS1KUA&cd=DqJ6ONYhu4Y&usg=AFQjCNEh2v-IvHLUJjJljOS8kXMiezPRMQ&utm_source=twitterfeed&utm_medium=twitter
https://io.cyberdefense.jp/entry/2018/06/29/Midnight_Sun_CTF_2018_Finals%E5%8F%82%E5%8A%A0%E8%A8%98
https://io.cyberdefense.jp/entry/2018/10/10/Voltage_Fault_Injection_%E3%82%92%E3%82%84%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F
https://io.cyberdefense.jp/entry/2018_11_novelty_usb_storage
https://www.cyberdefense.jp/news/notice/post-18.html
https://www.cyberdefense.jp/seminar/malware/
https://www.cyberdefense.jp/wanted/

██.██

大方の予想通り、多すぎて見きれない。80万件ほどヒットする。

認証情報漏洩ぽいの(http://user:password@fqdn/ 形式のURL)。

http://████-██████@███.██.██/
http://█████████-█████████@███.██.██/
http://████-█████@████-███.██.██/
http://███████.██████@████.██.██/
http://██████@███.███.██.██/
http://███-████@████.████.███.██.██/
http://██████@████.██.██/
http://█████-█████████-██-███-██@████.██.██/
http://███@██.████.██.██/
http://██████-████@███.██.██/

intra ぽいの

http://intra.███.████.██████.██.██
http://intra.████.██.██
http://intra.█████.██.██
http://intra.███.██.██
http://intra.████.█████.██.██
http://intra.████.██.██
http://intra.████.██.██
http://intra2.████.██.██
http://intra3.████.██.██
http://intrasearch.█████-██.████.██.██
http://██-█████-intra.█████.████.██.██
http://█████████-intra.█████-██.████.██.██
http://www.intra.████.████.██.██
https://apis.intra-bs.████.██.██:5008
https://apis.intra-bs.████.██.██:5808
https://████.intra-bs.████.██.██
https://████.intra-bs.████.██.██:7004
https://cybozu.intra-bs.████.██.██
https://intra.█████.██.██
https://kaikei.intra-bs.████.██.██
https://portal.intra-bs.████.██.██
https://portal.intra.███.██.██
https://sso.intra-bs.████.██.██
https://web.intra-bs.████.██.██

メールアドレスぽいの

$████████.██████████@████.██.██
██.████@███.██████.███.██.██
███████+█████████@█████.██.██
████.█████████@████.██.██
█████████████████@█.██████.██.██
███.█████-███@████.██.██
███████████████@███.██.██
█████████.█████@████.██.██
██████████████@███.██.██
████████████████@█████.██.██
...

【ブログ注記】メールアドレスぽいのは量が多かったのですが、どうせ黒塗りなのでということでカットしました。 あとは実践あれ、ということでご容赦ください。。

DB化を検討する

データが巨大過ぎて素直にDB化は厳しく、リソースにものを言わせるしか無さそう。 特定のドメインが結構な割合をしめていたり、URL以外のデータが登録されていたりで適当にフィルタするのもよさそう。

ドメイン毎に件数をカウントし、TOP 30

hostname count
summify.com 295319260
foursquare.com 266742081
0rz.tw 259685573
feedproxy.google.com 180099599
www.google.com 160040597
www.facebook.com 135144616
twitter.com 128779594
www.amazon.com 126280290
flipboard.com 103263490
www.youtube.com 96137270
news.google.com 86004003
apps.facebook.com 81421967
64949125
formspring.me 45214478
www.etsy.com 43674385
www.formspring.me 42427064
www.digbig.com 40104631
community.siamphone.com 38104698
ow.ly 37584758
www.photoreflect.com 37552752
plus.google.com 36541998
admin.google.com 36398527
maps.google.com 35650312
ameblo.jp 34417452
www.state.gov 31827599
www.likemytweets.com 30818420
www.cbfeed.com 29942693
drive.google.com 29588658
shelby.tv 29487232
p.feedblitz.com 27873849

.jp の TOP 30

hostname count
ameblo.jp 34417452
www.amazon.co.jp 26437365
rss.rssad.jp 6474103
group.ameba.jp 5634669
blog.goo.ne.jp 4996555
blog.livedoor.jp 4869004
rd.yahoo.co.jp 4367992
busnavi.keihanbus.jp 2737107
www.newgenji.co.jp 2573669
www.gmo-toku.jp 2408218
photozou.jp 2402721
c.cocacola.co.jp 2395049
ponpare.jp 2341697
p.twipple.jp 2174043
www.nicovideo.jp 2092636
travel.gpoint.co.jp 1960111
dic.nicovideo.jp 1895247
www.takaratomy-arts.co.jp 1851369
kente.jp 1817796
hb.afl.rakuten.co.jp 1796343
www.google.co.jp 1593269
adlatte.jp 1546513
www.adlatte.co.jp 1529988
reg34.smp.ne.jp 1431659
m.homes.co.jp 1349291
d.hatena.ne.jp 1256912
headlines.yahoo.co.jp 1248351
s.kente.jp 1246479
www.navitime.jp 1164058
newsformat.jp 1156994

TOP 1000 除外しつつ mariadb load data into.. でやってみたがまだ厳しい。 久々 elasticsearch るか、と思い始めたところで時間も取れなくなってきて終了〜


【ブログ注記】データの件数を減らす目的で集計をとっていただけで、このリストに登場するドメインがセキュリティ的にどうこうという話はありません。

おわりに

唐突に終了するあたりが社内の雑メモクオリティ感といったところですが、全く知らなかった!という方には良くも悪くも役立つ情報を提供できたのではないかと思います。 インターネットに公開したつもりのない情報を誰かに知られてしまっていたり、窃取されてしまっていたりするかもしれません。 意図せず短縮 URL に変換されてしまっている、ということもあると思います。

しかし、短縮 URL に頼らずとも憲法違反にならないようにしながらネットワークテレメトリらしきものを収集する記事で紹介されたような便利な OSINT ツールがあったり、胸焼けするくらい大量の流出情報のコレクションが易易と入手できる状況もあるので、実際にこの手法が積極的に活用されているかはやや疑問があります。

P.S. 基本的にオンラインゲームをやらないので、ひと狩りいこうぜ!したことはありません(笑)

© 2016 - 2022 DARK MATTER / Built with Hugo / Theme Stack designed by Jimmy