根据一篇报道 显示,golang 成为继 python 之后最受黑客欢迎的工具语言。而且和 python 的差距正在缩小。golang 具有一些 python 的优势:开发块,跨平台;同时又有 python 不具有的优势:运行效率高,在暴力破解,端口扫描,爬虫等等场景,编程语言的运行效率还是很重要的。
这篇文章从几个知名 golang 安全项目的角度,看看 golang 在安全领域的使用场景和特定。
这里面比较知名的工具是 frp 和 ngrok,gost。这两个工具的使用场景其实不能归类为安全范围【尽管内网穿透也有安全问题,容易被黑客利用】,使用这两个工具的用户都是为了这样的目的:在一个复杂的内网环境中,我想把内网的一个服务器 ip 暴露到公网上。这种 tunnel 类型的服务,原理比较简单,类似 nginx 之类的反向代理,只不过是被代理方主要发起,要求被代理。具体流程如下:
sequenceDiagram 内网ClientA->>tunnel服务: 请给我代理我本地的服务A tunnel服务->>内网ClientA: OK 外网用户->>tunnel服务: 我想访问 A 服务 tunnel服务->>内网ClientA: 有人要访问,转发给你 内网ClientA->>tunnel服务: 服务A Response tunnel服务->>外网用户: 服务A Response
Transporter
和 一个 Connector
; 而 本地Node 而用于接受本地请求,需要一个 Listener
和 一个 Handler
, 这几个东西都是针对不同协议,实现不同。// Transporter is responsible for handshaking with the proxy server. type Transporter interface { Dial(addr string, options ...DialOption) (net.Conn, error) Handshake(conn net.Conn, options ...HandshakeOption) (net.Conn, error) // Indicate that the Transporter supports multiplex Multiplex() bool } // Connector is responsible for connecting to the destination address. type Connector interface { // Deprecated: use ConnectContext instead. Connect(conn net.Conn, address string, options ...ConnectOption) (net.Conn, error) ConnectContext(ctx context.Context, conn net.Conn, network, address string, options ...ConnectOption) (net.Conn, error) } // Listener is a proxy server listener, just like a net.Listener. type Listener interface { net.Listener } // Handler is a proxy server handler type Handler interface { Init(options ...HandlerOption) Handle(net.Conn) }
由于不同的需求,代理的种类很多,但是也有一部分危机是隐藏在代理中的,其中最重要的是中间人攻击。事实上,很多代理设计出来,就是为了做中间人攻击/钓鱼。这类代理一般是 TLS-terminating forward proxies
, 即他本身是要解析 tls 协议的,这样才能获取 https 传输中的信息。他会解析用户请求,在访问远程服务器,协议出 https 返回,再做 tls 机密。代理在传输过程中可以任意修改/窃取用户或者服务端数据,比如修改 cookie/ cros 相关选项等等。两个示例的项目为 muraena 和 Modlishka
Reverse shell 不同于 ssh 之类多命令工具,通常由攻击者运行在被攻击者的主机上,主动连接一个服务器,从服务器上接受指令并执行。这种方式很类似内网穿透中使用的方式,好处是可以穿透防火墙.
sequenceDiagram 被攻击者主机->>攻击者主机: 有什么命令要执行的吗 攻击者主机->>被攻击者主机: 执行这些命令
hershell 是一个 go 语言编写的简单 reverse shell 工具。在服务端运行 socat/ncat/openssl server module 等工具都可以创建 server 用来等待 hershell 的连接;除了简单的 reverse shell,hershell 还支持注入 shellcode,对接 meterpreter 进行攻击的功能。
# 服务端 $ ncat --ssl --ssl-cert server.pem --ssl-key server.key -lvp 1234 Ncat: Version 7.60 ( https://nmap.org/ncat ) Ncat: Listening on :::1234 Ncat: Listening on 0.0.0.0:1234 Ncat: Connection from 172.16.122.105. Ncat: Connection from 172.16.122.105:47814. [hershell]> whoami desktop-3pvv31a\lab # 客户端【即被攻击端】 ? ./hershell
chashell 是一个类似的 reverse shell,不同的是 chashell client/server 端都由自己实现,他使用 dns 进行通信【dns 隧道,这种通信更不易被防火墙识别】,dns 中带了自定义的 protobuf 协议信息。
在TOP云(zuntop.com)科技租赁过服务器的站长都知道独立服务器在价格上比VPS主...
中国最?好的一朵云飘进了华瑞银行。阿里云将进一步助力华瑞银行All in Cloud。 -...
查看表结构,sbtest1有主键、k_1二级索引、i_c二级索引 CREATE TABLE `sbtest1` ...
一、PostgreSQL行业位置 一 行业位置 首先我们看一看RDS PostgreSQL在整个行业当...
定义 this是函数运行时自动生成的内部对象,即调用函数的那个对象。(不一定很准...
本文转载自网络,原文链接:https://mp.weixin.qq.com/s/vlOUg46B5bcmToX-fjavJQ...
很长时间没有更新原创文章了,但是还一直在思考和沉淀当中,后面公众号会更频繁...
最近,DevOps的采用导致了企业计算的重大转变。除无服务器计算,动态配置和即付...
9月17日,2020云栖大会上,阿里云正式发布工业大脑3.0。 阿里云智能资深产品专家...
2020年对于云计算行业来说是突破性的一年,因为公共云供应商增加了收入,而疫情...