基础入门

发布于 2024-02-16  332 次阅读


渗透测试常用专业术语

前后端,Poc/ExP,Payload/sellcode,后门/Webshell,木马/病毒,反弹,回显,跳板,黑白盒测试,暴力破解,社会工程学,撞库,ATT&Ck等

1. POC、EXP、Payload与Shellcode

POC:全称 ' Proof of Concept ',中文 ' 概念验证 ' ,常指一段漏洞证明的代码。
EXP:全称 ' Exploit ',中文 ' 利用 ',指利用系统漏洞进行攻击的动作。
Payload:中文 ' 有效载荷 ',指成功exploit之后,真正在目标系统执行的代码或指令。
Shellcode:简单翻译 ' shell代码 ',是Payload的一种,由于其建立正向/反向shell而得名。

2. 几点注意

POC是用来证明漏洞存在的,EXP是用来利用漏洞的,两者通常不是一类,或者说,PoC通常是无害的,Exp通常是有害的,有了POC,才有EXP。
Payload有很多种,它可以是Shellcode,也可以直接是一段系统命令。同一个Payload可以用于多个漏洞,但每个漏洞都有其自己的EXP,也就是说不存在通用的EXP。
Shellcode也有很多种,包括正向的,反向的,甚至meterpreter。
Shellcode与Shellshcok不是一个,Shellshock特指14年发现的Shellshock漏洞。

3. Payload模块

在Metasploit Framework 6大模块中有一个Payload模块,在该模块下有Single、Stager、Stages这三种类型,Single是一个all-in-one的Payload,不依赖其他的文件,所以它的体积会比较大,Stager主要用于当目标计算机的内存有限时,可以先传输一个较小的Stager用于建立连接,Stages指利用Stager建立的连接下载后续的Payload。Stager和Stages都有多种类型,适用于不同场景。

4. 总结

想象自己是一个特工,你的目标是监控一个重要的人,有一天你怀疑目标家里的窗子可能没有关,于是你上前推了推,结果推开了,这是一个POC。之后你回去了,开始准备第二天的渗透计划,第二天你通过同样的漏洞渗透进了它家,仔细查看了所有的重要文件,离开时还安装了一个隐蔽的录音笔,这一天你所做的就是一个EXP,你在他家所做的就是不同的Payload,就把录音笔当作Shellcode吧!

POC:”Proof of Concept” 概念代码常指一段漏洞证明的代码
Exp:直接利用的漏洞,可以有攻击动作
前后端:前端通常指与用户可视,交互信息的一端,后端常为处理信息,做出响应的一端
Payload:有效载荷,指在漏洞利用后,真正在目标系统执行的代码或指令
Shellcode:payload的一种,常有正向、反向。
后门/Webshell:给进入系统的方式增加一道门,通常由攻击者上传,方便下次再进入,也有开发人员预留后面,方便日后维护。
木马/病毒:表面上正常但是运行时对系统造成损害的,例如控制系统权限、修改系统文件等。
反弹:防火墙对入站流量检测非常严格,但是对出站流量非常宽松,用受害机主动连接攻击机,让控制流量即变为出站流量。
回显:在客户端做出一些列动作后,服务器回显回来的消息,常见的如200,404,也有一些有用的错误信息。
跳板:一个具有辅助功能的机器,利用这台主机作为间接工具,攻击其他机器,与肉鸡连用
黑盒白盒测试:黑盒指无法看到源代码,在黑暗中进行测试,不断用工具猜测出大致代码;白盒指代码可见,在能看见代码情况下根据一些常见薄弱点、敏感函数进行测试。
暴力破解:排列组合,逐一尝试
社会工程学:利用人性的一些弱点。
撞库:利用收集的其他地方的用户信息和密码信息,生成对应的字典表,对该用户其他内容进行登陆尝试。

5.参考:

https://www.cnblogs.com/sunny11/p/13583083.html
web安全入门篇-渗透测试中常用的命令
文件下载命令生成网页——菱角社区

# 操作系统-用途&命令&权限&用户&防火墙
    1、个人计算机&服务器用机
    2、Windows&Linux常见命令
    3、文件权限&服务权限&用户权限等
    4、系统用户&用户组&服务用户等分类
    5、自带防火墙出站&入站规则策略协议

# 反弹shell命令-解决数据回显&解决数据通讯
数据回显: 知道命令有没有回应 nc
useradd 用户名 passwd 用户名
测试Linux系统添加用户或修改密码命令交互回显问题

#防火墙绕过-正向连接&反向连接&内网服务器
1、内网:
内网      ->   外网
外网   !->   内网
2、防火墙:
博客服务器          <->                  aliyun (在没有防火墙时)
博客服务器 防火墙     - >     aliyun (有防火墙后)
aliyun        !->                博客服务器  防火墙
防火墙入站检测严格,出站检测宽松
正向连接和反向连接:基于某个参照,例如本机为攻击机(参照物),受害机主动连接即为反向连接,但是对于受害机主动发出即为主动连接

