您当前的位置:首页 > 电脑百科 > 网络技术 > 网络安全

内网渗透基础——命令行下安装Microsoft .NET Framework

时间:2020-07-03 11:41:30  来源:  作者:

在渗透测试中,有些工具的运行(例如高版本的Powershell)需要依赖Microsoft .NET Framework 4.0的环境。 而默认配置下,Win7不支持Microsoft .NET Framework 4.0。为了保证工具能够在Win7下使用,这里就需要在命令行下实现安装Microsoft .NET Framework 4.0。

经过一番搜索,我没有找到介绍命令行下安装Microsoft .NET Framework的资料。

于是我写了这篇文章,介绍我的实现方法,开源C代码,分享实现原理和脚本开发的细节。

简介

本文将要介绍以下内容:

· Win7下安装Microsoft .NET Framework 4.0的正常方法

· 命令行下的实现方法

· 实现原理

· 脚本开发的细节

Win7下安装Microsoft .NET Framework 4.0的正常方法

Microsoft .NET Framework的安装包分为两种:

(1)Web Installer

下载地址:

https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=17851

Web Installer的文件很小,在安装过程中需要Internet连接来下载其他所需的.NET Framework组件

(2)Standalone Installer

下载地址:

https://www.microsoft.com/en-US/Download/confirmation.aspx?id=17718

Standalone Installer的文件相对来说会很大,因为它包括了完整的组件,在安装过程中不需要Internet连接。

这里以Standalone Installer为例,正常的流程如下:

1.下载Standalone Installer

获得文件dotNetFx40_Full_x86_x64.exe。

2.运行dotNetFx40_Full_x86_x64.exe

弹出对话框,选择同意协议后点击Install按钮。

如下图:

内网渗透基础——命令行下安装Microsoft .NET Framework

 

3.等待安装过程

如下图:

内网渗透基础——命令行下安装Microsoft .NET Framework

 

4.安装完成,弹出对话框

如下图:

内网渗透基础——命令行下安装Microsoft .NET Framework

 

点击Finish按钮进入下一步。

5.再次弹出对话框,提示选择是否重启系统

如下图:

内网渗透基础——命令行下安装Microsoft .NET Framework

 

在系统重启后,完成所有安装工作。

命令行下的实现方法

这里介绍我最开始的思路:

1.我们可以通过向安装程序的面板发送按键消息来模拟用户的点击行为

2.为保证在命令行下安装,需要对弹出的对话框发送隐藏窗口的消息

3.为保证按键准确,这里不应该采用计算坐标的方法模拟鼠标点击,而是枚举窗口获得按钮的句柄,向目标句柄发送鼠标点击的消息

为了验证我的思路,首先需要编写程序查看是否能够获得每个安装页面的按钮句柄。

我写了如下C代码:

#include <afx.h> #include <windows.h> BOOL CALLBACK EnumChildWindowProc(HWND Child_hWnd, LPARAM lParam) { WCHAR szTitle[1024]; if (Child_hWnd) { GetWindowText(Child_hWnd, szTitle, sizeof(szTitle)); printf("[*] Handle: %08Xn", Child_hWnd); printf("[*] Caption: %wsn", szTitle); return true; } return false; } int _tmain(int argc, _TCHAR *argv[]) { HWND hWnd3 = FindWindow(NULL, L"Microsoft .NET Framework 4 Setup"); if (hWnd3 == NULL) { printf("[!] I can't find the main window.n"); return 0; } EnumChildWindows(hWnd3, EnumChildWindowProc, 0); return 0; }

对于第一个安装页面,使用程序来枚举所有子窗口,输出句柄和标题,如下图:

内网渗透基础——命令行下安装Microsoft .NET Framework

 

这里需要注意Install按钮,默认为disable状态,如果想要进入下一步,需要先将Install按钮设置为enable状态,再发送鼠标点击的消息。

在代码实现上加上一个if判断来实现,关键代码如下:

if (wcscmp(szTitle, L"&Install") == 0) { printf("[+] Catch it!n"); printf("[*] Handle: %08Xn", Child_hWnd); printf("[*] Caption: %wsn", szTitle); printf("[*] Enable the Install button.n"); EnableWindow(Child_hWnd, TRUE); printf("[*] Send the click command to &Install.n"); ::PostMessage(Child_hWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(0,0)); ::PostMessage(Child_hWnd, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(0, 0)); }

完成这一步后我们进入下一步,等待安装结束后进入第二个页面,同样枚举一下所有子窗口,如下图:

内网渗透基础——命令行下安装Microsoft .NET Framework

 


内网渗透基础——命令行下安装Microsoft .NET Framework

 

我们看到,之前页面的子窗口还在,我们需要向Finish按钮发送鼠标点击消息,关键代码如下:

