远程攻击lp软件_远程攻击lp软件有哪些
作者:hacker | 分类:渗透破解 | 浏览:112 | 日期:2023年01月16日怎样远程直接运行可执行程序,不是在本地运行
有局域网内的远程机器(NT操作系统)的系统管理员账号密码,不借助事先安装客户端,如何在该机器上执行程序?
一般来说,对远程机器的攻击第一步是找到漏洞,第二步是获取权限,最后一步是在上面执行程序。实际上最后一步已经是合法操作了,本文介绍的,就是在合法情况下如何在远程机器上运行程序。系统平台仅限于WindowsNT/2000以上。
1 IPC连接
利用已经知道的系统管理员用户名和密码,和远程机器建立IPC$管道连接。运用的API函数是:WNetAddConnection2。IPC$管道是NT默认情况下开通的进程通讯管道,通过这个管道,本地机器可以用已知的用户名和密码登陆到远程机器,并拥有相应的权限。
CString strTarget = "\\\\" + m_strComputerName + "\\IPC$";
NETRESOURCE nr;
nr.dwType = RESOURCETYPE_ANY;
nr.lpLocalName = NULL;
nr.lpRemoteName = strTarget.GetBuffer(strTarget.GetLength());
nr.lpProvider = NULL;
WNetAddConnection2(
nr,
m_strPassword.GetBuffer(m_strPassword.GetLength()),
m_strUserName.GetBuffer(m_strUserName.GetLength()),
FALSE);
补充说明一点,其实,通过字典“暴力破解”出系统管理员密码,然后建立IPC连接获取对远程机器的完全控制权,正是中级水平的黑客们常用的攻击手段。
2 传送文件
服务(NT Service)是NT系统的特色,服务程序在用户登陆前已经启动,驱动程序服务甚至启动得更早。服务拥有系统的最高权限,不从属于任何用户,拥有对系统资源的完全控制权。
建立IPC连接后,利用IPC管道,传送一个特制的服务文件到远程机器。之后安装并启动这个服务,我们想在远程机器上做的工作,就是通过它来执行的。如果你要在远程机器运行程序,那么别忘了把程序文件也一起传过去。
传送文件没有什么特别,使用的API是CopyFile。
CString strResource;
CString strTarget;
GetDefaultPathFile(strResource);
strTarget = "\\\\" + m_strComputerName + "\\admin$\\system32\\";
CopyFile(strResource, strTarget, TRUE);
有时候CopyFile会失败,这时候要用GetLastError查看错误代码,如果是L80,是这个文件已经在远程机器上存在了,这种情况一般是不需要退出程序的。
你可以把CopyFile的最后一个参数设置成FALSE,这样当文件已经存在时就会被覆盖,当然,这种行为不被提倡。尤其当你是在对远程机器进行IPC入侵的时候(简单说就是黑它!),这种破坏远程机器上已有文件的行为是很危险的。
3 安装并运行服务
安装服务相对简单,使用CreateService,这里不给出代码。记得在OpenSCManager的时候第一个参数要使用远程机器的机器名。
schSCManager = OpenSCManager(
m_strComputerName.GetBuffer(m_strComputerName.GetLength()),
NULL,
SC_MANAGER_ALL_ACCESS);
启动服务比较有讲究,在本机你可以直接StartService不考虑后果,但是在控制远程机器的情况下,不同操作系统的服务启动等待时间是不一样的,因此如果不进行启动状态查询,就会出错。
StartService(schService, 0, NULL);
QueryServiceStatus(schService, ssStatus);
dwStartTickCount = GetTickCount();
dwOldCheckPoint = ssStatus.dwCheckPoint;
while (SERVICE_START_PENDING == ssStatus.dwCurrentState)
{
dwWaitTime = ssStatus.dwWaitHint / 10;
Sleep( dwWaitTime );
QueryServiceStatus(schService, ssStatus)
if (ssStatus.dwCheckPoint dwOldCheckPoint)
{
dwStartTickCount = GetTickCount();
dwOldCheckPoint = ssStatus.dwCheckPoint;
}
else
{
if(GetTickCount() - dwStartTickCount ssStatus.dwWaitHint)
{
break;
}
}
}
......
4 远程执行程序
启动服务后,接下来的事情就交给服务来做了。
怎样写一个服务?有一个现成的框架,VC精华区里面有。
这里需要注意,服务是不能直接和桌面交互的,你需要给服务指定桌面,使用SetThreadDesktop。
HDESK hdesk = OpenDesktop("default", 0, FALSE,
DESKTOP_CREATEMENU |
DESKTOP_CREATEWINDOW |
DESKTOP_ENUMERATE |
DESKTOP_HOOKCONTROL |
DESKTOP_JOURNALPLAYBACK |
DESKTOP_JOURNALRECORD |
DESKTOP_READOBJECTS |
DESKTOP_SWITCHDESKTOP |);
SetThreadDesktop(hdesk);
CreateProcess(......);
至于执行什么程序,就看你了,当然,不喜欢CreateProcess还可以用ShellExecute,只要能在远程机器上启动一个程序就成功了。
5 收尾
停止服务,删除服务的可执行文件,删除程序文件(如果有的话),关闭IPC连接,这个不需要解释了吧?本文中的代码你都可以看作是伪码,运用中要记得添加出错处理。
顺便提一下,psexec.exe这个程序实现了在提供系统管理员用户名、密码的情况下远程执行程序的功能,这里介绍一下:
psexec是一个远程执行工具,你可以像使用telnet一样使用它。
假设我在远程机器ip有一个账号,账号名是:abc 密码是:123
比如想要在远程系统上执行命令可以打:
psexec \\远程机器ip -u abc -p 123 cmd
如果想要远程机器执行本地c:\srm.exe文件可以打:
psexec \\远程机器ip -u abc -p 123 -c c:\srm.exe
如果想要让远程机器执行本地上tftp服务端,(假设tftp服务端在本地c:\tftp32.exe),可以打:
psexec \\远程机器ip -u abc -p 123 -c c:\tftp32.exe -d
我的lp地址老被攻击,我怎么办
不是你的ip老收到攻击,而是因为你的操作系统存在漏洞,导致某些黑客攻击软件不停的在扫描你的系统端口,试图通过系统漏洞进入你的机器,解决办法是升级你的防火墙和杀毒软件,同时打好系统漏洞补丁。希望我的回答对你有帮助。
我的手机被人远程控制了,他知道我的手机lp,他能用手机和电脑监控我手机里的一切资料,怎么能不被他监
要么恢复出厂设置,它放在你手机里面的监控软件就不起作用了,要么修改你的ip,他也找不到你了。