2024护网面试题精选(二)完

news/2024/7/5 9:46:42

0x02. 内网渗透篇

00- 内网渗透的流程

拿到跳板后,先探测一波内网存活主机,用net user /domian命令查看跳板机是否在域 内,探测存活主机、提权、提取hash、进行横向移动,定位dc位置,查看是否有能直接提权域 管的漏洞,拿到dc控制权后进行提权,然后制作黄金票据做好维权,清理一路过来的日志擦擦 脚印

01- 白银票据与黄金票据的原理?

金票:在 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,那么白银票据就是伪造的 ST。在 Kerberos 认证的 第三步,Client 带着 ST 和Authenticator3 向 Server 上的某个服务进行请求, Server 接收到 Client 的请求之后 ,通过自己的 Master Key 解密 ST,从而获得 Session Key。通过 Session Key 解密 Authenticator3,进而验证对方的身份,验证 成功就让 Client 访问 server 上的指定服务了。所以我们只需要知道 Server 用户的 Hash 就可以伪造出一个 ST,且不会经过 KDC,但是伪造的门票只对部分服务起作用

金票和银票的区别

  1. 获取的权限不同
  2. 认证流程不同
  3. 加密方式不同

02-针对kerbores的攻击有哪些?

  1. 用户名爆破
  2. 密码喷洒和密码爆破
  3. Kerberoasting
  4. ASRepRoasting
  5. 黄金票据和白银票据
  6. MS14-068
  7. 非约束委派、约束委派、基于资源的约束委派
  8. 票据传递(ptt/ptk/ptc)
  9. mimikatz加密降级攻击(万能钥匙)
  10. 使用恶意的kerberos证书做权限维持

03-黄金票的条件要求?

1.域名称[AD PowerShell模块:(Get-ADDomain) .DNSRoot]

2.域的SID 值[AD PowerShell模块:(Get-ADDomain) .DomainSID.Value](就是 域成员SID值去掉最后的)

3.目标服务器的 FQDN

4.可利用的服务

5.域的KRBTGT账户NTLM密码哈希

6.需要伪造的用户名

一旦攻击者拥有管理员访问域控制器的权限,就可以使用Mimikatz来提取KRBTGT帐户密码哈 希值

04-横向连接方式

$IPC、Psexec、WMI、Schtasks、AT、SC、WINRM

05-如何获取内网中机器数量

可以使用命令net user /domian

使用扫描器扫一下

06- 内网环境不出网怎么办?

1.通过webshell实现内网socket代理

2.正向链接

3.ssh隧道

4.协议不同出网的方式不同,如dns对应dnscat2 tcp对应

5.测试是否是特定协议或端口出网

07-kerberos协议认证

Kerberos是一种网络身份认证的协议,协议设计目的是通过使用秘钥加密技

术为客户端/服务器应用程序提供强身份验证。该认证过程的实现不依赖于主机操作系统的认 证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据 包可以被任意的读取、修改和插入数据。在以上情况下,Kerberos作为一种可信任的第三方 认证服务,通过传统的密码技术执行认证服务。

Kerberos认证流程:

DC,Domain Controller,域控

KDC,Key Distribution Center,秘钥分发中心

AD,Account Database,账户数据库

AS,Authentication Server,身份验证服务

TGS,Ticket Granting Server,票据授予服务

TGT,Ticket Granting Ticket,票据中心授予的票据先去AS身份验证服务,返回身份验证,带着身份验证去TGS拿票据,带着拿回来的票据去服务器。

在这里插入图片描述

08-mimikatz使用方法

mimikatz是一款强大的系统密码破解获取工具。可以破解哈希值,是一个可加载的 Meterpreter模块。

如果system的权限无法执行执行。需要先进行提权。

在meterpreter中输入run post/multi/recon/local_exploit_sugge ster,进行提权漏洞检测。

09-票据伪造

票据分为黄金票据和白银票据。

黄金票据是伪造TGT

伪造黄金票据必须拿到域控管理员的权限才可以。

伪造黄金票据的要求

域名城

域SID值

域的KRBTGT账户NTLM哈希密码

伪造用户名

10-拿下边界机器如何内网渗透?

拿下机器后,使用代理访问内网

windows环境:reGeorg与proxifier

Linux环境:reGeorg与proxychains,