if (wcscmp(szTitle, L"&Finish") == 0) { printf("[+] Catch it!n"); printf("[*] Handle: %08Xn", Child_hWnd); printf("[*] Caption: %wsn", szTitle); printf("[*] Send the click command to &Finish.n"); ::PostMessage(Child_hWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(0, 0)); ::PostMessage(Child_hWnd, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(0, 0)); }

接下来进入最后一步,再一次枚举所有子窗口,如下图:

内网渗透基础——命令行下安装Microsoft .NET Framework

 

我们看到,页面的子窗口被刷新,在程序实现上这里需要重新获得主窗口的句柄,我们向Restart Later按钮发送鼠标点击消息,关键代码如下:

if (wcscmp(szTitle, L"Restart &Later") == 0) { printf("[+] Catch it!n"); printf("[*] Handle: %08Xn", Child_hWnd); printf("[*] Caption: %wsn", szTitle); printf("[*] Send the click command to Restart &Later.n"); ::PostMessage(Child_hWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(0, 0)); ::PostMessage(Child_hWnd, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(0, 0)); }

至此,关键的实现代码已经完成。

而要完整的实现在命令行下安装Microsoft .NET Framework,还需要考虑以下问题;

1.当启动安装程序dotNetFx40_Full_x86_x64.exe前,需要检查安装环境,如果已经存在另一个安装进程,那么会弹框提示冲突

如下图:

内网渗透基础——命令行下安装Microsoft .NET Framework

 

这里需要在启动前做一个判断:如果存在另一个安装进程,就结束安装操作。

2.当启动安装程序dotNetFx40_Full_x86_x64.exe时,会启动子进程Setup.exe,这里没法做到通过设置启动参数隐藏启动进程Setup.exe来隐藏窗口

这里需要加一个循环判断,只要发现主窗口就对其隐藏。

为了避免CPU占用过多,在做while循环时,应该加一个Sleep函数。

3.启动安装程序后需要模拟鼠标点击

需要注意的是,接下来的安装过程中,子窗口Install(名称为&Install)会一直存在,为了避免重复向Install按钮发送点击消息,在实现上我使用了第二个函数来匹配其他按钮。

4.安装完成后,弹出新的窗口提示安装成功,捕获子窗口,向其发送鼠标按键的命令

这里捕获的子窗口名称为&Finish。

5.接下来,弹框提示是否重新启动系统时,需要通过FindWindow()重新获得句柄

这里可以放在第二个函数的同一个循环中,当发现子窗口Restart &Later时,向其发送鼠标按键的命令。

需要注意弹出的窗口为新窗口,不能使用之前的窗口句柄,需要通过FindWindow()重新获得句柄。

完整实现代码已开源,地址如下:

https://github.com/3gstudent/Homework-of-C-Language/blob/master/Install_.Net_Framework_from_the_command_line.cpp

代码支持命令行下安装Microsoft .NET Framework 4、Microsoft .NET Framework 4.5和Microsoft .NET Framework 4.5.1

小结

本文介绍了通过发送鼠标消息在命令行下安装Microsoft .NET Framework的方法,开源C代码,分享实现原理和脚本开发的细节。

原文链接:https://www.4hou.com/posts/pXgX



