远程检测客户机上的共享设置情况
来源:互联网 发布:机器视觉主流算法 编辑:程序博客网 时间:2024/05/29 03:41
本章接着讨论自我检测的问题,其实不是WannaCrypt 会利用共享漏洞,还有很隐患和早期的黑客攻击都会利用 $ICP 连接,而且Windows 在默认情况会把你所有的本地磁盘都创建隐藏的共享,以$ 为尾符的的隐藏共享,在内网你的弱密码情况下,轻易就能连上你的磁盘,尽管你没有专门设置过共享;
在没有封堵445 端口之外,也可以扫描一下自己的机器上的共享情况,微软Windows API 有提供一整套函数对共享进行操作,在知晓或已破解远程机器的用户名密码前提下,通过API 你可以直接在对方不知情下为之创建共享,这个不在今天的讨论范围内。
直接看代码,可以从MSDN 上抄段示例代码过来改装一下就能放在自己的程序中使用:
/////////////////////////////////////////////////////////////////////////////////////////
调用方法:
我封装过的函数参数是个CStringList 指针,可以得到一个集合,如果需要的话可能转成自己想使用类型,这里是为了方便在小窗口打印出来,直接显示;
后期就可以通过网络通讯把读到共享列表发给管理端,管理端就知道下面的客户机谁开了共享,共享了些什么...
在没有封堵445 端口之外,也可以扫描一下自己的机器上的共享情况,微软Windows API 有提供一整套函数对共享进行操作,在知晓或已破解远程机器的用户名密码前提下,通过API 你可以直接在对方不知情下为之创建共享,这个不在今天的讨论范围内。
直接看代码,可以从MSDN 上抄段示例代码过来改装一下就能放在自己的程序中使用:
void testShare(CStringList* shareList){PSHARE_INFO_502 BufPtr, p;NET_API_STATUS res;LPTSTR lpszServer = NULL;DWORD er = 0, tr = 0, resume = 0, i;do {res = NetShareEnum(lpszServer, 502, (LPBYTE *)&BufPtr, MAX_PREFERRED_LENGTH, &er, &tr, &resume);if (res == ERROR_SUCCESS || res == ERROR_MORE_DATA){p = BufPtr;for (i = 1; i <= er; i++){//printf("%-20S%-30S%-8u", p->shi502_netname, p->shi502_path, p->shi502_current_uses);CString shi502_netname = p->shi502_netname;CString shi502_path = p->shi502_path;DWORD shi502_current_uses = p->shi502_current_uses;bool ValidSecurity;if (IsValidSecurityDescriptor(p->shi502_security_descriptor)){//printf("Yes\n");ValidSecurity = true;}else{//printf("No\n");ValidSecurity = false;}CString outS;outS.Format(L"%s,%s,%d,%d", shi502_netname, shi502_path, shi502_current_uses, ValidSecurity);shareList->AddTail(outS);p++;}NetApiBufferFree(BufPtr);}else{ //printf("Error: %ld\n", res);}}while (res == ERROR_MORE_DATA); return;}
/////////////////////////////////////////////////////////////////////////////////////////
调用方法:
CStringList* shareList = new CStringList();testShare(shareList);POSITION rPos;rPos = shareList->GetHeadPosition();int h = 0;while (rPos != NULL){CString tmps = shareList->GetNext( rPos );m_ListBox1.AddString(tmps);h++;}if ( h != 0 ){CString hStr;hStr.Format( L"发现共享 %d 处",h );m_ListBox1.AddString( hStr );}else{m_ListBox1.AddString( L"未发现共享" );}
我封装过的函数参数是个CStringList 指针,可以得到一个集合,如果需要的话可能转成自己想使用类型,这里是为了方便在小窗口打印出来,直接显示;
后期就可以通过网络通讯把读到共享列表发给管理端,管理端就知道下面的客户机谁开了共享,共享了些什么...
【 本系列会持续更新 请关注公众号 】
阅读全文
0 0
- 远程检测客户机上的共享设置情况
- 远程检测客户机上的系统补丁安装情况与端口开放状态
- VMware设置共享目录(share folder),实现客户机与主机的文件传输
- 主机是windows,客户机是linux下的设置 共享文件夹
- 实验1 远程客户机能否通过共享内存访问服务器
- 实验1 远程客户机能否通过共享内存访问服务器
- 操作远程主机上共享的ACCESS
- VirtualBox 共享文件夹设置(windows7主机,linux客户机)
- “服务器上远程桌面连接的加密设置”,“客户机的具有加密功能远程桌面功能的安装”以及“客户机证书的安装”等操作
- JS如何检测手机上APP是否安装的情况
- 虚拟机上Ubuntu的共享folder设置
- Win7上设置共享目录的做法
- virtualBox上的ubuntu客户机全屏问题
- VMware虚拟机 客户机是Linux的情况下客户机ping VMware网关,ping不通
- IIS 远程共享目录设置
- 运行远程服务器上共享的可执行程序
- 远程电脑A,共享本地电脑B上的磁盘
- win2008上的IIS7如何配置远程可以访问共享
- Android_UI:Drawable
- Spring管理hibernate
- Unity Mecanim动画的实现(十):动画混合树、子状态机和状态行为
- Android中怎样防止内存泄漏?
- 收集各种API文档,提供下载.chm文件,HTML、java、w3school、servlet、js、spring、等等。
- 远程检测客户机上的共享设置情况
- 日志的生成
- 谈谈对「工控安全」和「产品经理」的理解
- AOP学习笔记(一)—— 代理
- 线程间通信的方式
- H5游戏研发发展
- JAVA的23种设计模式---代理模式(二)
- 时间类
- 栈(顺序)