内网渗透工具CobaltStrike使用教程详解

文章目录

  • 前言
  • 一、CobaltStrike
    • 本次实验环境
  • 二、CobaltStrike详细使用
    • 1.启动CobaltStrike
    • 2.客户端连接团队服务端
    • 3.配置监听器
    • 4.生成木马
    • 5.权限提升,命令执行以及内网横线穿透等。
    • 6.插件加载
    • 7.命令执行等操作
    • 8.目标信息总结表(自动记忆保存)
    • 10.查看主机的文件和文件夹结构信息等
    • 11.横向移动
  • 总结


前言

经过前期的一系列铺垫,虚拟机等一切的安装和部署,都是为了今天的这个CobaltStrike做准备。如果你经常关注我,你可能会发现我这段时间更新的速度越来越频繁,而且都是一些有的没的,比如windows怎么显示后缀,虚拟机启动不了的解决办法等等,不是我遇到创作瓶颈了,也不是我不搞安全了,是我最近外卖送的少,所以时间比较充足,当人时间一多,就会开始整活,所以就开始整CobaltStrike,也就是业内人员俗称的cs,也叫“多人运动”工具。


提示:以下是本篇文章正文内容,下面案例可供参考

一、CobaltStrike

内网大杀器,因为可以多用户同时连接,所以也叫多人运动工具。
大概流程:
启动-配置-监听-执行-上线-提权-信息收集(网络,凭证,定位等)-渗透
1.关于启动及配置讲解
2.关于提权及插件加载
3.关于信息收集命令讲解
4.关于视图自动化功能讲解

net view
net computer
net dclist 
shell net user /domain
  • 1
  • 2
  • 3
  • 4

由于CobaltStrike里面的插件放到本机会一堆报毒,所以演示全部放到虚拟机上运行。

本次实验环境

Kali_Linux: 192.168.3.130 teamserver团队服务器
win7_1靶机: 192.168.3.131
win7_2客户端: 192.168.3.132

运行CobaltStrike工具必须要有java环境,所以要提前装好jdk,我kali上是jdk11,两台win7是jdk1.8

二、CobaltStrike详细使用

1.启动CobaltStrike

./teamserver 192.168.3.130 passwd
  • 1

在这里插入图片描述

2.客户端连接团队服务端

主机的ip地址就是kali的teamserver团队服务器(以下简称服务端)地址192.168.3.130
端口是服务端中监听的54321
用户名随意起,主要作用是为了方便团队互相知道成员是谁。
密码就是刚刚服务端中设置的密码:passwd
完事之后点击连接,然后确认sha256的哈希值是否匹配,点击确定即可。
在这里插入图片描述
成功连接,显示窗口。
在这里插入图片描述
我们可以把cs理解成一个远程工具,那么接下来就是如何上线的问题,怎么进行目标服务器的上线和如何攻击就是后面的内容。

3.配置监听器

监听器可以理解为配置木马传输的管道
点击进来以后,会发现有很多种协议
在这里插入图片描述
选择一个HTTP协议,命名为webserver,端口自定义设置,我设置成5566进行监听
在这里插入图片描述
点击save保存,监听开始。
在这里插入图片描述

4.生成木马

制作一个后面程序,有很多种类型可以自己选择,推荐大家看看英文版,可以看到文件的后缀。这里的汉化有一点点小bug,其实应该为html,office宏病毒,exe等等。
在这里插入图片描述
英文版对照:
在这里插入图片描述
一般常用的都是后面两个,我这里用windows Executable的来演示。可以看到有exe和dll格式的选择,这里我选择第一个常规的exe。
在这里插入图片描述
然后选择刚刚设置好的监听器,最后确认就行。
在这里插入图片描述

接着是配置木马生成的路径,这里我保存到桌面,并且把木马程序命名为web.exe。
在这里插入图片描述
保存之后,就会生成一个木马在桌面。
如果你有杀毒软件,这个程序是会被杀掉的,所以要做免杀才行,实战中也是如此,没有免杀基本上凉凉。
在这里插入图片描述

将木马放到受害者的主机运行就可以上线,那么这一步是怎么在实战中做到呢?其实很简单,只需要在vps服务器上启动cs服务端,就会用本机电脑来当客户端,把木马程序生成到本地,做好免杀后,传到已经getshell的目标服务器上执行。这个时候cs客户端就能够成功看到目标服务器上线cs。
因为我这里是用虚拟机的演示,总结起来就是,kali就是实战中的vps服务器,win7_2就是我们自己的电脑,win7_1就是被攻击者的主机,也就是目标服务器。
在这里插入图片描述
目标服务器成功上线cs。

