1. shell中exec的用法
有同学在docker下安装了nginx 但是不知道目录在哪,可以使用命令:sudo find / -name "50x.html"因为nginx里必定会有50x.html,所以查找它,结果发现nginx的目录在docker容器里,如果操作它,就需要进入容器的shell。必须先启动容器:sudo docker start “容器ID”
然后使用下边的命令进入shell:
sudo docker exec -it “容器ID” bash将主机的文件复制到容器里:
sudo docker cp 主机目录 容器ID:容器目录
2. shell脚本exec命令
删除默认建立的站点的虚拟目录,停止默认web站点,删除对应的文件目录c:inetpub,配置所有站点的公共设置,设置好相关的连接数限制,带宽设置以及性能设置等其他设置。配置应用程序映射,删除所有不必要的应用程序扩展,只保留asp,php,cgi,pl,aspx应用程序扩展。对于php和cgi,推荐使用isapi方式解析,用exe解析对安全和性能有所影响。用户程序调试设置发送文本错误信息给户。对于数据库,尽量采用mdb后缀,不需要更改为asp,可在IIS中设置一个mdb的扩展映射,将这个映射使用一个无关的dll文件如C:WINNTsystem32inetsrvssinc.dll来防止数据库被下载。设置IIS的日志保存目录,调整日志记录信息。设置为发送文本错误信息。修改403错误页面,将其转向到其他页,可防止一些扫描器的探测。另外为隐藏系统信息,防止telnet到80端口所泄露的系统版本信息可修改IIS的banner信息,可以使用winhex手工修改或者使用相关软件如banneredit修改。 对于用户站点所在的目录,在此说明一下,用户的FTP根目录下对应三个文件佳,wwwroot,database,logfiles,分别存放站点文件,数据库备份和该站点的日志。如果一旦发生入侵事件可对该用户站点所在目录设置具体的权限,图片所在的目录只给予列目录的权限,程序所在目录如果不需要生成文件(如生成html的程序)不给予写入权限。因为是虚拟主机平常对脚本安全没办法做到细致入微的地步,更多的只能在方法用户从脚本提升权限: ASP的安全设置: 设置过权限和服务之后,防范asp木马还需要做以下工作,在cmd窗口运行以下命令: regsvr32/u C:WINNTSystem32wshom.ocx del C:WINNTSystem32wshom.ocx regsvr32/u C:WINNTsystem32shell32.dll del C:WINNTsystem32shell32.dll 即可将WScript.Shell, Shell.application, WScript.Network组件卸载,可有效防止asp木马通过wscript或shell.application执行命令以及使用木马查看一些系统敏感信息。另法:可取消以上文件的users用户的权限,重新启动IIS即可生效。但不推荐该方法。 另外,对于FSO由于用户程序需要使用,服务器上可以不注销掉该组件,这里只提一下FSO的防范,但并不需要在自动开通空间的虚拟商服务器上使用,只适合于手工开通的站点。可以针对需要FSO和不需要FSO的站点设置两个组,对于需要FSO的用户组给予c:winntsystem32scrrun.dll文件的执行权限,不需要的不给权限。重新启动服务器即可生效。 对于这样的设置结合上面的权限设置,你会发现海阳木马已经在这里失去了作用! PHP的安全设置: 默认安装的php需要有以下几个注意的问题: C:winntphp.ini只给予users读权限即可。在php.ini里需要做如下设置: Safe_mode=on register_globals = Off allow_url_fopen = Off display_errors = Off magic_quotes_gpc = On [默认是on,但需检查一遍] open_basedir =web目录 disable_functions =passthru,exec,shell_exec,system,phpinfo,get_cfg_var,popen,chmod 默认设置com.allow_dcom = true修改为false[修改前要取消掉前面的;] MySQL安全设置: 如果服务器上启用MySQL数据库,MySQL数据库需要注意的安全设置为: 删除mysql中的所有默认用户,只保留本地root帐户,为root用户加上一个复杂的密码。赋予普通用户updatedeletealertcreatedrop权限的时候,并限定到特定的数据库,尤其要避免普通客户拥有对mysql数据库操作的权限。检查mysql.user表,取消不必要用户的shutdown_priv,relo ad_priv,process_priv和File_priv权限,这些权限可能泄漏更多的服务器信息包括非mysql的其它信息出去。可以为mysql设置一个启动用户,该用户只对mysql目录有权限。设置安装目录的data数据库的权限(此目录存放了mysql数据库的数据信息)。对于mysql安装目录给users加上读取、列目录和执行权限。 Serv-u安全问题: 安装程序尽量采用最新版本,避免采用默认安装目录,设置好serv-u目录所在的权限,设置一个复杂的管理员密码。修改serv-u的banner信息,设置被动模式端口范围(4001—4003)在本地服务器中设置中做好相关安全设置:包括检查匿名密码,禁用反超时调度,拦截“FTP bounce”攻击和FXP,对于在30秒内连接超过3次的用户拦截10分钟。域中的设置为:要求复杂密码,目录只使用小写字母,高级中设置取消允许使用MDTM命令更改文件的日期。 更改serv-u的启动用户:在系统中新建一个用户,设置一个复杂点的密码,不属于任何组。将servu的安装目录给予该用户完全控制权限。建立一个FTP根目录,需要给予这个用户该目录完全控制权限,因为所有的ftp用户上传,删除,更改文件都是继承了该用户的权限,否则无法操作文件。另外需要给该目录以上的上级目录给该用户的读取权限,否则会在连接的时候出现530 Not logged in, home directory does not exist.比如在测试的时候ftp根目录为d:soft,必须给d盘该用户的读取权限,为了安全取消d盘其他文件夹的继承权限。而一般的使用默认的system启动就没有这些问题,因为system一般都拥有这些权限的
3. shell.exe
你好可以在注册表里 添加一个或者在开始菜单 --所有程序--附件 --命令提示符 --右键以管理员身份打开执行 命令reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Shell" /d "explorer.exe" /t REG_SZ /f
4. shell脚本中exec
假定你的cshell脚本名字是a.sh,且具有可执行权限,则可以在tcl中用
exec/path/to/a.sh
来执行
5. shell fork exec
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。
supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。
6. shell -exec
vim rm.sh#!/bin/bashfind . -type f -exec rm {} \;会将当前文件夹中的文件全部删除。请谨慎操作!
7. shell.exec
find.-namea.txt-execmv{}b.txt\;其中find后面的"."表示从当前目录开始查找(含子目录),注意最后的“\;"是需要的。
8. shell_exec函数
向服务器端发送恶意代码写成的文件(即:shell),客户端通过远程连接,利用shell连接到服务器,并可对服务器进行操作。
现在基本上使用的都是一句话shell,如:
<?php echo shell_exec($_GET['cmd']);?>
webshell一直被IDS、AV、WAF、扫描器软件发现查杀,防护与webshell每时每刻都在做斗争,但也会存在各种各样的方式突破防护机制,如:shell编码、一句话插入图片、代码编写等等方式。
9. linux shell exec
centos7/rhel7进入单用户方式和重置密码方式发生了较大变化,GRUB由b引导变成了ctrl+x引导。重置密码主要有rd.break和init两种方法。n rd.break方法:
1、启动的时候,在启动界面,相应启动项,内核名称上按“e”;
2、进入后,找到linux16开头的地方,按“end”键到最后,输入rd.break,按ctrl+x进入;
3、进去后输入命令mount,发现根为/sysroot/,并且不能写,只有ro=readonly权限;
4、mount -o remount,rw /sysroot/,重新挂载,之后mount,发现有了r,w权限;
5、chroot /sysroot/ 改变根;(1)echo redhat|passwd –stdin root 修改root密码为redhat,或者输入passwd,交互修改;(2)还有就是先cp一份,然后修改/etc/shadow文件6、touch /.autorelabel 这句是为了selinux生效7、ctrl+d 退出8、然后reboot至此,密码修改完成n init方法:1. 启动系统,并在GRUB2启动屏显时,按下e键进入编辑模式。2. 在linux16/linux/linuxefi所在参数行尾添加以下内容:init=/bin/sh3. 按Ctrl+x启动到shell。4. 挂载文件系统为可写模式:mount –o remount,rw /5. 运行passwd,并按提示修改root密码。6. 如何之前系统启用了selinux,必须运行以下命令,否则将无法正常启动系统:touch autorelabel/.linuxprobe/com7. 运行命令exec /sbin/init来正常启动,或者用命令exec /sbin/reboot重启
10. shell中exec的用法原理
这是一个if结构判断 /var/log/x.log 是否存在然后执行exec命令,将执行输出的标准信息和错误信息都输出到 /var/log/x.log 文件
11. exec用法linux
在 Linux 系统中,如果你使用 find 命令查找到一个文件,并使用 -exec 参数执行相应的 Linux 命令,只要你的命令语法本身是正确的,那么你就可以编写一个 SHELL 程序,Linux 系统就会自动执行多个命令了。
具体的 exec 格式的用法很复杂,你可以参考其他文档。
- 相关评论
- 我要评论
-