└── docs ├── 0-0.md ├── 0-0-test.md ├── 6-0-detail.md ├── images ├── joinus.png ├── logo.png ├── background.jpg ├── 20210616170818.png ├── 20210616171500.png ├── 20210616172029.png ├── 20210616173018.png ├── 20210616173055.png ├── 20210616173129.png ├── 20210616174908.png ├── 20210616174930.png ├── 20210728213641.png ├── 20210728213740.png ├── 20210728213815.png ├── 20210728213852.png ├── 20210730142413.png ├── 20210730154357.png ├── 20210730161448.png ├── 20210730162306.png ├── 20210730173725.png ├── 20210812135104.png ├── 20210812135114.png ├── 20210812135158.png ├── 20210812135238.png ├── 20210812135309.png ├── 20210812135318.png ├── 20210812135326.png ├── 20210812135333.png ├── 20210812135455.png ├── 20210812135501.png ├── 20210812135541.png ├── 20210812135551.png ├── 20210812135559.png ├── 20210812135608.png ├── 20210812135616.png ├── 20210812135624.png ├── 20210812135634.png ├── 20210812135642.jpg ├── 20210812135706.png ├── 20210812135717.png ├── 20210826113545.png ├── 202111071541552.png ├── 20211231163415.png ├── 20211231163518.png ├── 20211231163717.png ├── 20220103194402.png ├── 202311081253175.png ├── 202311081253176.png ├── 202311081253181.png ├── 1701628595182_.pic.jpg ├── 2801635164451_.pic.jpg ├── 1301627983256_.pic_hd.jpg ├── 1311627983622_.pic_hd.jpg ├── 1321627983675_.pic_hd.jpg ├── 1331627983967_.pic_hd.jpg ├── 1531628589485_.pic_hd.jpg ├── 1591628590040_.pic_hd.jpg ├── 1611628590115_.pic_hd.jpg ├── 1641628594371_.pic_hd.jpg ├── 1721628595216_.pic_hd.jpg ├── 1741628595751_.pic_hd.jpg ├── 2811635164463_.pic_hd.jpg ├── 2821635164487_.pic_hd.jpg ├── 4351638188574_.pic_hd.jpg ├── 4381638189986_.pic_hd.jpg ├── image-20210803203953937.png ├── image-20210803204029159.png ├── image-20210806093718827.png ├── image-20210806093830870.png ├── image-20210806093916207.png ├── image-20210810195923459.png ├── image-20210810200645587.png ├── image-20210810202312677.png ├── image-20210810203232153.png ├── image-20210902143712779.png ├── image-20210902172749029.png ├── image-20210902172832815.png ├── image-20210902172916191.png ├── image-20210902210912371.png ├── image-20210903150833262.png ├── image-20210903150857177.png ├── image-20210903150945171.png ├── image-20210903152406368.png ├── image-20210914113134975.png ├── image-20210914115931102.png ├── image-20210914120052175.png ├── image-20210914160036385.png ├── image-20210914160703477.png ├── image-20210914160836213.png ├── image-20210914160912912.png ├── image-20210914161340527.png ├── image-20210914161437108.png ├── image-20211012223326542.png ├── image-20211025205700560.png ├── image-20211027204924883.png ├── image-20211027205006150.png ├── image-20211027205827645.png ├── image-20211027205939646.png ├── image-20211116210129137.png ├── image-20211116212624793.png ├── image-20211116212911284.png ├── image-20211116213058329.png ├── image-20211116213445009.png ├── image-20211116213801346.png ├── image-20211117105331269.png ├── image-20211206115017049.png ├── image-20211206115035865.png ├── image-20211208095138935.png ├── image-20211220220515428.png ├── image-20211220220556975.png ├── image-20211220220946291.png ├── image-20211220220958972.png ├── image-20211220221136447.png ├── image-20211220221635593.png ├── image-20211222095127831.png ├── image-20211222095756489.png ├── image-20211222095822939.png ├── image-20220105214958606.png ├── image-20220105220938586.png ├── image-20220105221346398.png ├── image-20220105221536927.png ├── image-20220118114818278.png ├── image-20220309193114260.png ├── image-20220309193630269.png ├── image-20220309193659551.png └── image-20231108193659551.png ├── service-demo.zip ├── scene-hacker.md ├── scene-intel.md ├── detail-feishu.md ├── scene-spy.md ├── detail-sysinfo.md ├── detail-attack-source.md ├── 5-5-reset.md ├── _navbar.md ├── en ├── static │ └── version ├── _navbar.md ├── _coverpage.md ├── 1-3-demo.md ├── 2-4-mariadb.md ├── 2-3-windows.md ├── _sidebar.md ├── 2-0-deploy.md ├── 1-1-honeypot.md ├── 2-1-docker.md ├── README.md └── 2-2-linux.md ├── static └── version ├── 4-0-scene.md ├── node-update.md ├── detail-user.md ├── 1-2-demo.md ├── scene-training.md ├── scene-lostpwd.md ├── update.md ├── 4-2-extranet.md ├── detail-database.md ├── dv.min.js ├── 5-0-apply.md ├── scene-cloud.md ├── _coverpage.md ├── detail-attack.md ├── detail-service-mgmt.md ├── 3-0-quickstart.md ├── sandbox.md ├── 2-4-mariadb.md ├── 5-6-passwd.md ├── docs.md ├── 4-4-yara.md ├── down.md ├── 5-2-asset.md ├── 5-4-custom.md ├── detail-damaged-account.md ├── detail-template-mgmt.md ├── detail-intel.md ├── detail-qqmail.md ├── known.md ├── 6-2-2wechat.md ├── detail-alarm.md ├── detail-nodegourp.md ├── detail-dashboard.md ├── 4-2-scan.md ├── 6-2-3lark.md ├── 6-2-1dingtalk.md ├── 3-3-checkattack.md ├── thanksforall.md ├── 2-3-windows.md ├── 3-1-nodemgmt.md ├── 3-2-potmgmt.md ├── email.md ├── syslog.md ├── webhook.md ├── 1-1-honeypot.md ├── highinteractive.md ├── 2-0-deploy.md ├── detail-ip.md ├── 5-2-jsonp.md ├── 4-1-Intranet.md ├── contribute.md ├── detail-node-mgmt.md ├── 4-3-detection.md ├── 5-1-diy.md ├── README.md ├── _sidebar.md ├── 2-2-linux.md ├── 3-4-debug.md ├── webinstall.sh ├── 2-1-docker.md ├── 4-4-internetdecoy.md ├── 5-7-uninstall.md ├── detail-decoy.md ├── 2-5-env.md ├── js ├── docsify-copy-code.min.js ├── docsify-sidebar-collapse.min.js ├── prism-markdown.min.js ├── prism-bash.min.js ├── search.min.js └── docsify-tabs.min.js ├── 5-5-test.md ├── index.html ├── 4-6-trace.md ├── 2-6-nginx.md └── 6-4-api.md /docs/0-0.md: -------------------------------------------------------------------------------- 1 | 测试 -------------------------------------------------------------------------------- /docs/0-0-test.md: -------------------------------------------------------------------------------- 1 | 测试 -------------------------------------------------------------------------------- /docs/6-0-detail.md: -------------------------------------------------------------------------------- 1 | 2 | #### 详细功能说明 3 | 4 | 该章节按照HFish菜单栏顺序逐页介绍具体功能点。 5 | 6 | -------------------------------------------------------------------------------- /docs/images/joinus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/joinus.png -------------------------------------------------------------------------------- /docs/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/logo.png -------------------------------------------------------------------------------- /docs/service-demo.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/service-demo.zip -------------------------------------------------------------------------------- /docs/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/background.jpg -------------------------------------------------------------------------------- /docs/images/20210616170818.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210616170818.png -------------------------------------------------------------------------------- /docs/images/20210616171500.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210616171500.png -------------------------------------------------------------------------------- /docs/images/20210616172029.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210616172029.png -------------------------------------------------------------------------------- /docs/images/20210616173018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210616173018.png -------------------------------------------------------------------------------- /docs/images/20210616173055.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210616173055.png -------------------------------------------------------------------------------- /docs/images/20210616173129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210616173129.png -------------------------------------------------------------------------------- /docs/images/20210616174908.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210616174908.png -------------------------------------------------------------------------------- /docs/images/20210616174930.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210616174930.png -------------------------------------------------------------------------------- /docs/images/20210728213641.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210728213641.png -------------------------------------------------------------------------------- /docs/images/20210728213740.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210728213740.png -------------------------------------------------------------------------------- /docs/images/20210728213815.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210728213815.png -------------------------------------------------------------------------------- /docs/images/20210728213852.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210728213852.png -------------------------------------------------------------------------------- /docs/images/20210730142413.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210730142413.png -------------------------------------------------------------------------------- /docs/images/20210730154357.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210730154357.png -------------------------------------------------------------------------------- /docs/images/20210730161448.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210730161448.png -------------------------------------------------------------------------------- /docs/images/20210730162306.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210730162306.png -------------------------------------------------------------------------------- /docs/images/20210730173725.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210730173725.png -------------------------------------------------------------------------------- /docs/images/20210812135104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135104.png -------------------------------------------------------------------------------- /docs/images/20210812135114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135114.png -------------------------------------------------------------------------------- /docs/images/20210812135158.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135158.png -------------------------------------------------------------------------------- /docs/images/20210812135238.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135238.png -------------------------------------------------------------------------------- /docs/images/20210812135309.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135309.png -------------------------------------------------------------------------------- /docs/images/20210812135318.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135318.png -------------------------------------------------------------------------------- /docs/images/20210812135326.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135326.png -------------------------------------------------------------------------------- /docs/images/20210812135333.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135333.png -------------------------------------------------------------------------------- /docs/images/20210812135455.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135455.png -------------------------------------------------------------------------------- /docs/images/20210812135501.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135501.png -------------------------------------------------------------------------------- /docs/images/20210812135541.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135541.png -------------------------------------------------------------------------------- /docs/images/20210812135551.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135551.png -------------------------------------------------------------------------------- /docs/images/20210812135559.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135559.png -------------------------------------------------------------------------------- /docs/images/20210812135608.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135608.png -------------------------------------------------------------------------------- /docs/images/20210812135616.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135616.png -------------------------------------------------------------------------------- /docs/images/20210812135624.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135624.png -------------------------------------------------------------------------------- /docs/images/20210812135634.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135634.png -------------------------------------------------------------------------------- /docs/images/20210812135642.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135642.jpg -------------------------------------------------------------------------------- /docs/images/20210812135706.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135706.png -------------------------------------------------------------------------------- /docs/images/20210812135717.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210812135717.png -------------------------------------------------------------------------------- /docs/images/20210826113545.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20210826113545.png -------------------------------------------------------------------------------- /docs/images/202111071541552.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/202111071541552.png -------------------------------------------------------------------------------- /docs/images/20211231163415.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20211231163415.png -------------------------------------------------------------------------------- /docs/images/20211231163518.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20211231163518.png -------------------------------------------------------------------------------- /docs/images/20211231163717.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20211231163717.png -------------------------------------------------------------------------------- /docs/images/20220103194402.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/20220103194402.png -------------------------------------------------------------------------------- /docs/images/202311081253175.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/202311081253175.png -------------------------------------------------------------------------------- /docs/images/202311081253176.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/202311081253176.png -------------------------------------------------------------------------------- /docs/images/202311081253181.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/202311081253181.png -------------------------------------------------------------------------------- /docs/scene-hacker.md: -------------------------------------------------------------------------------- 1 | #### 溯源反制场景 2 | 3 | ![image-202311081253181](https://hfish.net/images/202311081253181.png) -------------------------------------------------------------------------------- /docs/scene-intel.md: -------------------------------------------------------------------------------- 1 | #### 外网情报生产场景 2 | 3 | ![image-202311081253176](https://hfish.net/images/202311081253176.png) -------------------------------------------------------------------------------- /docs/images/1701628595182_.pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/1701628595182_.pic.jpg -------------------------------------------------------------------------------- /docs/images/2801635164451_.pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/2801635164451_.pic.jpg -------------------------------------------------------------------------------- /docs/images/1301627983256_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/1301627983256_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/1311627983622_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/1311627983622_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/1321627983675_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/1321627983675_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/1331627983967_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/1331627983967_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/1531628589485_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/1531628589485_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/1591628590040_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/1591628590040_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/1611628590115_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/1611628590115_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/1641628594371_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/1641628594371_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/1721628595216_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/1721628595216_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/1741628595751_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/1741628595751_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/2811635164463_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/2811635164463_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/2821635164487_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/2821635164487_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/4351638188574_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/4351638188574_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/4381638189986_.pic_hd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/4381638189986_.pic_hd.jpg -------------------------------------------------------------------------------- /docs/images/image-20210803203953937.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210803203953937.png -------------------------------------------------------------------------------- /docs/images/image-20210803204029159.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210803204029159.png -------------------------------------------------------------------------------- /docs/images/image-20210806093718827.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210806093718827.png -------------------------------------------------------------------------------- /docs/images/image-20210806093830870.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210806093830870.png -------------------------------------------------------------------------------- /docs/images/image-20210806093916207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210806093916207.png -------------------------------------------------------------------------------- /docs/images/image-20210810195923459.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210810195923459.png -------------------------------------------------------------------------------- /docs/images/image-20210810200645587.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210810200645587.png -------------------------------------------------------------------------------- /docs/images/image-20210810202312677.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210810202312677.png -------------------------------------------------------------------------------- /docs/images/image-20210810203232153.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210810203232153.png -------------------------------------------------------------------------------- /docs/images/image-20210902143712779.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210902143712779.png -------------------------------------------------------------------------------- /docs/images/image-20210902172749029.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210902172749029.png -------------------------------------------------------------------------------- /docs/images/image-20210902172832815.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210902172832815.png -------------------------------------------------------------------------------- /docs/images/image-20210902172916191.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210902172916191.png -------------------------------------------------------------------------------- /docs/images/image-20210902210912371.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210902210912371.png -------------------------------------------------------------------------------- /docs/images/image-20210903150833262.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210903150833262.png -------------------------------------------------------------------------------- /docs/images/image-20210903150857177.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210903150857177.png -------------------------------------------------------------------------------- /docs/images/image-20210903150945171.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210903150945171.png -------------------------------------------------------------------------------- /docs/images/image-20210903152406368.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210903152406368.png -------------------------------------------------------------------------------- /docs/images/image-20210914113134975.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210914113134975.png -------------------------------------------------------------------------------- /docs/images/image-20210914115931102.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210914115931102.png -------------------------------------------------------------------------------- /docs/images/image-20210914120052175.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210914120052175.png -------------------------------------------------------------------------------- /docs/images/image-20210914160036385.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210914160036385.png -------------------------------------------------------------------------------- /docs/images/image-20210914160703477.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210914160703477.png -------------------------------------------------------------------------------- /docs/images/image-20210914160836213.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210914160836213.png -------------------------------------------------------------------------------- /docs/images/image-20210914160912912.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210914160912912.png -------------------------------------------------------------------------------- /docs/images/image-20210914161340527.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210914161340527.png -------------------------------------------------------------------------------- /docs/images/image-20210914161437108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20210914161437108.png -------------------------------------------------------------------------------- /docs/images/image-20211012223326542.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211012223326542.png -------------------------------------------------------------------------------- /docs/images/image-20211025205700560.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211025205700560.png -------------------------------------------------------------------------------- /docs/images/image-20211027204924883.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211027204924883.png -------------------------------------------------------------------------------- /docs/images/image-20211027205006150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211027205006150.png -------------------------------------------------------------------------------- /docs/images/image-20211027205827645.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211027205827645.png -------------------------------------------------------------------------------- /docs/images/image-20211027205939646.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211027205939646.png -------------------------------------------------------------------------------- /docs/images/image-20211116210129137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211116210129137.png -------------------------------------------------------------------------------- /docs/images/image-20211116212624793.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211116212624793.png -------------------------------------------------------------------------------- /docs/images/image-20211116212911284.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211116212911284.png -------------------------------------------------------------------------------- /docs/images/image-20211116213058329.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211116213058329.png -------------------------------------------------------------------------------- /docs/images/image-20211116213445009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211116213445009.png -------------------------------------------------------------------------------- /docs/images/image-20211116213801346.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211116213801346.png -------------------------------------------------------------------------------- /docs/images/image-20211117105331269.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211117105331269.png -------------------------------------------------------------------------------- /docs/images/image-20211206115017049.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211206115017049.png -------------------------------------------------------------------------------- /docs/images/image-20211206115035865.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211206115035865.png -------------------------------------------------------------------------------- /docs/images/image-20211208095138935.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211208095138935.png -------------------------------------------------------------------------------- /docs/images/image-20211220220515428.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211220220515428.png -------------------------------------------------------------------------------- /docs/images/image-20211220220556975.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211220220556975.png -------------------------------------------------------------------------------- /docs/images/image-20211220220946291.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211220220946291.png -------------------------------------------------------------------------------- /docs/images/image-20211220220958972.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211220220958972.png -------------------------------------------------------------------------------- /docs/images/image-20211220221136447.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211220221136447.png -------------------------------------------------------------------------------- /docs/images/image-20211220221635593.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211220221635593.png -------------------------------------------------------------------------------- /docs/images/image-20211222095127831.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211222095127831.png -------------------------------------------------------------------------------- /docs/images/image-20211222095756489.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211222095756489.png -------------------------------------------------------------------------------- /docs/images/image-20211222095822939.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20211222095822939.png -------------------------------------------------------------------------------- /docs/images/image-20220105214958606.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20220105214958606.png -------------------------------------------------------------------------------- /docs/images/image-20220105220938586.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20220105220938586.png -------------------------------------------------------------------------------- /docs/images/image-20220105221346398.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20220105221346398.png -------------------------------------------------------------------------------- /docs/images/image-20220105221536927.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20220105221536927.png -------------------------------------------------------------------------------- /docs/images/image-20220118114818278.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20220118114818278.png -------------------------------------------------------------------------------- /docs/images/image-20220309193114260.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20220309193114260.png -------------------------------------------------------------------------------- /docs/images/image-20220309193630269.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20220309193630269.png -------------------------------------------------------------------------------- /docs/images/image-20220309193659551.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20220309193659551.png -------------------------------------------------------------------------------- /docs/images/image-20231108193659551.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hacklcx/HFish/HEAD/docs/images/image-20231108193659551.png -------------------------------------------------------------------------------- /docs/detail-feishu.md: -------------------------------------------------------------------------------- 1 | 2 | #### 飞书配置流程 3 | 4 | 5 | - 飞书官方文档 6 | https://www.feishu.cn/hc/zh-CN/articles/360040553973 7 | 8 | -------------------------------------------------------------------------------- /docs/scene-spy.md: -------------------------------------------------------------------------------- 1 | #### 内部人员风险场景 2 | 3 | ![image-20231108193659551](https://hfish.net/images/image-20231108193659551.png) 4 | 5 | -------------------------------------------------------------------------------- /docs/detail-sysinfo.md: -------------------------------------------------------------------------------- 1 | 2 | #### 系统信息 3 | 4 | 该页面展示HFish系统版本信息,法律声明和logo, 5 | 6 | ![image-20210730162304700](https://hfish.net/images/20210730162306.png) 7 | 8 | -------------------------------------------------------------------------------- /docs/detail-attack-source.md: -------------------------------------------------------------------------------- 1 | #### 攻击来源 2 | 3 | 该页面用于通过汇聚本地蜜罐感知、云端情报、用户自定义情报和溯源反制获得的信息来刻画攻击者画像,成为企业的私有情报库。 4 | 5 | ![image-20210506150145273](https://hfish.net/images/20210812135238.png) 6 | 7 | `注意:该页面已计划将于下个版本进行调整。` -------------------------------------------------------------------------------- /docs/5-5-reset.md: -------------------------------------------------------------------------------- 1 | 2 | ### 密码重置 3 | 4 | 登录管理端主机,在管理端进程同目录会看到tools可执行程序,该程序可以重置指定用户的密码。 5 | 6 | > 重置admin用户的密码 7 | 8 | ``` 9 | root@HFish~# ./tools resetpwd admin 10 | reset admin password success. 11 | ``` -------------------------------------------------------------------------------- /docs/_navbar.md: -------------------------------------------------------------------------------- 1 | - [首页](https://hfish.net/#/) 2 | - [下载](https://hfish.net/#/down) 3 | - [GitHub](https://github.com/hacklcx/HFish) 4 | - [Gitee](https://gitee.com/lauix/HFish) 5 | - Translations 6 | - [:cn: 简体中文](/) 7 | - [:uk: English](/en/) 8 | -------------------------------------------------------------------------------- /docs/en/static/version: -------------------------------------------------------------------------------- 1 | { 2 | "version": "3.3.5", 3 | "date": "2024-07-16", 4 | "desc": [ 5 | "【升级建议】支持2.7.0及以上版本顺滑升级", 6 | "1.【新增】支持国产化,兼容ARM64类型的节点", 7 | "2.【修复】修复了系统web框架存在ssl漏洞问题", 8 | "3.【修复】修复了部分其他bug" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /docs/static/version: -------------------------------------------------------------------------------- 1 | { 2 | "version": "3.3.5", 3 | "date": "2024-07-16", 4 | "desc": [ 5 | "【升级建议】支持2.7.0及以上版本顺滑升级", 6 | "1.【新增】支持国产化,兼容ARM64类型的节点", 7 | "2.【修复】修复了系统web框架存在ssl漏洞问题", 8 | "3.【修复】修复了部分其他bug" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /docs/4-0-scene.md: -------------------------------------------------------------------------------- 1 | #### 场景介绍 2 | 3 | > ##### 内网环境 ##### 4 | 5 | 1. 内网办公/内部服务器失陷检测场景 6 | 2. 内部人员风险 7 | 8 | 9 | > ##### 外网环境 ##### 10 | 11 | 1. 外网威胁感知场景 12 | 2. 外网情报生产场景 13 | 3. 外网溯源反制场景 14 | 4. 云环境风险感知场景 15 | 5. 员工账号密码遗失感知场景 16 | 6. 员工安全意识培训场景 17 | 18 | -------------------------------------------------------------------------------- /docs/node-update.md: -------------------------------------------------------------------------------- 1 | #### 节点升级失败原因: 2 | 3 | 1、如果部署多个节点,同时升级对管理端带宽有要求,一般情况都是带宽不够影响, 建议按每个节点1M给管理端分配带宽 4 | 5 | 2、如果带宽足够,可以看下节点日志,在安装目录的logs目录下 client.log 文件,加用户群提供下报错 6 | 7 | ![image-20220729162931543](http://img.threatbook.cn/hfish/image-20220729162931543.png) 8 | -------------------------------------------------------------------------------- /docs/en/_navbar.md: -------------------------------------------------------------------------------- 1 | - [homepage](https://hfish.net/#/en/) 2 | - [download](https://hfish.net/#/en/down) 3 | - [GitHub](https://github.com/hacklcx/HFish) 4 | - [Gitee](https://gitee.com/lauix/HFish) 5 | - Translations 6 | - [:cn: 简体中文](/) 7 | - [:uk: English](/en/) 8 | -------------------------------------------------------------------------------- /docs/detail-user.md: -------------------------------------------------------------------------------- 1 | 2 | #### 登录管理 3 | 4 | 该页面用于展示和管理HFish蜜罐所有账户,目前登录管理支持创建2种角色的用户: 5 | 6 | ``` 7 | 1、管理员:可以浏览任意页面,进行页面允许的任意操作; 8 | 9 | 2、业务操作员:尽可以浏览首页、攻击列表、扫描感知、攻击来源、账号资产 、失陷感知六个页面; 10 | ``` 11 | 12 | ![image-20210730161446961](https://hfish.net/images/20210730161448.png) 13 | -------------------------------------------------------------------------------- /docs/1-2-demo.md: -------------------------------------------------------------------------------- 1 | 2 | #### 快速预览 3 | 4 | 百闻不如一见,您可以随时登录HFish的Demo环境,浏览HFish的能力: 5 | 6 | ``` 7 | 预览地址:https://demo.hfish.net:4433/web/ 8 | 用户:hfishguest 9 | 密码:HFish2021 10 | ``` 11 | 12 | `特别注意:Demo环境提供的是普通用户,有些功能已被隐藏,如需完整体验,请自行安装体验:https://hfish.net/#/down` 13 | 14 | #### 联系我们 15 | 16 | ![joinus](/images/joinus.png) -------------------------------------------------------------------------------- /docs/scene-training.md: -------------------------------------------------------------------------------- 1 | #### 员工安全意识培训场景 2 | 3 | > ##### 痛点 4 | 在企业安全工作中,员工 **安全意识问题** 不应被忽略,而对于攻击者,搜集员工信箱批量发送钓鱼或木马病毒链接成本极低,只要有一个受害者即可突破企业安全防线。 5 | 6 | > ##### 推荐部署位置 7 | 使用开源的钓鱼邮件工具和 **Web蜜罐自定义能力**,可以快速、低成本的组装 **企业安全意识培训平台**。 8 | 9 | > ##### 部署注意事项: 10 | 11 | 1. 该场景会捕捉到 **大量真实攻击行为** ,建议在部署前将蜜罐加入网络检测设备白名单中避免误报; 12 | 2. 个别行业需要考虑监管单位扫描通报情况,建议在部署前建表报备蜜罐地址; 13 | 14 | -------------------------------------------------------------------------------- /docs/scene-lostpwd.md: -------------------------------------------------------------------------------- 1 | #### 员工账号密码遗失感知场景 2 | 3 | > ##### 痛点 4 | 员工账号密码资产遗失对于大多数企业来说都是 **致命隐患**,如何感知此类威胁一直是当下安全团队一个空白。 5 | 6 | > ##### 推荐部署位置 7 | 企业可将常见的对外服务例如vpn.company.com或hr.company.com **替换成蜜罐**,通过监控试图登录的账号判断是否为 **内部员工账号**,并实时通知安全团队和该员工,敦促其尽快修改密码。 8 | 9 | > ##### 部署注意事项: 10 | 11 | 1. 该场景会捕捉到 **大量真实攻击行为** ,建议在部署前将蜜罐加入网络检测设备白名单中避免误报; 12 | 2. 个别行业需要考虑监管单位扫描通报情况,建议在部署前建表报备蜜罐地址; 13 | 14 | -------------------------------------------------------------------------------- /docs/update.md: -------------------------------------------------------------------------------- 1 | #### 版本升级 2 | 3 | HFish v2.7.0(含)及后续版本支持Web页面自动升级,如果版本低于v2.7.0,请卸载重新部署。 4 | 5 | > ##### 联网情况 ##### 6 | 7 | HFish v2.7.0(含)及后续版本中,HFish会自动检测到升级包,用户点击右上角火箭,点击「确认升级」,即可完成升级。 8 | 9 | > ##### 非联网情况 ##### 10 | 11 | HFish v2.7.0(含)及后续版本中,用户点击右上角火箭,点击「上传安装包」,点击「确认升级」,即可完成升级。 12 | 13 | image-20220118114818278 14 | 15 | -------------------------------------------------------------------------------- /docs/4-2-extranet.md: -------------------------------------------------------------------------------- 1 | #### 外网威胁感知场景 2 | 3 | > ##### 痛点 4 | 5 | 大量业务上云,传统防火墙、IDS、IPS、NDR无法上云或上云后功能受限,最终导致安全感知能力极度弱化。开源情报质量差,大量无效告警,半自动化处置无法落地。 6 | 7 | > ##### 推荐部署位置 8 | 9 | 该场景一般是将节点部署在互联网区,用来感知互联网来自自动化蠕虫、竞争对手和境外的 **真实威胁**,甚至发现针对客户的 **0day攻击**,通过和具有情报生产能力的 **情报平台** 对接,可以稳定准确的**生产私有威胁情报**。 10 | 11 | 12 | > ##### 部署注意事项: 13 | 14 | 1. 该场景会捕捉到 **大量真实攻击行为** ,建议在部署前将蜜罐加入网络检测设备白名单中避免误报; 15 | 2. 个别行业需要考虑监管单位扫描通报情况,建议在部署前建表报备蜜罐地址; 16 | 17 | -------------------------------------------------------------------------------- /docs/detail-database.md: -------------------------------------------------------------------------------- 1 | 2 | #### 数据库配置 3 | 4 | 该页面用于更换数据库和清理历史数据。 5 | 6 | #### 数据库管理 7 | 8 | HFish默认使用SQLite数据库,该轻量级数据库可用于内网告警信息不多的环境,如果用户环境比较复杂,建议使用MySQL数据库。 9 | 10 | 该页面提供更换数据库功能,用户只需按照要求填写数据库网络地址、端口、用户名和密码即可完成从SQLite切换到指定的MySQL数据库,切换过程不会丢失数据,老数据会自动复制到MySQL数据库。 11 | 12 | `注意:仅提供SQLite切换到MySQL数据库,不提供反向切换功能。` 13 | 14 | 15 | #### 数据清理 16 | 17 | 由于历史数据过多可能拖慢HFish响应,用户可以自行选择清理“全部的数据”或“7天前的数据”,点击后需要验证当前使用者身份,清理攻击数据不会影响系统运行,也不会影响节点、模板和蜜罐服务。 -------------------------------------------------------------------------------- /docs/dv.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";window.$docsify.plugins=[].concat((function(n,o){n.beforeEach((function(n){const o=window.$docsify.dv||{},t=o.option||{},c=o.model||{},e=t.starter||"<%",i=t.ender||"%>",s="[a-zA-Z._0-9]+",r=new RegExp(`${e}\\s*[a-zA-Z._0-9]+\\s*${i}`,"g");return n.replace(r,(function(n){const o=((n.match(new RegExp(s,"g"))||[])[0]||"").split(".")||[];let t=c;return o.forEach((n=>{t=t[n]})),t||""}))||""}))}),window.$docsify.plugins||[])}(); 2 | -------------------------------------------------------------------------------- /docs/5-0-apply.md: -------------------------------------------------------------------------------- 1 | 2 | #### 进阶应用 3 | 4 | 该章节介绍几种HFish进阶用法,为避免浪费用户时间,以下内容可能需要用户了解专项背景信息: 5 | 6 | ``` 7 | 1、使用自定义Web蜜罐,需要对前端有一定了解; 8 | 9 | 2、使用HFish监控企业是否有账号外泄,可收集企业邮箱后缀、员工姓名等信息,并基于该信息进行实时监控。 10 | 11 | 3、挥洒蜜饵诱骗攻击者,需要对Linux或Windows和业务配置文件有一定了解; 12 | 13 | 4、需要了解所有蜜罐触发方式和触发状态,需要部分技术知识; 14 | 15 | 5、希望卸载HFish,需要部分Linux或Windows技术知识; 16 | 17 | 6、当前进阶应用分为四个不同的模块,对应不同使用需求 18 | ``` 19 | 20 | 21 | 其他场景和进阶使用需求,可以加入官方微信群讨论: 22 | 23 | ![joinus](/images/joinus.png) 24 | 25 | -------------------------------------------------------------------------------- /docs/scene-cloud.md: -------------------------------------------------------------------------------- 1 | #### 云环境风险感知场景 2 | 3 | 而通过在云端部署蜜罐产品,应用蜜罐 **吸引部分攻击**,保护真实业务,并且企业防守者可以通过蜜罐感知到 **云上威胁的强度和方式**,不至于对安全现状一无所知,最后通过 **蜜罐产品的API** 和 **本地态势感知或检测设备** 打通,实现防守者通过一个平台 **统一管理**。 4 | 5 | > ##### 痛点 6 | 由于云环境特殊性,云上 **匮乏** 流量检测类安全产品,此外企业防守者需要频繁切换查看本地安全设备的告警与云端有限安全设备的告警。 7 | 8 | > ##### 推荐部署位置 9 | 注册一个迷惑性子域名或使用某个废弃的子域名,通过搭建蜜罐感知攻击强度和攻击行为。 10 | 11 | > ##### 部署注意事项: 12 | 13 | 1. 该场景会捕捉到 **大量真实攻击行为** ,建议在部署前将蜜罐加入网络检测设备白名单中避免误报; 14 | 2. 个别行业需要考虑监管单位扫描通报情况,建议在部署前建表报备蜜罐地址; -------------------------------------------------------------------------------- /docs/_coverpage.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ![logo](https://hfish.net/images/logo.png ":size=200x202") 4 | 5 | # HFish 3.3.5 6 | 7 | # 安全、简单、有效的蜜罐平台 永久免费 8 | 9 | [Linux下载](https://hfish.net/#/2-2-linux) 10 | [Windows下载](https://hfish.net/#/2-3-windows) 11 | [Docker下载](https://hfish.net/#/2-1-docker) 12 | [快速了解](https://hfish.net/#/README) 13 | 14 | 15 | ![background](https://hfish.net/images/background.jpg) 16 | -------------------------------------------------------------------------------- /docs/detail-attack.md: -------------------------------------------------------------------------------- 1 | 2 | #### 攻击列表 3 | 4 | 该页面用于展示、聚合、搜索、分析和导出HFish蜜罐捕获攻击数据的页面。 5 | 6 | ![image-20210730142404498](https://hfish.net/images/20210730142413.png) 7 | 8 | 攻击列表本身有一定的聚合能力,会把一段时间内,针对同一IP、同一蜜罐的同一攻击者行为聚合在一起。 9 | 10 | 本页面展示的攻击数据有: 11 | ``` 12 | 1、被攻击蜜罐名称 13 | 2、被攻击数量 14 | 3、被攻击节点名称 15 | 4、攻击来源IP和地理位置 16 | 5、威胁情报 17 | 6、最后一次攻击时间 18 | 7、攻击时间 19 | 8、攻击数据长度 20 | 9、攻击详情 21 | ``` 22 | 23 | 用户还可以按照攻击来源IP地址、蜜罐场景、蜜罐类型、被攻击节点名称、数据长度、攻击来源地理位置名称、情报标签和是否标记进行搜索,支持按照攻击时间或数量排序,支持导出所有攻击数据或导出某个聚合事件到CSV文件。 24 | 25 | -------------------------------------------------------------------------------- /docs/en/_coverpage.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ![logo](https://hfish.net/images/logo.png ":size=200x202") 4 | 5 | # HFish 3.3.0 6 | 7 | # Honeypot plantform free 8 | 9 | [Linux-download](https://hfish.net/#/2-2-linux) 10 | [Windows-download](https://hfish.net/#/2-3-windows) 11 | [Docker-download](https://hfish.net/#/2-1-docker) 12 | [QuickKnow](https://hfish.net/#/README) 13 | 14 | 15 | ![background](https://hfish.net/images/background.jpg) -------------------------------------------------------------------------------- /docs/detail-service-mgmt.md: -------------------------------------------------------------------------------- 1 | 2 | #### 服务管理 3 | 4 | 该页面用于展示HFish蜜罐具有哪些蜜罐能力,并且提供新增蜜罐的功能。 5 | 6 | > 当前版本的HFish蜜罐包含五大类共36种蜜罐服务,可在【服务管理】页面查看详细服务描述。 7 | 8 | image-20210914161340527 9 | 10 | 11 | > 针对所有的Web类蜜罐,HFish都提供了预览,便于用户更好的了解和搭配服务。 12 | 13 | image-20210914161437108 14 | 15 | > 关于新增服务,用户可以浏览我们另外一篇文档:[自定义Web蜜罐](https://hfish.net/#/5-1-diy) 16 | -------------------------------------------------------------------------------- /docs/3-0-quickstart.md: -------------------------------------------------------------------------------- 1 | #### 快速使用 2 | 3 | 如果时间有限,当用户部署完HFish管理端后,只需要了解并操作以下三步就可以进行蜜罐观测。 4 | 5 | > ##### 添加/删除节点 6 | 7 | 安装HFish管理端后,在管理端所在机器上会默认建立节点感知攻击,该节点被命名为【内置节点】。 8 | 9 | 用户也可以在其他机器上部署新的节点,以增加观测范围。 10 | 11 | > ##### 添加/删除蜜罐 12 | 13 | 蜜罐、节点和管理端的关系类似于总部、零售店和货物的关系,总部(管理端)负责管理零售店(一个或多个节点端),并提供货物(一个或多个蜜罐服务),零售店(一个或多个节点端)负责将总部(管理端)推送的货物(一个或多个蜜罐服务)上架并提供具体服务。 14 | 15 | 节点负责主动和管理端沟通,用户通过管理端Web界面配置后,节点根据指令在主机上构建具体蜜罐服务。 16 | 17 | 一个节点最多可以同时构建10个蜜罐服务。 18 | 19 | > ##### 查看攻击详情 20 | 21 | HFish有四个不同的页面提供攻击详情,分别为:攻击列表、扫描感知、攻击来源、账号资产 22 | -------------------------------------------------------------------------------- /docs/sandbox.md: -------------------------------------------------------------------------------- 1 | #### 样本检测 2 | 3 | 该页面用于展示HFish在高交互蜜罐(高交互ssh和高交互telnet蜜罐)中,捕获到的攻击者 上传/下载到服务器中的样本。 4 | 5 | 所有样本都会上传到免费的微步在线沙箱(https://s.threatbook.cn/)中,进行样本检测,并将结果返回。 该检测不花费用户检测次数。 6 | 7 | ![image-20220309193114260](https://hfish.net/images/image-20220309193114260.png) 8 | 9 | 10 | 11 | 点击,即可跳转到云沙箱,查看详细信息。 12 | 13 | image-20220309193630269 14 | 15 | 16 | 17 | ![image-20220309193659551](https://hfish.net/images/image-20220309193659551.png) 18 | -------------------------------------------------------------------------------- /docs/en/1-3-demo.md: -------------------------------------------------------------------------------- 1 | #### Quick preview 2 | 3 | 4 | 5 | Seeing is believing. You can log in to HFish's Demo environment at any time to browse HFish's capabilities: 6 | 7 | Preview address: https://demo.hfish.net:4433/web/ 8 | 9 | User: hfishguest 10 | 11 | Password: HFish2021 12 | 13 | ``` 14 | Note: you are an ordinary user, and some functions have been hidden. For a full experience, please download and install it yourself 15 | ``` 16 | 17 | 18 | 19 | #### Contact us 20 | 21 | ![image-20220729162931543](http://img.threatbook.cn/hfish/image-20220729162931543.png) -------------------------------------------------------------------------------- /docs/2-4-mariadb.md: -------------------------------------------------------------------------------- 1 | #### 数据库选择 2 | 3 | 除非性能极度紧张或环境所限,否则HFish官方**强烈建议使用MySQL/MariaDB数据库!** 4 | 5 | 经过实战测评,MySQL/MariaDB数据库可以适应目前绝大多数场景,其数据处理和并发兼容能力都要优于SQLite。 6 | 7 | > ##### 关于SQLite ##### 8 | 9 | 出于开箱即用考虑,HFish系统默认使用的SQLite数据库,自带的已经初始化好的db具体路径为/usr/share/db/hfish.db 10 | 11 | SQLite数据库仅适用于功能预览、小规模内网环境失陷感知等有限场景。 12 | 13 | > ##### SQLite更换为MySQL/MariaDB数据库 ##### 14 | 15 | HFish提供两种更换数据库的机会: 16 | 17 | 1、在首次安装时,用户可以选择使用SQLite或MySQL/MariaDB数据库 18 | 19 | 2、如果已经选择了SQLite,以管理员身份登录后,在「数据库配置」页面,根据指南可快速更换数据库 20 | 21 | ![image-20211116210129137](https://hfish.net/images/image-20211116210129137.png) 22 | 23 | `特别注意:HFish只支持SQLite向MySQL/MariaDB数据库迁移,不支持反向迁移` 24 | -------------------------------------------------------------------------------- /docs/5-6-passwd.md: -------------------------------------------------------------------------------- 1 | #### 忘记密码 2 | 3 | 如果用户不慎忘记HFish Web管理端admin密码,可以按照如下步骤强行重置。 4 | 5 | > ##### Linux ##### 6 | 7 | 1. 进入HFish管理端安装目录,执行./tools -mode resetpwd 8 | 2. kill hfish-server 等待几秒钟,进程会被自动拉起 9 | 3. 使用默认账号密码:admin/HFish2021进行登录 10 | 11 | 12 | 13 | > ##### Windows ##### 14 | 15 | 1. 运行cmd,进入HFish管理端安装目录,进入当前版本目录,执行tools.exe -mode resetpwd 16 | 2. 打开任务管理器,结束hfish-server进程,等待几秒钟,进程会被自动拉起 17 | 3. 使用默认账号密码:admin/HFish2021进行登录 18 | 19 | 20 | 21 | > ##### Docker ##### 22 | 23 | 1. docker exec -it hfish /bin/sh 24 | 2. cd 3.0.1(版本号) 25 | 3. 执行./tools -mode resetpwd 26 | 4. exit 退出容器 27 | 5. docker restart hfish 28 | 6. 使用默认账号密码:admin/HFish2021进行登录 29 | -------------------------------------------------------------------------------- /docs/docs.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | #### 文档下载 4 | 5 | 由于大量社区用户商业使用阶段需要,我们提供以下简单文档,后续会根据实际需求增加: 6 | 7 | | 文档 | 文档内容 | 文件下载地址 | 8 | | ------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | 9 | | HFish部署方案 | 包含HFish推荐部署方式,推荐服务器大小,最佳实践方案等 | [HFish部署方案](http://hfish.cn-bj.ufileos.com/2022-HFish%E9%83%A8%E7%BD%B2%E6%96%B9%E6%A1%88.pdf) | 10 | | HFish处置手册 | 包含内外网场景下的推荐配置,告警列表的详细解释,处置方案等。 | [HFish处置手册](http://hfish.cn-bj.ufileos.com/HFish%E5%A4%84%E7%BD%AE%E6%89%8B%E5%86%8C.pdf) | 11 | 12 | -------------------------------------------------------------------------------- /docs/4-4-yara.md: -------------------------------------------------------------------------------- 1 | #### HFish检测语法介绍 2 | 3 | HFish使用的yara监测语法分为三部分,rule,string和condition。样例如下: 4 | 5 | ``` 6 | rule name1 7 | { 8 | 9 | strings: 10 | $str1 = "1" 11 | $str12 = "2" 12 | 13 | condition: 14 | any of them 15 | } 16 | ``` 17 | 18 | 该样例代表的是,我建立了一个叫做"name1"的检测规则,如果我检测的数据中出现1或者2,代表这个数据触碰了我建立的name1规则。 19 | 20 | 其他Yara规则中标准的meta字段,hfish使用填空的形式进行收集,详情界面可以参见: 21 | 22 | image-20220525204450737 23 | 24 | 25 | 26 | 最后附上一篇较为全面的Yara检测规则语法参考 27 | 28 | https://b1ackie.cn/2021/09/13/yara%E8%A7%84%E5%88%99%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%EF%BC%88%E4%B8%80%EF%BC%89/ 29 | 30 | -------------------------------------------------------------------------------- /docs/down.md: -------------------------------------------------------------------------------- 1 | #### 发版说明 2 | 3 | 当前最新版本为 HFish v3.3.5 4 | 5 | [Linux AMD64 安装说明文档,包括一句话命令安装和离线安装包](https://hfish.net/#/2-2-linux) 6 | 7 | [Linux ARM64 安装说明文档,包括一句话命令安装和离线安装包](https://hfish.net/#/2-2-linux) 8 | 9 | [Windows x64 安装说明文档,包括一句话命令安装和离线安装包](https://hfish.net/#/2-3-windows) 10 | 11 | [Docker(Linux x86)安装说明文档,包括一句话命令安装](https://hfish.net/#/2-1-docker) 12 | 13 | ``` 14 | 发布时间:2024年7月16日 15 | 支持2.7.0及以上版本顺滑升级 16 | 17 | 版本更新: 18 | 1.【新增】支持国产化,兼容ARM64类型的节点 19 | 2.【修复】修复了系统web框架存在ssl漏洞问题 20 | 3.【修复】修复了部分其他bug 21 | 22 | 升级参考:https://hfish.net/#/update 23 | 友情提示:强烈建议将数据库更换为MySQL,SQLite无法支持大批量存储查询,很可能因为死锁导致无反应! 24 | 问题讨论:有任何问题可以给我们发邮件或群里讨论,感谢各位。 25 | ``` 26 | 27 | 28 | #### 联系我们 29 | 30 | ![joinus](/images/joinus.png) 31 | 32 | -------------------------------------------------------------------------------- /docs/5-2-asset.md: -------------------------------------------------------------------------------- 1 | #### 账号失陷监控 2 | 3 | > 【威胁实体】-【账号资产】页面收集了所有被用来攻击的账号密码,通过配置可对企业失陷账号进行有效监控 4 | 5 | image-20210506152344041 6 | 7 | > 通过设定高级监测策略,辅助企业进行失陷账号监控,建议输入企业邮箱、企业域名、员工姓名等信息,随时监控泄漏 8 | 9 | 1、点击界面右上角【高级监测策略】 10 | 11 | image-20210401150526485 12 | 13 | 2、按照规则要求,导入csv文件。 14 | 15 | `注意!务必按照提示规则进行写入` 16 | 17 | image-20210506153037454 18 | 19 | 3、可查看到所有匹配高级监测策略的数据(带颜色),帮助安全人员精准排查泄漏账号。 20 | 21 | image-20210506153041469 22 | -------------------------------------------------------------------------------- /docs/5-4-custom.md: -------------------------------------------------------------------------------- 1 | #### Custom蜜罐 2 | 3 | 一个经常容易误解的事实是,Custom蜜罐是用于**接受**其他蜜罐平台数据的接口,其目的是为了实现蜜罐告警数据的统一管理,便于用户通过HFish观测整个企业内部各种蜜罐告警数据。 4 | 5 | #### 使用方法 6 | 7 | > 1、调用apikey:进入该蜜罐的后台,可以看到蜜罐的config文件,文件内有一个apikey。 8 | 9 | ![image-20221031222131166](http://img.threatbook.cn/hfish/image-20221031222131166.png) 10 | 11 | 12 | > 2、使用该apikey,将数据上传到HFish管理端 13 | 14 | 传输方式:post 15 | 16 | 传输地址:https://ip:8989/api/v1/report 17 | 18 | body内使用form格式填写apikey和info,info为您希望打入hfish的其他蜜罐信息。 19 | 20 | **参考示例:** 21 | 22 |
23 | 24 |
25 | -------------------------------------------------------------------------------- /docs/detail-damaged-account.md: -------------------------------------------------------------------------------- 1 | 2 | #### 账号资产 3 | 4 | 该页面用于收集所有被用来攻击的账号密码,通过配置可对企业失陷账号进行有效监控。 5 | 6 | image-20210506152344041 7 | 8 | > 通过设定高级监测策略,辅助企业进行失陷账号监控,建议输入企业邮箱、企业域名、员工姓名等信息,随时监控泄漏 9 | 10 | 1、点击界面右上角【高级监测策略】 11 | 12 | image-20210401150526485 13 | 14 | 2、按照规则要求,导入csv文件。 15 | 16 | `注意!务必按照提示规则进行写入` 17 | 18 | image-20210506153037454 19 | 20 | 3、可查看到所有匹配高级监测策略的数据(带颜色),帮助安全人员精准排查泄漏账号。 21 | 22 | image-20210506153041469 -------------------------------------------------------------------------------- /docs/detail-template-mgmt.md: -------------------------------------------------------------------------------- 1 | 2 | #### 模板管理 3 | 4 | 该页面用于展示现有模板及其被引用情况,并且允许用户自行定制经常被重复使用或有批量修改需求的一组蜜罐服务模板。 5 | 6 | 有两种方式建立模板:通过【模板管理】页面或在【节点管理】页面。 7 | 8 | #### 制作服务模板 9 | 10 | 在【模板管理】页面,用户可以自定义模板名称、最多10个蜜罐服务,并添加一段描述完成模板制作。 11 | 12 | `注意:当前每个模板最多支持10个蜜罐服务。` 13 | 14 | image-20210616170816548 15 | 16 | #### 调整传输协议 17 | 18 | 用户点击上一步制作好的模板,可以对某个服务的传输协议进行调整。针对Web应用仿真、网络设备服务、安全设备服务以及IOT服务,可以根据自身业务场景和网络情况,选择其具体的传输协议(HTTP或者HTTPS),从而让蜜罐更符合当前网络结构,更好吸引攻击者视线。 19 | 20 | image-20210506155628363 21 | 22 | 23 | 最后,在【节点管理】页面,展开某个节点,可以通过右侧下拉菜单选择需要的模板。一个模板可以被无限的节点使用,用户修改模板时,所有引用该模板的节点蜜罐服务都会被实时更新,用户可以利用该特性批量修改节点上的蜜罐服务。 24 | -------------------------------------------------------------------------------- /docs/detail-intel.md: -------------------------------------------------------------------------------- 1 | #### 情报对接 2 | 3 | 该页面提供对接两种来自微步在线的威胁情报,欢迎社区用户贡献新的情报接口。用户还可以在该页面添加白名单IP,加入白名单的IP攻击蜜罐不会产生告警。 4 | 5 | > 为什么要对接威胁情报 6 | 7 | 对接精准的云端的威胁情报,可对攻击行为进行更准的研判,帮助用户更科学的进行处置。 8 | 9 | image-20210806093718827 10 | 11 | 对接威胁情报后,当HFish蜜罐捕获到了来自外网的攻击行为,HFish会把在云端查询到的情报在本地缓存3天,保持攻击情报时效性的同时,节省查询次数。 12 | 13 | 14 | > 对接微步在线本地威胁情报管理平台(TIP) 15 | 16 | 该接口对接微步商业产品本地威胁情报管理平台(TIP) 17 | 18 | image-20210806093916207 19 | 20 | 21 | #### 本地白名单 22 | 23 | 在企业使用使用场景中,可能会有内/外部地址被用于扫描内网资产,这可能会导致HFish蜜罐产生大量误报,为避免此问题,用户可以将内/外部地址一个一行加入白名单中。 24 | 25 | 用户也可以通过鼠标在【攻击列表】页面的攻击IP上悬停,点击最后一个图标,或在【攻击来源】页面点击相应图标将该IP快速添加到白名单中。 26 | 27 | `注意:加入白名单的IP不会再产生告警信息。` 28 | -------------------------------------------------------------------------------- /docs/detail-qqmail.md: -------------------------------------------------------------------------------- 1 | 2 | #### QQ信箱配置 3 | 4 | 该页面介绍如果配置HFish通过QQ信箱发送告警邮件。 5 | 6 | > 登录QQ信箱进入设置页面 7 | 8 | 打开[https://mail.qq.com](https://mail.qq.com/),登录后进入【设置】页面 9 | 10 | 11 | 12 | 13 | > 开启SMTP功能和获取SMTP专用密码 14 | 15 | 在【设置】页面中下拉找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”段落,如下图: 16 | 17 | 18 | 19 | 第一步,开启“POP3/SMTP服务”服务,根据提示进行手机验证; 20 | 第二步,点击“生成授权码”,根据提示进行手机验证,获取SMTP专用密码,如下图: 21 | 22 | 23 | 24 | 25 | > HFish页面配置 26 | 27 | 登录HFish,打开【告警配置】-【通知配置】,找到“邮件服务器配置”段落,按照下图填写,点击【测试】: 28 | 29 | 30 | 31 | 如果一切正常,系统会提示“测试成功”,用户信箱会收到一封测试邮件。 -------------------------------------------------------------------------------- /docs/known.md: -------------------------------------------------------------------------------- 1 | 2 | #### 已知问题 3 | 4 | 以下问题已经被发现或反馈: 5 | 6 | 1、(暂未解决) HFish作为一款安全类的诱捕软件,其部分权限可能会跟本地杀毒软件有冲突。这是蜜罐类产品的正常特性,我们建议蜜罐机器暂时关停杀毒软件或设置杀毒软件将HFish加为白名单,当前已知冲突:**卡巴斯基**; 7 | 8 | 2、(暂未解决) HFish管理端Windows版本分发蜜饵时使用了Windows自带的certutil程序,该方法可能会导致Windows自带的默认配置的杀毒软件Windows Defender告警,并导致certutil执行失败,建议分发前在“病毒和威胁防护设置”中暂时关闭实时保护,或使用手动下载方式部署蜜饵; 9 | 10 | 3、(暂未解决) 经过测试,由于华为鲲鹏920 ARM aarch64架构CPU无法向下兼容aarch32,HFish暂时无法在该CPU上运行; 11 | 12 | 4、(暂未解决) 2.5.x和2.6.x版本不支持自动平滑升级到2.7.0,用户可以查看 https://hfish.net/#/update ,按照指引进行手动升级,可实现数据顺滑迁移; 13 | 14 | 5、(已解决) 2.6.2添加的Linux节点升级到2.7.0后,从该Linux节点上拉取蜜饵会出现HTTP 404错误,内置节点和Windows节点不受影响,该问题将在下个版本修复; 15 | 16 | 6、(已解决) 2.7.0版本中使用MySQL数据库时,如果用户使用的MySQL密码还有特殊字符会导致无法连接,建议暂时使用字符和数字的组合当密码,该问题将在下个版本修复; 17 | 18 | 7、(已解决) 新安装2.7.0管理端后,如果添加32位CentOS节点,该节点会崩溃,2.6.2已添加的32位CentOS节点升级到2.7.0不受影响; 19 | 20 | 8、(已解决) 3.3.3版本存在内存泄露,导致Windows Agent崩溃,3.3.4已经修复该问题; 21 | 22 | -------------------------------------------------------------------------------- /docs/6-2-2wechat.md: -------------------------------------------------------------------------------- 1 | 2 | #### 企业微信配置流程 3 | 4 | 1、Mac版本的企业微信中,在群名称上点击右键,选择【添加群机器人】 5 | 6 | image-20210903150833262 7 | 8 | `注意:Windows版本的企业微信中,右键没有此选项,请打开群,点击群右上角的“…”按钮` 9 | 10 | 2、选择顶部的“新创建一个机器人”,机器人名称写HFish 11 | 12 | 13 | 14 | 3、复制webhook token 15 | 16 | `注意:token是"access_toke="之后的数字和字母串的部分` 17 | 18 | image-20210903150945171 19 | 20 | 4、在HFish界面填写,测试并保存 21 | 22 | image-20210903152406368 23 | 24 | 25 | 企业微信官方文档:https://work.weixin.qq.com/help?doc_id=13376#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E7%BE%A4%E6%9C%BA%E5%99%A8%E4%BA%BA 26 | -------------------------------------------------------------------------------- /docs/detail-alarm.md: -------------------------------------------------------------------------------- 1 | 2 | #### 告警配置 3 | 4 | 对于蜜罐捕获到的信息,跟据您不同的安全运营流程,您可能需要把该信息第一时间通知其它的安全设备,也可能需要把该信息通知给相关的安全运营人员。 5 | 6 | 【告警配置】页面分为两个标签页,分别是【告警策略】和【通知配置】。 7 | 8 | 【告警策略】用于配置发送告警的内容和告警方式(syslog、邮件或webhook),目前支持威胁告警和系统通知两种类型,其中威胁告警是系统感知攻击时的告警,系统通知是系统自身运行状态的告警; 9 | 10 | 【通知配置】用于配置使用syslog、邮件或webhook发送告警时所需的参数; 11 | 12 | #### 告警策略 13 | 14 | > 添加一个新的策略 15 | 16 | ![image-20210209202316155](https://hfish.net/images/20210812135455.png) 17 | 18 | 19 | > 设置名称、类型和通知方式 20 | 21 | ![image-20210209202737224](https://hfish.net/images/20210812135501.png) 22 | 23 | 24 | #### 通知配置 25 | 26 | > syslog服务器配置 27 | 28 | 支持使用TCP或UDP两种协议外发告警策略,HFish支持同时外发5路syslog进行通知。 29 | 30 | > 邮件服务器配置 31 | 32 | 设置SMTP主机、协议、端口、SMTP账号、密码、发件人名称后、收件人地址后,外发告警。 33 | 34 | 35 | > Webhook配置 36 | 37 | Webhook是一种API概念,即当事件发生时,事件产生方使用HTTP(s)的方式调用某个Web API接口,该接口可以灵活的进行后续工作。 38 | 39 | HFish支持四种Webhook通知,分别是:钉钉、飞书、企业微信和自定义方式。 40 | 41 | -------------------------------------------------------------------------------- /docs/detail-nodegourp.md: -------------------------------------------------------------------------------- 1 | 2 | #### 告警配置 3 | 4 | 对于蜜罐捕获到的信息,跟据您不同的安全运营流程,您可能需要把该信息第一时间通知其它的安全设备,也可能需要把该信息通知给相关的安全运营人员。 5 | 6 | 【告警配置】页面分为两个标签页,分别是【告警策略】和【通知配置】。 7 | 8 | 【告警策略】用于配置发送告警的内容和告警方式(syslog、邮件或webhook),目前支持威胁告警和系统通知两种类型,其中威胁告警是系统感知攻击时的告警,系统通知是系统自身运行状态的告警; 9 | 10 | 【通知配置】用于配置使用syslog、邮件或webhook发送告警时所需的参数; 11 | 12 | #### 告警策略 13 | 14 | > 添加一个新的策略 15 | 16 | ![image-20210209202316155](https://hfish.net/images/20210812135455.png) 17 | 18 | 19 | > 设置名称、类型和通知方式 20 | 21 | ![image-20210209202737224](https://hfish.net/images/20210812135501.png) 22 | 23 | 24 | #### 通知配置 25 | 26 | > syslog服务器配置 27 | 28 | 支持使用TCP或UDP两种协议外发告警策略,HFish支持同时外发5路syslog进行通知。 29 | 30 | > 邮件服务器配置 31 | 32 | 设置SMTP主机、协议、端口、SMTP账号、密码、发件人名称后、收件人地址后,外发告警。 33 | 34 | 35 | > Webhook配置 36 | 37 | Webhook是一种API概念,即当事件发生时,事件产生方使用HTTP(s)的方式调用某个Web API接口,该接口可以灵活的进行后续工作。 38 | 39 | HFish支持四种Webhook通知,分别是:钉钉、飞书、企业微信和自定义方式。 40 | 41 | -------------------------------------------------------------------------------- /docs/en/2-4-mariadb.md: -------------------------------------------------------------------------------- 1 | ### Database selection options 2 | 3 | 4 | 5 | In general, MySQL database is suitable for all deployment situations and is also our preferred database. Other data processing capabilities and concurrent compatibility are better than SQLite. 6 | 7 | | Deployment status | Testing status | Stable deployment | 8 | | ---------- | ---------------- | -------- | 9 | | Applicable database | SQLite/MySQL | MySQL | 10 | 11 | 12 | 13 | ### SQLite details 14 | 15 | The SQLite database is used by the HFish system by default, and the specific path of the self-contained initialized db is /usr/share/db/hfish.db 16 | 17 | 18 | 19 | ### Replace SQLite with MySQL 20 | 21 | 22 | 23 | HFish currently provides the "database configuration" function, which can quickly replace the database 24 | 25 | ![image-20211116210129137](https://hfish.net/images/image-20211116210129137.png) -------------------------------------------------------------------------------- /docs/detail-dashboard.md: -------------------------------------------------------------------------------- 1 | #### 首页 2 | 3 | HFish在【首页】中对攻击数据进行可视化处理,希望能够协助对攻击态势的分析和统计。 4 | 5 | 数据首页包括以下几部分 6 | 7 | #### 系统运行状态 8 | 9 | 针对HFish系统的运行状况,HFish对节点状态和蜜罐状态提供了可视化查看能力. 10 | 11 | 针对管理端的运行情况,我们提供了状态栏进行查看 12 | 13 | image-20210914160036385 14 | 15 | 16 | 17 | #### 威胁链条 18 | 19 | 参考Kill Chain,HFish在攻击者的攻击链路,从不同的威胁等级进行区分,绘制了HFish蜜罐的攻击链路图。从扫描/攻击/登陆尝试/高危登陆尝试和失陷这五个角度进行区分,进行更好的威胁发现。 20 | 21 | ![image-20210914160703477](https://hfish.net/images/image-20210914160703477.png) 22 | 23 | 24 | #### 被攻击趋势 25 | 26 | 从攻击IP的分布趋势、蜜罐服务的被攻击趋势以及部署节点的被攻击趋势,三个部分进行可视化分析展示,更好了解自己的威胁来源。迅速做出对策和反应。 27 | 28 | image-20210914160836213 29 | 30 | image-20210914160912912 31 | -------------------------------------------------------------------------------- /docs/4-2-scan.md: -------------------------------------------------------------------------------- 1 | #### 扫描感知 2 | 3 | 该页面用于展示HFish蜜罐节点被TCP、UDP和ICMP三种协议的全端口扫描探测行为。 4 | 5 | ![image-20210730154355445](https://hfish.net/images/20210730154357.png) 6 | 7 | 即使节点相关端口没有开放,HFish仍能记录下扫描行为,此外,HFish还会记录节点主机本身外联行为。 8 | 9 | 目前扫描感知列表内能够展示的信息如下: 10 | 11 | ``` 12 | 1、扫描IP 13 | 2、威胁情报 14 | 3、被扫描节点 15 | 4、被扫描IP 16 | 5、扫描类型 17 | 6、被扫描端口 18 | 7、节点位置 19 | 8、扫描开始时间 20 | 9、扫描持续时间 21 | ``` 22 | 23 | `注意:Windows节点的扫描感知依赖WinPcap,需要手动进行下载安装!` 24 | 25 | WinPcap官方链接:https://www.winpcap.org/install/bin/WinPcap_4_1_3.exe 26 | 27 | 28 | #### 扫描感知异常 29 | 30 | HFish通过节点端构造“蜜罐服务”,因此,**部署节点的机器不建议运行任何正常业务**,但很多用户往往会将**正常业务使用的笔记本、虚拟机作为节点机器**。 31 | 32 | 这种情况下,扫描数据常常会记录下用户软件访问网络的信息,利用Windows用户中,HFish经常检测到TCP/445端口的被访问或访问情况。 33 | 34 | 此外,有很多用户反馈,将蜜罐节点部署在外网数日早上到海量扫描攻击,导致HFish页面响应慢,如果对扫描探测不敏感,可以选择点击页面左上角开关暂时关闭扫描感知功能。 35 | 36 | 如果您的扫描感知出现了其他问题,欢迎加入官方交流微信群反馈。 37 | 38 | ![image-20220729162931543](http://img.threatbook.cn/hfish/image-20220729162931543.png) 39 | -------------------------------------------------------------------------------- /docs/6-2-3lark.md: -------------------------------------------------------------------------------- 1 | 2 | #### 企业微信配置流程 3 | 4 | 1、在飞书中,进入群,点击设置按钮,选择【群机器人】 5 | 6 | image-20211220221635593 7 | 8 | `注意:当前截图版本为飞书5.0,不同版本界面有区别,但都在群设置内找到群机器人入口` 9 | 10 | 2、点选群机器人,选择添加机器人 11 | 12 | image-20211220220515428 13 | 14 | image-20211220220556975 15 | 16 | 3、复制webhook token 17 | 18 | `注意:token是"access_toke="之后的数字和字母串的部分` 19 | 20 | image-20211220221136447 21 | 22 | 4、在HFish界面填写,测试并保存 23 | 24 | ![image-20211220220946291](https://hfish.net/images/image-20211220220946291.png) 25 | 26 | image-20211220220958972 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /docs/6-2-1dingtalk.md: -------------------------------------------------------------------------------- 1 | 2 | #### 配置钉钉通知接口 3 | 4 | > 添加钉钉机器人 5 | 6 | 1、进入钉钉群,点击设置选,选择添加群助手 7 | 8 | image-20210803203953937 9 | 10 | 2、选择自定义机器人 11 | 12 | image-20210803204029159 13 | 14 | 3、确认添加 15 | 16 | 1301627983256_.pic_hd 17 | 18 | 4、 配置机器人 19 | 20 | `注意:自定义关键词一定要填写HFish` 21 | 22 | 1311627983622_.pic_hd 23 | 24 | 5、复制webhook token 25 | 26 | `注意:token是"access_toke="之后的数字和字母串的部分` 27 | 28 | 1321627983675_.pic_hd 29 | 30 | 6、在HFish界面填写,测试并保存 31 | 32 | 1331627983967_.pic_hd 33 | 34 | -------------------------------------------------------------------------------- /docs/3-3-checkattack.md: -------------------------------------------------------------------------------- 1 | #### 查看攻击详情 2 | 3 | 当前,HFish提供四个不同的页面进行**攻击详查看**,分别为:**攻击列表**、**扫描感知**、**攻击来源**、**账号资产** 4 | 5 | image-20210902143712779 6 | 7 | 四种功能分别代表四种不同的攻击数据场景 8 | 9 | | | 功能简介 | 功能原理 | 10 | | ------------- | -------------------------------------- | ------------------------------------------------------------ | 11 | | **攻击列表** | 收集所有对蜜罐的攻击 | 节点部署蜜罐后,攻击者对蜜罐的**所有攻击信息**都会被收录到「攻击列表」中。 | 12 | | **扫描感知** | 收集节点主机网卡的所有连接信息 | 节点生成之后,HFish会**记录对节点所有网卡的连接**,包括来访IP,连接IP和端口。 | 13 | | **攻击来源** | 收集了所有连接和攻击节点的IP信息 | **所有**尝试连接和攻击节点的**IP信息**都被记录在攻击来源中,如果蜜罐溯源和反制成功,信息也会被记录其中。 | 14 | | **账号资产** | 收集了所有攻击者爆破蜜罐使用的账号密码 | HFish会**记录**攻击者对所有蜜罐进行**暴力破解时使用的账号密码**,进行统一展示,用户还可**自定义监控词汇**,如员工姓名、公司名称等,一旦与攻击者使用的账号重合,可高亮显示并告警。 | 15 | 16 | 详细介绍可查看: 17 | 18 | [攻击列表](4-1-attack) 19 | 20 | [扫描感知](4-2-scan) 21 | 22 | [攻击来源](5-1-source) 23 | 24 | [账号资产](5-2-asset) 25 | -------------------------------------------------------------------------------- /docs/thanksforall.md: -------------------------------------------------------------------------------- 1 | 2 | #### 致谢爱好者 3 | 4 | HFish作为一款免费蜜罐产品,在此由衷且真挚的向所有贡献过有价值意见的用户致谢,是你们一直以来的支持,让我们始终怀有期待,在此,HFish真诚感激,愿与各位携手同行,对抗网络攻击这件事道阻且长,你我同行,或许就能为彼此遮蔽一片风雨。 5 | 6 | image-20211208095138935 7 | 8 | 9 | > ##### 特别感谢名单 10 | 11 | 此名单记录曾经给HFish社区实际贡献的朋友: 12 | ``` 13 | **Github用户 JamCh01**:为HFish提供了完善的nginx配置文档,非常感谢~ 14 | **说书人(帅哥)**:愿意将自己的开发成果赋能到社区,为HFish提供了5种全新的web蜜罐,非常感谢~ 15 | ``` 16 | 17 | > ##### 感谢名单 18 | 19 | 感谢名单记录曾经给HFish非常多帮助的朋友: 20 | ``` 21 | 十一 22 | @loca1h0st 23 | 我是爱吃橙子的牛 24 | (这不是空行,是一个名字为空白的用户) 25 | 啃鸭子 26 | IIG 27 | eopA1x 28 | Testament 29 | Raison 30 | Akityo 31 | cyclcyc 32 | 竹马老去 33 | 月赋情长 34 | koreyshi 35 | ALi 36 | 老笨笨 37 | 网络运维 38 | 今天许愿了嘛 39 | 蒲公英的梦 40 | Hasauei 41 | ``` 42 | 43 | 以上所有排名不分先后,因为过去的时间HFish得到太多帮助,因此大概率会有漏缺。 44 | 45 | 46 | > ##### 在GitHub上commit 47 | 48 | HFish官网已在GitHub开源,诚挚期待各位可以贡献自己销魂的使用灵感、自定义的蜜罐或者觉得文档中疏漏的地方,运营人员会尽快确认并通过。 49 | 50 | Github项目地址:https://github.com/hacklcx/HFish 51 | 52 | 欢迎扫码加入HFish微信群: 53 | 54 | ![joinus](/images/joinus.png) 55 | 56 | -------------------------------------------------------------------------------- /docs/2-3-windows.md: -------------------------------------------------------------------------------- 1 | #### Windows环境手动部署管理端 2 | 3 | Windows环境不支持一键部署管理端,用户需要手动部署。 4 | 5 | > ##### 下载安装包[HFish-Windows-amd64](https://hfish.cn-bj.ufileos.com/hfish-3.3.5-windows-amd64.tgz) ##### 6 | 7 | > ##### 在防火墙上放行TCP/4433、TCP/4434端口出入双向流量 ##### 8 | 9 | 如需其他蜜罐服务,也需要打开对应端口。 10 | 11 | > ##### 安装包解压缩后,运行HFish-Windows-amd64目录下的install.bat ##### 12 | 13 | install.bat脚本会在**当前目录**安装HFish,因此运行脚本前请确保当前目录路径恰当。 14 | 15 | > ##### 登陆web界面 ##### 16 | 17 | ``` 18 | 登陆链接:https://[ip]:4433/web/ 19 | 账号:admin 20 | 密码:HFish2021 21 | ``` 22 | 23 | 如果管理端的IP是192.168.1.1,则登陆链接为:https://192.168.1.1:4433/web/ 24 | 25 | URL中/web/路径不能少, 26 | 27 | 安装完成登录后,在「节点管理」页面中可看到管理端服务器上的默认节点,如下图: 28 | 29 | image-20210914113134975 30 | 31 | `注意事项:` 32 | 33 | `1、当前HFish分为两个进程,"hfish"进程为管理进程,负责监测、拉起和升级蜜罐主程序。"管理端"进程为蜜罐主程序进程,其执行蜜罐软件程序。因此,安装时候,请务必按照要求,执行hfish进程;如果直接执行管理端程序,可能会导致程序不稳定,升级失败等情况。` 34 | 35 | `2、HFish的windows版数据库文件当前存储在 C:\Users\Public\hfish 目录,重装HFish后,HFish默认自动读取该目录内的配置和数据"。` 36 | 37 | `3、如果无妨访问Web管理页面,检查TCP/4433和TCP/4434是否可被访问` 38 | 39 | -------------------------------------------------------------------------------- /docs/3-1-nodemgmt.md: -------------------------------------------------------------------------------- 1 | #### 添加/删除节点 2 | 3 | #### 内置节点 4 | 5 | 安装HFish管理端后,在管理端所在机器上会默认建立节点感知攻击,该节点被命名为【内置节点】。 6 | 7 | 该节点将默认开启部分服务,包括FTP、SSH、Telnet、Zabbix监控系统、Nginx蜜罐、MySQL蜜罐、Redis蜜罐、HTTP代理蜜罐、ElasticSearch蜜罐和通用TCP端口监听。 8 | 9 | `注意:该节点不能被删除,但可以暂停。` 10 | 11 | image-20210902210912371 12 | 13 | 14 | #### 新增节点 15 | 16 | > ##### 进入【节点管理】页面,点击【增加节点】 17 | 18 | image-20210902172749029 19 | 20 | > ##### 根据节点设备类型选择对应的安装包和回连地址 21 | 22 | image-20210902172832815 23 | 24 | > ##### 回连地址设置 25 | 26 | HFish会自动获取当前服务器IP地址,但是例如在云环境,有时候获取的是内网地址,用户需要确保该回连地址和端口确实可以被所有节点联通。 27 | 28 | image-20210902172916191 29 | 30 | > ##### 在节点机器执行命令语句或安装包,即可成功部署节点。 31 | 32 | 33 | 34 | #### 删除节点 35 | 36 | > ##### 进入【节点管理】页面,在节点列表中找到要删除的节点,点击该节点右侧【删除】,HFish需要二次验证您的管理员身份,输入admin密码后,节点将被删除。 37 | 38 | 节点被删除后,节点端进程会自动退出,但程序会保留在原有路径,需要手动二次删除,管理端上已收集的关于该节点的所有攻击数据不会丢失,仍然能查看。 39 | -------------------------------------------------------------------------------- /docs/3-2-potmgmt.md: -------------------------------------------------------------------------------- 1 | #### 添加/删除蜜罐 2 | 3 | 每个蜜罐服务必须由在节点程序构建,这里指的蜜罐服务例如MySQL、Redis等具体服务。因此用户必须先添加节点后才可以为节点配置蜜罐服务,HFish提供两种方式配置节点服务。 4 | 5 | #### 直接修改蜜罐服务 6 | 7 | 该方法可以快速修改单个节点上的蜜罐服务,其操作步骤如下: 8 | 9 | > ##### 点击单个节点,可直接对节点上的服务进行添加和删除 ##### 10 | 11 | image-20210914120052175 12 | 13 | 14 | 15 | #### 创建模版,应用到多节点 16 | 17 | 蜜罐模板便于用户同时管理很多节点,批量更改蜜罐服务,即将一套模板批量应用到多个节点上,其操作步骤如下: 18 | 19 | > ##### 进入【模版管理】页面,点击【新建模板】,输入模板名称,选择蜜罐服务,填写描述信息,点击【确定】保存 20 | 21 | image-20210914115931102 22 | 23 | > ##### 进入【节点管理】页面,展开具体节点,选择上面创建的蜜罐模板 24 | 25 | image-20210616173015062 26 | 27 | 28 | > ##### 应用模板后,蜜罐服务状态会短暂显示为【启用】,此时蜜罐尚未部署完成,只有蜜罐服务状态变为【在线】才表示蜜罐服务正常工作 29 | 30 | image-20210616173053947 31 | 32 | > ##### 如果状态显示为【离线】,说明蜜罐服务没有正常启动,可将鼠标移动到问号上查看提示或请参考我们后面的【排错说明】 33 | 34 | image-20210616173128526 35 | 36 | -------------------------------------------------------------------------------- /docs/email.md: -------------------------------------------------------------------------------- 1 | ### Syslog外发信息字段 2 | 3 | #### 威胁告警外发字段: 4 | 5 | **HFish-威胁告警** 6 | 7 | ``` 8 | client //节点名称 9 | client_ip //节点IP 10 | attack_type //攻击类型,包含scan/attack/signon/hr_signon/compromise(扫描/攻击/登陆/高危登陆/失陷) 11 | scan_type //扫描类型(udp/tdp/icmp) 12 | scan_port //扫描端口 (为空时候为N/A) 13 | type //攻击蜜罐 14 | class //蜜罐类型 15 | account //账号信息 16 | src_ip //攻击来源IP 17 | labels //威胁情报标签 18 | dst_ip //受害IP 19 | geo //攻击来源ip的地理位置 20 | time //攻击发生时间 21 | threat_name: aaa,bbb,ccc //威胁行为名称 22 | threat_level: high //威胁行为等级 23 | info //攻击详情(为空填写N/A) 24 | ``` 25 | 26 | #### 系统告警外发字段 27 | 28 | **HFish-节点离线告警** 29 | 30 | ``` 31 | HFish-节点离线告警 //告警标题 32 | Server_ip //HFish系统IP 33 | client //离线节点名称 34 | client_ip //离线节点IP 35 | ``` 36 | 37 | **HFish-蜜罐离线告警** 38 | 39 | ``` 40 | title //告警标题 41 | Server_ip //HFish系统IP 42 | client //节点名称 43 | client_ip //节点IP 44 | class //离线蜜罐名称(如果监测到多个蜜罐离线,多个蜜罐在一条记录中发送) 45 | ``` 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /docs/syslog.md: -------------------------------------------------------------------------------- 1 | ### Syslog外发信息字段 2 | 3 | #### 威胁告警外发字段: 4 | 5 | **HFish-威胁告警** 6 | 7 | ``` 8 | client //节点名称 9 | client_ip //节点IP 10 | attack_type //攻击类型,包含scan/attack/signon/hr_signon/compromise(扫描/攻击/登陆/高危登陆/失陷) 11 | scan_type //扫描类型(udp/tdp/icmp) 12 | scan_port //扫描端口 (为空时候为N/A) 13 | type //攻击蜜罐 14 | class //蜜罐类型 15 | account //账号信息 16 | src_ip //攻击来源IP 17 | labels //威胁情报标签 18 | dst_ip //受害IP 19 | geo //攻击来源ip的地理位置 20 | time //攻击发生时间 21 | threat_name: aaa,bbb,ccc //威胁行为名称 22 | threat_level: high //威胁行为等级 23 | info //攻击详情(为空填写N/A) 24 | ``` 25 | 26 | #### 系统告警外发字段 27 | 28 | **HFish-节点离线告警** 29 | 30 | ``` 31 | HFish-节点离线告警 //告警标题 32 | Server_ip //HFish系统IP 33 | client //离线节点名称 34 | client_ip //离线节点IP 35 | ``` 36 | 37 | **HFish-蜜罐离线告警** 38 | 39 | ``` 40 | title //告警标题 41 | Server_ip //HFish系统IP 42 | client //节点名称 43 | client_ip //节点IP 44 | class //离线蜜罐名称(如果监测到多个蜜罐离线,多个蜜罐在一条记录中发送) 45 | ``` 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /docs/webhook.md: -------------------------------------------------------------------------------- 1 | ### Syslog外发信息字段 2 | 3 | #### 威胁告警外发字段: 4 | 5 | **HFish-威胁告警** 6 | 7 | ``` 8 | client //节点名称 9 | client_ip //节点IP 10 | attack_type //攻击类型,包含scan/attack/signon/hr_signon/compromise(扫描/攻击/登陆/高危登陆/失陷) 11 | scan_type //扫描类型(udp/tdp/icmp) 12 | scan_port //扫描端口 (为空时候为N/A) 13 | type //攻击蜜罐 14 | class //蜜罐类型 15 | account //账号信息 16 | src_ip //攻击来源IP 17 | labels //威胁情报标签 18 | dst_ip //受害IP 19 | geo //攻击来源ip的地理位置 20 | time //攻击发生时间 21 | threat_name: aaa,bbb,ccc //威胁行为名称 22 | threat_level: high //威胁行为等级 23 | info //攻击详情(为空填写N/A) 24 | ``` 25 | 26 | #### 系统告警外发字段 27 | 28 | **HFish-节点离线告警** 29 | 30 | ``` 31 | HFish-节点离线告警 //告警标题 32 | Server_ip //HFish系统IP 33 | client //离线节点名称 34 | client_ip //离线节点IP 35 | ``` 36 | 37 | **HFish-蜜罐离线告警** 38 | 39 | ``` 40 | title //告警标题 41 | Server_ip //HFish系统IP 42 | client //节点名称 43 | client_ip //节点IP 44 | class //离线蜜罐名称(如果监测到多个蜜罐离线,多个蜜罐在一条记录中发送) 45 | ``` 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /docs/1-1-honeypot.md: -------------------------------------------------------------------------------- 1 | #### 蜜罐的定义 2 | 3 | **蜜罐** 技术本质上是一种对攻击方进行**欺骗的技术**,通过布置一些作为**诱饵的主机**、**网络服务** 或者**信息**,诱使攻击方对它们实施攻击,从而可以对攻击行为进行**捕获** 和**分析**,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。 4 | 5 | #### 蜜罐的优势 6 | 7 | > ##### 误报少,告警准确 ##### 8 | 9 | 蜜罐作为正常业务的 "**影子**" 混淆在网络中,正常情况下不应被触碰,每次触碰都可以视为威胁行为。例如,在其它检测型产品中,将正常请求误判为攻击行为的误报很常见,而对于蜜罐来说,几乎**不存在正常请求**,即使有也是探测行为。 10 | 11 | > ##### 检测深入,信息丰富 ##### 12 | 13 | 不同于其它检测型安全产品,蜜罐可以**模拟业务服务甚至对攻击的响应**,完整获取整个交互的所有内容,最大深度的获得攻击者探测行为之后的N个步骤,可检测点更多,信息量更大。 14 | 15 | 例如,对于**SSL加密** 或**工控环境**,蜜罐可以轻松伪装成业务,得到完整攻击数据。 16 | 17 | > ##### 主动防御,预见未来,生产情报 ##### 18 | 19 | 在每个企业,几乎每分钟都在发生这样的场景:潜伏在互联网角落中的攻击者发起一次攻击探测,防守方业务不存在安全漏洞,IDS告警后事情就不了了之了。 20 | 21 | 而应用蜜罐型产品后,转换为**主动防御思路**:蜜罐响应了攻击探测,诱骗攻击者认为存在漏洞,进而发送了更多指令,包括从远端地址下载木马程序,而这一切不仅被完整记录下来,还可以转化为威胁情报供给传统检测设备,用于在未来的某个时刻,准确检测主机失陷。 22 | 23 | 可以发现,转换为主动防护思路后,**威胁检测由针对单次、多变的攻击上升到应用威胁情报甚至TTPs检测**。 24 | 25 | > ##### 环境依赖少,拓展视野 ##### 26 | 27 | 由于是融入型安全产品,蜜罐**不需要**改动现有网络结构,并且很多蜜罐是软件形态,对各种虚拟和云环境非常友好,部署成本低。 28 | 29 | 蜜罐可以广泛部署于**云端**和**接入交换机下游末梢网络中**,作为**轻量级探针**,将告警汇聚到态势感知或传统检测设备中分析和展示。 30 | 31 | #### 蜜罐与情报 32 | 33 | 显而易见**蜜罐** 是非常准确、稳定和恰当的**情报感知探针**。 34 | 35 | 蜜罐最大的价值是**诱使攻击者展示其能力和资产**,再配合误报少,信息丰富等一系列优势,配合态势感知或本地情报平台可以稳定生产私有威胁情报。 36 | -------------------------------------------------------------------------------- /docs/highinteractive.md: -------------------------------------------------------------------------------- 1 | ### 高交互蜜罐 2 | 3 | 当前,HFish提供两种高交互蜜罐,包括**高交互SSH蜜罐**和**高交互Telnet**蜜罐。 4 | 5 | #### 高交互蜜罐测试登录账号 6 | 7 | ``` 8 | root/123456 9 | ``` 10 | 11 | `这里是其中一个可登录账号,用作自测。其他可用于登录的账号密码HFish当前不公开,并在云服务后台定期更新。` 12 | 13 | #### 高交互蜜罐原理 14 | 15 | HFish高交互蜜罐部署在云服务器,由HFish团队做统一运维,在云上,我们部署了多台服务器,通过nginx负载均衡,处理本地到云端的攻击流量转发。 16 | 17 | image-20220105214958606 18 | 19 | 在高交互蜜罐中,**攻击者与用户本地发生的流量交互都会被转发到云端蜜网,所有的威胁行为都在云端蜜网发生**。 20 | 21 | image-20220105220938586 22 | 23 | 24 | 25 | #### 使用高交互蜜罐 26 | 27 | 当前,云端高交互蜜罐默认配置在服务管理中,使用需要 28 | 29 | **节点可联通zoo.hfish.net** 30 | 31 | **管理端可联通zoo.hfish.net、api.hfish.net** 32 | 33 | 确认网络联通后,直接在节点中添加高交互蜜罐服务即可。 34 | 35 | image-20220105221346398 36 | 37 | 38 | 39 | #### 高交互蜜罐数据查阅 40 | 41 | HFish管理端每五分钟向api.hfish.net发起高交互蜜罐请求。在这个过程内的攻击数据将被下拉。 42 | 43 | 数据中,我们可以看到 44 | 45 | - 攻击者进行的登陆行为 46 | - 此次登陆为成功还是失败, 47 | - 登录成功后执行了那些命令 48 | 49 | 如果在聚合的攻击中存在样本,样本将展示在关联信息下载中。 50 | 51 | image-20220105221536927 52 | -------------------------------------------------------------------------------- /docs/2-0-deploy.md: -------------------------------------------------------------------------------- 1 | #### 快速部署 2 | 3 | HFish采用B/S架构,系统由管理端和节点端组成,管理端用来生成和管理节点端,并接收、分析和展示节点端回传的数据,节点端接受管理端的控制并负责构建蜜罐服务。 4 | 5 | 6 | > ##### HFish支持架构列表 ##### 7 | 8 | | | Windows | Linux X86 | 9 | | ----------------- | ----------------- | ----------------- | 10 | | 管理端(Server) | 支持64位 | 支持64位 | 11 | | 节点端(Client) | 支持64位和32位 | 支持64为和32位 | 12 | 13 | 14 | > ##### HFish部署在内网所需配置 ##### 15 | 16 | 部署在内网的蜜罐对性能要求较低,针对过往测试情况,我们给出两个配置。 17 | 18 | | | 管理端 | 节点端 | 19 | | --------- | ------------ | ----------- | 20 | | 建议配置 | 2核4g200G | 1核2g50G | 21 | | 最低配置 | 1核2g100G | 1核1g50G | 22 | 23 | `注意:日志磁盘占用情况受攻击数量影响很大,建议管理端配置200G以上硬盘空间。` 24 | 25 | 26 | > ##### HFish部署在外网所需配置(必须更换MySQL数据库) ##### 27 | 28 | 部署在公网的蜜罐因遭受更多攻击,因此会有更大性能需求。 29 | 30 | | | 管理端 | 节点端 | 31 | | --------- | ------------- | ----------- | 32 | | 建议配置 | 4核8g200G | 1核2g50G | 33 | | 最低配置 | 2核4g100G | 1核1g50G | 34 | 35 | `注意:日志磁盘占用情况受攻击数量影响较大,建议管理端配置200G以上硬盘空间。` 36 | 37 | 38 | 39 | > ##### HFish部署权限要求 ##### 40 | 41 | 1、如果使用官网推荐的install.sh脚本安装,必须具备root权限,安装目录会位于opt目录下; 42 | 43 | 2、如果下载安装包手动安装,在默认使用SQLite数据库情况下,管理端的部署和使用不需要root权限,但如果后续需要替换SQLite改为MySQL数据,则MySQL安装和配置需要root权限; 44 | 45 | 3、节点端安装和运行无需root权限,但是由于操作系统限制,非root权限运行的节点无法监听低于TCP/1024的端口; 46 | -------------------------------------------------------------------------------- /docs/detail-ip.md: -------------------------------------------------------------------------------- 1 | IP画像 2 | 3 | 对于蜜罐捕获到的每个IP,我们会生成一个IP画像,用于您做更深层的IP画像分析。 4 | 5 | 对于HFish捕获到的所有情报,我们会全部开放给HFish社区用户,完成社区情报的自生产和使用。 6 | 7 | 8 | 9 | 在攻击来源页面中,点击详情按钮,即可进到每一个IP的IP情报中。 10 | 11 | ![image-20220526111406301](http://img.threatbook.cn/hfish/image-20220526111406301.png) 12 | 13 | 14 | 15 | 在上部,除了通过整合情报与网络数据,提供HFish综合情报标签以外,我们提供云端规则的攻击行为检出次数和本地威胁检测模块的攻击行为检出次数,进行直观的IP威胁等级参考。 16 | 17 | ![image-20220526111541932](http://img.threatbook.cn/hfish/image-20220526111541932.png) 18 | 19 | 20 | 21 | 此外,针对所有IP,我们会汇聚整个HFish社区捕获到的**IP溯源情报和IP设备信息**。 22 | 23 | 在这里,即使这个IP攻击单个HFish用户时候没有被抓住有用信息或者溯源,但**只要有一个社区用户捕获到,那么情报信息将在社区内流通与共享。** 24 | 25 | 26 | 27 | 最后,根据被攻击的情况,我们又区分了云端IP画像和本地IP画像 28 | 29 | 在云端画像中,我们可以 30 | 31 | **通过他的攻击行为判定他的威胁程度** 32 | 33 | 假若基本都是中高行为的话,那么我们就可以提高警惕 34 | 35 | **通过他的蜜罐攻击情况判定他的针对性** 36 | 37 | 如果有IP专门攻击vpn的话,那么不消说,他大概率有相关漏洞 38 | 39 | **通过他的攻击热力图判定他是人工还是脚本,是不是特殊时间点才开始发起攻击** 40 | 41 | 如果有从攻防演练开始有攻击记录的IP的话... 42 | 43 | ![image-20220526112040812](http://img.threatbook.cn/hfish/image-20220526112040812.png) 44 | 45 | 46 | 47 | 在云端画像中,我们可以 48 | 49 | **查看他具体都在攻击什么节点** 50 | 51 | 是否对某些节点有针对性 52 | 53 | **查询这个IP的所有本地攻击记录链条** 54 | 55 | 攻击时间链条最短是30天,不限制全长。会展示数据库内所有数据,呈现直观展示。 56 | 57 | ![image-20220526112130356](http://img.threatbook.cn/hfish/image-20220526112130356.png) 58 | 59 | 60 | 61 | 62 | 63 | 最后,如果有用户因为外网ip测试,导致ip被给了恶意标签的话,可以邮件Honeypot@threatbook.cn说明情况。 64 | 65 | -------------------------------------------------------------------------------- /docs/5-2-jsonp.md: -------------------------------------------------------------------------------- 1 | 2 | #### jsonp反制说明 3 | 4 | 该页面用于介绍HFish蜜罐中Web类蜜罐默认开启的JSONP反制能力。 5 | 6 | #### 什么是jsonp 7 | 8 | jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。 9 | 10 | 由于同源策略,跨域之间无法传递数据,但是Web页面上调用js文件时则不受是否跨域的影响。(不仅如此,凡是拥有src这个属性的标签都拥有跨域的能力,比如 100 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | -------------------------------------------------------------------------------- /docs/js/search.min.js: -------------------------------------------------------------------------------- 1 | !function(){var u={},m={EXPIRE_KEY:"docsify.search.expires",INDEX_KEY:"docsify.search.index"};function h(e){return e.text||"table"!==e.type||(e.cells.unshift(e.header),e.text=e.cells.map(function(e){return e.join(" | ")}).join(" |\n ")),e.text}function f(e){return e.text||"list"!==e.type||(e.text=e.raw),e.text}function g(r,e,o,s){void 0===e&&(e="");var c,e=window.marked.lexer(e),d=window.Docsify.slugify,l={},p="";return e.forEach(function(e,n){if("heading"===e.type&&e.depth<=s){var t=function(e){void 0===e&&(e="");var a={};return{str:e=e&&e.replace(/^'/,"").replace(/'$/,"").replace(/(?:^|\s):([\w-]+:?)=?([\w-%]+)?/g,function(e,n,t){return-1===n.indexOf(":")?(a[n]=t&&t.replace(/"/g,"")||!0,""):e}).trim(),config:a}}(e.text),a=t.str,t=t.config;c=t.id?o.toURL(r,{id:d(t.id)}):o.toURL(r,{id:d((t=e.text,i={"&":"&","<":"<",">":">",'"':""","'":"'"},String(t).replace(/[&<>"']/g,function(e){return i[e]})))}),a&&(p=a.replace(//,"").replace(/{docsify-ignore}/,"").replace(//,"").replace(/{docsify-ignore-all}/,"").trim()),l[c]={slug:c,title:p,body:""}}else{if(0===n&&(c=o.toURL(r),l[c]={slug:c,title:"/"!==r?r.slice(1):"Home Page",body:e.text||""}),!c)return;l[c]?l[c].body?(e.text=h(e),e.text=f(e),l[c].body+="\n"+(e.text||"")):(e.text=h(e),e.text=f(e),l[c].body=l[c].body?l[c].body+e.text:e.text):l[c]={slug:c,title:"",body:""}}var i}),d.clear(),l}function p(e){return e&&e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function r(i,r){var t,a,n,e,o="auto"===i.paths,s=o?(t=r.router,a=[],Docsify.dom.findAll(".sidebar-nav a:not(.section-link):not([data-nosearch])").forEach(function(e){var n=e.href,e=e.getAttribute("href"),n=t.parse(n).path;n&&-1===a.indexOf(n)&&!Docsify.util.isAbsolutePath(e)&&a.push(n)}),a):i.paths,c="";s.length&&o&&i.pathNamespaces?(n=s[0],Array.isArray(i.pathNamespaces)?c=i.pathNamespaces.filter(function(e){return n.slice(0,e.length)===e})[0]||c:i.pathNamespaces instanceof RegExp&&((d=n.match(i.pathNamespaces))&&(c=d[0])),e=-1===s.indexOf(c+"/"),d=-1===s.indexOf(c+"/README"),e&&d&&s.unshift(c+"/")):-1===s.indexOf("/")&&-1===s.indexOf("/README")&&s.unshift("/");var d,l=((d=i.namespace)?m.EXPIRE_KEY+"/"+d:m.EXPIRE_KEY)+c,p=((d=i.namespace)?m.INDEX_KEY+"/"+d:m.INDEX_KEY)+c,c=localStorage.getItem(l)l.length&&(a=l.length),t="..."+c.substring(n,a).replace(t,function(e){return''+e+""})+"...",o+=t)}),0\n