5.权限提升,命令执行以及内网横线穿透等。

目标上线意味着我们已经可以执行目标服务器的系统命令,操作主机。下面是一些信息收集部分。
顺带一提,cs可以设置可视化,以图形化的方式显示:
在这里插入图片描述
设置完成之后,右键点击目标,可以对它进行各种各样的攻击和手段了。
在这里插入图片描述

6.插件加载

因为这个工具没有插件会显得功能上稍显欠缺,以权限提升Elevate为例,只提供了两种方法。
在这里插入图片描述
为了让工具更加强大,可以到github上面下载优质的cs插件,我这里已经提前下载好了很多优质插件,添加的方式只需要点击Cobalt Strike,最下面的插件脚本管理器Script,点击load上传本地的插件cna格式的脚本文件即可。
在这里插入图片描述
你也可以添加各种各样的脚本,添加完之后,功能也变多了。
在这里插入图片描述
选了个ms14-058,Launch!
在这里插入图片描述
如果等待时间太久,可以设置sleep的时间,让他变得更快。
在这里插入图片描述
设置sleep时间为3:
在这里插入图片描述
设置完之后,秒成功,成功出现一个红色闪电包裹的主机,没错,那就是提权成功了。并且显示了system权限,这个时候我们就可以利用mimikatz进行主机信息收集,为进一步的横向移动做准备了。
在这里插入图片描述

7.命令执行等操作

在这里插入图片描述
提权以后,右键目标主机,选择interact,interact的意思有-互动;相互作用;交流;相互影响等意思,简单来说就是互动,可以理解为和这台主机进行交流,意思就是可以执行相应的命令来对主机进行各种操作,点击interact后,输入help就可以看到cs自带的命令:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
可以看到cs给我们提供了超级多的命令参数,这里就不全部演示,就挑几个常用的本地信息收集命令吧,其他的可以动手自己摸索,后面的注释都是英文,自己翻译过后记忆会更深一点。
得到权限:

getuid
  • 1

在这里插入图片描述

查看当前网络环境:

net view
  • 1

在这里插入图片描述
自动帮你探针当前网络架构,因为我当前的实验环境没有域,如果有域环境的话,显示的内容就是下面这样:
在这里插入图片描述
获取域控的信息:net dclist

在这里插入图片描述
由于实验环境我没有搭域控,所以没有显示。
假如有域控的话,显示结果就是域控DC的信息列表了,超级nb:
在这里插入图片描述
上面所讲的呢都是cs自带的命令,像是ipconfig,ping之类的shell命令,是执行失败的:
在这里插入图片描述
那么如果像执行这种命令也是可以的,只需要在前面加上shell就可以了,例如:
在这里插入图片描述在这里插入图片描述

8.目标信息总结表(自动记忆保存)

如果是一个主机,那么信息很好记,但是假如域内有很多主机,每一台的意思整理起来非常困难,而且信息很容易搞混乱,cs好就好在非常人性化,自动帮忙总结与归纳,把收集的所有信息都保存起来,方便查看。
左上角的View(视图)-> Targets(目标)

在这里插入图片描述

主机信息就会在表里显示,这都是之前探针到的。记录在这里,方便查看。
9、执行Mimikatz
在这里插入图片描述
只需要右键,Access->Run Mimikatz就行:
在这里插入图片描述
系统的账号密码也是轻容抓到了,Mimikatz是自带的,很方便。运行Mimikatz一定要system权限才行,普通权限是执行不了Mimikatz的。所以要先提权。
Mimikatz获取到的消息很长,我们在cs上也不用慢慢去找,直接帮我们统计好了,只需要点击视图(view)->凭证信息
账号和密码就会全部显示在表里,十分方便。
在这里插入图片描述

10.查看主机的文件和文件夹结构信息等

在这里插入图片描述

右键Explore->File Browser就可以看到系统的所有文件了:
在这里插入图片描述
同时,还可以上传文件,创建文件夹等各种操作。
在这里插入图片描述
上传的文件进行复制,下载,执行,删除的操作。

11.横向移动

