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$入侵

https://blog.csdn.net/l1028386804/article/details/85995503

posted @ 2019-02-16 02:12  17bdw  阅读(653)  评论(0编辑  收藏  举报