当前位置:首页 > 网络黑客 > 正文内容

模拟黑客网站(模拟黑客网站网址入口)

hacker2个月前 (09-18)网络黑客19

  01

  起因

  目前较流行的SSH蜜罐有中交互的kippo cowire,高交互的honssh,都是基于twisted框架。在用这些蜜罐的时候想起来之前看python黑帽子用过paramiko库,非常好用,既能当ssh client又能当ssh server,模块的文档也非常详细,所以产生了基于paramiko写一个SSH高交互蜜罐的想法。

  02

  SSH蜜罐

  低交互蜜罐主要实现了部分SSH协议,用于记录黑客爆破ssh的密码和入侵情报。

  中交互蜜罐会给黑客模拟众多命令和返回结果,但是总是可以找到破绽,达到一条命令识别的效果。

  高交互蜜罐要将系统做的更加逼真,所以用了一个真实存在的操作系统用于执行黑客的命令,但是SSH通信又是加密的,所以蜜罐需要能够代理SSH并记录黑客的交互。

  它需要做到:

  完整的提供ssh各项功能

  获取入侵者要执行的交互或命令

模拟黑客网站(模拟黑客网站网址入口)

  与其他主机交互并执行命令

  将得到的结果返回给入侵者

  记录入侵者的所有行为

  及时通知蜜罐管理人员

