SSH作内网穿透促进Cobalt Strike+Metasploit联动

Cobalt Strike和Metasploit的适用场景

Metasploit算是我最早接触的神器之一了,相对比较熟悉,而Cobalt Strike(以下简称CS)是最近才开始玩的。

尽管之前已经久闻CS的大名,但是以为自己掌握了Metasploit就已经够用了,就一直没怎么去研究它。

而最近用起来才发现,CS着实有许多自己的独到之处。

例如CS的团队协作模式与其使用C/S架构,真的十分方便

例如Beacon的通信方式——异步和交互式,前者隐蔽,后者高效

总体感觉上,CS在控制方面比较稳定,隐蔽,用来做远控管理十分便捷。

而Metasploit在内网中横向移动则是如鱼得水,这一点CS要逊色几分.

尽管CS上一些强大的脚本可以弥补些许,但终究不如Metasploit用得畅快。

基于上面提到的特性,如果能将两者结合使用,自然是最好不过了。

这里我简单记录一下实战中较常用的联动场景

场景描述

假设:

我们在CS中已经获得一台上线机器,现在想把这台机器丢给Metasploit让meterpreter获得一个session。

通常情况下,攻击机和受害机分别处于两个不同的内网,中间通过CS的公网团队服务器进行沟通。

针对这种情况,要想让内网中的受害机能反弹session到同样身处内网的攻击机,我们可以用上端口转发

端口转发

很早前就写过关于端口转发的文章,当时主要用Netcat做的实验,不得不说,小小的Netcat是真的强大,不愧被称为“瑞士军刀”。

当时主要参考了下面的“三部曲”:
http://www.hackingtutorials.org/networking/hacking-with-netcat-part-1-the-basics/
http://www.hackingtutorials.org/networking/hacking-netcat-part-2-bind-reverse-shells/
http://www.hackingtutorials.org/networking/hacking-with-netcat-part-3-advanced-techniques/

中文版:
http://www.freebuf.com/column/135007.html

建议有能力还是看英文原版吧,翻译有些地方不是很准确,当时第一眼看到的是中文版,复现过程卡在了某一点上,最后找到了原版才解决的。

不过今天我打算用SSH来作端口转发,为什么选择SSH呢?

  1. 取材方便,多数Linux系统是不带nc的,但是都会有SSH。

  2. SSH会自动加解密客户端与服务端之间的所有网络数据,安全性高。

  3. SSH的功能更加强大与全面,用来做端口转发十分灵活。

借助SSH,我们可以完成本地端口转发、远程端口转发、动态端口转发、链式端口转发以及X转发,本文主要用到远程端口转发

那什么是远程端口转发呢?

结合命令:

ssh -R 远程地址:远程端口:目标地址:目标端口 服务器IP

简单来说,就是将发送到远程端口的请求,转发到目标端口

关于其他类型的转发,建议边画图边理解,吃透了本地和远程端口转发的区别,其他类型就能举一反三了。

基础知识可以参考IBM的一篇文章:实战 SSH 端口转发

结合之前的场景描述,捋一捋这次的转发目的——将内网攻击机的某一端口转发到公网机器上,使得另一内网中的受害机发送的流量经由公网机器能抵达攻击机从而建立连接。

最后我的转发命令就是下面这个样子:

ssh -NfR *:7776:localhost:7777 root@ip

解释一下:

  • N参数表示只连接远程主机,不打开shell
  • f参数表示连接成功后转入后台,这样可以保证不中断连接情况下本地执行其他命令

如果仅仅是这样的话,你登入远程主机后会发现:

netstat.png

出入安全考虑,默认远程端口是绑定在本地的,只允许在本机访问,另一内网中的受害机无法访问到该端口

那么怎么让别的主机也能使用这一端口呢?

关于这一点,SSH提供了GatewayPorts关键字

官方描述:

GatewayPorts Specifies whether remote hosts are allowed to connect to ports forwarded for the client. By default, sshd binds remote port forwardings to the loopback address. This prevents other remote hosts from connecting to forwarded ports. GatewayPorts can be used to specify that sshd should allow remote port forwardings to bind to non-loopback addresses, thus allowing other hosts to connect. The argument may be no to force remote port forwardings to be available to the local host only, yes to force remote port forwardings to bind to the wildcard address, or clientspecified to allow the client to select the address to which the forwarding is bound. The default is no.

只需要在SSH服务端的配置文件sshd_config中将该关键字的值改为yes,如果没有该关键字就如下添加一行:

GatewayPorts yes

注意:

  • 这一修改需要在ssh server端进行,与client无关!

  • 修改完后记得service ssh reload

测试一下:

test.png

至此我们便成功的将内网端口映射到了公网上

最后在CS中对目标机器右键新建spwan新建一个listener

采用foreign/reverse_http类型的payload并在MSF中开启相应的监听器就好了

讲到这,相信大家也能想到,利用这一方法,任何你能想到的公网应用都可以搭建在内网本地了,最常见的比如web服务等

其他工具

关于内网穿透,其实还有很多常用的工具

比如ngrok,我常用免费版来搭建一些临时的内网服务,不需要用到自己的VPS,适用于特定场景,蛮方便

比如socat,一款高级端口转发工具,也可以建立各种隧道,功能强大

还有许多一键式的工具可以在Github上找到,无需理解原理,操作便捷

总结

这次主要讲了下端口转发的相关内容,关于CS和MSF的技巧反倒没怎么提及。

实际上二者的联动还有多种场景,比如meterpreter中的session想传给CS,或者CS获得上线机器后想在MSF中继续横向渗透而不用获取session等

前者可以用MSF中的inject payload来做,后者可以借助CS的socks4a服务

值得一提的是,MSF中的route add功能远不如CS提供的socks4a协议稳定

说到底都是些工具的使用,用多了自然熟能生巧,真正的大头还是涉及到工具原理

比如payload的免杀,CS的C2通信问题,本地权限提升,持久化方式等等

本来是想先把免杀的文章写出来的,但是尝试了很多方法后发现还是源码级的免杀效果比较好,受水平限制,免杀部分得往后推迟些了。

另外通过最近对一些开源工具的源码分析,学习到了很多优秀的工具思想和编程技巧,后面会陆陆续续放出些源码分析相关的文章(立个FLAG!)

敬请期待吧!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • 转自:https://thief.one/2017/08/01/1/?hmsr=toutiao.io&utm_me...
    鲸息_Leon阅读 7,326评论 0 7
  • 实战 SSH 端口转发 通过本文的介绍,读者可以从中了解到如何应用 SSH 端口转发机制来解决日常工作 / 生活中...
    hopevow阅读 1,049评论 0 9
  • 第一部分 概述当你在咖啡馆享受免费 WiFi 的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室...
    fastjrun阅读 1,145评论 0 8
  • 一 漏洞及漏洞发掘方法 漏洞,是指在硬件、软件、协议实现或系统安全策略上存在缺陷,攻击者能够在未授权的情况下对系统...
    kaitoulee阅读 15,152评论 0 30
  • 作者:Homaebic 前言 上个学期一直在学审计,前几天ST2漏洞大火,随便打一个就是root权限,我却拿着ro...
    查无此人asdasd阅读 2,589评论 0 13