Web内网渗透知识大全

内网渗透

端口转发

需要三个主机,Windows7、Windows2016、kali
Windows7为内网主机
Windows2016为跳板机
kali为攻击机

使用到的工具
netsh、MSF

我们先在Windows7上开启一个80服务,而这个80服务只能由Windows2016访问,kali不能访问
我们使用netsh进行端口转发,这条命令是在Windows2016上执行的,目的就是在Windows2016上开启一个监听端口,将其流量发送至Windows7的80端口
一旦命令执行成功,我们就可以在kali上访问Windows7的80服务了(Windows2016 IP + 监听端口)

我们还可以使用MSF,前提是能够将木马上传至Windows2016上

首先我们制作一个木马,上传到Windows2016上,使其上线
上线之后我们会在kali中进入meterpreter,也就是上线成功的一个标志,然后输入shell,将Windoiws2016的终端返回到我们的kali上
接着就是和上面一样的操作,继续往下执行就可以了

当然我们也可以在meterpreter中直接输入portfwd add -l 8889 -r 192.168.209.129 -p 80,然后直接在kali上访问localhost:8889即可访问到Windows7的80服务

当然使用MSF的时候不仅可以进行反向连接,还可以进行正向连接
开启一个Windows2003主机,将其藏在内网当中去
我们先制作一个正向连接的木马程序,然后将其上传到Windows2016上去,执行木马程序,使其上线
然后去添加一个内网的路由,让我们的MSF进入到内网当中去
既然我们的MSF进入到了内网当中,我们可以让木马在后台进行执行,然后在MSF里面进行端口扫描,看看有啥端口开放,接着使用arp -a去看一下内网中还有啥主机,发现有一台Windows2003,我们可以使用MSF框架中的端口扫描对该主机进行扫描,将开放的端口都扫描出来,既然是Windows2003,说明可能会存在永恒之蓝漏洞,然后通过永恒之蓝漏洞进行连接,注意的是paylaod要用正向连接的payload

使用正向连接而不使用反向连接的原因:kali可以通过植入木马到Windows2016上,然后通过Windows2016去访问Windows2003,但是Windows2003却无法去访问kali,反向连接不成功,所以我们使用正向连接

内网代理

上传木马到代理服务器上,然后让木马在后台进行执行,我们使用MSF里面的代理功能来做一个代理
做完代理之后还得添加路由,添加内网的一个路由,同时也添加攻击机的路由,其次在kali的浏览器上去配置代理然后才能去访问Windows7上的80服务
Meterpreter 的路由功能主要关注的是目标内网的流量如何通过跳板机转发
使用socks添加路由的目的:将 Kali 的流量通过代理服务器转发到目标内网。
当然,我们也可以配置Linux的全局代理,然后去修改配置文件,在最后一行添加socks 127.0.0.1 1080,然后在终端上执行命令,通过代理去访问Windows7的80服务

隧道通信

基于Neo-reGeorg

http正向隧道工具
首先在Windows2016上开启80服务,然后去kali上确认看看能否访问,然后进入Neo-reGeorg工具,使用命令去生成木马文件,将生成的木马文件上传至Windows2016上去,然后在本机上进行访问tunnel.php,接下来在kali上进行连接,连接之后还是建立了一个代理隧道,然后我们去kali的浏览器上去配置一个代理,然后就可以正常访问了
上述木马属于二进制,我们还可以生成一个PHP型的木马文件,然后上传到Windows2016上,运行让其上线,上线之后我们为其添加路由,添加路由的目的是能够让流量从kali到达目标内网,然后再使用MSF中的代理功能,开启一个代理,然后访问就可以了

我们基于PHP建立了TCP的连接,然后帮助我们基于TCP协议来做socks5的代理,然后在流量监听的时候只能监听到TCP协议的流量,不能监听到HTTP的流量

基于SSH的隧道通信

SSH本地转发
开启WIndows2016上的OpenSSH server,然后使用我们本机进行连接,我们可以执行命令,如下:

ssh -CfNg -L 8879:192.168.209.129:80 administrator@192.168.3.41

先进行远程连接,然后将8879端口上的流量转发到目标主机的80端口,然后就可以使用kali去访问Windows7的80端口
其实很简单,就是让远程的SSH的服务帮助我们做一个端口转发

SSH远程转发
我们可以先在Windows2016上执行如下命令

ssh -CfNg -R 3333:192.168.209.129:3306 kali@192.168.3.38  并输入kali的SSH密码

远程连接到kali,然后将kali本机的3333端口流量转发到目标主机的3306端口,然后就能访问成功了

