渗透测试——利用公网反弹shell到本地的两种方式,vmware虚拟机与主机的端口转发,本地ssh无法上线的问题解决

解决问题:

  1. 因长期使用本地模拟靶场,实战护网时并非模拟靶场,shell反弹需要利用公网测试。解决目标站无法反弹到本地的情况。
  2. 解决本地是windows,虚拟机是kail、linux,无法相互转换流量的情况。

环境搭建

  • 靶机 centOS7 (虚拟机), ip:192.168.203.156

  • 攻击机 kali(虚拟机) , ip: 192.168.199.128

  • 内网穿透工具 花生壳 网站:*https://console.hsk.oray.com/*

  • 宿主机 window 10

- 花生壳内网穿透

配置花生壳

注册花生壳,申请域名,按流程操作即可。

在这里插入图片描述选择加号,进入页面选择tcp端口转发。
在这里插入图片描述
成功以后右侧是全绿,而且会显示ip及端口
在这里插入图片描述
绿的前提是虚拟机的转发已经设置好了,没成功的看下面的虚拟机转发,设置成功在试试。


配置虚拟机转发

宿主机和虚拟机(网络模式为 NAT)也需要配置 端口转发,使用VMware的 转发工具即可(你也可以将虚拟机的 网络模式设置为 桥接模式,但是需要在kali上装 内网穿透客户端),VMware的端口转发配置如下:

使用第一种方法就可以

在这里插入图片描述
在这里插入图片描述
使用花生壳给定的端口对应至宿主机的1111端口并转发到虚拟机的1112端口,然后我们监听1112端口即可,测试是否可反弹shell。

测试结果:

监听kali1112端口
在这里插入图片描述
使用另一台电脑的虚拟机来连接kali。

在这里插入图片描述这边看见直接上线,分别是两台不同的主机的两台不同虚拟机的不同系统,试验成功。

在这里插入图片描述

frp方式

优势:长期使用,无需虚拟机转发,无需宿主机。 更加安全。需要有vps或公网ip。

二级标题

2024年了,应该用新版的,人也变新了。

下载地址:https://github.com/fatedier/frp/releases

vps操作步骤:这里选择的是debian,也就是类似kali。
把压缩包上传到vps。
在这里插入图片描述解压并配置frps(服务端)vim frps.toml

[common]
bind_port = 7000
dashboard_port = 7500
token = 12345678
dashboard_user = admin
dashboard_pwd = admin
#vhost_http_port = 10080
#vhost_https_port = 10443
如果没有必要,端口均可使用默认值,token、user和password项请自行设置。“bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
“dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
“token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
“dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。
“vhost_http_port”和“vhost_https_port”用于反向代理HTTP主机时使用,本文不涉及HTTP协议,因而照抄或者删除这两条均可。

运行成功截图如下
在这里插入图片描述如果出现错误提示,请检查上面的步骤。
还没结束。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

别忘了这个是vps,自带策略的。
需要自行开通端口转发,才能正常通过端口。
在这里插入图片描述在这里插入图片描述

此时访问 x.x.x.x:7500 并使用自己设置的用户名密码登录,即可看到仪表板界面。
在这里插入图片描述如果你想在后台常驻此服务,使用 nohup命令将其运行在后台。

nohup ./frps -c frps.ini &

输出如下内容即表示正常运行nohup: ignoring input and appending output to 'nohup.out' 此时可先使用Ctrl+C关闭nohup,frps依然会在后台运行,使用jobs命令查看后台运行的程序​jobs
在结果中我们可以看到frps正在后台正常运行。

​jobs
[1]+  Running                 nohup ./frps -c frps.ini &

此时访问 x.x.x.x:7500 依然可以打开仪表板界面。
这里设置了后台运行。如果更改了配置需要重新运行这个程序 需要先结束这个进程。

至此,服务端配置结束。

客户端配置

解压删除服务端文件

加粗样式

编辑配置文件

在这里插入图片描述

此配置文件的意思是将服务端的59955端口代理到本地虚拟机的22端口,也就是可以通过服务端的59955端口SSH连接到本地虚拟机。

运行成功如图

在这里插入图片描述
添加策略不能忘。添加59955端口到策略才能成功。
使用ssh连接本地kali虚拟机
在这里插入图片描述
本地连接出现错误,那么远程肯定也是不行的。

解决方式
# vim /etc/ssh/sshd_config修改:#PasswordAuthentication yes
为:PasswordAuthentication yes
修改:PermitRootLogin prohibit-password
为:PermitRootLogin yes
接下来需要重新启动ssh。# service sshd restart