'+e.title+"

\n

"+e.content+"

\n\n"}),t.classList.add("show"),a.classList.add("show"),t.innerHTML=r||'

'+s+"

",o.hideOtherSidebarContent&&(i.classList.add("hide"),n.classList.add("hide"))}function d(e){o=e}function l(e,n){var t,a,i=n.router.parse().query.s;d(e),Docsify.dom.style("\n.sidebar {\n padding-top: 0;\n}\n\n.search {\n margin-bottom: 20px;\n padding: 6px;\n border-bottom: 1px solid #eee;\n}\n\n.search .input-wrap {\n display: flex;\n align-items: center;\n}\n\n.search .results-panel {\n display: none;\n}\n\n.search .results-panel.show {\n display: block;\n}\n\n.search input {\n outline: none;\n border: none;\n width: 100%;\n padding: 0 7px;\n line-height: 36px;\n font-size: 14px;\n border: 1px solid transparent;\n}\n\n.search input:focus {\n box-shadow: 0 0 5px var(--theme-color, #42b983);\n border: 1px solid var(--theme-color, #42b983);\n}\n\n.search input::-webkit-search-decoration,\n.search input::-webkit-search-cancel-button,\n.search input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.search .clear-button {\n cursor: pointer;\n width: 36px;\n text-align: right;\n display: none;\n}\n\n.search .clear-button.show {\n display: block;\n}\n\n.search .clear-button svg {\n transform: scale(.5);\n}\n\n.search h2 {\n font-size: 17px;\n margin: 10px 0;\n}\n\n.search a {\n text-decoration: none;\n color: inherit;\n}\n\n.search .matching-post {\n border-bottom: 1px solid #eee;\n}\n\n.search .matching-post:last-child {\n border-bottom: 0;\n}\n\n.search p {\n font-size: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.search p.empty {\n text-align: center;\n}\n\n.app-name.hide, .sidebar-nav.hide {\n display: none;\n}"),function(e){void 0===e&&(e="");var n='
\n \n
\n \n \n \n \n \n
\n
\n
\n ',e=Docsify.dom.create("div",n),n=Docsify.dom.find("aside");Docsify.dom.toggleClass(e,"search"),Docsify.dom.before(n,e)}(i),n=Docsify.dom.find("div.search"),a=Docsify.dom.find(n,"input"),e=Docsify.dom.find(n,".input-wrap"),Docsify.dom.on(n,"click",function(e){return-1===["A","H2","P","EM"].indexOf(e.target.tagName)&&e.stopPropagation()}),Docsify.dom.on(a,"input",function(n){clearTimeout(t),t=setTimeout(function(e){return c(n.target.value.trim())},100)}),Docsify.dom.on(e,"click",function(e){"INPUT"!==e.target.tagName&&(a.value="",c())}),i&&setTimeout(function(e){return c(i)},500)}function y(e,n){var t,a,i,r,o;d(e),t=e.placeholder,a=n.route.path,(r=Docsify.dom.getNode('.search input[type="search"]'))&&("string"==typeof t?r.placeholder=t:(i=Object.keys(t).filter(function(e){return-1)[\r\n]+([\s|\S]*?)[\r\n\s]+()/m,tabCommentMarkup:/[\r\n]*(\s*)[\r\n]+([\s\S]*?)[\r\n]*\s*(?=)/m},e={persist:!0,sync:!0,theme:"classic",tabComments:!0,tabHeadings:!0};function c(t,o){if(Element.prototype.closest)return t.closest(o);for(;t;){if(r(t,o))return t;t=t.parentNode||null}return t}function r(t,o){return(Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector).call(t,o)}function s(t){var a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=c(t,".".concat(o.tabButton));if(r){var n=r.getAttribute("data-tab"),i=document.querySelector(".".concat(o.tabsContainer)),d=r.parentNode,b=Array.apply(null,d.querySelectorAll(".".concat(o.tabButton))),f=d.offsetTop;if(b.forEach((function(t){return t.classList.remove(o.tabButtonActive)})),r.classList.add(o.tabButtonActive),!a){if(e.persist){var l=i?Array.apply(null,i.querySelectorAll(".".concat(o.tabBlock))):[],u=l.indexOf(d),y=JSON.parse(sessionStorage.getItem(window.location.href))||{};y[u]=n,sessionStorage.setItem(window.location.href,JSON.stringify(y))}if(e.sync){var p=i?Array.apply(null,i.querySelectorAll(".".concat(o.tabButton,'[data-tab="').concat(n,'"]'))):[],m=JSON.parse(sessionStorage.getItem("*"))||[];p.forEach((function(t){s(t,!0)})),window.scrollBy(0,0-(f-d.offsetTop)),m.indexOf(n)>0&&m.splice(m.indexOf(n),1),0!==m.indexOf(n)&&(m.unshift(n),sessionStorage.setItem("*",JSON.stringify(m)))}}}}function n(){var t=decodeURIComponent((window.location.hash.match(/(?:id=)([^&]+)/)||[])[1]),a=t&&".".concat(o.tabBlock," #").concat(t);if(t&&document.querySelector(a)){var e,c=document.querySelector("#".concat(t));if(c.closest)e=c.closest(".".concat(o.tabContent));else for(e=c.parentNode;e!==document.body&&!e.classList.contains("".concat(o.tabContent));)e=e.parentNode;s(e.previousElementSibling)}}window&&(window.$docsify=window.$docsify||{},window.$docsify.tabs=window.$docsify.tabs||{},Object.keys(window.$docsify.tabs).forEach((function(t){Object.prototype.hasOwnProperty.call(e,t)&&(e[t]=window.$docsify.tabs[t])})),window.$docsify.tabs.version="1.5.2",(e.tabComments||e.tabHeadings)&&(window.$docsify.plugins=[].concat((function(c,r){var i=!1;c.beforeEach((function(c){return(i=a.tabBlockMarkup.test(c))&&(c=function(c,r){for(var s,n,i=c.match(a.codeMarkup)||[],d=i.map((function(o,a){var e="\x3c!-- ".concat(t," CODEBLOCK").concat(a," --\x3e");return c=c.replace(o,(function(){return e})),e})),b=e.theme?"".concat(o.tabBlock,"--").concat(e.theme):"",f=document.createElement("div"),l=1,u=function(){var i=s[0],d="",u="",y=e.tabComments&&a.tabCommentMarkup.test(i),p=e.tabHeadings&&a.tabHeadingMarkup.test(i),m=s[1],h=s[2],g=s[4];if(y||p){d="\x3c!-- ".concat(t,'
--\x3e'),u="\n".concat(m,"\x3c!-- ").concat(t,"
--\x3e");for(var v=function(){f.innerHTML=n[2].trim()?r.compiler.compile(n[2]).replace(/<\/?p>/g,""):"Tab ".concat(l);var a=f.innerHTML,e=(n[3]||"").trim(),c=(f.textContent||f.firstChild.getAttribute("alt")||f.firstChild.getAttribute("src")).trim().toLowerCase();i=i.replace(n[0],(function(){return["\n".concat(m,"\x3c!-- ").concat(t,' --\x3e"),"\n".concat(m,"\x3c!-- ").concat(t,'
--\x3e'),"\n\n".concat(m).concat(e),"\n\n".concat(m,"\x3c!-- ").concat(t,"
--\x3e")].join("")})),l++};null!==(n=(e.tabComments?a.tabCommentMarkup.exec(i):null)||(e.tabHeadings?a.tabHeadingMarkup.exec(i):null));)v()}i=(i=i.replace(h,(function(){return d}))).replace(g,(function(){return u})),c=c.replace(s[0],(function(){return i}))};null!==(s=a.tabBlockMarkup.exec(c));)u();return d.forEach((function(t,o){c=c.replace(t,(function(){return i[o]}))})),c}(c,r)),c})),c.afterEach((function(t,o){i&&(t=function(t){for(var o,e=function(){var a=o[0],e=o[1]||"";t=t.replace(a,(function(){return e}))};null!==(o=a.commentReplaceMarkup.exec(t));)e();return t}(t)),o(t)})),c.doneEach((function(){var t,a,c,r;i&&(a=(t=document.querySelector(".".concat(o.tabsContainer)))?Array.apply(null,t.querySelectorAll(".".concat(o.tabBlock))):[],c=JSON.parse(sessionStorage.getItem(window.location.href))||{},r=JSON.parse(sessionStorage.getItem("*"))||[],n(),a.forEach((function(t,a){var s=t.querySelector(".".concat(o.tabButtonActive));s||(e.sync&&r.length&&(s=r.map((function(a){return t.querySelector(".".concat(o.tabButton,'[data-tab="').concat(a,'"]'))})).filter((function(t){return t}))[0]),!s&&e.persist&&(s=t.querySelector(".".concat(o.tabButton,'[data-tab="').concat(c[a],'"]'))),(s=s||t.querySelector(".".concat(o.tabButton)))&&s.classList.add(o.tabButtonActive))})))})),c.mounted((function(){var t=document.querySelector(".".concat(o.tabsContainer));t&&t.addEventListener("click",(function(t){s(t.target)})),window.addEventListener("hashchange",n,!1)}))}),window.$docsify.plugins||[])))}(); 9 | -------------------------------------------------------------------------------- /docs/4-6-trace.md: -------------------------------------------------------------------------------- 1 | **溯源功能支持版本:3.1.4** 2 | 3 | ### 什么是溯源 4 | 5 | 溯源,一般是在攻防中,用于挖掘攻击者身份,通过资产面,回溯等判断攻击者身份。 6 | 7 | 在近几年攻防演练中,更加特指了解对方的身份信息。 8 | 9 | HFish作为蜜罐软件,提供被攻击时候的正常防卫需求。当攻击者扫描、攻击或者恶意连接HFish的蜜罐时,HFish提供包括但不限于: 10 | 通过现有攻击工具漏洞,在合理范围内对攻击者进行信息提取、溯源等必要的攻击防御信息收集手段。 11 | 12 | 13 | 14 | ### 纯内网部署,能否溯源 15 | 16 | **安全业务层面:** 17 | 18 | 内网没有太大的溯源意义,通过IP地址分配,dhcp查询,以运维手段可以很快了解到来源IP的所属用户。所以内网并没有非常大的意义 19 | 20 | **溯源技术层面**: 21 | 22 | HFish共支持三种溯源手段。 23 | 24 | Mysql反制(支持内网,能够对攻击者机器做任意文件读取) 25 | 26 | 厂商vpn蜜罐反制(支持内网,能够获得windows机器登陆的微信号信息与桌面截图) 27 | 28 | web型蜜罐溯源(不支持内网)这种溯源方式,在溯源时,会自动获取攻击者的出口IP进行标记。 29 | 30 | 31 | 32 | ### HFish溯源实现原理与测试方法 33 | 34 | HFish共支持三种溯源手段。 35 | 36 | ##### 1.Mysql反制(支持内网,能够对攻击者机器做任意文件读取) 37 | 38 | 通过MySql客户端漏洞,当攻击者使用8.0以下的**Mysql客户端直连**HFish的Mysql蜜罐的时候。可以触发任意文件读取的能力,读取Mysql客户端所在机器上的任意一个文件。 39 | 40 | 注意: 41 | 42 | 1. 一定是Mysql客户端直连。不兼容诸如navicat这类工具。 43 | 44 | 2. 在节点管理中,可以设置mysql任意文件读取的具体读取路径 45 | 46 | ![image-20220807141822892](http://img.threatbook.cn/hfish/image-20220807141822892.png) 47 | 48 | ##### 2.厂商vpn蜜罐反制(支持内网,能够获得windows机器登陆的微信号信息与桌面截图) 49 | 50 | 通过蜜罐页面提供可下载二进制,攻击者下载执行后,会获取攻击者的微信与屏幕截图 51 | 52 | 该部分记录的是连接IP,所以您在内网中测试,测试结果不会回传到云端共享,可放心测试。 53 | 54 | ##### 测试步骤: 55 | 56 | a. 直接在HFish中添加深信服vpn蜜罐。 57 | 58 | b.下载蜜罐页面中的exe并运行 59 | 60 | c. 进入攻击来源,搜索IP或者直接点击溯源信息按钮。查看详情 61 | 62 | image-20220807123404778 63 | 64 | image-20220807124218394 65 | 66 | #### 67 | 68 | ##### 3.web型蜜罐溯源(不支持内网溯源) 69 | 70 | HFish所有的web页面蜜罐,包括自定义蜜罐,都可以在该情况下进行溯源。 71 | 72 | 对扫描器、webshell管理器、java反序列化反制。该部分反制数据会显示攻击者的出口IP。 73 | 74 | 可以拿到包括**机器架构,微信账号、QQ账号、QQ音乐账号、百度云账号,浏览器浏览记录、history、whoami**等信息 75 | 76 | ⚠️注意:处于对产品技术保密的原因。我们不会公开可以对扫描器、webshell管理器能够进行溯源反制,也不会提供相关的应用教程。 77 | 78 | 如果您确实有测试需求,请用您的企业邮箱,说明您的公司,身份,测试需求原因,邮件honeypot@threatbook.cn发送申请。我们只支持企业安全部门的测试申请与协助。 79 | 80 | 81 | 82 | ##### 4 .Java 远程调用蜜罐溯源(不支持内网溯源) 83 | 84 | Java远程调用蜜罐是HFish内置的一种蜜罐服务。添加到节点上即可食用 85 | 86 | ![image-20220807144001639](http://img.threatbook.cn/hfish/image-20220807144001639.png) 87 | 88 | 当攻击者使用java反序列化工具对你的Java远程调用蜜罐进行攻击时,由于该蜜罐内置了Java反序列化工具的漏洞利用方式。 89 | 90 | 因此可以拿到包括**机器架构,微信账号、QQ账号、QQ音乐账号、百度云账号,浏览器浏览记录、history、whoami**等信息 91 | 92 | ⚠️注意:处于对产品技术保密的原因。我们不会提供相关的应用教程。 93 | 94 | 如果您确实有测试需求,请用您的企业邮箱,说明您的公司,身份,测试需求原因,邮件honeypot@threatbook.cn发送申请。我们只支持企业安全部门的测试申请与协助。 95 | 96 | 97 | 98 | ### 溯源信息查看 99 | 100 | 进入攻击来源,搜索IP或者直接点击溯源信息按钮。查看详情 101 | 102 | image-20220807123404778 103 | 104 | image-20220807124218394 105 | 106 | #### 107 | 108 | 109 | 110 | 111 | 112 | 溯源蜜罐支持表单 113 | 114 | | 溯源类型 | 服务名称 | 大类/具体服务 | 交互类型 | 默认监听端口 | 描述 | 115 | | --------------- | ------------------------------ | ------------- | -------- | ------------ | ------------------------------------------------------------ | 116 | | Mysql反制 | Mysql蜜罐 | 数据库服务 | 低交互 | TCP/3306 | 该蜜罐仿真了MySQL服务端,可用于记录探测和攻击行为,建议部署在内外网研发测试环境 | 117 | | 厂商VPN蜜罐反制 | 深信服VPN蜜罐 | IT设备 | 低交互 | TCP/9091 | 提供虚假的深信服VPN后台登陆Web界面,常见于互联网场景,默认使用TCP/9091端口 | 118 | | Java反制 | Java远程调用蜜罐 | JAVA服务 | 低交互 | TCP/1099 | 该蜜罐仿真了JAVA远程调用服务,可用于内外网攻击感知,同时具备溯源能力。远程方法调用是用Java在JDK1.2中实现的服务,Java作为一种风靡一时的网络开发语言,有着非常大的应用面,同时也在市面屡见不鲜出现漏洞。因此,JAVA服务蜜罐对攻击者有极大诱惑力。 | 119 | | web型蜜罐溯源 | 群晖NAS蜜罐 | IOT设备 | 低交互 | TCP/9194 | 该蜜罐仿真了群晖NAS的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内网办公环境 | 120 | | web型蜜罐溯源 | CiscoVPN蜜罐 | IT设备 | 低交互 | TCP/9299 | 提供虚假的思科VPN后台登录Web界面,常见于互联网场景,默认使用TCP/9299 | 121 | | web型蜜罐溯源 | 天融信防火墙蜜罐 | 安全设备 | 低交互 | TCP/9081 | 提供虚假的天融信安全设备后台登录Web界面,常见于互联网、内网场景,默认使用TCP/9081 | 122 | | web型蜜罐溯源 | 绿盟防火墙蜜罐 | 安全设备 | 低交互 | TCP/9083 | 提供虚假的绿盟安全设备后台登录Web界面,常见于互联网、内网场景,默认使用TCP/9083 | 123 | | web型蜜罐溯源 | Dell打印机配置管理蜜罐 | IT设备 | 低交互 | TCP/9084 | 提供虚假的Dell打印机配置管理Web界面,常见于互联网场景,默认使用TCP/9084 | 124 | | web型蜜罐溯源 | IntelActiveManagement管理蜜罐 | IT设备 | 低交互 | TCP/9085 | 提供虚假的IntelActiveManagement后台管理Web界面,常见于互联网场景,默认使用TCP/9085 | 125 | | web型蜜罐溯源 | 深信服网页防篡改系统蜜罐 | 安全设备 | 低交互 | TCP/9298 | 该蜜罐仿真了深信服网页防篡改系统的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内网安全管理区,默认使用TCP/9298 | 126 | | web型蜜罐溯源 | 科来网络全流量安全分析系统蜜罐 | 安全设备 | 低交互 | TCP/9296 | 该蜜罐仿真了科来网络全流量安全分析系统的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内网安全管理区,默认使用TCP/9296 | 127 | | web型蜜罐溯源 | 中科网威安全控制系统蜜罐 | 安全设备 | 低交互 | TCP/9297 | 该蜜罐仿真了中科网威安全控制系统的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内网安全管理区,默认使用TCP/9297 | 128 | | web型蜜罐溯源 | 火绒终端安全管理系统蜜罐 | 安全设备 | 低交互 | TCP/9295 | 该蜜罐仿真了火绒终端安全管理系统的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内网vpn安全管理区,默认使用TCP/9295 | 129 | | web型蜜罐溯源 | jumpserver开源跳板机 | IT设备 | 低交互 | TCP/9304 | 该蜜罐仿真了Jumpserver开源跳板机的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署内外网、开发测试环境,默认使用TCP/9304 | 130 | | web型蜜罐溯源 | Aruba无线AP蜜罐 | IT设备 | 低交互 | TCP/9195 | 该蜜罐仿真了Aruba无线AP的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内网办公环境 | 131 | | web型蜜罐溯源 | 智慧电力系统 | 服务器环境 | 低交互 | TCP/9303 | 该蜜罐仿真了智慧电力系统的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署能源外网,服务器环境,默认使用TCP/9303 | 132 | | web型蜜罐溯源 | 疫情上报系统 | 服务器环境 | 低交互 | TCP/9302 | 该蜜罐仿真了疫情上报系统的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署政府外网,服务器环境,默认使用TCP/9302 | 133 | | web型蜜罐溯源 | phpAdmin | 服务器环境 | 低交互 | TCP/9301 | 该蜜罐仿真了phpAdmin的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署公司内网、测试开发环境,默认使用TCP/9301 | 134 | | web型蜜罐溯源 | LDAP蜜罐 | 运维系统 | 低交互 | TCP/389 | 该蜜罐仿真了虚拟化的LDAP协议,可用以记录账号暴力破解攻击。LDAP作为一个统一认证的解决方案,常用来存储企业员工的用户名和口令,是企业内非常重要的数据存储区域,对攻击者有极大诱惑力。 | 135 | | web型蜜罐溯源 | TP-LINK路由器蜜罐 | IT设备 | 低交互 | TCP/9197 | 该蜜罐仿真了TP-LINK路由器的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内网办公环境 | 136 | | web型蜜罐溯源 | 锐捷交换机蜜罐 | IT设备 | 低交互 | TCP/9196 | 该蜜罐仿真了锐捷交换机的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内网办公环境 | 137 | | web型蜜罐溯源 | RouterOs | IT设备 | 低交互 | TCP/8291 | 该蜜罐仿真了RouterOS软性路由器的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在中小公司内网环境,默认使用TCP/8291 | 138 | | web型蜜罐溯源 | JspSpy蜜罐 | 木马伪装 | 低交互 | TCP/9294 | 该蜜罐仿真了JspSpy的Web登陆界面,可用于记录攻击者密码和主观恶意行为,建议部署在内外网生产环境 | 139 | | web型蜜罐溯源 | Webmin蜜罐 | 运维系统 | 低交互 | TCP/10000 | 该蜜罐仿真了Webmin的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网生产环境 | 140 | | web型蜜罐溯源 | Joomla蜜罐 | CRM和OA系统 | 低交互 | TCP/8080 | 该蜜罐仿真了WebLogic的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网开发测试环境 | 141 | | web型蜜罐溯源 | 政务OA蜜罐 | CRM和OA系统 | 低交互 | TCP/9098 | 该蜜罐仿真了某个虚假的政务OA系统的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网生产测试环境 | 142 | | web型蜜罐溯源 | 海康摄像头蜜罐 | IOT设备 | 低交互 | TCP/9082 | 该蜜罐仿真了海康微视摄像头的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内网办公研发测试环境 | 143 | | web型蜜罐溯源 | Confluence系统蜜罐 | CRM和OA系统 | 低交互 | TCP/9293 | 该蜜罐仿真了项目管理平台Confluence的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网运维环境 | 144 | | web型蜜罐溯源 | Jenkins蜜罐 | 服务器环境 | 低交互 | TCP/8080 | 该蜜罐仿真了Jenkins的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内网开发测试环境 | 145 | | web型蜜罐溯源 | Weblogic蜜罐 | 服务器环境 | 低交互 | TCP/7001 | 该蜜罐仿真了WebLogic的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内网开发测试环境 | 146 | | web型蜜罐溯源 | Jira系统蜜罐 | CRM和OA系统 | 低交互 | TCP/9292 | 该蜜罐仿真了项目管理平台Jira的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网运维环境 | 147 | | web型蜜罐溯源 | 通达OA蜜罐 | CRM和OA系统 | 低交互 | TCP/9099 | 该蜜罐仿真了通达OA的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内网办公环境 | 148 | | web型蜜罐溯源 | Exchange蜜罐 | 邮件系统 | 低交互 | TCP/9095 | 该蜜罐仿真了微软Exchange邮件系统的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网生产测试环境 | 149 | | web型蜜罐溯源 | 齐治堡垒机蜜罐 | 运维系统 | 低交互 | TCP/9193 | 该蜜罐仿真了齐治堡垒机的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网生产测试环境 | 150 | | web型蜜罐溯源 | WordPress蜜罐 | CRM和OA系统 | 低交互 | TCP/9090 | 该蜜罐仿真了WordPress的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网生产测试环境 | 151 | | web型蜜罐溯源 | IIS蜜罐 | 服务器环境 | 低交互 | TCP/9199 | 该蜜罐仿真了微软IIS默认主页,可用于记录探测和攻击行为,建议部署在外网生产环境 | 152 | | web型蜜罐溯源 | Zabbix监控系统蜜罐 | 运维系统 | 低交互 | TCP/9192 | 该蜜罐仿真了网络监控平台Zabbix的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网运维环境 | 153 | | web型蜜罐溯源 | Tomcat蜜罐 | 服务器环境 | 低交互 | TCP/9198 | 该蜜罐仿真了Tomcat默认主页,可用于记录账号暴力破解和攻击行为,建议部署在外网生产环境 | 154 | | web型蜜罐溯源 | ESXi系统蜜罐 | 运维系统 | 低交互 | TCP/9190 | 该蜜罐仿真了虚拟化管理平台ESXi的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网运维环境 | 155 | | web型蜜罐溯源 | H3C路由器蜜罐 | IT设备 | 低交互 | TCP/9092 | 该蜜罐仿真了H3C路由器的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网研发测试环境 | 156 | | web型蜜罐溯源 | GitLab蜜罐 | 服务器环境 | 低交互 | TCP/9093 | 该蜜罐仿真了GitLab代码仓库的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网生产测试环境 | 157 | | web型蜜罐溯源 | Websphere蜜罐 | 服务器环境 | 低交互 | TCP/9080 | 该蜜罐仿真了IBMWebSphere的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在外网生产环境 | 158 | | web型蜜罐溯源 | Nginx蜜罐 | 服务器环境 | 低交互 | TCP/9291 | 该蜜罐仿真了Nginx默认主页,可用于记录探测和攻击行为,建议部署在外网生产环境 | 159 | | web型蜜罐溯源 | Nagios监控系统蜜罐 | 运维系统 | 低交互 | TCP/9191 | 该蜜罐仿真了网络监控平台Nagios的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网运维环境 | 160 | | web型蜜罐溯源 | Coremail蜜罐 | 邮件系统 | 低交互 | TCP/9094 | 该蜜罐仿真了Coremail邮件系统的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网生产测试环境 | 161 | | web型蜜罐溯源 | 通用OA系统蜜罐 | CRM和OA系统 | 低交互 | TCP/9096 | 该蜜罐仿真了某个通用的OA系统的Web登陆界面,可用于记录账号暴力破解和攻击行为,建议部署在内外网生产测试环境 | 162 | 163 | **写在最后**: 164 | 165 | 朋友们,理智看待溯源功能 166 | 167 | 不会是有一个人访问你的蜜罐页面,我们就可以控制它的权限。 168 | 169 | HFish在对方有恶意与攻击行为的时候,才会通过当前掌握到的攻击工具/其他工具漏洞触发溯源反制。 170 | 171 | 最后,我们应该是极少数的,公开详细解读自己溯源功能原理的厂商,各位且行且珍惜.... 172 | 173 | 174 | 175 | -------------------------------------------------------------------------------- /docs/2-6-nginx.md: -------------------------------------------------------------------------------- 1 | 贡献用户:K龙 2 | 3 | 4 | 5 | > 如果对编写 Nginx 配置文件不熟悉,推可以使用 [https://nginxconfig.io/](https://nginxconfig.io/) 辅助完成配置。(若使用[https://nginxconfig.io/](https://nginxconfig.io/) ,请于文件内使用include语句包含[https://nginxconfig.io/](https://nginxconfig.io/)生成的配置文件) 6 | 7 | HFish 分别使用了 `TCP/4433` 和 `TCP/4434` 端口。其中 `TCP/4433` 用于对外提供 Web 服务和部分 API 接口;`TCP/4434` 端口用于节点通讯。因此,Nginx 需同时代理这两个端口,方可提供服务。 8 | 9 | 以下是一份简单的 Nginx 配置,仅供参考。 10 | 11 | #### 常规方案 12 | 13 | ``` 14 | server { 15 | listen 443 ssl http2; 16 | listen [::]:443 ssl http2; 17 | client_max_body_size 4G; #设置传输大小限制,nginx默认文件上传大小为1M。 18 | server_name domain.com; #需要将domain.com替换为您所使用的域名。 19 | 20 | ssl_certificate /etc/nginx/cert/domain.com.pem; #您的证书存储位置,通常位于/etc/nginc/cert文件夹下,需要将domain.com.pem替换为您的证书文件。 21 | ssl_certificate_key /etc/nginx/cert/domain.com.key; #您证书私钥的存储位置,通常位于/etc/nginc/cert文件夹下,需要将domain.com.key替换为您证书私钥文件。 22 | 23 | # 反向代理设置 24 | # 反向代理 /api/v1 用于与节点进行通讯 25 | location /api/v1 { 26 | proxy_pass https://127.0.0.1:4434$request_uri; 27 | proxy_set_header Host $host; 28 | proxy_set_header X-Real-IP $remote_addr; 29 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 30 | proxy_set_header X-Forwarded-Proto $scheme; 31 | proxy_set_header X-Forwarded-Host $host; 32 | proxy_set_header X-Forwarded-Port $server_port; 33 | proxy_connect_timeout 60s; 34 | proxy_send_timeout 60s; 35 | proxy_read_timeout 60s; 36 | } 37 | 38 | # 反向代理 /tmp 用于与节点进行下载 39 | location /tmp { 40 | proxy_pass https://127.0.0.1:4434$request_uri; 41 | proxy_set_header Host $host; 42 | proxy_set_header X-Real-IP $remote_addr; 43 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 44 | proxy_set_header X-Forwarded-Proto $scheme; 45 | proxy_set_header X-Forwarded-Host $host; 46 | proxy_set_header X-Forwarded-Port $server_port; 47 | proxy_connect_timeout 60s; 48 | proxy_send_timeout 60s; 49 | proxy_read_timeout 60s; 50 | } 51 | 52 | # 反向代理 / 用于与 Web 服务 53 | location / { 54 | proxy_pass https://127.0.0.1:4433$request_uri; 55 | proxy_set_header Host $host; 56 | proxy_set_header X-Real-IP $remote_addr; 57 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 58 | proxy_set_header X-Forwarded-Proto $scheme; 59 | proxy_set_header X-Forwarded-Host $host; 60 | proxy_set_header X-Forwarded-Port $server_port; 61 | proxy_connect_timeout 60s; 62 | proxy_send_timeout 60s; 63 | proxy_read_timeout 60s; 64 | } 65 | } 66 | 67 | # HTTP 重定向至 HTTPS 68 | server { 69 | listen 80; 70 | listen [::]:80; 71 | server_name domain.com; 72 | location / { 73 | return 301 https://domain.com$request_uri? permanent; 74 | } 75 | } 76 | 77 | ``` 78 | 79 | 说明 80 | 81 | * 部署时需要将文件内所有domain.com更改为所您所使用的域名。 82 | * 本文件为已有证书使用,存放于/etc/nginx/conf.d/文件夹下(建议为命名为hfish.conf)。 83 | 84 | 85 | #### Let's encrypto方案 86 | 87 | > Let's Encrypt是一个数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为安全网站提供免费的SSL/TLS证书。 88 | 89 | ``` 90 | server { 91 | listen 443 ssl http2; 92 | listen [::]:443 ssl http2; 93 | client_max_body_size 4G; #设置传输大小限制,nginx默认文件上传大小为1M 94 | server_name domain.com; #需要将domain.com替换为您所使用的域名 95 | 96 | ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; #您的证书存储位置,通常位于/etc/nginc/cert文件夹下,需要将domain.com.pem替换为您的证书文件 97 | ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; #您证书私钥的存储位置,通常位于/etc/nginc/cert文件夹下,需要将domain.com.key替换为您证书私钥文件。 98 | 99 | # 反向代理设置 100 | # 反向代理 /api/v1 用于与节点进行通讯 101 | location /api/v1 { 102 | proxy_pass https://127.0.0.1:4434$request_uri; 103 | proxy_set_header Host $host; 104 | proxy_set_header X-Real-IP $remote_addr; 105 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 106 | proxy_set_header X-Forwarded-Proto $scheme; 107 | proxy_set_header X-Forwarded-Host $host; 108 | proxy_set_header X-Forwarded-Port $server_port; 109 | proxy_connect_timeout 60s; 110 | proxy_send_timeout 60s; 111 | proxy_read_timeout 60s; 112 | } 113 | 114 | # 反向代理 /tmp 用于与节点进行下载 115 | location /tmp { 116 | proxy_pass https://127.0.0.1:4434$request_uri; 117 | proxy_set_header Host $host; 118 | proxy_set_header X-Real-IP $remote_addr; 119 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 120 | proxy_set_header X-Forwarded-Proto $scheme; 121 | proxy_set_header X-Forwarded-Host $host; 122 | proxy_set_header X-Forwarded-Port $server_port; 123 | proxy_connect_timeout 60s; 124 | proxy_send_timeout 60s; 125 | proxy_read_timeout 60s; 126 | } 127 | 128 | # 反向代理 / 用于与 Web 服务 129 | location / { 130 | proxy_pass https://127.0.0.1:4433$request_uri; 131 | proxy_set_header Host $host; 132 | proxy_set_header X-Real-IP $remote_addr; 133 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 134 | proxy_set_header X-Forwarded-Proto $scheme; 135 | proxy_set_header X-Forwarded-Host $host; 136 | proxy_set_header X-Forwarded-Port $server_port; 137 | proxy_connect_timeout 60s; 138 | proxy_send_timeout 60s; 139 | proxy_read_timeout 60s; 140 | } 141 | } 142 | 143 | 144 | server { 145 | listen 80; 146 | listen [::]:80; 147 | server_name domain.com; 148 | 149 | #方向代理 / 用于let's encrypto验证域名归属 150 | location ^~ /.well-known/acme-challenge/{ 151 | default_type "text/plain"; 152 | root /; 153 | } 154 | 155 | # HTTP 重定向至 HTTPS 156 | location / { 157 | return 301 https://domain.com$request_uri? permanent; 158 | } 159 | } 160 | 161 | ``` 162 | 163 | 说明 164 | 165 | * 本文件为生成证书后所使用的文件,存放于/etc/nginx/conf.d/文件夹下(建议为命名为hfish.conf)。 166 | * 使用let's encrypto生成证书步骤请看下文。 167 | 168 | 前置步骤: 169 | 170 | 于/etc/nginx/conf.d/文件夹下,将以下内容写入文件,命名为*.conf(建议为命名为hfish.conf,星号内容可自定义) 171 | 172 | ``` 173 | server { 174 | listen 80; 175 | listen [::]:80; 176 | server_name domain.com; 177 | 178 | #反向代理 / 用于let's encrypto验证域名归属 179 | location ^~ /.well-known/acme-challenge/{ 180 | default_type "text/plain"; 181 | root /; 182 | } 183 | } 184 | ``` 185 | 186 | 文件写入后运行命令 187 | 188 | ``` 189 | nginx -t && systemctl restart nginx 190 | ``` 191 | 192 | 安装certbot 193 | 194 | ``` 195 | # ubuntu系统 196 | apt install certbot 197 | # centos系统 198 | yum install certbot 199 | ``` 200 | 201 | 完成域名验证并生成证书 202 | 203 | ``` 204 | certbot certonly --webroot domain.com #将domain.com替换为需要申请证书的域名 205 | ``` 206 | 207 | 运行该命令后根据提示输入验证文件地址。根据配置,验证地址为root /; ,即此处输入‘/’即可。 208 | 209 | 生成证书与密钥默认存放于/etc/letsencrypt/live/domain.com/文件夹下,此时将/etc/nginx/conf.d/文件夹下(建议为命名为hfish.conf)配置文件替换为完整的配置文件并运行以下命令即可。 210 | 211 | ```nginx 212 | nginx -t && systemctl restart nginx 213 | ``` 214 | 215 | #### CERT证书自动续期方案 216 | 217 | 编辑定时任务 218 | 219 | ``` 220 | crontab -e #首次使用定时任务则选择“2”,使用vim编辑 221 | ``` 222 | 223 | 写入以下命令,将domain.com替换为需要自动续期的域名 224 | 225 | ``` 226 | 00 00 1 * * certbot renew --force-renewal && systemctl restart nginx #每月一号强制续期所有使用certbot生成的证书 227 | ``` 228 | 229 | > certbot申请由Let's encrypto签发的证书通常有效期为三个月,剩余有效期大于三十日则判定为证书有效无法续期,此时使用“--force-renewal ”强制续期即可。 230 | > 231 | > 值得注意的是,Let's encrypto限制单个域名/IP每周生成证书最多五十个,每次生成证书时错误尝试次数小于等于五次。建议生成证书时先加入参数“--dry-run”测试。 232 | 233 | 234 | #### Let's encrypto+Nginx鉴权方案 235 | 236 | > 使用nginx鉴权可有效隐藏管理端界面,可有效防止hash匹配识别登录界面 237 | 238 | ``` 239 | server { 240 | listen 443 ssl http2; 241 | listen [::]:443 ssl http2; 242 | client_max_body_size 4G; #设置传输大小限制,nginx默认文件上传大小为1M 243 | server_name domain.com; #需要将domain.com替换为您所使用的域名 244 | 245 | ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; #您的证书存储位置,通常位于/etc/nginc/cert文件夹下,需要将domain.com.pem替换为您的证书文件 246 | ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; #您证书私钥的存储位置,通常位于/etc/nginc/cert文件夹下,需要将domain.com.key替换为您证书私钥文件。 247 | 248 | # 反向代理设置 249 | # 反向代理 /api/v1 用于与节点进行通讯 250 | location /api/v1 { 251 | proxy_pass https://127.0.0.1:4434$request_uri; 252 | proxy_set_header Host $host; 253 | proxy_set_header X-Real-IP $remote_addr; 254 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 255 | proxy_set_header X-Forwarded-Proto $scheme; 256 | proxy_set_header X-Forwarded-Host $host; 257 | proxy_set_header X-Forwarded-Port $server_port; 258 | proxy_connect_timeout 60s; 259 | proxy_send_timeout 60s; 260 | proxy_read_timeout 60s; 261 | } 262 | 263 | # 反向代理 /tmp 用于与节点进行下载 264 | location /tmp { 265 | proxy_pass https://127.0.0.1:4434$request_uri; 266 | proxy_set_header Host $host; 267 | proxy_set_header X-Real-IP $remote_addr; 268 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 269 | proxy_set_header X-Forwarded-Proto $scheme; 270 | proxy_set_header X-Forwarded-Host $host; 271 | proxy_set_header X-Forwarded-Port $server_port; 272 | proxy_connect_timeout 60s; 273 | proxy_send_timeout 60s; 274 | proxy_read_timeout 60s; 275 | } 276 | 277 | # 反向代理 / 用于与 Web 服务 278 | location / { 279 | proxy_pass https://127.0.0.1:4433$request_uri; 280 | proxy_set_header Host $host; 281 | proxy_set_header X-Real-IP $remote_addr; 282 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 283 | proxy_set_header X-Forwarded-Proto $scheme; 284 | proxy_set_header X-Forwarded-Host $host; 285 | proxy_set_header X-Forwarded-Port $server_port; 286 | proxy_connect_timeout 60s; 287 | proxy_send_timeout 60s; 288 | proxy_read_timeout 60s; 289 | auth_basic "Restricted"; #启用Nginx鉴权 290 | auth_basic_user_file /etc/nginx/.htpasswd; #密码文件存放地址,默认为/etc/nginx/.htpasswd 291 | } 292 | } 293 | 294 | 295 | server { 296 | listen 80; 297 | listen [::]:80; 298 | server_name domain.com; 299 | 300 | #方向代理 / 用于let's encrypto验证域名归属 301 | location ^~ /.well-known/acme-challenge/{ 302 | default_type "text/plain"; 303 | root /; 304 | } 305 | 306 | # HTTP 重定向至 HTTPS 307 | location / { 308 | return 301 https://domain.com$request_uri? permanent; 309 | } 310 | } 311 | 312 | ``` 313 | 314 | 说明 315 | 316 | * Nginx鉴权设置前置条件 317 | 318 | 安装Nginx鉴权工具 319 | 320 | ``` 321 | # ubuntu系统 322 | apt install apache2-utils 323 | # centos系统 324 | yum install httpd-tools 325 | ``` 326 | 327 | 生成密码 328 | 329 | ``` 330 | htpasswd -c /etc/nginx/.htpasswd username #username为登录用户名,运行此命令后按照步骤输入需要设置的密码即可 331 | ``` 332 | 333 | * 本文件为生成证书后所使用的文件,存放于/etc/nginx/conf.d/文件夹下(建议为命名为hfish.conf)。 -------------------------------------------------------------------------------- /docs/6-4-api.md: -------------------------------------------------------------------------------- 1 | 2 | #### API配置 3 | 4 | 该页面用于管理HFish蜜罐API key和查阅调用API的7种编程语言样例。 5 | 6 | 当前API支持获取三类数据,分别是:获取攻击来源、获取攻击详情、获取指定IP暴力破解使用过的账号密码。 7 | 8 | 通过HFish的API接口,能够实现把蜜罐数据同步给其它应用或设备,从而实现更自主丰富的数据展示和安全设备联动,HFish希望能够得到社区用户支持,贡献丰富的使用方案,启发更多人。 9 | 10 | ![image-20210730173724481](https://hfish.net/images/20210730173725.png) 11 | 12 | 13 | #### API接口三种调用示例 14 | 15 | > 获取攻击来源 16 | 17 | 18 | 19 | #### **cURL** 20 | 21 | ```curl 22 | curl --location --request POST 'https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY' \ 23 | --header 'Content-Type: application/json' \ 24 | --data '{ 25 | "start_time": 0, 26 | "end_time": 0, 27 | "intranet": 0, 28 | "threat_label": [ 29 | "Scanner" 30 | ] 31 | }' 32 | ``` 33 | 34 | #### **Python** 35 | 36 | ```python 37 | import requests 38 | import json 39 | 40 | url = "https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY" 41 | 42 | payload = json.dumps({ 43 | "start_time": 0, 44 | "end_time": 0, 45 | "intranet": 0, 46 | "threat_label": [ 47 | "Scanner" 48 | ] 49 | }) 50 | headers = { 51 | 'Content-Type': 'application/json' 52 | } 53 | 54 | response = requests.request("POST", url, headers=headers, data=payload) 55 | 56 | print(response.text) 57 | 58 | ``` 59 | 60 | #### **GO** 61 | 62 | ```go 63 | package main 64 | 65 | import ( 66 | "fmt" 67 | "strings" 68 | "net/http" 69 | "io/ioutil" 70 | ) 71 | 72 | func main() { 73 | 74 | url := "https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY" 75 | method := "POST" 76 | 77 | payload := strings.NewReader(`{ 78 | "start_time": 0, 79 | "end_time": 0, 80 | "intranet": 0, 81 | "threat_label": [ 82 | "Scanner" 83 | ] 84 | }`) 85 | 86 | client := &http.Client { 87 | } 88 | req, err := http.NewRequest(method, url, payload) 89 | 90 | if err != nil { 91 | fmt.Println(err) 92 | return 93 | } 94 | req.Header.Add("Content-Type", "application/json") 95 | 96 | res, err := client.Do(req) 97 | if err != nil { 98 | fmt.Println(err) 99 | return 100 | } 101 | defer res.Body.Close() 102 | 103 | body, err := ioutil.ReadAll(res.Body) 104 | if err != nil { 105 | fmt.Println(err) 106 | return 107 | } 108 | fmt.Println(string(body)) 109 | } 110 | 111 | ``` 112 | 113 | #### **JAVA** 114 | 115 | ```java 116 | OkHttpClient client = new OkHttpClient().newBuilder() 117 | .build(); 118 | MediaType mediaType = MediaType.parse("application/json"); 119 | RequestBody body = RequestBody.create(mediaType, "{\n \"start_time\": 0,\n \"end_time\": 0,\n \"intranet\": \0\,\n \"threat_label\": [\n \"Scanner\"\n ]\n}"); 120 | Request request = new Request.Builder() 121 | .url("https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY") 122 | .method("POST", body) 123 | .addHeader("Content-Type", "application/json") 124 | .build(); 125 | Response response = client.newCall(request).execute(); 126 | ``` 127 | 128 | #### **JavaScript** 129 | 130 | ```javascript 131 | var settings = { 132 | "url": "https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY", 133 | "method": "POST", 134 | "timeout": 0, 135 | "headers": { 136 | "Content-Type": "application/json" 137 | }, 138 | "data": JSON.stringify({ 139 | "start_time": 0, 140 | "end_time": 0, 141 | "intranet": 0, 142 | "threat_label": [ 143 | "Scanner" 144 | ] 145 | }), 146 | }; 147 | 148 | $.ajax(settings).done(function (response) { 149 | console.log(response); 150 | }); 151 | ``` 152 | 153 | #### **PHP** 154 | 155 | ```php 156 | 'https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY', 162 | CURLOPT_RETURNTRANSFER => true, 163 | CURLOPT_ENCODING => '', 164 | CURLOPT_MAXREDIRS => 10, 165 | CURLOPT_TIMEOUT => 0, 166 | CURLOPT_FOLLOWLOCATION => true, 167 | CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 168 | CURLOPT_CUSTOMREQUEST => 'POST', 169 | CURLOPT_POSTFIELDS =>'{ 170 | "start_time": 0, 171 | "end_time": 0, 172 | "intranet": 0, 173 | "threat_label": [ 174 | "Scanner" 175 | ] 176 | }', 177 | CURLOPT_HTTPHEADER => array( 178 | 'Content-Type: application/json' 179 | ), 180 | )); 181 | 182 | $response = curl_exec($curl); 183 | 184 | curl_close($curl); 185 | echo $response; 186 | 187 | ``` 188 | 189 | #### **Shell** 190 | 191 | ```shell 192 | wget --no-check-certificate --quiet \ 193 | --method POST \ 194 | --timeout=0 \ 195 | --header 'Content-Type: application/json' \ 196 | --body-data '{ 197 | "start_time": 0, 198 | "end_time": 0, 199 | "intranet": 0, 200 | "threat_label": [ 201 | "Scanner" 202 | ] 203 | }' \ 204 | 'https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY' 205 | ``` 206 | 207 | 208 | 209 | 210 | > 获取攻击详情 211 | 212 | 213 | 214 | 215 | #### **cURL** 216 | 217 | ```curl 218 | curl --location --request POST 'https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY' \ 219 | --header 'Content-Type: application/json' \ 220 | --data '{ 221 | "start_time": 0, 222 | "end_time": 0, 223 | "page_no": 1, 224 | "page_size": 100, 225 | "threat_label": ["Scanner"], 226 | "client_id": [], 227 | "service_name": [], 228 | "info_confirm": "1" 229 | }' 230 | ``` 231 | 232 | #### **Python** 233 | 234 | ```python 235 | import requests 236 | import json 237 | 238 | url = "https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY" 239 | 240 | payload = json.dumps({ 241 | "start_time": 0, 242 | "end_time": 0, 243 | "page_no": 1, 244 | "page_size": 100, 245 | "threat_label": [ 246 | "Scanner" 247 | ], 248 | "client_id": [], 249 | "service_name": [], 250 | "info_confirm": "1" 251 | }) 252 | headers = { 253 | 'Content-Type': 'application/json' 254 | } 255 | 256 | response = requests.request("POST", url, headers=headers, data=payload) 257 | 258 | print(response.text) 259 | 260 | ``` 261 | 262 | #### **GO** 263 | 264 | ```go 265 | package main 266 | 267 | import ( 268 | "fmt" 269 | "strings" 270 | "net/http" 271 | "io/ioutil" 272 | ) 273 | 274 | func main() { 275 | 276 | url := "https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY" 277 | method := "POST" 278 | 279 | payload := strings.NewReader(`{ 280 | "start_time": 0, 281 | "end_time": 0, 282 | "page_no": 1, 283 | "page_size": 100, 284 | "threat_label": ["Scanner"], 285 | "client_id": [], 286 | "service_name": [], 287 | "info_confirm": "1" 288 | }`) 289 | 290 | client := &http.Client { 291 | } 292 | req, err := http.NewRequest(method, url, payload) 293 | 294 | if err != nil { 295 | fmt.Println(err) 296 | return 297 | } 298 | req.Header.Add("Content-Type", "application/json") 299 | 300 | res, err := client.Do(req) 301 | if err != nil { 302 | fmt.Println(err) 303 | return 304 | } 305 | defer res.Body.Close() 306 | 307 | body, err := ioutil.ReadAll(res.Body) 308 | if err != nil { 309 | fmt.Println(err) 310 | return 311 | } 312 | fmt.Println(string(body)) 313 | } 314 | ``` 315 | 316 | #### **JAVA** 317 | 318 | ```java 319 | OkHttpClient client = new OkHttpClient().newBuilder() 320 | .build(); 321 | MediaType mediaType = MediaType.parse("application/json"); 322 | RequestBody body = RequestBody.create(mediaType, "{\n \"start_time\": 0,\n \"end_time\": 0,\n \"page_no\": 1,\n \"page_size\": 100,\n \"threat_label\": [\"Scanner\"],\n \"client_id\": [],\n \"service_name\": [],\n \"info_confirm\": \"1\"\n}"); 323 | Request request = new Request.Builder() 324 | .url("https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY") 325 | .method("POST", body) 326 | .addHeader("Content-Type", "application/json") 327 | .build(); 328 | Response response = client.newCall(request).execute(); 329 | ``` 330 | 331 | #### **JavaScript** 332 | 333 | ```javascript 334 | var settings = { 335 | "url": "https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY", 336 | "method": "POST", 337 | "timeout": 0, 338 | "headers": { 339 | "Content-Type": "application/json" 340 | }, 341 | "data": JSON.stringify({ 342 | "start_time": 0, 343 | "end_time": 0, 344 | "page_no": 1, 345 | "page_size": 100, 346 | "threat_label": [ 347 | "Scanner" 348 | ], 349 | "client_id": [], 350 | "service_name": [], 351 | "info_confirm": "1" 352 | }), 353 | }; 354 | 355 | $.ajax(settings).done(function (response) { 356 | console.log(response); 357 | }); 358 | ``` 359 | 360 | #### **PHP** 361 | 362 | ```php 363 | 'https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY', 369 | CURLOPT_RETURNTRANSFER => true, 370 | CURLOPT_ENCODING => '', 371 | CURLOPT_MAXREDIRS => 10, 372 | CURLOPT_TIMEOUT => 0, 373 | CURLOPT_FOLLOWLOCATION => true, 374 | CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 375 | CURLOPT_CUSTOMREQUEST => 'POST', 376 | CURLOPT_POSTFIELDS =>'{ 377 | "start_time": 0, 378 | "end_time": 0, 379 | "page_no": 1, 380 | "page_size": 100, 381 | "threat_label": ["Scanner"], 382 | "client_id": [], 383 | "service_name": [], 384 | "info_confirm": "1" 385 | }', 386 | CURLOPT_HTTPHEADER => array( 387 | 'Content-Type: application/json' 388 | ), 389 | )); 390 | 391 | $response = curl_exec($curl); 392 | 393 | curl_close($curl); 394 | echo $response; 395 | 396 | ``` 397 | 398 | #### **Shell** 399 | 400 | ``` 401 | wget --no-check-certificate --quiet \ 402 | --method POST \ 403 | --timeout=0 \ 404 | --header 'Content-Type: application/json' \ 405 | --body-data '{ 406 | "start_time": 0, 407 | "end_time": 0, 408 | "page_no": 1, 409 | "page_size": 100, 410 | "threat_label": ["Scanner"], 411 | "client_id": [], 412 | "service_name": [], 413 | "info_confirm": "1" 414 | }' \ 415 | 'https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY' 416 | ``` 417 | 418 | 419 | 420 | 421 | 422 | > 获取指定IP暴力破解使用过的账号密码 423 | 424 | 425 | 426 | 427 | #### **cURL** 428 | 429 | ```curl 430 | curl --location --request POST 'https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY' \ 431 | --header 'Content-Type: application/json' \ 432 | --data '{ 433 | "start_time": 0, 434 | "end_time": 0, 435 | "intranet": "0", 436 | "threat_label": [ 437 | "Scanner" 438 | ] 439 | }' 440 | ``` 441 | 442 | #### **Python** 443 | 444 | ```python 445 | import requests 446 | import json 447 | 448 | url = "https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY" 449 | 450 | payload = json.dumps({ 451 | "start_time": 0, 452 | "end_time": 0, 453 | "attack_ip": [] 454 | }) 455 | headers = { 456 | 'Content-Type': 'application/json' 457 | } 458 | 459 | response = requests.request("POST", url, headers=headers, data=payload) 460 | 461 | print(response.text) 462 | 463 | ``` 464 | 465 | #### **GO** 466 | 467 | ```go 468 | package main 469 | 470 | import ( 471 | "fmt" 472 | "strings" 473 | "net/http" 474 | "io/ioutil" 475 | ) 476 | 477 | func main() { 478 | 479 | url := "https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY" 480 | method := "POST" 481 | 482 | payload := strings.NewReader(`{ 483 | "start_time": 0, 484 | "end_time": 0, 485 | "attack_ip": [] 486 | }`) 487 | 488 | client := &http.Client { 489 | } 490 | req, err := http.NewRequest(method, url, payload) 491 | 492 | if err != nil { 493 | fmt.Println(err) 494 | return 495 | } 496 | req.Header.Add("Content-Type", "application/json") 497 | 498 | res, err := client.Do(req) 499 | if err != nil { 500 | fmt.Println(err) 501 | return 502 | } 503 | defer res.Body.Close() 504 | 505 | body, err := ioutil.ReadAll(res.Body) 506 | if err != nil { 507 | fmt.Println(err) 508 | return 509 | } 510 | fmt.Println(string(body)) 511 | } 512 | ``` 513 | 514 | #### **JAVA** 515 | 516 | ```java 517 | OkHttpClient client = new OkHttpClient().newBuilder() 518 | .build(); 519 | MediaType mediaType = MediaType.parse("application/json"); 520 | RequestBody body = RequestBody.create(mediaType, "{\n \"start_time\": 0,\n \"end_time\": 0,\n \"attack_ip\": []\n}"); 521 | Request request = new Request.Builder() 522 | .url("https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY") 523 | .method("POST", body) 524 | .addHeader("Content-Type", "application/json") 525 | .build(); 526 | Response response = client.newCall(request).execute(); 527 | ``` 528 | 529 | #### **JavaScript** 530 | 531 | ```javascript 532 | var settings = { 533 | "url": "https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY", 534 | "method": "POST", 535 | "timeout": 0, 536 | "headers": { 537 | "Content-Type": "application/json" 538 | }, 539 | "data": JSON.stringify({ 540 | "start_time": 0, 541 | "end_time": 0, 542 | "attack_ip": [] 543 | }), 544 | }; 545 | 546 | $.ajax(settings).done(function (response) { 547 | console.log(response); 548 | }); 549 | ``` 550 | 551 | #### **PHP** 552 | 553 | ```php 554 | 'https://Server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY', 560 | CURLOPT_RETURNTRANSFER => true, 561 | CURLOPT_ENCODING => '', 562 | CURLOPT_MAXREDIRS => 10, 563 | CURLOPT_TIMEOUT => 0, 564 | CURLOPT_FOLLOWLOCATION => true, 565 | CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 566 | CURLOPT_CUSTOMREQUEST => 'POST', 567 | CURLOPT_POSTFIELDS =>'{ 568 | "start_time": 0, 569 | "end_time": 0, 570 | "attack_ip": [] 571 | }', 572 | CURLOPT_HTTPHEADER => array( 573 | 'Content-Type: application/json' 574 | ), 575 | )); 576 | 577 | $response = curl_exec($curl); 578 | 579 | curl_close($curl); 580 | echo $response; 581 | 582 | ``` 583 | 584 | #### **Shell** 585 | 586 | ``` 587 | wget --no-check-certificate --quiet \ 588 | --method POST \ 589 | --timeout=0 \ 590 | --header 'Content-Type: application/json' \ 591 | --body-data '{ 592 | "start_time": 0, 593 | "end_time": 0, 594 | "attack_ip": [] 595 | }' \ 596 | 'https://server_IP/api/v1/attack/ip?api_key=YOUR_API_KEY' 597 | ``` 598 | 599 | 600 | 601 | --------------------------------------------------------------------------------