更多全球网络安全资讯尽在邑安全

www.eansec.com

0x00 使用场景

在渗透测试中,由于防火墙的原因,目标主机可能只开放了某一个业务端口,其余反连和直连的端口被全部禁用了,借用mssqlproxy的一个图,很好的呈现了这种场景。

这个时候我们虽然可以利用UDF执行命令,但是十分不方便,于是就有了下面的说法。

0x01 原理

关键原理就是UDF和Socket Reuse。Mysql UDF各位师傅应该都很熟悉,这里就不详细讲了;而Socket Reuse,虽然我是第一次听说,但其实很早就有相关的概念了:

Socket-reuse shellcode is used to bypass firewalls. Usually, shellcode and exploit developers and users provide "bindshell" and "connect-back" shellcodes. Both of these require a permissive firewall to some extent or another. However, because sockets are treated as re-usable or dynamic file descriptors by most operating systems, it is possible to examine existing socket connections, therefore one can simply bind a shell to the socket that the exploit shellcode came from.

具体可以看下这篇文章

0x02 踩坑过程

一开始想着跑跑代码能用就行了,毕竟也不是很难的技术,原理也比较简单,但我就是自带用不了别人poc的属性,死活跑不起来,没办法,只能自己调代码了。

来看下关键代码逻辑,先看攻击端,首先连接Mysql数据库,然后进入proxy_init函数,传参是3,其实就是我们连接数据库的那个socket的fd,012是标准输入输出那些

执行已经加载好的UDF函数,并读取服务端返回的一个特定字符串,确定服务端代码已经执行,跳出循环,select_fd[0]即数据库链接fd

在本地监听任意可用的端口,这里用了1337,select_fd[1]是我们用proxychains连接时产生的fd

后面就是上面提到的这两个fd循环读取和写数据了。

感觉没什么问题,因为客户端的代码是可以跑起来的,也能成功执行服务端的函数,执行proxychains ssh root@127.0.0.1,抓个包验证一下(不熟悉socks5的师傅可以看看这个),客户端先发送了05 01 0005是版本号,01是支持的认证方式总数,后面就是认证方式,00NOAUTH

服务端返回05 00,同样05是版本号,00是服务端选择的认证方式

至此认证是已经完成了的,然后就是客户端发送命令05 01 00 01 7f 00 00 01 00 16,各字节含义如下:

  • 05 版本号

  • 01 CONNECT命令

  • 00 保留字段

  • 01 地址类型为IPv4

  • 7f 00 00 01 IP地址127.0.0.1

  • 00 16 端口号22

发现服务端一直没有PSH ACK的回应,于是客户端发了FIN结束连接,所以问题在服务端

客户端执行select do_carracha('a');之后,服务端用getpeername遍历所有fd,通过ip匹配上我们的连接,并fork出一个子进程,执行payload

最终子进程执行了worker函数,fd就是客户端的数据库连接,红框中的socks5_invitation和socks5_auth分别对应了客户端发的05 01 00和服务端发的05 00

所以为什么socks5_command这里出了问题?原来的代码读了05 01 00 01 7f 00 00 01 00 16的前4个字节

然后判断第4个字节是否01,但是判断socks命令类型不应该是判断第2个字节吗......虽然结果是一样的,这里就假设是对的

所以应该是服务端读的问题了,于是尝试了好多种方式打印command,但是写文件不知道为什么写不了,用gethostbyname发到dnslog也发不出去,system也执行不了命令,可能是权限的原因?不过也没有深究了,因为虽然写不了文件,但是文件是可以创建的,把command拼到文件名即可。

最后发现是command前面多了一个00......所以是socks5_invitation这里读少了一个字节,擦,那作者是怎么跑成功的......

所以就把上面那里读少的字节读完,就可以跑了,启动代理

成功连接

转自先知社区

欢迎收藏并分享朋友圈,让五邑人网络更安全

欢迎扫描关注我们,及时了解最新安全动态、学习最潮流的安全姿势!

推荐文章

1

新永恒之蓝?微软SMBv3高危漏洞(CVE-2020-0796)分析复现

2

重大漏洞预警:ubuntu最新版本存在本地提权漏洞(已有EXP) 