WEB应用    抓包技术

#网站搭建前置知识
域名,子域名,DNS,HTTP/HTTPS,证书等

#WEB应用环境架构类
理解不同WEB应用组成角色功能架构:
开发语言,程序源码,中间件容器,数据库类型,服务器操作系统,第三方软件等
开发语言:asp,php,aspx,jsp,java,python,rmby,go,html,javascript等
程序源码:根据开发语言分类:应用类型分类:开源cMS分类:开发框架分类等
中间件容器:IIs,Apache,Nginx,Tomcat,Weblogic,Jboos,glasshfish等
数据库类型:Acces3,Mysql,Mssql,Oracle,db2,Syba3e,Redis,MongoDB等
服务器操作系统:Windows.系列,Linux系列,Mac系列等
第三方软件:phpmyadmin,v3-ftpd,VNC,ELK,Openssh等

#WEB应用安全漏洞分类
大部漏洞在程序源码产生的
SQL注入,文件安全,RCE执行,XSS跨站,CSRF/SSRE/CRLF,
反序列化,逻辑越权,未授权访问,XE/L,弱口令安全等

#WEB请求返回过程数据包参考:
WEB请求处理一:浏览器请求发起处理
HTTP协议数据包简单总结
请求数据包,请求方法,请求体,响应包,相应头,状态码,代理服务器等
Request,Response,User-Agent,Cookie,Server,Content-Length等
通信过程
建立连接——>发送请求数据包——>返回响应数据包——>关闭连接
数据格式
请求数据包含什么
1.请求行:请求类型/请求资源路径、协议的版本和类型
2.请求头:一些键值对,一般由w3c定义,浏览器与web服务器之间都可以发送,表示特定的某种含义
3.【空行】请求头与请求体之间用一个空行隔开;
4.请求体:要发送的数据(一般post方式会使用);例:userName=123&password=123&returnUrl=/

请求头含义:

  • Accept:指浏览器或其他客户可以接爱的MIME文件格式。Servlet可以根据它判断并返回适当的文件格式。
  • User-Agent:是客户浏览器名称
  • Host: 对应网址URL中的Web名称和端口号。
  • Accept-Langeuage:指出浏览器可以接受的语言种类,如en或en-us,指英语。
  • connection: 用来告诉服务器是否可以维持固定的HTTP连接。http是无连接的,HTTP/1.1使用Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接

get和post的区别

1.get直接在浏览器输入,post需要工具发送请求
2.get用url或者cookie传参,post将数据放在body中
3.get的URL有长度限制,post数据可以非常大
4.post比get安全,因为URL看不到数据
5.get用来获取数据,post用来发送数据

常见状态码

2XX 成功
200 ok(请求成功)
204 no content (请求成功,但是没有结果返回)
206 partial content (客户端请求一部分资源,服务端成功响应,返回一范围资源)
3XX 重定向
301 move permanently (永久性重定向)
302 found (临时性重定向)
303 see other (查看其它地址。与301类似。使用GET和POST请求查看)
304 not modified (无需再次传输请求的内容,也就是说可以使用缓存的内容。)
307 temporary redirect (跟302一个意思)
4XX 客户端错误
400 bad request (客户端请求的语法错误,服务器无法理解)
401 unauthorized (需要认证(第一次返回)或者认证失败(第二次返回))
403 forbidden (服务器理解请求客户端的请求,但是拒绝执行此请求)
404 not found (服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面)
5XX 服务器错误
500 internal server error (服务器内部错误,无法完成请求)
503 service unavailable (由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中)

数据包-WAF 文件目录扫描-代理服务器

没设代理 : 浏览器——服务器
设置代理 : 浏览器——代理——服务器

本地代理 : 127.0.0.1 8888
Burpsuite 监听 127.0.0.1 8888
burp拦截后选择性丢弃或放行


  1. 为什么要抓包? -有些应用是看不到的--抓包应用的资产信息进行安全测试
  2. 抓包的对象有那些? - 小程序,APP,桌面应用等
  3. 抓包协议区别工具?-有部分应用不走HTTP/S,需要用到全局协议抓包(鲨鱼,科来)
  4. 封包和抓包的不同之处?-零散和整体的区别,封包能精准到每个操作的数据包

环境-安装模拟器-配置证书-设置HTTP代理

web应用站点操作数据抓包-浏览器审查查看元素监听
APP&小程序&PC抓包HTTP/S数据-Charles&Fiddler&Burpsuite
程序进程&网络接口&其他协议抓包-WireShark&科来网络分析系统
通讯类应用封包分析发送接收-WPE四件套封包&科来网络分析系统

加密算法

一、常见加密类型&举例&识别

1.1#密码存储加密 

MD5 值是 32 或 16 位位由数字"0-9"和字母"a-f"所组成的字符串

SHA1 这种加密的密文特征跟 MD5 差不多,只不过位数是 40

