《网络攻防》- 学习心得
黑客介绍
国外黑客
罗伯特·塔潘-莫里斯
莫里斯这位美国国家计算机安全中心(隶属于美国国家安全局NSA)首席科学家的儿子,康奈尔大学的高材生,在1988年的第一次工作过程中戏剧性地散播出了网络蠕虫病毒后,“Hacker”一词开始在英语中被赋予了特定的含义。在此次的事故中成千上万的电脑受到了影响,并导致了部分电脑崩溃。是他让黑客真正变得“黑”。
**罗伯特·莫里斯 **
第一次接触计算机:在家里。莫里斯的父亲曾从NSA把一台原始的神秘的密码机器带到家里。它成为一家人的谈资。
1988年冬天,正在康乃尔大学攻读的莫里斯,把一个被称为“蠕虫”的电脑病毒送进了美国最大的电脑网络--互联网。1988年11月2日下午5点,互联网的管理人员首次发现网络有不明入侵者。它们仿佛是网络中的超级间谍,狡猾地不断截取用户口令等网络中的“机密文件”,利用这些口令欺骗网络中的“哨兵”,长驱直入互联网中的用户电脑。入侵得手,立即反客为主,并闪电般地自我复制,抢占地盘。
当警方已侦破这一案件并认定莫里斯是闯下弥天大祸的“作者”时,纽约州法庭却迟迟难以对他定罪。在当时,对制造电脑病毒事件这类行为定罪,还是世界性的难题。前苏联在1987年曾发生过汽车厂的电脑人员用病毒破坏生产线的事件,法庭只能用“流氓罪”草草了事。
1990年5月5日,纽约地方法庭根据罗伯特·莫里斯设计病毒程序,造成包括国家航空和航天局、军事基地和主要大学的计算机停止运行的重大事故,判处莫里斯三年缓刑,罚款一万美金,义务为新区服务400小时。莫里斯事件震惊了美国社会乃至整个世界。而比事件影响更大、更深远的是:大众对黑客的印象永远不可能恢复。而且,计算机病毒从此步入主流。
国内黑客
陈盈豪在1998年的时候,仅仅是一个在一个最简单的编码教程上,研发出了一个叫做CIH的病毒,这种病毒最开始并没有被释放出去,仅仅是保存在电脑里,不知道为什么就被释放出去了,刚开始在宿舍流传开来,接着在全球释放。最后在全球引起了大爆发,共计6000万台的电脑受到影响,给全球造成了数亿美元的损失。
然而,病毒虽然被控制下来了,由于是周期性爆发,在第二年的4.26日,又一次爆发后,陈盈豪被警方抓捕。最后陈盈豪在重压面前,脸色苍白倒地不起,最后被查出患有精神病躁郁症。在交出杀毒程序后,世界上也无人起诉他,如今的陈盈豪,早已没有当时的锐气,在一家科技公司做着工程技术师。
李俊创造了“熊猫烧香”病毒,并在网络上大肆传播,破坏了大量的个人电脑和企业网站以及数据系统,带来不可估量的损失,被称为”毒王“。10省市公安联合将其抓获,判了4年。由于表现良好,提前释放,出狱后又搞网络赌博重新入狱,令人唏嘘。
第三个黑客就是曾经盗取马化腾QQ号的鄢奉天。这人技术太好,可惜法律意识淡薄。他到处去黑网站,完了就把网站的漏洞提交给客服帮助其完善,可以说是一名善良的黑客。
在黑掉腾讯,盗了马化腾QQ后,给腾讯客服提交漏洞却被举报,送进了监狱。由于鄢奉天之前做的好事多,被人帮助保释了出来。和李俊不一样的是,鄢奉天出狱后去了美国娶妻生子,生活还算美满。
最后这一位就更加厉害了。他15岁上西安交大,23岁就成为阿里最年轻的高级技术专家。阿里从不缺牛人,也不缺人才,但他却是凌驾于人才和牛人之上的神一般的存在。他叫吴翰清,江湖人称“道哥”,是阿里的守护神。
渗透攻击使用的基本软件
Metasploit
开源软件Metasploit是H.D. Moore在2003年开发的,它是少数几个可用于执行诸多渗透测试步骤的工具。在发现新漏洞时(这是很常见的),Metasploit会监控Rapid7,然后Metasploit的200,000多个用户会将漏洞添加到Metasploit的目录上。然后,任何人只要使用Metasploit,就可以用它来测试特定系统的是否有这个漏洞。
Metasploit框架使Metasploit具有良好的可扩展性,它的控制接口负责发现漏洞、攻击漏洞,提交漏洞,然后通过一些接口加入攻击后处理工具和报表工具。Metasploit框架可以从一个漏洞扫描程序导入数据,使用关于有漏洞主机的详细信息来发现可攻击漏洞,然后使用有效载荷对系统发起攻击。所有这些操作都可以通过Metasploit的Web界面进行管理,而它只是其中一种种管理接口,另外还有命令行工具和一些商业工具等等。
攻击者可以将来自漏洞扫描程序的结果导入到Metasploit框架的开源安全工具Armitage中,然后通过Metasploit的模块来确定漏洞。一旦发现了漏洞,攻击者就可以采取一种可行方法攻击系统,通过Shell或启动Metasploit的meterpreter来控制这个系统。
这些有效载荷就是在获得本地系统访问之后执行的一系列命令。这个过程需要参考一些文档并使用一些数据库技术,在发现漏洞之后开发一种可行的攻击方法。其中有效载荷数据库包含用于提取本地系统密码、安装其他软件或控制硬件等的模块,这些功能很像以前BO2K等工具所具备的功能。
配合使用nmap
使用:nmap –sV IP(或者域名),如果机器设置有防火墙禁ping,可以使用nmap -P0(或者-Pn) –sV IP(或者域名),通过这两个命令可以查看主机的开放情况:
如图,可以看到靶机开放的端口,开放状态,服务类型,和版本号,其中渗透最重要的两个参数是开放状态和版本号。如果端口是关闭的,那就不可能渗透了,一般是防火墙过滤了,但如果是过滤的话,还是可以尝试攻击(我没成功过,应该有一定可能成功);版本号也就是系统扫描中,在开发安全扫描件里经常提及的漏洞指纹,因为大部分漏洞的产生就是某一版本的问题。
我们此次攻击的139端口,如图中,可以看到服务的指纹信息,主要就是服务名称和版本号,是叫samba的服务,处于3.X-4.X版本。
使用search命令查找相关模块
就刚才我们锁定的139端口的版本信息,我们可以通过search命令查找相关的扫描脚本。命令格式:search Name。本例就是:search samba如图,也有很多属性,其中最重要的就是他的等级,一般有限选择excellent和great两种等级,因为稳定且效果明显,其次重要的就是后面的描述是否和我们攻击的服务有关,最后记住需要的模块,在后面攻击是使用。
a、 攻击模块的等级很重要,依次选择excellent和great,其他模块并不是很好或者效果不明显。(后期我可能出一个metasploit二次开发的编程,使用脚本,可以简单快速的进行渗透,并且解决低等级模块多,手工慢的特点。)
b、 英语非常重要,但是要求也不高,能把提示看懂就行,这个对渗透帮助巨大,因为大部分好的开源工具都是英文提示。
c、 还有图中第二行没有标明的一个问题,说我没有建立数据库,建议大家在使用metasploit以前,打开postgresql数据库,有很多难度姿势需要依赖,在此我就不举例了。
3.使用use调度模块
找到了我们需要攻击的目标模块,我们就使用它,通过命令:use ExploitName 。该例就是:use exploit/multi/samba/usermap_script。
如图,出现第二行,就是说明模块加载成功。
技巧:如果是知道使用哪个模块,可以输入每个 / 后的前2-4个字母使用table补齐,或者直接复制刚才找到模块。(建议大家都使用Linux操作系统,只需要命令就能解决很多问题,而且本人偏开发,在开发的时候,Linux使用也会比Windows多些优势)
4.使用info查看模块信息
5.选择payload作为攻击
选择payload,首先我们要看能使用哪些参数,通过命令:show payloads:
在选择攻击载荷的时候,建议选用和meterpreter和reverse相关的载荷,本次攻击就选用图中标红的。
通过使用命令:set payload PayloadName。该例为:set payload cmd/unix/reverse:
出现第二行,表示设置成功。
a、 meterpreter在metasploit中有什么瑞士尖刀的称呼,可以很好的做到后渗透攻击以及内网渗透,可以参看meterpreter使用。
b、 reverse解释是反弹,由于你攻击的目标机可能处在内网里,所以你攻击的时候存在端口映射等方面的问题,所以如果使用反弹,这个可以更稳定。(我是这么理解的,建议百度反弹shell,玄魂的解释挺不错)
6.设置攻击参数
首先通过show options或者options,查看需要填写的参数:
其中标红处如果是yes,表示这行参数必须填写,如果是no,就是选填,其中有LHOST和RHOST是空,我们根据后面的描述,填上靶机和本地主机的信息。
RHOST 填写目标机IP,LHOST填写本机IP。
技巧:
a、 在真实的环境中,RPORT可能并不是默认的参数,由于一个服务是放在内网当中,他通过路由器转发,可能会出现端口的变化(端口映射),比如我们刚才扫描出该服务的端口可能就不是139,而是XXX,这个时候,我们就要设置RPORT为XXX,这点非常重要。
b、 exploit target也是非常重要的参数,在你确切的知道目标的系统的时候,可以通过show targets,查看目标系统有哪些:
查看目标的系统,可以使用:nmap –O IP,然后使用set target ID选择目标类型,主要用于增加成功率。
c、 由于本机的IP在内网,所以基本不会变,可以使用setg代替set,这样在手工的时候换攻击模块,少输入几个字母。
开始攻击
上面参数填好后,然后使用exploit或者run就行了,对于部分攻击模块,可以使用check来判断:
技巧:使用check判断,不会生成session,这样就不会暴露自己的ip地址,但是也就不能getshell。
参考:https://blog.csdn.net/wsh19930305/article/details/72855660/
Nessus
Nessus是一个功能强大而又易于使用的远程安全扫描器,它不仅免费而且更新极快。Nessus具有检测漏洞多、准确、速度快的的特点,使其在众多漏洞中脱颖而出。
工作原理是通过插件模拟黑客攻击,对目标主机系统进行攻击性的安全漏洞扫描。发展的目的是帮助系统管理者搜寻系统主机的弱点所在,让系统管理者对主机进行更正或防护,以免被入侵者攻击。漏洞扫描有两种技术:基于漏洞的匹配方法和基于插件方法,Nessus采用基于插件的技术。
Nessus采用客户/服务器体系结构,客户端提供了运行在X window 下的图形界面,接受用户的命令与服务器通信,传送用户的扫描请求给服务器端,由服务器启动扫描并将扫描结果呈现给用户;扫描代码与漏洞数据相互独立,Nessus 针对每一个漏洞有一个对应的插件,漏洞插件是用NASL(NESSUS Attack Scripting Language)编写的一小段模拟攻击漏洞的代码,这种利用漏洞插件的扫描技术极大的方便了漏洞数据的维护、更新;Nessus 具有扫描任意端口任意服务的能力;以用户指定的格式(ASCII 文本、html 等)产生详细的输出报告,包括目标的脆弱点、怎样修补漏洞以防止黑客入侵及危险级别。
使用样例
1.安装注册
(1)从https://www.tenable.com/products/nessus/select-your-operating-system上下载对应操作系统版本的nessus,结果如下:(以windows操作系统为例)
安装完成之后,会自动在默认浏览器中进入欢迎界面,结果如下:
之后进入初始化加载界面,结果如下:
使用过程:点击下图界面中的new scan:
选择一个可用的扫描模版,一般都选择advanced scan
进入基本配置过程,选项如下:
其中name可以随便但最好使用英文,Description可写可不写,Folder选择My Scan,Target输入待扫描的主机ip,例如192.168.2.100,除了这些基本信息还可以根据需求配置一些额外的信息,可选的配置如下图所示:
配置完成后进入如下界面,点击图中的“开始”图标开始扫描:
扫描完成后点击此次扫描的名称,进入如下界面:
点击图中的Export,可以选择要导出扫描报告的格式,一般我们都选择pdf格式,打开导出的扫描报告,我们可以查看这次扫描的结果和扫描到的漏洞描述,结果如下图所示:
python学习心得
运算符是一些符号,它告诉 Python 解释器去做一些数学或逻辑操作。一些基本的数学操作符如下所示:
2 + 3
5
23.0 - 3
20.0
22 / 12
1.8333333333333333
只要有任意一个操作数是浮点数,结果就会是浮点数。
进行除法运算时若是除不尽,结果将会是小数,这很自然,如果要进行整除,使用 // 运算符,它将返回商的整数部分。
% 是求余运算符:
divmod(num1, num2) 返回一个元组,这个元组包含两个值,第一个是 num1 和 num2 相整除得到的值,第二个是 num1 和 num2 求余得到的值,然后我们用 运算符拆封这个元组,得到这两个值。
x op= expression 为简写运算的语法形式。其等价于 x = x op expression ,举例如下:
a = 12
a += 13
a
25
a /= 3
a
8.333333333333334
a += (26 32)
a
840.3333333333334
通常我们书写表达式的时候,会在每一个运算符左右都放一个空格,这样使代码更可读,如:
a = 234 * (45 - 56 / 34)
我们可以手动的执行类型转换。
类型转换函数
转换路径
float(string)
字符串 -> 浮点值
int(string)
字符串 -> 整数值
str(integer)
整数值 -> 字符串
str(float)
浮点值 -> 字符串
然后按 i 键进入插入模式,此时你可以看到左下角有 “插入” 两个字,现在你可以键入下面的代码了。
!/usr/bin/env python3
print("Hello World!")
其中第一行的前两个字符 #! 称为 Shebang ,目的是告诉 shell 使用 Python 解释器执行其下面的代码。
然后按 Esc 键退出插入模式,再键入 :wq 回车,Vim 就会保存文件并退出。
要运行脚本文件 helloworld.py,还要为文件添加可执行权限(否则会出现权限不足的错误):
$ chmod +x helloworld.py
在这里使用到了linux下的chmod命令来变更文件或目录的权限,+x代表赋予了其可执行的权限。
使用 4 个空格来缩进
永远不要混用空格和制表符
在函数之间空一行
在类之间空两行
字典,列表,元组以及参数列表中,在 , 后添加一个空格。对于字典,: 后面也添加一个空格
在赋值运算符和比较运算符周围要有空格(参数列表中除外),但是括号里则不加空格:a = f(1, 2) + g(3, 4)
kaili Linux 学习心得
smtp服务25端口
http 服务80端口
nc文本信息传递 A: nc -l -p 4444 (-l监听)
B: nc -nv ip地址 4444
电子取证:
发送方:ls -l | nc -lp 4444 -q 1将ls结果发送给端口,发送完自动关闭
接收方:nc -nv ip地址 4444 > data.txt 将结果写入文件
传输文件:
发送方: nc -nv ip地址 4444 < 文件名 -q 1
接收方: nc -lp 4444 > 新文件名
加密传输
A:nc -lp 333 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 1.mp4
B: mcrypt --flush -Fbq -a rijndael-256 -m ecb < a.mp4 | nc -nv 1.1.1.1 333 -q 1
端口扫描: -z扫描模式探测端口,探测tcp端口, -u探测udp端口
远程控制 -c bash,windows下改为cmd
ncat加密传输
A:ncat ncat -c bash --allow 192.168.20.14 -vnl 333 --ssl
B:ncat -nv 1.1.1.1 333 --ssl
Wireshark抓包
混杂模式会抓到除发给自己以外的包
以端口号分辨协议
追踪TCP流
TCPDUMP
linux默认安装的抓包工具,纯命令行工具
默认只抓前68字节
-i 指定网卡, -s 0 抓取全部大小, -w 文件名.cap 保存到指定文件
-r 文件名.cap 查看抓到的包, -A 显示具体内容
tcpdump -i eth0 tcp port 22 抓22端口的tcp包
-n 不做域名解析
curl -v 网址 连接网址
显示筛选器:
tcpdump -n -r .cap | awk ‘{print $3}’| sort -u 筛选并排序
tcpdump -n src host 145.254.160.237 -r http.cap只显示源ip指定的
tcpdump -n dst host 145.254.160.237 -r http.cap 只显示目标ip指定
tcpdump -n port 53 -r http.cap
tcpdump -nX port 80 -r http.cap -x16进制
‘tcp[13]=24’ 包的第14字节化成十进制为24
文档记录
dradis 127.0.0.1:3004
keepnote 新建Notebook
truecrypt 加密文档
域名前加www为完全限定域名(FQDN)
域名记录:A(主机记录) 、C nmae(别名记录)、NS(DNS服务器记录)、MX(邮件交换记录)、ptr(从ip地址解析出域名,反向解析),AAAA(表示查询ipv6相当于ipv4的A)
域名解析过程(迭代查询):先发给DNS缓存服务器,发给根域域名服务器,返回.com服务器地址,返回example.com服务器地址,再次查询即可
nslookup(DNS信息收集)
Server 域名服务器
canonical name (Cname)
set type(q)=查询类型 设置查询类型
server ip地址 设置域名服务器
智能DNS 用户网络不同,DNS返回结果不一样,使流量尽量发生在本地
set q=any 查询任何类型记录
spf记录,将ip地址反向解析,反垃圾邮件(收到邮件会对来源ip地址反向查询,与域名匹配)
nslookup 域名 type= DNS服务器地址
202.106.0.20 北京联通DNS服务器
dig工具
dig example.com any @DNS服务器地址
输出筛选: +noall 不输出任何
+answer 最终结果
-x 反向查询ip地址
bind版本信息: dig +noall +answer txt chaos VERSION.BIND @ns3.dnsv4.com
到官网的realease文件查看旧版本漏洞
DNS追踪: dig +trace example.com
迭代查询:先向本地DNS服务器询问13个根服务器地址
任选一个查询,返回13.com域的服务器名称和地址,并向本地DNS服务器确认
能发现哪一级服务器被劫持
递归查询:只向本地DNS服务器询问
/etc/resolv.conf 本机DNS服务器地址
DNS区域传输
dig @ns1.example.com example.com axfr
host -T -l sina.com 8.8.8.8
DNS字典爆破
dpkg -L 程序名 包管理程序,查看程序所有文件
fierce -dnsserver 8.8.8.8 -dns sina.com.cn -wordlist a.txt
dnsdict6 -d4 -t 16 -x sina.com (-s,-m,-l,-x,-u 字典大小)
dnsenum -f dnsbig.txt -dnsserver 8.8.8.8 sina.com -o sina.xml
dnsmap sina.com -w dns.txt
dnsrecon -d sina.com --lifetime 10 -t brt -D dnsbig.txt
dnsrecon -t std -d sina.com
DNS注册信息
Whois
whois -h whois.apnic.net 192.0.43.10
shodan搜索引擎
只爬网上的设备
net:ip地址 查询ip地址有关的信息
net:8.8.8.0/24 查询8.8.8ip段的所有地址
country:CN 查找中国的
city:beijing 查找北京的
port:22 开放22端口的 400 拒绝访问 302 重定向 200 可以访问
HTTP/1.1 200 ok 查找可以连接的开放端口
os:“windows” 查找windows系统
hostname: 查找主机名
/etc/network/interfaces 网卡设置为dhcp,再执行dhclient eth0
http://exploit-db.com/google-dorks
theharvester搜索命令
邮件,主机
theharvester -d sina.com -l 300 -b google
文件
metagoofil -d microsoft.com -t pdf -l 200 -o test -f 1.html
-o工作目录,-f输出文件
proxychains theharvester -d sina.com -l 300 -b google 使用代理
tor 的端口9150
tmux 终端窗口插件
goagentFQ
安装支持包: apt-get install python-appindicator python-crypto python-dev python-gevent python-greenlet python-openssl python-pip python-vte libnss3-tools
pip install pyOpenSSL
pip install gevent --upgrade
mkdir -p ~/.pki/nssdb
导入证书:certutil -d sql:$HOME/.pki/nssdb –N
导入证书到浏览器 导入CA
设置浏览器代理
运行 goagent-gtk.py
CUPP——Common User Password Profiler
git clone https://github.com/Mebus/cupp.git
python cup.py -i
exif图片信息
exiftool工具显示图片的信息
recon-ng web信息搜索框架
命令格式与msf 一致
snapshots 创建快照
run 运行模块
reporting 生成报告模块
resolve 解析ip地址模块
search 搜索模块
关于黑客的电影
《Who Am I-No System Is Safe》
二十五岁的他却是一个电脑黑客,拥有对C/C++等多种编程语言以及在黑客死亡IP追踪上拥有不可思议的天赋,他可以追踪到任何一个人的任何信息。而影片中另一位主人公麦克斯是一个渴望“黑客世界”的潜在革命者,他注意到了本杰明在网络方面神一般的操控能力。
他们组建了黑客组织CLAY(clawnlaghingatyou意思是小丑的嘲笑),并且先后入侵了国际安全系统、国际金融系统、国际金融评估系统、德国安全局、德国情报局。
他们凭借高超的黑客技术引起了德国特种警察组织、欧洲特种刑警组织的重视,并且一个智商170的代号为"MRX"的黑客首脑将他们视作威胁,而最终头目俄罗斯的"血族"网络黑帮将他们除去。
MRX用的招数是根据对方给自己设的陷阱反过来给对方设置陷阱,本杰明利用MRX的性格弱点使他落网,利用女警察的弱点让自己和同伙逃脱,用剧中台词就是“黑掉人类”——每个人也就是更精密但一样有安全漏洞的电脑系统。