内网隧道

EarthWorm的使用

正向代理
在Windows2016这台主机上使用这个工具,命令如下:

ew_for_win_32.exe -s ssocksd -l 1080

然后在kali浏览器上配置,配置的IP为windows2016这台主机的IP和1080端口
然后访问localhost:1080就能够访问了

反向代理
公网服务器上开启EarthWorm工具服务端,开放1080和8086端口,1080是代理端口,8086是通信端口,然后在Windows2016跳板机上启动客户端,和公网的8086端口进行通信,在kali的浏览器配置一个代理,代理的IP为公网IP,端口为1080,然后就可以成功访问localhost:1080

端口映射

就是将内网一台主机的端口映射到公网服务器或者其他机器上的某个端口,通过访问公网服务器的这个端口就能事项对内网目标端口的访问

CS免杀与应用开发

在公网服务器上开启CS的服务端,kali上开启CS的客户端,进入到CS的页面中,然后新建一个监听器,监听器建好之后,生成一个payload,然后将这段paylaod复制到我们的kali里面,接下来我们应该创建一个python文件,然后将这段shellcode进行加密处理,也同时将我们的加载器代码进行加密,然后将我们加密过的shellcode和加载器代码与他们的解密代码放在一个python文件当中,然后使用exec去执行这段加载器代码,上线成功,接着我们使用psinstall将python文件打包成一个exe应用程序,上传到火绒进行检查,如果没检查出来,说明加密的好

那我们如何去包装这个木马
我们可以通过python来开发一个简单的应用,然后将我们的代码引入进去,通过运行开发的应用来间接的去运行这个木马,然后在CS上线,更好的优化方式就是多几个线程,不要让线程一直被占用,从而导致无法运行我们的那个木马

网络分离免杀

打开公网服务器上的80服务,在公网服务器上开启CS的服务端,kali上开启CS的客户端,接下来的操作就是将我们生成的shellcode并将其放到我们的公网服务器上,同时也将我们的加载器代码放到我们的公网服务器上,然后做分离免杀,然后我们新建一个python文件,里面加入我们调用公网服务器资源的代码,然后使用exec去执行,但是需要注意的是,我们输入的shellcode必须得是二进制的,然后去执行这个python文件就可以上线成功了
因为我们输入的shellcode是字符串型的,而非二进制的,所以我们有两种方法将这个字符串型修改为二进制文件
第一种方法,进行格式化
第二种方法:将我们的shellcode在前面手工添加一个b,代表二进制文件,然后将我们的这个二进制文件读入到以bin结尾的文件中,然后去读取的时候也就变成二进制文件了,接着将其放入到公网服务器上即可,然后运行,看看是否上线成功

接着我们使用pyinstaller将其打包成一个exe应用程序,看看是否免杀

模拟DLL劫持技术

DLL劫持技术:在一个DLL文件中植入一个木马,将其模拟成一个被别的应用程序所调用的函数或者接口
就比如说我们使用python开发一个exe,使用这个应用程序去调用DLL中的函数,进而实现木马免杀和上线

C语言加载调用shellcode的几种方式
堆加载
申请内存加载
函数指针加载

ICMP隧道

icmpsh工具

icmpsh工具要替代本身系统的ping命令的应答程序
由于ping命令就是基于ICMP协议,所以我们要在本身系统关闭这个响应
在kali将服务端启动,并且将主机IP和目标IP输入进去,然后在Windows2016上启动客户端,kali这边就已经获取到了Windows2016的命令行了

PowerShell ICMP客户端

PowerShell ICMP客户端,可以运行在任意有PowerShell的环境中
在kali启动这个工具,目标系统进入到PowerShell,然后导入Invoke-PowerShellIcmp.psl这个模块,然后使用这个模块进行连接,这时候不出问题我们的kali就会获取到Windows2016的反弹shell

PingTunnel

三台操作机器,centos、kali、Windows2016、Windows7
我们首先在centos上运行ptunnel服务端,然后使用kali去连接,指定代理端口和目标IP和端口,连接上之后,就可以去访问centos的80服务,接着我们去kali浏览器配置代理,IP为本机,端口为监听端口,然后就可以去访问

同时也可以代理非HTTP端口,比如说mysql的3306端口,我们只需要在上面的基础上做一个简单的操作即可,就是将80端口修改为3306端口,然后去访问就能够访问到目标系统的mysql信息