安卓socks5代理客户端_内网Mysql代理浅析相关推荐

  1. nps+Proxifier搭建socks5代理隧道进行内网穿透

    目录 一.实验环境搭建 二.nps 服务端配置 客户端配置 将npc注册到系统服务 三.Proxifiers使用 在渗透过程中,我们需要快速实现内网穿透,从而绕过网络访问限制,直接从外网来访问内网 正 ...

  2. 通过nginx代理进行内网mysql的访问

    公网只暴露了一个默认端口,只好想办法访问数据库 选用nginx进行转发.配置如下: stream {upstream cloudsocket {hash $remote_addr consistent ...

  3. 部署NPS实现Socks5代理访问公司内网教程

    公司需要部署VPN来实现对内网的GitLab和禅道的访问,但是现状是公司的电信宽带分配的动态IP隔一段时间就会跳变,使用VPN是不稳定的,每隔一段时间都要修改VPN配置的IP.因此决定用已有的一台公网 ...

  4. 内网入口——代理搭建端口转发

    在内网渗透过程中经常会遇到搭建代理和端口转发的情况,本文记录一些常用工具的使用方法和典型应用场景,便于查阅. 文章目录 代理搭建&端口转发 1.EW 2.Venom 3.Stowaway 4. ...

  5. 内网渗透-代理篇(reGeorg+Proxifier代理工具)

    声明:贝塔安全实验室公众号大部分文章来自团队核心成员和知识星球成员,少部分文章经过原作者授权和其它公众号白名单转载.未经授权,严禁转载,如需转载,请联系开白!请勿利用文章内的相关技术从事非法测试,如因 ...

  6. 内网渗透代理转发详解及工具介绍

    介绍一下个人网站 欢迎各位大佬光顾 http://www.sec0nd.top 文章目录 前言 正向代理和反向代理 正向代理 反向代理 举例辨别两者 内网渗透中代理的作用 工具介绍 msf nps f ...

  7. 在安卓上部署服务器 - 解决内网穿透

    原文地址:在安卓上部署服务器 - 解决内网穿透 本系列其他文章: 在安卓上部署服务器 在安卓上部署服务器 – 应用程序的配置 在安卓上部署服务器 – 解决内网穿透问题 在安卓上部署服务器 – 部署脚本 ...

  8. 路由器_内网端口映射

    路由器_内网端口映射,nat_端口映射_工具_软件_远程桌面_连接端 口_花生壳_个人_FTP_服务器_WEB站点 1.让(家里)宿舍自己的电脑跟公司(外地)的电脑互相远程桌面连接(免得每次COPY东 ...

  9. 通过SOCKS代理渗透整个内网

    通过SOCKS代理渗透整个内网 1.背景 经过前期的渗透工作,我们现在已经成功找到了web站点的漏洞,并且获得了一个普通的webshell,现在准备用菜刀去连接它. 注意:本次环境在本地搭建,假设现在 ...

最新文章

  1. hadoop slaves文件_hadoop:分布式集群参数master节点的配置!
  2. 一个智能机器人的语录
  3. vscode使用教程python-VsCode使用教程
  4. linux 自动安装mysql数据库_Linux安装MySql数据库
  5. python的简介和入门
  6. 系统盘点Android开发者必须掌握的知识点,含小米、腾讯、阿里
  7. 已触发了一个断点 vs_VSCode源码分析-断点调试
  8. TPL Dataflow .Net 数据流组件,了解一下?
  9. JavaEE实战班第十七天
  10. Selector.wakeup实现注记
  11. 军用装备产品GJB150A淋雨试验检测机构
  12. 点赞过3万的docker视频教程
  13. 计算机指令集类型,指令集分类 (CISC,RISC和VLIW等)
  14. (转载)巴西世界杯谁能夺冠?霍金和高盛做预测
  15. 多元逻辑回归 · 数学推导过程及代码实现完全解析
  16. Dynamics 365 窗体中设置可编辑的子网格
  17. 免费电子书 工具 开发工具包 各类资源 下载 .
  18. 商业世界里的“谈判”到底是什么
  19. 【SRE笔记 2022.9.21 网络及TCP握手】
  20. FS9017R.是一款单节4.2V锂电池充电管理IC

热门文章

  1. python官网下载步骤2019-Python IDE开发工具下载
  2. 学python要多少钱-学习Python这门课程大概需要多久?费用是多少?
  3. python要在哪里写代码-初识python【今天开始写代码】第一课
  4. python编写程序的一般步骤-Python:开发_基本流程
  5. python简单编程例子-Python入门 —— 用pycharm写一个简单的小程序3
  6. python语言培训班-学python培训班需要多久?深圳Python培训
  7. python实习做什么工作-大一/大二学生Python实习的困惑?
  8. opencv、matplotlib、pillow和pytorch读取数据的通道顺序
  9. git clone 出现错误 Could not resolve host: github.com
  10. jquery ajax跨域asp,jQuery跨域调用Asp.Net Web API