1.请回答如下端口默认对应的服务,以及在渗透测试过程中我们可以从哪些角度考虑其安全问题。
端口:21、22、873、1433、3306、6379、11211
21:FTP:匿名访问/弱口令 22:SSH:弱口令
873:rsync:未授权访问/弱口令 remote sync是Linux下的数据镜像备份文件。
1433:MySQL:弱口令 3306:MySQL:弱口令
6379:Redis:无验证访问
11211:memcache:内存泄漏、未授权访问
2.你所知道的网络抓包工具有哪些?对android或者ios设备怎么进行抓包。
wireshark,tcpdump,fiddle/burpsuite
wireshark:电脑开放热点,手机连接电脑热点,然后再电脑端进行抓包。
fiddle/burpsuite:电脑和手机放在同一局域网中,然后手机端口填上制定的端口,如果要抓HTTPS的话那就要加证书安装。
将 androidtcpdump 上传至 android 设备中(注:需要 root 权限)使用 adb shell (远程 SSH 亦可)启动 tcpdump 开始捕获。
3.请说明黑客常用的清除痕迹的方式及对应的监控方法(linux和windows系统)
wtmp/wtmpx 记录每次用户登录的信息,时间\终端\IP地址(last命令)
utmp/utmpx 记录以前登录到系统中的所有用户(who命令)
lastlog 记录每个用户最近一次的时间和登录点
acct 记录用户执行的所有命令
应用服务日志 记录了应用程序和系统产生的事件
系统日志 系统自身包括驱动程序等组件产生的时间
安全日志 与安全事件相关的信息
Elsave CLearLogs LogKiller 等程序
4.介绍你所知道的加密算法,都属于什么类型的加密算法?怎么保证加密的安全性?
DES:密钥长度56位,分组长度64位,属于对称算法。
RSA:非对称算法,利用大整数难分解的NP问题进行设计。
5.TCP三次握手的原理,并简单描述下端口扫描的几种实现方式及优缺点
三次握手原理
(1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
(3)第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。
PING 扫描
向目标主机发送 ICMP 请求,如果收到了返回数据包则可以判断目标存活.但是 ICMP Ping 越来越多地被防火墙与路由器阻止.
TCP 半开放扫描
半开放扫描速度很快,可以达到每秒数千个端口.只发送一个设置 SYN 标志的数据包,等待来自目标主机的 SYN-ACK 返回数据包,而不会完成 TCP 握手过程.
收到 SYN-ACK 数据包之后可以判断端口可用/正在监听,如果收到 RST 数据包就可以判断目标存活但端口关闭了.如果你可以判断主机存活但没有得到响应,端口就应该是被过滤了.
TCP 全连接扫描
与半开放扫描相比,最后需要发送 ACK 数据包来建立连接,所以扫描速度被拖慢很多.
UDP 扫描
UDP 扫描最常见用来检测 DNS\SNMP\DHCP 服务,UDP 扫描通常是发送一个空包,也可以设置随机载荷填充.
如果目标主机返回类型3\代码3的 ICMP 无法访问错误,则可以判断端口是关闭的.如果是其他无法访问错误代码的数据包,则可以判断端口是被过滤的,如果没有收到响应数据包,则可以判断端口是打开或者被过滤的.
和任何使用 UDP 通信存在的问题一致,其不可靠.UDP 扫描都很慢,可能需要发送大量的数据包才能确认一个端口的开放性.
隐蔽扫描
NULL\FIN\X-MAS
FIN 扫描会发送一个不会真实产生的数据包,发送一个包含 FIN 标志的数据包但不先建立连接,如果收到 RST 数据包则端口是关闭的,如果没有收到数据包则端口是开放的
X-MAS 扫描设置 URG\PUSH\FIN 标志,如果没有收到数据包,端口是开放的,如果收到 RST 数据包,端口是关闭的
NULL 扫描也会发送一个不会真实产生的数据包,不设置 TCP 数据包的任何标志,如果收到 RST 数据包,端口是关闭的,如果没有收到相应数据包,是一个开放的端口.
这些扫描都尝试让目标主机产生某种类型的响应而不通过握手来建立连接,隐身扫描也意味着它们不会出现在日志中
SCTP INIT 扫描
SCTP INIT 扫描是 TCP SYN 扫描在 SCTP 上的等价物,同样可以快速执行,在不受防火墙限制的情况下每秒扫描数千个端口,只发送一个 INIT 块,等待一个响应
6.从其他渠道获知A站被黑,同时黑客上传了webshell(是否被黑客删除未知),该服务器上没有任何安全防御措施,只有web访问日志。假如你是安全工程师小王,请你说明如何排查快速定位问题点,同时设计有效的安全防御系统,防范类似情况发生,防御系统至少包括sql注入、上传webshell等高危漏洞的防御措施。
A:先进行web漏洞扫描,查看相应的漏扫结果并进行修补。
B:进行基线检查,查看相应的安全配置和开发框架等,做好安全配置。
C:查看相应的安全日志,分析webshell文件,若存在就进行分析并删除,做好清除工作
D:撰写安全报告
安全措施:漏扫,基线扫描,渗透测试,申请渗透测试,安全评估,安全体系咨询,隐私保护,等等。