模拟黑客网站(模拟黑客网站网址入口)

  03

  高交互要求

  >>>>

  TCP服务器

  paramiko模块提供ssh server服务需要一个传入已经建立连接的socket因此直接使用了python自带的SocketServer模块的多线程tcp服务器ThreadingTCPServer

  >>>>

  SSH服务

  通过重写paramiko的ServerInterface类的各个方法,使一个正常的SSH Server变为一个SSH蜜罐蜜罐要提供完整的SSH服务,也就是至少要提供:

  认证(auth)

  只提供password方式的认证

  获取Shell并执行命令(shell)

  最常用的ssh使用方式

  单次执行命令(exec)

  不会向系统请求shell,只执行单条命令

  类似ssh root@server ‘netstat -autpn’

  scp命令实际上使用的是exec通道

  因此可将scp传输的文件从exec通信中解析出来

  正向端口转发(direct)

  SSH服务方向与端口转发服务方向相同

  ssh -Nf -L 8000:localhost:80 root@server

  访问本地8000即为访问server的80

  反向端口转发(reverse)

  SSH服务方向与端口服务方向相反

  ssh -Nf -R 8000:localhost:80 root@server

  访问server的8000即为访问本地的80

  正向SOCKS5代理

  SSH服务方向与代理服务方向相同

  ssh -Nf -D 0.0.0.0:1080 root@server

  实际上代理每一个连接调用一次direct正向端口转发

  SFTP服务

  由于SSH提供了隧道能力,其他不安全的明文协议可基于ssh隧道提供更安全的服务

  paramiko提供了subsystem来提供对基于SSH隧道的协议支持

  由于大多数SSH服务器都提供了SFTP子系统,所以作为SSH蜜罐SFTP也要支持,还要能够保存下来黑客上传的文件。

  >>>>

  Wetland

  wetland是这个蜜罐的名字,起的比较随意。

  github地址——https://github.com/ohmyadd/wetland

  >>>>

  Docker

  docker作为轻量级虚拟化工具,很方便又提供了隔离能力

  有些ssh蜜罐利用docker的python api,为每一个入侵者建立一个新的sshd容器

  wetland没有采用这样的方式,一方面因为懒。。另一方面觉得这样做有些缺点

  在wetland公网测试的过程中,发现入侵的往往是一个团队,会从不同的ip登陆,如果采用上述的方式很可能出现两人同时在线却找不到对方的情况,这样会暴露蜜罐服务,所以wetland简单的使用手动建立的一个sshd容器,不管谁登陆都能看到前人留下的痕迹。

  必要时可导出当前的docker容器取证,重建容器、更换公网ip,这样又是一条好汉(蜜罐)了

  >>>>

  Auth

  wetland只采用了password认证,方便攻击者爆破

  服务器返回允许的认证方式使用paramiko.ServerInterface的get_allowed_auth方法若认证成功会通过output插件通知管理者,通知方式我喜欢bearychat,还可以是email、短信之类的

  >>>>

  Shell

  当攻击者认证成功后可以请求一个shell

  此时wetland会另开线程保持攻击者的shell和ssh容器shell间的通信。

  在转发数据的同时会将其记录进shell.log中,可通过后文介绍的playlog脚本重放查看

  >>>>

  Exec command

  exec request只执行一条命令,会打开三条通道:stdin stdout stderr

  如果命令立即执行完毕,三条通道会直接关闭

  scp有自己的简单的协议格式,并通过这三条通道传输文件

  wetland不会在exec通信进行中实时解析文件,而是通过playlog脚本解析出exec.log中攻击者上传的文件,并保存到相应的文件夹

  >>>>

  Direct forward & Socks forward

  执行ssh -fN -L 8000:localhost:80 8000:localhost:80 xxx操作后,实际只在本地开启服务器并监听8000端口

  当有程序连接8000端口时,ssh客户端才会发送一个direct_tcpip_request

  当收到一个request,正常的ssh服务器判断目的ip的目的端口(localhost:80)可以连接时,会建立两者间的通信

  当收到一个request,wetland蜜罐会向ssh容器发送相同的请求,如果成功就建立并记录两者间的通信

  Socks代理与正向端口转发的区别在于,代理每次请求访问的ip、端口可以是不同的

  >>>>

  Reverse forward

  执行ssh -fN -R 8000:localhost:80 xxx操作后,实际只在server端监听了8000端口

  与正向端口转发类似,wetland只转发并记录通道中的通信

  >>>>

  SFTP

  wetland的sftp模块主要重写SFTPServerInterface

  主要将入侵者的请求翻译为wetland作为sftp客户端的相应函数,在ssh容器中执行并记录

  如果攻击者通过SFTP上传了文件,wetland会另外保存一份在download文件夹

  >>>>

  Network

  ssh代理的一个弊端就是,当在ssh容器中查看网络连接,比如netstat命令,看到的会是wetland主机的IP

  当时意识到问题后没有想出好的解决办法,后来查看honssh的wiki发现他已经找到了解决方案,叫做高级网络设置

  具体操作是为每个攻击者建立一个虚拟网卡,ip为随机值叫做fake ip

  然后利用iptables的SNAT和DNAT,修改fake ip和ssh容器间tcp 22端口流量的src和dst,其他的通信走正常的路由,这样一来ssh容器中看到的ssh连接的源地址和攻击者的ip就一样了

  wetland和ssh容器间建立socket连接前,需要先有一个bind操作 sock.bind((fake_ip, haker_port))

  最后尽管ifconfig看到的ip是内网的,这也是比较正常的,外网的请求都是转发进来的

  >>>>

  Playlog Clearlog

  由于有的ip只爆破的密码或爆破成功但没有登陆执行命令,这样的日志还不在少数

  util文件夹中的clearlog.py工具,可清理log文件夹,只留下含有实际操作的日志,并把用于爆破的账号密码集中整理保存

  util文件夹中的playlog.py可以重放入侵者的各种命令、流量

  重放日志分为四类,shell、exec、direct、reverse

  shell类会输出所有ssh服务返回的字符,也就是能看到所有入侵者能看到的字符,输出分割为单条命令,回车输出下条命令的结果

  exec类会解析保存log中所有通过scp传输的文件,并且打印所有的命令和结果

  reverse、direct类会打印出两个方向的通信内容

  04

  安装

  可以查看github上的README,只需要安装所需的python库,并选择性的配置p0f、通知插件等额外功能就可以了

  05

  效果

  我部署了一个wetland蜜罐在腾讯云学生机上,四五天可以捕获这么多扫描或攻击

wetland蜜罐捕获的攻击

  经过clearlog脚本处理后,剩下有效入侵ip

有效入侵ip

  使用playlog脚本,可以重放exec.log

playlog脚本 重放exec.log

  可以看到入侵者下载了一波脚本,每个脚本都是另外下载一批木马,适配了各种架构效果

  逆向的小伙伴可以分析一波

  今天看文章发现,360天眼团队已经在六月份报告过46.218.149.85这个法国ip了这个服务器是作为各种恶意程序的下载服务器,微步在线上也有相应记录

  这个项目只是当初的一个想法,目前还在慢慢完善

