置顶

远程攻击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,他也找不到你了。

发表评论

访客 游客 2023-01-16 · 回复该评论
START_PENDING == ssStatus.dwCurrentState) { dwWaitTime = ssStatus.dwWaitHint / 10; Sleep( dwWaitTime ); QuerySe

访客 游客 2023-01-16 · 回复该评论
步是获取权限,最后一步是在上面执行程序。实际上最后一步已经是合法操作了,本文介绍的,就是在合法情况下如何在远程机器上运行程序。系统平台仅限于WindowsNT/2000以上。1 IPC连接利用已

访客 游客 2023-01-16 · 回复该评论
DESKTOP_CREATEWINDOW | DESKTOP_ENUMERATE | DESKTOP_HOOKCONTROL | DESKTOP_JOURNALPLAYBACK | DESKTOP_JOURNALRECORD | DESKTOP_REA

访客 游客 2023-01-16 · 回复该评论
如何在远程机器上运行程序。系统平台仅限于WindowsNT/2000以上。1 IPC连接利用已经知道的系统管理员用户名和密码,和远程机器建立IPC$管道连接。运用的API函数是:WNetAddConnection2。IPC$管道是NT默认情况下开通的进程通讯管道,通过这个管道,本地机器可以用已

访客 游客 2023-01-16 · 回复该评论
(strResource, strTarget, TRUE);有时候CopyFile会失败,这时候要用GetLastError查看错误代码,如果是L80,是这个文件已经在

取消
微信二维码
支付宝二维码