黑客入侵一般有哪些基本过程?

黑客入侵一般有哪些基本过程?,第1张

作者:向生李

链接:https://wwwzhihucom/question/21914899/answer/39344435

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Web安全工程师

Web安全相关概念

熟悉基本概念(SQL注入、上传、XSS、CSRF、一句话木马等)。

通过关键字(SQL注入、上传、XSS、CSRF、一句话木马等)进行Google/SecWiki;

阅读《精通脚本黑客》,虽然很旧也有错误,但是入门还是可以的;

看一些渗透笔记/视频,了解渗透实战的整个过程,可以Google(渗透笔记、渗透过程、入侵过程等);

3周

熟悉渗透相关工具

熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相关工具的使用。

了解该类工具的用途和使用场景,先用软件名字Google/SecWiki;

下载无后们版的这些软件进行安装;

学习并进行使用,具体教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;

待常用的这几个软件都学会了可以安装音速启动做一个渗透工具箱;

5周

渗透实战操作

掌握渗透的整个阶段并能够独立渗透小型站点。

网上找渗透视频看并思考其中的思路和原理,关键字(渗透、SQL注入视频、文件上传入侵、数据库备份、dedecms漏洞利用等等);

自己找站点/搭建测试环境进行测试,记住请隐藏好你自己;

思考渗透主要分为几个阶段,每个阶段需要做那些工作,例如这个:PTES渗透测试执行标准;

研究SQL注入的种类、注入原理、手动注入技巧;

研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架;

研究XSS形成的原理和种类,具体学习方法可以Google/SecWiki,可以参考:XSS;

研究Windows/Linux提权的方法和具体使用,可以参考:提权;

可以参考: 开源渗透测试脆弱系统;

1周

关注安全圈动态

关注安全圈的最新漏洞、安全事件与技术文章。

通过SecWiki浏览每日的安全技术文章/事件;

通过Weibo/twitter关注安全圈的从业人员(遇到大牛的关注或者好友果断关注),天天抽时间刷一下;

通过feedly/鲜果订阅国内外安全技术博客(不要仅限于国内,平时多注意积累),没有订阅源的可以看一下SecWiki的聚合栏目;

养成习惯,每天主动提交安全技术文章链接到SecWiki进行积淀;

多关注下最新漏洞列表,推荐几个:exploit-db、CVE中文库、Wooyun等,遇到公开的漏洞都去实践下。

关注国内国际上的安全会议的议题或者录像,推荐SecWiki-Conference。

3周

熟悉Windows/Kali Linux

学习Windows/Kali Linux基本命令、常用工具;

熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill等;

熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;

熟悉Kali Linux系统下的常用工具,可以参考SecWiki,《Web Penetration Testing with Kali Linux》、《Hacking with Kali》等;

熟悉metasploit工具,可以参考SecWiki、《Metasploit渗透测试指南》。

3周

服务器安全配置

学习服务器环境配置,并能通过思考发现配置存在的安全问题。

Windows2003/2008环境下的IIS配置,特别注意配置安全和运行权限,可以参考:SecWiki-配置;

Linux环境下的LAMP的安全配置,主要考虑运行权限、跨目录、文件夹权限等,可以参考:SecWiki-配置;

远程系统加固,限制用户名和口令登陆,通过iptables限制端口;

配置软件Waf加强系统安全,在服务器配置mod_security等系统,参见SecWiki-ModSecurity;

通过Nessus软件对配置环境进行安全检测,发现未知安全威胁。

4周

脚本编程学习

选择脚本语言Perl/Python/PHP/Go/Java中的一种,对常用库进行编程学习。

搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime,一些Sublime的技巧:SecWiki-Sublime;

Python编程学习,学习内容包含:语法、正则、文件、网络、多线程等常用库,推荐《Python核心编程》,不要看完;

用Python编写漏洞的exp,然后写一个简单的网络爬虫,可参见SecWiki-爬虫、视频;

PHP基本语法学习并书写一个简单的博客系统,参见《PHP与MySQL程序设计(第4版)》、视频;

熟悉MVC架构,并试着学习一个PHP框架或者Python框架(可选);

