lhosts@home:~$

网络安全及编程语言知识梳理总结

从接触网络安全,计算机以来,已经接触到了许许多多的内容,这些内容梳理将在如下展现。(不保证全面,但保证自由梳理,以后可能会补充)

一. 网络安全

​ 主要内容方面以及比较偏的方向上的内容.

  1. web安全

    web安全主要由浏览器,熏染前后端语言,或者框架,通过web容器进行展现web页面内容,或者数据库内容,由服务器中的操作系统进行运行。

    web网站有以下几个类型,bbs论坛,博客页面,cms内容管理系统,新闻发布页面,商城购物页面,大多通过框架能够进行快速开发,不排除自己开发出独立的框架进行使用,甚至创建出自己的编程语言,这个话题有些远了。

    在进行渗透测试,测试web网页的时候,时常通过网络安全渗透测试工具,比如kali系统,比如国产的其他windows渗透测试工具集,通过渗透测试流程,方法,方式,使用工具和手工进行渗透,偶尔需要编写自动化脚步进行自动化利用,一般推荐脚本是python,便于后续维护,模块多,适合开发大型项目,也可以使用perl快速开发,只是维护方面需要多写注释,常被称为一次性脚本,但是开发效率比python还快,所以值得一提,节省生命。

    web开发能够提高web安全渗透测试的效率,以及准确率,语言有javascript,html,css,后端的php,java,python,ruby,所以值得钻研。

    web安全在渗透测试的时候,如果没有接触过编程语言,那么有些难以理解,不同程序逻辑在页面展现的过程,以及渗透测试流程的差异。

    这里推荐书籍«黑客攻防技术宝典第二版 web篇» 老书,但是值得一读。

    里面介绍了web渗透测试的流程,攻击方式,工具的使用,以及漏洞的原理,还有其他。

    常见使用工具,web渗透,子域名信息搜集的subfinder,需要配置配置文件api,用于接口其它网站的信息,用于搜集这些网站中早已经被收录的域名。

    gobuster属于可以爆破域名和扫目录的go语言工具,还有其他功能,由于是go开发的,并发能力较强。

    剩下的工具在kali平台,awesome系列github项目,以及the secret book of the knowledge项目中,存在大量安全信息工具以及资源。

    如果说那本书教会了你如何进行渗透测试,那么这些资源将教会你如何使用它们,工具,漏洞环境,labs,etc。

2.二进制安全

通常二进制安全包括了很多子集,就像web渗透测试也包纳了许许多多的方方面面,主要几个方面逆向工程(主要是破解,协议逆向),pwn(也称为二进制漏洞利 用),免杀(杀软逃逸),恶意软件分析,二进制方面包纳了,linux环境,windows环境,安卓和苹果手机的环境,甚至包纳了嵌入式,iot,掌握这类知识,需 要对底层有较深的理解,比如c/c++,汇编语言,调试工具的使用,熟知攻击流程,体系结构,和网络渗透大不相同,大多数这类工作都在底层深入钻研,也 是高级主题,flare是windows 10逆向操作工具集成环境,对应的也有专门的linux环境remunx基于ubuntu,pwn多数操纵在linux平台上面,也有windows 的,移动端少有接触,但是底层技能都可以触类旁通,比如熟知linux操作系统,或者windows操作系统的底层后,再接触其他移动端的会快很多,无论你是 学哪一门的二进制学科,都需要掌握基础的文件格式,windows的pe,linux的elf,安卓的apk,懂了文件格式才方便后续的操作,还要熟知体系结构,比如 x86,x64 cpu指令集架构,汇编语言,恶意软件分析一般是蓝队方向,免杀,二进制pwn,则是红队方面的研究,还有逆向工程,这类主要是软件安全的保护与 破坏。

3.内网渗透

内网渗透通常是在外网拿到一台主机的权限后进行的后续操作,比如你通过文件上传上传了一个webshell后门,通过这个后门进入到服务器主机中,在通过这台 主机进行横向移动到其他主机,无论是通过怎样的端口利用,内网信息搜集,工具使用,绕过防火墙,或者拿到域权限,这类行动一般在红队的工作内容中,给企业的安全服务,还有护网行动,在进行横向移动的时候,需要规避杀软,edr,ids,ips等安全设备,或者说是在红队的作业攻击过程中,一般是由多个人员组成,以定制专项行动,有的人擅长打点,拿入口权限,有的人熟悉内网信息搜集横向移动,而有的人则是进行杀软的规避和编写,进行定制化的攻击,最后还要熟知对应的操作系统,进行痕迹清除和留下后门,以便下次继续访问,这在网络安全的攻击行为中十分重要,这类安全测试,以提前发现危险,把可能存在的漏洞行为,易受攻击的行为进行排查。

4.取证和溯源

溯源一般是溯源攻击者,攻击行为,从哪进来的,做了些什么,目标人物在哪(如果能找到的话),取证一般根据需求进行专业工具使用,提取出需要的信息。

5.linux

掌握linux,一开始很陡峭,后面大量的时间能够让你节省生命。

6.编程语言

不同的编程语言在不同的方面有不同的性质和性能,python 语法清晰,便于维护,模块多,适合开发大型项目,perl,一次性脚本,快速开发文本处理类型脚本,节省生命,相对于其他脚本,在脚本语言的世界里,被称为瑞士军刀,c/c++,适合编写高性能软件,操纵底层内存,堆栈空间,是直接和硬件打交道的语言,能够创造万物,php 快速后端网页的语言,javascript,前端事件响应语言,java,用于开发安卓应用,适用于开发企业级web应用,面向对象语言。

7.其他

隐写,流量分析,代码审计用于挖掘0day,需要对编程有极高的理解,