目录
01 数通技术知识要点... 1
02 渗透测试基础... 1
03 渗透测试环境搭建与工具使用... 1
04 信息收集... 1
05 web安全... 2
06 不定性拓展内容... 2
07 应急响应... 2
08 安全基线... 3
09 操作系统要点... 3
主流园区网络架构有哪些层次(区域),每个层次(区域)的主要功能是什么?
1.什么是渗透测试?
2.渗透测试的目的是什么?
3.渗透测试方法分类?
4.渗透测试执行流程?
5.渗透测试报告如何撰写?有比较好的自动化生成工具吗?
6.渗透测试的对象包含哪些?
7.可以说一下都了解什么应用系统框架吗?
浏览网站,看看网站规模,功能,特点等
端口,弱口令,目录等扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。XSS,SQL注入,上传,命令注入,CSRF,cookie安全检测,敏感信息,通信数据传输,暴力破解,任意文件上传,越权访问,未授权访问,目录遍历,文件 包含,重放攻击(短信轰炸),服务器漏洞检测,最后使用漏扫工具等
1) 信息收集:获取域名的whois信息,获取注册者邮箱姓名电话等,丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。 用邮箱做关键词进行丢进搜索引擎。 利用搜索到的关联信息找出其他邮箱进而得到常用社交账号。 社工找出社交账号,里面或许会找出管理员设置密码的习惯 。 利用已有信息生成专用字典。查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIAPACHE,NGINX的解析漏洞查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针, google hack 进一步探测网站的信息,后台,敏感文件
2) 漏洞扫描:开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含, 远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等
3) 漏洞利用:利用以上的方式拿到webshell,或者其他权限
4) 权限提升:提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,linux脏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
5) 日志清理
6) 总结报告及修复方案
续:
"1.拿到一个待检测的站,你觉得应该先做什么?",
收集信息: whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙、维护者信息...
"2.mysql的网站注入,5.0以上和5.0以下有什么区别?",
5.0以下没有information_schema这个系统表,无法列表名等,只能暴力跑表名。
"3.在渗透过程中,收集目标站注册人邮箱对我们有什么价值?",
丢社工库里看看有没有泄露密码,然后尝试用泄露的密码进行登录后台。用邮箱做关键词进行丢进搜索引擎。利用搜索到的关联信息找出其他邮箱进而得到常用社交账号。
社工找出社交账号,里面或许会找出管理员设置密码的习惯 。利用已有信息生成专用字典。观察管理员常逛哪些非大众性网站,拿下它。直接发送钓鱼文件链接等
"4.判断出网站的CMS对渗透有什么意义?",
查找网上已曝光的程序漏洞。如果开源,还能下载相对应的源码进行代码审计。
"5.目前已知哪些版本的容器有解析漏洞,具体举例。",
IIS 6.0
/xx.asp/xx.jpg "xx.asp"是文件夹名
IIS 7.0/7.5
默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析
Nginx
版本小于等于0.8.37,利用方法和IIS 7.0/7.5一样,Fast-CGI关闭情况下也可利用。
空字节代码 xxx.jpg.php
Apache
上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀
"6.目标站发现某txt的下载地址为\
http://www.test.com/down/down.php?file=/upwdown/1.txt,\
你有什么思路?",
这就是传说中的下载漏洞!在file=后面尝试输入index.php下载他的首页文件,然后在首页文件里继续查找其他网站的配置文件,可以找出网站的数据库密码和数据库的地址。
"7.发现 demo.jsp?uid=110 注入点,你有哪几种思路获取 webshell,哪种是优选?",
有写入权限的,构造联合查询语句使用using INTO OUTFILE,可以将查询的输出重定向到系统的文件中,
这样去写入 WebShell 使用 sqlmap –os-shell 原理和上面一种相同,来直接获得一个 Shell,
这样效率更高 通过构造联合查询语句得到网站管理员的账户和密码,然后扫后台登录后台,再在后台通过改包上传等方法上传 Shell
"8.如何利用Google Hacking快速查找URL中含有/admin/login.php的网站,\
并列举其他常用的Google Hacking高级操作参数。",
cache:url查看指定URL快照
"9.例如www.baidu.com 存在DNS域传送漏洞,\
写出利用方法(Windows和Linux任意一种即可)",
dig @存在域传送漏洞服务器ip地址 axfr 查询内容【域名,不要带www】
nslookup
set type=ns
ls -d url >url.txt
区域传送是DNS常用的功能,区域传送的漏洞也不是没有办法解决的,严格限制允许区域传送的主机即可
"10.sql注入分为哪几种?这几种在注入的时候有什么分别?",
字符型,数字型,搜索型,注入方法为联合查询注入,报错注入,布尔盲注,时间盲注,对查询
"11.XSS分为几种?简单描述cookie和session",
dom型,反射型,存储型
cookies文件的内容大致上包括了诸如用户名、密码、设置等信息。保存在客户端
session中主要保存用户的登录信息、操作信息等等。此 session将在用户访问结束后自动消失
存储数据的大小不同,一个 cookie存储的数据不超过3 K; session存储在服务器上可以任意存储数据,但是,当 session存储数据太多时,服务器可选择进行清理。
"12.请列举常见的可以对网站进行自动化的web扫描工具",
awvs web站点扫描
Nikto这是一个开源的Web服务器扫描程序,它可以对Web服务器的多种项目(包括3500个潜在的危险文件/CGI,以及超过900个服务器版本,还有250多个服务器上的版本特定问题)进行全面的测试。
其扫描项目和插件经常更新并且可以自动更新(如果需要的话)。
Nikto可以在尽可能短的周期内测试你的Web服务器,这在其日志文件中相当明显。不过,如果你想试验一下(或者测试你的IDS系统),它也可以支持LibWhisker的反IDS方法。
"13.甲方重要网站被黑客上传了WEBSHELL并截图证明,\
身为乙方安全工程师的你负责处理此事,\
请思考,你需要做些什么?如果需要应急,请从Windows和Linux两个\
服务器方面入手,分别写出你的应急思路",
Windows 检查系统账号安全 检查异常端口、进程 检查启动项、计划任务、服务 日志分析
Linux 账号安全 历史命令 检查异常端口 检查异常进程 检查开机启动项 检查定时任务 检查服务 检查异常文件 检查系统日志
"14.你常用的渗透工具有哪些,最常用的是哪个?",
bp nmap cs metasploit bp
"15.windows 权限控制,种后门有哪几种方式?",
服务,启动目录,注册表,计划任务,镜像劫持,shift
"16.php文件包含有哪些函数? ",
include include_once require require_once
"17.php命令执行有哪些函数?",
system、exec、popen 、passthru、shell_exec eval() assert() preg_replace() call_user_func() $a($b)
"18.mysql的网站注入,5.0以上和5.0以下有什么区别?",
5.0以下不存在Information_schema,数据库表,字段需要盲猜
"19.mysql注入点,对目标站直接写入一句话\
需要具备哪些条件?\
读文件函数是什么?写shell函数是什么?",
1、首先判断当前用户是否具备file权限,其次需要判断是否web和数据库分离,未分离情况可寻找网站报错或者phpinfo信息得到绝对路径写shell。
2、load_file() into outfile dumpfile
eval
"20.phpmyadmin 如何渗透?",
Phpmyadmin可尝试爆破,老版本直接输入用户名不输入密码登录,低权限可读文件,获取web配置继续以root身份getshell。
高权限可以利用文件包含,或者直接out file写shell。
还可以利用日志文件getshell。
"21.sqlmap查询当前数据库参数是啥?",
--current
"22.如何判断web服务器是linux还是windows?",
TTL值判断。
文件大小写,但是不准确有些windows下web服务器自身区分大小写。
http请求返回头。
Web报错或者404页面分析判断。
"23.CSRF、XSS 、XXE、Ssrf 分别是什么?以及修复方式?",
Csrf 跨站请求伪造 增加token 增加Referer 新增 HTTP Header
XSS 跨站脚本攻击,一般可获取cookie,挂马钓鱼等操作。 对用户的输入(和URL参数)进行过滤,对输出进行html编码
XXE xml实体注入,读取文件等,特殊情况下可直接获取权限。 过滤用户提交的XML数据 使用开发语言提供的禁用外部实体的方法
SSRF 服务器端请求伪造,通常在web加载资源图片地方容易产生,可探测内网,如果有redis可以尝试getshell
过滤格式为ip的链接
设置url白名单或限制内网IP
响应处理,任何情况都不建议直接返回服务器响应内容给客户端。
禁用不必要的URL协议(HTTP之外的,不必要的)
内网认证授权
"24.常见的不同web服务器解析漏洞? IIS apache nginx 等怎么利用",
IIS 5 6 /a.asp/a.jpg a.asp;x.jpg 对于IIS服务器5版本和6版本存在两个解析漏洞,分别为目录解析和文件解析
目录解析
简介:在网站下建立文件夹的名称中以.asp或.asa等作为后缀的文件夹,其目录内任何扩展名的文件都被IIS当作asp可执行文件去解析并执行.
文件解析/后缀解析
简介:在IIS6.0下,分号后面的内容不被解析,举个栗子,xx.asp;.jpg将会当作xx.asp去解析执行.
IIS7 fast-cgi模式 a.jpg/x.php
IIS7/7.5在Fast-CGI运行模式下,在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件。
该解析漏洞利用需两个条件:
1. php.ini里cgi.fix_pathinfo=1(默认为1) 2.在”Handler Mapping”中取消勾选以下内容:php-5.3.8>Request Restrictions>Invoke handler only if request is mapped to:
Apache aaa.php.jpg
配置如下:
AddHandler application/x-httpd-php .php
或者
SetHandler application/x-httpd-php
Nginx a.jpg/x.php
当访问路径为test.png/noexist.php时。
fastcgi在处理’.php’文件时发现文件并不存在,这时php.ini配置文件中cgi.fix_pathinfo=1 发挥作用,这项配置用于修复路径,如果当前路径不存在则采用上层路径。
为此这里交由fastcgi处理的文件就变成了’/test.png’。 上传图片马,然后访问时加上php后缀 就成功解析成php文件
"25.linux 和windows应急分别从哪些方面下手?",
Windows 检查系统账号安全 检查异常端口、进程 检查启动项、计划任务、服务 日志分析
Linux 账号安全 历史命令 检查异常端口 检查异常进程 检查开机启动项 检查定时任务 检查服务 检查异常文件 检查系统日志
"26.http返回头里面有哪些项?能说出来几个 分别什么作用?",
Content-Type:text/html;charset=UTF-8 告诉客户端,资源文件的类型,还有字符编码,客户端通过utf-8对资源进行解码,然后对资源进行html解析。
Content-Encoding:gzip 告诉客户端,服务端发送的资源是采用gzip编码的,客户端看到这个信息后,应该采用gzip对资源进行解码。
Date: Tue, 03 Apr 2018 03:52:28 GMT 这个是服务端发送资源时的服务器时间,GMT是格林尼治所在地的标准时间。
Server:Tengine/1.4.6 这个是服务器和相对应的版本,只是告诉客户端服务器信息。
Transfer-Encoding:chunked 这个响应头告诉客户端,服务器发送的资源的方式是分块发送的。
Last-Modified: Dec, 26 Dec 2015 17:30:00 GMT 所请求的对象的最后修改日期(按照 RFC 7231 中定义的“超文本传输协议日期”格式来表示)
Connection:keep-alive 这个字段作为回应客户端的Connection:keep-alive,告诉客户端服务器的tcp连接也是一个长连接,客户端可以继续使用这个tcp连接发送http请求。
ETag: “737060cd8c284d8af7ad3082f209582d” 就是一个对象(比如URL)的标志值,就一个对象而言,比如一个html文件,如果被修改了,其Etag也会别修改,所以,ETag的作用跟Last-Modified的作用差不多,主要供WEB服务器判断一个对象是否改变了
"27.redis 未授权在渗透中如何利用?",
寻找web目录,尝试写shell。Linux尝试写启动项,加sshkey远程登录。
"28.渗透测试执行流程?",
前期交互阶段:确定渗透的范围、目标、限制条件以及服务合同细节。
信息收集阶段:信息收集是渗透攻击的前提,可以有针对性地制定模拟攻击测试计划,提高模拟攻击的成功率
威协建模阶段:使用获取到的信息,来标识出目标系统上可能存在的安全漏洞与弱点
漏洞分析阶段:从获取的信息中分析和理解那些攻击途径会是可行的
渗透攻击阶段:针对目标系统实施深入研究和测试的渗透攻击
后渗透攻击阶段:寻找客户组织最具价值和尝试进行安全保护的信息和资产
报告阶段:使用报告文档来表明在渗透测试过程中做了那些
"29.简单介绍一下nmap工具及使用?",
网络发现和安全审计工具
主机发现
端口扫描
应用程序和版本探测
操作系统探测
-p 指定端口扫描
-sT tcp扫描
-sP ping扫描
-Pn 不进行ping扫描
"30.nmap在扫描过程中如何规避安全设备?",
-T限制扫描速度
-Pn不进行ping扫描
--spoof-mac源mac欺骗
--source-port 源地址欺扁
-D使用诱饵进行源地址欺骗
-sl 空闲扫描
-f 报文分段
--mtu 指定偏移量大小(必须是8的倍数)
--data-length 指定发包长度
"31.简单介绍一下metasploit工具?",
是一个漏洞利用工具 Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。
"32.metasploit中有哪些模块?",
渗透攻击/漏洞利用模块:利用发现的安全漏洞或配置弱点对远程目标进行攻击
攻击载荷模块:目标系统在被渗透攻击之后在目标系统上运行任意命令或者执行特定代码。
辅助模块:负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试
空指令模块:是一些对程序运行状态不会造成任何实质性影响的空操作或无关操作指令
编译器模块:对攻击载荷进行各种不同形式的编码
后渗透攻击模块:主要用于在渗透攻击取得目标系统远程控制权之后,在受控系统中进行各式各样的后渗透攻击动作
规避模块:主要用于规避Windows Defender防火墙、Windows应用程序控制策略(applocker)等的检查。
"33.cs有接触过吗?介绍一下cs的功能吧?",
渗透测试软件,分为客户端与服务端,可以进行团队分布式操作
功能
端口转发.
扫描多模式端口Listener
Windows exe程序生成
Windows dll动态链接库生成
java程序生成
office宏代码生成
"34.什么是Xray?有什么功能?如何使用?",
web安全评估工具
功能:xray支持主动、被动多种扫描方式,可以灵活定义Poc
如何使用:可以与burpsuite联动进行对网页的漏洞扫描
"35.介绍一下burpsuite工具及其常用模块有哪些?",
是由多个不同的小工具(功能模块)组成的集合,工具与工具之间可以联动
Target:显示目标目录结构的-个功能
Proxy:拦截HTTP HTTPs的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许拦截、查看修改在两个方向上的原始数据流(拦截代理模块)
Intruder: -一个定制的高度可配置的工具,对Web应用程序进行自动化攻击,如:枚举标识符、收集有用的数据以及使用fuzzing技术探测常规漏洞(攻击模块)
Repeater: -个靠手动操作来触发单独的HTTP请求,并分析应用程序响应的工具(重放)
Sequencer:用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具Decoder:进行手动执行或对应用程序数据者智能解码编码的工具(编码模块)
Comparer:通常是通过一些相关的请求和响应得到两项数据的—-个可视化的"差异"(对比模块)
"36.Webshell管理工具有哪些?有什么不同之处?",
蚁剑:shell不再进行免杀,触发流量有特定的规则库,在菜刀的基础上做了界面优化
冰蝎:要使用jdk环境,功能更加完善,流量加密,难以被检测
哥斯拉 哥斯拉全部类型的shell均过市面所有静态查杀
哥斯拉流量加密能过市面全部流量waf
菜刀
"37.什么是OWASP TOP 10?OWASP top10都有哪些漏洞?",
在 开放Web应用基金会致力于创造一个更安全的网络应用环境。它免费提供文章、工具、技术和论坛,让每个开发人员都能创建安全的代码
OWASP Top 10包括:注入、失效身份验证和会话管理、敏感信息泄露、XML外部实体注入攻击(XXE)、存取控制中断、安全性错误配置、跨站脚本攻击(XSS)、不安全的反序列化、使用具有已知漏洞的组件、日志记录和监控不足。
"38.数据库类型?常见的端口?什么是SQL注入? \
SQL注入的类型有哪些?\
关系型和非关系型
关系型 1、MySql数据库,默认揣口是:3306;
2、Oracle数据库,默认端口号为:1521;
3、Sql Server数据库,默认端口号为:1433;
非关系型
2.Memcache d数据库,默认端口号:11211 ;
3.M ongoDB数据库,默认端口号:27017;
攻击者利用Web应用程序对用户输入验证上的疏忽,在输入的数据中包含对某些数据库系统有特殊意义的符号或命令,让攻击者有机会直接对后台数据库系统下达指令,进而实现对后台数据库乃至整个应用系统的入侵。
SQL注入的类型有哪些?\
数字型
字符型
搜索型
SQL注入自动化注入工具有哪些?SQLmap常用的参数?\
如何绕过WAF?\
sqlmap
-u 直接输入目标url
-r 从文本文件中获取http请求
如何绕过WAF?\
1大小写绕过
2编码绕过
3利用注释符
4重写绕过
5二阶注入
6宽字节注入
什么是堆叠注入?mysql提权方式有哪些?\
Stacked injections(堆叠注入)从名词的含义就可以看到应该是一堆 sql 语句(多条)一起执行。而在真实的运用中也是这样的, 我们知道在 mysql 中, 主要是命令行中, 每一条语句结尾加; 表示语句结束。这样我们就想到了是不是可以多句一起使用。这个叫做 stacked injection。
udf提权
反弹shell提权
mysql提权之后可以执行命令吗?\
可以
如何突破注入时字符被转义?SQL注入如何防御?",
利用宽字节注入
适用于数据库使用双字节编码方式(如GBK)WAF利用AddSlashes()等函数对敏感字符进行转义的场景
1分级管理
2参数传值
3使用安全参数
4漏洞扫描
5多层验证
6数据库信息加密
"39.什么是XSS?XSS类型有哪些?XSS漏洞有哪些危害?\
XSS漏洞如何防御?",
xss跨站脚本攻击
攻击者往web页面或url里插入恶意JavaScript脚本代码且应用程序对用户输入的内容没有过滤,那么当正常用户浏览该页面时,嵌入在web页面的恶意JavaScript脚本代码会被执行,从而达到恶意攻击正常用户的目的。
反射性xss:它是非持久型,参数型的跨站脚本。
存储型xss:它是将脚本代码写进数据库可以永久保存数据,危害最大
DOM型xss:与反射性相似,但是DOM是树形结构,利用DOM标签
获取用户cookie、键盘记录、xss gets hell、刷流量,执行弹窗广告、传播蠕虫病毒。
使用htmlspecialchars函数进行实体编码
使用http only对cookie进行限制
对用户输入的内容进行过滤
"40.文件上传都有哪些绕过方式?文件上传漏洞应该如何防御?\
.htacees文件有什么作用?\
拿到一个webshell发现网站根目录下有.htaccess文件,\
我们能做什么?",
绕过方式
1前端js绕过
2黑白名单绕过
3针对文件类型绕过
4路径截断绕过与普通截断绕过
5win系统解析漏洞绕过
如何防御
1文件上传的目录设置为不可执行
2判断文件类型
3使用随机数改写文件名和文件路径
4单独设置文件服务器的域名
5使用安全设备
作用
1URL重写、自定义错误页面
2MIME类型配置
3访问权限控制等
4主要体现在伪静态的应用
5自定义404错误页面
6禁止访问指定文件类型
7图片防盗链
8文件密码保护
9阻止/允许特定IP/IP段
10目录浏览与主页
11将内容符合php语法规则的文件当作PHP文件解析
12匹配文件名中的关键字
13匹配文件名
拿到htaccess文件可以做什么
插入
"41.什么是文件包含?文件包含分类?\
在php当中包含的函数有哪些?\
php伪协议有哪些?如何利用?文件包含漏洞如何防御?",
把可重复使用的函数写入到单文件中,在使用该函数时,直接调用此文件,无需再次编写函数,这一调用文件的过程被称为包含。
本地文件包含
远程文件包含
在php当中包含的函数有哪些?\
Include
Include_ once
Require
Require_once
php伪协议有
php://input 可以获取POST的数据流
php://filter 可以获取指定文件的源码
zip:// 可以访问压缩包里的文件
phar:// 和zip://类似绝对路径和相对路径都可以
data:// 同样类似于php://input
"42.什么是命令执行?命令执行的分类?\
导致远程代码执行、系统命令执行的函数有哪些?\
命令执行漏洞如何防御?",
命令执行漏洞是指攻击者可以随意执行系统命令,分为远程代码执行,系统命令执行两类
远程代码执行 函数: evval() assert()preg_replace() cal user_func() $a($b)
系统命令执行 函数: system() exe c()shell_exec()passthru() popen()反引号
命令执行漏洞如何防御?",
1禁用部分系统函数
2严格过滤关键字符
3严格限制允许的参数类型
4使用escapeshellarg函数来处理命令函数
5使用safe_mode_exec_dir指定可执行文件的路径(php.ini)
"43.什么是dos、ddos攻击?如何防御?",
DDoS攻击就是分布式拒绝服务攻击,指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,可使目标服务器进入瘫痪状态。
DoS,拒绝服务(Denial of Service)指的是通过各种手段,最终导致目标系统崩溃、失去响应,从而无法正常提供资源或服务的情况。
"44.抓包工具用过哪些?如何使用?",
WireShark
使用步骤:
1.点击菜单“Capture” -> “Options...” 便会打开抓取配置界面
2.在“Capture”里,选择与外网连接的网卡,不知道选择哪一个,可以点击全部选择
3.在“Capture Filter”中写入过滤条件。这里是用来筛选所抓取报文的。对于AS2端口来说,录入“Port 8080”就是“仅仅抓取端口是8080”的所有通信报文,也可以根据真实使用的端口来选择
4.然后,点击“Start”按钮就可以了。接下来,WireShark会在主界面显示出已经抓取的通讯报文。如果没有任何数据,请检查你的配置是否正确
5.在抓取到数据之后,可以使用菜单“Capture” -> “Stop”来停止抓取,然后使用“File” -> “Save”将抓取到的内容保存在磁盘上,保存之后的文件扩展名一般为“pcapng”文件。这个文件就可以用来分析底层的网络通讯问题。
"45.文件权限修改用什么命令?格式是怎么样的?",
chmod
字母法:chmod (u g o a) (+ - =) (r w x) (文件名)
数字法:chmod 777 文件名
第一个数字7:代表用户 u 的权限 rwx, 4 (r) + 2 (w) + 1 (x) = 7
第二个数字7:代表用户 g 的权限 rwx, 4 (r) + 2 (w) + 1 (x) = 7
第三个数字7:代表用户 o 的权限 rwx, 4 (r) + 2 (w) + 1 (x) = 7
[u g o a] 含义
u user 表示该文件的所有者
g group 表示与该文件的所有者属于同一组( group )者,即用户组
o other 表示其它用户组
a all 表示这三者皆是
46.复制文件用哪个命令,如果需要连同文件夹一块复制呢?",
cp
cp -r
{
cp doc1/a.c doc2 表示将doc1下的a.d文件复制到doc2目录下;
cp -r doc1 doc2 表示将doc1及其doc1下所包含的文件复制到doc2下;
cp -r doc1/. doc2 表示将doc1下的文件复制到doc2,不包括doc1目录;
说明:cp参数 -i:询问,如果目标文件已经存在,则会询问是否覆盖;
}
"47.终止进程用什么命令? 带什么参数?",
kill 命令的基本语法格式如下:
[root@bogon ~]# kill [信号或参数] PID
注意,kill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID,而不能识别进程名。在使用 kill 命令终止一个进程之前,必须知道该进程的 PID,可以通过在一个命令行上输入多个 PIDs 的方法,一次终止多个进程。
参数:
-l:信号,如果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a:当处理当前进程时,不限制命令名和进程号的对应关系
-p:指定 kill 命令只打印相关进程的进程号,而不发送任何信号
-s:指定发送信号
-u:指定用户
"48.移动文件用哪个命令?改名用哪个命令?",
mv [选项] 源文件或目录 目标文件或目录
. mv命令选项
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不提示直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
改名:mv 原名字 修改的名字(修改目录名字同理)
把123.txt重命名为456.txt
[root@zcwyou zcwyou]# mv 123.txt 456.txt
"49.Windows入侵排查思路?",
一.检查系统账号安全
1.查看服务器是否有弱口令,远程管理端口是否对公网开放(使用netstat -ano命令、或者问服务器管理员)
2.lusrmgr.msc命令查看服务器是否存在可疑账号、新增账号,如有管理员群组的(Administrators)里的新增账户,如有,请立即禁用或删除掉
3.用 D 盾或者注册表中查看服务器是否存在隐藏账号、克隆账号
4.结合日志,查看管理员登录时间、用户名是否存在异常
检查方法:Win+R 打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”,导出 Windows 日志–安全,利用 Log Parser 进行分析
二.检查异常端口、进程
1.netstat -ano检查端口连接情况,是否有远程连接、可疑连接
2.任务管理器-进程
3.检查启动项、计划任务、服务
4.检查系统相关信息
查看系统版本以及补丁信息
查找可疑目录及文件
5.日志分析
50.Linux入侵排查思路?
一.账号安全
who 查看当前登录用户(tty本地登陆 pts远程登录)
w 查看系统信息,想知道某一时刻用户的行为
uptime 查看登陆多久、多少用户,负载
1、用户信息文件/etc/passwd
root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell
注意:无密码只允许本机登陆,远程不允许登陆
2、影子文件/etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
/etc/passwd 存储一般的用户信息,任何人都可以访问;/etc/shadow 存储用户的密码信息,只有 root 用户可以访问
二.历史命令
通过 .bash_history 查看帐号执行过的系统命令
1、root的历史命令 histroy
2、打开 /home 各帐号目录下的 .bash_history,查看普通帐号历史命令
历史操作命令的清除:history -c
但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录
三.检查异常端口
netstat -antlp|more
查看下pid所对应的进程文件路径,
运行ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)
四.检查异常进程
ps aux | grep pid
/etc/rc.local
/etc/rc.d/rc[0~6].d
六.检查定时任务
crontab -l 列出某个用户cron服务的详细内容
Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root
crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)
crontab -e 使用编辑器编辑当前的crontab文件
如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分钟写入文件
2、利用anacron实现异步定时任务调度
重点关注
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
七.检查服务
chkconfig --list 命令,可以查看系统运行的服务
八.检查异常文件
九.检查系统日志
Linux的登录日志查看文件
日志默认存放位置:/var/log/
查看可登录的账户 cat/etc/passwd|grep ‘/bin/bash’
查看所有用户最后的登录信息 lastlog
查看用户最近登录信息 last 其中,/var/log/wtmp 存储登录成功的信息、btmp 存储登录失败的信息、utmp 存储当前正在登录的信息
查看当前用户登录系统情况 who
"51.介绍一下Linux安全加固?",
2.更改 SSH 默认端口
3.禁止 root 用户远程ssh 登录
4.限制用户使用su命令切换 root
5.密码复杂度策略
6.检查密码重复使用次数限制
7.检查是否存在空口令账号
8.禁止同时按下ctrl+alt+del重启
9.禁用telnet服务
"52.介绍一下windows安全加固?",
1.保持 Windows 升级
2.使用 IIS 防范工具
3.移除缺省的 Web 站点
4.如果你并不需要 FTP 和 SMTP 服务,请卸载它们
5.有规则地检查你的管理员组和服务:
6.严格控制服务器的写访问权限
7.设置复杂的密码
8.减少/排除 Web 服务器上的共享
9.禁用 TCP/IP 协议中的 NetBIOS
10.使用 TCP 端口阻塞
11.仔细检查 .bat 和 .exe 文件:每周搜索一次 .bat
12.管理 IIS 目录安全
13.使用 NTFS 安全
14.管理用户账户
15.审计你的 Web 服务器
"53.接触过哪些安全设备?分别介绍一下功能?",
1、防火墙
防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护。
同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。
2、防毒墙
相对于防火墙来说,一般都具有防火墙的功能,防御的对象更具有针对性,那就是病毒。
功能同防火墙,并增加病毒特征库,对数据进行与病毒特征库进行比对,进行查杀病毒。
部署方式同防火墙,大多数时候使用透明模式部署在防火墙或路由器后或部署在服务器之前,进行病毒防范与查杀。
3、入侵防御(IPS)
相对于防火墙来说,一般都具有防火墙的功能,防御的对象更具有针对性,那就是攻击。
防火墙是通过对五元组进行控制,达到包过滤的效果,而入侵防御IPS,则是将数据包进行检测(深度包检测DPI)对蠕虫、病毒、木马、拒绝服务等攻击进行查杀。
功能同防火墙,并增加IPS特征库,对攻击行为进行防御。
4、统一威胁安全网关(UTM)
字面意思就是把威胁都统一了,其实就是把上面三个设备整合到一起了。功能同时具备防火墙、防毒墙、入侵防护三个设备的功能。
5、安全隔离网闸
安全隔离网闸是一种由带有多种控制功能专用硬件在电路上切断网络之间的链路层连接,并能够在网络间进行安全适度的应用数据交换的网络安全设备
"54.如何排除设备误报?",
修改报警规则,从源头上减少误报
"55.拿shell了如何处理?",
Window
尽一切可能搜集该主机的信息,该主机上各种服务的用户名和密码。为接下来的内网渗透弱口令爆破做准备。
Linux
第一步,我们要做的就是让我们接下来操作的所有命令不在主机上留下任何痕迹。我们可以执行下面的命令,这样我们接下来执行的所有命令都不会在 .bash_history中看到了。这条命令只对当前终端有效!
export HISTFILE=/dev/null
export HISTSIZE=0
先查看当前用户身份,是否是root权限身份,如果不是的话,查看系统版本,是否可以利用已知漏洞提权的,比如 CVE-2016-5195 。 Linux下用SUID提权
然后要做的自然就是维持权限了,传送门——> Linux获取权限
whoami #查看当前用户身份
uname -a #查看系统信息
history #查看命令历史,有可能可以查看到管理员的一些重要命令,包括密码等
last #查看登录历史
cat /etc/passwd #查看用户
cat /etc/shadow #查看密码
"56.如何溯源攻击?",
1、攻击源捕获
安全设备报警,如扫描IP、威胁阻断、病毒木马、入侵事件等
日志与流量分析,异常的通讯流量、攻击源与攻击目标等
服务器资源异常,异常的文件、账号、进程、端口,启动项、计划任务和服务等
邮件钓鱼,获取恶意文件样本、钓鱼网站URL等
蜜罐系统,获取攻击者行为、意图的相关信息
2、溯源反制手段
IP定位技术
根据IP定位物理地址—代理IP
溯源案例:通过IP端口扫描,反向渗透服务器进行分析,最终定位到攻击者相关信息
ID追踪术
ID追踪术,搜索引擎、社交平台、技术论坛、社工库匹配
溯源案例:利用ID从技术论坛追溯邮箱,继续通过邮箱反追踪真实姓名,通过姓名找到相关简历信息
网站url
域名Whois查询—注册人姓名、地址、电话和邮箱。—域名隐私保护
溯源案例:通过攻击IP历史解析记录/域名,对域名注册信息进行溯源分析
恶意样本
提取样本特征、用户名、ID、邮箱、C2服务器等信息—同源分析
溯源案例:样本分析过程中,发现攻击者的个人ID和QQ,成功定位到攻击者。
社交账号
基于JSONP跨域,获取攻击者的主机信息、浏览器信息、真实 IP及社交信息等
利用条件:可以找到相关社交网站的jsonp接口泄露敏感信息,相关网站登录未注销
3、攻击者画像
攻击路径
攻击目的:拿到权限、窃取数据、获取利益、DDOS等
网络代理:代理IP、跳板机、C2服务器等
攻击手法:鱼叉式邮件钓鱼、Web渗透、水坑攻击、近源渗透、社会工程等
攻击者身份画像
虚拟身份:ID、昵称、网名
真实身份:姓名、物理位置
联系方式:手机号、qq/微信、邮箱
组织情况:单位名称、职位信息
"57.你用过微步吗?介绍下?",
微步云沙箱提供完整的多维检测服务,通过模拟文件执行环境来分析和收集文件的静态和动态行为数据,结合微步威胁情报云,分钟级发现未知威胁。
"58.遇到.exe文件如何处理?",
出现exe文件夹解决办法如下:
1、重启电脑,进入安全模式中全盘杀毒,使用顽固木马清除软件清除和通过系统急救箱清除;
2、在系统中直接启动杀毒软件的全盘杀毒功能,同时启用顽固木马清除;
3、清除之后隐藏的文件夹无法显示,在文件夹选项里设置显示所有隐藏文件;
4、显示被隐藏的文件夹;
5、在运行栏里输入“regedit”打开注册表编辑器即可。
"59.如何查看当前进程?",
Linux:ps或者netstat
Windows:netstat
"60.介绍一下常见的web应用组件端口(比如mysql、tomcat)?",
Mysql :3306
https: 443
http:80
tomcat:8080
Telnet:23
ftp:21
TFTP:69
SSH:22
"61.windwos如何查看本地的端口连接状况?",
依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。
Netstat命令用法
命令格式:Netstat -a -e -n -o -s-an
-a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。
-e 表示显示以太网发送和接收的字节数、数据包数等。
-n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。
-o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。
-s 表示按协议显示各种连接的统计信息,包括端口号。
-an 查看所有开放的端口
"62.Windows和Linux的日志文件放在哪里?",
Windows系统日志:事件查看器
具体步骤如下:
我的电脑 - 右键单击 - 管理 - 计算机管理 - 系统工具 - 事件查看器 - Windows日志;
Linux系统日志:/var/log
"63.服务器存在webshell,如何处理?",
开启防火墙,杀毒软件等,关闭远程桌面这些功能,定期更新服务器补丁和杀毒软件。