署理服务器与隧道服务器(署理服务器工作原理)

  01

  因由

  如今较盛行的SSH蜜罐有中交互的kippocowire,高交互的honssh,都是基于twisted框架。在用这些蜜罐的时间想起来之前看python黑帽子用过paramiko库,非常好用,既能当sshclient又能当sshserver,模块的文档也非常具体,以是产生了基于paramiko写一个SSH高交互蜜罐的想法。

  02

  SSH蜜罐

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

  中交互蜜罐会给黑客模仿浩繁下令和返回结果,但是总是可以找到漏洞,到达一条下令辨认的结果。

  高交互蜜罐要将体系做的更加逼真,以是用了一个真实存在的操纵体系用于实行黑客的下令,但是SSH通讯又是加密的,以是蜜罐必要可以或许署理SSH并记录黑客的交互。

  它必要做到:

  完备的提供ssh各项功能

  获取入侵者要实行的交互或下令

  与其他主机交互并实行下令

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

  记录入侵者的全部举动

  及时关照蜜罐管理职员

  03

  高交互要求

  

  TCP服务器

  paramiko模块提供sshserver服务必要一个传入已经创建毗连的socket因此直接利用了python自带的SocketServer模块的多线程tcp服务器ThreadingTCPServer

  

  SSH服务

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

  认证(auth)

  只提供password方式的认证

  获取Shell并实行下令(shell)

  最常用的ssh利用方式

  单次实行下令(exec)

  不会向体系哀求shell,只实行单条下令

  雷同sshroot@server‘netstat-autpn’

  scp下令实际上利用的是exec通道

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

  正向端口转发(direct)

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

  ssh-Nf-L8000:localhost:80root@server

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

  反向端口转发(reverse)

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

  ssh-Nf-R8000:localhost:80root@server

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

  正向SOCKS5署理

  SSH服务方向与署理服务方向雷同

  ssh-Nf-D0.0.0.0:1080root@server

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

  SFTP服务

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

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

  由于大多数SSH服务器都提供了SFTP子体系,以是作为SSH蜜罐SFTP也要支持,还要可以或许生存下来黑客上传的文件。

  

  Wetland

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

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

  

  Docker

  docker作为轻量级假造化工具,很方便又提供了隔离本领

  有些ssh蜜罐利用docker的pythonapi,为每一个入侵者创建一个新的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脚本重放查察

  

  Execcommand

  execrequest只实行一条下令,会打开三条通道:stdinstdoutstderr

代理服务器与隧道服务器(代理服务器工作原理) 署理
服务器与隧道服务器(署理
服务器工作原理) 行业资讯

  假如下令立即实行完毕,三条通道会直接关闭

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

  wetland不会在exec通讯举行中及时分析文件,而是通过playlog脚本分析出exec.log中攻击者上传的文件,并生存到相应的文件夹

  

  DirectforwardSocksforward

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

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

  当收到一个request,正常的ssh服务器判定目标ip的目标端口(localhost:80)可以毗连时,会创建两者间的通讯

  当收到一个request,wetland蜜罐会向ssh容器发送雷同的哀求,假如乐成就创建并记录两者间的通讯

  Socks署理与正向端口转发的区别在于,署理每次哀求访问的ip、端口可以是差别的

  

  Reverseforward

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

  与正向端口转发雷同,wetland只转发并记录通道中的通讯

  

  SFTP

  wetland的sftp模块重要重写SFTPServerInterface

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

  假如攻击者通过SFTP上传了文件,wetland会别的生存一份在download文件夹

  

  Network

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

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

  具体操纵是为每个攻击者创建一个假造网卡,ip为随机值叫做fakeip

  然后利用iptables的SNAT和DNAT,修改fakeip和ssh容器间tcp22端口流量的src和dst,其他的通讯走正常的路由,如许一来ssh容器中看到的ssh毗连的源地点和攻击者的ip就一样了

  wetland和ssh容器间创建socket毗连前,必要先有一个bind操纵sock.bind((fake_ip,haker_port))

  末了只管ifconfig看到的ip是内网的,这也是比力正常的,外网的哀求都是转发进来的

  

  PlaylogClearlog

  由于有的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了这个服务器是作为各种恶意程序的下载服务器,微步在线上也有相应记录

  这个项目只是当初的一个想法,如今还在渐渐美满

(泉源:红客学院)

客户评论

我要评论