初心者向けハニーポット WOWHoneypot の紹介

初心者向けハニーポット WOWHoneypot の紹介

2017年11月25日 第2回ハニーポッター技術交流会発表資料 @morihi_soc #hanipo_tech
https://hanipo-tech.connpass.com/event/70264/

292a5fc0722cc2ddabf2b088a8f12793?s=128

Kazuaki Morihisa

November 25, 2017
Tweet

Transcript

  1. 2.

    XIPBNJ w ৿ٱ࿨ত !NPSJIJ@TPD  w ຊۀ͸ηΩϡϦςΟΤϯδχΞɾΞφϦετ w झຯͰϋχʔϙοτͷӡ༻Λ͢Δϋχʔϙολʔ w

    ϒϩάˠIUUQXXXNPSJIJTPDOFU w ϋχʔϙολʔٕज़ަྲྀձओ࠵ऀ w άϧʔϓˠIUUQTIBOJQPUFDIDPOOQBTTDPN  ˡϒϩάͷʮϋχʔϙοτ؍࡯ه࿥ʯ͕ ຊʹͳΓ·ͨ͠ ೥݄೔ൃച ిࢠॻ੶൛ແྉࢼಡ൛͋Γ·͢  ʮαΠόʔ߈ܸͷ଍੻Λ෼ੳ͢Δ ϋχʔϙοτ؍࡯ه࿥ʯ ஶऀɿ৿ٱ࿨ত ग़൛ɿल࿨γεςϜ ࠓ·Ͱʹ͓ੈ࿩ʹͳͬͨΠϕϯτ ɾ*5,FZT ݱ4FD$BQ  ɾωοτϫʔΫύέοτΛಡΉձ Ծ  ɾ/*4$αΠόʔϋϩ΢Οϯ ɾ*OUFSOFU8FFL ɾ)BSEFOJOH 7BMVF$IBJO༏উ  ɾTTNKQ ɾ"*4FD ɾULULηΩϡϦςΟษڧձ
  2. 3.

    ͓඼ॻ͖ w ϋχʔϙοτͷָ͠Έํ΍೰Έ w ϋχʔϙοτ࡞ͬͯΈͨΑ w 808)POFZQPUͷಛ௃ w ߏஙσϞ w

    σΟϨΫτϦߏ଄঺հ w ϚονϨεϙϯεϧʔϧղઆ w Ԡ༻ฤd&-,ͰՄࢹԽd w ૝ఆ'"2 3
  3. 5.

    ໨ඪ࠶֬ೝ w ͳͥϋχʔϙοτΛӡ༻͢ΔΜ͚ͩͬ 5 →ϋχʔϙοτ͸໨తʹ߹Θͤͯߏங͠ɺӡ༻͢΂͖ɻ w ࣮ࡍʹੜͷ߈ܸΛݟͯΈ͍ͨ  w ߈ܸݩ*1ΞυϨεΛऩू͍ͨ͠

     w ߈ܸͷྲྀߦΛௐ΂͍ͨ  w Ͳ͜ͷࠃ͔Β߈ܸ͕ଟ͍ͷ͔ௐ΂͍ͨ  w ຊ൪γεςϜͷݎ࿚Խʹ࢖͍͍ͨ  w Ϛϧ΢ΣΞͷऩूʹ࢖͍͍ͨ
  4. 6.

    ॳ৺ऀϋχʔϙολʔͷ೰Έ  ϋχʔϙοτߏஙͰ٧·Δ   ϩά෼ੳͰࠔΔ 6 ๭αΠτͷྲྀೖݕࡧΫΤϦ ߏஙʹ೰Ήϋχʔϙολʔ͸ׂΓͱଟ͍໛༷ɻ ܦݧ্ɺιʔείʔυ͔ΒΠϯετʔϧ͢Δͱ͖ʹ

    ϥΠϒϥϦͷґଘؔ܎Ͱ٧·ͬͨ͜ͱଟ਺ɻ ೔ຊޠͷ৘ใ͕͋·Γͳ͍͜ͱ΋ɻ ηΩϡϦςΟձࣾͷϨϙʔτ΍ϒϩάɺॻ੶ɺ ߈ܸίʔυͷιʔεϦʔσΟϯάͳͲͰ஍ಓʹ ϨϕϧΞοϓ͍͔ͯ͘͠͠ͳ͍ɻ վળ
  5. 9.

    ಈ࡞֓ཁ 9 ߈ܸऀ WOWHoneypot αʔό 80/tcp 8080/tcp ΞΫηε αʔόͷϑΝΠΞ΢ΥʔϧͰ ϙʔτసૹ

    Ϛον&ϨεϙϯεͰ Ԡ౴಺༰Λܾఆ Ϩεϙϯε WOWHoneypot ͸ 8080 ϙʔτͷΑ͏ͳϋΠϙʔτ͔ͭɺ ҰൠϢʔβݖݶͰ࣮ߦ͢Δ͜ͱΛਪ঑͠·͢ɻ
  6. 10.

    ಛ௃ɿߏங͕؆୯ w ඞཁͳ΋ͷ w 1ZUIPO 1ZUIPOͰ͸ಈ࡞͠·ͤΜ 
 w ߏஙखॱ ؆қ൛

     w ϑΝΠΞ΢ΥʔϧͰϙʔτసૹઃఆ લ४උ  w (JU)VC͔ΒιʔείʔυΛμ΢ϯϩʔυ w ϓϩάϥϜ࣮ߦ 10 ಈ࡞ςετࡁΈ؀ڥ
 NBD04)JHI4JFSSB1ZUIPO
 6CVOUV4FSWFSCJU1ZUIPO
 8JOEPXT411ZUIPO
  7. 12.

    ಛ௃ɿσϑΥϧτ0, w ϦΫΤετ͕͖ͨΒɺͱΓ͋͑ͣ0,Λฦ͢ w ߈ܸऀ͕࢖͏πʔϧʹΑͬͯ͸ɺ߈ܸର৅͕ଘࡏ
 ͠ͳ͚Ε͹߈ܸ͠ͳ͍͜ͱ͕͋Δɻ 12 ओͳ HTTP εςʔλείʔυͷ͓͞Β͍

    ࢀߟɿhttps://developer.mozilla.org/ja/docs/Web/HTTP/Status εςʔλείʔυ ҙຯ 0, ϦΫΤετ͕੒ޭͨ͜͠ͱΛࣔ͢ɻ $SFBUFE ϑΝΠϧ͕࡞੒Ͱ͖ͨ͜ͱΛࣔ͢ɻ165ϦΫΤετɻ 6OBVUIPSJ[FE ೝূ͕ඞཁͳϖʔδ΁ͷΞΫηεΛࣔ͢ɻ 'PSCJEEFO ΞΫηεݖ͕ͳ͘ɺӾཡͰ͖ͳ͔ͬͨ͜ͱΛࣔ͢ɻ /PU'PVOE ΞΫηεͨ͠ϑΝΠϧ͕ଘࡏ͠ͳ͔ͬͨ͜ͱΛࣔ͢ɻ .FUIPE/PU"MMPXFE ࢦఆͨ͠ϝιου͕ڐՄ͞Εͳ͔ͬͨ͜ͱΛࣔ͢ɻ *OUFSOBM4FSWFS&SSPS αʔόଆͰΤϥʔ͕ൃੜͨ͜͠ͱΛࣔ͢ɻ /PU*NQMFNFOUFE ࢦఆͨ͠ϝιου͕αϙʔτ͞Ε͍ͯͳ͍͜ͱΛࣔ͢ɻ
  8. 14.

    808)POFZQPU 14 ߈ܸऀ ϋχʔϙοτ ᶃअຐ͢ΔͰʙ GET /hoge.php HTTP/1.1 ᶄΑ͏ͦ͜! 200

    OK ᶅϑΝΠϧ͋Δ΍Μ͚ɻΑͬ͠Ό߈ܸͨ͠Ζ! GET /hoge.php?q=../../etc/passwd HTTP/1.1 ̋
  9. 16.

    ͪΐͬͱݡ͍߈ܸπʔϧ 16 ߈ܸऀ ϋχʔϙοτ ᶃअຐ͢ΔͰʙ GET /wordpress/wp-login.php HTTP/1.1 ᶅࢥͬͯͨϑΝΠϧͱҧ͏ɾɾɾ connection

    close ☓ ᶄΑ͏ͦ͜! 200 OK ͜Ε͸ WordPress Ͱ͸ͳͦ͞͏ͩͳ ※ݡ͍߈ܸπʔϧͷ୅ද࡞ͱ͍͑͹ Metasploit ͩΑͶ
  10. 17.

    ͪΐͬͱݡ͍߈ܸπʔϧରࡦ 17 ߈ܸऀ ϋχʔϙοτ ᶃअຐ͢ΔͰʙ GET /wordpress/wp-login.php HTTP/1.1 ᶅϩάΠϯϒϧʔτ߈ܸ΍ POST

    /wordpress/wp-login.php HTTP/1.1 ˕ ᶄWordPress ͷϖʔδͰ͢ɻͲ͏ͧ! 200 OK ͓ͬ WordPress ಈ͍͍ͯΔ΍Μ wp-login.php ͔ͩΒ WordPress Λ૷͓͏
  11. 18.

    ߏஙखॱ w ͬ͘͟Γͨ͠खॱ 6CVOUVTFSWFSCJU 18 $ sudo ufw default DENY

    $ sudo ufw allow 80/tcp $ sudo ufw allow 8080/tcp ※ SSH ͷΞΫηεϙʔτ΋؀ڥʹ߹Θͤͯ௥Ճ͍ͯͩ͘͠͞ɻ $ sudo ufw enable $ sudo vi /etc/ufw/before.rules ※ ʮ*filterʯΑΓલʹԼهͷ4ߦΛ௥ه͢Δɻ ——————————————————————————— *nat :PREROUTING ACCEPT [0:0] -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 COMMIT ——————————————————————————— $ sudo ufw reload $ cd ~/ $ git clone https://github.com/morihisa/WOWHoneypot.git wowhoneypot $ cd wowhoneypot $ python3 ./wowhoneypot.py
  12. 21.

    σΟϨΫτϦߏ଄ͱϑΝΠϧղઆ w XPXIPOFZQPUQZ w 808)POFZQPUຊମͰ͢ɻ1ZUIPOͰ࡞ΒΕ͍ͯ ·͢ɻҰൠϢʔβݖݶͰಈ࡞͠·͢ɻ
 w NSS@DIFDLFSQZ w NSSVMFTͷνΣοΧʔϞδϡʔϧͰ͢ɻຊମ͔Βࢀর

    ͞Ε͍ͯ·͕͢ɺ୯ମͰ΋ಈ࡞ՄೳͰ͢ɻ
 w DPOpHUYU w ઃఆϑΝΠϧͰ͢ɻϙʔτ൪߸ͱ͔ύεɺTZTMPH αʔό৘ใͳͲΛॻ͖·͢ɻ 21
  13. 22.

    σΟϨΫτϦߏ଄ͱϑΝΠϧղઆ w BSUσΟϨΫτϦɿNSSؔ࿈ϑΝΠϧஔ͖৔Ͱ͢ɻ 22 NSS@IFMQUYU ϚονϨεϙϯεϑΝΠϧͷϔϧϓϑΝΠϧ ೔ຊޠ NSSVMFTYNM ϚονϨεϙϯεͷ9.-ϑΝΠϧɻNPSJIJ@TPDެࣜ΍ ෳ਺ͷϋχʔϙοτʹڞ௨͢Δϧʔϧ

    γάωνϟ Λॻ͘ɻ NSSVMFT@MPDBMYNM ϚονϨεϙϯεͷ9.-ϑΝΠϧɻϋχʔϙοτݻ༗ͷ ϧʔϧ γάωνϟ Λॻ͘ɻ BSUEFGBVMU 808)POFZQPUʹΞΫηε͕͋ΓɺϚονϨεϙϯεͷ ϧʔϧʹҰக͠ͳ͍৔߹ͷσϑΥϧτίϯςϯπͷஔ͖ ৔ɻ໊લ͕IUNMͰऴΘΔϑΝΠϧΛಡΈࠐΈ·͢ɻ art σΟϨΫτϦ໊ͷ༝དྷ lγάωνϟ͸ɺηΩϡϦςΟΤϯδχΞͷܳज़දݱͷͭͰ͋ΔzCZ!NPSJIJ@TPD
  14. 24.

    ϚονϨεϙϯεղઆ w .BUDI3FTQPOTF3VMF NSS  w XPXIPOFZQPUͷओػೳͷͭ w 9.-ܗࣜͷϑΝΠϧ w

    ϝλ w ϧʔϧͷ*%΍આ໌จͳͲ w τϦΨʔ w ϦΫΤετ಺༰ͱϚονϯάͤ͞Δจࣈྻ w Ϩεϙϯε w τϦΨʔʹҰகͨ͠ϦΫΤετ΁ͷԠ౴಺༰ 24
  15. 27.

    ϚονϨεϙϯεղઆ w NSSJE w ͭͷϧʔϧʹ͸ඞͣͭͷ*%ΛׂΓ౰ͯΔɻ w ॏෳෆՄ w *%ͷେ͖ͳ΋ͷ͔Βॱ൪ʹϚονϯάॲཧ͕૸Δɻ w

    ࢖༻ྖҬͷ؆୯ͳ෼ྨ w Ҏ্ɺҎԼͷൣғͷ੔਺஋Λࢦఆ w NPSJIJTPDެࣜϧʔϧͰ࢖༻ w ࣗ༝
  ϩʔΧϧϧʔϧͰ࢖༻͢Δ͜ͱΛਪ঑  w ࣗ༝ 27
  16. 28.

    ϚονϨεϙϯεղઆ w ϧʔϧ࡞੒σϞ w ͜ͷϦϞʔτΤΫεϓϩΠτͷϧʔϧΛ࡞Γ·͢ w /FUHFBS%(/4FUVQDHJ 6OBVUIFOUJDBUFE3FNPUF$PEF&YFDVUJPO .FUBTQMPJU 

    w IUUQTXXXFYQMPJUECDPNFYQMPJUT w .FUBTQMPJU NTGDPOTPMF ͔Βݺͼग़͢ w FYQMPJUMJOVYIUUQOFUHFBS@EHO@TFUVQ@VOBVUI@FYFD 28
  17. 29.

    ͨͿΜ͜͏͍͏ϧʔϧʹͳΔ NSS NFUB NSSJENSSJE FOBCMF5SVFFOBCMF OPUF%(/TFUVQDHJFYQMPJUOPUF NFUB USJHHFS VSJTFUVQDHJVSJ USJHHFS

    SFTQPOTF TUBUVTTUBUVT IFBEFS OBNF888"VUIFOUJDBUFOBNF WBMVF%(/WBMVF IFBEFS CPEZPLCPEZ SFTQPOTF NSS 29 τϦΨʔ͸ɺURI ʹʮ/setup.cgiʯ ͕ೖ͍ͬͯΔ͜ͱ Ϩεϙϯε͸ɺϔομʹ WWW-Authenticate: DGN1000 ΛೖΕͯԠ౴͢Δɻ
  18. 31.

    Ԡ༻ฤd-PHTUBTI &-,ͰՄࢹԽd w 808)POFZQPUΛ෼ࢄͯ͠২͑ͯɺऩूͨ͠ϩά ΛՄࢹԽͯ͠Έͨɻ w ؆୯ͳߏ੒ਤ 31 Πϯλʔωοτͷ͋ͪͪ͜ʹ ϋχʔϙοτΛ২͑Δ

    ϩάऩूαʔό syslog(tcp)Ͱϩάૹ৴ Elasticsearch& Kibana αʔό Logstash Ͱ ϩάసૹ ELK: Elasticsearch ͱ Kibana ͷ૊Έ߹Θͤͷ͜ͱ Logstash: ྑ͍ײ͡ʹϩάΛऩूͨ͠Γసૹͨ͠ΓͰ͖Δੌ͍΍ͭ
  19. 36.

    ૝ఆ'"2 w 2 ؆୯ʹ࢖͑·͔͢  w " ߏங͸؆୯Ͱ͢ɻ1ZUIPO͕Πϯετʔϧ͞Ε͍ͯΔ͜ͱ͕ඞਢཁ ݅ͰɺଞͷϥΠϒϥϦʹґଘ͠·ͤΜɻ
 w

    2 ୭Ͱ΋࢖͑·͔͢ ੍໿͸͋Γ·͔͢  w " ͲͳͨͰ΋͓࢖͍͍͚ͨͩ·͢ɻ#4%-JDFOTF DMBVTF#4% -JDFOTF ͱͯ͠ެ։͍ͯ͠·͢ɻ
 w 2 Ͳ͜Ͱެ։͍ͯ͠·͔͢  w " (JU)VCͰ͢ˠIUUQTHJUIVCDPNNPSJIJTB808)POFZQPU
 w 2 ແྉͰ͔͢ αϙʔτ͸͋Γ·͔͢  w " ແྉͰ͢ɻझຯͰ࡞ͬͨ΋ͷͳͷͰɺαϙʔτ͸͋Γ·ͤΜɻ 36
  20. 37.

    ૝ఆ'"2 w 2 ͲͷΑ͏ͳϩά͕࢒Γ·͔͢  w " 808)POFZQPUࣗ਎ͷಈ࡞ϩά͓ΑͼɺΞΫηεϩά͕࢒ Γ·͢ɻ
 w

    2 Ϛϧ΢ΣΞͷऩू͸Ͱ͖·͔͢ αʔόʹ࢒Γ·͔͢  w " ೳಈతͳऩू͸͠·ͤΜɻҰൠతͳ8FCαʔόͱಉ༷ʹɺ ΞΫηεͷࣄ࣮ͷΈ͕ϩάͱͯ͠࢒Γ·͢ɻ
 
 ͨͩ͠ɺΞΫηεϩάΛݩʹϩά෼ੳΛ͢ΔաఔͰɺαʔό΍ ௐࠪ୺຤͕৵֐Λड͚ΔՄೳੑ͕͋Γ·͢ɻϩά෼ੳऀͷ੹೚ ͷݩɺे෼஫ҙͯ͠औΓѻ͍ͬͯͩ͘͞ɻ
 ͳΜΒ͔ͷඃ֐͕ൃੜͨ͠ͱͯ͠΋ɺ੹೚͸ෛ͍͔Ͷ·͢ɻ 37
  21. 38.

    ૝ఆ'"2 w 2 ϚονϨεϙϯεͷϧʔϧ͸ެ։͞Ε·͔͢  w " ՄೳͳൣғͰެ։͠·͢ɻझຯͷ׆ಈͳͷͰɺϦϦʔε଎౓ ͸஗͍ͱࢥ͍·͢ɻ
 w

    2 UDQͰಈ࡞ͤ͞Δ͜ͱ͸Ͱ͖·͔͢  w " ઃఆ্͸ՄೳͰ͢ɻ͔͠͠؅ཧऀݖݶͰ࣮ߦ͢Δ͜ͱʹͳΔ ͷͰɺඇਪ঑Ͱ͢ɻҰൠϢʔβݖݶͰ࣮ߦ͠ɺUDQΛϙʔ τϑΥϫʔυ͢Δ͜ͱΛਪ঑͠·͢ɻ
 w 2 όάΛݟ͚ͭ·ͨ͠ɻ w " ͝໎࿭Λ͓͔͚͠·͢ɻԿΒ͔ͷखஈͰ͝࿈བྷ͍͚ͨͩΕ͹ ՄೳͳݶΓमਖ਼͠·͢ɻ࿈བྷઌˣ
 NPSJIJTBTFD!HNBJMDPN·ͨ͸5XJUUFS!NPSJIJ@TPD 38