如果上述方式没有用,重新安装ssh,并重启ssh

systemctl enable ssh
vim /etc/ssh/sshd.config
systemctl restart ssh

使用vps转发连接本地ssh。
成功转发并连接这里使用的是普通用户,因为不能连上超级用户,进去后su一下就好了。
在这里插入图片描述
既然ssh可以这样转发,那么同理反弹shell也是一样的道理。

反弹shell
  • 一台电脑的独立虚拟机centos192.168.203.156
  • 一台电脑的独立虚拟机kali192.168.199.128
  • 一个公网ip(已经配置好frp)
    设置frp转发。
    在ssh的基础上设置,不会冲突。
    在这里插入图片描述
    保存重启进程。
    在这里插入图片描述
    尝试返弹shell

方式一

nc监听本地端口
在这里插入图片描述
centos来连接kali
在这里插入图片描述
这里都是192,是因为名字一样,但是IP电脑都不是一样。
在这里插入图片描述

第二种方法

需要再开一个端口

首先配置策略
在这里插入图片描述修改配置文件frpc
在这里插入图片描述
重启frpc
尝试反弹shell
监听两个端口
在这里插入图片描述
双进程一个道理,再开个端口就行。
在这里插入图片描述

注意:

  1. 服务端配好不用管
  2. 本地端用完一定要kill -9 PID
  3. 如果进程占用就是没有杀死pid
  4. vps策略一定要设置
  5. 服务端是frps,本地端是frpc,查询进程时需要注意。

后面又改了一下,是这样的
[range:ssh]
# 指定TCP连接类型
type = tcp
# 客户端IP, 这里填本地IP就可以
local_ip = 127.0.0.1
# 当前设备开放的远程连接端口, 默认为22
local_port = 7777
# 表示服务端的代理端口号
remote_port = 59955
# 是否加密
use_encryption = true
# 是否压缩
use_compression = false
[range:8899]
# 指定TCP连接类型
type = tcp
# 客户端IP, 这里填本地IP就可以
local_ip = 127.0.0.1
# 当前设备开放的远程连接端口, 默认为22
local_port = 8888
# 表示服务端的代理端口号
remote_port = 59966
# 是否加密
use_encryption = true
# 是否压缩
use_compression = false

这样就试验成功了。

https://blog.csdn.net/jichencsdn/article/details/138253143
https://blog.csdn.net/weixin_43213815/article/details/121336968
https://www.freebuf.com/sectool/256330.html

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

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

相关文章

VScode 批量操作

VScode 批量操作 批量修改 按住 alt/option 键, 选择需要批量操作的位置 如果是多行,则按住 altshift 键 可以直接操作 但是有时候比如变量命名,可能需要递增操作的命名 需要下载插件 Increment Selection 按照1的方法多选光标之后&am…

html+css+js前端作业 王者荣耀官网5个页面带js

htmlcssjs前端作业 王者荣耀官网5个页面带js 下载地址 https://download.csdn.net/download/qq_42431718/89574989 目录1 目录2 目录3 项目视频 王者荣耀5个页面(带js) 页面1 页面2 页面3 页面4 页面5

php接口返回的json字符串,json_decode()失败,原来是多了红点

问题: 调用某个接口返回的json,json_decode()失败,返回数据为null, echo json_last_error();返回错误码 4 经过多次调试发现:多出来一个红点,预览是看不到的。 解决:要去除BOM头部 $resul…

vue 搜索框

效果 创建搜索组件: 在Vue项目中,首先需要创建一个搜索组件。这个组件通常包含一个输入框和一个搜索按钮。使用v-model指令将输入框与组件的数据属性(如searchKeyword)进行双向绑定,以便获取用户输入的关键词。处理搜索…

Linux网络:传输层协议TCP(二)三次挥手四次握手详解

目录 一、TCP的连接管理机制 1.1三次握手 1.2四次挥手 二、理解 TIME_WAIT 状态 2.1解决TIME_WAIT 状态引起的 bind 失败的方法 三、理解CLOSE_WAIT状态 一、TCP的连接管理机制 在正常情况下, TCP 要经过三次握手建立连接, 四次挥手断开连接 1.1三次握手 三次握手顾名思…

Docker从零开始:安装、部署到卸载,一文搞定全流程

Docker是一种开源容器化平台,它允许开发者将应用程序及其依赖打包成轻量级、可移植的容器。这些容器能确保软件在任何环境中稳定运行,无论是开发者的笔记本电脑还是生产服务器。Docker流行的原因在于其提供的隔离性、可移植性和可扩展性,它简…

