常用术语包括:
html(css、js、html):超文本标记语言,解释给浏览器的静态编程语言
HTTP/HTTPS协议:通讯标准,明文或密文
CMS(B/S):网站内容管理系统,常见的比如Discuz、DedeCMS、wordPress/ target=_blank class=infotextkey>WordPress等,针对CMS漏洞进行渗透测试
MD5: 加密算法,得到加密后的hash值
肉鸡、抓鸡、跳板:被控制的电脑称为肉鸡,控制过程叫抓鸡;如果直接攻击会暴露IP,此时通过已经拿下的电脑进行攻击,则称为跳板
一句话、小马、大马:比如 <?php eval($_POST[eastmount]); ?>,本身一句话木马是没有危害的,它通过预处理全局变量来执行POST参数
webshell、提权、后门:网站后门可称为webshell
源码打包、脱裤:源码打包和数据库脱裤都是常见的手段,但无法脱裤一定不去执行
嗅探、扫描、注入、上传、提权、rookit
0day、1day、nday
代码审计
安全分享及漏洞库网站推荐:
安全测试集相关网站推荐:
在线分析或沙箱平台推荐:
安全技术会议推荐:
安全学术会议推荐:
OWASP top 10 测试标准是安全招聘的常见问题,也是渗透测试的经典标准,详见参考文献2。
OWASP(开放式Web应用程序安全项目)的工具、文档、论坛和全球各地分会都是开放的,对所有致力于改进应用程序安全的人士开放,其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结了Web应用程序最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识。
注入injection:将不安全的命令发送给解析器,产生类似于SQL注入、NoSQL注入、OS注入和LDAP注入的缺陷。攻击者可以构造恶意数据通过注入缺陷的解析器执行没有权限的非预期命令或访问数据。
失效的身份认证:通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌,或者暂时或永久的冒充其他用户的身份。
敏感数据泄露:通常敏感信息包括密码、财务数据、医疗数据等,由于Web应用或API未加密或不正确的保护敏感数据,这些数据极易遭到攻击者利用。由于未加密的信息极易遭到破坏和利用,因此我们应该加强对敏感数据的保护,Web应用应该在传输数据、存储数据以及浏览器交互数据时进行加密,保证数据安全。
外部实体 XXE:XXE全称为XML External Entity attack,即XML外部实体注入攻击,早期或配置错误的XML处理器评估了XML文件外部实体引用,攻击者可以利用这个漏洞窃取URI文件处理器的内部文件和共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻击。
失效的访问控制:通过身份验证的用户,可以访问其他用户的相关信息。攻击者可以利用这个漏洞去查看未授权的功能和数据,如访问用户的账户、敏感文件、获取和正常用户相同的权限等。
安全配置错误:安全配置错误是比较常见的漏洞,由于操作者的不当配置,导致攻击者可以利用这些配置获取更高的权限,安全配置错误可以发生在各个层面,包含平台、web服务器、应用服务器、数据库、架构和代码。
跨站脚本攻击 XSS:当应用程序的网页中包含不受信任的、未经恰当验证、转义的数据,或使用HTML、JAVAScript的浏览器API更新现有网页时,就会出现XSS漏洞,跨站脚本攻击是最普遍的Web应用安全漏洞,甚至在某些安全平台都存在XSS漏洞。它会执行攻击者在浏览器中的脚本,并劫持用户会话,破坏网站或用户重定向到恶意站点,使用XSS甚至可以执行拒绝服务攻击。
不安全的反序列化:它可以导致远程代码执行、重放攻击、注入攻击或特权升级攻击。
使用含有已知漏洞的组件:组件(如库、框架或软件模块)拥有应用程序相同的权限,如果应用程序中含有已知漏洞,攻击者可以利用漏洞获取数据或接管服务器。同时,使用这些组件会破坏应用程序防御,造成各种攻击产生严重的后果。
不足的日志记录和监控:这个和等保有一定的关系,不足的日志记录和监控,以及事件响应缺失或无效的集成,使攻击者能够进一步攻击系统、保持持续性的或攻击更多的系统,以及对数据的不当操作。
渗透测试(Penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。 这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
换句话说,渗透测试是渗透人员在不同的位置(比如内网、外网)利用各种手段对某个特定网络进行测试,以发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。
渗透测试流程包括:
确定目标:目标包括网站、系统、网段等
信息收集:占渗透测试大部分时间,信息收集越全面后续的渗透越容易,包括IP、端口、协议、旁站、C段、whois、DNS、后台URL、CMS、身份、邮箱、社工等
漏洞探测:常见漏洞包括SQL注入、XSS、越权、文件上传、Bash、下载漏洞、文件包含、变量覆盖、代码执行、文件泄露等
漏洞验证:建议撰写POC,避免撰写EXP。(POC是指漏洞验证,英文为Proof of Concept ,表示一段漏洞证明的代码;EXP是指漏洞利用,全称Exploit,指利用系统漏洞进行攻击的动作;Payload是“有效载荷”,指成功exploit之后,真正在目标系统执行的代码或指令;Shellcode是Payload的一种,由于其建立正向/反向shell而得名)
编写报告
信息整理
获取所需
信息分析
三.环境配置
虚拟机应用配置
系统安装
HTTP协议
网站搭建配置
1.虚拟机应用配置
安装详见前文 十一,虚拟机VMware+Kali安装入门及Sqlmap基本用法”。
注意,虚拟机有个快照功能可以帮助我们迅速恢复之前的状态。
虚拟机网络配置在右下角位置。
如果想要虚拟机上网,通常我们会选择“Net模式”,让它自动获取IP即可。
也可以设置自定义模式。
如何在虚拟机中搭建网站,让外网能够访问呢?
选择“桥接模式”,直接连接物理网络,复制物理网络连接状态,此时在同一个网段进行访问。这里在虚拟机中搭建一个网站,其虚拟机IP地址为192.168.0.104,如下图所示。
此时物理机通过IP地址可以直接访问该虚拟机中搭建好的网站,注意端口号为99。
那么,又怎么通过外网访问呢?接着需要配置迅捷网络的路由器,点击“高级用户”->“虚拟服务器”映射IP。设置虚拟服务器,添加一个HTTP协议的服务器,IP地址为192.168.0.104,端口号为99。
此时,当外网访问本机物理IP地址时,就会跳转访问虚拟机中搭建的网站。其本机物理IP地址为182.46.195.40。
外网访问的最终结果如下图所示,也推荐大家搭建网站进行渗透测试。
PS:后续随着教程深入会分享如何搭建网站以及域名解析。
2.HTTP协议
HTTP(明文)和HTTPS(密文)
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。它是一种详细规定了浏览器和万维网服务器之间互相通信的规则,是万维网交换信息的基础,允许将HTML文档从Web服务器传送到Web浏览器。
HTTP协议是基于TCP/IP协议之上的应用层协议,它是一个客户端和服务器端请求和应答的标准。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。下图是HTTP协议的原理图,通常包括两部分:
HTTP客户端发起一个请求,建立一个到服务器指定端口的TCP连接。
HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器向客户端发回一个状态行,比如成功访问的状态码为“HTTP/1.1 200 OK”,同时返回响应消息,包括请求文件、错误消息、或者其它一些信息。
推荐文章:HTTP协议超级详解 - 爱文飞翔
HTTPS(全称Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS在HTTP的基础下加入SSL层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要SSL。HTTPS 存在不同于HTTP的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。如果你足够细心,你会发现现在很多大型互联网网站,如百度、淘宝、腾讯很早就已经把HTTP换成HTTPS了。
响应码很多目录扫描工具就是通过HTTP响应码来判断页面是否存在。200、302、403、404、500都是常见的响应码。
URL
在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址。
URL由三部分组成:资源类型、存放资源的主机域名、资源文件名;也可认为由4部分组成:协议、主机、端口、路径。URL的一般语法格式如下,方括号为可选项。
protocol :// hostname[:port] / path / [parameters][?query]#fragment
例如“
www.eastmount.com/admin/index.html”,某些情况下,它是伪静态网页,虽然看似HTML文件,但存在数据库交互。常见的动态网站编写脚本包括:
index.php
index.asp
index.jsp
HTTP Header
HTTP消息头是指在超文本传输协议( Hypertext Transfer Protocol ,HTTP)的请求和响应消息中,协议头部分的那些组件。HTTP消息头用来准确描述正在获取的资源、服务器或者客户端的行为,定义了HTTP事务中的具体操作参数。这里以Python获取消息头为例:
# -*- coding:utf-8 -*-
import urllib
import webbrowser as web
url = "http://www.baidu.com
content = urllib.urlopen(url)
print content.info() #头信息
print content.geturl() #请求url
print content.getcode() #http状态码
#保存网页至本地并通过浏览器打开
open("baidu.html","w").write(content.read())
web.open_new_tab("baidu.html")
该段调用调用urllib.urlopen(url)函数打开百度链接,并输出消息头、url、http状态码等信息,如下图所示。
一方面分析HTTP头对网站渗透非常重要;另一方面它也存在安全隐患,在PHP中通常会使用 $_SERVER[“HTTP_CLIENT_IP”] 或者 $_SERVER[“HTTP_X_FORWARDED_FOR”] 来获取IP。因此,可以通过修改HTTP头中的X-Forwarder-For:、client-ip:来进行攻击。例如:
突破服务器访问限制ip
HTTP头注入攻击
BurpSuite抓包分析
Burpsuite是用于攻击web应用程序的集成平台,包含了许多工具。Burpsuite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP 消息、持久性、认证、代理、日志、警报。通常利用Burpsuite抓包分析,寻找Web漏洞。
后续作者会结合Cracer教程深入讲解,也推荐大家阅读作者之前的文章:
三.Burp Suite工具安装配置、Proxy基础用法及暴库示例
GET传参和POST传参区别
采用GET方法,浏览器会与表单处理服务器建立连接,然后直接在一个传输步骤中发送所有的表单数据,浏览器会将数据直接附在表单的 action URL之后,两者之间用问号进行分隔。这种方法传递数据数据量较小,并且不安全。形如:
http://www.example.com/login?name=me&pwd=123456
采用POST方法,浏览器将会按照下面两步来发送数据。首先,浏览器将与 action属性中指定的表单处理服务器建立联系,一旦建立连接之后,浏览器就会按分段传输的方法将数据发送给服务器。在服务器端,一旦POST样式的应用程序开始执行时,就应该从一个标志位置读取参数,而一旦读到参数,在应用程序能够使用这些表单值以前,必须对这些参数进行解码。用户特定的服务器会明确指定应用程序应该如何接受这些参数。对那些有许多字段或是很长的文本域的表单来说,就应该采用 POST 方法来发送。同时,POST方法的安全性更高。形如:
http://www.example.com/login
HTTP请求方法还包括:GET、POST、OPTIONS、PUT、MOVE、DELETE、TRACE。下图采用BurpSuite抓取POST请求参数。
注意,错误配置HTTP方法可能导致的安全事件。服务器存在允许PUT方式和MOVE方式,这时我们可以通过PUT方式传入一个webshell.txt,然后通过MOVE方式结合解析漏洞很快地拿到网站的Webshell。
WAF
Web应用防护系统(Web Application Firewall,简称 WAF)也称为:=网站应用级入侵防御系统。Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
推荐作者前文:[网络安全自学篇] 三十三.文件上传漏洞之绕狗一句话原理和绕过安全狗(六)
防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。
防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。
安全狗以SECaaS安全即为用户提供一站式的云安全产品与服务,包括(云)主机安全、WEB应用安全、网站防篡改、抗DDoS云服务、安全大数据态势感知等。其基本功能包括:
网站安全狗: 面向网站安全,包括网马扫描及查杀(自有引擎,只针对网页木马);网马主动防御功能(可主动拦截网马上传和访问的动作);防SQL注入功能、防XSS跨站攻击功能;防盗链防下载;以及防止CC攻击。
服务器安全狗: 面向服务器安全的,包括基于内核驱动的抗DDOS攻击、抗ARP攻击、抗WEB CC攻击功能;基于内核驱动的文件系统主动保护功能(可防止文件被篡改、保护系统文件);基于内核驱动的服务器其他方面的主动防御功能(系统账号、注册表、远程登陆等方面的保护);以及服务器全面优化及体检功能。
安全狗服云: 基于云端的监控和保护。安全狗服云利用云计算技术,为用户构造一个全面的服务器和网站的监控和防护平台,利用这个平台,用户可以做到24小时的服务器健康监控、资源监控和资源告警;24小时的服务器可用性监控;网站安全云扫描,发现网站存在的各种漏洞;基于云端技术的网站防篡改功能,保障网站文件不被非法修改。
<?php
$a='b';
$$a='assert';
$b($_POST[fox]);
?>
常见网站搭建包括ASP网站搭建、Java网站SSH搭建、PHP网站搭建 ,比如phpStudy、WAMP/LAMP。参考作者文章:phpStudy搭建Upload-labs靶场及CTF题PHP XAMPP配置PHP环境和Apache80端口被占用解决方案
它的优势是可以切换各种PHP版本。
IIS网站搭建也是非常基础的知识,这里推荐大家阅读 “[网络安全自学篇] 四十二.DNS欺骗和钓鱼网站原理详解及漏洞还原” 文章实验部分。
一个聪明的安全工程师,是需要熟悉常见的CMS框架的。
内容管理系统(content management system,CMS)是一种位于WEB 前端(Web 服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。这里指的“内容”可能包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布到Internet、Intranet以及Extranet网站的信息。
常见CMS如下:
企业建站系统:MetInfo(米拓)、蝉知、SiteServer CMS(.net平台)等
B2C商城系统:商派shopex、ecshop、hishop、xpshop等
门户建站系统:DedeCMS(织梦,PHP+MySQL)、帝国CMS(PHP+mysql)、PHPCMS、动易、cmstop,dianCMS(易点CMS,.net平台)等
博客系统:wordpress、Z-Blog等
论坛社区:discuz、phpwind、wecenter等
问答系统:Tipask、whatsns等
知识百科系统:HDwiki
B2B门户系统:destoon、B2Bbuilder、友邻B2B等
人才招聘网站系统:骑士CMS、PHP云人才管理系统
房产网站系统:FangCms等;
在线教育建站系统:kesion(科汛,ASP)、EduSoho网校
电影网站系统:苹果cms、ctcms、movcms等
小说文学建站系统:JIEQI CMS
写到这里,上部分网络安全基础知识就介绍完毕,接下来将分享windows基础知识及DOS命令。上部分主要的知识点包括:
了解常见术语
熟悉渗透测试流程
熟练操作虚拟机配置及系统安装
学会搭建网站测试环境
掌握常见CMS框架
熟悉网络基础知识,包括HTTP、协议、GET和POST等
该部分主要分为三部分内容:
系统目录、服务、端口、注册表
黑客常用的DOS命令及批处理
powershell
1. 系统目录、服务、端口、注册表
系统目录
熟悉系统目录方便我们进行渗透操作。包括系统自身创建的目录、程序或人为创建的目录。比较重要的几个目录包括Windows、Program files/Program files(x86)、ProgramData、用户等。
(1) Windows
Windows系统目录指操作系统的主要文件存放的目录。目录中的文件直接影响到系统是否正常工作,了解这些目录的功能,对使用系统会有很大的帮助。
其中的核心目录包括System32,该文件夹下config/SAM是存储加密过的系统帐号的密码文件。该文件被系统占用无法打开,但PE系统下能操作管理员密码,也可以通过lc5、彩虹表、PwDum7.exe获取。
PwDum7.exe软件读取SAM文件,此时为密文。
pass.exe软件获取密码“123.com”,必须管理员权限才能读取。
另一个核心文件为WindowsSystem32driversetchosts文件,相当于本地的小型DNS,定义了域名和IP。
打开如下图所示:
注意,hosts文件的优先级高于DNS服务器。
如果我们直接ping百度,它会返回百度的真实IP地址(115.239.210.27),如下图所示。
但如果在hosts文件中增加域名解析记录,则它会优先ping本地hosts文件中的记录(1.1.1.1)。如果你的hosts文件被污染,则就是DNS欺骗或钓鱼网站,
详细推荐作者前文:四十二.DNS欺骗和钓鱼网站原理详解及漏洞还原。
域名解析(Domain Name Resolution) 是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
例如,当企业员工电脑访问该购物网站时,会去DNS服务器进行解析;然后找到地址2.2.2.2,并返回给企业员工电脑;最后访问该购物Web服务器,假设是IIS,它会将购物网站的首页返回给你的浏览器。
(2) Program files/Program files(x86)
操作系统各种程序默认安装到的目录,包括32位和64位。其文件夹包括:Common Files(提供程序中的一些共享配置文件)、 Internet Explorer(网络浏览器)、NetMeeting(网络聊天软件)、Microsoft office(办公软件集合)、Windows Media Player(媒体播放器)等。
比如腾讯QQ、微信通讯软件。
(3) Perflogs
它是Windows系统的日志信息,如磁盘扫描错误信息、测试信息等,该目录不建议删除,删除反而会重新生成并降低系统速度。
(4) ProgramData
C盘的一个系统文件夹(隐藏),它是公用的被创建文件夹或文件存放的地方,由创建者完整控制,程序运行或启动生成的临时文件通常存放该目录,电脑病毒也比较喜欢感染该目录。
(5) 用户
存放系统账号相关的文件或文件夹。在Web渗透中该目录有什么用呢?当我们提取某个服务器后,通常会去查询该目录中存在的用户名,该目录是信息深入收集所必须查找的目录,包括桌面、我的文档等敏感信息或文件。
比如QQ的文件接收信息。如果存在敏感文件,是不是就会泄露了相关信息。
服务
服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序。如果某个服务未打开,你就不能享受对应这个服务的功能。
在运行中输入“services.msc”打开服务。
显示如下图所示,可以打开描述查看具体信息。
比如虚拟机的网络服务,需要打开才能让虚拟机连接上网。
比如虚拟机的网络服务,需要打开才能让虚拟机连接上网。
除了计算机内置的服务,我们软件也需要注册相关的服务,包括后面要讲得metasploit安装后面的软件,也需要安装相关的服务。
服务决定了计算机的一些功能是否被启用,不同的服务对应的功能不同,通过计算机提供的服务可以有效地实现资源共享。常见的服务包括:
Web服务:搭建网站
DNS服务:用于域名解析
DHCP服务:用于客户机配置可用IP
邮件服务:发送邮件
Telnet服务:Windows远程连接
SSH服务:通过ssh服务连接该主机
FTP服务:文件传输协议服务,为互联网提供文件存储和访问
SMB服务:用于Web连接和客户端与服务器之间的信息沟通
服务是可以设置“自动”(启动)、“手动”、“禁用”三种类型,后面用到时会具体讲解。
在CMD中输入 “netstat -an” 显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接(IP+端口)正在运作。
Cracer安全工具包提供了各种工具,推荐大家尝试学习。
比如利用Hydra工具进行Telnet远程服务器密码爆破,如下图所示,也推荐大家阅读前面作者的文章 “三十八.hack the box渗透之BurpSuite和Hydra密码爆破及Python加密Post请求(二)”。如果想提高爆破成功率,字典和社工(目标生日、姓名)非常重要。
端口
(1) 端口的作用
我们知道,一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎么区分不同的网络服务呢?显然不能只靠IP地址,因为IP地址与网络服务的关系是一对多的关系,实际上是通过“IP地址+端口号”来区分不同的服务的。
需要注意的是,端口并不是一一对应的。比如你的电脑作为客户机访问一台WWW服务器时,WWW服务器使用“80”端口与你的电脑通信,但你的电脑则可能使用“3456”这样的端口。如下图所示:
(2) 端口的分类
端口共1-65535号,知名端口范围从0到1023,这些端口号一般固定分配给一些服务,大家尽量不要使用。比如21端口分配给FTP服务,25端号分配给SMTP邮件传输协议服务,80端口分配给HTTP服务,135端口分配给RPC远程过程调用服务等等。
动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序,在关闭程序进程后,就会释放所占用的端口号。注意,端口冲突就不能正常工作。
同时,动态端口号也常常被病毒木马程序所利用,如冰河默认连接端口号是7626、WAY 2.4连接端口号是8011、Netspy 3.0连接端口号是7306、YAI病毒连接端口号是1024等等。
(3) 常见的端口
4)黑客通过端口可以干什么
信息收集
目标探测
服务判断
系统判断
角色分析
注册表
注册表(Registry,繁体中文版Windows称之为登录档)是微软Windows系统中的一个重要的数据库,用于存储系统和应用程序的设置信息。早在Windows 3.0退出OLE技术的时候,注册表就已经出现。随后推出的Windows NT是第一个从系统级别广泛使用注册表的操作系统。但是,从Microsoft Windows 95开始,注册表才真正成为Windows用户经常接触的内容,并在其后的操作系统中继续沿用至今。在安全领域,注册表是非常强大且常用的。
(1) 打开注册表
运行中输入“regedit”。
打开如下图所示,包括五个根键,每个键值控制的内容不一样。
(2) 注册表的作用
注册表是Windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行,从而在整个系统中起着核心作用。这些作用包括了软硬件的相关配置和状态信息,比如注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。
如果我们的电脑中了木马,怎么清除对应的木马呢?
第一种方法,开机自启动是植入木马常用的操作,进行查找及清除。
在运行中输入“msconfig”,可以查看开机自启动程序和服务,如下图所示,图中“计算器”就是之前另一篇文章植入的“木马”。当木马设置成开机自启动服务时,是非常可怕的一件事,参考作者前文。
三十六.WinRAR漏洞复现(CVE-2018-20250)及恶意软件自启动劫持
四十三.木马原理详解、远程服务器IPC$漏洞及木马植入实验
如果电脑被植入木马,我们可以通过其位置找到对应的木马并清除,下图显示的是VBS木马。
如果程序未放置在开机自启动的位置,而是插入注册表中,又怎么清除呢?
第二种方法,通过注册表查找并清除木马。
通过查找注册表的内容,然后再获取键值的位置并进行清除。
第三种方法,通过网络远程连接查询和外部交互的IP地址和端口。
输入“netstat -an” 或 “netstat -o”,显示如下图所示。如果每当我们开机,它就会自动连接远程某个地址和端口,说明我们中了木马且肉鸡自动上线。
(3) 注册表结构
HKEY_CLASSES_ROOT
管理文件系统。根据在Windows中安装的应用程序的扩展名,该根键指明其文件类型的名称,相应打开该文件所要调用的程序等等信息。
HKEY_CURRENT_USER
管理系统当前的用户信息。在这个根键中保存了本地计算机中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码,在用户登录Windows时,其信息的项拷贝到HKEY_CURRENT_USER中。
HKEY_LOCAL_macHINE
管理当前系统硬件配置。在这个根键中保存了本地计算机硬件配置数据,此根键下的子关键字包括在SYSTEM.DAT中,用来提供HKEY_LOCAL_MACHINE所需的信息,或者在远程计算机中可访问的一组键中。
HKEY_USERS
管理系统的用户信息。在这个根键中保存了存放在本地计算机口令列表中的用户标识和密码列表,同时每个用户的预配置信息都存储在HKEY_USERS根键中,HKEY_USERS是远程计算机中访问的根键之一。
HKEY_CURRENT_CONFIG
管理当前用户的系统配置。在这个根键中保存着定义当前用户桌面配置如显示器等的数据,该用户使用过的文档列表(MRU)、应用程序配置和其他有关当前用户的Windows中文版安装的信息。
(4) 入侵中常用的注册表
arp -a:显示ARP缓存的命令,它可以显示电脑上所有的ARP缓存条目。ARP协议是将IP地址映射为MAC地址的协议,其在协议上使用ARP请求及ARP应答报文来实现。
net view:查看局域网内其他计算机名称
telnet:连接远程终端。
shutdown -s -t 180 -c “你被黑了,系统马上关机”:设置关机,如果需要取消,则输入“shutdown -a”
cd:切换目录。输入“cd …”表示返回上一层目录,“cd Software”表示去到当前目录,“D:”表示切换至D盘。
start www.baidu.com:打开网页
start 123.txt:打开123.txt文件,也可以使用“notepad 123.txt”
del 123.txt:删除文件,删除之后再次打开则会提示找不到该文件。
copy con c:abc.txt:创建abc.txt文件,并填写内容,输入“Ctrl+Z+回车”创建成功。
type abc.txt:在CMD中打开文件内容,渗透中经常使用。
增加的C盘如下图所示,并且能访问或修改相关的文件。
net user:查看有哪些用户。调用“net user”查看计算机当前用户。
net localGroup administrators 用户名 /add:把用户添加到管理员中,使其具有管理员权限,注意administrator后加s用复数。我们将“xiao”用户添加到管理员中。
net user 账户名:查看账户的属性。输入“net user xiao”,可以看到其为管理员组。
C:Users\xiuzhang>net user
\DESKTOP-KUPRQ86 的用户帐户
-------------------------------------------------------------------------------
Administrator DefaultAccount Guest
WDAGUtilityAccount xiuzhang
命令成功完成。
C:Users\xiuzhang>net user xiuzhang
用户名 xiuzhang
全名
注释
用户的注释
国家/地区代码 000 (系统默认值)
帐户启用 Yes
帐户到期 从不
上次设置密码 2020/2/3 12:28:17
密码到期 从不
密码可更改 2020/2/3 12:28:17
需要密码 No
用户可以更改密码 Yes
允许的工作站 All
登录脚本
用户配置文件
主目录
上次登录 2020/2/20 11:33:08
可允许的登录小时数 All
本地组成员 *Administrators
全局组成员 *None
命令成功完成。
C:Users\xiuzhang>
-net localgroup:查看本地组。
请大家注意,“Remote Desktop Users”为远程桌面组,绕过安全狗可能会遇到该组。下图展示了将其添加到远程桌面组的代码“net localgroup “remote desktop users” xiao /add”。
net user guest /active:yes:激活guest用户。
net user guest 12345:用guest用户登录后将密码改为“12345”。
服务器提权不建议大家创建用户登录,尽量避免管理员看到新增用户,可以启用guest并创建密码,再增加到管理员组或远程桌面组。相对比直接创建用户更隐蔽,最后会进行还原与痕迹清除。所以,安全防火墙和日志是非常重要的安全保护数段。
netstart -a:查看开启了哪些端口,常用netstat -an。
netstat -n:查看端口的网络连接情况。
netstat -v:查看正在进行的工作。
netstat -an:显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接(IP+端口)正在运作。
tasklist:查看系统进程。调用“taskkill /im cmd.exe”可以结束进程。
netsh:网络工具。常用来创建无线,比如“netsh wlan set hostednetwork mode=allow ssid=cc key=1122334455”。
AT命令已启用,改用schtasks.exe。
at /delete:停止所有计划任务,用参数/yes则不需要确认就直接停止。
at id号 /delete:停止某个已注册的计划任务。
at:查看所有的计划任务。
attrib:文件名(目录名)查看某文件(目录)的属性。
attrib 文件名 -A -R -S -H 或 +A +R +S +H:去掉或添加某文件的存档,只读、系统、隐藏属性;用+则是添加为某属性。
批处理文件是DOS命令的组合文件,写在批处理文件的命令会被逐一执行,后缀名为“.bat”。比如创建一个批处理文件“x.bat”,包含3条DOS命令。
DIR查看已经已经创建成功。
本地C盘的批处理文件“x.bat”如果被执行或加载到自启动项,则会执行该命令。
可以看到,创建的管理员用户“cr”已经存在,后续会执行关机。
Powershell在安全领域也是非常重要的技能,推荐大家阅读作者两篇前文。十九.Powershell基础入门及常见用法(一)二十.Powershell基础入门及常见用法(二)
Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本。
五.总结
写到这里,Cracer学习视频第一篇文章就介绍完毕,主要包括两部分内容:
第一部分讲解网络安全基础知识,包括:常见术语、渗透测试流程、虚拟机配置及系统安装、搭建网站测试环境、常见CMS框架、网络基础知识,包括HTTP、协议、GET和POST等。
第二部分讲解Windows基础知识及DOS命令,包括计算机目录、注册表、计算机服务名称、常用端口及对应服务、常用黑客DOS命令、Powershell等。