了解Bootstrap的布局或者CSS,可以参考:SecWiki-Bootstrap;

3周

源码审计与漏洞分析

能独立分析脚本源码程序并发现安全问题。

熟悉源码审计的动态和静态方法,并知道如何去分析程序,参见SecWiki-审计;

从Wooyun上寻找开源程序的漏洞进行分析并试着自己分析;

了解Web漏洞的形成原因,然后通过关键字进行查找分析,参见SecWiki-代码审计、高级PHP应用程序漏洞审核技术;

研究Web漏洞形成原理和如何从源码层面避免该类漏洞,并整理成checklist。

5周

安全体系设计与开发

能建立自己的安全体系,并能提出一些安全建议或者系统架构。

开发一些实用的安全小工具并开源,体现个人实力;

建立自己的安全体系,对公司安全有自己的一些认识和见解;

提出或者加入大型安全系统的架构或者开发;

看自己发展咯

网络安全专业的学生可以获得以下技能:

网络基础知识:了解计算机网络、互联网、通信协议、路由和交换技术等基础知识。

安全概念:了解信息安全的基本概念和原则,包括保密性、完整性、可用性、身份验证和访问控制等。

攻击和防御技术:了解常见的网络攻击类型,如拒绝服务攻击、SQL注入攻击、社交工程攻击等,以及相关的防御技术。

安全评估:掌握安全评估技术,如漏洞扫描、渗透测试、红队/蓝队演练等,以识别和缓解潜在的安全风险。

安全措施:了解安全措施的实施和管理,如访问控制、加密、日志记录、备份等。

法律和合规性:了解相关的法律法规和合规性要求,如GDPR、HIPAA、PCI-DSS等,以及如何保持合规性。

沟通和管理技能:学习如何与其他团队成员、管理层和客户沟通,以及如何管理和协调安全项目。

综上所述,网络安全专业需要学习的技能非常广泛,涉及到技术、法律、管理等多个方面,以帮助他们成为综合能力强的网络安全专业人员。

1、信息收集

11/ Whois信息--注册人、电话、邮箱、DNS、地址

12/ Googlehack--敏感目录、敏感文件、更多信息收集

13/ 服务器IP--Nmap扫描、端口对应的服务、C段

14/ 旁注--Bing查询、脚本工具

15/ 如果遇到CDN--Cloudflare(绕过)、从子域入手(mail,postfix)、DNS传送域漏洞

16/ 服务器、组件(指纹)--操作系统、web server(apache,nginx,iis)、脚本语言

17/ More

2、漏洞挖掘

21/ 探测Web应用指纹--Discuz、PHPwind、Dedecms、Ecshop

22/ XSS、CSRF、XSIO、SQLinjection、权限绕过、任意文件读取、文件包含

23/ 上传漏洞--截断、修改、解析漏洞

24/ 有无验证码--进行暴力破解

25/ More

3、漏洞利用

31/ 思考目的性--达到什么样的效果

32/ 隐藏,破坏性--根据探测到的应用指纹寻找对应的EXP攻击载荷或者自己编写

33/ 开始漏洞攻击,获取相应权限,根据场景不同变化思路拿到webshell

第一PHP语言本身漏洞相当多,尤其是很多人不喜欢用最新版本,现在PHP8都发布了,现在竟然还有一大批人用PHP52,越早的版本漏洞越多。漏洞多自然就好做渗透。

第二PHPweb框架漏洞也非常多。国内最常用的PHP框架thinkphp经常爆出各种严重漏洞,比如5x的远程可执行命令漏洞,导致大量使用此框架的网站中招。这个漏洞利用之容易,做个程序可以随便感染一大批网站。有的人利用这个漏洞拿到的肉鸡多到自己都数不过来。

反观Javaweb,大多数人都会用sprint全家桶。而SpringMVC和Springsecurity提供的安全认证,起安全性都是非常强的。

虽然Spring也出一些漏洞,但是我印象中还没有出过非常容易利用,非常简单就能拿到最高权限的傻瓜式漏洞。

第三网上劣质php源码最多。很多人是根本不具备独立编程能力的,这些所谓的“程序员”最喜欢干的事是去网上下载各种免费源码,然后改吧改吧就算自己做了网站了。

