#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<Winnetwk.h>
#pragma comment(lib,"Mpr.lib")
int gongxiang(NETRESOURCE netres)
{
NETRESOURCE *pNetres;
HANDLE hFile;
DWORD i,a,b,c=100;
i=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,0,&netres,&hFile);
if(i != NO_ERROR)
{
printf("WNetOpenEnum Error is:%d\n",i);
return 0;
}
b=sizeof(NETRESOURCE)*4*100000;
pNetres=(NETRESOURCE *)GlobalAlloc(GPTR, b );
i=WNetEnumResource(hFile,&a,(void *)pNetres,(DWORD *)&b);
if(i != NO_ERROR)
{
printf("WNetEnumResource Error is:%d\n",i);
return 0;
}
for(i=0;i<a;i++)
{
printf("Name is:%s\n",pNetres[i].lpRemoteName);
if( (pNetres[i].dwUsage & RESOURCEUSAGE_CONTAINER) || (pNetres[i].dwType & RESOURCETYPE_DISK) )
gongxiang(pNetres[i]);
}
return 0;
}
int main(int argv,char *argc[])
{
NETRESOURCE netres;
netres.dwScope=RESOURCE_CONNECTED | RESOURCE_GLOBALNET | RESOURCE_REMEMBERED;
netres.dwType=RESOURCETYPE_ANY | RESOURCETYPE_DISK | RESOURCETYPE_PRINT;
netres.dwDisplayType=RESOURCEDISPLAYTYPE_DOMAIN | RESOURCEDISPLAYTYPE_SERVER | RESOURCEDISPLAYTYPE_SHARE | RESOURCEDISPLAYTYPE_GENERIC;
netres.dwUsage=RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER;
netres.lpLocalName=0;
netres.lpRemoteName=argc[1];
netres.lpComment=0;
netres.lpProvider=0;
gongxiang(netres);
return 0;
}
编译出来的文件名为nets.exe,输入nets \\192.168.1.88,这个IP已经共享了C、D、E、F盘,成功是成功了,但是只列出了如下:
Name is:\\192.168.1.88\c
WNetOpenEnum Error is:87
Name is:\\192.168.1.88\d
WNetOpenEnum Error is:87
Name is:\\192.168.1.88\e
WNetOpenEnum Error is:87
Name is:\\192.168.1.88\f
WNetOpenEnum Error is:87
又试了下在cmd下输入了:
nets \\192.168.1.88\c
还是WNetOpenEnum Error is:87,87是参数不正确,但是WNetOpenEnum的参数怎么就不正确了,哪为大哥帮帮忙,小弟十分感谢,调试了好长时间都无法成功,郁闷死了,哎
[课程]Linux pwn 探索篇!