进程命令行参数欺骗

admin 2025年4月8日15:45:27评论12 views字数 1498阅读4分59秒阅读模式
进程命令行参数欺骗
进程命令行参数欺骗
进程命令行参数欺骗
蛇来运转,鸿运新年
进程命令行参数欺骗

提出问题

        在程序执行命令时,sysmon都会做出对应的监控。攻击者在执行main.exe <argv>都得到参数时候都会被记录,如下:

进程命令行参数欺骗

可以发现我们执行的powershell -c calc.exe已经被系统记录了。

这时候就出现了一个技术:

进程参数欺骗这个技术在Hackin’Fest 2018年里有讲过

https://www.youtube.com/watch?v=l8nkXCOYQC4

进程命令行参数欺骗

前置知识

一些下面会用到的结构体提前先列出来

TEB

进程命令行参数欺骗

可以去看一下:

https://www.vergiliusproject.com/kernels/x86/windows-10/22h2/_TEB

_NT_TEB

typedef struct _NT_TIB{     PEXCEPTION_REGISTRATION_RECORD ExceptionList;     PVOID StackBase;     PVOID StackLimit;     PVOID SubSystemTib;     union     {          PVOID FiberData;          ULONG Version;     };     PVOID ArbitraryUserPointer;     PNT_TIB Self; //+18 指向自己(TEB)} NT_TIB, *PNT_TIB;

PEB

进程命令行参数欺骗

可以去看一下:

https://www.vergiliusproject.com/kernels/x86/windows-10/22h2/_PEB

进程命令行参数欺骗

分析

分析还是太难为我了,我还是借助一下大佬的分析过程:

https://wbglil.gitbook.io/cobalt-strike/cobalt-strike-yuan-li-jie-shao/can-shu-qi-pian#dai-ma

分析一下GetCommandLineW的实现

进程命令行参数欺骗

可以看到GetCommandLineW是直接从一个地址中读取的值然后给eax,我们跟进查看是谁给此地址赋值的

进程命令行参数欺骗
进程命令行参数欺骗

在这里就可以很清楚的看到是从PEB里取的值

如果你不明白为什么esi指向PEB可以去函数开头看一下esi是从哪里来的,基本就能明白

进程命令行参数欺骗

现在我们应该清楚进程参数该从哪里获取(PEB.ProcessParameters.CommandLine)

所以我们可以很简单的通过修改PEB达到目的 

1.以暂停标志创建进程 

2.修改PEB.ProcessParameters.CommandLine 

3.继续运行进程

从上面也可以看出来CommandLine是一个UNICODE_STRING结构体

进程命令行参数欺骗

而GetCommandLine根据我们上面分析的结果,它并不解析其中的Length,单单返回Buffer。这就造成了一些问题,进程本身初始化获取参数时不会理会Length,但是部分进程管理工具会通过读取PEB寻找参数,然后依据UNICODE_STRING.Length去读取参数的长度,所以我们还可以利用这点欺骗进程管理工具

进程命令行参数欺骗

运行效果

 进程命令行参数欺骗

代码可以去参考一下:

https://www.ctfiot.com/174911.html

END

参考文章:

https://www.ctfiot.com/174911.html

https://wbglil.gitbook.io/cobalt-strike/cobalt-strike-yuan-li-jie-shao/can-shu-qi-pian#dai-ma

https://wbglil.github.io/2019/04/03/利用cs进程参数欺骗绕过杀软添加账号/

原文始发于微信公众号(T3Ysec):进程命令行参数欺骗

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月8日15:45:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   进程命令行参数欺骗https://cn-sec.com/archives/3930085.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息