面对内网面试官最爱问的问题:当某台机器不出网的时候,你会怎么办
其实在我们实验的过程中,我们的Windows7就是不出网机器,它不能上外网,也不能访问外网,因为我们ping百度的ping不通的,所以这就叫作不出网机器

不出网能不能使用端口映射
当然不能,端口映射是与公网服务器打交道,不出网的话就无法与公网服务器打交道
对于这种问题,我们有三个解决问题
第一个是内网路由,通过设置内网的路由,能够让流量知道如何从攻击机传输到内网
第二个是内网代理,通过设置代理,使用代理去访问内网,往内网里传输数据
第三个是通过跳板机进行端口转发
例如我们通过ICMP该怎么办
使用pingtunnel来做端口转发,与跳板机建立连接

那如果跳板机也无法访问到我们的windows7该怎么办
只能去找能够访问到Windows7的跳板机

DNS隧道

DNS隧道就是将其他协议的内容封装到DNS协议中,然后DNS响应和数据包完成传输数据的技术
支持直连模式和中继模式
直连模式:用户端直接与指定的目标DNS服务器建立连接
中继模式:通过迭代查询的方式而实现的中继DNS隧道

iodine既支持中继模式,同时也支持直连模式

iodine的原理:
通过在公网服务器上运行iodine的服务端,运行之后会新建一张虚拟网卡,而如果目标机器上运行iodine的客户端,目标主机上也会建立一张新的虚拟网卡,至此DNS隧道建立成功,而两张网卡都是在同一网段,可以ping通

利用DNS隧道
我们将公网服务器和目标机器的80服务开启,然后通过虚拟网卡的IP就能访问到
同时相同的操作也可以去访问mysql

利用DNS隧道建立SOCKS5代理隧道
在公网服务器配置frps,配置完之后运行
在内网主机上配置frpc,配置完运行

然后在kali浏览器配置代理,为公网IP➕端口,当然也可以给命令行配置代理
然后就可以访问到内网了

在CS上使用DNS隧道
启动CS,然后新建一个监听器,为Beacon DNS,然后生成一个payload为exe类型的可执行文件,将其上传到Windows2016跳板机上,然后运行可执行文件,使其上线,然后就可以做其他的操作了

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

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

相关文章

ffmpeg av_buffer_unref的逻辑实现; av_freep 和 av_freep函数的区别

