搜索
    Hi~登录注册
    查看: 158|回复: 0
    收起左侧

    【改良】一句话实现探测内网存活主机

    [复制链接]

    15

    主题

    1

    精华

    12 小时

    在线时间

    新手上路

    Rank: 1

    积分
    22
    发表于 2020-5-4 10:24:36 | 显示全部楼层 |阅读模式
    本帖最后由 你还会回来的 于 2020-5-4 10:25 AM 编辑

    单纯是图个方便,局限性很大
    先上命令
    单线程慢速版
    [AppleScript] 纯文本查看 复制代码
    for /l %a in (0,1,255) do for /l %b in (1,1,255) do ping 172.29.%a.%b -l 1 -n 1 -i 1 >172.29.%a.%b.txt

    多线程防宕机版【更新】
    [AppleScript] 纯文本查看 复制代码
    for /l %a in (0,1,2) do cmd /c "choice /t 7 /d y /n >nul" & for /l %b in (1,1,255) do  start cmd /c  "ping 172.29.%a.%b -l 1 -n 1 -i 1 >172.29.%a.%b.txt"

    理论上最高只有255个ping程序同时运行,choice /t 7 /d y /n >nul 用来延时,时间7s。放到程序主体运行前延时是因为由于转义等原因导致放后面的编写较困难,7s时间可调,ping程序运行一般只有5s左右就结束了。

    不限线程易宕机版
    [AppleScript] 纯文本查看 复制代码
    for /l %a in (0,1,255) do for /l %b in (1,1,255) do  start cmd /c  "ping 172.29.%a.%b -l 1 -n 1 -i 1 >172.29.%a.%b.txt"

    代码比较简单,最初是核大大发出来的for循环ping探测C段,帖子暂时不去找,大概是for /l %n in (1,1,255) do ping 192.168.0.%n
    后来有人改了一下是这样的……for /l %n in (1,1,255) do ping 192.168.%n.1  
    我只是觉得,.1这个地址不一定就存活……所以套了两层循环上去……


    为方便一些对dos下命令接触较少的同学记忆命令,解释一下
    for 下
    一共两层循环,
    for /l %a in (0,1,255) do     :: /l 模式表示以数字递增,该数字赋值给变量%a,(0,1,2)表示初始值为0,步长为1,终止值为2 ,do后面跟要运行的命令
            for /l %b in (1,1,255) do    ::同理
                    start cmd /c        ::以start运行是为了启用多线程,cmd 的/c 参数表示启用cmd 运行一行命令后终止,下面的语句就是要运行的命令,带引号是为了防止某些参数丢失,比如后面的 >xxx.txt

      
      "ping 172.29.%a.%b -l 1 -n 1 -i 1 >172.29.%a.%b.txt" 引号内的就是运行的命令 -l 1 -n 1 -i 1 限制了ping运行时间,一般来说内网通信速度都很快,所以值都设置了最小,如果担心有误差,可以稍微调大一点,其中
        -n count       要发送的回显请求数。
        -l size        发送缓冲区大小。
        -i TTL         生存时间。
    其他的参数可以输入 ping /? 查看



    比较适合拿到主机远程权限后的内网情况简单探测,webshell上使用情况不了解,如果希望单线程的话可以把第三句即 start cmd /c  删掉。

    关于操作:
    cmd,cd到一个可以存放文件的临时目录,根据内网情况,把172.29都换成192.168或者10.1之类的,运行以上所需命令(建议资源管理器不要打开此文件夹,否则可能导致运行缓慢)
    完成后会在该文件夹下生成一堆xxx.xxx.xxx.xxx.txt文件
    cmd运行
    cmd /c "find /C /N "往返行程的估计时间" D:\OkMyWork\temp\*.txt"|find ": 1" >233.txt
    其中D:\OkMyWork\temp\是该临时文件夹地址,完成后你可以在cmd下copy 233.txt到别的地方去(或者在上面输入绝对路径)
    然后用记事本打开,批量替换一下即可得到存活ip地址列表

    关于注意事项:
    上面操作中有个"往返行程的估计时间",这是windows10下ping程序正确的返回,其他windows如果不一样请自行提取关键词,xp肯定不一样:)
    ping检查存活只是一个临时方案,不能依赖。






    上一篇:npm bin属性目录限制不严导致任意文件软连接
    下一篇:记一次xx大学的蠕虫病毒事件
    回复

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 获取账号

    快速回复 返回顶部 返回列表