二面的中篇,二面的题目还剩下 4 个,下篇发出。
SSH 协议是如何实现免密登录的,原理是什么?
SSH协议免密登录其实是通过密钥对来验证身份的。
首先需要在客户端生成一对密钥,公钥和私钥。然后将公钥上传到目标服务器的指定目录下。具体哪个目录哪个文件可以在 /etc/ssh/sshd_config 配置文件中修改指定,默认的是 ~/.ssh/authorized_keys 文件。当然,还得在 sshd_config 配置文件中确保 PubkeyAuthentication 公钥认证是允许状态。
然后就是 SSH 的认证过程,客户端先会向服务端发起一个连接请求,服务端收到请求后,会返回给客户端一个挑战,其实就是个随机数,客户端收到这个随机数后,用私钥对这个数进行加密,然后将密文发给服务端;服务端收到密文后,用保存的公钥进行解密,解密之后得到原始的随机数,然后与最开始发给客户端的随机数进行比对,如果相同,则认为公私钥匹配成功,也就是认证成功,允许登录。
编程能力如何,写过什么脚本吗
还可以,之前做过开发,擅长 C#、Java、Python、JS。
其他的语言像 PHP、C、C++、Go大多数也能看懂。
在上一家公司,与另一位同事一起为部门开发过一个扫描平台,主要监测服务器目录权限、服务器敏感文件(日志、配置文件之类)、用户权限、通信矩阵之类的;
在目前的公司,也经常会写一些脚本,比如未授权漏洞扫描脚本、资产监测脚本、DDOS&WAF攻击源快速封禁脚本、核心接口调用情况监测脚本等等。
TCP Flood 攻击的原
TCP Flood 是 DDOS 的一种,就是通过随机 IP 或者伪造 IP 发送大量的 SYN 包到目标服务。
因为正常 TCP 是需要三次握手才能建立连接,所以服务器在每次接收到 SYN 包之后都会返回一个 SYN-ATK 包等待来自请求方的 ACK 包响应,这样大量的 SYN 包就会导致服务器上产生大量的半开连接,占用大量的内存和 CPU 资源无法释放,最终导致 DDOS。
渗透一个网站的思路,你觉得最关键的步骤是哪步,或者说如果是你,你会在哪一个步骤上花费更多的精力?
渗透测试的步骤从大的方面来说可以分为:信息收集、外围打点、漏洞利用、权限维持、横向移动、痕迹清理这几步。
哪个步骤更关键,我个人觉得整体而言是信息收集和漏洞利用要更重要一些,非要选一个的话我选信息收集。
虽然渗透最核心的目的应该是漏洞利用。但是信息收集的结果直接影响着后续外围打点和漏洞利用的广度和精度,多收集一条资产信息、多收集一条个人信息,都会指数级别的增加漏洞利用的成功率。所以我觉得不管在哪个场景下信息收集都是最重要的步骤。
其他步骤的重要性可能会更加和场景相关,比如平时自己公司针对性的对某系统的渗透测试,可能更会耗费精力在漏洞发现和利用;比如护网期间抢占资源可能会在外围打点和漏洞利用上花费精力;护网后期可能会更加耗费精力在痕迹清理上;办公网渗透可能会更关注权限维持和横向移动一些。
有审计过开源 OA 的 0day 漏洞吗
开源 OA ...
23 年初的时候,有审计到过 Ruoyi v4.7.6 的任意文件下载漏洞,是因为当时公司内有一个资料归档系统的后台用的 Ruoyi 框架,正好测试这个系统,就去研究了一下 Ruoyi。但是据说这个漏洞在 22 年底的时候,就已经有人审计到了,只是没有广泛的传出来,然后这个洞在五六月的时候,也已经被加固过了,黑名单方式加固的,就是定时任务那里的,Ruoyi 定时任务这里的洞已经修复过好几个版本了,但还是经常被绕过。
通过 webshell 进入内网后一般都做些什么?
第一步我肯定先做权限维持。
权限维持我个人比较喜欢先做 ssh 免密登录,通常默认公钥认证文件是 ~/.ssh/authorized_keys,但是可以在配置文件中修改 ssh 的认证目录,可以再加一个目录,放入我自己的公钥,这样操作比较简单快捷,影响也比较小,没那么容易排查。
然后可以再加一个隐藏账户或者不死马之类的木马。我一般会留两个维权的方式,因为很多防守方在清理掉一个马之后会很容易放松警惕。
接下来要做的就是内网的资产收集,域内主机列表、开放端口,找域控主机、扫内网弱口令,包括 MySQL、Redis、FTP 什么的、根据开放端口情况使用内核漏洞攻击、横向移动,想办法扩大影响范围,拿下尽量多的主机。
最后结束的时候就是清理攻击痕迹,删掉自己的维权方式,这个一定要记得。