av_buffer_unref 是 FFmpeg 中用于管理引用计数和内存释放的核心函数,其内部实现机制如下: ‌一、核心流程‌ ‌引用计数递减‌ 函数首先对 AVBufferRef 的 buffer->refcount 进行原子递减操作(通过 atomic_fetch_add_explicit 等机制保证…

从 GPS 数据中捕捉城市休闲热点:空间异质性视角下的新框架

从 GPS 数据中捕捉城市休闲热点:空间异质性视角下的新框架 原文:Capturing urban recreational hotspots from GPS data: A new framework in the lens of spatial heterogeneity 1. 背景与意义 城市娱乐活动的重要性: 娱乐活动是城市生活…

rk3568main.cc解析

rk3568main.cc解析 前言解析前言 正点原子rk3568学习,rk官方RKNN_MODEL_ZOO文件中 rknn_model_zoo-main/examples/mobilenet/cpp/main.cc 从执行命令:./build-linux.sh -t rk3568 -a aarch64 -d mobilenet 到: cmake ../../examples/mobilenet/cpp \-DTARGET_SOC=rk356x\…

【实验数据处理matlab程序】程序1:绘制figure文件中曲线的RMS值

立意 在本课题所涉及的实验中,需要将2个拉线式位移传感器中的数据收集并处理,在此基础上求解相应的速度 主要功能 针对一个figure文件中仅包含一个plot,且该plot中包含指定数目的曲线,求这些曲线的RMS值;针对一个fi…

kotlin的kmp编程中遇到Unresolved reference ‘java‘问题

解决办法 打开 File → Project Structure → Project 确保 Project SDK 是 与你的 jvmToolchain 保持一致 如果没有,点击右上角 Add SDK 添加 JDK 路径 同步Sync 然后就正常了。 package org.example.projectimport androidx.compose.animation.AnimatedVi…

静电放电测试中垂直和水平耦合板的作用

在静电放电(ESD,Electrostatic Discharge)测试中,垂直耦合板(Vertical Coupling Plane, VCP)和水平耦合板(Horizontal Coupling Plane, HCP)是模拟设备在实际环境中因静电放电产生的…

Web开发-JavaEE应用JNDI注入RMI服务LDAP服务DNS服务高版本限制绕过

知识点: 1、安全开发-JavaEE-JNDI注入-LADP&RMI&DNS等 2、安全开发-JavaEE-JNDI注入-项目工具&手工原理等 演示案例-WEB开发-JavaEE-JNDI注入&LDAP&RMI服务&DNS服务&高版本限制绕过 JNDI全称为 Java Naming and DirectoryInterface&am…

基于Transformer与随机森林的多变量时间序列预测

哈喽,我不是小upper,今天和大家聊聊基于Transformer与随机森林的多变量时间序列预测。 不懂Transformer的小伙伴可以看我上篇文章:一文带你彻底搞懂!Transformer !!https://blog.csdn.net/qq_70350287/article/detail…

初识网络原理

文章目录 1.IP地址2.端口号3.网络中的五元组4.协议分层5.封装和分用6.客户端与服务器 1.IP地址 IP地址 (IP Address): 用于在网络中唯一标识一台设备(主机、路由器等)。IP地址分为IPv4和IPv6两种版本。IPv4是32位地址,通常表示为四个用点分隔…

健康养生之道

健康养生是一种积极的生活态度,是对自己和家人的关爱。从生活的细微之处做起,便能为健康打下坚实的基础。 在生活习惯方面,要注重细节。保持居住环境的整洁与通风,让生活空间舒适宜人。勤洗手、勤换洗衣物,养成良好的卫…

几种电气绝缘类型

1. 基本绝缘 1.1 绝缘等级 1.2 I类设备 2. 附加绝缘 3. 双重绝缘 4. 加强绝缘 5. 功能性绝缘 1. 基本绝缘 用于防止触及带电部件的初级保护,该防护是由绝缘材料完成的 基本绝缘的目的在于为防电击提供一个基本的保护,以避免触电的危险,不过此类绝缘只能保证正常状态下…

01.浏览器自动化webdriver源码分析之启动函数

日后,网络爬虫也好,数据采集也好,自动化必然是主流。因此,笔者未雨绸缪,在此研究各类自动化源码,希望能够赶上时代,做出一套实用的自动化框架。 这里先研究传统的webdriver中转来进行浏览器自动…

PLOG安装

Plog可以通过以下命令安装 cd ~ && git clone https://github.com/SergiusTheBest/plog.gitcd plog && mkdir buildcd build && cmake ..make && sudo make installcd ~ && sudo rm -rf ./plog若无法科学上网,可使用git cl…

Cyber SpaceGuidance网安学习指南见解

免责声明 如有异议请在评论区友好交流,或者私信 内容纯属个人见解,仅供学习参考 如若从事非法行业请勿食用 如有雷同纯属巧合 版权问题请直接联系本人进行删改 前言 提示:这里可以添加本文要记录的大概内容: 提示:以…

第十五届蓝桥杯 2024 C/C++组 下一次相遇

目录 题目: 题目描述: 题目链接: 思路: 自己的思路详解: 更好的思路详解: 代码: 自己的思路代码详解: 更好的思路代码详解: 题目: 题目描述&#xf…

Vue3中provide和inject数据修改规则

在 Vue3 中,通过 inject 接收到的数据是否可以直接修改,取决于 provide 提供的值的类型和响应式处理方式: 1. 若提供的是普通值(非响应式数据) javascript 复制 // 父组件 provide(staticValue, 123); 子组件修改行…

今日CSS笔记

原手写笔记 ------------------------------------------------------------------------------------------------------- css选择器的种类有很多种。这里只介绍几种常用的选择器。 1. 标签选择器标签选择器是最基本的选择器,它可以选择所有的标签。例如&#xff…

健康生活新指南

在 “朋克养生” 与 “躺平焦虑” 并存的时代,真正的健康生活无需刻意 “内卷”。这几个简单又实用的养生妙招,能让你在忙碌日常中悄悄升级健康状态,轻松拥抱活力人生。​ 一、饮食:吃对食物,给身体 “加 Buff”​ 别…

轻量级景好鼠标录制器

景好鼠标录制器(详情请戳 官网)是一款免费无广的键鼠动作录制/循环回放工具,轻松自动化应对一些重复繁琐的操作任务,如来回切换窗口、文档同一相对位置的复制粘贴等场景,兼容Win XP - 11 。毕竟此款本身主打简约类型&a…

结构体与共用体-------C语言经典题目(3)

结构体 1.如何定义和使用结构体指针? 1.结构体指针的定义 首先需要定义结构体类型,例如表示学生信息的结构体: struct Student {char name[50];int age;float score; };接着,使用struct 关键字和指针符号* 声明结构体指针&#x…