第二天:基础入门-Web应用&架构搭建&漏洞&HTTP数据包&代理服务器

Shell 俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
简单说用户通过壳(shell)访问操作系统内核的服务,也就是由壳到内核,执行系统命令。【那么反弹就很好理解了,攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,就叫反弹连接。】

什么是反弹 Shell
我们都知道 Shell 的概念吧,简单来说,Shell 就是实现用户命令的接口,
通过这个接口我们就能实现对计算机的控制,比如我们常见的 ssh 就是执行的 Shell 命令实现对远程对服务器的控制。

那反弹 Shell 是啥呢?其英文名叫做 Reverse Shell,具体干什么的呢?
就是控制端首先监听某个 TCP/UDP 端口,然后被控制端向这个端口发起一个请求,
同时将自己命令行的输入输出转移到控制端,从而控制端就可以输入命令来控制被控端了。

比如说,我们有两台主机 A、B,我们最终想实现在 A 上控制 B。
那么如果用正向 Shell,其实就是在 A 上输入 B 的连接地址,
比如通过 ssh 连接到 B,连接成功之后,我们就可以在 A 上通过命令控制 B 了。
如果用反向 Shell,那就是在 A 上先开启一个监听端口,然后让 B 去连接 A 的这个端口,
连接成功之后,A 这边就能通过命令控制 B了。

中间件(Middleware)是提供系统软件和应用软件之间连接的软件,
以便于软件各部件之间的沟通。中间件处在操作系统和应用软件之间。
它的功能是:将应用软件运行环境与操作系统隔离,从而实现应用程序开发者不必考虑更多的系统问题,
直接关注该应用程序的问题 。容器就是中间件的一种。
容器:容器是中间件的一种,处在操作系统和应用软件之间,给处于其中的应用程序组件提供一个环境,
使应用程序直接跟容器中的环境变量交互,而不必关注其它系统问题。

非交互式shell
非交互式模式,以shell script(非交互)方式执行。在这种模式 下,shell不与你进行交互,
而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾EOF,shell也就结束了。

交互式shell
交互式模式就是在终端上执行,shell等待你的输入,并且立即执行你提交的命令。
这种模式也是大多数用户非常熟悉的:登录、执行一些命令、退出。当你退出后,shell也终止了。

正向连接
第一种,目标主机具有公网IP地址,能够被外网直接访问。
此时攻击者可以直接访问目标机器,这种连接方式叫做正向连接。
我们只需要在目标机器开启shell监听,然后攻击机器直接访问即可。

反弹shell
第二种,目标主机处于内网环境下,不可以被外网直接访问,
只能主动将shell反弹出来.这种方式称作反弹shell.

Web应用环境构架
程序源码通过开发语言区分:PHP,JAVA,Python,Go等

通过中间件区分:IIS,Apache,Nginx,Tomcat,Weblogic

通过数据库类型:Access,Mysql(3306),Mssql(1443),Oracle(1521),MongoDB(27107)等,括号内为该数据库默认开启端口。

服务器操作类型:Windows系列,Linux系列,Mac系列(少见)

第三方软件:phpmyadmin,vs-ftpd,VNC等

当收集到Web应用更多信息,对渗透测试的帮助也会越大。
如:中间件漏洞,数据库漏洞,第三方组件漏洞等都会为接下来的渗透测试提供帮助。

了解返回包常见的状态码含义
200 :可正常访问,且文件存在。请求已正常处理。

3XX:表示浏览器需要执行某些特殊处理以正确访问。

301:资源url已更新,永久性重定向。

302:资源URL临时定位到其他位置,临时性重定向。

304:资源以找到,但未符合条件请求。

4XX:表示客户端存在异常。

403:文件夹存在,不允许访问该资源。

400:服务器端无法理解客户端发送的请求,可能请求包存在语法错误。

401:表示没有权限访问。

404:不存在文件或文件夹。

5XX代表服务端异常

500:服务端内部资源错误

503:服务器超负载或停机维护。

你可能感兴趣的:(网络安全,web安全,服务器,网络)