2024年展望:人工智能领域将呈现怎样的发展趋势?

2024年,人工智能(AI)领域将继续保持强劲的发展势头,并呈现出多个重要的发展趋势。以下是对该领域未来发展趋势的详细展望: 一、技术创新与融合 多模态生成式AI的崛起: 多模态生成式AI系统能够处理文本、声…

C# 将字符串数组以树型结构化

例如字符串数组: string[] arr { "1","3-4-5-6-7", "2","3-4","3-4-5","3-4-5-6", "3", "6", "4", "6-1", "6-2", "5", "6-1-1&…

李艳波医生怎么挂号?

对于想要预约李艳波医生的患者来说,北京仁爱堂提供了两种便捷的预约方式:来院面诊和视频会诊。来院面诊是传统的就诊方式,患者可以直接前往仁爱堂,与李艳波医生面对面交流,详细了解自己的病情并接受专业的治疗建议。这…

解决Github Copilot无效,无法使用的问题

如果是在Copilot的终端报错 Invalid copilot token: missing token: 403 原因有三种 1,你的账号没有订阅正版的服务,解决办法是购买正版服务 2,你在购买服务的时候,Github上 billing information 地址信息和支付卡片的地址信息不…

关卡1-3:Git

关卡1-3:Git Git基础fork并拉取本次课程的源创建一个gitee自己的仓库 这个是internLM的3期训练营的通关笔记。 任务: 熟悉git熟悉使用git托管平台,常见有github、giteefork官方的训练营的教程项目,提交文件到自己的项目&#xf…

openGauss触发器详解

openGauss 是一款开源关系型数据库管理系统,广泛应用于企业级应用中。随着数据量的增长和业务逻辑的复杂化,数据库管理和操作的自动化需求越来越高。触发器(Triggers)作为数据库中重要的编程工具,能够极大地简化复杂操…

【python】OpenCV—Point Polygon Test

文章目录 1、完整代码2、涉及到的库cv2.pointPolygonTestcv2.minMaxLoc 1、完整代码 from __future__ import print_function from __future__ import division import cv2 as cv import numpy as np # Create an image r 100 src np.zeros((4*r, 4*r), dtypenp.uint8) # 创…

前端学习3——自学习梳理

1.学习一下盒子模型(盒子就是元素&#xff0c;标签) 盒子模型又分为4种&#xff1a;块级&#xff0c;内联级&#xff0c;内联块级&#xff0c;弹性盒子 (弹性盒子续在下一节) 2.元素的结构 1.盒子模型 <!DOCTYPE html> <html lang"en"> <head>&l…

【C++杂货铺】智能指针

目录 &#x1f308; 前言&#x1f308; &#x1f4c1; 内存泄漏 &#x1f4c2; 概念 &#x1f4c2; 分类 &#x1f4c2; 如何避免 &#x1f4c1; RAII &#x1f4c1; C11智能指针 &#x1f4c2; auto_ptr &#x1f4c2; unique_ptr &#x1f4c2; shared_ptr &#x1…

电子电器架构 --- 智能汽车的大脑(域控制器)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

QT--进程

一、进程QProcess QProcess 用于启动和控制外部进程&#xff0c;管理其输入输出流。 使用方法 start()&#xff1a;启动一个新进程。setStandardInputFile()&#xff1a;将文件作为标准输入。将进程的标准输入&#xff08;stdin&#xff09;重定向到指定的文件。换句话说&am…

AV1技术学习:Constrained Directional Enhancement Filter

CDEF允许编解码器沿某些(可能是倾斜的)方向应用非线性消阶滤波器。它以88为单位进行。如下图所示&#xff0c;通过旋转和反射所示的三个模板来定义八个预设方向。 Templates of preset directions and their associated directions. The templates correspond to directions of…

MATLAB: ode45 求解常微分方程

引入 ode45 是 MATLAB 中用于求解非刚性常微分方程&#xff08;ODE&#xff09;的数值方法。它基于 Runge-Kutta 方法&#xff0c;并具有自适应步长调整机制&#xff0c;能够在一定误差控制范围内高效地计算 ODE 的数值解。 下面我们通过这个包含详细注释的代码&#xff0c;一…

Windows 11 系统对磁盘进行分区保姆级教程

Windows 11磁盘分区 磁盘分区是将硬盘驱动器划分为多个逻辑部分的过程&#xff0c;每个逻辑部分都可以独立使用和管理。在Windows 11操作系统中进行磁盘分区主要有以下几个作用和意义&#xff1a; 组织和管理数据&#xff1a;分区可以帮助用户更好地组织他们的数据&#xff0c…