8.BASH脚本编程

mac2022-06-30  27

BASH的速成班

  shell是用户和操作系统之间的接口,它运行你操作文件和运行命令、实用程序、程序等等。shell的优点是,你可以直接从计算机执行这些任务,而不是通过GUI这样的抽象来执行这些任务。GUI允许你将任务定制为Z shell、C shell和Bourne Again Shell(bash)

  bash shell几乎可以在所有linux和UNIX发行版(包括macOS和kali)上使用。

  bash shell可以运行通常命令行的任何系统命令、实用程序或应用程序,但它也包含一些自己的内置命令。

  需要一个文本编辑器来创建shell脚本。可以使用任何喜欢的linux文本编辑器,包括vi、vim、emacs、gedit、kate等等。这里使用的是Leafpad。

 

你的第一个脚本“HELLO,HACKERS-ARISE!”

  该程序向屏幕返回一条消息,“你好,黑客——站起来!”

  首先,你需要告诉操作系统想为脚本使用哪个解释器。为此,输入一个开头标识符,它是哈希符号和感叹号的组合。

  #!

  按照指示的(#!/bin/bash)操作系统使用bash shell解释器。还有perl或python,在这里,你希望使用bash解释器。

  #! /bin/bash

  接下来,输入echo命令,简单地将命令后面的内容回显到监视器。

  #! /bin/bash

  # This is my first bash script.Wish me luck.       这是注释

  echo "Hello,Hackers-Arise!"

  将该文件保存为HelloHackersArise.不带扩展名。

 

设置执行权限

  默认情况下,新创建的bash脚本甚至你(root)也无法执行。

  ls -l

  

  新文件具有644权限。

  chmod 755 HelloHackersArise

 

运行HelloHackersArise

  要运行该脚本,输入

  ./HelloHackersArise                  ./     当前目录           只在当前目录运行这个文件,不包括其他路径同名文件

 

添加带有变量和用户输入的功能

  #!/bin/bash

  # This is your second bash script. In this one, you prompt /

  # the user for input,place the input in a variable , and /

  # display the variable contents in a string.                        脚本描述以及功能性描述

 

  echo "what is your name?"

  read name                                读取输入给变量name

  echo "what chapter are you on in linux basics for hackers?"

  read chapter        读取输入赋值给chapter

  echo "welcome" $name “to Chapter” $chapter “of linux basics for Hackers!”       要使用变量的值,添加$符号

  记得chmod给其执行权限,否则系统会用权限拒绝的消息(Permission denied)骂你。

  

  ./WelcomeScript.sh

  what is your name?

  hackerone

  what chapter are you on in linux basics for Hackers?

  8

  welcome hackerone to chapter 8 of linux basics for hackers!

 

你的第一个黑客脚本:扫描打开的端口

  做任何事情都应该做到知己知彼。这里用那些怀有恶意的黑客,来举例。黑帽子(职业犯罪做黑产,比如盗刷银行卡),灰帽子(打擦边球,正能量对外,鱼叉式社工手法。比如盗号,把软件伪装成朋友圈砍价,钓鱼用户个人资料。重庆已发生一起提取银行卡案例),白帽子(鬼谷绝学就两个字,决与择。先决后择是利,先择后决是义,白帽子们显然是先做出选择然后再决断利益,都是知天命明大义的人。敬。)

  nmap已默认安装在kali上。

  最简单、最可靠的nmap扫描是TCP connect扫描,在nmap中使用-sT参数选项进行指定。

  nmap -sT 192.168.181.1

  nmap -sT 192.168.181.1 -p 3306     mysql的默认端口是3306

 

我们的任务

  引子:在美国有一名正在服刑13年的灰帽子,网名叫Max Vision。他白天是硅谷IT安全专业人员,到了晚上在黑市上偷窃和销售信用卡号码。有一段时间,他经营着全球最大的信用卡黑市CardersMarket。

  原理:他利用商店里的POS机内置的技术支持后门,这个后门启用了技术支持来帮助他们的客户。这个服务的端口为5505。这名灰帽子,通过扫描此端口发现大量POS出现在互联网中,他可以通过端口5505访问具有sysadmin权限的系统。进入许多这样的系统并窃取数以万计的信用卡号码。他编写一个脚本,扫描数百万个IP地址,寻找5505端口打开的系统。他在白天运行这个脚本,晚上入侵这些5505端口打开的系统,进去看看到底是不是POS机,从里面拿到非常有价值的信用卡号和个人身份信息(PII)

  而在我们的例子中,将POS机的端口改成了3306mysql数据库的端口了。

 

一个简单的扫描器

  #! /bin/bash

  # This script is designed to find hosts with MySQL installed               解释脚本的用途

  nmap -sT 192.168.181.0/24 -p 3306 >/dev/null -oG MySQLscan

  cat MySQLscan | grep open > MySQLscan2              看哪些输出行有open的端口,放入MySQLscan2文件中。

  cat MySQLscan2     查看所有打开的端口

  >/dev/null    为了保持隐秘,让输出在屏幕上的信息消失。要远程使用脚本,择需要隐藏输出。将扫描的输出发送到一个名为MySQLscan的文件,格式为grep格式,这意味着grep可以处理的格式。

  

  将此文件另存为MySQLscanner.sh并使用chmod755为自己赋予执行权限。

  

 

改进MySQL扫描器

  提示用户输入想要扫描的IP地址范围和要查找的端口。

 

在黑客脚本中添加提示和变量

  创建MySQLscannerAdvanced文件并打开输入以下内容。记得给执行权限。

  

  read Last0ctetIP   输入最后一个八位体的IP地址,在192.168.1.254中,最后一个字节时254,这里输入最后一个即可。

 

一个运行示例

  可以使用变量来运行扫描程序脚本,这些变量确定要扫描的IP地址范围和端口,而不必在每次要运行扫描时编辑脚本。

  

 

常用内置BASH命令

  

  

  bash脚本是脚本的最基本形式,后门将使用更多功能的脚本,进一步学习python脚本。

 

 

  

 

  

 

转载于:https://www.cnblogs.com/sec875/articles/10913434.html

相关资源:高级Bash脚本编程指南.pdf
最新回复(0)