在这里插入图片描述
在前期的信息收集中,所有的主机信息都在目标Targets里,看谁不爽就右键,Jump。就可以列出各种横向的方法,比如psexec等,还有扫描Scan等等。
我们选择psexec进行横向来举例(以有域环境的例子来演示,具体操作一模一样,cs就是很方便):
右键选中psexec后,点击刚刚收集到的主机信息(通过Mimikatz获取的账号与密码等,也可以自己尝试填)。
在这里插入图片描述
选择刚开始就创建好的监听器Listener和选择的主机Session,点击Launch发射。
在这里插入图片描述
成功上线,后面的操作就类似了,无非就是一步一步离DC越来越近,拿下域控,渗透结束。
在这里插入图片描述下次会讲如何进行不出网机器的连接,也就是隧道技术,正向代理和反向代理的区别等。今天上班有点累了,先休息一下。后续我会花更多的精力放到内网渗透上,这是开篇。


总结

CS确实是每一个渗透测试人员离不开的工具。之前有玩过,但是这也算是我第一次那么认真的记录使用方法,最近记忆力真的不好,总是忘东西,所以才记一记,都是很基础的一些功能,没什么好总结的,功能的用法在目录上点击就可以自动跳转到实操部分了,继续送餐了,加油!

    文章原创,欢迎转载,请注明文章出处: 内网渗透工具CobaltStrike使用教程详解.。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

</article>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日志长度_Kafka 日志存储详解

点击上方“Java知音”&#xff0c;选择“置顶公众号”技术文章第一时间送达&#xff01;作者&#xff1a;爱宝贝丶my.oschina.net/zhangxufeng/blog/3114166本文主要介绍kafka中日志的存储原理&#xff0c;主要内容包括kafka日志存储格式、日志文件的管理方式、日志索引文件的格…

怎样理解阻塞非阻塞与同步异步的区别?

本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接&#xff1a;http://www.linuxidc.com/Linux/2015-07/120338.htm “阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解&#xff0c;提供一个从分布式系统角度的回答。 1.同步与异步同…

【算法图解|1】js 实现一个函数,完成超过范围的两个大整数相加功能

这个问题中的两个数字&#xff0c;都是超出范围的&#xff0c;所以就不能简单的把两个数字&#xff0c;转为Number类型&#xff0c;进行相加。 需要取两个数字的每一位&#xff0c;进行相加&#xff0c;大于10&#xff0c;就进1&#xff0c;把结果保存在一个字符串中。 主要思路…

Apache Spark:更改架构之前必须解决的5个陷阱

迁移到Apache Spark之前需要了解的5件事 似乎每个人都只是在谈论最热门的新技术&#xff0c;而忽略采用它的真正含义。 但这是自然的&#xff0c;对吧&#xff1f; 新功能和承诺胜过其他一切&#xff0c;而艰巨的挑战和决​​定被抛在一边。 这次不行。 软件架构很难&#xf…

git config配置文件

设置 git status的颜色。 git config --global color.status auto 一.Git已经在你的系统中了&#xff0c;你会做一些事情来客户化你的Git环境。你只需要做这些设置一次&#xff1b;即使你升级了&#xff0c;他们也会绑定到你的环境中。你也可以在任何时刻通过运行命令来重新更改…

双清模式无命令_linux性能监控:IO性能监控命令之iotop命令

内存监控命令之iotop命令1概述&#xff1a;iotop命令 是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI&#xff0c;其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat&#xff0c;nmon等大多数是只能统计到per设备的读写情况&#xff0…

【算法图解|2】JavaScript 如何实现数组扁平化

数组的扁平化&#xff0c;就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。 举个例子&#xff0c;假设有个名为 flatten 的函数可以做到数组扁平化&#xff0c; var arr [1, [2, [3, 4]]]; console.log(flatten(arr)) // [1, 2, 3, 4] 我们最一开始…

质问微软 WP8.1开发HTTPS 真费劲

本人用C#多年,WPF2年,一直想做点应用为WP生态贡献一点力量,最近终于有机会接触了 家里的本子是2年前的低压I3,不支持虚拟化,一直没有真机.最近同事妈妈换下来一个820给我拿来做开发用,非常感谢!!! 作为C#开发,一直被其他语言看不起,我想你们中的很多人遇到这个问题的不在少数,但…

多生产者_通知:生产者补贴!打卡时间!定了

【生产者补贴&#xff01;打卡时间定了&#xff01;9月30日前&#xff01;】老道说&#xff1a;这几天吉林和黑龙江陆续下发了2020年玉米、大豆生产者补贴实施工作方案&#xff01;连日来关于生产者补贴方面的消息&#xff0c;也算是逐渐浮出水面&#xff01;根据黑龙江地区的方…

vaadin_Vaadin附加组件和Maven

