shell脚本

渗透测试工具实战技巧合集

自作多情 提交于 2019-12-09 10:18:22
最好的 NMAP 扫描策略 # 适用所有大小网络最好的 nmap 扫描策略 # 主机发现,生成存活主机列表 $ nmap -sn -T4 -oG Discovery.gnmap 192.168.56.0/24 $ grep "Status: Up" Discovery.gnmap | cut -f 2 -d ' ' > LiveHosts.txt # 端口发现,发现大部分常用端口 # http://nmap.org/presentations/BHDC08/bhdc08-slides-fyodor.pdf $ nmap -sS -T4 -Pn -oG TopTCP -iL LiveHosts.txt $ nmap -sU -T4 -Pn -oN TopUDP -iL LiveHosts.txt $ nmap -sS -T4 -Pn --top-ports 3674 -oG 3674 -iL LiveHosts.txt # 端口发现,发现全部端口,但 UDP 端口的扫描会非常慢 $ nmap -sS -T4 -Pn -p 0-65535 -oN FullTCP -iL LiveHosts.txt $ nmap -sU -T4 -Pn -p 0-65535 -oN FullUDP -iL LiveHosts.txt # 显示 TCP\UDP 端口 $ grep "open"

dotnetcore执行shell脚本

懵懂的女人 提交于 2019-12-08 22:29:35
我们可以使有dotnetcore跨平台的特性,优雅的实现在dotnetcore执行shell (bash). 代码如下: using System; using System.Collections.Generic; using System.Text; namespace hshoc { using System.Diagnostics; public static class ShellHelper { public static string Bash(this string cmd) { var escapedArgs = cmd.Replace("\"", "\\\""); var process = new Process() { StartInfo = new ProcessStartInfo { FileName = "/bin/bash", Arguments = $"-c \"{escapedArgs}\"", RedirectStandardOutput = true, UseShellExecute = false, CreateNoWindow = true, } }; process.Start(); string result = process.StandardOutput.ReadToEnd(); process.WaitForExit();

Shell脚本实现FTP上传下载文件

谁说我不能喝 提交于 2019-12-08 20:35:51
Linux下使用Shell脚本实现FTP自动上传和下载文件 Linux下使用Shell脚本实现FTP自动上传和下载文件 登录FTP实现下载文件功能 批量下载脚本代码 下载单个文件脚本代码 登录FTP实现上传文件功能 批量上传脚本代码 上传单个文件脚本代码 命令解释 登录FTP 输入FTP用户名和密码 通过binary命令传输文件 切换散列符号 打印 切换目录 切换交互式提示 文件传输 下载文件 上传文件 断开连接 分界符标志 登录FTP实现下载文件功能 FTP服务器:10.11.10.11 FTP路径:Down 本地路径: ./ 将文件从FTP下载到本地的脚本如下: 批量下载脚本代码 #从FTP上批量下载文件到本地 #!/bin/sh ftp -v -n 10.11 . 10.11 <<EOF user ftpuser ftppwd binary cd Down lcd ./ prompt mget * bye EOF echo "download from ftp successfully" 下载单个文件脚本代码 #从FTP上下载单文件到本地 #!/bin/sh ftp -v -n 10.11 . 10.11 <<EOF user ftpuser ftppwd binary cd Down lcd ./ prompt #get down.txt get down.txt note

Linux配置文件加载顺序及修改Shell命令提示符及颜色

。_饼干妹妹 提交于 2019-12-08 18:32:31
环境变量初始化与文件对应的生效顺序 在登录Linux系统并启动一个bash shell时,默认情况下bash会在若干个文件中查找环境变量的设置。这些文件统称为系统环境文件。bash检查的环境变量文件的情况取决于系统运行的shell方式。系统运行shell方式一般为3中: 通过系统用户登录默认运行的shell 非登录交互式运行shell 执行脚本运行非交互式shell 如何判断是否为交互式 Shell? 有两种方式 1、 查看特殊变量 - ,如果值包含 i,则是交互式,否则是非交互式 $ echo $- 2、 查看变量 PS1 是否为空,如果不为空,则是交互式,否则为非交互式 $ echo $PS1 判断是否为登录式 Shell ? 取得 bash 是需要完整的登入流程,就称为 login shell,取得 bash 接口的方法不需要重复登入的操作就称为non-login shell。 执行命令 shopt login_shell 如果值为 on 表示登录式(login shell),为 off 表示非登录式(non-login shell)。 同时判断交互式和登录式 $ echo $PS1; shopt login_shell ———————————————— 当用户登录linux时,shell会作为登录shell启动。此时的登录shell加载环境变量的顺序如图所示

shell

时光毁灭记忆、已成空白 提交于 2019-12-08 09:28:30
当前目录所有目录中的文件 ls -R 显示目录和文件,目录后带/ ls -F 递归复制整个文件夹 cp -R 重命名文件 mv node.sh note.sh 硬连接会保留数据,软连接会直接无效 cp -l # 硬连接 cp -s # 软连接 创建目录 mkdir dir 查看文件内容 -n所有行号 -b带文本的行号 cat 其他查看文件的方法 more less 显示开头和结尾 可以带 -n 显示n行 head tail 显示进程 ps 实时进程控制 top 停止进程 kill 查看磁盘空间 -c 显示总用量 -h 以可读形式显示 df 对文件内容进行排序 -n 数字识别为数字 -M 按月份排序 sort file -n 查看全局变量 printenv 设置本地变量,然后导出,就可以变为全局变量 导出后不用再使用$符号 var=100 export var 删除环境变量 unset var 定义数组 myArr=(1 2 3 4) 通用显示 echo ${myArr[0]} 只能显示第一个 echo $myArr 显示所有数据 echo ${myArr[*]} unset 对数组也有效 查看别名 alias -p 创建别名 alias vim='vi' 用户操作 useradd usermod userdel 修改权限 u 表示用户 o 表示其他任何人 g 表示用户组 a

shell脚本编程基础之case语句

喜夏-厌秋 提交于 2019-12-08 08:11:27
基础简介 脚本编程分为: 面向过程 选择结构:if语句,单分支、双分支、多分支;case语句 控制结构:顺序结构(默认) 循环结构:for、while、until 面向对象 case语句结构 case VAR_NAME in var_value1) #value被当做字符一个一个进行比较的;可以使用a-z,A-Z,0-9,[abc] statement1 ... ;; var_value2) statement2 ... ;; *) statement ... ;; esac case示例 Example1: #!/bin/bash case $1 in 'start') echo "start service...." ;; 'stop') echo "stop service...." ;; 'restart') echo "restart service....." ;; 'status') echo "Running...." ;; *) echo "`basename $0` (start|stop|restart|status)" #`basename $0` 表示脚本本身名 ;; esac 当$1参数值为上面4个中的一个时,执行每个字符下的语句;如果上面哪个字符都不匹配,则执行 *) 下的语句 Example2: #!/bin/bash ADD=0 DEL=0

Linux Shell常用技巧(一)

…衆ロ難τιáo~ 提交于 2019-12-07 17:10:06
一. 特殊文件 : /dev/null和/dev/tty Linux系统提供了两个对Shell编程非常有用的特殊文件,/dev/null和/dev/tty。其中/dev/null将会丢掉所有写入它的数据,换句换说,当程序将数据写入到此文件时,会认为它已经成功完成写入数据的操作,但实际上什么事都没有做。如果你需要的是命令的退出状态,而非它的输出,此功能会非常有用,见如下Shell代码: /> vi test_dev_null.sh #!/bin/bash if grep hello TestFile > /dev/null then echo "Found" else echo "NOT Found" fi 在vi中保存并退出后执行以下命令: /> chmod +x test_dev_null.sh #使该文件成为可执行文件 /> cat > TestFile hello my friend CTRL + D #退出命令行文件编辑状态 /> ./test_dev_null.sh Found #这里并没有输出grep命令的执行结果。 将以上Shell脚本做如下修改: /> vi test_dev_null.sh #!/bin/bash if grep hello TestFile then echo "Found" else echo "NOT Found" fi 在vi中保存退出后

shell脚本编程基础之case语句

可紊 提交于 2019-12-07 15:29:24
基础简介 脚本编程分为: 面向过程 选择结构:if语句,单分支、双分支、多分支;case语句 控制过程:顺序结构(默认) 循环结构 面向对象 case语句结构 case VAR_NAME in var_value1) #value被当做字符一个一个进行比较的;可以使用a-z,A-Z,0-9,[abc] statement1 ... ;; var_value2) statement2 ... ;; *) statement ... ;; esac case示例 Example1: #!/bin/bash case $1 in 'start') echo "start service...." ;; 'stop') echo "stop service...." ;; 'restart') echo "restart service....." ;; 'status') echo "Running...." ;; *) echo "`basename $0` (start|stop|restart|status)" #`basename $0` 表示脚本本身名 ;; esac 当$1参数值为上面4个中的一个时,执行每个字符下的语句;如果上面哪个字符都不匹配,则执行 *) 下的语句 Example2: #!/bin/bash ADD=0 DEL=0 DEBUG=0 for i in

4、shell-流程控制

安稳与你 提交于 2019-12-07 12:51:45
1 if 判断 1. 基本语法 if [ 条件判断式 ];then 程序 fi 或者 if [ 条件判断式 ] then 程序 elif [ 条件判断式 ] then 程序 else 程序 fi 注意事项: ( 1 ) [ 条件判断式 ] ,中括号和条件判断式之间必须有空格 ( 2 ) if 后要有空格 2. 案例实操 ( 1 )输入 一个 数字 , 如果 是 1 , 则输出 banzhang zhen shuai, 如果是 2,则 输出 cls zhen mei, 如果是 其它 ,什么也不输出。 [atguigu@hadoop101 datas]$ touch if.sh [atguigu@hadoop101 datas]$ vim if.sh #!/bin/bash if [ $1 -eq "1" ] then echo "banzhang zhen shuai" elif [ $1 -eq "2" ] then echo "cls zhen mei" fi [atguigu@hadoop101 datas]$ chmod 777 if.sh [atguigu@hadoop101 datas]$ ./if.sh 1 banzhang zhen shuai 2、 case 语句 1. 基本语法 case $ 变量名 in " 值 1" ) 如果变量的值等于值 1 ,则执行程序 1

6、shell-函数

爱⌒轻易说出口 提交于 2019-12-07 12:50:25
1 系统函数 1.basename 基本语法 basename [string / pathname] [suffix] (功能描述: basename 命令会删掉所有的前缀包括最后一个( ‘/’ )字符,然后将字符串显示出来。 选项: suffix 为后缀,如果 suffix 被指定了, basename 会将 pathname 或 string 中的 suffix 去掉。 2. 案例实操 ( 1 )截取该 /home/atguigu/banzhang.txt路径 的文件名称 [atguigu@hadoop101 datas]$ basename /home/atguigu/banzhang.txt banzhang.txt [atguigu@hadoop101 datas]$ basename /home/atguigu/banzhang.txt .txt banzhang 3. dirname 基本语法 dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分)) 4. 案例实操 ( 1 )获取 banzhang.txt文件 的路径 [atguigu@hadoop101 ~]$ dirname /home/atguigu/banzhang.txt /home/atguigu 2 自定义函数 1.