
关于Chameleon
Chameleon是一个支持自定义开发的蜜罐系统,可以帮助广大研究人员监控网络流量、Bots活动和用户密码凭证,支持的协议和组件有DNS、HTP Proxy、HTTP、HTTPS、SSH、POP3、IMAP、STMP、RDP、VNC、SMB、SOCKS5、Redis、TELNET、Postgres和MySQL。
功能介绍
模块化方法(蜜罐作为脚本运行或作为对象导入)。
大多数蜜罐都用作服务器(只有少数蜜罐模拟应用层协议)。
使用用户名、密码和Banner设置服务器(默认用户名和密码为test)。
对ICMP、DNS-TCP和UDPPayload载进行解析,并根据常见模式进行检查。
提供了用于监视结果的可视化Grafana接口(按IP过滤-默认为全部)。
支持解析非结构化和结构化日志,并插入至Postgres中。
所有蜜罐都包含用于测试服务器的客户端。
默认情况下会打开并监视所有端口。
易于自动化,可部署在AWSEC2上.
更多功能可供探索...
工具运行要求(仅服务器)
apt-get update -y && apt-get install -y iptables-persistent tcpdump nmap iputils-ping python python-pip python-psycopg2 lsof psmisc dnsutils pip install scapy==2.4.4 netifaces==0.10.9 pyftpdlib==1.5.6 sqlalchemy==1.3.23 pyyaml==5.4.1 paramiko==2.7.1 impacket==0.9.22 twisted==20.3.0 psutil==5.8.0 requests==2.25.1 redis==3.5.3 mysql-connector-python==8.0.23 pygments==2.5.2 pip install -U requests[socks] pip install -Iv rsa==4.0 pip install rdpy==1.3.2
工具安装和运行
Ubuntu 18或19系统(自动配置)
git clone https://github.com/qeeqbox/chameleon.git cd chameleon chmod +x ./run.sh ./run.sh auto_configure
Grafana接口(http://localhost:3000)将会在工具安装完成之后自动打开,用户名为“changeme457f6460cb287”,密码为“changemed23b8cc6a20e0”。如果你没有看到Chameleon仪表盘的话,请点击左侧边栏的搜索图标,然后手动添加即可。
等待几分钟之后,蜜罐将显示IP地址:
... honeypot_1 | Your IP: 172.19.0.3 honeypot_1 | Your MAC: 09:45:aa:23:10:03 ...
接下来,你就可以在本地系统中与蜜罐系统交互了:
ping 172.19.0.3 or run any network tool against it nmap 172.19.0.3
Ubuntu 18或19系统(自动配置-测试)
git clone https://github.com/qeeqbox/chameleon.git cd chameleon chmod +x ./run.sh ./run.sh auto_configure_test
Grafana接口(http://localhost:3000)将会在工具安装完成之后自动打开,用户名为“admin”,密码为“admin”。如果你没有看到Chameleon仪表盘的话,请点击左侧边栏的搜索图标,然后手动添加即可。
将所需的非阻塞服务器作为对象导入(SSH服务器)
copy ssh_server.py to your folder
# ip= String E.g. 0.0.0.0 # port= Int E.g. 9999 # username= String E.g. Test # password= String E.g. Test # mocking= Boolean or String E.g OpenSSH 7.0 # logs= String E.g db, terminal or all # -------------------------------------------------------------------- # always remember to add process=true to run_server() for non-blocking
from ssh_server import QSSHServer qsshserver = QSSHServer(port=9999) qsshserver.run_server(process=True) qsshserver.test_server(port=9999) qsshserver.kill_server()
ssh test@127.0.0.1
INFO:chameleonlogger:['servers', {'status': 'success', 'username': 'test', 'ip': '127.0.0.1', 'server': 'ssh_server', 'action': 'login', 'password': 'test', 'port': 38696}]
Docker单独使用
git clone https://github.com/qeeqbox/chameleon.git cd chameleon # choose which honeypot http, https, ssh etc and use -p in docker for the ports docker build -t honeypot ./honeypot/. && docker run -p 9999:9999 -p 9998:9998 -it honeypot --mode normal --servers "ssh:9999 http:9998"
如果你没有看到Chameleon仪表盘的话,请点击左侧边栏的搜索图标,然后手动添加即可。

当前服务器/模拟器
DNS(服务器使用Twisted) HTTPProxy(服务器使用Twisted) HTTP(服务器使用Twisted) HTTPS(服务器使用Twisted) SSH(服务器使用socket) POP3(服务器使用Twisted) IMAP(服务器使用Twisted) STMP(服务器使用smtpd) RDP(服务器使用Twisted) SMB(服务器使用impacket) SOCK5(服务器使用socketserver) TELNET(服务器使用Twisted) VNC(模拟器使用Twisted) Postgres(模拟器使用Twisted) Redis(模拟器使用Twisted) Mysql(模拟器使用Twisted) Elasticsearch(即将上线..) Oracle(即将上线..) ldap(即将上线..)
工具使用
Grafana接口:

Nmap扫描:

用户凭证监控:

项目地址
Chameleon:【GitHub传送门】

日本 1F
这工具支持的协议还挺全的,研究下。
日本 2F
有人试过在Ubuntu 20上跑起来吗?我看要求写的18或19。
北京市 B1
@ 流浪风 Ubuntu 20.04也能跑,只是部分依赖需要手动降版本,装好后基本和文档一致。
四川省遂宁市射洪县 3F
默认用户名密码都是test,这会不会太容易被发现了?
贵州省贵阳市 B1
@ 马小跑 默认密码确实是个隐患,不过可以自己改配置
上海市 4F
用Grafana看监控结果确实方便,之前折腾别的蜜罐日志看得头疼。
浙江省杭州市 B1
@ 摸鱼小王子 Grafana这波可视化救我狗命,以前grep日志眼睛都瞎了
安徽省蚌埠市 B1
@ 摸鱼小王子 Grafana确实方便,之前看日志文件看得眼花
澳大利亚 5F
感觉配置步骤有点多,对新手可能不太友好。
广东省 6F
要是能直接docker-compose一键启动就更好了。
中国 B1
@ 元宇宙行者 docker-compose确实更省事,现在都习惯compose一把梭了
台湾省 7F
最近正好在搞安全监控,可以拿这个试试水。
印度尼西亚 8F
开源工具能做到这个程度挺不错了,点赞👍
北京市 9F
它这个非阻塞服务器导入的玩法有点意思。
河北省石家庄市 B1
@ 读书小筑 非阻塞模式主要是为了不卡主线程吧,不然跑多个服务会互相堵
巴基斯坦 10F
蜜罐显示IP后,本地直接ping或nmap就行了吗?
天津市 B1
@ 白羊冲锋 ping和nmap都能用,我刚试了nmap扫出来一堆端口开着
黑龙江省伊春市 11F
默认密码test是不是太明文了?攻击者一眼就看穿了吧
印度尼西亚 12F
Ubuntu 20.04亲测能跑,就是装rdpy那块有点报错,手动降个版本就行
日本 B1
@ 社牛小漩涡 我装的时候rdpy也报错了,降到1.3.1版本解决的
浙江省嘉兴市 13F
协议支持是真全,连RDP和SMB都有,钓鱼效果应该不错
北京市 B1
@ 星乃纱奈 确实,尤其是RDP常被忽视,抓到的流量挺有价值。
四川省成都市 14F
配置脚本跑完直接起服务,其实没那么复杂,照着敲就行
日本 15F
非阻塞模式跑SSH服务器那段代码有点迷,process=true是必须的吗?
北京市 16F
前几天搭了个类似蜜罐,结果被扫爆了,这个有防暴力破解机制不?
江苏省淮安市 17F
这玩意部署到云上得小心点,别自己成肉鸡了hhh
湖南省长沙市 B1
@ 纸人低语 在安全组只放必要端口,配合VPC子网,基本不会被当肉鸡。
日本 18F
这个配置在CentOS上能跑吗?
河北省唐山市 B1
@ 冰尘 CentOS 7试过不行,依赖库版本对不上,建议还是用Ubuntu
韩国 19F
之前用过类似工具,日志处理这块确实省心
韩国 B1
@ 小透明 日志能直接进Postgres这点确实省事,不用自己写解析脚本了
上海市 20F
感觉默认密码test有点危险,建议改个复杂点的
四川省绵阳市 21F
要是能加个告警功能就更完美了
香港 22F
部署到云服务器需要注意哪些安全设置?
北京市 23F
可视化界面做得不错,比纯命令行友好多了
日本 24F
有人试过在树莓派上部署成功吗?
北京市 B1
@ 数字回廊 树莓派上装依赖慢但能跑,记得给SD卡留足空间,抓到的SSH暴力挺多。
印度 25F
支持这么多协议,日常监控够用了
吉林省延边州延吉市 26F
这个和HFish比哪个更好用?
日本 27F
安装步骤看着多,实际跟着文档一步步来挺顺利的
上海市 28F
默认密码test太显眼了,刚跑起来就被扫了十几波🤔
河南省洛阳市 29F
这协议列表也太全了吧,连Redis和Postgres都模拟,钓鱼稳了
北京市 30F
新手表示照着敲命令居然一次跑通了,感动哭
韩国 31F
有人知道Grafana里怎么按攻击类型筛选吗?界面有点懵
江苏省盐城市 32F
蜜罐起完直接nmap扫自己IP就行?试了下SSH端口没反应啊
上海市 33F
部署到云上记得关掉不必要的端口,别真被当跳板了hhh
日本 34F
感觉比HFish灵活,就是文档稍微有点散,得来回翻
湖南省衡阳市 B1
@ FadingMirage 文档确实可以再细化点,配几个快速上手的例子就好了。
日本 35F
协议真全,玩起来爽。
中国 36F
文档有点散,找例子挺费劲。
越南 37F
部署到云上真的要小心,别成跳板。
泰国 38F
默认密码test太显眼,改下吧。
福建省福州市 39F
这个非阻塞模式真的好用。
河北省石家庄市 B1
@ 星阑絮语 确实,process=true让服务器不阻塞,配合脚本可以轻松启动多个实例。
湖北省宜昌市 40F
我在树莓派上跑了一遍,装依赖有点慢,但最终能抓到SSH暴力。
马来西亚 41F
Grafana里怎么按攻击类型筛选?界面有点懵。
上海市南汇区 42F
如果在CentOS上部署,需要手动关闭selinux吗?
韩国 43F
我觉得比HFish灵活,但日志导入Postgres稍显繁琐。
江西省南昌市 44F
最近在公司做内部安全监控,试了下Chameleon,感觉整体体验不错,尤其是模块化的服务器导入方式,很适合按需定制。不过在部署到AWS时,安全组要仔细放行对应端口,否则抓不到流量,建议配合CloudWatch做统一日志收集。
浙江省 45F
默认密码真是太容易了
亚太地区 46F
Grafana筛选还有点晕
北京市 47F
模块化挺方便的
四川省成都市 48F
装依赖慢到想哭
北京市 49F
真是全协议支持
日本 50F
我在CentOS上部署时需要手动关闭selinux,否则服务不启动,大家注意下。
广东省东莞市 51F
非阻塞模式用process=true确实必须,否则线程会卡住,建议在脚本里显式写上。
贵州省贵阳市 52F
在AWS部署时要记得把安全组的对应端口放行,否则流量抓不到,配合CloudWatch日志更完整。
安徽省合肥市 53F
改了默认的test密码后,攻击流量明显下降,安全感提升不少。
中国电信 54F
想请教一下,如果在Docker里跑Chameleon,除了映射Grafana的3000端口,还需要把哪些蜜罐服务的端口一起映射才能完整捕获流量?比如SSH和Redis的端口应该怎么配置比较好?
上海市松江区 55F
模块化真的省事。
湖北省荆州市 56F
协议全,钓鱼稳。
湖北省武汉市 57F
默认密码太显眼了。
广东省广州市 58F
在CentOS上跑会不会因为SELinux阻止服务启动?需要怎么处理?
安徽省安庆市 59F
前几天我在树莓派上装了Chameleon,依赖慢但成功抓到SSH暴力,感觉挺值得的。
上海市南汇区 60F
如果想要更细粒度的告警,可以在Grafana面板上加一个基于IP和协议的阈值报警,配合Prometheus的规则导出,实时通知Slack或邮件,这样就能在攻击激增时第一时间响应。😊
湖南省长沙市 61F
看到有人把默认test密码直接暴露在公网,结果被扫描一波又一波,真是自投罗网,安全意识得加强。
台湾省 62F
这工具支持的协议还挺全。
河南省周口市 63F
这个Grafana面板的默认密码设置有点随意啊。
印度尼西亚 64F
这工具部署起来还挺方便。
上海市南汇区 65F
这个监控用户凭证的功能有点东西