我查阅资料发现有一些可使用 C# 关闭用户电脑的方法,但我觉得都不是很简洁,所以我想在这里寻找一种简单或者使用原生 .NET 关闭的方式。
Github上发布了一款名叫SharpNoPSExec的工具,地址为https://github.com/juliourena/SharpNoPSExec 主要功能就是后渗透中的横向移动。而横向移动也一直是老生常谈的话题,无论是PSexec还是wmi等等都是为了快速获取其他目标的权限,而目前各类的杀软、EDR也已经对此类攻击方式做了许多的防御,那PSexec来说,默认情况下是使用服务来在目标机器上来执行代码,而也有部分防御设备是按照psexec的默认服务名来进行防御的,而其也可通过参数来设置服务名。
using system; using system.runtime.interopservices; namespace myserviceinstaller { class serviceinstaller { #region private variables private string _servicepath; private string _servicename; private string _service
.net下模拟不同身份登陆以获取不同权限 作者:佚名 时间:-- : 出处:互连网 责编:chinaitpower 摘要:.net下模拟不同身份登陆以获取不同权限 不管是asp.net、web service还是window service,程序运行的时候只有本地计算机的部分权限,有时候需要更大的权限,比如读写某台服务器或域中的一台计算机上的文件等,这就需要更大的权限,比如域帐户权限。 通过获取不同身份的WindowsImpersonationCon
------------------201508250915更新------------------
winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游戏手柄,缺少它可能造成部分软件无声音。当你的电脑提示“丢失winmm.dll”或者“没有找到winmm.dll”等类似错误信息。
using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; using System.Security; using System.Security.Principal; using System.Runtime; using System.Runtime.InteropServices; using System.Web; using System.Web.Se
在VBA CreateObject函数如何找到所需要的依赖文件中,为了找到了外部对象所依赖的文件,使用了WScript.Shell对象去读取注册表的信息,这里再介绍直接使用API来读取的方法,还是和操作文件类似,打开-读取-关闭三步:
在调用 win32 库的时候,小伙伴会遇到的问题是不知道对应的 win32 函数应该如何写。或者在网上抄了的代码的实现都有些诡异,想要自己封装发现工作量太大。好消息是官方将 PInvoke 库在 dotnet 基金会完全开源,包含了大量的 Win32 库,如 gdi32.dll 和 kernel32.dll 和 user32.dll 等
py2exe 是 Python Distutils 的一个外部扩展,它可以把Python脚本转为可执行的Windows程序,无需安装Python即可运行。
本篇继续阅读学习《内网安全攻防:渗透测试实战指南》,是第四章权限提升分析及防御,本章主要分析了系统的内核溢出漏洞提权、利用Windows操作系统错误配置提权、利用组策略首选项提权、绕过UAC提权、令牌窃取及无凭证条件下的权限获取,并提出了相应的安全防范措施
由于服务操作是在寄宿进程中执行,在默认的情况下,服务操作是否具有足够的权限访问某个资源(比如文件)决定于执行寄宿进程Windows帐号的权限设置,而与作为客户端的Windows帐号无关。在有多情况下,我们希望服务操作执行在基于客户端的安全上下文中执行,以解决执行服务进行的帐号权限不足的问题。这就涉及到一个重要的话题——模拟(Impersonation)与委托(Delegation)[实例程序源代码从这里下载] 目录: 一、从访问令牌(Access Token)说起 二、再谈Windo
分析有用的字符串,大致猜测该病毒的功能,此病毒有请求域名服务器、注册服务、修改字符串、调用 cmd 命令行执行程序等功能。
Visual C++配有C运行库的源代码,可以在crt\src\crt0.c 文件中找到启动函数的源代码。控制台程序的启动代码存放在crt\src\wincmdln.c //开发人员可以修改启动源代码,尝试一下。 作用:检索指向新进程的命令行指针,检索指向新进程的环境变量指针,全局变量初始化,内存堆栈初始化 比如:GetCommandLineA、GetStartupInfoA、GetModuleHandleA.
C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案
我要开发一个系统服务,服务的作用是定时检测并关闭其他应用的弹窗,但是开发后却发现,服务在运行是压根获取不到任何窗口。
RefleXXion是一款针对用户模式钩子的安全研究工具,该工具可以通过绕过AV、EPP和EDR等安全解决方案使用的用户模式钩子,来研究安全解决方案的安全性。
Set wsh = CreateObject(“WScript.Network”)
一款基于go的windows信息收集工具,主要收集目标设备rdp端口登录、mstsc远程连接记录、mstsc密码和安全事件中。
参考https://cloud.tencent.com/developer/article/2022946
近期,我们发现了一种新型的勒索软件家族-Anatova。Anatova发现于一个私人的点对点(p2p)网络中,目前我们已经确保客户得到了有效的安全保护,并打算在这篇文章中公开我们的研究成果。
要做注册表沙箱,就必须要了解部分注册表知识。而注册表的知识很多,本文主要讲述如何在win32系统是上识别注册表映射的。(转载请指明出处)
本节帮助读者入门windows上如何对恶意软件或病毒做初步分析。分析分两种,一种叫静态分析,也就是通过直接读取病毒或恶意程序的可执行文件来分析它的运行原理,一种是动态分析,也就是在病毒或恶意程序正在运行的情况下,监视其一举一动,通过观察它在系统中的运行情况来分析它的目的和原理。
从windows服务启动一个带UI程序的界面,这个需求在xp中是很随意的,从Vista开始似乎没有那么随意了,因为Vista中加入了Session的概念,那么什么是Session,我想这篇文章介绍的应该比我权威的多。Session隔离介绍
.NET 高级调试的第二篇文章,第一篇文章《.NET 高级调试:认识调试工具》记录了自己学习 Net 高级调试的第一步,认识一些调试工具,有了工具的倚仗,我们开始仗剑走天涯了,开始Net高级调试正式的征程了。
官方示例:Eventdrv - Code Samples | Microsoft Learn
导入表是记录PE文件中用到的动态连接库的集合,一个dll库在导入表中占用一个元素信息的位置,这个元素描述了该导入dll的具体信息。如dll的最新修改时间、dll中函数的名字/序号、dll加载后的函数地址等。而一个元素即一个结构体,一个导入表即该结构体的数组,其结构体如下所示:
http://hi.baidu.com/joleincn/blog/item/d1dfb7d939c69fe177c638b0.html
动态链接库(DLL)想必大家都不陌生了吧,C/C++编程经常会用到,那么,它跟我们的Python有什么关系?要说关系恐怕也就是Python是用C写的了,不过,还有一点更重要的关系,那就是Python可以调用C函数,这一点,在Pywin32中有所体现。下面我们就来详细了解下到底Python使用动态链接库是怎么回事吧。
此项目包含各种.NET程序集,这些程序集包含来自Windows库的P/Invoke函数、接口、枚举和结构。每个程序集都与一个或几个紧密相关的库相关联。例如,Shlwapi.dll包含从Shlwapi.lib导出的所有函数;Kernel32.dll包含Kernel32.lib和kernelbase.lib的全部。
在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库。现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧!
AZORult木马家族于2016年首次被发现。该木马是一种高度复杂的恶意软件,可以窃取信息。自2016年以来,已观察到AZORult的不同变体。通过用Delphi和C ++语言重新开发此木马,可以修复早期版本中存在的缺陷和不足。攻击者使用此木马窃取信息,例如浏览历史记录,Cookie,凭据,加密货币信息等。
« 安装cronolog,格式化Apache的日志文件 | Blog首页 | 配置AWStats,Apache日志分析工具 »
这篇文章的起因,是笔者之前在做样本分析的时候,经常会遇到需要调试傀儡进程的情况,而其中有一种情景是将启动的白进程PE文件整个掏空并用黑进程进行替换。
在六月份的某单位HW行动中,知道创宇HW安全团队通过创宇云图APT威胁感知系统并结合腾讯御点终端安全管理系统成功处置了一起APT攻击事件。
c#中无法将类型“int”隐式转换为“System.IntPtr” 这个是我引用了一个api函数时出现的问题,我在声明中把intptr换成了int还是不可以,这是为什么呢?要如何处理呢? 答: 您好,
从《一种清除windows通知区域“僵尸”图标的方案——问题分析》(以后简称《问题分析》)一文中分析的通知区域结构可以看出,Windows7的通知区域比XP通知区域多出了一个“临时”系统通知区域(转载请指明出于breaksoftware的csdn博客)
在使用ctypes库时,有时可能会遇到_ctypes.COMError错误,该错误通常表示函数调用时的参数错误。本文将介绍这个问题的原因和解决方法。
行为分析主要是通过系统监控软件,监控系统中各资源或环境的变化,比如监控注册表、监控文件、监控进程,以及监控网络等。当然了,还可以通过 HIPS 软件来监控病毒的行为。各类系统监控工具或者是 HIPS 软件都是在系统的不同层面上进行了不同方式的 HOOK。比如说在内核层进行 HOOK,在应用层进行 HOOK。HOOK 的方式也是多样化的,比如直接 HOOK API 函数,或者 HOOK SSDT 表中的内核函数。
一般来说,大家在需要监听全局消息的时候会考虑 SetWindowsHookEx 这个 API。或者需要处理一些非自己编写的窗口的消息循环的时候,也会考虑使用它。
熟练掌握Win32 API函数的参数传递,是软件逆向的基础,本章节内容将使用MASM汇编器,逐个编译这些源程序,你可以通过使用一些调试工具,这里推荐OllyDBG来附加编译后的可执行文件,进行逐个分析,观察二进制程序逆向后的一些变化,总结吸收经验,为以后的二进制逆向,漏洞挖掘打基础.
Shellcode是一个有趣的东西,我一直想使用miasm来学习很久了(因为几年前我在SSTIC上看到了第一次演讲),现在,我终于可以在这个新冠的夜晚里学习了。
VC6编译方法: 1.http://www.openssl.org/source/old/0.9.x/ 下载0.9.x版本 -- VC6不能完全编译最新的1.0.x,所以尽量选择0.9.x 2.安装ActivePerl 3.cmd命令运行 VC6安装目录\VC98\Bin\VCVARS32.BAT 4.以此执行下面命令
内核级别的内存读写可用于绕过各类驱动保护,从而达到强制读写对端内存的目的,本人闲暇之余封装了一个驱动级的内核读写接口,使用此接口可实现对远程字节,字节集,整数,浮点数,多级偏移读写等。
1.1 在.NET之前 C#发音:see shap 1.1.1 20世纪90年代后期的Windows编程 20世纪90年代后期各语言缺点: 1.纯Win32 API不是面向对象的,而且工作量比MFC的更发 2.MC是面向对象的,但是他却不一致,并逐渐变得陈旧 3.COM虽然概念上简单。但实际代码复杂,而且需要更多丑陋的,不雅的底层代码 共同缺点: 主要针对桌面程序而不是Internet的开发 1.2 进入Microsoft.NET .NET框架是一种比MFC或COM编程
最近使用DllImport,从网上google后发现,大部分内容都是相同,又从MSDN中搜集下,现将内容汇总,与大家分享。
最近在读《编程之美》,打算用C#实现其中一个题目,就是如何控制CPU的使用率在50%,使得在资源管理器中CPU利用率维持在一条直线。单核的还容易办到,但是现在的机器一般都是多核的,这样就需要调用Win32 API SetThreadAffinityMask 来给线程制定CPU去执行。但这个API只能在C++调用,那么在C#里如何调用呢?更进一步,就是在C#里为什么没有全部的WIN32 API可以调用呢?有没有方法可以实现呢?
大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用这些原本已经存在的功能呢?答案是肯定的,大家可以通过C#中的DllImport直接调用这些功能。 DllImport所在的名字空间 using System.Runtime.InteropServices; MSDN中对DllImportAttribute的解释是这样的:可将该属性应用于方法。DllImportAttribute 属性提供对从非托管 DLL 导出的函数进行调用所必需的信息。作为最低要求,必须提供包含入口点的 DLL 的名称。 DllImport 属性定义如下: namespace System.Runtime.InteropServices { [AttributeUsage(AttributeTargets.Method)] public class DllImportAttribute: System.Attribute { public DllImportAttribute(string dllName) {…} public CallingConvention CallingConvention; public CharSet CharSet; public string EntryPoint; public bool ExactSpelling; public bool PreserveSig; public bool SetLastError; public string Value { get {…} } } } 说明: 1、DllImport只能放置在方法声明上。 2、DllImport具有单个定位参数:指定包含被导入方法的 dll 名称的 dllName 参数。 3、DllImport具有五个命名参数: a、CallingConvention 参数指示入口点的调用约定。如果未指定 CallingConvention,则使用默认值 CallingConvention.Winapi。 b、CharSet 参数指示用在入口点中的字符集。如果未指定 CharSet,则使用默认值 CharSet.Auto。 c、EntryPoint 参数给出 dll 中入口点的名称。如果未指定 EntryPoint,则使用方法本身的名称。 d、ExactSpelling 参数指示 EntryPoint 是否必须与指示的入口点的拼写完全匹配。如果未指定 ExactSpelling,则使用默认值 false。 e、PreserveSig 参数指示方法的签名应当被保留还是被转换。当签名被转换时,它被转换为一个具有 HRESULT 返回值和该返回值的一个名为 retval 的附加输出参数的签名。如果未指定 PreserveSig,则使用默认值 true。 f、SetLastError 参数指示方法是否保留 Win32″上一错误”。如果未指定 SetLastError,则使用默认值 false。 4、它是一次性属性类。 5、此外,用 DllImport 属性修饰的方法必须具有 extern 修饰符。
领取专属 10元无门槛券
手把手带您无忧上云