(来源:红客学院)

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/149431.html

分享给朋友:

“模拟黑客网站(模拟黑客网站网址入口)” 的相关文章

华流年京东618怎么个便宜法

京东618年中大促作为京东活动力度最大的一个购物节,自然是受到很多人关注的,有些小伙伴一早就想好要在京东618上面买什么东西了,还有些小伙伴连今年京东618怎么个便宜法都不知道,下面就由百思特小编来给大家说说吧! 2020京东618便宜多少...

奥运会遭到俄罗斯黑客攻击!黑客攻击微信聊天记录

人民网2021年8月13日02:28:03的消息,黑客攻击微信聊天记录 东京奥运会惨遭俄罗斯黑客攻击! 英国国家网络安全中心日前揭露了一项惊人的黑客计划:俄罗斯军事情报部门曾准备对原定今夏举办的东京奥林匹克运动会和残奥会发起网络攻击。据悉,其攻击目标涵盖赛事组织者、后勤公司和赞助商。 打开百...

【干货知识】高級不断渗透第八季-demo就是远程控制

本季度是《高級不断渗透-第七季demo的发展》的持续。 点一下文尾左下角“阅读”可阅读文章第七季文章正文。 在第一季有关后门中,文章内容提及再次编译程序notepad ,来引入有目标源代码后门结构。 在第六季有关后门中,文章内容假定不在获知notepad 的源代码,来引入无目标源代码沟...

我老公老是让他家的亲戚来我家,我该怎么办?请各位帮我想想办法,我

我老公老是让他家的亲戚来我家,我该怎么办?请各位帮我想想办法,我 请各位帮我想想办法,开网店怎么找女装货源唔爱神起助您成就财富人生,想做微商?想开实体店?想开淘宝店?什么才是你创业的最重要步骤?货源!想在微商卖童装母婴用品纸尿裤女装,开童装女装店铺,你去哪里找最好的货源?如何找童装女装一手货源呢?...

为什么反复烧开的水会有毒?

为什么反复烧开的水会有毒? 千滚水就是在炉上沸腾了一夜或很长时间的水,还有电热水器中反复煮沸的水。这种水因煮过久,水中不挥发性物质,如钙、镁等重金属成分和亚硝酸盐因浓缩后含量很高。久饮这种水,会干扰人的胃肠功能,出现暂时腹泻、腹胀;有毒的亚硝酸盐还会造成机体缺氧,严重者会昏迷惊厥,甚至死亡。 蒸...

如厕阅读-如厕时读书看报有哪些坏处?

如厕阅读-如厕时读书看报有哪些坏处? 读书、看报兼如厕,不少人有这样的习惯。然而这一习惯非常不好。蹲厕时读书看报,会干扰大脑对排便传导神经的指挥,延长排便时间。现代医学研究证实,蹲厕超过3分钟即可直接导致直肠静脉曲张淤血,易诱发痔疮,且病情的轻重与时间长短有关。蹲厕时间越长,发病几率越高。因为久蹲...

评论列表

美咩未几
2个月前 (09-19)

  01   起因   目前较流行的SSH蜜罐有中交互的kippo cowire,高交互的honssh,都是基于twisted框架。在用这些蜜罐的时候想起来之前看python黑帽子用过paramiko库,非常好用,既能当ssh client又能当ssh server,模块的文档也

森槿织谜
2个月前 (09-19)

  scp有自己的简单的协议格式,并通过这三条通道传输文件  wetland不会在exec通信进行中实时解析文件,而是通过playlog脚本解析出exec.log中攻击者上传的文件,并保存到相应的文件夹  >>>>  Direc

囤梦假欢
2个月前 (09-19)

决方案,叫做高级网络设置  具体操作是为每个攻击者建立一个虚拟网卡,ip为随机值叫做fake ip  然后利用iptables的SNAT和DNAT,修改fake

世味谷夏
2个月前 (09-19)

文件夹,只留下含有实际操作的日志,并把用于爆破的账号密码集中整理保存  util文件夹中的playlog.py可以重放入侵者的各种命令、流量  重放日志分为四类,shell、exec、direct、reverse  shell类会输出所有ssh服务返

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。