Tags:内网渗透   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
0x00 前言一个完整的内网渗透过程。0x01 案例分析实验环境: 目标环境:10.0.0.0/24, 10.0.1.0/24 攻击主机:10.0.0.5 (Kali), 10.0.0.7 (Windows)渗透过程:基本的主机探测:root@ka...【详细内容】
2022-04-30  Tags: 内网渗透  点击:(94)  评论:(0)  加入收藏
拓扑环境 Kali Linux(攻击机) Centos6.4(web服务器) win7(域成员主机无法上网) win2008R2(域控无法上网) 目的通过Kali Linux拿到域控权限2021最新整理网络安全\渗透测试/安全学习(全...【详细内容】
2021-09-17  Tags: 内网渗透  点击:(313)  评论:(0)  加入收藏
前言这又是一个关于域内基础概念与原理的系列Active Directory 的查询基础语法BaseDNBaseDN 即基础可分辨名称,其指定了这棵树的根。比如指定 BaseDN 为DC=whoamianony,DC=or...【详细内容】
2021-09-06  Tags: 内网渗透  点击:(155)  评论:(0)  加入收藏
近年来,攻击者潜伏在企业内网进行攻击的安全事件屡见不鲜,攻击者在经常会企业的内网进行横向渗透,令防守方防不胜防。因此,我们应该严格控制好网络区域之间的访问规则,加大攻...【详细内容】
2021-07-07  Tags: 内网渗透  点击:(210)  评论:(0)  加入收藏
前言前段时间读了读徐哥的《内网安全攻防》,并复现了部分知识点,写篇文章记录下学习内容。何为隐藏通信隧道技术?意义当我们成功杀入内网并完成信息收集后,下一步要进行的就是判...【详细内容】
2021-06-22  Tags: 内网渗透  点击:(146)  评论:(0)  加入收藏
最近在某地方举行攻防演练的时候进入后台管理拿到了一个 webshell,但是 tasklist /svc 查看进程 360、电脑管家赫然在列,我的小伙伴本来准备使用注入 dll 来达到上线 cs 多人...【详细内容】
2021-05-21  Tags: 内网渗透  点击:(334)  评论:(0)  加入收藏
作者:诺言 转载自:https://www.freebuf.com/articles/web/247287.html前言最近打了几场**,遇到几个内网环境都不通外网,整理下用到的几种不出网内网渗透技巧。socks隧道搭建常用...【详细内容】
2020-08-27  Tags: 内网渗透  点击:(1096)  评论:(0)  加入收藏
在渗透测试中,有些工具的运行(例如高版本的Powershell)需要依赖Microsoft .NET Framework 4.0的环境。 而默认配置下,Win7不支持Microsoft .NET Framework 4.0。为了保证工具...【详细内容】
2020-07-03  Tags: 内网渗透  点击:(182)  评论:(0)  加入收藏
偶尔适度的放纵一下,是为了继续道貌岸然的生活,太急了会没有故事,太缓了会没有人生。。。。---- 网易云热评环境:小攻:Kali 2020,ip:192.168.1.133小受:win7 x86,ip:192.168.1.137一、...【详细内容】
2020-07-03  Tags: 内网渗透  点击:(110)  评论:(0)  加入收藏
内网渗透完成信息收集后,流量是否能够正常进出,是内网渗透中需要考虑的地方之一​ ICMP(Internet ControllerMessages Protocol,网间控制报文协议)是TCP/IP协议族的子协议,是一...【详细内容】
2020-06-21  Tags: 内网渗透  点击:(280)  评论:(0)  加入收藏
▌简易百科推荐
HTTP协议基础 静态WEB 动态WEB 应用程序 数据库 每人看到的内容不同 根据用户输入返回的不同结果 Web攻击类型有数百种Web攻击面 Network------网络 OS------操作系统...【详细内容】
2022-07-12  IT知识一享    Tags:Web渗透_   点击:(7)  评论:(0)  加入收藏
网络中存在着各种威胁,这些威胁直接的表现形式也是黑客攻击常采取的形式。入侵检测(Intrusion Detection)是对入侵行为的检测。1.常见的网络攻击方法网络中存在着各种威胁,这些...【详细内容】
2022-07-05  DAWEI    Tags:网络安全   点击:(25)  评论:(0)  加入收藏
翻译:SEAL安全原标题:Over 900,000 Kubernetes instances found exposed online原文链接:https://www.bleepingcomputer.com/news/security/over-900-000-kubernetes-instances...【详细内容】
2022-07-01  SEAL安全    Tags:K8S   点击:(21)  评论:(0)  加入收藏
NotPetya、WannaCry、ShadowPad、Sunburst&hellip;&hellip;这些恶意软件或许不为人们所熟知,但它们却时刻危害着全球互联网安全。2022年初,一名19岁黑客通过第三方应用程序远...【详细内容】
2022-06-28  河北网络安全    Tags:供应链   点击:(21)  评论:(0)  加入收藏
最新报道揭露,美国国家安全局(NSA)曾在30天内远程窃取了970亿条全球互联网数据和1240亿条电话记录。3月22日,360公司披露了美国国家安全局针对中国境内目标所使用的代表性网络武...【详细内容】
2022-06-23    中国日报  Tags:监听   点击:(40)  评论:(0)  加入收藏
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。大家知道有多少个产品...【详细内容】
2022-06-22  活帮先生    Tags:网络安全   点击:(30)  评论:(0)  加入收藏
网 关网关的用途网关充当网络层的数据流控制机制,也可以在开放系统互连 (OSI)模型的较高层控制数据。部署网关本节介绍适用于所有网关的安全控制。还应根据部署的网关类型,参考...【详细内容】
2022-06-14  祺印说信安    Tags:信息安全   点击:(42)  评论:(0)  加入收藏
没有网络安全,就没有国家安全。网络安全和保密防护,是机关单位日常工作中不可忽视的重要问题。尤其在涉密单位工作的人员,因工作性质特殊,不仅要了解非涉密网络的安全操作常识,更...【详细内容】
2022-06-14  青海普法    Tags:网络安全   点击:(37)  评论:(0)  加入收藏
前言最近整理了一些奇安信&华为&深信服大佬的课件资料+大厂面试课题,想要的可以私信自取,无偿赠送给粉丝朋友~ 一、什么是msfmsfvenom a Metasploit standalone payload gener...【详细内容】
2022-06-05  HonkerG  CSDN  Tags:Kali   点击:(208)  评论:(0)  加入收藏
[责编:姚茜琼][来源:智慧普法平台]...【详细内容】
2022-05-29    华声在线  Tags:网络安全法   点击:(23)  评论:(0)  加入收藏
站内最新
站内热门
站内头条