zoukankan      html  css  js  c++  java
  • Penetration Test

    Bash scripting techniques

    BASH SCRIPTING I/O
    • I/O - File vs. terminal vs. network

      • Input from a terminal

        read -p "Enter your name:" name; echo "Hi," $name
        
      • Input from a file

        input="filePathNaMme"
        
        while IFS=read -r f1 f2 f3 f4
        
      • Input from the network

        while read -r inline < /dev/ttyS1
        
    ERROR HANDLING
    • Error handling

      • "$?" is the exit status of a script we just ran

        if ["$?"="0"] then
        
    ARRAYS
    bashArray = (val1, val2, val3)
    

    OR

    declare -a bashArray = (val1, val2, val3)
    
    for i in 1 2 3
    do
      echo ${bashArray[$i]}
    done
    
    ENCODING/DECODING
    • locale - shows local related environment variables

    • Can change assignment of LANG for local character encoding

      • Allows bash to accept special characters (i.e. LANG=da_DK.UTF-8)
    • Can use openssl or base64 to encode and decode strings(base64)

      Encoding:

      echo string | base64
      

      OR

      base64 <<< string
      

      Decoding:

      echo string | base64 --decode
      

      OR

      base64 -d <<< string
      
    BASH: PUTTING IT ALL TOGEHTER
    • Port scanner in bash

      #!/bin/bash
      
      target=$1
      minPort=$2
      maxPort=$3
      
      function scanports
      {
      for ((counter=$minPort; counter<=$maxPort; counter++))
      do
      	(echo >/dev/tcp/$target/$counter) > /dev/null 2>&1 && echo "$counter open"
      done
      }
      
      scanports
      
    • Run the follow command on Kali Linux

      bash portscan.sh 10.0.0.7 21 80
      

      image-20201205185455572

    QUICK REVIEW
    • Redirecting input from stdin and output to stdout is the most common bash I/O technique
    • Bash scripts can be used with Linux pipes
    • Arrays can be useful, but aren't supported in older shells (make sure you're running bash and not sh)
    相信未来 - 该面对的绝不逃避,该执著的永不怨悔,该舍弃的不再留念,该珍惜的好好把握。
  • 相关阅读:
    无监督聚类K-means算法
    Python程序执行顺序
    修改jupyter notebook响应的浏览器
    Vijos1035 贪婪的送礼者 [map的应用]
    POJ 2976 Dropping tests [二分]
    POJ 3111 K Best 最大化平均值 [二分]
    HDU 2899 Strange fuction [二分]
    HDU 2141 can you find it [二分]
    HDU 4004 The Frog's Games [二分]
    HDU 1969 Pie [二分]
  • 原文地址:https://www.cnblogs.com/keepmoving1113/p/14090662.html
Copyright © 2011-2022 走看看