system32文件夹下有一个net.exe和net1.exe,一般做渗透的时候,很多情况下管理员只知道删除net.exe而遗漏net1.exe,导致我们能继续do evil.....
一直没弄明白它们到底有什么区别,又有什么联系。而且貌似大家一直认为它们的功能是相同的,但一直没找到确切的答案。
把net1.exe删了以后net.exe就不能用了,觉得可能有情况,就在本机测试了下,发现果真如此,运行net.exe会提示找不到指定文件,说的当然就是net1.exe。
而把net1.exe恢复回去net命令也恢复正常。
测试发现如果net1.exe必须放在system32目录,就算和net.exe放在同一目录net.exe也会因为找不到net1.exe而报错。(一般情况下程序都是从当前目录开始搜索的,这个有点怪)。
那看来除了大小不一样(谁都看得出来= =#),它们之间貌似还有个依赖关系(net.exe依赖net1.exe)。
那net.exe只是读取net1.exe里面的某些内容呢还是直接需要执行net1.exe呢,我猜测的是可能要运行net1.exe,就想在执行net命令的时候看进程里面会不会出现net1.exe的影子,结果由于net执行太快,一直不成功,干脆用Filemon监测了下,发现果然如此,net.exe运行的时候会去调用net1.exe,然后再由net1.exe进程来执行命令。可以说net1.exe是在背后做事的,net.exe是位于前台的总管,负责调遣。
net1.exe没有命令行帮助,我估计微软可能设计初衷是只把net.exe提供给用户,到微软官方查了半天,也没发现啥有用的说法.......
windows下net是个非常复杂的命令,后面接不同的参数能执行的功能非常多&杂,比如net help结果如下:
NET ACCOUNTS NET HELP NET SHARE
NET COMPUTER NET HELPMSG NET START
NET CONFIG NET LOCALGROUP NET STATISTICS
NET CONFIG SERVER NET NAME NET STOP
NET CONFIG WORKSTATION NET PAUSE NET TIME
NET CONTINUE NET PRINT NET USE
NET FILE NET SEND NET USER
NET GROUP NET SESSION NET VIEW
盘口分析http://pankou1.com
而这每一个子参数背后基本又带其它的子参数。这么多参数都是调用net1.exe执行吗?
为了把问题搞清楚,我又测试了一轮,发现并不是所有的net命令都会调用net1.exe,但正如我前面所猜想的,net.exe是在前台的总管,负责调遣。net1.exe是负责在背后干活的,在net.exe需要它的时候就站出来执行某些命令,但net1.exe只负责其中的很小一部分而已,其他的命令net.exe会调用不同的dll文件去执行。
所以,在这里有个结论可以肯定的是:net.exe和net1.exe功能是不同的。
来net1.exe本应该是一个dll让net.exe调用,但不知道什么原因微软把它做成了exe,具体原因我们就不深究了,微软肯定有它的道理。