各位同志大家好,我是一名小白,出于一些兴趣原因想学习渗透技术,也考虑过将这个作为未来的发展方向,本人现在大一在读,平时也算是有足够的时间来研究自己比较感兴趣的事情,下面想问问各位同志一些问题。
1.kali这个操作系统在我的体验中貌似是一个跟代码比较脱节的操作系统,如果一头扎紧kali里面,对我未来学习渗透来说会不会不太好?或者说,打好代码基础是否是一个比较重要的事情?
2.关于上面提到的想把网络安全,信息安全这些方向作为以后的发展方向的问题。
本人所在的学校是一所还不错的985,但是感觉学校考核的内容(我们大一必修的c语言)跟实际的应用脱节比较严重(本人虽然之前没有学过c语言,但是上个学期花费的时间精力非常多,也自认为可以编写一些稍有实用性的代码,但是期末总评很低,对我而言是比较大的打击),那在这种环境下会不会不太适合我把网络安全,信息安全等方向作为我未来的发展方向呢?
3.我学习这渗透技术的大概路线可以有大神给我稍微点一下吗?
我现在感觉就是一头雾水,b站上面的视频也有看,动辄一百多个小时的那种视频,但是实际上看下来的体验,感觉更多的像是机构在宣传,信息密度感觉比较低,而且上来讲各种协议,我也觉得听起来比较难接受。另外举的例子我也觉得并没有很好让小白理解
我也尝试过在csdn上观摩大佬的代码,但是我去查一个函数的具体用途都会花费我不少的时间(比如说如何构建一个简单的木马病毒,socket部分大佬直接掠过了,上来就是这么长的代码啃起来比较吃力)
有什么比较适合我的方案或者路线吗?
目前比较主要的疑问就这么多,希望各位同志能帮助一下我
|
李华峰老师的『Kali Linux 2网络渗透测试实践指南』(第二版)和『Python渗透测试实战』这两本书很不错
要继续深入还得学web安全『Web安全漏洞渗透实战指南』
这些书好像在一个wizardforcel/sec-books-part1的github仓库里都有 总量几个gb 可以自己去搜索一下
使用道具 举报
初级黑客
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
使用道具 举报
非常感谢您!
可否就代码基础这一部分内容向您请教一下呢?
自己手动编写的代码貌似更加容易通过杀毒软软件的病毒检测,那么自己手动编写代码在实战的过程中是否是一个实用的技能呢?
使用道具 举报
有时现成的工具无法满足任务需求,这时就需要手动编写工具来达到目的,因此编程技能不可或缺
一直以来,那些自称黑客,只会使用别人编写的工具而不求甚解的初学者被称为script kiddie,即脚本小子
使用道具 举报
使用道具 举报
### 1. Kali Linux与代码基础
Kali Linux是一款专为渗透测试和安全审计设计的操作系统,它集成了大量的渗透测试工具。虽然使用这些工具并不一定需要深入的代码知识,但从长远来看,打好代码基础对学习渗透技术非常重要。
Kali Linux中的工具确实在一定程度上降低了使用门槛,但渗透测试不仅仅是使用现成工具。在实际工作中,你可能会遇到需要自定义脚本、开发漏洞利用程序、分析恶意代码等情况,这些都离不开扎实的代码基础。例如,在进行漏洞利用时,你可能需要根据目标系统的特点编写特定的脚本;在分析恶意软件时,需要具备阅读和理解代码的能力。
所以,不建议一头扎进Kali里面而忽视代码学习。你可以在使用Kali的同时,逐步学习Python、C、C++等编程语言,这将对你未来的渗透测试学习和职业发展有很大帮助。
### 2. 学校课程与职业发展方向
学校的课程设置和考核方式可能与实际应用存在一定的脱节,这在很多高校中都是普遍现象。但这并不意味着你不适合将网络安全、信息安全作为未来的发展方向。
虽然你在C语言课程中可能遇到了一些挫折,但这并不代表你不具备学习网络安全的能力。C语言是一门基础编程语言,它在网络安全领域也有广泛的应用,例如系统编程、漏洞挖掘等。你可以从这次经历中总结经验,调整学习方法。
此外,网络安全领域涉及的知识面非常广泛,除了编程语言,还包括网络协议、操作系统、数据库等。你可以利用课余时间自主学习这些知识,通过参加线上课程、阅读相关书籍和博客等方式来拓宽自己的知识面。同时,你所在的985高校通常会提供丰富的学术资源和实践机会,你可以积极参加学校的网络安全社团、实验室或竞赛,积累实践经验。
### 3. 学习渗透技术的路线
以下是一个适合初学者的渗透技术学习路线:
#### 基础阶段(1 - 3个月)
- **计算机基础**:复习和巩固计算机网络、操作系统、数据库等基础知识。可以阅读相关的教材,如《计算机网络(第5版)》(谢希仁)、《深入理解计算机系统》等。
- **编程语言**:学习Python编程语言,它在渗透测试中应用广泛,许多工具和脚本都是用Python编写的。可以通过在线课程(如慕课网、菜鸟教程)和书籍(如《Python编程:从入门到实践》)进行学习。
#### 中级阶段(3 - 6个月)
- **网络安全基础**:学习网络安全的基本概念、常见攻击类型和防御方法。可以阅读《网络安全基础教程》等书籍。
- **渗透测试工具**:学习使用Kali Linux中的常用渗透测试工具,如Nmap(网络扫描)、Metasploit(漏洞利用)、Burp Suite(Web应用测试)等。可以通过在线教程和实践项目来掌握这些工具的使用。
- **漏洞挖掘与利用**:学习常见的漏洞类型,如SQL注入、XSS、CSRF等,并掌握相应的漏洞挖掘和利用方法。可以通过搭建本地测试环境(如DVWA、OWASP Juice Shop)进行实践。
#### 高级阶段(6 - 12个月及以后)
- **代码审计**:学习如何进行代码审计,发现代码中的安全漏洞。可以阅读《代码审计:企业级web代码安全架构》等书籍。
- **逆向工程**:学习逆向工程技术,分析恶意软件和破解软件的工作原理。可以阅读《逆向工程核心原理》等书籍。
- **安全研究**:关注网络安全领域的最新研究成果和漏洞信息,参与安全社区和论坛的讨论,发表自己的研究成果。
在学习过程中,建议你多实践、多动手,通过实际项目来巩固所学的知识。同时,要保持学习的热情和耐心,不断积累经验,逐步提升自己的技术水平。
下面是一个简单的Python脚本示例,用于实现一个简单的端口扫描功能,帮助你更好地理解代码在渗透测试中的应用:
```python
import socket
def port_scan(target, port):
try:
# 创建一个TCP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置超时时间,避免程序长时间阻塞
sock.settimeout(1)
# 尝试连接目标主机的指定端口
result = sock.connect_ex((target, port))
if result == 0:
print(f"Port {port} is open")
else:
print(f"Port {port} is closed")
# 关闭套接字连接
sock.close()
except socket.error as e:
print(f"Error occurred: {e}")
if __name__ == "__main__":
target = "127.0.0.1" # 目标主机的IP地址
for port in range(1, 100): # 扫描1 - 100端口
port_scan(target, port)
```
这个脚本通过Python的`socket`模块实现了一个简单的端口扫描功能。你可以根据自己的需求修改目标主机的IP地址和扫描的端口范围。
使用道具 举报