NTLM 这种加密是 Windows 的哈希密码,标准通讯安全协议

AES,DES,RC4 这些都是对称性加密算法,引入密钥,密文特征与 Base64 类似

应用场景:各类应用密文,自定义算法,代码分析,CTF 安全比赛等

1.2#传输数据编码

BASE64 值是由数字"0-9"和字母"a-f"所组成的字符串,大小写敏感,结尾通常有符号=

URL 编码是由数字"0-9"和字母"a-f"所组成的字符串,大小写敏感,通常以%数字字母间隔

HEX 编码是计算机中数据的一种表示方法,将数据进行十六进制转换,它由 0-9,A-F,组成

ASCII 编码是将 128 个字符进行进制数来表示,常见 ASCII 码表大小规则:0~9<A~Z<a~z

举例:

个人博客-URL 解码

国外WEB-BASE64 解码

搜狐视频-BASE64 解码

应用场景:参数传递(如注入影响),后期 WAF 绕过干扰写法应用,视频地址还原等

1.3#JS 前端代码加密

颜文字特征:一堆颜文字构成的 js 代码,在 F12 中可直接解密执行

jother 特征:只用! + ( ) [ ] { }这八个字符就能完成对任意字符串的编码。也可在 F12 中解密执行

JSFUCK 特征:与 jother 很像,只是少了{ }

解密工具:http://www.jsfuck.com/

1.4#后端代码加密 

PHP:乱码,头部有信息

解密工具:http://dezend.qiling.org/free/

.NET:DLL 封装代码文件

解密工具:ILSpy

JAVA:JAR&CLASS 文件

举例:Zend ILSpy IDEA

应用场景:版权代码加密,开发特性,CTF 比赛等

1.5数据库密文加密 

MYSQL MSSQL 等

1.6数据显示编码 

UTF-8 GBK2312 等

1.7识别算法编码类型:

  •  看密文位数
  •  看密文的特征(数字,字幕,大小写,符号等) 
  •  看当前密文存在的地方(web,数据库,操作系统等应用)

加解密工具网站
https://www.cmd5.com
http://www.jsfuck.com
CTF在线工具-CTF工具|CTF编码|CTF密码学|CTF加解密|程序员工具|在线编解码
在线AES加密解密、AES在线加密解密、AES encryption and decryption--查错网
CTF 中常见密码题解密网站总结(建议收藏)
https://blog.csdn.net/qq_41638851/article/details/100526839
CTF 密码学常见加密解密总结(建议收藏)
https://blog.csdn.net/qq_40837276/article/details/83080460
30 余种加密编码类型的密文特征分析(建议收藏)
https://blog.csdn.net/weixin_45728976/article/details/109219997
CTF赛题-buuoj-single dog-JS颜文字
https://buuoj.cn/challenges 搜single dog
CTF赛题-xuenixiang-Jsfuck-JSFUCK
https://www.xuenixiang.com 搜JSFUCK

资产架构

一、资产架构

1.1WEB 单个源码指向安全

通常指代一个主机一个web网站

1.2WEB 多个目录源码安全

一个网站,两个程序,任何一个程序出现漏洞,都可以进入安全测试

1.3WEB 多个端口源码安全

指的是将不同网站分别架设再一个IP上的不同端口

1.4服务器架设多个站点安全

一个网站配置了多个域名,都属于同一个服务器。

1.5架设第三方插件接口安全 

插件:WEB源码插件;WEB应用插件;phpmyadmin:便于管理数据库

方便了管理人员管理数据库,在源码上做了应用安装,但会增加漏洞发风险,方便了攻击者进行攻击数据库的可能

1.6服务器架设多个应用安全

服务器应用  ftp

方便管理人员进行文件操作,也方便攻击者进行攻击FTP协议服务

二、番外安全

基于域名解析安全

基于服务器本身安全 

基于服务商信息安全 

基于管理个人的安全

三、考虑阻碍

阻碍-站库分离:

就是网站和数据库不在同一个ip下,当你想要获取这个网站的数据库里面的信息时,攻下网站时,发现数据库不在127.0.0.1,也就是本地,而在其他地方。就会达不到目的。

阻碍-CDN 加速服务 :

攻击的也是缓存,对真实IP没有影响

阻碍-负载均衡服务 :

防止服务器崩溃或者被攻击,用多台服务器做备用机。即使安全测试中拿到权限,也很有可能拿到的是备用机权限

阻碍-WAF 应用防火墙 :

有效拦截SQL注入、XXS跨站攻击、恶意代码、网站挂马等常见攻击、过滤恶意访问。降低数据泄露的风险,保障网站可用性。

阻碍-主机防护防火墙:

主机防护:拿到主机权限后,向服务器上传文件,主机防护就会报警

服务器安全狗:拿到主机权限后想下一步通过网站权限提权,服务器安全产品开始制止。

後悔しない
最后更新于 2024-02-22