nohup aircrack-ng -w number.txt undefine-01.cap > passkey.out &
在使用云服务器运行包时,可能会遇到许多问题。通常我们使用SSH连接,为了在断开连接后仍然在后台执行程序,我们需要使用nohup命令。Nohup是no hang up(不挂起)的缩写,用于在系统后台持续运行命令,即使退出终端也不会影响程序的运行。默认情况下,nohup命令会将输出重定向到名为nohup.out的文件中,如果当前目录下的nohup.out文件不可写,则会将输出重定向到$HOME/nohup.out文件中。
语法格式为:nohup 需要执行的命令 &。也就是说,在运行包程序之前加上nohup命令,它会将原本显示的内容放入一个文件中,默认情况下是nohup.out。如果在执行的命令后面加上 > pass.out,它将把内容放入pass.out文件中。然后在命令结尾加上&,使程序在后台执行。因此,我的运行包命令变成了:
#!/bin/bash
while [ true ]
do
grep KEY passkey.out
if [ $? -ne 0 ]
then
/bin/sleep 60
else
pass=$(grep KEY passkey.out)
python mail.py "$pass"
break
fi
done
即使我关闭终端,该命令也会在后台运行,而程序的输出结果将放在passkey.out文件中。接下来,我需要在运行结果后发送电子邮件通知我。为此,我需要编写一个脚本,在相同的目录下创建search.sh文件。脚本文件search.sh的内容如下:
#coding=utf-8
import smtplib
import sys
from email.mime.text import MIMEText
from email.header import Header
# --------------------------------------------配置信息开始
mail_host = "smtp.163.com" # 设置服务器(如果是qq邮箱,将163换成qq)
mail_user = 'xiaobendanya77@163.com' # 用户名
mail_pass = '################' # 口令
username = 'xiaobendanya77@163.com' # 发件人名称
getusername = '2372198934@qq.com' # 收件人名称
getmail =['2372198934@qq.com'] # 收件人邮箱
context = sys.argv[1] # 内容
title = '这里填标题' # 标题
# ---------------------------------------------配置信息结束
def email():
sender = True
try:
massage= MIMEText(context, 'plain', 'utf-8') # 加入正文内容
massage['From'] = Header(username, 'utf-8') # 加入发件人名称
massage['To'] = Header(getusername, 'utf-8') # 加入收件人名称
massage['Subject'] = Header(title, 'utf-8') # 加入标题
server = smtplib.SMTP_SSL() # 获取服务 25端口不需要加 _SSL
server.connect(mail_host, 465) # 链接服务 25和465都为SMTP端口号
server.login(mail_user, mail_pass) # 登录服务
server.sendmail(mail_user, getmail, massage.as_string()) # 开始发送
server.close() #关闭服务
except smtplib.SMTPException :
sender = False
return sender
sender = email()
if sender:
print("邮件发送成功 ...")
else:
print("邮件发送失败 ...")
该脚本将每隔60秒检查passkey.out文件中是否存在”KEY”字符串。如果存在,它将通过电子邮件将该行发送给我。mail.py是用于发送电子邮件的程序脚本。请注意,search.sh也需要在后台执行。赋予脚本执行权限:chmod +777 search.sh,然后执行:nohup ./search.sh &。
为什么要查找”KEY”?我之前提到过,运行包的结果将放在passkey.out文件中,通过下面的两张图可以看到,无论是否能够找到密码,都会有”KEY”这三个字符。因此,只要结果中包含这三个字符,就代表运行完成。
Python通过SMTP协议发送电子邮件,您可以查看我专门撰写的文章,点击这里,或直接使用下面的代码。只需将配置信息中的内容更改为您自己的,例如邮箱地址。您需要拥有两个邮箱,一个用于发送邮件(例如163邮箱,需要开启SMTP并获得授权码),另一个用于接收邮件(例如qq邮箱)。mail.py的内容如下:
总结:在运行包的目录下创建search.sh和mail.py两个文件,后台执行运行包命令nohup aircrack-ng -w number.txt undefine-01.cap > passkey.out &,后台执行脚本nohup ./search.sh &,该脚本将自动调用mail.py发送电子邮件。需要安装Python。以下是效果图的示例: