渗透测试-SSH秘钥登录
最近渗透遇到许多linux服务器,在多方信息收集无果后,想到了ssh的秘钥登录。但诸多知识点有点混乱,趁此时间再次复现一遍。
ssh中文名称叫安全外壳协议,是一种加密的网络传输协议。我们现在经常说的ssh指的是openssh,是对ssh协议的实现。
我们都知道ssh提供了两种安全级别的认证,一种口令认证,一种秘钥认证。
基于口令的认证时需要输入正确的用户名和密码,且连接加密。
ssh的连接过程为:
这里指的就是无法确定host的真实性,只知道它的公钥指纹。问你是否连接,
yes后就需要远程服务端的用户密码。密码输入正确后才可以登录。
当远程服务端的公钥被接受以后,就会保存在当前用户的/.ssh/known_hosts之中。下次再连接这台主机时,系统就会知道公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码。
现在企业更流行使用秘钥登录。修改远程服务端的 /etc/ssh/sshd_config 配置文件,
重启sshd服务,就可以禁用密码验证。
ssh秘钥登录,其实就是"公钥登录",首先需要用户自己生成一对公钥和私钥。然后用户将自己的公钥放在远程服务端上。此时远程服务器持有公钥,用户持有私钥。满足"公钥加密,私钥解密"。
过程如下:
该命令用于生成秘钥对。
需要注意的是:
生成后可以在当前用户的.ssh文件夹下看到。
ssh-copy-id 命令将公钥写到远程服务端kali的test用户下的/.ssh/authorized_key文件中。
如果是第一次登录,用户也会在/.ssh/文件夹下创建known_hosts,记录了远程服务端的ip和对应的公钥指纹。
连接时默认去查找当前用户/.ssh/文件下是否存在私钥,如果没有需要指定私钥进行连接。
如果设置了证书的密码,则在远程服务器时需要输入密码。
在 /etc/hosts 可以配置主机名和IP地址
此时就可以直接ssh主机名。
当渗透测试拿到一台linux服务器,查找/.ssh/文件夹下是否存在私钥文件,或*.pub文件,因为私钥和公钥一块生成。结合known_hosts文件,可以去连接未知的机器。
反之,如果拿到的机器只存在known_hosts文件,则无法利用。该文件只能说明曾经接收过公钥。
如果拿到的机器只有authorized_key文件,则证明存在用户连接过该机器。
“登录”功能如何测试?
常用的登录方式有很多,如:邮箱、账号、手机号登录。对于同时支持多种登录方式,测试时除了考虑每种方式是否能够登录成功以外,还需要考虑不同登录方式的优先级、对于用户习惯登录方式的设置和记忆、各种登录方式之间的切换、不同设备的不同登录方式等。
以下是“登录”功能需要测试的点:
输入正确的用户名和密码登录成功
输入错误的用户名密码登录失败
用户名或密码错误或为空时,是否有对应的错误提示
用户未注册就登录,是否提示先注册再登录
已经注销的用户登录失败,提示信息是否友好
密码框是否加密显示
用户名、密码是否支持中文、特殊字符
用户名、密码框是否有长度限制,是否区分大小写
密码为一些简单常用字符串时,是否提示修改?如: 123456
密码存储时是否加密
验证码有效时间
验证码输入错误或过期,提示信息是否友好
验证码是否容易识别,换一张功能是否可用,点击验证码图片是否可以更换验证码
如果使用第三方账号 (微信,QQ,微博账号)登录,那么第三方账号与本系统的账号体系对应关系如何保存
布局是否合理、美观,输入框是否对齐
风格和提示信息用语是否符合语境
登录页面文字和图片能否正常显示,按钮的设置和排列是否正常
页面默认焦点是否定位在用户名的输入框中
首次登录时相应的输入框是否为空,或者如果有默认文案,当点击输入框时默认方案是否消失
页面的前进、后退、刷新按钮是否可用
快捷键 Tab,Esc,Enter 等,能否控制使用
单用户登录系统的响应时间是否符合 "3-5-8"原则
用户数在临界点时并发登录是否还能符合 "3-5-8"原则
大量并发用户登录,系统的响应时间是多少,系统会出现宕机、内存泄露、 cpu饱和、无法登录吗,是否存在资源死锁和不合理的资源等待
长时间大量用户连续登录和登出,服务器端是否存在内存泄漏
用户名和密码是否通过加密的方式,发送给Web服务器
用户名和密码的验证,应该是前端验证+服务器端验证, 而不能单单是在客户端用javascript验证
密码输入框是否不支持复制和粘贴
用户名和密码的输入框,无SQL 注入攻击风险
错误登录的次数限制(防止暴力破解)
验证码不能被轻易破解、欺骗
不登录的情况下,在浏览器中直接输入需要登录后才能访问的URL地址,验证是否会重新定向到用户登录界面
同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性
主流的浏览器下能否显示正常
不同的操作系统是否能正常工作
移动设备上是否正常工作
不同的分辨率
是否提供记住用户名密码、自动登录的功能
输入用户名,密码后按回车,是否可以登陆
连续输入 3次或以上错误密码,用记是否被锁一定时间(如:15分钟),时间内不允许登录,超出时间点是否可以继续登录。
输入框能否可以以Tab键切换
用户 session过期后,重新登录是否还能重新返回这前session过期的页面
用户名和密码输入框是事支持键盘快捷键?如:撤销、复制、粘贴等等
是否允许同名用户同时登录进行操作?考虑 web和app同时登录
手机登录时,是否先判断网络可用
手机登录时,是否先判断 app存在新版本
是否支持单点登录
如何进行Web渗透测试
1.SQL Injection(SQL注入)
(1)如何进行SQL注入测试?
首先找到带有参数传递的URL页面,如 搜索页面,登录页面,提交评论页面等等.
注1:对 于未明显标识在URL中传递参数的,可以通过查看HTML源代码中的"FORM"标签来辨别是否还有参数传递.在FORM 和/FORM的标签中间的每一个参数传递都有可能被利用.
form id="form_search" action="/search/" method="get"
div
input type="text" name="q" id="search_q" value="" /
input name="search" type="image" src="" /
a href="/search/" class="1da6-6918-2dca-4b87 fl"Gamefinder/a
/div
/form
注 2:当你找不到有输入行为的页面时,可以尝试找一些带有某些参数的特殊的URL,如
其 次,在URL参数或表单中加入某些特殊的SQL语句或SQL片断,如在登录页面的URL中输入 /INDEX.ASP?USERNAME='HI' OR 1=1
注1:根据实际情况,SQL注入请求可以使用以下语句:
' or 1=1- -
" or 1=1- -
or 1=1- -
' or 'a'='a
" or "a"="a
') or ('a'='a
注2:为什么是OR, 以及',
如何进行渗透测试才有可能登录到数据库服务器的远程终端
新建一个文本文件,更改扩展名为aabb.udl双击此文件,选数据库类型、设置ip、用户名、密码,数据库可进行连接测试 ,当然对方要开sql服务的测试成功后,点确定将这个文件以文本方式打开, 里面有连接字符串,装sql 查询分析器。
【网络安全】一次授权的渗透测试
前不久的一次授权测试中,感觉缺少任何一步都无法达到getshell的目的,单个漏洞看得话确实平平无奇,但是如果组合起来的话也许会有意想不到的化学效应。
拿到这个站的时候一眼就看见了会员登录界面,一开始想着注册,但是觉得会员功能应该很少,没验证码啥的,万一后台管理员也是会员呢那岂不是要是爆破出来了可以去后台尝试一波。
在一开始打开网站的时候,由于安装了谷歌插件sensinfor(t00ls上发现的),可以初步探测网站的敏感目录,比如备份文件,phpmyadmin,phpinfo等等,在一开始就探测出存在phpinfo,获取了网站的绝对路径
常规用nmap探测下开放的端口,发现对外开放了3306端口,有绝对路径了,不抱希望的去爆破下3306吧,反正我是没爆破出几个3306的密码,用下超级弱口令检查工具,字典接着用鸭王的吧,谁知道是字典强大还是运气爆破,话说这个不算弱口令,只能说字典里有这个密码吧,只要字典存在的就是弱密码,没有错。
基于负责任的态度也发现了 一些其他的漏洞,不过相对来说危害性不大吧,但是如果在写测试报告的时候如果没得写也是可以写上的。
这个后台一般都有记录用户登录IP的习惯,但是如果记录IP的时候选取的是x-forward-for构造的IP,这样攻击者是可以伪造登录IP的,如果没有对IP的合法性进行校验,构造一个XSS payload触发存储型XSS这也不是没可能,在测试的时候就遇到过几次,后台记录会员登录IP的地方存在存储型XSS
不过这里美中不足的是后台对IP的合法性进行了校验,如果是不合法的IP会被重置为0.0.0.0
登录后发现管理员没办法对自己进行操作,这很尴尬,管理员都没办法更改自己的信息
很简单的办法随便找个可以进行更改的链接,更改url实现修改管理员信息,按照经验这种限制管理员更改自己信息的情况我遇到的很多都是前端限制了。
细看下来真的没啥技术含量,运气好爆破出来了,可以写log日志,但是也算是一环扣一环吧,如果不是一开始爆破出来了可能也没想着去爆破3306,如果没有绝对路径的话我也懒得去爆破3306,测试中运气也很重要呀,哈哈。
持续更新↓↓↓↓
【 网络安全学习资料·攻略 】
渗透测试的测试对象,渗透检测是什么样的检测方法?
提起渗透测试的测试对象,大家都知道,有人问渗透检测是什么样的检测方法?,另外,还有人想问一个完整的渗透测试流程,分为那几块,每一块有哪些内容,你知道这是怎么回事?其实渗透测试的测试方法,下面就一起来看看渗透检测是什么样的检测方法?,希望能够帮助到大家!
渗透测试的测试对象
1、渗透测试的测试对象:渗透检测是什么样的检测方法?
无损检测是利用物质的声、光、磁和电等特性,在不损害或不影响被检测对象使用性能的前提下,检测被检对象中是否存在缺陷或不均匀性,给出缺陷大小,位置,性质和数量等信息。
渗透检测是利用毛细管作用原理检测材料表面开口性缺陷的无损检测方法。
2、渗透测试的测试对象:一个完整的渗透测试流程,分为那几块,每一块有哪些内容
包含以下几个流程:
信息收集
渗透测试的测试方法
步做的就是信息收集,根据网站URL可以查出一系列关于该网站的信息。通过URL我们可以查到该网站的IP、该网站操作系统、脚本语言、在该上是否还有其他网站等等一些列的信息。
漏洞探测
收集到了足够多的信息之后,我们就要开始对网站进行漏洞探测了。探测网站是否存在一些常见的Web漏洞,比如:SQL注入。
漏洞利用
探测到了该网站存在漏洞之后,就要对该漏洞进行利用了。不同的漏洞有不同的利用工具,很多时候,通过一个漏洞我们很难拿到网站的webshell,我们往往需要结合几个漏洞来拿webshell。
内网渗透
能跟内网主机进行通信后,我们就要开始进行内网渗透了。可以先使用nmap对内网主机进行扫描,探测在线的主机,并且探测其使用的操作系统、的端口等信息。
内网中也有可能存在供内网使用的内网,可以进一步渗透拿下其权限。
痕迹清除
达到了目的之后,有时候只是为了黑入网站挂黑页,炫耀一下;或者在网站留下一个后门,作为肉鸡,没事的时候上去溜达溜达;亦或者挂入挖矿木马。
撰写渗透测试保告
在完成了渗透测试之后,就需要对这次渗透测试撰写渗透测试报告了。明确的写出哪里存在漏洞,以及漏洞修补的方法。以便于网站根据我们的渗透测试报告修补这些漏洞和风险,防止被攻击。
3、渗透测试的测试对象:渗透测试的测试方法
有些渗透通过使用两套扫描器进行安全评估。这些工具至少能够使整个过程实现部分自动化,这样,技术娴熟的专业人员就可以专注于所发现的问题。如果探查得更深入,则需要连接到任何可疑服务,某些情况下,还要利用漏洞。
商用漏洞扫描工具在实际应用中存在一个重要的问题:如果它所做的测试未能肯定答案,许多产品往往会隐测试结果。譬如,有一款知名扫描器就存在这样的缺点:要是它无法进入Cisco路由器,或者无法用SNMP其软件版本号,它就不会做出这样的警告:该路由器容易受到某些拒绝服务(DoS)攻击。如果不知道扫描器隐了某些信息(譬如它无法对某种漏洞进行测试),你可能误以为网络是安全的,而实际上,网络的安全状况可能是危险的。
除了找到合适工具以及具备资质的进行渗透测试外,还应该准确确定测试范围。攻击者会借助工程学、偷窃、贿赂或者破门而入等手法,有关信息。真正的攻击者是不会仅仅满足于攻击某个企业网络的。通过该网络再攻击其它公司往往是的惯用伎俩。攻击者甚至会通过这种方法进入企业的ISP。
以上就是与渗透检测是什么样的检测方法?相关内容,是关于渗透检测是什么样的检测方法?的分享。看完渗透测试的测试对象后,希望这对大家有所帮助!
0条大神的评论