Python 自动化攻击脚本在高职“网络安全”技能竞赛中的应用

2022-10-14 02:01宋超
网络安全技术与应用 2022年9期
关键词:靶机后门脚本

◆宋超

(江苏联合职业技术学院无锡旅游商贸分院 江苏 214000)

1 引言

没有网络安全就没有国家安全,目前“网络安全”赛项已成为各级各类职业院校比拼实力的舞台,一场“网络安全”技能竞赛通常由两部分组成:CTF 和AWD,在AWD 中各个参赛队伍被分配了若干靶机,这些靶机存在着各种漏洞,在规定时间内参赛队伍要尽力加固自己的靶机,并利用漏洞攻击对方靶机以获得flag(flag 是靶机root 目录下flagvalue.txt 文件的内容),具有很强的竞技性。靶机上漏洞类型多样,如高端口后门、Webshell、数据库漏洞等,现实中由于“网络安全”赛项靶机数量巨大,单凭手动攻击很难在短时间获得大量flag,于是利用编程语言编写自动化攻击脚本,批量获得flag 显然是必要的。

2 Python 语言脚本

Python 语言是当今编程语言中的热点,它有着高效的数据结构,简单的面向对象开发的环境,丰富的标准库等特点,广泛应用在网络数据的爬取,人工智能,大数据分析等多方面。在网络攻防中Python程序常用的第三方库有OS 库、requests 库,MySQLdb 库等。

3 网络靶机漏洞

在高职“网络安全”AWD 竞赛中常见的靶机漏洞有系统服务漏洞、网站漏洞、数据库

漏洞等,其中系统服务漏洞如一些常规端口漏洞:21、22、23端口的弱密码,著名的139、445 端口的“永恒之蓝”漏洞,3389 端口的蓝屏攻击、cve-2019-0708 漏洞等,还有就是系统的高端口后门;网站漏洞包括命令执行、文件包含、文件上传、SQL 注入等;数据库漏洞则是通过数据库连接的弱密码,运行数据库语句进行系统渗透。

3.1 系统的后门端口

系统的后门端口往往是程序员预留在系统中以便可以修改系统缺陷的端口,最著名的是Windows 自动更新,如果后门被他人知道,后果将是不堪设想的。后门端口一般大于1024(小于1024 的是常规端口),如知名漏洞机 Metasplotable2-Linux 后门端口为1524,Windows 的远程管理服务WinRM 默认为5985 端口,开启后门端口也可使用木马程序,这类木马程序由C 或C++语言编写并编译生成,如int main(){ serv_addr.sin_family=2;serv_addr.sin_addr.s_addr=0;serv_addr.sin_port=0x901F ;sock=socket(2,1,0);bind(sock,(struct sockaddr*)&serv_addr,0x10);listen(sock,1);dup2(cli,0);dup2(cli,1);dup2(cli,2);execve("/bin/sh",0,0);},该程序在运行时开放了一个8080 的后门端口,攻击机只需利用NC 工具连入这个后门端口就能轻松进入靶机系统。

3.2 网站命令执行漏洞

网站漏洞通常是因为网站开发人员安全意识不足,对程序参数没有严格限制造成的。知名的网站漏洞有信息泄漏漏洞、目录遍历漏洞、命令执行漏洞、文件包含漏洞、SQL 注入漏洞、跨站脚本漏洞等。其中,网站的命令执行通常利用网站中可执行系统命令的页面,通过构造并拼接一些系统命令,从而对靶机系统进行渗透,如知名的渗透测试网站DVWA,在Low 模式下,Ping 测试网页中,只需要在待测试的IP地址后拼接|、&、;等特殊符号并加入要执行的命令如whoami、id 等,即可获得靶机的系统信息。命令执行漏洞的核心是网页上的命令执行函数,如PHP 网页中的system()、passthru()、shell_exec()、eval()等。

3.3 数据库漏洞

数据库漏洞是高职“网络安全”竞赛中AWD阶段靶机中常见的漏洞,如MySQL 数据库的弱密码漏洞、Phpmyadmin 万能密码绕过,MSSQL 数据库弱口令等。攻击者在登录数据库后,利用数据库的查询语句如select load_file(‘/root/flagvalue.txt’);可以轻松获得靶机flag 或利用SQL 语句select ‘<?php @eval($_POST[‘aa’];?> ‘into outfile ‘/var/www/html/1.php’ ;向网站目录里写入一句话木马以便进一步进行渗透。

4 Python 自动化攻击脚本的应用

高职“网络安全”竞赛的AWD阶段一般分为两部分即比赛开始时的加固阶段,参赛者只能对各自的靶机进行加固,加固阶段之后则进入对攻阶段。由于参赛队伍较多,靶机数量巨大,手动攻击获取flag效率较低,编写合适的脚本进行自动化攻击显然是首选。

4.1 高端口漏洞的攻击脚本

以下是Python 编写的高端口(10003)漏洞攻击脚本,攻击效果如图1 所示。

图1 利用高端口漏洞自动化获得flag

4.2 网站命令执行漏洞攻击脚本

以下是Python 编写的网站命令执行漏洞攻击脚本,攻击效果如图2 所示。

4.3 数据库漏洞的攻击脚本

以下是Python 编写的Mysql 数据库漏洞的攻击脚本,攻击效果如图3 所示。

图3 利用数据库漏洞自动化获得flag

5 小结

以上是高职“网络安全”技能竞赛中三个自动化攻击的Python 脚本,由于竞赛中采用的闭卷形式,脚本必须短小精悍。在现实对抗比赛中笔者曾做过实验,30 台靶机(Linux 系统),百兆局域网下,三种攻击脚本在五分钟内就会获取全部flag。此外结合靶机的网站漏洞如存在的一句话木马,可利用如下程序批量获得靶机flag。

总之,无论是对靶机进行攻击还是加固,其前提就是获取靶机信息,知道漏洞点在哪里,如何在短时间内得到靶机系统漏洞点并编写一套行之有效的自动化的脚本是今后研究的重点。

猜你喜欢
靶机后门脚本
酒驾
安奇奇与小cool 龙(第二回)
靶机系统的发展趋势
工业物联网后门隐私的泄露感知研究
美国克雷托斯公司扩大靶机研发和制造
快乐假期
小编的新年愿望
这个班还不错
靶机
新帕萨特右后门玻璃升降功能失效