Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。
它在黑客中并没有什么意思,只是常用的命令而已.
1,肉鸡:所谓“肉鸡”是一种很形象的比喻,比喻那些可以随意被我们控制的电脑,对方可以是WINDOWS系统,也可以是UNIX/LINUX系统,可以是普通的个人电脑,也可以是大型的服务器,我们可以象操作自己的电脑那样来操作它们,而不被对方所发觉。
2,木马:就是那些表面上伪装成了正常的程序,但是当这些被程序运行时,就会获取系统的整个控制权限。有很多黑客就是 热中与使用木马程序来控制别人的电脑,比如灰鸽子,黑洞,PcShare等等。
3,网页木马:表面上伪装成普通的网页文件或是将而已的代码直接插入到正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马的服务端下载到访问者的电脑上来自动执行。
4,挂马:就是在别人的网站文件里面放入网页木马或者是将代码潜入到对方正常的网页文件里,以使浏览者中马。
5,后门:这是一种形象的比喻,入侵者在利用某些方法成功的控制了目标主机后,可以在对方的系统中植入特定的程序,或者是修改某些设置。这些改动表面上是很难被察觉的,但是入侵者却可以使用相应的程序或者方法来轻易的与这台电脑建立连接,重新控制这台电脑,就好象是入侵者偷偷的配了一把主人房间的要是,可以随时进出而不被主人发现一样。
通常大多数的特洛伊木马(Trojan Horse)程序都可以被入侵者用语制作后门(BackDoor)
6,rootkit:rootkit是攻击者用来隐藏自己的行踪和保留root(根权限,可以理解成WINDOWS下的system或者管理员权限)访问权限的工具。通常,攻击者通过远程攻击的方式获得root访问权限,或者是先使用密码猜解(破解)的方式获得对系统的普通访问权限,进入系统后,再通过,对方系统内存在的安全漏洞获得系统的root权限。然后,攻击者就会在对方的系统中安装rootkit,以达到自己长久控制对方的目的,rootkit与我们前边提到的木马和后门很类似,但远比它们要隐蔽,黑客守卫者就是很典型的rootkit,还有国内的ntroorkit等都是不错的rootkit工具。
9,IPC$:是共享“命名管道”的资源,它是为了让进程间通信而开放的饿命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。
10.弱口令:指那些强度不够,容易被猜解的,类似123,abc这样的口令(密码)
11.默认共享:默认共享是WINDOWS2000/XP/2003系统开启共享服务时自动开启所有硬盘的共享,因为加了"$"符号,所以看不到共享的托手图表,也成为隐藏共享。
12.shell:指的是一种命令指行环境,比如我们按下键盘上的“开始键+R”时出现“运行”对话框,在里面输入“cmd”会出现一个用于执行命令的黑窗口,这个就是WINDOWS的Shell执行环境。通常我们使用远程溢出程序成功溢出远程电脑后得到的那个用于执行系统命令的环境就是对方的shell
13.webshell:webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做是一种网页后门。黑客在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,好后就可以使用浏览器来访问这些asp 或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。可以上传下载文件,查看数据库,执行任意程序命令等。国内常用的webshell有海阳ASP木马,Phpspy,c99shell等
14.溢出:确切的讲,应该是“缓冲区溢出”。简单的解释就是程序对接受的输入数据没有执行有效的检测而导致错误,后果可能是造成程序崩溃或者是执行攻击者的命令。大致可以分为两类:(1)堆溢出(2)栈溢出。
15.注入:随着B/S模式应用开发的发展,使用这种模式编写程序的程序员越来越来越多,但是由于程序员的水平参差不齐相当大一部分应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想要知的数据,这个就是所谓的SQLinjection,即:SQL注意入。
16.注入点:是是可以实行注入的地方,通常是一个访问数据库的连接。根据注入点数据库的运行帐号的权限的不同,你所得到的权限也不同。
17.内网:通俗的讲就是局域网,比如网吧,校园网,公司内部网等都属于此类。查看IP地址如果是在以下三个范围之内的话,就说明我们是处于内网之中的:10.0.0.0—10.255.255.255,172.16.0.0—172.31.255.255,192.168.0.0—192.168.255.255
18.外网:直接连入INTERNET(互连网),可以与互连网上的任意一台电脑互相访问,IP地址不是保留IP(内网)IP地址。
19.端口:(Port)相当于一种数据的传输通道。用于接受某些数据,然后传输给相应的服务,而电脑将这些数据处理后,再将相应的恢复通过开启的端口传给对方。一般每一个端口的开放的偶对应了相应的服务,要关闭这些端口只需要将对应的服务关闭就可以了。
20.3389、4899肉鸡:3389是WINDWS终端服务(Terminal Services)所默认使用的端口号,该服务是微软为了方便网络管理员远程管理及维护服务器而推出的,网络管理员可以使用远程桌面连接到网络上任意一台开启了终端服务的计算机上,成功登陆后就会象操作自己的电脑一样来操作主机了。这和远程控制软件甚至是木马程序实现的功能很相似,终端服务的连接非常稳定,而且任何杀毒软件都不会查杀,所以也深受黑客喜爱。黑客在入侵了一台主机后,通常都会想办法先添加一个属于自己的后门帐号,然后再开启对方的终端服务,这样,自己就随时可以使用终端服务来控制对方了,这样的主机,通常就会被叫做3389肉鸡。Radmin是一款非常优秀的远程控制软件,4899就是Radmin默认使以也经常被黑客当作木马来使用(正是这个原因,目前的杀毒软件也对Radmin查杀了)。有的人在使用的服务端口号。因为Radmin的控制功能非常强大,传输速度也比大多数木马快,而且又不被杀毒软件所查杀,所用Radmin管理远程电脑时使用的是空口令或者是弱口令,黑客就可以使用一些软件扫描网络上存在Radmin空口令或者弱口令的主机,然后就可以登陆上去远程控制对恶劣,这样被控制的主机通常就被成做4899肉鸡。
21.免杀:就是通过加壳、加密、修改特征码、加花指令等等技术来修改程序,使其逃过杀毒软件的查杀。
22.加壳:就是利用特殊的酸法,将EXE可执行程序或者DLL动态连接库文件的编码进行改变(比如实现压缩、加密),以达到缩小文件体积或者加密程序编码,甚至是躲过杀毒软件查杀的目的。目前较常用的壳有UPX,ASPack、PePack、PECompact、UPack、免疫007、木马彩衣等等。
23.花指令:就是几句汇编指令,让汇编语句进行一些跳转,使得杀毒软件不能正常的判断病毒文件的构造。说通俗点就是”杀毒软件是从头到脚按顺序来查找病毒。如果我们把病毒的头和脚颠倒位置,杀毒软件就找不到病毒了“。
先写这么多吧,希望对哥们们有帮助了哈
“反弹端口”原理:
服务端(被控制端)主动连接客户端(控制端),为了隐蔽起见,监听端口一般开在80(提供HTTP服务的端口),这样,即使用户使用端口扫描软件检查自己的端口,也难以发现。而控制端发给服务端的数据是一个第三方的空间来实现的,一般用一个主页空间,控制端通过FTP写主页空间上的一个文件,而服务端定期?*** TTP协议读取这个文件的内容,当发现客户端让自己开始连接时,就主动连接。这样,控制端就可以穿过防火墙,甚至还能访问局域网内部的电脑。
软件加壳:
“壳”是一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。经过加壳的软件在跟踪时已看到其真实的十六进制代码,因此可以起到保护软件的目的。
软件脱壳:
顾名思义,就是利用相应的工具,把在软件“外面”起保护作用的“壳”程序去除,还文件本来面目,这样再修改文件内容就容易多了。
蠕虫病毒:
它利用了WINDOWS系统的开放性特点,特别是COM到COM+的组件编程思路,一个脚本程序能调用功能更大的组件来完成自己的功能。以VB脚本病毒为例,它们都是把VBS脚本文件加在附件中,使用*.HTM,VBS等欺骗性的文件名。蠕虫病毒的主要特性有:自我复制能力、很强的传播性、潜伏性、特定的触发性、很大的破坏性。
缓冲区溢出:
功击者向一个地址区输入这个区间存储不下的大量字符。在某些性况下,这些多余的字符可以作为“执行代码”来运行,因此足以使功击者不受安全措施限制地获得计算机的控制权。
CMD:
是一个所谓命令行控制台。有两条进入该程序的通道:第一、鼠标点击“开始—运行”,在出现的编辑框中键入“CMD”,然后点击“确定”;第二、在启动Windows2000的时候,按F8进入启动选择菜单,移动光条或键入数字至安全模式的命令行状态。出现的窗口是一个在win9x系统常见的那种MSDOS方式的界面。尽管微软把这个工具当做命令解释器一个新的实例,但使用方法去和原来的DOS没有区别。
嗅控器:
(Snifffer)就是能够捕获网络报文的设备。嗅控器的正当用处在于分析网络的流量,以便找出所关心的网络中潜在的问题。
密罐:(Honeypot)
是一个包含漏洞的系统,它摸拟一个或多个易受功击的主机,给黑客提供一个容易功击的目标。由于密罐没有其它任务需要完成,因此所有连接的尝试都应被视为是可疑的。密罐的另一个用途是拖延功击者对其真正目标的功击,让功击者在密罐上浪费时间。与此同时,最初的功击目标受到了保护,真正有价值的内容光焕发不将受侵犯。
路由器(Routers):
是用来连接不同子网的中枢,它们工作于osi 7层模型的传输层和网络层。路由器的基本功能就是将网络信息包传输到它们的目的地。一些路由器还有访问控制列表(ACLs),允许将不想要的信息包过滤出去。许多路由器都可以将它们的日志信息注入到IDS系统中,提供有关被阻挡的访问网络企图的宝贵信息。
Unicode漏洞:
Unicode是一个16位的字符集,他可以移植到所有主要的计算机平台并且覆盖几乎整个世界。微软IIS4和5都存在利用扩展Unicode字符取代“/”“\”而能利用“../”目录便利的漏洞。未经授权的用户可能利用IUSR_machinename帐号的上下文空间访问任何已知的文件。该帐号在默认情况下属于Everyone和Users组的成员,因此任何与Web根目录在同一个逻辑驱动器上的能被这些用户组访问的文件都能被删除、修改或执行,如同一个用户成功的登陆所能完成的功能一样!
CGI漏洞:
CGI是Common Gateway Inerface(公用网关接口)的简称,并不特指一种语言。Web服务器的安全问题主要包括:1)Web服务器软件编制中的BUG;2)服务器配置的错误。可能导致CGI源代码泄漏,物理路径信息泄漏,系统敏感信息泄漏或远程执行任意命令。CGI语言漏洞分为以下几类:配置错误、边界条件错误、访问验证错误、来源验证错误、输入验证错误、策略错误、使用错误等等。CGI漏洞大多分为一下几种类型:暴露不该暴露的信息、执行不该执行的命令、溢出。
SSL漏洞:
SSL是Secure Socket Layer的缩写。是网上传输信用卡和帐户密码等信息时广泛采用的行业加密标准。SSL常见的安全漏洞有三种:1、攻击证书,由于IIS服务器提供“客户端证书映射”功能,用于将客户端提交证书中的名字映射到NT系统的用户帐号,再这种情况下我们能够获得该主机的系统管理员权限!如果黑客不能利用非法的证书突破服务器,还可尝试暴力攻击。2、窃取证书,黑客还可能窃取有效的证书及相关的思友密匙。3、安全盲点。没有网络检测系统再加上没有安全漏洞审查,使得最重要的服务器反而成为受到最少防护的服务器。
IPC$漏洞:
IPC$是共享“命名管道”的资源,它对于程序间的通讯十分重要。再远程管理计算机和查看计算机的共享资源时使用。利用IPC我们可以与目标主机建立一个空的连接,而利用这个空连接,我们还可以得到目标主机上的用户列表。但是,一些别有用心的人会利用IPC$,查找我们的用户列表,并使用一些字典工具,对我们的主机进行入侵攻击。
IIS漏洞:
IIS是Internet Information Service的缩写。是微软公司的Web服务器。IIS支持多种需要服务器端处理的文件类型,当一个WEB用户从客户端请求此类文件时,相应的DLL文件将自动对其进行处理。然而再ISM.DLL这个负责处理HTR文件的文件中被发现存在严重的安全漏洞。该漏洞包含了一个再ISM.DLL重未经验证的缓冲,他可能对WEB服务器的安全运作造成两方面的威胁。首先,是来自服务拒绝攻击的威胁,另一个威胁通过使用一个精心构建过的文件请求将可以利用标准缓存溢出手段导致2进制代码再服务器端运行,再这种情况下,什么都可能发生!
NTLM验证:
NTLM(NT LAN Mangager)是微软公司开发的一种身份验证机制,从NT4开始就以之使用,主要用于本地的帐号管理。
IPC管道:
为了更好的控制和处理不同进程之间的通信和数据交换,系统会通过一个特殊的连接管道来调度整个进程。
3389漏洞:
由于微软的原因,使得安装了微软服务终端和全拼的Win2K服务器存在着远程登陆并能获得超级用户全县的严重漏洞。
139漏洞:
通过139端口入侵是网络攻击中常见的一种攻击手段,一般情况下139端口开启是由于NetBIOS网络协议的使用。NetBIOS就是网络基本输入输出系统,系统可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名解析为相应的IP地址,从而实现信息通讯。再局域网内部使用NetBIOS协议可以非常方便的实现消息通信,但是如果再Internet上,NetBIOS就相当于一个后门程序,很多攻击这都是通过NetBIOS漏洞发起攻击的!
shell:
shell是系统与用户的交换方式界面。简单来说,就是系统与用户“沟通”的环境。我们平时常用到的DOS,就是一个shell。(Windows2000是cmd.exe)
root:
Unix里面最高权限的用户~即超级管理员
admin:
Windows NT里面最高权限的用户~
rootshell:
通过溢出程序,再主机溢出一个具有root权限的shell。(顺便说一句,国内一知名黑客也叫这个名字)
IDS:
入侵检测系统,用于在黑客发起进攻或是发起进攻之前检测到攻击,并加以拦截。IDS是不同于防火墙的,防火墙只能屏蔽入侵,而IDS却可以在入侵发生以前,通过一些信息来检测到即将发生的攻击或是入侵以作出反应。
UDP:
一种传输层协议,在网络上不可靠的传输数据包,被DNS用于查询和应答,许多流音频和视频应用也使用它。
API:
一套定义的一致性方法,软件开发人员能用他来编写与其他程序捷克欧的程序。API用于扩展程序的功能和使用预编写的组创建新的程序。
FTP:
文件传输协议。一类应用以及该应用使用的协议的名字,用于将文件从一台计算机移动到另一台。
HTTP:
超文本传输协议。用于在万维网上传输数据,包括超文本标识语言文档、图像、可执行内容等等。TCP承载HTTP,一般服务器监听端口80。
HTTPS:
安全超文本传输协议。通过在安全套接字层(SSL)协议上运行超文本传输协议来将安全添加到万维网中。HTTPS能用于将WEB服务器认证到客户,将客户认证到WEB服务器和加密在两个系统之间传输的所有数据,HTTPS服务器一般监听TCP端口443。
IRC:
Internet中继交谈,一系列程序和一种协议,用于实现在Internet上的交谈会话。IRC特别受计算机地下组织的欢迎,北移些攻击者用来讨论他们的工具、技术和战利品。
MAC Address:
网络接口的数据链路层(第二层)地址。对于以太网卡,MAC地址维48bit长。
LAN:
局域网!一种网络,连接近距离的计算机,一般位于单个房间、建筑物或小的地理区域里。LAN上的所有系统位于一个网络跳之间。
ping:
一类基于Internet控制消息协议的数据包,用于判断网络上的某台计算机是否可以到达。
Proxy:
代理。一类程序或系统,接收来自客户机算计的流量,并代表客户与服务器交互。代理能用于过滤应用级别的制定类型的流量或缓存信息以提高性能。许多防火墙依赖代理进行过滤。
telnet:
用于系统的远程命令行访问的程序和协议。telnet在TCP上传输,服务器一般在TCP端口23监听。
TCP:
传输控制协议。一种传输层协议,被许多要求数据的可靠传输的应用所使用。HTTP、SMTP、FTP和telnet都使用TCP进行传输。
TCP/IP:
整个网际协议族的集合名,包括TCP、UDP、IP和ICMP。
计算机上的shell是壳(用来区别于核)的意思,是指“提供使用者使用界面”的软件(命令解析器)。
它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。在排序算法中,Shell是希尔排序的名称。
文字操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。
shell是一个命令处理器(command processor)——是一个读入并解释你输入的命令的程序。除了是一个命令中断器以外,shell还是一个程序设计语言。你可以编写shell可以解释的程序(被称为源程序),这些源程序可以包含shell程序设计命令等等。shell除了解释命令以外,还有其他工作,它也可以配置和编程。shell拥有自己的语言允许用户编写程序并以一种复杂方式运行。shell编程语言具有许多常用的编程语言的特征,例如:循环和控制结构等。用户可以生成像其他应用程序一样复杂的shell程序。
补充说明:简单的说 : shell 是一个交互性命令解释器。shell独立于操作系统,这种设计让用户可以灵活选择适合自己的shell。shell让你在命令行键入命令,经过shell解释后传送给操作系统(内核)执行。
一下是shell功能的一个汇总:
查找命令的位置并且执行相关联的程序。
为shell变量赋新值
执行命令替代
处理 I/O重定向和管道功能
提供一个解释性的编程语言界面,包括tests、branches和loops等语句
操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。
shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。
Shell基本上是一个命令解释器,类似于DOS下的command.com。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。
交互式shell和非交互式shell
交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。
shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。
shell的类型
在UNIX中主要有两大类shell
Bourne shell (包括 sh, ksh, and bash)
Bourne shell ( sh)
Korn shell ( ksh)
Bourne Again shell ( bash)
POSIX shell ( sh)
C shell (包括 csh and tcsh)
C shell ( csh)
TENEX/TOPS C shell ( tcsh)
Bourne Shell
最初的UNIX shell是由Stephen R. Bourne于20世纪70年代中期在新泽西的ATT贝尔实验室编写的,这就是Bourne shell。Bourne shell 是一个交换式的命令解释器和命令编程语言。Bourne shell 可以运行为login shell或者login shell的子shell(subshell)。只有login命令可以调用Bourne shell作为一个login shell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。
C Shell
Bill Joy于20世纪80年代早期,在Berkeley的加利福尼亚大学开发了C shell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。
Korn Shell
有很长一段时间,只有两类shell供人们选择,Bourne shell用来编程,C shell用来交互。为了改变这种状况,ATT的bell实验室David Korn开发了Korn shell。ksh结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。因此,Korn shell广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inline editing)等功能。Korn Shell 是一个交互式的命令解释器和命令编程语言.它符合POSIX——一个操作系统的国际标准.POSIX不是一个操作系统,而是一个目标在于应用程序的移植性的标准——在源程序一级跨越多种平台。
Bourne Again Shell (bash)
bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat, Slackware, Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。
POSIX Shell
POSIX shell 是Korn shell的一个变种. 当前提供POSIX shell的最大卖主是Hewlett-Packard。在HP-UX 11.0 , POSIX shell 就是/bin/sh,而bsh是/usr/old/bin/sh.
各主要操作系统下缺省的shell:
AIX 下是Korn Shell.
Solaris和FreeBSD缺省的是Bourne shell.
HP-UX缺省的是POSIX shell.
Linux是Bourne Again shell.
【TIP】
#!/usr/bin/sh的用途
shell script的第一行一般都是#!/usr/bin/sh或#!/usr/bin/ksh等,它的用途就是指出本脚本是用的哪种shell写的,执行时系统应该用哪种shell来解释执行它。
附:LINUX系统的shell原理
Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。
shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。 shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。
shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。
shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。
当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。作为默认值(TurboLinux系统默认的shell是BASH),对普通用户用“$”作提示符,对超级用户(root)用“#”作提示符。
一旦出现了shell提示符,就可以键入命令名称及命令所需要的参数。shell将执行这些命令。如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以从键盘上按ctrl+c发出中断信号来中断它(在正常结束之前,中止它的执行)。
当用户准备结束登录对话进程时,可以键入logout命令、exit命令或文件结束符(EOF)(按ctrl+d实现),结束登录。
我们来实习一下shell是如何工作的。
$ make work
make:***No rule to make target ‘work’. Stop.
$
注释:make是系统中一个命令的名字,后面跟着命令参数。在接收到这个命令后,shell便执行它。本例中,由于输入的命令参数不正确,系统返回信息后停止该命令的执行。
在例子中,shell会寻找名为make的程序,并以work为参数执行它。make是一个经常被用来编译大程序的程序,它以参数作为目标来进行编译。在“make work”中,make编译的目标是work。因为make找不到以work为名字的目标,它便给出错误信息表示运行失败,用户又回到系统提示符下。
另外,用户键入有关命令行后,如果shell找不到以其中的命令名为名字的程序,就会给出错误信息。例如,如果用户键入:
$ myprog
bash:myprog:command not found
$
可以看到,用户得到了一个没有找到该命令的错误信息。用户敲错命令后,系统一般会给出这样的错误信息.
操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。
shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。
Shell基本上是一个命令解释器,类似于DOS下的command.com。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。
交互式shell和非交互式shell
交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。
shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。
shell的类型
在UNIX中主要有两大类shell
Bourne shell (包括 sh, ksh, and bash)
Bourne shell ( sh)
Korn shell ( ksh)
Bourne Again shell ( bash)
POSIX shell ( sh)
C shell (包括 csh and tcsh)
C shell ( csh)
TENEX/TOPS C shell ( tcsh)
Bourne Shell
最初的UNIX shell是由Stephen R. Bourne于20世纪70年代中期在新泽西的ATT贝尔实验室编写的,这就是Bourne shell。Bourne shell 是一个交换式的命令解释器和命令编程语言。Bourne shell 可以运行为login shell或者login shell的子shell(subshell)。只有login命令可以调用Bourne shell作为一个login shell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。
C Shell
Bill Joy于20世纪80年代早期,在Berkeley的加利福尼亚大学开发了C shell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。
Korn Shell
有很长一段时间,只有两类shell供人们选择,Bourne shell用来编程,C shell用来交互。为了改变这种状况,ATT的bell实验室David Korn开发了Korn shell。ksh结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。因此,Korn shell广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inline editing)等功能。Korn Shell 是一个交互式的命令解释器和命令编程语言.它符合POSIX——一个操作系统的国际标准.POSIX不是一个操作系统,而是一个目标在于应用程序的移植性的标准——在源程序一级跨越多种平台。
Bourne Again Shell (bash)
bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat, Slackware, Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。
POSIX Shell
POSIX shell 是Korn shell的一个变种. 当前提供POSIX shell的最大卖主是Hewlett-Packard。在HP-UX 11.0 , POSIX shell 就是/bin/sh,而bsh是/usr/old/bin/sh.
各主要操作系统下缺省的shell:
AIX 下是Korn Shell.
Solaris和FreeBSD缺省的是Bourne shell.
HP-UX缺省的是POSIX shell.
Linux是Bourne Again shell.
shell是一个命令解析器,它解释用户输入的命令并且把它们送到系统的内核去执行。换句话说shell就是用户与操作系统对话的一个接口,我们发出一个命令,通过shell告诉系统让系统执行我们的命令。
黑客入侵时要得到的是有admin权限的shell这样才能完全的控制系统。
当你用溢出得到的shell就是拥有admin权限的shell这样在你的命令提示付后就会出现"c:\\documents and setting \\"
这和操作自己的机器没什么区别。
还有的就是有一些朋友错把ipc空连接当作得到目标机器的shell,因此对远端执行的命令没有反映,典型事例就是建立ipc$,然后用 net user xx xx /add????|????net localgroup administrators xx /add
之后当然是在自己机器上添加一个admin权限的用户
所以说学知识不能弄混,这时也许会有菜鸟问,那ipc$之后怎么能得到shell? 其实很简单,我习惯用winshell或开3389(开3389的东东很多建议用3389.bat),实在不行上传木马,之后想干什么就干什么!
剧情吧工夫 : 二0 一 四- 一0- 二 三 一 五: 二 四: 二 四 闪电侠第一季第 一散剧情先容 被闪电击外的超才能 者。 Barry Allen是一个很心爱的小男孩,已经的他也领有一个幸祸完善 的野庭。但是 正在他十一岁的时刻 ,从天而降的劫难 让他的野庭分崩离析 ,她的母...
后台真体类代码以下: 一 二 三 四 五 六 七 八 九 一0 一 一 一 二 一 三 一 四 一 五 一 六 一 七 一 八 一 九 二0 二 一 二 二 二 三 二 四 二 五 二 六 二 七 二 八 二 九 三0 三 一 三 二 三 三 三 四 三 五/*** @author 直健磊* @da...
收集 二0 二0- 一0- 二 七 0 二:0 九: 五 一 五 二年夜 野皆 晓得,事宜 营销正在各年夜 品牌脚上皆玩患上特殊 六。尤为是互联网私司,正在事宜 营销上的弄法 否谓是层见叠出让人目眩 纷乱 。而房天产那个止业便十分特殊,岂论 是由于 止业配景 ,照样 业内的规矩 限定 ,房天产的...
跟着 互联网正在外国快要 二0年的成长 ,内容范畴 也从本去傻年夜 乌精的拼流质,入进了垂曲范畴 的粗根细做时期 。尔信任 许多 作过互联网经营的小同伴 ,必然 打仗 过内容经营,或者者博职作内容经营。然则 ,许多 自以为作了良久 内容经营的小同伴 ,其真仅仅一个“文字编纂 ”罢了 ,为何必修 ...
SpruceMail 是一款 SaaS 产物 ,否赞助 私司宣布 赔钱的 Facebook 告白 。产物 的代价 定位很单纯:Facebook 告白 是庞大 的。您要合腾许多 工作 ,否能很快几千美圆便花失落 了却归报甚微。SpruceMail 来除了了那种庞大 性,从一开端 便为您提求一个无利否图...
正在咱们的搜刮 引擎劣化工 做外,否能许多 同伙 会碰到 如许 一个答题,网站一点儿症结 词排名没有错,然则 点击拜访 的没有多,以至有同伙 曾经查询拜访 过,领现有时刻 排名靠前的拜访 质比靠后的点击率更 低,有些网站拜访 质很下,然则 网站告白 的点击率很低,产物 发卖 型网站也会异样碰到 那...