.NET技巧 - 控制台应用隐藏窗口

.NET技巧 - 控制台应用隐藏窗口

前言

起初我通过C#创建控制台应用程序免杀shellcode加载器时,默认会启动一个cmd控制台窗口

但当我们希望将其免杀loader用于钓鱼时,我们必然不希望出现这种情况。在执行进程迁移、进程注入、进程镂空等持久化权限维持操作前,目标手动关闭该cmd控制台窗口后,我们的shell就没了

初步尝试

由于是控制台应用程序,它不像WPF那样能够直接调用相关函数来实现隐藏窗口。

我先后多次通过windows api的CloseWindow、GetConsoleWindow和DestroyWindow函数

CloseWindow只能最小化窗口,也就是出现在桌面的底部栏,这样的效果并不太好,我们需要的是无窗口。

而DestroyWindow无法生效,它无法销毁其它线程的窗口

复制代码
线程不能使用 DestroyWindow 销毁由其他线程创建的窗口。

解决方案 - csc本身

寻找了许多方法,在 不在加载器本身做进程注入,并且又能没有窗口

最简单的方法还是回到了csc.exe本身,因为我们使用csc对C#代码进行编译,我查看了csc的help

果然存在这个选项,默认是控制台程序,当我们在编译时,手动添加/target:winexe,它将不会再有控制台窗口。

结束

我们一直都在企图通过windows api来隐藏窗口和关闭窗口兜圈,忽略了csc编译时的可选项,直接在编译阶段处理这个问题,不过还好思路转了过来

本文旨在介绍如何在C#控制台应用程序中实现隐蔽性,尤其是在开发免杀shellcode加载器时。传统的控制台应用启动时会弹出cmd窗口,这在进行进程保护和注入等操作时可能会暴露风险。我们尝试了多种使用Windows API的方法来隐藏或关闭窗口,但效果不尽如人意。

最终,我们意识到最有效的解决方案是直接在编译阶段调整设置。通过在使用csc.exe编译时添加/target:winexe选项,可以避免窗口的弹出。这一策略不仅简化了开发过程,还增强了应用程序的隐蔽性。

相关推荐
Suckerbin39 分钟前
Solar应急响应8月赛 勒索环境溯源排查
web安全·网络安全·安全威胁分析
m0_738120721 小时前
渗透测试——靶机Sar1渗透横向详细过程
开发语言·python·安全·web安全·网络安全·ssh·php
白帽子凯哥哥2 小时前
渗透测试技术:从入门到实战的完整指南
web安全·渗透测试·人才培养·产教融合·湖南省网安基地
漏洞文库-Web安全3 小时前
2021qwb [强网先锋]赌徒 Writeup + 环境复现
安全·web安全·网络安全·ctf
admin and root3 小时前
企业SRC支付漏洞&EDUSRC&众测挖掘思路技巧操作分享
网络·安全·web安全·渗透测试·src漏洞挖掘·网络攻击模型·攻防演练
至善迎风3 小时前
React2Shell(CVE-2025-55182)漏洞服务器排查完整指南
网络安全·react·数据安全·漏洞·next·rsc·cve-2025-55182
白帽子黑客杰哥5 小时前
Web安全技术:构建数字世界的防护盾牌
安全·web安全·网络安全·渗透测试·漏洞挖掘·副业
漏洞文库-Web安全5 小时前
渗透测试中的方法论
linux·运维·学习·安全·web安全·网络安全·逆向
Whoami!5 小时前
❽⁄₃ ⟦ OSCP ⬖ 研记 ⟧ 修改漏洞利用脚本 ➱ 分析漏洞利用脚本(.py)
网络安全·信息安全·缓冲区溢出
白帽子黑客罗哥7 小时前
湖南网安基地科技有限公司的课程怎么样?费用值不值?
web安全·网络安全·实战项目·湖南网安基地