通用技能
公司與個人
- 公司是盈利性組織
- 個人和公司必須雙贏
- 在認同公司理念且能夠給公司創造足夠價值的基礎上,爲個人發展而工作
WHO AM I
黑客是守正出奇且具備創造力的羣體
守正出奇
- 這條正道/底線得堅守
- 但如果太過正就迂腐了,爲了搞定任務有時得出奇招
創造力
-
一個沒有創造力的人是多麼的可憐,對於團隊來說也是一種恥辱
-
本技能表的本質目的只有一個:引導你擁有足夠的創造力
-
黑客也可以是一種思維方式
-
我們需要對得起名片上的那個頭銜:工程師、研究員
牛人姿態
- 即使現在不是牛人,也得具備這樣的姿態
- 沒有一定紮實內功與遠見的人很少有這樣的姿態
- 擁有不將就的做事風格,遲早是牛人
如何做事
方法論
- 完成一件事有好幾條途徑,優秀的人的途徑最短
- 任務拆分很容易得出做事的方法論
好的「方法論」會讓你具備更強的「創造力」!
- 時刻問自己:「是否具備創造力?」
任務拆分
- 成長過程會經歷:能力越大、責任越大、事情越多
思路
- 拆分細化爲多個點
排好優先級
- 任務四象限,決定優先級
- 緊急重要,趕緊搞定
- 重要不緊急,時刻保持關注,以免淪爲「緊急重要」
- 緊急不重要,少少益善,學會拒絕
- 不緊急不重要,靠自律
- SMART原則
- S:任務是否明確,不明確的任務搞起來就是浪費生命
- M:任務是否可度量,不可度量如何體現價值?
- A:任務是否可搞定,搞不定就不應該接,接就得有魄力搞定
- R:任務的相關性如何,決定了任務的價值,相關性越高越能體現價值,比如這個任務搞定了能讓團隊獲得公司、客戶等更大的認可
- T:任務的時間
- imeline:任務時間軸,什麼時間點需要搞定什麼
- Deadline:任務的最後期限,做評估時最好提前,因爲總會有各種意外或拖延本性
- Timeline上一些很關鍵的時間點我們可以稱爲里程碑,搞定每個里程碑應該慶祝下
- 自己欠缺什麼,立馬發現
- 是否需要尋求幫助,誰能幫你,自己單幹?
團隊
- 士氣第一
- 當你有團隊時,分配與調度好任務很關鍵
- 做得好是真併發
- 做不好會死鎖
溝通、反饋與責任
- 一個無溝通能力的人,要麼是天才,要麼是不可愛的人,不過天才也就寥寥無幾而已,你並不是
- 反饋要及時
- 避免出問題不反饋,影響進度
- 方式
- 正式的:郵件
- 臨時的:微信等即時通信
- 着急的:給個電話
- 工作有大小,責任心無大小
- 週報的透明
- 意義:大家互相瞭解工作與心得,有利於自己的判斷與成長
- 觀察是一種多重要的技能
- 不是單純的給領導彙報工作
- 週報需體現本週工作總結、下週工作計劃、心得/問題/建議(我們叫唧唧歪歪)
- 週報可以很好體現一個人的
- 總結能力
- 計劃能力
- 分享能力
- 想象下:一個人從來沒有心得/問題/建議的沉澱或反饋,這個人是一個相對封閉的人,在團隊作戰中很難達到默契
- 當然,這種分享能力遠不僅僅是在週報這種形式裏
- 意義:大家互相瞭解工作與心得,有利於自己的判斷與成長
團隊意識
- 很多人都說自己具備足夠好的團隊意識,但是有些人卻並不是這樣
- 舉個小例子:一個10人團隊約定早上10點開會,而你遲到了10分鐘,對於團隊來說你浪費了整個團隊100分鐘(10人*10分鐘)的生命。有些人無羞愧之心要麼是意識不到這點,要麼這個團隊的風氣就是這樣…
- 團隊意識是建立在互相信任的基礎上
- Leader最關鍵,優秀的Leader一定會有個優秀團隊
- 兵熊熊一個
- 將熊熊一窩
- 如何擁有個優秀的團隊是一個複雜的話題
成長
- 新事物的敏感性
- 保持好奇心
- 不要侷限在自己的圈子,適當跨界吸收靈感
- 訂閱國內外優秀博客/資源,深藍閱讀不錯
- 選擇性參與一些必要的會議,聽必要的主題,討論必要的話題
- 關於知識
- 對知識的渴望程度決定了前進動力的大小
- 當知識很廉價地擺在你面前,你反而不會珍惜
- 對知識保持敬畏之心
- 不要讓自己成爲矯情/浮誇的人
- 和比你厲害的人在一起,和一流的人工作
- 指點往往是精華
- 杜絕笨蛋爆炸
- 二流的人招進來的人不太可能是一流的
- 久而久之一個團隊就笨蛋爆炸了
- 思考
- 批判性思考
- 換位思考
- 對於一個團隊來說,這點太關鍵
- 提問的智慧
- 遇到問題先獨立思考,嘗試獨立解決,盡最大努力後再提問
- 提問時,禮貌很關鍵(對知識的敬畏),清晰表達很關鍵
- 解決後,分享出來幫助更多需要幫助的人
- 小事心態
- 越基礎的事越關鍵,越需要細心
- 不要一味盲目追求「高級感」,而忽視「小事」/「簡單事」/「基礎事」
- 基礎不牢、地動山搖
- 小事做不好,別提大事
- 無論是個人還是團隊的成長都需要不斷沉澱知識,沒有沉澱根基不穩
完成的定義
- 比如寫個PoC
- 搞懂了目標Web應用漏洞的原理
- 熟練運用Python各相關模塊與機制
- 熟練了解了HTTP協議
- HTTP請求
- HTTP響應
- 代碼寫得夠規範,讓人看起來就是爽
- 程序經過足夠的測試
- 黑測試
- 白測試
- 及時反饋進度
- 我遇到困難了
- 我搞定了
- 更新相關文檔,沉澱
熟練的定義
- 比如熟練SQL注入
- SQL語句這門“語言”能脫離文檔順手寫出
- 主流數據庫的SQL特有函數、存儲過程、機制我都瞭如指掌
- MySQL
- MSSQL
- Oracle
- PostgreSQL
- Access
- SQLite
- …
- 牛逼的工具我不僅用的順其自然,源碼還讀過幾遍,我能修改
- sqlmap
- …
- 我具備創造性,而不僅僅是跟在大牛身後
- 研究出了幾個不錯的技巧
- 發了幾篇不錯的Paper
- 對外會議/沙龍等進行了幾次分享
- 寫出了自己的相關工具,爽
- 我實戰了N回,遇到了很多奇葩環境,我有足夠的信心繞過
- 以上這些之後,這才叫熟練!其他同理
好書推薦
- 推薦理由
- 打通任督二脈的書,怎能不看?
- 但,盡信書不如無書
- 任何科學研究最終必須至少到哲學層面,觸碰到上帝的腳
- 具體技術類書籍請見「專業技能」相關部分
- 打通任督二脈的書,怎能不看?
- 雞湯類
- 黑客與畫家
- 印象深刻:設計者的品味
- 好設計是簡單的設計,抓住本質
- 好設計是永不過時的設計,如果解決方法是醜陋的,那就肯定還有更好的解決方法,只是還沒有發現而已
- 好設計是解決主要問題的設計
- 好設計是啓發性的設計
- 好設計通常是有點趣味性的設計
- 好設計是艱苦的設計
- 好設計是看似容易的設計
- 好設計是對稱的設計
- 好設計是模仿大自然的設計
- 好設計是一種再設計
- 好設計是能夠複製的設計
- 好設計往往是奇特的設計
- 好設計是成批出現的
- 好設計常常是大膽的設計
- 浪潮之巔
- 感受IT帝國的崛起與沒落,我們現在站在又一個互聯網浪潮之巔
- 黑客與畫家
- 潔癖類
- 重構
- 代碼整潔之道
- 代碼大全2
- 敏捷類
- Rework中文版
- 高效程序員的45個習慣
- 產品類
- 人人都是產品經理
- 結網
- 神書
- 自私的基因
- 失控
- …
專業技能
原則
- 至少完整看完與練習好一本書
- 至少過一遍官方文檔
基礎必備
- HTTP抓包與調試
- Firefox插件
- Firebug,抓包與各種調試
- Tamper Data,攔截修改
- Live Http Header,重放功能
- Hackbar,編碼解碼/POST提交
- Modify Headers,修改頭部
- Fiddler,瀏覽器代理神器
- 攔截請求或響應
- 抓包
- 重放
- 模擬請求
- 編碼解碼
- 第三方擴展
- Watcher,Web前端安全的自動審計工具
- Wireshark,各種強大的過濾器語法
- Tcpdump,命令行的類Wireshark抓包神器
- Python: urllib2
- 打開請求響應調試
- 編輯urllib2的do_open裏的h.set_debuglevel
- 改爲h.set_debuglevel(1),這時可以清晰看到請求響應數據,包括https
- 打開請求響應調試
- Firefox插件
- 什麼是跳轉
- 服務端跳轉
- 302 <?php header("Location: 3.php"); ?>
- 301 <?php header(“HTTP/1.1 301 Moved Permanently”); header(“Location: 2.php”);
- u=urllib2.urlopen(url)後,u.url能得到服務端跳轉後的地址
- 客戶端跳轉
- htmlparse解析就行了
- location.href=“http:/” + “/evilcos.me”;
- 正則解析(弱)
- JavaScript引擎解析(強)
- 服務端跳轉
- Office能力
- Word文檔編寫,看去要專業,尤其對外的
- Excel裏面大量的統計、圖表功能,需要善於使用
- PPT演講、培訓等必備,如何做好PPT?百度一下…
- 進一步
- yEd
- Visio
- FreeMind
- 上手Linux
- 《鳥哥的Linux私房菜》
- 熟練VIM
- 實戰至少3回合:Vim
- 上手Python
- 算法
- 快排
- 二分
- 正則表達式
- 調試工具
- ksmiletris Kodos
- RegexBuddy 支持多種語言,支持調試優化
- 正則圖解
- 正則表達式30分鐘入門教程
- Python正則表達式操作指南
- 《精通正則表達式》
- 調試工具
- 研發能力
- 瀑布模型:需求->需求分析->設計->開發->測試->上線->運維/運營
- 需求分析能力
- 給你一個需求,如何給出一個優美的執行思路——方法論
- 這個能力非常非常非常的關鍵
- 調試能力
- 只要定位出,就沒有解決不了的Bugs
- 肉眼看到的都是假象,一定要專業的工具與經驗配合
- Bugs在哪出現,最終就在哪進行真實模擬調試
- 縮小範圍
- 構建自己的測試樣例
- 排除網絡複雜未知情況
- 關聯模塊一個個排除
- Python單步調試
- import pdb;pdb.set_trace()
- 在需要單步調試的地方加上面這句,運行程序後中斷在此,然後h查看指令進行一步步細細調試
- 粗暴調試:print
- 敏捷思想
- 快速迭代
- 任務拆細
- v1原則:定義好v1的目標,快速完成v1爲優先
- 習慣Wiki記錄,利於沉澱與分享
Web安全
- 零基礎如何學習Web安全
- Web服務組件
- 安全維度
- 漏洞
- 風險
- 事件
- Web安全標準
- OWASP
- WASC
- 實戰環境
- 工具
-
我的滲透利器
- Firefox
- Firebug,調試JavaScript,HTTP請求響應觀察,Cookie,DOM樹觀察等
- Tamper Data,攔截修改
- Live Http Header,重放功能
- Hackbar,編碼解碼/POST提交
- Modify Headers,修改頭部
- GreaseMonkey
- NoScript,進行一些JavaScript的阻斷
- AutoProxy
- Chrome
- F12,打開開發者工具,功能==Firebug+本地存儲觀察等
- SwichySharp
- CookieHacker
- Web2.0 Hacking
-
XSS’OR
-
常用其中加解密與代碼生成
-
-
- Monyer開發的,加解密最好用神器
-
- JavaScript美化工具,分析JavaScript常用
-
BeEF
-
- Firefox
-
HTTP代理
- Fiddler,非常經典好用的Web調試代理工具
- Burp Suite,神器,不僅HTTP代理,還有爬蟲、漏洞掃描、滲透、爆破等功能
- mitmproxy,Python寫的,基於這個框架寫神器實在太方便了
-
漏洞掃描
- AWVS,不僅漏掃方便,自帶的一些小工具也好用
- Nmap,絕對不僅僅是端口掃描!幾百個腳本
- Python自寫腳本/工具
-
漏洞利用
- sqlmap,SQL注入利用最牛神器,沒有之一
- Metasploit,最經典的滲透框架
- Hydra,爆破必備
-
抓包工具
- Wireshark,抓包必備
- Tcpdump,Linux下命令行抓包,結果可以給Wireshark分析
-
Sebug + ZoomEye ,類似這類平臺都是我們需要的
-
Kali Linux,除了上面介紹的一些工具,其他海量各類型黑客工具,自己去摸索
-
- 書
- 《黑客攻防技術寶典(Web實戰篇)
- 《白帽子講Web安全》
- 《Web前端黑客技術揭祕》
- 《Web之困》
- 《SQL注入攻擊與防禦》
- papers
- http://www.exploit-db.com/papers/
- BlackHat/Defcon/XCon/KCon/國內各安全沙龍等相關Papers需要持續跟進
嵌入式安全
路由器安全
基礎
- 嵌入式Linux系統方面知識
- 開發系統互聯參考模型-第三層網絡層
- MIPS/ARM彙編知識
- VxWorks系統方面知識
- JTAG調試接口規範
- 嵌入式系統交叉環境開發
- 路由器芯片方案提供商
- 博通
- Atheros
- TrendChip
- ACROSPEED
- IC+
- 瑞昱
- …
站點
- OpenWrt is described as a Linux distribution for embedded devices
- 全球主流路由器相關漏洞大集合
- Embedded Device Hacking
工具
- Binwalk
- IDA Pro
- gdb/gdbserver
- qemu-system
- qemu-user-static
- Smiasm
- Metasm
- JTAG硬件調試器
書
- 《揭祕家用路由器0day漏洞挖掘技術》
- 《Hacking the XBOX: An Introduction to Reverse Engineering》
- 《Hacking the Cable Modem: What Cable Companies Don’t Want You to Know》
- 《MIPS體系結構透視 》
- 《計算機組成與設計:硬件、軟件接口》
攝像頭安全
- http://www.openipcam.com/
zoomeye.org
全球可以找到無數真實路由器/攝像頭/工控設備等
研發清單
編碼環境
- pip
- Vagrant
- tmux/screen
- vim
- Markdown
- zsh + oh-my-zsh
- Python2.7
-
Django1.4
- http://djangobook.py3k.cn/2.0/
- Django Debug Toolbar
- 其他框架
- web.py
- Flask
- Tornado
- node.js
- Ubuntu/Gentoo/Centos
- ipython
- 版本控制
- 廢棄SVN,全面擁抱Git
- GitLab
- Nginx+uWSGI
Python
- 官方手冊
- 至少過一遍,這都沒過一遍,視野會侷限
- 行之說:「我沒看過Python的書,卻熟讀官方手冊…」
Linux/UNIX
- 書
- 《鳥哥的Linux私房菜》
- 《Linux Shell腳本攻略》
- 《UNIX編程藝術》
- 《Software Design 中文版 01》《Software Design 中文版 02》《Software Design 中文版 03》
- 讓你的電腦默認操作系統就是Linux…
前端
- 書
- 《JavaScript DOM編程藝術》
- 瞭解DOM,這同樣是搞好前端安全的必要基礎
- 庫
- jQuery
- 優秀的插件應該體驗一遍,並做些嘗試
- 官方文檔得過一遍
- D3.js
- ECharts,來自百度
- Google API
- ZoomEye Map組件,ZoomEye團隊自己基於開源的打造
- AngularJS,Google出品的顛覆性前端框架
- Bootstrap,應該使用一遍
- jQuery
爬蟲進階
- 代理池
- 爬蟲「穩定」需要
- 網絡請求
- wget/curl
- urllib2/httplib2/requests
- scrapy
- 驗證碼破解
- pytesser
調度
- crontab是最原生的定時調度
- 基於redis實現的分佈式調度
- 基於rpyc實現的分佈式調度
- celery/gearman等調度框架
併發
- 線程池,進程內優美的併發方案
- 協程
- 進程內另一種優美的併發方案
- gevent
- 多進程
- os.fork
- multiprocessing
數據結構
- JSON
- cPickle
- protobuf
數據存儲及處理
數據庫
- MySQL
- MongoDB
- Cassandra
- Hadoop體系
- Redis
- Sqlite
- bsddb
- ElasticSearch
大數據處理
- Hive
- Spark
- ELK
- ElasticSearch
- Logstash
- Kibana
DevOps
- SSH證書
- Fabric
- SaltStack
- puppet
- pssh/dsh
- 運維進階