IPC$横向渗透代码实现
思路
IPC$横向渗透的方法,也是病毒常用的扩散方法。
1、建立连接
2、复制文件到共享中C$
、D$
、E$
、F$
3、获取服务器的时间
3、设定计划任务按时间执行
用到的Windows API
建立网络驱动器 WNetAddConnection2()
WNetAddConnection2W(
_In_ LPNETRESOURCEW lpNetResource, // 资源信息
_In_opt_ LPCWSTR lpPassword, // 密码
_In_opt_ LPCWSTR lpUserName, // 用户名
_In_ DWORD dwFlags // 标志位
);
# 使用
WNetAddConnection2(&netResource, pass, user, CONNECT_UPDATE_PROFILE))
断开网络驱动器 WNetCancelConnection2()
# 使用
WNetCancelConnection2(netResource.lpLocalName, CONNECT_UPDATE_PROFILE, true);
获取局域网内windows server 2003服务器上的时间 NetRemoteTOD()
增加计划任务 NetScheduleJobAdd()
代码实现示例
int ConnectWNet(LPWSTR user, LPWSTR pass, LPWSTR host)
{
std::wstring string;
if (host[0] != L'\\' && host[1] != L'\\')
{
string.append(L"\\\\");
}
string.append(host);
NETRESOURCE netResource;
netResource.lpLocalName = NULL;
netResource.lpRemoteName = (LPWSTR)string.c_str();
netResource.dwType = RESOURCETYPE_ANY;
netResource.lpProvider = NULL;
DWORD ret;
char okip[260];
//创建IPC连接
if ((ret = WNetAddConnection2(&netResource, pass, user, CONNECT_UPDATE_PROFILE)) == ERROR_SUCCESS)
{
sprintf(okip, "%s %s %s\n", host, user, pass);
// 断开IPC连接
DWORD dwConFlig = WNetCancelConnection2(netResource.lpLocalName, CONNECT_UPDATE_PROFILE, true);
return 1;
}
return 0;
}
参考
远程IPC种植木马
https://blog.csdn.net/weixin_34408624/article/details/86248485
WnetAddConnection2
https://blog.csdn.net/VonSdite/article/details/81230306
渗透之——内网IPC$入侵