vaadin介绍 我喜欢Vaadin的 &#xff08;其中很多&#xff09;一件事是它对Vaadin框架的“附加组件”社区-他们称之为Vaadin目录 。 “附加组件”是社区对框架的附加组件&#xff0c;可以是任何东西&#xff0c;例如从新的客户端小部件到数据表的延迟加载容器。 我一定会为Acti…

【算法图解|3】JavaScript 如何实现数组去重

数组去重方法老生常谈&#xff0c;既然是常谈&#xff0c;我也来谈谈。 也许我们首先想到的是使用 indexOf 来循环判断一遍&#xff0c;但在这个方法之前&#xff0c;让我们先看看最原始的方法&#xff1a; var array [1, 1, 1, 1];function unique(array) {// res用来存储结…

angular 数字逗号分隔_angular 实现的输入框数字千分位及保留几位小数点功能示例...

摘要&#xff1a;这篇AngularJS栏目下的“angular 实现的输入框数字千分位及保留几位小数点功能示例”&#xff0c;介绍的技术点是“angular、保留几位小数、千分位、小数点、输入框、示例”&#xff0c;希望对大家开发技术学习和问题解决有帮助。本文实例讲述了angular 实现的…

单页应用程序的Spring Boot静态Web资源处理

诸如gulp和grunt之类的Javascript构建工具确实让我大吃一惊&#xff0c;我看着这些工具的构建脚本之一&#xff0c;发现很难理解它&#xff0c;无法想象从头开始编写其中一个构建脚本。 这就是yeoman出现的地方&#xff0c;它是一种非常方便的工具&#xff0c;它可以使用无数种…

Beta版本冲刺第二天

队伍CleanCode 031302505 黄晓辉031302223 翁瀚帅031302511 林培兴031302632 张衍坤031302536 苏丽玲一.完成的情况&#xff1a; 继续熟悉了github的使用&#xff0c;开始配置Tomcat服务器环境&#xff0c;增加了号码百事通的号码和游玩福州的一些资料&#xff0c;想要改进α版…

华字后面配什么字比较好_女孩叫华什么名字好听 华字和什么字搭配取名最好...

女孩叫华什么名字好听华鹭 华朦 华芮 华云 华徘 华葛 华馥华苹 华闵 华松 华娴 华红 华幽 华枫华双 华娉 华媚 华蝴 华胭 华瑷 华瑶华任 华智 华妮 华菀 华嫙 华笙 华楚华寐 华萱 华葵 华岱 华勤 华湘 华宜华咏 华欣 华娓 华穎 华兰 华汐 …

【算法图解|4】JavaScript 如何求数组的最大值和最小值

取出数组中的最大值或者最小值是开发中常见的需求 最原始的方法&#xff0c;莫过于循环遍历一遍&#xff1a; var arr [6, 4, 1, 8, 2, 11, 23];var result arr[0]; for (var i 1; i < arr.length; i) {result Math.max(result, arr[i]); } console.log(result); 通过…

elf 取路径_c – 获取主要可执行文件的ELF标题

由dlopen(0,RTLD_LAZY)返回的void *指针给出一个对应于主可执行文件的struct link_map *.调用dl_iterate_phdr也会在首次执行回调时返回主可执行文件的条目.你可能会被链接映射中的.l_addr 0这个事实所困惑,而使用dl_iterate_phdr的那个dlpi_addr 0.这正在发生,因为l_addr(和…

【算法图解|5】javaScript求两个数的最大公约数

思路&#xff1a;采用辗转相除的方法&#xff0c;用大的数去除以小的那个数&#xff0c;然后再用小的数去除以的得到的余数&#xff0c;一直这样递归下去&#xff0c; 直到余数为0时&#xff0c;最后的被除数就是两个数的最大公约数。 function getMaxCommonDivisor(a, b) {if …

多线程编程反模式_编程反模式

多线程编程反模式您是否曾经进行过代码审查&#xff0c;记录了非常高的WTF / m&#xff1f; 您是否想知道所有这些错误代码的原因是什么&#xff1f; 在大多数情况下&#xff0c;导致原因1的原因是使用设计和编码反模式。 如果您喜欢定义&#xff0c;请参见以下内容&#xff1…

JavaScript 如何求两个数的最小公倍数

1 .用辗转相除法求最大公约数 算法描述: m对n求余传给自己&#xff0c;再次求余, 若余数等于0 则 n 为最大公约数 2.最小公倍数 两个数的积 / 最大公约数 基本思想是采用将两个数相乘&#xff0c;然后除以它们的最大公约数 function getMinCommonMultiple(a, b){return a * b …