2024年1月24日发(作者:)
TCHAR username[100]=_T("");
TCHAR password[100]=_T("");
TCHAR ipc[100]=_T("");
system("");
start();
if(argc!=2)
{
usage();
return -1;
}
swprintf(ipc,_T("%s//ipc$"),argv[1]);
lName=NULL;
ider=NULL;
=RESOURCETYPE_ANY;
teName=ipc;
ret=WNetAddConnection2(&nr,username,password,0);
if(ret!=ERROR_SUCCESS)
{
_tprintf(_T("/nIPC$ Connect Failed./n"));
return -1;
}
datetime(argv[1]);
fingerprint(argv[1]);
netbios(argv[1]);
users(argv[1]);
localgroup(argv[1]);
globalgroup(argv[1]);
transport(argv[1]);
session(argv[1]);
ret=WNetCancelConnection2(ipc,0,TRUE);
if(ret!=ERROR_SUCCESS)
{
_tprintf(_T("IPC$ Disconnect Failed./n"));
return -1;
}
return 0;
}
void start()
{
_tprintf(_T("=====[ T-SMB Scan, by TOo2y ]=====/n"));
_tprintf(_T("=====[ E-mail: ]=====/n"));
_tprintf(_T("=====[ HomePage: ]=====/n"));
_tprintf(_T("=====[ Date: 12-12-2002 ]=====/n"));
}
void usage()
{
_tprintf(_T("/nUsage:/t T-SMB Remoteip"));
_tprintf(_T("/nRequest: Remote host must be opening port 445/tcp of Microsoft-DS./n"));
}
int datetime(PTSTR server)
{
PTIME_OF_DAY_INFO pBuf=NULL;
NET_API_STATUS nStatus;
DWORD lerror;
_tprintf(_T("/n*** Date and Time ***/n"));
nStatus=NetRemoteTOD(server,(PBYTE*)&pBuf);
if(nStatus==NERR_Success)
{
if(pBuf!=NULL)
{
_tprintf(_T("/nCurrent date:/t%.2d-%.2d-%d"),pBuf->tod_month,pBuf->tod_day,pBuf->tod_year);
_tprintf(_T("/nCurrent time:/t%.2d:%.2d:%.2d.%.2d (GMT)"),pBuf->tod_hours,pBuf->tod_mins,pBuf->tod_secs,pBuf->tod_hunds);
pBuf->tod_hours=(pBuf->tod_hours+8)%24;
_tprintf(_T("/nCurrent time:/t%.2d:%.2d:%.2d.%.2d (GMT+08:00)/n"),pBuf->tod_hours,pBuf->tod_mins,pBuf->tod_secs,pBuf->tod_hunds);
}
}
else
{
lerror=GetLastError();
if(lerror==997)
{
_tprintf(_T("/nDateTime:/tOverlapped I/O operation is in progress. /n"));
}
else
{
_tprintf(_T("/nDatetime Error:/t%d/n"),lerror);
}
}
if(pBuf!=NULL)
{
NetApiBufferFree(pBuf);
}
return 0;
}
int fingerprint(PTSTR server)
{
DWORD dwlength;
DWORD dwLevel;
NET_API_STATUS nStatus;
PSERVER_INFO_101 pBuf;
DWORD lerror;
dwLevel=101;
pBuf=NULL;
dwlength=_tcslen(server);
_tprintf(_T("/n**** Fingerprint ****/n"));
nStatus=NetServerGetInfo(server,dwLevel,(PBYTE *)&pBuf);
if(nStatus==NERR_Success)
{
_tprintf(_T("/nComputername:/t%s"),pBuf->sv101_name);
_tprintf(_T("/nComment:/t%s"),pBuf->sv101_comment);
_tprintf(_T("/nPlatform:/t%d"),pBuf->sv101_platform_id);
_tprintf(_T("/nVersion:/t%d.%d"),pBuf->sv101_version_major,pBuf->sv101_version_minor);
_tprintf(_T("/nType:"));
if(pBuf->sv101_type & SV_TYPE_NOVELL)
{
_tprintf(_T("/t/tNovell server./n"));
}
if(pBuf->sv101_type & SV_TYPE_XENIX_SERVER)
{
_tprintf(_T("/t/tXenix server./n"));
}
if(pBuf->sv101_type & SV_TYPE_DOMAIN_ENUM)
{
_tprintf(_T("/t/tPrimary domain ./n"));
}
if(pBuf->sv101_type & SV_TYPE_TERMINALSERVER)
{
_tprintf(_T("/t/tTerminal Server./n"));
}
if(pBuf->sv101_type & SV_TYPE_WINDOWS)
{
_tprintf(_T("/t/tWindows 95 or later./n"));
}
if(pBuf->sv101_type & SV_TYPE_SERVER)
{
_tprintf(_T("/t/tA LAN Manager server./n"));
}
if(pBuf->sv101_type & SV_TYPE_WORKSTATION)
{
_tprintf(_T("/t/tA LAN Manager workstation./n"));
}
if(pBuf->sv101_type & SV_TYPE_PRINTQ_SERVER)
{
_tprintf(_T("/t/tServer sharing print queue./n"));
}
if(pBuf->sv101_type & SV_TYPE_DOMAIN_CTRL)
{
_tprintf(_T("/t/tPrimary domain controller./n"));
}
if(pBuf->sv101_type & SV_TYPE_DOMAIN_BAKCTRL)
{
_tprintf(_T("/t/tBackup domain controller./n"));
}
if(pBuf->sv101_type & SV_TYPE_AFP)
{
_tprintf(_T("/t/tApple File Protocol server./n"));
}
if(pBuf->sv101_type & SV_TYPE_DOMAIN_MEMBER)
{
_tprintf(_T("/t/tLAN Manager 2.x domain member./n"));
}
if(pBuf->sv101_type & SV_TYPE_LOCAL_LIST_ONLY)
{
_tprintf(_T("/t/tServers maintained by the browser./n"));
}
if(pBuf->sv101_type & SV_TYPE_DIALIN_SERVER)
{
_tprintf(_T("/t/tServer running dial-in service./n"));
}
if(pBuf->sv101_type & SV_TYPE_TIME_SOURCE)
{
_tprintf(_T("/t/tServer running the Timesource service./n"));
}
if(pBuf->sv101_type & SV_TYPE_SERVER_MFPN)
{
_tprintf(_T("/t/tMicrosoft File and Print for NetWare./n"));
}
if(pBuf->sv101_type & SV_TYPE_NT)
{
_tprintf(_T("/t/tWindows NT/2000/XP workstation or server./n"));
}
if(pBuf->sv101_type & SV_TYPE_WFW)
{
_tprintf(_T("/t/tServer running Windows for Workgroups./n"));
}
if(pBuf->sv101_type & SV_TYPE_POTENTIAL_BROWSER)
{
_tprintf(_T("/t/tServer that can run the browser service./n"));
}
if(pBuf->sv101_type & SV_TYPE_BACKUP_BROWSER)
{
_tprintf(_T("/t/tServer running a browser service as backup./n"));
}
if(pBuf->sv101_type & SV_TYPE_MASTER_BROWSER)
{
_tprintf(_T("/t/tServer running the master browser service./n"));
}
if(pBuf->sv101_type & SV_TYPE_DOMAIN_MASTER)
{
_tprintf(_T("/t/tServer running the domain master browser./n"));
}
if(pBuf->sv101_type & SV_TYPE_CLUSTER_NT)
{
_tprintf(_T("/t/tServer clusters available in the domain./n"));
}
if(pBuf->sv101_type & SV_TYPE_SQLSERVER)
{
_tprintf(_T("/t/tAny server running with Microsoft SQL Server./n"));
}
if(pBuf->sv101_type & SV_TYPE_SERVER_NT)
{
_tprintf(_T("/t/tWindows NT/2000 server that is not a domain controller./n"));
}
}
else
{
lerror=GetLastError();
if(lerror==997)
{
_tprintf(_T("/nFingerprint:/tOverlapped I/O operation is in progress./n"));
}
else
{
_tprintf(_T("/nFingerprint Error:/t%d/n"),lerror);
}
}
if(pBuf!=NULL)
{
NetApiBufferFree(pBuf);
}
return 0;
}
int netbios(PTSTR server)
{
DWORD er,tr,resume;
DWORD i,dwLength,dwLevel;
PSHARE_INFO_1 pBuf,pBuffer;
NET_API_STATUS nStatus;
DWORD lerror;
er=0;
tr=0;
resume=1;
dwLevel=1;
dwLength=_tcslen(server);
_tprintf(_T("/n****** Netbios ******/n"));
do
{
nStatus=NetShareEnum(server,dwLevel,(PBYTE *)&pBuf,MAX_PREFERRED_LENGTH,&er,&tr,&resume);
if((nStatus==ERROR_SUCCESS) || (nStatus==ERROR_MORE_DATA))
{
pBuffer=pBuf;
for(i=1;i<=er;i++)
{
_tprintf(_T("/nName:/t/t%s"),pBuffer->shi1_netname);
_tprintf(_T("/nRemark:/t/t%s"),pBuffer->shi1_remark);
_tprintf(_T("/nType:/t/t"));
if(pBuffer->shi1_type==STYPE_DISKTREE)
{
_tprintf(_T("Disk drive./n"));
}
else if(pBuffer->shi1_type==STYPE_PRINTQ)
{
_tprintf(_T("Print queue./n"));
}
else if(pBuffer->shi1_type==STYPE_DEVICE)
{
_tprintf(_T("Communication device./n"));
}
else if(pBuffer->shi1_type==STYPE_IPC)
{
_tprintf(_T("Interprocess communication (IPC)./n"));
}
else if(pBuffer->shi1_type==STYPE_SPECIAL)
{
_tprintf(_T("Special share reserved for interprocess communication (IPC$) or remote administration of the server (ADMIN$)./n"));
}
else
{
_tprintf(_T("/n"));
}
pBuffer++;
}
}
else
{
lerror=GetLastError();
if(lerror==997)
{
_tprintf(_T("/nNetbios:/tOverlapped I/O operation is in progress./n"));
}
else
{
_tprintf(_T("/nNetbios Error:/t%d/n"),lerror);
}
}
if(pBuf!=NULL)
{
NetApiBufferFree(pBuf);
}
}
while(nStatus==ERROR_MORE_DATA);
return 0;
}
int users(PTSTR server)
{
PNET_DISPLAY_USER pBuf,pBuffer;
DWORD nStatus;
DWORD dwRec;
DWORD i=0;
DWORD lerror;
DWORD dwLevel;
dwLevel=1;
_tprintf(_T("/n******* Users *******/n"));
do
{
nStatus=NetQueryDisplayInformation(server,dwLevel,i,100,0xFFFFFFFF,&dwRec,(PVOID *)&pBuf);
if((nStatus==ERROR_SUCCESS) || (nStatus==ERROR_MORE_DATA))
{
pBuffer=pBuf;
for(;dwRec>0;dwRec--)
{
_tprintf(_T("/nName:/t/t%s"),pBuffer->usri1_name);
_tprintf(_T("/nFull Name:/t%s"),pBuffer->usri1_full_name);
_tprintf(_T("/nUser ID:/t%u"),pBuffer->usri1_user_id);
_tprintf(_T("/nComment: /t%s"),pBuffer->usri1_comment);
_tprintf(_T("/nFlag:"));
if(pBuffer->usri1_flags & UF_ACCOUNTDISABLE)
{
_tprintf(_T("/t/tThe users account is disabled./n"));
}
if(pBuffer->usri1_flags & UF_TRUSTED_FOR_DELEGATION)
{
_tprintf(_T("/t/tThe account is enabled for delegation. /n"));
}
do
{
nStatus=NetLocalGroupEnum(server,dwLevel,(PBYTE *)&pBuf,MAX_PREFERRED_LENGTH,&er,&tr,&resume);
if((nStatus==NERR_Success) || (nStatus==ERROR_MORE_DATA))
{
pBuffer=pBuf;
for(i=1;i<=er;i++)
{
_tprintf(_T("/nName:/t/t%s"),pBuffer->lgrpi1_name);
_tprintf(_T("/nComment:/t%s"),pBuffer->lgrpi1_comment);
_tprintf(_T("/n"));
pBuffer++;
}
}
else
{
lerror=GetLastError();
if(lerror==997)
{
_tprintf(_T("/nLocal Group:/tOverlapped I/O operation is in progress./n"));
}
else
{
_tprintf(_T("/nLocal Group Error:/t%d/n"),lerror);
}
}
if(pBuf!=NULL)
{
NetApiBufferFree(pBuf);
}
}while(nStatus==ERROR_MORE_DATA);
return 0;
}
int globalgroup(PTSTR server)
{
PNET_DISPLAY_GROUP pGBuf,pGBuffer;
PGROUP_USERS_INFO_0 pUBuf,pUBuffer;
DWORD nGStatus,nUStatus;
DWORD i;
DWORD dwLevel,dwRec;
DWORD k;
DWORD er,tr,resume;
DWORD lerror;
i=0;
dwLevel=3;
er=0;
tr=0;
resume=0;
_tprintf(_T("/n**** Global group ****/n"));
do
{
nGStatus=NetQueryDisplayInformation(server,dwLevel,i,100,0xFFFFFFFF,&dwRec,(PVOID*)&pGBuf);
if((nGStatus==ERROR_SUCCESS) || (nGStatus==ERROR_MORE_DATA))
{
pGBuffer=pGBuf;
for(;dwRec>0;dwRec--)
{
_tprintf(_T("/nName:/t/t%s"),pGBuffer->grpi3_name);
_tprintf(_T("/nComment:/t%s"),pGBuffer->grpi3_comment);
_tprintf(_T("/nGroup ID:/t%u"),pGBuffer->grpi3_group_id);
_tprintf(_T("/nAttributs:/t%u"),pGBuffer->grpi3_attributes);
_tprintf(_T("/nMembers:/t"));
nUStatus=NetGroupGetUsers(server,pGBuffer->grpi3_name,0,(PBYTE *)&pUBuf,MAX_PREFERRED_LENGTH,&er,&tr,&resume);
if(nUStatus==NERR_Success)
{
pUBuffer=pUBuf;
for(k=1;k<=er;k++)
{
_tprintf(_T("%s "),pUBuffer->grui0_name);
pUBuffer++;
}
if(pUBuf!=NULL)
{
NetApiBufferFree(pUBuf);
}
}
_tprintf(_T("/n"));
i=pGBuffer->grpi3_next_index;
pGBuffer++;
}
}
else
{
lerror=GetLastError();
if(lerror==997)
{
_tprintf(_T("/nGlobal Group:/tOverlapped I/O operation is in progress./n"));
}
else
{
_tprintf(_T("/nGlobal Group Error:/t%d/n"),lerror);
}
}
if(pGBuf!=NULL)
{
NetApiBufferFree(pGBuf);
}
}while(nGStatus==ERROR_MORE_DATA);
return 0;
}
int transport(PTSTR server)
{
NET_API_STATUS nStatus;
PSERVER_TRANSPORT_INFO_0 pBuf,pBuffer;
DWORD dwLevel;
DWORD i;
DWORD er,tr,resume;
DWORD dwTotalCount;
DWORD dwLength;
DWORD lerror;
er=0;
tr=0;
resume=0;
dwLevel=0;
dwTotalCount=0;
_tprintf(_T("/n***** Transport *****/n"));
dwLength=_tcslen(server);
do
{
nStatus=NetServerTransportEnum(server,dwLevel,(PBYTE *)&pBuf,MAX_PREFERRED_LENGTH,&er,&tr,&resume);
if((nStatus==NERR_Success) || (nStatus==ERROR_MORE_DATA))
{
pBuffer=pBuf;
for(i=0;i { _tprintf(_T("/nTransport:/t%s"),pBuffer->svti0_transportname); _tprintf(_T("/nNetworkAddr:/t%s"),pBuffer->svti0_networkaddress); _tprintf(_T("/nActiveClient:/t%d User(s)/n"),pBuffer->svti0_numberofvcs); pBuffer++; dwTotalCount++; } } else { lerror=GetLastError(); if(lerror==997) { _tprintf(_T("/nTransport:/tOverlapped I/O operation is in progress./n")); } else { _tprintf(_T("/nTransport Error:/t%d/n"),lerror); } } if(pBuf!=NULL) { NetApiBufferFree(pBuf); } }while(nStatus==ERROR_MORE_DATA); _tprintf(_T("/nTotal of %d entrie(s) enumerated./n"),dwTotalCount); return 0; } int session(PTSTR server) { PSESSION_INFO_10 pBuf,pBuffer; NET_API_STATUS nStatus; DWORD i,dwLevel; DWORD er,tr,resume; DWORD dwTotalCount; DWORD dwLength; PTSTR pszClient; PTSTR pszUser; DWORD lerror; _tprintf(_T("/n****** Session ******/n")); dwLevel=10; dwTotalCount=0; pszClient=NULL; pszUser=NULL; er=0; tr=0; resume=0; dwLength=_tcslen(server); do { nStatus=NetSessionEnum(server,pszClient,pszUser,dwLevel,(PBYTE *)&pBuf,MAX_PREFERRED_LENGTH,&er,&tr,&resume); if((nStatus==NERR_Success) || (nStatus==ERROR_MORE_DATA)) { pBuffer=pBuf; for(i=0;i { if(pBuffer==NULL) { _tprintf(_T("An access violation has occurred./n")); break; } _tprintf(_T("/nClient:/t/t%s"),pBuffer->sesi10_cname); _tprintf(_T("/nUser:/t/t%s"),pBuffer->sesi10_username); _tprintf(_T("/nSeconds Active:/t%d"),pBuffer->sesi10_time); _tprintf(_T("/nSeconds Idle:/t%d/n"),pBuffer->sesi10_idle_time); pBuffer++; dwTotalCount++; } } else { case 4: strcpy(week,"四"); break; case 5: strcpy(week,"五"); break; case 6: strcpy(week,"六"); break; } while(!kbhit()) { time(&aclock); newtime=localtime(&aclock); sprintf(sj,"%d.%2d.%2d 星期%s %d:%2d:%2d",YEAR,newtime->tm_mon+1,newtime- >tm_mday,week,newtime->tm_hour,newtime->tm_min,newtime->tm_sec); currsec=newtime->tm_sec; if(startsec!=currsec) { dqx=wherex(); dqy=wherey(); write_video(x,y,sj,0x0a); goto_ xy(dqx,dqy); return; } } } main () { union inkey { char ch[2]; int I; }c; for(;;) { for(;;) { if (kbhit()) { c.I=get_key(); break; } disptime(0,54); if ([0]==27) exit(0); } } }


发布评论