当您阅读到该篇文章时,作者已经将“网络安全自学篇”设置成了收费专栏,首先说声抱歉。感谢这一年来大家的阅读和陪伴,这100篇安全文章记录了自己从菜鸡到菜鸟的成长史,该部分知识也花了很多精力去学习和总结。由于在外读书且需要养娃,所以按最低价9.9元设置成了收费专栏,赚点奶粉钱,感谢您的抬爱。当然,如果您还是一名在读学生或经济拮据,可以私聊我给你每篇文章开白名单,也可以去github下载对应的免费文章,更希望您能进步,一起加油喔!
接下来我会接着之前的内容继续分享,“网络安全提高班”新的100篇文章即将开启,包括Web渗透、内网渗透、靶场搭建、CVE复现、攻击溯源、实战及CTF总结,它将更加聚焦,更加深入,也是作者的慢慢成长史。换专业确实挺难的,Web渗透也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~
本文是“网络安全提高篇”第二篇文章,将带领大家了解Metasploit技术,并结合作者之前的漏洞利用及WannaCry逆向经验总结。同时本文学习了徐焱老师他们的《Web安全攻防渗透测试实战指南》,在此感谢。具体内容包括:
作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~
声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。
提高篇:(自学系列100篇目录放在文章末尾)
[网络安全提高班] 一〇一.网络空间安全普及和医疗数据安全防护总结
[网络安全提高篇] 一〇二.Metasploit技术之基础用法万字详解及MS17-010漏洞复现
Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发、代码审计、Web应用程序扫描、社会工程等。
Metasploit框架(Metasploit Framework,MSF)是一个开源工具,旨在方便渗透测试,它是由Ruby程序语言编写的模板化框架,具有很好的扩展性,便于渗透测试人员开发、使用定制的工具模板。Metasploit已成为当前信息安全与渗透测试领域最流行的术语。
Metasploit可向后端模块提供多种用来控制测试的接口,如控制台、Web、CLI。推荐使用控制台接口,通过控制台接口可以访问和使用所有Metasploit的插件,如Payload、利用模块、Post模块等。Metasploit还有第三方程序的接口,比如Nmap、SQLMap等,可以直接在控制台接口使用。
当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁,这是因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有Metasploit用户。
这篇文章主要以Kali系统为基础,该操作系统预装了Metasploit,访问该界面,需要在命令行下输入 msfconsole
,MSF的启动界面如下图所示。
msfconsole
在使用Kali操作系统时因注意及时更新资源,就像平时更新收集APP一样。更新命令主要包括:
apt-get update
只更新软件包的索引源,作用是同步源的软件包的索引信息,从而进行软件更新
apt-get upgrade
升级系统上安装的所有软件包
apt-get dist-upgrade
升级整个Linux系统
MSF框架由多个模块组成,各个模块的功能如下,这也是Web渗透的基础术语。
(1) Auxiliaries:辅助模块
该模块不会直接在测试者和目标主机之间建立访问,它们只负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试。
(2) Exploit:漏洞利用模块
漏洞利用是指由渗透测试者利用一个系统、应用或服务中的安全漏洞进行的攻击行为。流行的渗透攻击技术包括:
其中包含攻击者或渗透人员针对系统中的漏洞而设计的各种POC验证程序,用于破坏系统安全性的攻击代码,每个漏洞都有相应的攻击代码。
(3) Payload:攻击载荷模块
攻击载荷是我们期望目标系统在被渗透攻击之后完成实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码,在Metasploit框架中可以自由地选择、传送和植入。攻击载荷也可能是简单地目标操作系统上执行一些命令,如添加用户账号等。
(4) Post:后期渗透模块
该模块主要用于取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、实施跳板攻击等。
(5) Encoders:编码工具模块
该模块在渗透测试中负责免杀,以防止被杀毒软件、防火墙、IDS及类似的安全软件检测出来。
使用MSF渗透测试时,可以综合使用以上模块,对目标系统进行侦查并发动攻击,大致的步骤如下所示:
注意,实战才是最好的老师,希望大家了解MSF基础用法后,在一些靶场或授权网站上进行渗透测试。同时,为了方便大家理解渗透流程,作者回顾下之前介绍的攻击链。攻击链通常分为七个阶段:
扫描和收集信息是渗透测试的第一步,其主要目标是尽可能多地发现有关目标机器的信息。获取的信息越多,渗透的概率越大。该步骤主要的关注点是:
辅助模块是Metasploit的内置模块。
第一步,利用search命令搜索有哪些可用端口模块。
search portscan
从下图中可以看到可用的扫描器列表,其中包含了各种扫描类型。
第二步,以TCP扫描模块为例。输入use命令使用该漏洞利用模块,然后show options查看需要设置的参数。
use auxiliary/scanner/portscan/tcp
show options
输入命令时,按下tab键会自动补齐,输出结果如下图所示。在Required列中,被标记为yes的参数必须包含实际的值,其中:
第三步,使用set命令设置相应参数,查看目标主机开放端口。
当然,也可以使用unset命令取消某个参数值的设置。这里的目标主机是XP系统,其IP地址为 192.168.44.135
。
具体命令如下,可以看到目标主机开了 135、139、445
三个端口。
set RHOSTS 192.168.44.135
set PORTS 1-500
set THREADS 20
show options
run
输出结果如下图所示。还有两个可选命令,setg和unsetg,二者用于在msfconsole中设置或取消设置全局性的参数值,从而避免重复输入相同的值。
在扫描目标机器上运行的服务时,有多种基于服务的扫描技术可供选择,例如VNC、FTP、SMB等,只需执行特定类型的扫描就可以发现服务。
通过 search
命令搜索 scanner
可以发现大量的扫描模块,读者可以尝试不同的辅助扫描模块,了解其功能。使用步骤和使用端口扫描模块时基本相同,后续文章也会陆续介绍不同的用法。
常用的扫描模块包括:
(1) 端口扫描
(2) SMB扫描
(3) SSH扫描
(4) MSSQL扫描
(5) MySQL扫描
(6) SMTP扫描
(7) 其他
在Metasploit中同样可以使用Nmap扫描,Nmap不仅可以用来确定目标网络上计算机的存活状态,而且可以扫描计算机的操作系统、开放端口、服务等。熟练掌握Nmap的用法可以极大地提高个人的渗透测试技术。
实际上,在msf命令提示符下输入nmap,就可以显示Nmap提供的扫描选项列表,如下图所示:
我们要获取目标主机的操作系统,则输入 nmap -O -Pn/-p0 URI
命令,其中Pn和-p0参数是不使用ping的方式,而假定所有主机系统都是活动的,可以穿透防火墙,也可以避免防火墙发现。运行如下图所示:
nmap -O -Pn 192.168.44.135
输出结果如下图所示,可以看到目标主机的操作系统如下,后续作者会详细写一篇文章介绍Nmap的用法。
每个操作系统都会存在各种漏洞,像微公司会快速针对漏洞进行打补丁,供用户提供更新。而没有公布补丁的Bug就是所谓的0day漏洞,其危害极大,也很受黑客和安全人员的喜爱。
实际上,像微软这样的公司都会针对自己的产品定期发布补丁,但是否下载取决于用户自身。由于安全意识薄弱的个人或中小企业往往会忽略这些工作,打补丁可能会影响平时的工作,这种1day漏洞所造成的伤害也非常严重。
下面我们对Windows XP系统进行MS17-010漏洞的复现,前面我通过四篇文章逆向WannaCry时,详细复现过该漏洞,希望大家喜欢。
2017年5月12日,WannaCry蠕虫通过永恒之蓝MS17-010漏洞在全球范围大爆发,感染大量的计算机。WannaCry勒索病毒全球大爆发,至少150个国家、30万名用户中招,造成损失达80亿美元,已影响金融、能源、医疗、教育等众多行业,造成严重的危害。
WannaCry是一种“蠕虫式”勒索病毒软件,由不法分子利用NSA泄露方程式工具包的危险漏洞“EternalBlue”(永恒之蓝)进行传播。该蠕虫感染计算机后会向计算机中植入敲诈者病毒,导致电脑大量文件被加密。
WannaCry利用Windows系统的SMB漏洞获取系统的最高权限,该工具通过恶意代码扫描开放445端口的Windows系统。被扫描到的Windows系统,只要开机上线,不需要用户进行任何操作,即可通过SMB漏洞上传WannaCry勒索病毒等恶意程序。
WannaCry利用永恒之蓝漏洞进行网络端口扫描攻击,目标机器被成功攻陷后会从攻击机下载WannaCry蠕虫进行感染,并作为攻击机再次扫描互联网和局域网的其他机器,行成蠕虫感染大范围超快速扩散。其核心流程如下图所示:
WannaCry勒索病毒主要行为是传播和勒索。
实验环境:
实验工具:
实验步骤:
切记、切记、切记:实验复现过程中必须在虚拟机中完成,运行之前关闭虚拟机Win7文件共享,真机上一旦被感染你就真的只能想哭了(wannacry)。同时,该实验比上一篇文章精简很多,更推荐该方法。
第一步,保证攻击机和受害机相互通讯,均在同一个局域网中。
第二步,扫描靶机是否开启445端口。
第三步,打开msfconsole并查询MS17-010漏洞模块。
这里有各种MS17-010漏洞版本,我们根据目标系统选择编号为3的版本。推荐读者看看NSA泄露的方程式工具包,其中永恒之蓝(eternalblue)就是著名的漏洞。
第四步,利用永恒之蓝漏洞并设置参数。
通过 show options
可以查看我们设置的参数值。
注意,这里Win7和Win XP系统设置略有区别。如果用Win7的模块去攻击XP系统,会造成计算机重启,攻击失败,如下图所示。
Windows XP设置的exp如下:
运行成功结果如下图所示:
第五步,成功获取Windows系统管理员权限。
第六步,在目标主机上创建文件,尝试控制目标。
cd ..
# 创建文件夹
mkdir hacker
# 访问目录
dir
cd hacker
# 创建文件并写入内容
echo helloworld>test.txt
# 查看目标系统的基本信息
sysinfo
第七步,上传WannaCry。再次强调,虚拟机中运行该实验,并且关闭文件共享功能,同时蠕虫和漏洞利用分析是为了帮助大家了解原理进行防御。
运行病毒程序后的界面如下图所示,已经成功被勒索。再次强调,所有代码必须在虚拟机中执行,并且关闭文件共享。
WannaCry蠕虫加密系统中的文件,被加密的文件后缀名统一修改为“.WNCRY”。
至此,我们已经成功利用了MS17-010漏洞实现入侵,其防御常见的措施如下:
由于WannaCry等勒索病毒主要通过445端口入侵计算机,关闭的方法如下:
实验在虚拟机中进行,也需要关闭共享文件夹功能,如下图所示。
写到这里,这篇文章就介绍完毕,希望您喜欢,本文主要是学习徐焱老师他们的《Web安全攻防渗透测试实战指南》,同时结合作者之前的漏洞利用及WannaCry逆向经验总结。
这篇文章中如果存在一些不足,还请海涵。作者作为网络安全初学者的慢慢成长路吧!希望未来能更透彻撰写相关文章。同时非常感谢参考文献中的安全大佬们的文章分享,感谢师傅、师兄师弟、师姐师妹们的教导,深知自己很菜,得努力前行。
欢迎大家讨论,是否觉得这系列文章帮助到您!任何建议都可以评论告知读者,共勉。
2020年8月18新开的“娜璋AI安全之家”,主要围绕Python大数据分析、网络空间安全、人工智能、Web渗透及攻防技术进行讲解,同时分享CCF、SCI、南核北核论文的算法实现。娜璋之家会更加系统,并重构作者的所有文章,从零讲解Python和安全,写了近十年文章,真心想把自己所学所感所做分享出来,还请各位多多指教,真诚邀请您的关注!谢谢。
(By:Eastmount 2021-02-26 夜于武汉 http://blog.csdn.net/eastmount/ )
参考文章如下,感谢这些大佬。
自学篇(建议直接跳转到正文):
[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例
[网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记
[网络安全自学篇] 三.Burp Suite工具安装配置、Proxy基础用法及暴库示例
[网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密
[网络安全自学篇] 五.IDA Pro反汇编工具初识及逆向工程解密实战
[网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向
[网络安全自学篇] 七.快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
[网络安全自学篇] 八.Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
[网络安全自学篇] 九.社会工程学之基础概念、IP获取、IP物理定位、文件属性
[网络安全自学篇] 十.论文之基于机器学习算法的主机恶意代码
[网络安全自学篇] 十一.虚拟机VMware+Kali安装入门及Sqlmap基本用法
[网络安全自学篇] 十二.Wireshark安装入门及抓取网站用户名密码(一)
[网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
[网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一)
[网络安全自学篇] 十五.Python攻防之多线程、C段扫描和数据库编程(二)
[网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站暴库防护
[网络安全自学篇] 十七.Python攻防之构建Web目录扫描器及ip代理池(四)
[网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
[网络安全自学篇] 十九.Powershell基础入门及常见用法(一)
[网络安全自学篇] 二十.Powershell基础入门及常见用法(二)
[网络安全自学篇] 二十一.GeekPwn极客大赛之安全攻防技术总结及ShowTime
[网络安全自学篇] 二十二.Web渗透之网站信息、域名信息、端口信息、敏感信息及指纹信息收集
[网络安全自学篇] 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
[网络安全自学篇] 二十四.基于机器学习的恶意代码识别及人工智能中的恶意代码检测
[网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防御初探
[网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用
[网络安全自学篇] 二十七.Sqlmap基础用法、CTF实战及请求参数设置(一)
[网络安全自学篇] 二十八.文件上传漏洞和Caidao入门及防御原理(一)
[网络安全自学篇] 二十九.文件上传漏洞和IIS6.0解析漏洞及防御原理(二)
[网络安全自学篇] 三十.文件上传漏洞、编辑器漏洞和IIS高版本漏洞及防御(三)
[网络安全自学篇] 三十一.文件上传漏洞之Upload-labs靶场及CTF题目01-10(四)
[网络安全自学篇] 三十二.文件上传漏洞之Upload-labs靶场及CTF题目11-20(五)
[网络安全自学篇] 三十三.文件上传漏洞之绕狗一句话原理和绕过安全狗(六)
[网络安全自学篇] 三十四.Windows系统漏洞之5次Shift漏洞启动计算机
[网络安全自学篇] 三十五.恶意代码攻击溯源及恶意样本分析
[网络安全自学篇] 三十六.WinRAR漏洞复现(CVE-2018-20250)及恶意软件自启动劫持
[网络安全自学篇] 三十七.Web渗透提高班之hack the box在线靶场注册及入门知识(一)
[网络安全自学篇] 三十八.hack the box渗透之BurpSuite和Hydra密码爆破及Python加密Post请求(二)
[网络安全自学篇] 三十九.hack the box渗透之DirBuster扫描路径及Sqlmap高级注入用法(三)
[网络安全自学篇] 四十.phpMyAdmin 4.8.1后台文件包含漏洞复现及详解(CVE-2018-12613)
[网络安全自学篇] 四十一.中间人攻击和ARP欺骗原理详解及漏洞还原
[网络安全自学篇] 四十二.DNS欺骗和钓鱼网站原理详解及漏洞还原
[网络安全自学篇] 四十三.木马原理详解、远程服务器IPC$漏洞及木马植入实验
[网络安全自学篇] 四十四.Windows远程桌面服务漏洞(CVE-2019-0708)复现及详解
[网络安全自学篇] 四十五.病毒详解及批处理病毒制作(自启动、修改密码、定时关机、蓝屏、进程关闭)
[网络安全自学篇] 四十六.微软证书漏洞CVE-2020-0601 (上)Windows验证机制及可执行文件签名复现
[网络安全自学篇] 四十七.微软证书漏洞CVE-2020-0601 (下)Windows证书签名及HTTPS网站劫持
[网络安全自学篇] 四十八.Cracer第八期——(1)安全术语、Web渗透流程、Windows基础、注册表及黑客常用DOS命令
[网络安全自学篇] 四十九.Procmon软件基本用法及文件进程、注册表查看
[网络安全自学篇] 五十.虚拟机基础之安装XP系统、文件共享、网络快照设置及Wireshark抓取BBS密码
[网络安全自学篇] 五十一.恶意样本分析及HGZ木马控制目标服务器
[网络安全自学篇] 五十二.Windows漏洞利用之栈溢出原理和栈保护GS机制
[网络安全自学篇] 五十三.Windows漏洞利用之Metasploit实现栈溢出攻击及反弹shell
[网络安全自学篇] 五十四.Windows漏洞利用之基于SEH异常处理机制的栈溢出攻击及shell提取
[网络安全自学篇] 五十五.Windows漏洞利用之构建ROP链绕过DEP并获取Shell
[网络安全自学篇] 五十六.i春秋老师分享小白渗透之路及Web渗透技术总结
[网络安全自学篇] 五十七.PE文件逆向之什么是数字签名及Signtool签名工具详解(一)
[网络安全自学篇] 五十八.Windows漏洞利用之再看CVE-2019-0708及Metasploit反弹shell
[网络安全自学篇] 五十九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及shell深度提权
[网络安全自学篇] 六十.Cracer第八期——(2)五万字总结Linux基础知识和常用渗透命令
[网络安全自学篇] 六十一.PE文件逆向之数字签名详细解析及Signcode、PEView、010Editor、Asn1View等工具用法(二)
[网络安全自学篇] 六十二.PE文件逆向之PE文件解析、PE编辑工具使用和PE结构修改(三)
[网络安全自学篇] 六十三.hack the box渗透之OpenAdmin题目及蚁剑管理员提权(四)
[网络安全自学篇] 六十四.Windows漏洞利用之SMBv3服务远程代码执行漏洞(CVE-2020-0796)复现及详解
[网络安全自学篇] 六十五.Vulnhub靶机渗透之环境搭建及JIS-CTF入门和蚁剑提权示例(一)
[网络安全自学篇] 六十六.Vulnhub靶机渗透之DC-1提权和Drupal漏洞利用(二)
[网络安全自学篇] 六十七.WannaCry勒索病毒复现及分析(一)Python利用永恒之蓝及Win7勒索加密
[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析
[网络安全自学篇] 六十九.宏病毒之入门基础、防御措施、自发邮件及APT28样本分析
[网络安全自学篇] 七十.WannaCry勒索病毒复现及分析(三)蠕虫传播机制分析及IDA和OD逆向
[网络安全自学篇] 七十一.深信服分享之外部威胁防护和勒索病毒对抗
[网络安全自学篇] 七十二.逆向分析之OllyDbg动态调试工具(一)基础入门及TraceMe案例分析
[网络安全自学篇] 七十三.WannaCry勒索病毒复现及分析(四)蠕虫传播机制全网源码详细解读
[网络安全自学篇] 七十四.APT攻击检测溯源与常见APT组织的攻击案例
[网络安全自学篇] 七十五.Vulnhub靶机渗透之bulldog信息收集和nc反弹shell(三)
[网络安全自学篇] 七十六.逆向分析之OllyDbg动态调试工具(二)INT3断点、反调试、硬件断点与内存断点
[网络安全自学篇] 七十七.恶意代码与APT攻击中的武器(强推Seak老师)
[网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)
[网络安全自学篇] 七十九.Windows PE病毒原理、分类及感染方式详解
[网络安全自学篇] 八十.WHUCTF之WEB类解题思路WP(代码审计、文件包含、过滤绕过、SQL注入)
[网络安全自学篇] 八十一.WHUCTF之WEB类解题思路WP(文件上传漏洞、冰蝎蚁剑、反序列化phar)
[网络安全自学篇] 八十二.WHUCTF之隐写和逆向类解题思路WP(文字解密、图片解密、佛语解码、冰蝎流量分析、逆向分析)
[网络安全自学篇] 八十三.WHUCTF之CSS注入、越权、csrf-token窃取及XSS总结
[网络安全自学篇] 八十四.《Windows黑客编程技术详解》之VS环境配置、基础知识及DLL延迟加载详解
[网络安全自学篇] 八十五.《Windows黑客编程技术详解》之注入技术详解(全局钩子、远线程钩子、突破Session 0注入、APC注入)
[网络安全自学篇] 八十六.威胁情报分析之Python抓取FreeBuf网站APT文章(上)
[网络安全自学篇] 八十七.恶意代码检测技术详解及总结
[网络安全自学篇] 八十八.基于机器学习的恶意代码检测技术详解
[网络安全自学篇] 八十九.PE文件解析之通过Python获取时间戳判断软件来源地区
[网络安全自学篇] 九十.远控木马详解及APT攻击中的远控
[网络安全自学篇] 九十一.阿里云搭建LNMP环境及实现PHP自定义网站IP访问 (1)
[网络安全自学篇] 九十二.《Windows黑客编程技术详解》之病毒启动技术创建进程API、突破SESSION0隔离、内存加载详解(3)
[网络安全自学篇] 九十三.《Windows黑客编程技术详解》之木马开机自启动技术(注册表、计划任务、系统服务)
[网络安全自学篇] 九十四.《Windows黑客编程技术详解》之提权技术(令牌权限提升和Bypass UAC)
[网络安全自学篇] 九十五.利用XAMPP任意命令执行漏洞提升权限(CVE-2020-11107)