这种免费源码,以PHP居多。什么的dedeCMS,什么xxshop,xxmall,微盟,这里垃圾PHP源码简直是千疮百孔,漏洞百出。可以说是黑客们的最爱。用这类垃圾源码最的网站,随便一个中学生捣鼓捣鼓就能入侵,简直和裸奔没啥区别。

同时,会用这些垃圾代码做网站的程序员,一般水平都不会太高,按理说连编程入门都算不上。这些所谓程序自然根本无法做到防止黑客入侵。

第四很多人安全意识太差。不管你用什么语言做网站,大多都要在网站程序外在跑一个Nginx,apache,或者IIS。即使使用Java,Nginx做反向代理+静态处理,后面再加tomcat的构架也很多。

凡是,很多人要么是技术不到位,要么是偷懒,不去自己编译tomcat或者apache,而是用网上现成的的一键安装包或者傻瓜安装程序。这些程序可能会默认安装PHP支持。

也就是说,一些安全意识不强或者水平比较差的程序员编写的javaweb很有可能也会支持PHP。

很多人在入侵提权的时候,不管你是什么网站,都会先试一下PHP能不能执行,入侵几率比较高。

关于最后一个问题,如果你找到了Javaweb的漏洞,可以上传文件了,下一步要做的就是提权。这个时候你直接上传Java源代码是没有用的。php是动态执行的,源码可以直接被执行,而Java则需要编译。

拿到上传权限后想提权,就必须先弄清楚对方服务器的jre版本,然后再本地用相应的版本编译后,再把jar包传上去,才能够执行。

这里还有一个不同,一般php提权,只需要拿到网站根目录的上传权限即可。但是Javaweb很有可能网站的根目录,和存放可执行jar包的目录不是一个目录,想要执行Java代码,你就必须想法拿到jar包所在目录的上传权限(同时也要拿到网站根目录权限),这是一个难点。

phpcms优点:

1 模块化安装,非常适合安装,拆卸,和拿到市场上去交易非常方便的。

2 灵活的标签语法,非常强大。

3 缓存做的非常优秀。几乎支持目前主流的几大缓存系统解决方案,file缓存,eaelerator缓存,memcache缓存,shmop缓存等

4 安全性也不错的。后台为了防范入侵,采用了cookie和session同时存在验证技术,才可以安全进入后台。

多次登录失败,开启验证码功能。防止机器人频繁猜口令。

5 数据库。在根目录下的include目录下,db_aessphpdb_mssqlphpdb_mysqlphp等,就照着他的方法,在增加几个也没问题的。

6兼容性。是在php4的基础上开发的,所以向下兼容性是不错的。在include/globalfuncphp 这个文件可以看到很多if(!function_exist()){},这些代码就是为了兼容php4相关函数。

phpcms缺点:

1 后台对应的模块的功能列表url,从数据库中读取的,也即是,安装的时候,将url写入数据库了。这个如果二次开发要修改的话,不是很方便的,最好是写到文件中,读取文件内容,方便开发者开发,而且也更容易维护,如果是出于安全考虑的话,不妨加下密也可以的。

2 分部式。 后台的某些功能模块,还是要调用各个应用模块的admin部分,相关*.inc.php文件. 如果我要把其中某个模块或应用独立出去部署到其他的服务器上,就不方便了。

3数据库设计问题,后台开设模型时,表的引擎只能是myIsam,而不能选择其他的,字段的类型,比如要开设一个字段为number,类型为int,但是在新增加的模型表中还是以varchar出现,而不是int,长度是默认的255modelfiled表,才发现该系统是将类型写到该表中了。

4加密/解密程序。目前已经在想相关安全网站已被爆以破解。这也不是什么新闻了。在开发中,关注下相关安全厂商发布的漏洞。

5 数据库抽象层。就以上提到的几个数据库文件。 db_mssqlphp db_mysqlphp db_aessphp 等对于数据库分布式,应该没问题的。 数据库抽象层处理数据比较快,且快平台更容易且更容易维护,这个是需要考虑的。

Dedecms功能实用,模板功能使用简单。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 黑客入侵一般有哪些基本过程?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情