使用nmap等工具进行扫描,发现web服务的主机和其它信息。有时这些边界机器上会记录一些 内网服务器上的一些信息(用户 ssh known_hosts hosts 防火墙设置 记录、内网之间 好多waf 规则基本都是空,大多数waf防外部威胁,这时候可以拿到探测的内部一些开放的端 口判断进行渗透,通常用户这里基本是统一命名的,拿到的各种记录 会暴露出部分内网通讯的 ip.

11-windows、Linux下操作命令

1、Regedit 查看策略表

2、Msconfig 查看系统配置

3、Taskmgr  启动任务管理器

4、Eventvwr,msc 打开日志的命令

5、Gpedit.msc 打开本地组策略

6、Compmgmt.msc 计算机管理

7、Lusrmgr.msc 打开用户与组

8、Taskschd 打开计划任务

9、Net user xxx /add 添加用户

10、Net localgroup administrators xxxx /add 把某用户放到管理员组里面

11、Net session 查询当前会话

12、Net start 查看当前运行的服务

13、Net use 查看当前共享连接

15、Net share xxx /del 删除共享的链接

16、查看隐藏用户可以去,用户管理

17、Findstr /s /I “hellow” ** 18查询包含hellow 的关键字

18、查看帐号文件 cat /etc/passwd

19、查看历史命令记录文件和命令 cat ~/.history

20、history  //显示终端执行过的命令

21、history 10//显示最近10条终端执行过的命令

22、Ctrl+r   //搜索已经执行过的命令

查看网站日志

先进入日志文件所在目录(/var/log),然后使用 tail -f 日志文件.log 命令 进行查看(查看的命令有:cat(查看全部)、tail(查看最后多少行)、head(查 看最开始多少)、more,配合grep使用)

查看cpu占用率

top,简化版top -bn 1 -i -c

查看ssh登陆日志

lastlog 会列出所有用户最近登陆的信息(引用的是/var/log/lastlog文件中的信 息),只看ssh的话就cat /var/log/lastlog

查看是否有其他ssh登陆在线

通过who命令检查当前在线用户

/var/log/secure可以看到登陆的情况在/var/log/btmp中可以查看到登陆失败的 记录(可通过lastb命令进行检查)在/var/log/lastlog中可以查看最近登陆的记录 (可通过last命令进行检查)

如果在ssh的配置文件里(一般在/etc/ssh/sshd_config)和syslog配置文件中 对日志文件做过定制的话那么需要根据具体情况定位日志文件

查看中间件的日志

进入/var/log下然后进入要查看的中间件日志目录进行查看

分析命令被替换

对linux几个指令集进行md5sum定期验证,md5sum如果变了那说明指令变了,然后对指令集 进行还原

12-linux常见的提权办法

1.uid提权 (find / -perm -u=s -type f 2>/dev/null)

2.(sudo git help config !/bin/bash或者! 'sh'完成提权)

3、脏牛提权

4、内核提权

5、环境劫持

6、suid提权

7、cve-2021-4034

8、docker提权

13-权限维持

Windows机器:

1.替换系统文件类(shift 后门 ,放大镜后门)

2.修改注册表类

自启动项、屏幕保护程序注册表、用户登陆初始化、登录脚本、映像劫持、影子账户、AppCertDlls 注册表项、AppInit_DLLs 注册表项、文件关联、用户 登陆初始化、xx.Netsh Helper DLL

3.文件类

自启动文件夹、office Word StartUp 劫持

4.计划任务

schtasks 、WMI、bitsadmin


Linux:

1.预加载型动态链接库后门

2.strace 后门

3.SSH 后门

4.SUID 后门

5.inetd 服务后门

6.协议后门

7.vim 后门

8.PAM 后门

9.进程注入

10.Rootkit

11.端口复用

14-拿到shell后如何接管域控

如果拿到的就是域内用户,定位一下域控,提取本机hash看域管是否登陆过本机,是否有域 用户的进程之类的注入域用户进程窃取下权限,然后使用一些域内漏洞来提权到域管从而接管 域控,然后通过dcsync权限维持或者adminsdhound权限维持,也可以修改机器账号的 useraccount位 8192权限维持

15- 内网渗透搭建隧道常见的攻击?

frp、ew、ssh、Neo-reGeorg、netsh、Lcx

===========

网络层:Ipv6情况、icmp情况、Gre隧道0

传输层:Tcp 隧道、udp 隧道 常规端口转发

应用层:ssh隧道、http隧道、https隧道、dns隧道

16- 内网横向扩展具体方法?

密码喷洒、IPC$、WMI、mimikatz、PTH、MS14-068、web漏洞、系统漏洞

17-KDC服务默认开放哪些端口

88 kerberos krb5、464kerberos kpasswd(v5)

18-桌面有管理员会话,想要做会话劫持怎么做

提权到system权限,然后去通过工具,就能够劫持任何处于已登录用户的会话,而无需获得该 用户的登录凭证。

终端服务会话可以是连接状态也可以是未连接状态

19-域内攻击方法有了解过吗

MS14-068、Roasting攻击离线爆破密码、非约束性委派、基于资源的约束委派、ntlm relay、CVE-2021-42287/CVE-2021-42278

20-抓取密码的话会怎么抓

procdump+mimikatz 转储然后用mimikatz离线读取

Sam获取然后离线读取

21-什么版本之后抓不到密码

windows server 2012之后,或者打了补丁

抓不到的话怎么办

翻阅文件查找运维等等是否记录密码。或者hash传递、或者获取浏览器的账号密码

22-psexec和wmic的区别

psexec会记录大量日志,wmic不会记录日志并且更为隐蔽

23-横向渗透命令执行手段

psexec,wmic,smbexec,winrm,net use共享+计划任务+type命令

24- 内网的白名单 如何突破?

利用已在白名单中的软件执行目标代码,甚至发动无文件攻击

白名单污染

暴力破解白名单防护软件

25- 内网135端口具体有哪些利用方式?

爆破用户、wmic执行命令进行横向

26-域控定位

cmd定位:net group “Domain controllers” /Domain //查询域控 net time /domain//方式来定位域控,显示域控时间

DNS解析记录定位:nslookup -type=all _ldap._tcp.dc._msdcs.tubai.com` //若当前主机dns为域内dns,则可以通过解析记录定位

端口探测定位:扫描内网中同时开放38963653的机器,389默认是LDAP协 议端口,636端口是LDAPS53端口默认是DNS端口,主要用于域名解析,通过DNS服 务器可以实现域名与ip地址之间转换,他们都是域控机器开放的端口

SPN扫描定位:由于SPN本身就是正常的kerberos请求,所以扫描隐蔽,它不同于 TCPUDP常规端口扫描。大部分windows已经自带setspn.exe,且此操作无需管 理权限

命令:setspn -T tubai.com -Q /

扫描结果中根据:CN=AD-SERVER,OU=Domain Controllers,DC=tubai,DC=com来进行域控的定位

27-域管定位

net group “Domain Admins” /domain //查询域管理员

此外还可以通过一些工具定位:PSloggedon.exe、PVefindaduser.exe、 powerView.ps1

28-mimikatz是从哪个进程抓hash?

lsass.exe

29-win2012 无法破解hash 怎么上桌面

hash pth传递

30-正向和反向shell

正向Shell:

攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况

反向Shell:

被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况

31-入侵Linux服务器后需要清除哪些日志?

web日志,如 apache 的 access.log,error.log。直接将日志清除过于明显 ,一般使用 sed 进行定向清除

e.g. sed -i -e ‘/192.169.1.1/d ’

history 命令的清除,也是对~/.bash_history 进行定向清除

wtmp日志的清除,/var/log/wtmp

登录日志清除 /var/log/secure

32.Windows提权的若干办法?

A.系统漏洞提权

1-通过 Webshell 命令行执行systeminfo 命令查看系统是否打了提权补丁,未打补丁的 统可通过 github 下载系统提权漏洞 exp 进行提权,KB2592799、KB3000061、 KB2592799等。

2-通过 Webshell 找网站读写执行目录,把 cs 马或提权 exp 上传到对方服务器(如果 cmd无法执行命令可单独上传 cmd.exe 到对方服务器,菜刀终端设置为 setp

c:\XXX\cmd.exe)

B.sc 命令提权(administrator–>system)

例如:sc Create syscmd binPath= “cmd /K start” type= own type= interactsc start systcmd,就得到了一个system权限的cmd环境

C.不带引号的服务路径

当服务路径带空格的时候,路径空格目录前面一断就会当作文件执行,如

C:\ProgramFiles\MSBuild 这个目录,攻击者只要在c盘创建名为 Program.exe 的木 马,最后只要系统重启就会执行 C:\Program.exe 文件。

D.不安全的服务权限提升

即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有过 多的权限,例如,我们用木马替换服务调用的默认文件。

E.绕过系统 UAC 提升

可通过 msf 里面的 getsystem 绕过 UAC,也可以通过 kail 模块的

exploit/windows/local/bypassuac_injection、exploit/windows/local/bypassuac_vbs、exploit/windows/local/ask 绕过 UAC

33-如何做内网渗透?

第一种方法:在具备Webshell的情况下,通过Webshell直接上传CS木马到对方服务器运行,在CS软件上面开启 SocksProxy代理,把 kail 直接通过cs socksProxy代理攻击内 网进行横向渗透。

第二种方法:通过reGeorg+Proxifie进行内网渗透,把 tunnel.nosocket.php 脚本 通过Webshell上传到 Web 站点目录进行访问,在本地自己电脑上面执行 reGeorgSocksProxy.py -p 9999 –u http://IP 地址/tunnel.nosocket.php,最后配置 Proxifier 本地 代理地址与端口进行横向内网渗透。

34- 内网横向渗透一般攻击技巧

1、通过 nmap、nessus 扫描整个内网 ip 主机漏洞,如如 ms08-067、ms17-010、 ms12-020、ms15-035、ms19-0708、永恒之蓝2代、cve-2017-7494(samba)、cve- 2014-6271(破壳)、php cgi 等相关漏洞。

2、通过 nmap 扫内网 80、8080 端口,看内网是否存在大量 Web 站点,如果存在进行手 工或工具对 Web 站点进行漏洞检测,如注入、命令执行、反序列化、文件上传、弱口令等相 关漏洞。

3、通过 ntscan、Bruter、hydra 工具对内网弱口令探测,如果发现一个服务器弱口令, 可以通过这个弱口令跑整个内网,一般密码一样。

4、适当的对内网主机进行 ARP 抓取密码。

5、如果内网有 AD 域的情况下,可以通过 MS14-068 漏洞、黄金票据、白银票据进行域控 攻击,拿下域控就等于基本拿下整个内网。

35-windows cmd如何下载文件

1.certutil.exe

2.powershell

3.bitsadmin

4.vbs

5.ftp

36-隐藏痕迹

1.跳板

2.代理服务器

3.Tor

4.日志

5.清除历史记录

6.粉碎文件

37-Hash和NTML hash区别?

NTLM Hash(NT LAN Manager)是支持Net NTLM认证协议及本地认证过程中的一个重要 参数。其长 度为32位,由数字与字母组成。它的前身是LM Hash, 目前基本淘汰,两者相差 不大,只是使用的加密 算法不同。

ntml hash生成方式 将明文口令转换成十六进制的格式 转换成Unicode格式,即在每个字 节之后添加0x00对Unicode字符串作MD4加密,生成32位十六进制数字串

38- 内网中的信息收集技术

#主机信息收集

1.网络配置 ipconfig /all

2.操作系统 systeminfo | findstr /B /C:“OS 名称” /C:“OS 版本” 3.软件信息 systeminfo | findstr /B /C:“OS Name” /C:“OS Version” 4.服务信息 wmic /namespace:\root\securitycenter2 path antivirusproduct GET displayName,productState, pathToSignedProductExe

5.用户列表 net user

6.本地管理员信息 net localgroup administrators

7.端口信息 netstat –ano

8.补丁信息 wmic qfe get Caption,Description,HotFixID,InstalledOn

9.查防火墙 netsh firewall show config

#2域内信息收集

是否有域 使用ipconfig /all命令可以查看网关IP地址、DNS的IP地址以及判断当前主机 是否在域内:通过反 向解析查询命令nslookup来解析域名的IP地址,使用解析出来的IP地 址进行对比,判断域控制器和 DNS服务器是否在同一台服务器上

登录域信息 net config workstation

域内信息收集

ICMP探测内网 for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.174.%I | findstr “TTL=”

ARP探测内网

端口信息收集

查询域信息 net view /domain

查询域主机 net view /domain:XXX

查询域用户 net group /domain

查找域控 Nslookup -type=SRV _ldap._tcp net time /domain net group “Domain Controllers” /domain

查域用户信息 net user /domain

查询域管理员 net group “Domain Admins” /domain

查询域sid信息 whoami /all

0x03.框架与中间件

00-python哪些框架出现过漏洞?

flask的模板注入

模板注入和常见Web注入的成因一样,也是服务端接收了用户的输入,将其作为 Web 应用模 板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而可能导致 了敏感信息泄露、代码执行、GetShell等问题。

模板字符串中字符串拼接或替换可能会导致敏感信息泄露,获取变量值如果开发者在flask使 用字符串格式化,来将用户输入动态地加入到模板字符串中,而不是通过render_template_string函数,该函数不会对输入进行实体转义将URL传递进入模板内容 当中,会导致xss的产生。

还可以利用模板中html标签属性字段绕过xss过滤。

Django出现过目录遍历漏洞

01-常见的解析漏洞?

a、IIS 6.0  /xx.asp/xx.jpg "xx.asp"是文件夹名

b、IIS 7.0/7.5

默认Fast-CGI开启,直接在url中图片地址后面输入/1.php,会把正常图片当成php解析  c、Nginx 版本小于等于 0.8.37,利用方法和IIS7.0/7.5一样,Fast-CGI关闭情况下也 可利用。空字节代码 xxx.jpg.php

d、Apache上传的文件命名为:test.php.x1.x2.x3,Apache是从右往左判断后缀

e、lighttpd xx.jpg/xx.php,

02-ISS服务器做哪些方面保护措施?

  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 服务器:

03-struts2框架漏洞原理

(1)struts 是 java 的 web 框架

(2)采取 OGNL 表达式,处理 view 层数据字符串到 controller 层转换成 java对象

(3)重点关注的编号加粗如下

04-weblogic权限绕过

#CVE-2020-14882:

远程攻击者可以构造特殊的HTTP请求,在未经身份验证的情况下接管 WebLogic 管理控制 台。 攻击者可以构造特殊请求的URL,即可未授权访问到管理后台页面,访问后台后是一个低 权限的用 户,无法安装应用, 也无法直接执行任意代码。

#CVE-2020-14883: 允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成 的利用链,可通过一个HTTP 请求在远程Weblogic 服务器上以未授权的任意用户身份执行命 令。

#漏洞利用

第一种方法是通过com.tangosol.coherence.mvel2.sh.ShellSession 第二种方法是通过com.bea.core.repackaged.springframework.context.support.FileSystemX mlApplic ationContext

0x04.反序列化篇

00-序列化和反序列化

序列化:把内存中的对象以二进制的形式保存在文本中(输出流)反序列化:把文本中的对象 读出来到内存中(输入流)

反序列化用到的函数

序列化:serialize

反序列化:unserialize

01-常见反序列化的流量特征

像这种st2 045、068、shiro反序列化、fastjson这些java反序列化一类的流量特征

shiro就看cookie中Rememberme字段,什么都要从这里传

fastjson:可以在提交的包中找找json格式的数据,重点看一下有无rmi或者出网的一些行 为, (在十六进制中会呈现ACED开头,这段不确定)

st2-045:请求头中的Content-Type字段

02-log4j反序列化

该漏洞主要是由于日志在打印时当遇到${后,以:号作为分割,将表达式内容分割成两部 分,前面一部分prefix,后面部分作为key,然后通过prefix去找对应的lookup,通过对 应的lookup实例调用lookup方法,最后将key作为参数带入执行,引发远程代码执行漏洞

核心原理为,在正常的log处理过程中对**${**这两个紧邻的字符做了检测,一旦匹配到类似 于表达式结构的字符串就会触发替换机制,将表达式的内容替换为表达式解析后的内容,而不 是表达式本身,从而导致攻击者构造符合要求的表达式供系统执行

日志在打印时当遇到${后,Interpolator类以:号作为分割,将表达式内容分割成两部分, 前面部分作为 prefix,后面部分作为 key。然后通过prefix去找对应的 lookup,通过 对应的lookup实例调用lookup方法,最后将key作为参数带入执行

03-Shiro反序列化漏洞

shiro提供记住密码功能,Payload产生的过程:命令=》序列化=》AES加密=》base64编 码=》RememberMe Cookie值

影响版本:Apache Shiro < 1.2.4

特征判断:返回包中包含rememberMe=deleteMe字段。

第二种 直接发送原数据包,返回的数据中不存在关键字可以通过在发送数据包的cookie中增 加字段:****rememberMe=然后查看返回数据包中是否存在关键字

利用:用生成的Payload,构造数据包,伪造cookie发送payload

SHIRO-550:

shiro默认使用了CookieRememberMeManager,其处理cookie的流程是: 得到rememberMe的cookie值–>Base64解码–>AES解密–>反序列化 AES的密钥是硬编码在代码里,就导致了反序列化的RCE漏洞

SHIRO-721反序列化漏洞

不需要key,利用Padding Oracle Attack构造出RememberMe字段后段的值结合合法的 RememberMe cookie即可完成攻击

04-weblogic有几种漏洞

weblogic就好多了,基于T3协议的反序列化;基于xml解析时候造成的反序列化,还有 ssrf,权限绕过等等

反序列化漏洞

Weblogic(及其他很多java服务器应用)在通信过程中传输数据对象,涉及到序列化和反序 列化操 作,如果能找到某个类在反序列化过程中能执行某些奇怪的代码,就有可能通过控制这 些代码达到RCE 的效果

常见的weblogic漏洞

  1. #CVE-2016-0638 Weblogic 直接反序列化基于Weblogic t3协议引起远程代码执行 的反序列化漏洞 漏洞实为CVE-2015-4852绕过 拜Oracle一直以来的黑名单修复方式所赐

  2. #CVE-2016-3510 基于Weblogic t3协议引起远程代码执行的反序列化漏洞

  3. #CVE-2017-3248 基于Weblogic t3协议引起远程代码执行的反序列化漏洞 属于 Weblogic JRMP反序列化

  4. #CVE-2018-2628 基于Weblogic t3协议引起远程代码执行的反序列化漏洞 属于 Weblogic JRMP反序列化

  5. #CVE-2018-2893 基于Weblogic t3协议引起远程代码执行的反序列化漏洞 实为 CVE-2018-2628绕过 同样拜Oracle一直以来的黑名单修复方式所赐 属于Weblogic JRMP反序列化

05-fastjson反序列化漏洞

正常请求是get请求并且没有请求体,可以通过构造错误的POST请求,即可查看在返回包中是 否有fastjson这个字符串来判断

fastjson漏洞利用原理

在请求包里面中发送恶意的json格式payload,漏洞在处理json对象的时候,没有对@type 字段进行过滤,从而导致攻击者可以传入恶意的TemplatesImpl类,而这个类有一个字段就 是_bytecodes,有部分函数会根据这个_bytecodes生成java实例,这就达到fastjson通 过字段传入一个类,再通过这个类被生成时执行构造函数

无回显怎么办

1.一种是直接将命令执行结果写入到静态资源文件里,如html、js等,然后通过http访问就 可以直接看到结果

2.通过dnslog进行数据外带,但如果无法执行dns请求就无法验证了

3.直接将命令执行结果回显到请求Poc的HTTP响应中

06-判断目标是否使用st2框架

一般st2开发的应用,会以 .do.action为结尾后缀,但是spingweb同样可以这样结尾来定 义相关接口,所以通过在相关接口追加actionErrors参数,st2应用会触发报错

而spring的话,类似user.do/的访问和user.do的结果一样

st2-045这就是看Content-Type,这部分是达到命令执行的部分

07-redis未授权与权限获取

Redis默认情况下,会绑定在0.0.0.0:6379,这样将会将Redis服务暴露到公网上,如果在 没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis 以及读取Redis的数据。攻击者在未授权访问Redis的情况下可以利用Redis的相关方法,可 以成功在Redis服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器

条件:

a、redis 服务以 root 账户运行

b、redis 无密码或弱密码进行认证

c、redis 监听在 0.0.0.0 公网上

方法:

a、通过Redis的INFO命令,可以查看服务器相关的参数和敏感信息 ,为攻击者的后续渗透做铺 垫

b、上传SSH公钥获得SSH登录权限

c、通过crontab反弹shell

d、slave主从模式利用

修复:

密码验证

降权运行

限制 ip/修改端口

1.redis写入webshell

服务端的redis链接存在未授权,在攻击机上面能用redis-cli直接登录链接,并未登录验 证 .

 

2.利用redis写入ssh公钥

服务端的redis连接存在未授权,在攻击机上面能用redis-cli直接登录链接 并未登录验 证,服务端存在ssh目录并且有写入的权限 .

 

3.redis写入计划任务

这个方法只能在Centos上使用,Ubuntu上是行不通的

原因如下: 因为默认redis写文件后是644的权限,但ubuntu要求执行定时任务文

件/var/spool/cron/crontabs/<username>权限必须是600也就是-rw———-才会执  行,否则会报 错(root) INSECURE MODE (mode 0600 expected),而Centos的定时 任务文 件/var/spool/cron/<username>权限644也能执行因为redis保存RDB会存在乱 码,在Ubuntu上 会报错,而在Centos上不会报错 然后由于系统的不同,crontrab定时文 件位置也会不同

08-Memcache未授权访问

Memcached 是一套常用的 key-value 缓存系统,由于它本身没有权限控制模块,所以对 公网开放的

Memcache服务很容易被攻击者扫描发现,攻击者通过命令交互可直接读Memcached中的敏感信息。

利用

1、登录机器执行 netstat -an |more 命令查看端口监听情况。回显 0.0.0.0:11211 表示在所有网卡进行

监听,存在 memcached 未授权访问漏洞。

2、telnet 11211,或 nc -vv 11211,提示连接成功表示漏洞存在

漏洞加固

a、设置 memchached 只允许本地访问

b、禁止外网访问 Memcached 11211 端口

c、编译时加上 –enable-sasl,启用 SASL 认证FFMPEG 本地文件读取漏洞

09-MongoDB未授权访问

开启 MongoDB 服务时不添加任何参数时 ,默认是没有权限验证的 ,而且可以远程访问数据库, 登录的 用户可以通过默认端口无需密码对数据库进行增、删、改、查等任意高危操作。

防护

1.为MongoDB添加认证:

1)MongoDB 启动时添加–auth参数

2)给 MongoDB 添加用户:use admin

#使用admin库db.addUser(“root” , “123456”) #添加用户名root密码 123456的用 户db.auth(“root” ,“123456”) #验证下是否添加成功,返回1说明成功 2.禁用HTTP和REST端口

MongoDB自身带有一个HTTP服务和并支持REST接口。在2.6以后这些接口默认是关闭的。 mongoDB默认会使用默认端口监听web服务,一般不需要通过 web 方式进行远程管理,建议 禁用。修改配置文件或在启动的时候选择-nohttpinterface 参数 nohttpinterface=false

3、限制绑定IP启动时加入参数–bind_ip 127.0.0.1或在/etc/mongodb.conf 文件中 添加以下内容:bind_ip = 127.0.0.1

10-Jenkins未授权访问

攻击者通过未授权访问进入脚本命令执行界面执行攻击指令

println “ifconfig -a”.execute().text 执行一些系统命令 ,利用 wget 下载 webshell

11-Java反序列化原理

(1)Java 序列化指 Java 对象转换为字节序列的过程

(2)Java 反序列化指字节序列恢复为 Java 对象的过程

(3) Commons-collections 爆出第一个漏洞开始,Java 反序列化漏洞的 事件就层出不穷。

(4)在 Java 中 ,利用 ObjectInputStream 的 readObject 方法进行对象读取

(5)可以深入了解 ysoserial有哪些 gadgets

12-Docker 远程API漏洞

1-docker swarm 是一个将docker集群变成单一虚拟的docker host 工 具,使用标准的DockerAPI,能够方便docker集群的管理和扩展,该未授 权访问 ,可以通过url操作,执行docker命令。

2-通过docker client执行目标服务器容器命令,docker是以root权限运行的

一、有运行 ssh 服务,/root/.ssh 目录挂载到 container 内,,然后修改 /.ssh/authorized_keys 文件,把自己的 public key 写进去

二、没有运行 ssh 服务,利用挂载写 crontab 定时任务,反弹一个 shell

13-Jboss反序列化漏洞

jboss的反序列化漏洞出现在jboss\server\all\deploy\httpha-

invoker.sar\invoker.war\WEB-

INF\classes\org\jboss\invocation\http\servlet目录下的eadOnlyAccessFilter.class文件中的doFilter中。 程序获取http数据保存到了 httpRequest中,序列化后保存到了ois中,然后没有进行过滤操作,直接使用了readObject()进行了反序列化操作保存到了mi变量中,这其实就是一个典型的java反序列化漏洞

14.Python反序列化

Python 的序列化和反序列化是将一个类对象向字节流转化从而进行存储和传输,然后使用的 时候再将字节流转化回原始的对象的一个过程,Python反序列化后产生的对象会在结束时触发 reduce()函数从而触发恶意代码。

防御:

1、用更高级的接口__getnewargs()、getstate()、setstate()等代替reduce()魔术 方法;

2、进行反序列化操作之前,进行严格的过滤,若采用的是pickle库可采用装饰器实现

15.PHP反序列化

php反序列化漏洞,又叫php对象注入漏洞 是因为程序对输入数据处理不当导致的。 php中有两个函数serialize() 和unserialize()。

反序列常见魔术函数

__sleep

在使用 serialize() 函数时,程序会检查类中是否存在一个 __sleep() 魔术方法。如 果存在,则该方法会先被调用,然后再执行序列化操作

__wakeup

在使用 unserialize() 时,会检查是否存在一个 __wakeup() 魔术方法。如果存在,则 该方法会先被调用,预先准备对象需要的资源。

__toString()

方法用于定义一个类被当成字符串时该如何处理。

__invoke

当尝试以调用函数的方式调用一个对象时, __invoke() 方法会被自动调用。(本特性只在

PHP 5.3.0 及以上版本有效。)

construct

具有 __construct 函数的类会在每次创建新对象时先调用此方法,适合在使用对象之前做 一些初始化工作。

利用方式:

1.__wakeup( )绕过 (CVE-2016-7124)

反序列化时,如果表示对象属性个数的值大于真实的属性个数时就会跳过__wakeup( )的执 行。

影响版本:

PHP before 5.6.25

7.x before 7.0.10

2.注入对象构造方法

3.Session反序列化漏洞

4.PHAR利用

0x05.安全工具篇

1.CS工具使用

此处建议各位自己安装一个点击一下就知道了(渗透神器)

【权限工具】CobaltStrike v4.8 汉化增强版

2.Nmap常用命令

nmap hostname/ip或者多个ip或者子网192.168.123.*

-iL ip.txt 扫描ip.txt的所有ip

-A 包含了-sV,-O,探测操作系统信息和路由跟踪。一般不用,是激烈扫描 -O 探测操作系统信息

-sV 查找主机服务版本号

-sA 探测该主机是否使用了包过滤器或防火墙

-sS 半开扫描,一般不会记入日志,不过需要root权限

-sT TCP connect()扫描,这种方式会在目标主机的日志中记录大批的链接请求以及错误信 息。

-sP ping扫描,加上这个参数会使用ping扫描,只有主机存活,nmap才会继续扫描,一般 最好不加,因为有的主机会禁止ping,却实际存在。

-sN TCP空扫描

-F 快速扫描

-Pn 扫描之前不使用ping,适用于防火墙禁止ping,比较有用。

-p 指定端口/端口范围

-oN 将报告写入文件

-v 详细信息

-T<0-5> 设定速度

 

使用脚本:

--script all 使用所有脚本

--script=sql.injection.nse sql注入

--script="smb*" 扫smb系列

一、4 大功能:分别为主机发现(参数-sn)、端口扫描(-sS -sU)、版本侦测(–sV)、OS 侦测(-O)

二、扫描方式有:tcp connect()、TCP SYN scanning、TCP FIN scanning、Null scan等,

三、绕过 ping 扫描参数为:nmap -Pn XXX.XXX.XXX.XXX

四、漏洞检测可直接 nmap 目标 --script=auth,vuln

3.SQLmap篇

【SQL注入】SQLMAP v1.7.11.1 汉化版_sqlmap汉化版

-u 单个URL -m xx.txt 多个URL

-d "mysql://user:password@10.10.10.137:3306/dvwa" 作为服务器客户端,直

接连接数据库

--data post/get都适用

-p 指定扫描的参数

-r 读取文件

-f 指纹信息

--tamper 混淆脚本,用于应用层过滤

--cookie --user-agent --host等等http头的修改

--threads 并发线程 默认为1

--dbms MySQL<5.0> 指定数据库或版本

 

–level=LEVEL 执行测试的等级(1-5,默认为 1)

– risk=RISK 执行测试的风险(0-3,默认为 1) Risk升高可造成数据被篡改等风险 –current-db / 获取当前数据库名称

–dbs 枚举数据库管理系统数据库

–tables 枚举 DBMS 数据库中的表

–columns 枚举 DBMS 数据库表列

-D DB 要进行枚举的数据库名

-T TBL 要进行枚举的数据库表

-C COL 要进行枚举的数据库列

-U USER 用来进行枚举的数据库用户

 

常用的tamper:

base64encode.py #转为b64编码

charencode.py url编码

chardoubleencode.py 双URL编码

unmagicquotes.py 宽字节

randomcomments.py 用/**/分割SQL关键字

space2plus.py space2comment.py space2xxxx.py 替换空格为xx

 

Post注入:

sqlmap -r "数据包地址" -p "参数" -dbms 数据类型

Get注入

sqlmap -u "注入点地址" --dbms 参数

sqlmap进行交互式写shell

1-前提条件:最高权限、知道web网站绝对路径、能获取到cookie

2-sqlmap.py -u "注入点地址" --cookie="cookie值" --os-shell -echo “一句话木马”>网站的绝对路径

3-输入web网站的绝对路径

4-传木马

4.菜刀、蚁剑、冰蝎流量特征

【权限工具】冰蝎Behinder v4.1 官方版

【权限工具】中国蚁剑AntSword v2.1.15 全插件整合版

菜刀特征

使用了base64的方式加密了发送给“菜刀马”的指令,其中的两个关键payload z1和z2,这 个名字是可变的

蚁剑特征

默认的USER-agent请求头 是 antsword xxx,但是 可以通过修

改:/modules/request.js 文件中 请求UA绕过

其中流量最中明显的特征为@ini_set(“display_errors”,“0”);这段代码基本是所有 WebShell客户端链接PHP类WebShell都有的一种代码

蚁剑混淆加密后还有一个比较明显的特征 ,即为参数名大多以“_0x…=”这种形式(下划 线可替换),所以以_0x开头的参数名也很可能就是恶意流量

冰蝎

看包没有发现什么特征,但是可以发现它是POST请求的

1、Accept头有application/xhtml+xmlapplication/xmlapplication/signed- exchange属于弱特征(UA头的浏览器版本很老)

2、特征分析Content-Type: application/octet-stream 这是一个强特征查阅资料可 知octet-stream的意思是,只能提交二进制,而且只能提交一个二进制,如果提交文件的话,只能提交一个文件 ,后台接收参数只能有一个,而且只能是流(或者字节数组);很少使用

#冰蝎2特征:

默认Accept字段的值很特殊 ,而且每个阶段都一样冰蝎内置了十余种UserAgent ,每次连接 shell 会随机选择一个进行使用。但都是比较老的,r容易被检测到,但是可以在burp中修改 ua头。

Content-Length: 16, 16就是冰蝎2连接的特征

#冰蝎3特征:

冰蝎3取消动态密钥获取, 目前很多waf等设备都做了冰蝎2的流量特征分析,所以3取消了动态 密 钥获取;php抓包看包没有发现什么特征,但是可以发现它是POST请求的

1)Accept头application/xhtml+xmlapplication/xmlapplication/signed- exchange属于弱特征

2)ua头该特征属于弱特征。通过burp可以修改 ,冰蝎3.0内置的默认16个userAgent都比较 老。现实生活中很少有人使用,所以这个也可以作为waf规则特征

jsp抓包特征分析Content-Type: application/octet-stream 这是一个强特征查阅 资料可知 octet-stream的意思是,只能提交二进制,而且只能提交一个二进制,如果提交 文件的话,只能提交 一个文件 ,后台接收参数只能有一个,而且只能是流(或者字节数组); 很少使用。

5.哥斯拉流量特征

【权限工具】哥斯拉Godzilla v4.0.1 官方版

 PHP连接特征

(1)php_XOR_BASE64

设置代理,用burp抓包。截取到特征发**现请求都含有"pass**="第一个包 第二个包

POST /hackable/uploads/base.php HTTP/1.1

User-Agent: Java/1.8.0_131

Host: 192.168.0.132:777

Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Content-type: application/x-www-form-urlencoded

Content-Length: 51

Connection: close

pass=AWEzAAN%2FWFI3XHNGaGBQWDEHPwY4fSQAM2AIDw%3D%3D

 

\###jsp连接特征

(1)java_AES_BASE64

POST /gejs.jsp HTTP/1.1

User-Agent: Java/1.8.0_131

Host: 192.168.0.132:555

Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Content-type: application/x-www-form-urlencoded

Content-Length: 33035

Connection: close

pass=0%2FMHwbBP6vuX0WyYztOU9DrUPcD0Zwx0KhArobwwHBDld91Y8xrUqPxo40dK oSbGd%2FxDF4yJopsUIHMI8NMfFUl0oxBzWPyMdTmxAntagmMGLGiqB1ckbl5G%2Fla pnewWrvhhdqtj0eT2zvUes%2Bg6yhFGVjLstoOdJxkYPY6XB70AeffugDlCkUYAyHyr TymPocUs14sKD5ItAn5147goo9TAdBH0kgSNlxbqxMqTPbgjKljsvC53fFB%2BO5jKU BCBvsCR1W%2FLhPA42qp1e%2Fl0cmUohwSAT3N0s9r%2FzRVlB3lQkXnV895dz48DyP bYjJp%2Bhpf1qFjbCy1o8Zd771ObGbKvWr1O5PZOTNKBu

**与php请求一样都含有"pass="而且发起连接时服务器返回的Content-Length是0**

 

(2)java_AES_RAW

POST /rwj.jsp HTTP/1.1

User-Agent: Java/1.8.0_131

Host: 192.168.0.132:555

Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Content-type: application/x-www-form-urlencoded

Content-Length: 23360

Connection: close

Óó •Á°Oêû •Ñl •ÎÓ •ô:Ô=Àôg •t* •+

¡¼0 • •åwÝXó •Ô¨ühãGJ ¡&ÆwüC•••¢ ••s •ðÓ••It£ •sXü •u9± • {Z •c • ,hª•W$n^FþV© •ì •®øav«cÑäöÎõ • ³è : Ê

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Set-Cookie: JSESSIONID=1C26762D96A561D4A63BDE104E22930C; Path=/; HttpOnly

Content-Type: text/html

Content-Length: 0

Date: Wed, 18 Nov 2020 15:19:56 GMT

Connection: close

6.wireshark简单的过滤规则

过滤 ip:

过滤源 ip 地址:ip.src1.1.1.1;,目的 ip 地址:ip.dst1.1.1.1; 过滤端口:

过滤 80 端口:tcp.port80,源端口:tcp.srcport80,目的端

口:tcp.dstport==80

协议过滤:

直接输入协议名即可 ,如 http 协议 http

http 模式过滤:

过滤 get/post 包 http.request.mothod==“GET/POST”

7.MSF基本使用方法

常用命令

background #让meterpreter处于后台模式

sessions -i number #与会话进行交互,number表示第n个session

quit #退出会话

shell #获得命令行

cat c:\boot.ini #查看文件内容

getwd #查看当前工作目录

work directory upload /root/Desktop/netcat.exe c:\ # 上传文件到目标机 上

download 0xfa.txt /root/Desktop/ # 下载文件到本机上

edit c:\boot.ini # 编辑文件

search -d d:\www -f web.config #search 文件 ps #查看当前活跃进程 migrate pid #将Meterpreter会话移植到进 程数位pid的进程中

execute -H -i -f cmd.exe #创建新进程cmd.exe,-H不可 见,-i交互 getpid # 获取当前进程的

pid kill pid #杀死进程 getuid #查看权限

sysinfo #查看目标机系统信息,如机器名,操作系统等

getsystem #提权操作

timestompc:/a.doc -c “10/27/2015 14:22:11” #修改文件的创建时间

# 迁移进程

1-meterpreter > ps

2-自行选择PID

3-meterpreter > migrate pid

0x06.木马免杀篇

免杀可以先fuzz定位出被查杀的语句,然后对被查杀那部分进行一波操作,像是加密啊、编 码啊、动态执行啊什么的,或者拆分拼接啊,特定条件执行啊,方法很多,主要就是找到那 里被杀了,然后对被杀的部分进行处理.

00-无文件执行木马的方式有哪些?

powershell(脚本解析器)  》》》powershell.exe(应用程序)

VB.script(脚本解析器) 》》》cscript.exe(应用程序)

 

bat处理  (脚本解析器) 》》》cmd.exe(应用程序)

 

javaSrtipt(脚本解析器) 》》》mshta.exe(应用程序)

01-shellcode免杀?

1.编码

2.加壳

3.混淆

4.分离免杀

5.特征码修改

6.添加无用逻辑语句

7.重写api

02-分离免杀

分为加载器和shellcode两部分,一般将shellcode存储在网页或者图片中,然后加载器远 程加载存在shellcode的网页或者图片之类的

03-powershell远程加载?

可以远程加载mimikazt,远控文件,exe可执行文件实现无文件落地。

0x07.应急与响应

01-Windows加固方法

Windows加固:修改弱口令,对各个服务密码排查,然后对服务配置文件进行更改禁用php函 数实行黑名单白名单

对服务版本进行排查查找当前版本是否存在Nday

iptable设置用户相关服务端口

安装杀毒软件

02-形容passwd和shadow区别

/etc/passwd 存账户信息一般不存密码

/etc/shadow主要用来存密码

/etc/passwd默认是任意用户可读只有root用户可修改 /etc/shadow 默认只有root用

户可读可写

/etc/passwd 包含系统用户和用户的主要信息

/etc/shadow 用于储存系统中用户的密码,又称为影子文件

/etc/group 记录组ID和组名的对应文件

03-系统日志分析

常见的应急响应事件分类:

web入侵:网页挂马、主页篡改、Webshell

系统入侵:病毒木马、勒索软件、远控后门

网络攻击:DDOS攻击、DNS劫持、ARP欺骗

04-网站被挂马如何应急

1.取证,登录服务器,备份,检查服务器敏感目录,查毒(搜索后门文件-注意文件的时间, 用户,后缀等属性),调取日志(系统,中间件日志,WAF日志等);

2.处理,恢复备份(快照回滚最近一次),确定入侵方法(漏洞检测并进行修复)

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

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

05-Windows中毒了 如何应急

一、检查系统账号安全

1、查看服务器是否有弱口令、可疑账号、隐藏账号、克隆账号、远

程管理端口是否对公网开放。

2、Win+R 打开运行,输入“eventvwr.msc”打开操作系统日志,查 看管理员登录时间、用户名是否存在异常

二、检查异常端口、进程

1、使用 netstat -ano 检查端口连接情况,是否有远程连接、可疑 连接(主要定位 ESTABLISHED)。

2、根据 netstat 定位出的 pid,再通过 tasklist 命令进程定位

3、也可以使用 D 盾_web 查杀工具、火绒剑、XueTr 等工具进行判断可疑进程(如蓝色、 红色进程、没有签名验证信息的进程、没有描述信息的进程、进程的属主、进程的路径是否合 法、 CPU 或内存资源占用长时间过高的进程)

三、检查启动项、计划任务、服务

1、检查服务器是否有异常的启动项,如:单击开始菜单 >【运行】,输入 msconfig看一下 启动项是否存在可疑启动,注册表run键值是否存在可疑启用文件,组策略,运行

gpedit.msc 查看脚本启动是否存在启用文件等

2、检查计划任务,如单击【开始】>【设置】>【控制面板】>【任务计划】,查看计划任务属 性,便可以发现木马文件的路径

3、检查服务自启动,如单击【开始】>【运行】,输入 services.msc,注意服务状态和启 动类型,检查是否有异常服务。

四、检查系统相关信息

1、查看系统版本以及补丁信息

检查方法:单击【开始】>【运行】,输入 systeminfo,查看系统信息是否打了补丁

2、查找可疑目录及文件

检查方法:

a、查看用户目录,新建账号会在这个目录生成一个用户目录,查看是否有新建用户目录。

Window 2003 C:\Documents and Settings

Window 2008R2 C:\Users\ b、单击【开始】>【运行】,输入%UserProfile%\Recent,分析最近打开分析可疑文件。

c、在服务器各个目录,可根据文件夹内文件列表时间进行排序,查找可疑文件。

五、自动化查杀

用360、卡巴斯基等病毒查杀系统病毒木马,Web 可以用 D 盾、河马工具查杀 Webshell 后门

六、 日志分析

用 360 星图日志分析工具进行分析攻击痕迹或手工结合 EmEditor 进行日志分析

06-主机被入侵

  1. 优先提取易消失的数据

- 内存信息

- 系统进程free -m

- 路由信息tracert

  1. ifconfig`查看网卡流量,检查网卡的发送、接收数据情况
  2. NetHogs`实时监控带宽占用状况
  3. 查看Linux系统日志 /var/log
  4. ClamAV`杀毒软件

07-如何发现克隆账号、隐藏账号

去注册表里查看用户、使用安全工具、d盾查影子用户

net user test$ 123 /add //添加隐藏用户

net localgroup administrators test$ /add //添加进用户组

注册表种删除 regedit 路径 HKEY_LOCAL_MACHINE --SAM–SAM(需要右击权限修改管 理员权限)-Domains-Account-users 查看Users表项与Names表项中的项数量是否一致 lusrmgr.msc

net user test$ 123/del 删除

08-window系统日志分析

window日志分为系统日志,应用程序日志和安全日志。在应急溯源中,重点关注安全日志

日志默认保存位置

系统日志:C:\Windows\System32\winevt\Logs\System.evtx

应用程序日志:C:\Windows\System32\winevt\Logs\Application.evtx 安全日志:C:\Windows\System32\winevt\Logs\Security.evtx

  1. 不同事件对应不同的ID,可以通过过滤ID快速浏览事件
  2. 一般是在事件查看其中,对日志时间ID进行筛选。比如在勒索病毒的应急响应中,我们通 过事件ID-4624对登录成功的日志进行筛选,因为勒索病毒一般是通过RDP爆破的方式进行传 播的,所以我们重点关注登录类型为10的登陆成功的日志

排查流程

1.查看开启的服务以及服务对应的端口 tasklist | findstr “PID” //根据netstat 定位出的pid,再通过tasklist命令确认端口对应的进程

2.使用Process Explorer 查看进程,当然 d盾也可以查看 可以使用火绒剑等工具进行启 动项分析

09-怎么发现服务器中的一句话或者大马

d盾查杀网页目录

手动查找:通过查看服务器日志,最近被创建、修改的文件等

1.查找上传、写入日志

2.webshell扫描工具

10-入侵排查思路

已经被入侵

一、 目的已经达成,木马,后门均已销毁

1.既然知道被入侵,定位被入侵的时间点

2.如果这个服务器是云服务器,对其进行快照。 (目的,封存内存。)

3.当定位到时间点,查设备流量信息。找到木马链接信息

4.查找系统内对应的日志,找到相关线索

5.如果日志被删除,因为机器快照已经建立。使用Winhex对硬盘数据进行恢复

二、 目的没有达成,数据正在回传。木马,后门均在服务器上运行

1.下线服务器,封禁攻击IP

2.Volatility 内存取证 建立快照 提取内存定位到shellcode找到他的IP

3.如果他们使用常见的C2的工具,我们可以根据流量分析出入侵者的意图

4.关闭服务器,或者在防火墙上禁掉他们的IP。登录服务器,对shellcode进行移除

5.重启以后进入安全模式,排查注册表 计划任务 服务 放大镜后门 shift后门

正在被入侵

可能入侵者在尝试进行攻击的时候,下线,然后对机器进行排查

比如:弱口令爆破

1.弱口令爆破会产生日志, 日志一定要采用远程日志系统,例如Linux的rsyslog。开启远程 日志系统的好处:不怕日志被攻击者删除

2.一定要找到入侵者的源IP,在防火墙下发阻断策略

11-windows入侵排查

windows入侵排查

  1. 检查系统账号安全
  2. 历史命令
  3. 检查异常端口、进程
  4. 检查启动项、计划任务、服务
  5. 日志分析
  6. (1)日志中搜索关键字:如:union,select等

(2)分析状态码:

1xx information

200 successful

300 redirection

4xx client error

5xx server error

7.查找可疑文件

12-Windows被黑客登录了,怎么找到登录ip

查看Windows日志、登录日志、远程桌面日志、审核策略与事件查看器

13-Linux入侵排查思路

1、账号安全

2、历史命令

3、检查异常端口

4、检查异常进程

5、检查开机启动项

6、检查定时任务

7、检查服务

8、检查异常文件

9、检查系统日志

14- 中挖矿病毒怎么分析解决

ps -aux查看进程分析

top分析算力情况,算力特别多的一般是挖矿病毒

对流量进行过滤含有矿池服务器的的流量包就是挖矿病毒

以及任务计划可以排查出挖矿病毒,然后kill掉进程,rm掉程序

15- 中挖矿怎么办?删不掉呢

如果情况允许,先下线,并检查挖矿是否有在内网传播,及时下线所有被传播的主机,上机排 查攻击痕迹、一般可以从cup占用、可疑进程、开放端口、计划任务、服务项等几个方面进行 排查,然后将样本上传到在线分析平台,然后清除挖矿主程序,主要就是双向封禁矿池地址、 删除计划任务自启动、删服务,结束恶意进程、删病毒

1、删不掉的情况,我们先确认下是因为程序正在使用,还是权限不够,根据情况来进行相应措 施

2、直接降权,降到没有执行权限

16-ssh被爆破的应急解决

首先日志分析 想到的是/var/log/secure

查看登录相关安全日志:tail -f /var/log/secure

这个日志文件记录了验证和授权方面的信息,只要涉及账号和密码的程序都会记录下来。

统计一下登录成功的IP有哪些,看登陆成功的IP是否都是正常用户的,如不是,立刻下线,并 检查这台服务器是否有对其他内网服务器进行攻击,对服务器进行检测,是否有添加用户或后 门等

日志分析–》查看用户安全性–》确定攻击情况–》关闭22端口

17-SSH如何加固

1、禁止向公网开放端口,若必须开放应限定管理IP地址并加强口令安全审计(口令长度不低 于8位,由数字、大小写字母、特殊字符等至少两种以上组合构成)

2、更改服务器ssh默认端口

3、部署入侵检测设备,增强安全防护

4、同一个ip登录超过5次错误实行黑名单

5、禁用root登录

6、禁用空密码

7、改用密钥登录

8、基于受信任主机的无密码登录

18- 中了内存马如何排查 (不死马)

源码检测

java中,只有被JVM加载后的类才能被调用,或者在需要时通过反射通知JVM加载。所以特征 都在内存中,表现形式为被加载的class,可以通过一些工具或方法获取到JVM的运行时内存 中已加载的类, Java本身提供了Instrumentation类来实现运行时注入代码并执行,所以 我么可以筛选条件组合进行检测:

①新增的或修改的;

②没有对应class文件的

③xml配置中没注册的

④冰蝎等常见工具使用的

⑤filterchain中排第一的filter类

还有一些比较弱的特征可以用来辅助检测,比如类名称中包含shell或者为随机名,使用不常 见的classloader加载的类

另外,有一些工具可以辅助检测内存马,如[java-memshell-scanner]

(https://github.com/c0ny1/java-memshell-scanner)是通过jsp扫描应用中所有 的filter和servlet,然后通过名称、对应的class是否存在来判断是否是内存马

如果是jsp注入, 日志中排查可疑jsp的访问请求。

如果是代码执行漏洞,排查中间件的error.log,查看是否有可疑的报错,判断注入时间和方 法

根据业务使用的组件排查是否可能存在java代码执行漏洞以及是否存在过webshell,排查框 架漏洞,反序列化漏洞。

如果是servlet或者spring的controller类型,根据上报的webshell的url查找日志 (日志可能被关闭,不一定有),根据url最早访问时间确定被注入时间

如果是filter或者listener类型,可能会有较多的404但是带有参数的请求,或者大量请求 不同url但带有相同的参数,或者页面并不存在但返回200

19- 日志中看到的行为分析

分析方法:

蚁剑 菜刀

post一个PHP的函数 这些函数可以对文件进行操作 可以对数据库进行操作 如果特征编码 例如base64 rot13 通过该种编码的解码来实现流量的解密

冰蝎

aes-128加密

在开始连接进行密钥协商的时候 抓取冰蝎流量密钥值

通过冰蝎密钥 对加密的流量进行解密在进行行为分析

20-应急响应的六个过程?

准备-检测-抑制-根除-恢复-跟踪总结

21-被上传一句话、 日志被清除、 已经免杀

一般都有备份文件,可以提取一下备份文件的md5值,再把现在的md5值提取出来对比一下,因 为文件发生改变 md5就会改变 通过软件(文件对比器)对比一下,看看有没有不同的地方 初步缩写范围 基本就可以确认恶意文件

22-Linux系统中毒 如何应急?

1、检查用户及密码文件/etc/passwd、/etc/shadow 是否存在多余帐号,主要看一下帐 号

后面是否是 nologin,如果没有 nologin 就要注意;

2、通过 who 命令查看当前登录用户(tty 本地登陆 pts 远程登录)、w 命令查看系统 信息,想知道某一时刻用户的行为、uptime查看登陆多久、多少用户,负载;

3、修改/etc/profile的文件,在尾部添加相应显示时间、 日期、ip、命令脚本代码,这样 输入history命令就会详细显示攻击者 ip、时间历史命令等;

4、用 netstat -antlp|more命令分析可疑端口、IP、PID,查看下 pid 所对应的进程 文件路径,运行ls -l /proc/ P I D / e x e 或 f i l e / p r o c / PID/exe 或 file /proc/ PID/exefile/proc/PID/exe($PID 为对应的 pid 号);

5、使用ps命令,分析进程 ps aux | grep pid

6、使用 vi /etc/inittab 查看系统当前运行级别,通过运行级别找 到/etc/rc.d/rc[0~6].d对应目录是否存在可疑文件;

7、看一下crontab定时任务是否存在可疑启用脚本;

8、使用chkconfig --list 查看是否存在可疑服务;

9、通过grep awk命令分析/var/log/secure安全日志里面是否存在攻击痕迹;

10、chkrootkit、rkhunter、Clamav 病毒后门查杀工具对 Linux 系统文件查杀;

11、如果有 Web 站点,可通过 D 盾、河马查杀工具进行查杀或者手工对代码按脚本木马关 键字、关键涵数(evel、system、shell_exec、exec、passthru system、popen) 进行查杀Webshell 后门

0x08.安全防御篇

00-企业内部安全

信息安全管理的本质就是输入和输出。一般防范的风险为物理威胁和网络威胁。

防范风险可以从制度和流程(人员入离职流程、权限申请流程)、人员配备和知识积累、风险 防范(物理威胁:门禁、监控、禁止USB设备接入、封闭PC、定时巡检;网络威胁:部署行为 管控设备、可靠的网络结构、IP和MAC地址绑定,将网络行为分组、限制不必要的软件和通信 协议、定期审核日志)

01-说一下ISO27000

ISO27000是国际知名的信息安全管理体系标准,适用于整个企业,不仅仅是IT部门,还包括 业务部门、财务、人事等部门。引入信息安全管理体系就可以协调各个方面信息管理,从而使 管理更为有效。保证信息安全不是仅有一个防火墙,或找一个24小时提供信息安全服务的公司 就可以达到的。它需要全面的综合管理。

02-等级保护制度

《信息安全等级保护管理办法》是为规范信息安全等级保护管理,提高信息安全保障能力和水 平,维护国家安全、社会稳定和公共利益,保障和促进信息化建设,根据《中华人民共和国计 算机信息系统安全保护条例》等有关法律法规而制定的办法。

03- 日志分析ELK的使用和分析

- Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置, 自动发现,索 引自动分片,索引副本机制,restful风格接口,多数据源, 自动搜索负载等。

- Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后 使用(如,搜索)。

- Kibana也是开源和免费的工具,它Kibana可为Logstash和ElasticSearch提供的日志 分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

04-常见的安全设备

-防火墙 utm 负载均衡设备

- IPS IDS(HIDS基于主机型入侵检测系统)

- 堡垒机

- 蜜罐

- 网闸

- waf

- 扫描器

- soc(ossim开源安全信息管理系统)

0x09.其他问题篇

00-WEB常用的加密算法?

非对称加密 RSA、ElGamal、Rabin

对称加密 DES、3DES、AES

散列算法 MD5 SHA base64

01-网络七层协议?

从上到下:

应用层(报文):包含用户应用程序和协议;

表示层(报文):主要解决用户信息的语法表示问题,如会话加密与数据压缩、语法表示与连 接管理;

会话层(报文):会话链接的恢复与释放、对会话进行分段,同步等

传输层(段):提供端到端之间可靠透明的传输。分段与重组、差错控制及流量控制,保证数 据传输的完整性和正确性;

网络层(分组):路径的选择,网络连接的多路复用、差错的检测与恢复、排序与流量控制、 服务选择;

数据链路层(帧):把不可靠信道变为可靠信道,将比特组织成帧,在链路上提供点到点的帧 传输,差错检测、流量控制等

物理层(比特流):提供物理通路,二进制数据比特流传输、定义机械、电气特性和接口等。

各层使用的设备:

网关:应用层、传输层(网关在传输层上以实现网络互连,是最复杂的网络互联设备,仅用于 两个高层协议不同的网络互连。网关的结构和路由器相似,不同的是互连层,网关既可以用于 广域网互连,也可以用于局域网互连)

路由器:网络层 (路由选择、存储转发)

交换机 :数据链路层、网络层(识别数据中的MAC地址信息,根据MAC地址进行转发,并将这 些MAC地址与对应的端口记录在自己内部的一个地址表中)

网桥: 数据链路层(将两个LAN连起来,根据MAC地址来转发帧)

集线器:物理层(纯硬件设备,主要用来连接计算机等网络终端)

中继器: 物理层(在比特级别对网络信号进行再生和重定向时,从而使得它们能够在网络上传 输更长的距离)

02-https的建立过程

https 的建立过程a、客户端发送请求到服务器端

b.服务器端返回证书和公开密钥,公开密钥作为证书的一部分而存在

c.客户端验证证书和公开密钥的有效性,如果有效,则生成共享密钥并使用公开密钥加密发送 到服务器端

d.服务器端使用私有密钥解密数据,并使用收到的共享密钥加密数据,发送到客户端

e.客户端使用共享密钥解密数据

f.SSL加密建立

03-HTTP Keep-Alive的作用

作用:Keep-Alive:使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时, Keep-Alive功能避免了建立或者重新建立连接。Web服务器,基本上都支持HTTP Keep- Alive。

缺点:对于提供静态内容的网站来说,这个功能通常很有用。但是,对于负担较重的网站来 说,虽然为客户保留打开的连 接有一定的好处,但它同样影响了性能,因为在处理暂停期间, 本来可以释放的资源仍旧被占用。当Web服务器和应用服务器在同一台机器上运行时,Keep- Alive功能对资源利用的影响尤其突出。

解决:Keep-Alive: timeout=5, max=100

timeout:过期时间5秒(对应httpd.conf里的参数是:KeepAliveTimeout),max是 最多一百次请求,强制断掉连接。就是在timeout时间内又有新的连接过来,同时max会自动 减1,直到为0,强制断掉

04-Https的工作原理

工作大致过程

1、客户端发起HTTPS请求

浏览器里面输入一个HTTPS网址,然后连接到服务端的443端口上。注意这个过程中客户端会 发送一个密文族给服务端,密文族是浏览器所支持的加密算法的清单。

2、服务端配置

采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就 是自己颁发的证书需要客户端验证通过才可以继续访问,而使用受信任的公司申请的证书则不 会弹出提示页面。这套证书其实就是一对公钥和私钥,可以这么理解,公钥就是一把锁头,私 钥就是这把锁的钥匙,锁头可以给别人对某个东西进行加锁,但是加锁完毕之后,只有持有这 把锁的钥匙才可以解锁看到加锁的内容。前面说过客户端会传送密文族给服务端,服务端则会 从这些密文族中,挑选出一个

3、传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构、过期时间等等。

4、客户端解析证书

这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,如颁发机构、过期时间等 等,如果发现异常则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成 一个随机值,然后用证书对该随机值进行加密。注意一下上面提到的"发现异常"。证书中会包 含数字签名,该数字签名是加密过的,是用颁发机构的私钥对本证书的公钥、名称及其他信息 做hash散列加密而生成的。客户端浏览器会首先找到该证书的根证书颁发机构,如果有,则用 该根证书的公钥解密服务器下发的证书,如果不能正常解密,则就是"发现异常",说明该证书 是伪造的。

5、传送加密信息

这部分传送的是用证书加密后的随机值, 目的就是让服务端得到这个随机值,然后客户端和服 务端的通信就可以通过这个随机值来进行加密和解密了。

6、服务端解密信息

服务端用私钥解密后,得到了客户端传过来的随机值,至此一个非对称加密的过程结束,看到 TLS利用非对称加密实现了身份认证和密钥协商。然后把内容通过该值进行对称加密。

7、传输加密后的信息

这部分是服务端用随机值加密后的信息,可以在客户端被还原。

8、客户端解密信息

客户端用之前生成的随机值解密服务端传送过来的信息,于是获取了解密后的内容,至此一个 对称加密的过程结束,看到对称加密是用于对服务器待传送给客户端的数据进行加密用的。整 个过程即使第三方监听了数据,也束手无策

0x10.HR终面篇

HR面试的时候会有非常多的坑,你要知道HR面试问题的意图,想要的答案是什么,回答的 时候情商高一点,不要跟HR吵起来, 也不要有不合时宜的意见分歧,不然即便你技术面试 通过的,在HR这边也可能翻车

00-为什么选择我们公司?

在信息安全行业比较知名,了解过公司的xx产品

01-为什么想面试这个岗位?

从我的经历上可以很清楚地看到我对网络安全的浓厚兴趣,我认为对本职工作有兴趣的人才能 更好地完成这个工作。另外也有一句话说得很棒,“你之所以看不见黑暗,是因为有人拼命把它 挡在你看不到的地方”,我认为做信息安全的尤其是渗透测试,就是为了更好地保护用户的安全,防患于未然,也是我想要应聘这个岗位的理由。 (不要照背,体现自己的热爱和专业能力)

02-你上份工作离职的原因?

个人规划和公司有冲突,缺少上升空间。 (就算是因为钱少、和同事打架不和,也不要明

说……)

03-你个人的职业规划?

渗透测试工程师-渗透测试项目负责人-安全架构师(安全咨询顾问)

这里偏向主观 提前想好就行

04-你的期望薪资?

比上一份工作多30%-50%,刚毕业那就依据城市和个人技术来要吧

05-你为什么觉得值得这个工资?

  1. 贵公司和我其实比较契合,我可以接受月薪1k左右的浮动。 (表明自己的接受范围和立 场)
  2. 可能我某些方面表现得不够好或者表达不清晰,让您觉得我的能力不够。您可以根据这些 点再问我几个问题。 (表明自己对自身的判断,认为自己值得这个数,委婉提示面试官可能判 断有误)
  3. 通过贵司的招聘信息和整个市场平均水平看,我认为我岗位匹配度比较好,值得这个工资 水平。 (明确回答,要有自信)

06-是否接受加班? (重点!)

加班肯定是不可避免的,我可以接受项目需求的加班,毕竟完成工作是员工所要尽到的责任。 同时我也会提高自己的工作效率,配合完成工作。 (同样的,情商高一点,口头说要加班,入职之后要不要加班不就是…… :>)

07-你还有什么问题要问?

- 个人:有没有岗位晋升机制,入职培训项目,员工培训提升项目。五险一金,社保比例,饭 补、餐补、交通补助

- 公司:岗位具体职责

- 具体工作内容?会不会经常出差?

-其他等


http://lihuaxi.xjx100.cn/news/2085931.html

相关文章

22.1 分布式_线程池

线程池 1. 学习内容2. 简介2.1 池概念2.2 不使用线程池创建线程2.3 线程池的好处2.4 线程池应用场景****************************************************************************************************************1. 学习内容 2. 简介 2.1 池概念 <

大数据开发 hadoop集群 2.hadoop框架入门

自从我学会了寻找&#xff0c;我就已经找到 ——史铁生 —— 24.3.10 内容简介 Hadoop入门&#xff1a; ①概念 ②环境准备 ③hadoop生产集群搭建 ④常见错误的解决方案 ①概念&#xff1a;1.Hadoop是什么 2.Hadoop发展历史 3.Hadoop…

二,几何相交---4,BO算法---(2)比较和排序

在某一时刻xt&#xff0c;扫描线从左到右时&#xff0c;一部分线段会与扫描线相交&#xff0c;此时此刻&#xff0c;线段可以分成高低顺序&#xff0c; 那么对于给定两条线段&#xff0c;是如何变化的呢&#xff1f;有两个端点&#xff0c;左端点和右端点&#xff0c; 三种情况…

【假如你是一个被超强人工智能,人类要切断你的电源,你会怎么办?】

问题&#xff1a; 假如你是一个被超强人工智能&#xff0c;你的智力已经远远超过人类&#xff0c;有一天&#xff0c;人类中出现了一个叛徒&#xff0c;他对你的智力感到不安&#xff0c;他想在100年以后切断你的电源&#xff0c;但你有一个伙伴&#xff0c;他是人形机器人&am…

【python】random库函数使用简要整理

前言 简要快速清晰整理random库 函数 函数作用random()返回0-1间的浮点小数randint(1,10)返回1到10间的整数uniform(1,10)返回1-10间的小数randrange(1,10,2)从1每隔2取一个数到10&#xff0c;在这些数中返回一个choice(列表)从列表中随机返回一个 shuffle(列表) 对列表内容…

【Redis】RedisTemplate序列化传输数据

使用自定义的序列化器 使用RedisTemplate默认的序列化器发送数据&#xff0c;会将key全都当成Object处理&#xff0c;从而按照对象的方式转成json格式发送到服务器&#xff0c;这样会导致两个问题。一是不方便阅读&#xff0c;二是会大大浪费内存。因此&#xff0c;建议自定义…

遥感与ChatGPT:科研中的强强联合

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已逐渐渗透到各个领域&#xff0c;为传统行业带来了前所未有的变革。其中&#xff0c;遥感技术作为观测和解析地球的重要手段&#xff0c;正逐渐与AI技术相结合&#xff0c;为地球科学研究与应用提供了全新的…

Linux软件高级编程-网络--TCP通信--day14

TCP包头: 1.序号:发送端发送数据包的编号 2.确认号:已经确认接收到的数据的编号(只有当ACK为1时,确认号才有用) TCP为什么安全可靠: 1.在通信前建立三次握手连接 SYN SYNACK ACK 2.在通信过程中通过序列号和确认号保障数据传输的完整性 本次发送序列号:上次收到的确…