20189311《网络攻防》第二周作业
1.脚本
(1)windows BAT
就是从以下命令中得到当前的ip地址。
(2)Shell
可以计算距离下一次生日还有多少天。
2.黑客信息
(1)国内黑客
黄鑫,汉族,毕业于西安电子科技大学,职业是网络安全网站“安全焦点”冰河木马软件的创作者。正当国内大多数黑客们苦苦寻觅新的国外木马时,一款中国人自己的编写的木马悄悄诞生了,它就是冰河。冰河在诞生之初凭借着国产化和暂时无杀毒软件能防杀的特点迅速地成为了黑客们使用最广泛的木马。冰河本不该归属于木马的行列的,按照冰河作者黄鑫的话说,他编写冰河完全是靠自己的兴趣和网友的鼓励,最初只是想编写一个方便自己的远程控制软件,不曾想竟然编成了一个中国流传使用最广泛的黑客软件。
(2)国外黑客
乔治霍桑
2007年8月21日,霍兹在他的博客上宣布,他已经完全解锁苹果的iPhone 手机,手机不再局限于AT&T网络,而是支持其他GSM网络,并在博客上发布了详细的解锁过程和视频。两年后,也就是2009年,在Apple推出第三代IPHONE之后没多久,他开发出了首款公开发布的iPhone 3GS越狱软件。这款软件名为"purplera1n",也就是大名鼎鼎的“紫雨。2010年1月23日神奇小子正式宣布破解了PS3。
3.常用安全工具
5种常用工具介绍
(1)Nmap
- 网络发现和安全审计
- 其基本功能包括:1. 探测主机是否在线;2. 扫描主机端口,嗅探所提供的网络服务(包括应用名称和版本信息);3. 推断主机所用的操作系统及版本信息;4. 探测使用的防火墙/包过滤器的类型;5. 探测其他各类信息,且可定制扫描策略。
- 支持多种平台(Linux, Windows, and Mac OS XA);支持命令行和图形化界面(GUI);可灵活绑定其他工具,如Nping, Nidiff,Ncat等
- 网站:https://nmap.org/
(2)Metasploit
- 渗透测试(安全漏洞检测)
- 号称世界使用最多的渗透测试软件,包括扫描和审计功能。Metasploit Framework (MSF) 是一个强大的开源平台,供开发,测试和使用恶意代码,其为渗透测试、shellcode 编写和漏洞研究提供了一个可靠平台。
- 支持Windows和Linux平台
- 网站:https://www.metasploit.com/
(3)Wireshark
- 网络封包分析,可应用于网络安全测试分析
- 网站:https://www.wireshark.org/
(4)OpenVAS
- 开放式漏洞评估
- 号称世界最先进的开源漏洞扫描和管理工具。OpenVAS包括一个中央服务器和一个图形化的前端。其核心部件是中央服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。
- Nessus项目的一个分支, 服务器仅限Linux,客户端可以使Windows和Linux
- 网站:https://openvas.org/
(5)OSSEC
- 主机入侵检测
- 主要功能有日志分析、完整性检查、rootkit检测、基于时间的警报和主动响应。除具有入侵检测系统功能外,还一般被用在SEM/SIM(安全事件管理/安全信息管理)解决方案中。因其强大的日志分析引擎,ISP、大学和数据中心用其监控和分析他们的防火墙、入侵检测系统、网页服务和验证等产生的日志。
- 支持多种平台(Linux, OpenBSD, FreeBSD, MacOS, Solaris, Windows)
- 网站:https://ossec.github.io/
2种安全工具教程
(1)wireshark
在终端输入wireshark回车,进入wireshark,可能会有如下报错
此时工具是无法使用的。
解决方法:
# vi /usr/share/wireshark/init.lua
找到倒数第二行如下:
dofile(DATA_DIR.."console.lua")
修改为:
--dofile(DATA_DIR.."console.lua")
保存后再次打开:
点击Capture->option选择网卡,然后点start:
窗口介绍:
WireShark 主要分为这几个界面:
- Display Filter(显示过滤器), 用于过滤
- Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。
- Packet Details Pane(封包详细信息), 显示封包中的字段
- Dissector Pane(16进制数据)
- Miscellanous(地址栏,杂项)
(2)Metasploit
首先打开metasploit:
靶机为一台windows 2003, 互想ping通:
通过搜索可以使用netapi相关漏洞:
search netapi
use exploit/windows/smb/ms_08_067_netapi
show options
可以看到需要设置哪些参数。
设置参数并开始渗透:
渗透成功:
可以看到这是靶机的IP。
4.学习教材及其作业
(1)电影鉴赏:防火墙
年过中旬的杰克·斯坦福(哈里森·福特 Harrison Ford 饰)是位于美国西雅图市太平洋银行的网络安全高级主管,他凭借其主持设计的高科技防火墙软件而备受高层的重视,也因此杰克与妻子儿女过着养尊处优的幸福生活。然而,他的重要性也同样引起了不法之徒的注意。歹徒比尔•考克斯是个高智商的罪犯,他和他的团伙用一年的时间研究斯坦福一家的作息习惯和相关资料。在一切准备充分后,比尔绑架了杰克的家人,并胁迫杰克破解太平洋银行的防盗系统,从而盗出一亿美元现金。 顾及到妻儿的姓名,杰克违心答应了比尔的要求,与此同时他也和这个狡猾的家伙展开了斗智斗勇的对决……采用利用银行内部人员的方式完成抢劫,这属于社会工程学的范畴。
(2)通过社会工程学手段获取异性同学的生肖,星座,出生日期,生辰八字。
以上信息其实就是一条信息,只要知道出生日期其他都可以推出来,通过看她发的朋友圈知道她过生日的日子,通过比对她社交网站上填写的出生日期可以推测出来她过得是农历生日还是阳历生日。
5.kali视频的学习
(1)kali安全渗透的一般流程
信息收集。
全评估的第一步是收集尽可能多的关于被测应用的信息。信息收集是渗透测试的必要步骤。通常使用公共工具(搜索引擎)、扫描器、发送简单或特别的HTTP请求等来迫使被测应用泄漏信息。
漏洞分析。
需要搜索引擎搜索或借助漏洞扫描器来完成。
漏洞利用
包含两个方面:一是对现有漏洞进行利用,得到一定权限,二是提升自己的权限,简称提权。
权限维持
权限维持是指我们成功攻破一个系统后,继续保持对系统权限的控制,俗称留后门。
文档编辑
渗透测试最终需要将得到的信息、漏洞归档化,这样会形成知识的积累。
其他相关项
无线攻击、密码攻击、嗅探攻击、逆向工程、数字取证等。
(2)信息收集之GooleHack
目标存在于互联网,互联网必然存在目标的资料信息,从互联网获得测试目标有效信息是kali Linux信息收集的重要一步。
通过互联网网站收集信息
子域名信息
Shodan大数据搜索
同IP网站反查
IP信息扫描
网站指纹信息
WHOIS查询
Google Hack 语句
google hack是指使用Google等搜索引擎对某些特定的网络主机漏洞(通常是服务器上的脚本漏洞)进行搜索,以达到快速找到漏洞主机或特定主机的漏洞的目的。
GoogleHack语法
社交搜索工具
情报分析工具:社交搜索:Cree.py(针对国外),twofi,
社会工程学工具:the Harvester,metagoofil,Recon-NG.
theHarvester信息收集工具
Recon-NG信息搜索工具
(3)Kali信息收集之目标获取
使用Dig进行域名解析
使用Dig进行域传送漏洞测试
uploading-image-974939.png
Transfer failed表示没有漏洞。
子域名枚举工具介绍
fierce
获取目标DNF服务器,并检测是否存在区域传送漏洞,最后进行暴力枚举二级域名信息。
dnsmap
dnsenum
6.python3视频学习
以下只针对一些遗忘的知识点做记录。
(1)python 中os模块os.path.exists()
os: operating system,该模块封装了常见的文件和目录操作。os.path模块主要用于获取文件的属性。os.path.exists()用来判断括号里的文件是否存在,括号内为文件路径。如:
import os
print(os.path.exists('test.py')
如果存在,则打印True,如果不存在,打印False。
(2)python map函数
map()函数语法:
map(function, iterable, ...)
function是函数,iterable是序列。用法是将iterable中的每一个元素都作用函数function。然后返回一个迭代器
(3)python字典get()方法
Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值。
dict.get(key, default=None)
例如当default设为0时,若值不在字典中返回0。
(4)Python find()方法
Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
str.find(str, beg=0, end=len(string))
(5)Python strip()方法
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
str.strip([chars]);
lstrip()方法用于截掉字符串左边的空格或指定字符, rstrip同理。
(6)Python join() 方法
用于将序列中的元素以指定的字符连接生成一个新的字符串。sequence为要连接的元素序列
str.join(sequence)
(7)Python isalnum()方法
检测字符串是否由字母和数字组成。
str.isalnum()
(8)Python enumerate() 函数
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
enumerate(sequence, [start=0])
(9)Python zip() 函数
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
>>>a = [1, 2, 3]
>>>b = [4, 5, 6]
>>>c = [4, 5, 6, 7, 8]
>>>zipped = zip(a, b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>>zip(a, c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>>zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]
(10)Python 字典(Dictionary) setdefault()方法
Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
dict.setdefault(key, default=None)
(11)Python divmod() 函数
python divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
divmod(a, b)