CS学习笔记 | 21、反向转发通道的建立
0x00 前言
这一节将介绍使用 ProxyChains 进行代理转发与使用反向转发的方法。
0x01 使用 ProxyChains 进行代理转发
介绍
使用 ProxyChains 可以使我们为没有代理配置功能的软件强制使用代理
- 和上一节中介绍的一致,开启一个 socks 代理服务
- 配置
/etc/proxychains.conf
文件 - 运行
proxychains + 待执行命令
演示
接下来继续上一节中的演示环境:
攻击机 IP:192.168.175.200 上线主机:外部IP 192.168.175.130、内部IP 192.168.232.133 攻击目标:192.168.232.0/24 地址段
1、设置 socks 代理
首先开启交互模式,之后开启 socks 代理
sleep 0socks 9527
beacon> sleep 0[*] Tasked beacon to become interactive[+] host called home, sent: 16 bytesbeacon> socks 9527[+] host called home, sent: 16 bytes[+] started SOCKS4a server on: 9527
2、配置 ProxyChains
在攻击机上,配置 /etc/proxychains.conf
文件的最后一行,根据当前攻击主机 IP 与设置的 Socks 端口,修改如下:
socks4 192.168.175.200 9527
3、开始使用 ProxyChains
根据上一节使用 Metasploit 的扫描可以知道,在 192.168.232.0/24 地址段中存在主机 192.168.232.132 ,接下来使用 nmap 扫描一下常见的端口,这里以 80,443,445,3389 作为演示。
proxychains nmap -sT -Pn 192.168.232.132 -p 80,443,445,3389
-sT:使用 TCP 扫描 -Pn:不使用 Ping -p:指定扫描端口 注:不加上 -sT -Pn 参数,将无法使用 proxychains 进行代理扫描
> proxychains nmap -sT -Pn 192.168.232.132 -p 80,443,445,3389 [proxychains] config file found: /etc/proxychains.conf[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4[proxychains] DLL init: proxychains-ng 4.14Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-07 23:05 EDT[proxychains] Strict chain ... 192.168.175.200:9527 ... 192.168.232.132:80 ... OK[proxychains] Strict chain ... 192.168.175.200:9527 ... 192.168.232.132:445 ... OK[proxychains] Strict chain ... 192.168.175.200:9527 ... 192.168.232.132:3389 ... OK[proxychains] Strict chain ... 192.168.175.200:9527 ... 192.168.232.132:443 <--deniedNmap scan report for 192.168.232.132Host is up (0.19s latency).
PORT STATE SERVICE80/tcp open http443/tcp closed https445/tcp open microsoft-ds3389/tcp open ms-wbt-server
Nmap done: 1 IP address (1 host up) scanned in 14.35 seconds
通过扫描可以看到目标 80 端口是开放的,接下来使用 curl 作为对比示例。
curl 192.168.232.132proxychains curl 192.168.232.132
> curl 192.168.232.132curl: (7) Failed to connect to 192.168.232.132 port 80: No route to host
> proxychains curl 192.168.232.132[proxychains] config file found: /etc/proxychains.conf[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4[proxychains] DLL init: proxychains-ng 4.14[proxychains] Strict chain ... 192.168.175.200:9527 ... 192.168.232.132:80 ... OK<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />……内容太多,此处省略……
0x02 反向转发
反向转发顾名思义就是和上一节中提到的转发路径相反,之前我们设置的代理是 CS服务端 --> 上线主机 --> 内网主机
,反向转发则是 内网主机 --> 上线主机 --> CS服务端
。
继续使用上面的演示环境,首先右击上线主机会话,选择 Pivoting --> Listener
,除了 Name 选项之外,CS 都会自动配置好,这里直接使用默认的配置信息。
之后生成一个 Windows 可执行文件,选择上一步生成的监听器,如果目标是 64 位则勾选使用 x64 Payload 的选项。
之后将该可执行文件在目标主机上执行即可,在现实环境中可以尝试使用钓鱼邮件的方式诱导目标执行。
当目标执行该文件后,就会发现当前不出网的 192.168.232.132 主机已经上线了。
有一说一,关于这部分网上大部分教程还是 CS 3.x 版本的教程,而在 4.0 的操作中个人感觉要方便很多。
网上关于这部分内容的 CS 4.0 教程真的是少之又少,一开始在参考 3.x 教程的时候踩了很多坑,最后终于某内部知识库发现了一篇关于这部分内容的 4.0 教程,在该教程的参考下才发现居然如此简单。
原文链接:https://www.teamssix.com/year/200419-150651.html 参考链接:https://www.bilibili.com/video/BV16b411i7n5
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- No module named ‘SerialClient‘和Cannot import package : rosserial_arduino
- 提升开发效率N倍的20+命令行神器!(附 demo)
- Java反射原理
- 【每日一题】46. Permutations
- 免费下论文的10个方法
- 【原创】90%的人都不会做的一道笔试题
- 这10道 Spring 常见面试题,你能搞定吗?
- 网工小白升级打怪篇(二)telnet实现远程管理
- (32)条件判断
- (33)if、case语句
- (34)for循环
- (35)while循环与until循环
- 你知道Java 8 的方法引用吗
- Spring Boot 配置文件的加载优先级总结
- Day21:栈的压入、弹出序列