Step 0 —— Linux and scripting

  • 阅读列表
  • 动手实践
    • 安装Linux: 选择使用一款虚拟机软件(VirtualBox, VM Player) 并且安装Linux。使用像Ubuntu那样的传统发行版,而不是侧重安全的发行版。
    • 学习一个脚本语言的基础: 从Ruby (Try Ruby),Python (在线运行),或者Perl中选择一个,学习他的语法和数据类型。这是一个持之以恒的过程。

Step 1 —— HTTP

  • 阅读列表
  • 动手实践
    • 在你的虚拟机内安装apache,用vim修改主机的首页。用你的浏览器访问这个页面。
    • 修改你的host文件,使得用”vulnerable”这个名称访问到Linux系统。
    • 用一个http库写一个HTTP客户端,获取你站点的首页。
    • 用socket写一个HTTP客户端,获取你网站的首页。
    • 下载Burp Suite,访问一个网站,看看发送了什么请求收到了什么响应。

Step 2 —— PHP and DNS

  • 阅读列表
  • 动手实践
    • PHP基础:
      • 在你之前装过apache的虚拟机中安装PHP,写一个脚本回显url的参数。比如访问http://vulnerable/hello.php?name=Louis会返回”Hello Louis”。
      • 安装mysql并写一个从中读取信息的脚本。比如article.php?id=1返回一本书,article.php?id=2返回一个电脑。
      • 创建一个页面,用POST请求发送数据到它自身。
    • DNS和whois:
      • 在你的虚拟机里安装命令行工具dig。
      • 找到PentesterLab所用的name servers和mail servers,和www.pentesterlab.com的ip地址。
      • 用whois获取pentesterlab.com的信息。

Step 3 —— SSL/TLS

  • 阅读列表
  • 动手实践
    • 安装SSL:
      • 在你的web服务器上启用HTTPs
      • 确保你禁用所有弱密码
    • 玩转SSL:
      • 用HTTP库写一个SSL客户端
      • 用socket写一个SSL客户端
      • 用之前的HTTP脚本访问你的SSL服务器,并用socat做”socket<—>ssl-socket”的连接

Step 4 —— SQL injection & Local File Include


Step 5 —— More SQL injection


Step 6 —— FTP and traffic analysis


Step 7 —— Linux review and Code Exec


Step 8 —— HTTP server and Firewalling

  • 阅读列表
  • 动手实践
    • 写一个HTTP服务器(使用fork来处理连接)
    • 启用禁用iptables。用iptables拦截ICMP请求,测试是否ping的通

Step 9 —— Nmap and Crypto Attacks


Step 10 —— WIFI


Step 11 —— Linux Exploitation


Step 12 —— SSL Pinning and Linux Exploitation


Step 13 —— Web For Pentester


Step 14 —— Web For Pentester II


来自pentesterlab