來自:開源中國 協作翻譯
連結:oschina.net/translate/important-penetration-testing-cheat-sheet
原文:https://techincidents.com/important-penetration-testing-cheat-sheet/
譯者:LeoXu, 邊城
如下是一份 Linux 機器的滲透測試備忘錄,是在後期開發期間或者執行命令註入等操作時的一些典型命令,設計為測試人員進行本地列舉檢查之用。
此外,你還可以從這兒(https://gbhackers.com/category/pentesting/)閱讀到許多關於滲透測試的文章。
命令 | 描述 |
---|---|
netstat -tulpn | 在 Linux 中顯示對應了行程ID(PID)的網路埠。 |
watch ss -stplu | 透過套接字實時觀察 TCP, UDP 埠。 |
lsof -i | 顯示確認了的連線。 |
macchanger -m MACADDR INTR | 在 KALI Linux 上修改 MAC 地址。 |
ifconfig eth0 192.168.2.1/24 | 在 Linux 中設定 ID 地址。 |
ifconfig eth0:1 192.168.2.3/24 | 在 Linux 中向現有的網路介面新增 IP 地址。 |
ifconfig eth0 hw ether MACADDR | 使用 ifconfig 修改 Linux 中的 MAC 地址。 |
ifconfig eth0 mtu 1500 | 在 Linux 中使用 ifconfig 修改 MTU 的大小,將 1500 改為你想要的 MTU。 |
dig -x 192.168.1.1 | 對 IP 地址進行反向查詢。 |
host 192.168.1.1 | 在一個 IP 地址上進行反向查詢,適用於沒有安裝 dig 的情況。 |
dig @192.168.2.2 domain.com -t AXFR | 使用 dig 執行一次 DNS 區域傳輸。 |
host -l domain.com nameserver | 使用 host 執行一次 DNS 區域傳輸。 |
nbtstat -A x.x.x.x | 獲取 IP 地址對應的域名。 |
ip addr add 192.168.2.22/24 dev eth0 | 向 Linux 新增一個隱藏的 IP 地址,在執行 ifconfig 命令時不會顯示這個 IP 地址。 |
tcpkill -9 host google.com | 阻止從主機訪問 google.com。 |
echo “1” > /proc/sys/net/ipv4/ip_forward | 啟用 IP 轉發,將 Linux 盒子變成一個路由器——這樣就方便透過這個盒子來進行路由流量的控制。 |
echo “8.8.8.8” > /etc/resolv.conf | 使用 Google 的 DNS。 |
系統資訊命令
對於本地的列舉檢查很有用。
命令 | 描述 |
---|---|
whoami | 顯示 Linux 上當前已登入使用者。 |
id | 向用戶顯示當前已登入的使用者和組。 |
last | 顯示最後一次登陸的使用者。 |
mount | 顯示已掛載的驅動。 |
df -h | 用人類可讀的輸出顯示磁碟使用情況。 |
echo “user:passwd” | chpasswd | 用一行命令重置密碼。 |
getent passwd | 列出 Linux 上的使用者。 |
strings /usr/local/bin/blah | 顯示非文字檔案的內容,例如:一個二進位制檔案裡面有什麼。 |
uname -ar | 顯示執行中的核心版本。 |
PATH=$PATH:/my/new-path | 新增一個新的路徑,方便進行本地檔案系統(FS)操作。 |
history | 顯示使用者在之前執行的 bash 指令碼歷史記錄,還有敲入的命令。 |
基於 Redhat / CentOS / RPM 的發行版
命令 | 描述 |
---|---|
cat /etc/redhat-release | 顯示 Redhat / CentOS 版本號。 |
rpm -qa | 在基於 RPM 的 Linux 上列出所有已經安裝上的 RPM 包。 |
rpm -q –changelog openvpn | 檢查已安裝的 RPM 是否針對 CVE 打了補丁,可以用 grep 命令過濾出跟 CVE 有關的輸出。LeoXu |
YUM 命令
基於 RPM 的系統使用了包管理器, 你可以用這些命令獲取到有關已安裝包或者其它工具的有用資訊。
命令 | 描述 |
---|---|
yum update | 使用 YUM 更新所有的 RPM 包,也會顯示出哪些已經過時了。 |
yum update httpd | 更新單獨的包,在此例中是 HTTPD (Apache)。 |
yum install package | 使用 YUM 安裝一個包。 |
yum –exclude=package kernel* update | 在使用 YUM 時將一個包排除在外不更新。 |
yum remove package | 使用 YUM 刪除包。 |
yum erase package | 使用 YUM 刪除包。 |
yum list package | 列出有關 yum 包的資訊。 |
yum provides httpd | 顯示一個包是的用途,例如: Apache HTTPD Server。 |
yum info httpd | 顯示包資訊,架構,版本等資訊。 |
yum localinstall blah.rpm | 使用 YUM 來安裝本地 RPM, 從資源庫進行安裝。 |
yum deplist package | 顯示包的提供方資訊。 |
yum list installed | more | 列出所有已安裝的包。 |
yum grouplist | more | 顯示所有的 YUM 分組。 |
yum groupinstall ‘Development Tools’ | 安裝 YUM 分組。 |
基於 Debian / Ubuntu / .deb 的發行版
命令 | 描述 |
---|---|
cat /etc/debian_version | 顯示 Debian 版本號。 |
cat /etc/*-release | 顯示 Ubuntu 版本號。 |
dpkg -l | 在基於 Debian / .deb 的 Linux 發行版上列出所有已安裝的包。 |
Linux 使用者管理
命令 | 描述 |
---|---|
useradd new-user | 建立一個新的 Linux 使用者。 |
passwd username | 重置 Linux 使用者密碼, 如果你是 root 使用者,只要輸入密碼就行了。 |
deluser username | 刪除一個 Linux 使用者。 |
Linux 解壓縮命令
如何在 Linux 上解析不同的壓縮包 (tar, zip, gzip, bzip2 等等) ,以及其它的一些用來在壓縮包中進行搜尋等操作的小技巧。
命令 | 描述 |
---|---|
unzip archive.zip | 在 Linux 上提取 zip 包中的檔案。 |
zipgrep *.txt archive.zip | 在一個 zip 壓縮包中搜索。 |
tar xf archive.tar | 在 Linux 上提取 tar 包中的檔案。 |
tar xvzf archive.tar.gz | 在 Linux 上提取 tar.gz 包中的檔案。 |
tar xjf archive.tar.bz2 | 在 Linux 上提取 tar.bz2 包中的檔案。 |
tar ztvf file.tar.gz | grep blah | 在一個 tar.gz 檔案中搜索。 |
gzip -d archive.gz | 在 Linux 上提取 gzip 中的檔案。 |
zcat archive.gz | 在 Linux 以不解壓縮的方式讀取一個 gz 檔案。 |
zless archive.gz | 用較少的命令實現對 .gz 壓縮包相同的功能。 |
zgrep ‘blah’ /var/log/maillog*.gz | 在 Linux 上對 .gz 壓縮包裡面的內容執行搜尋,比如搜尋被壓縮過的日誌檔案。 |
vim file.txt.gz | 使用 vim 讀取 .txt.gz 檔案(我個人的最愛)。 |
upx -9 -o output.exe input.exe | 在 Linux 上使用 UPX 壓縮 .exe 檔案。 |
Linux 壓縮命令
命令 | 描述 |
---|---|
zip -r file.zip /dir/* |
在 Linux 上建立一個 .zip 檔案。 |
tar cf archive.tar files | 在 Linux 上建立一個 tar 檔案。 |
tar czf archive.tar.gz files | 在 Linux 上建立一個 tar.gz 檔案。 |
tar cjf archive.tar.bz2 files | 在 Linux 上建立一個 tar.bz2 檔案。 |
gzip file | 在 Linux 上建立一個 .gz 檔案。 |
Linux 檔案命令
命令 | 描述 |
---|---|
df -h blah | 在 Linux 上顯示檔案/目錄的大小。 |
diff file1 file2 | 在 Linux 上比對/顯示兩個檔案之間的差別。 |
md5sum file | 在 Linux 上生成 MD5 摘要。 |
md5sum -c blah.iso.md5 | 在 Linux 上檢查檔案的 MD5 摘要,這裡假設檔案和 .md5 處在相同的路徑下。 |
file blah | 在 Linux 上查找出檔案的型別,也會將檔案是 32 還是 64 位顯示出來。 |
dos2unix | 將 Windows 的行結束符轉成 Unix/Linux 的。 |
base64 < input-file > output-file | 對輸入檔案進行 Base64 編碼,然後輸出一個叫做 output-file 的 Base64 編碼檔案。 |
base64 -d < input-file > output-file | 對輸入檔案進行 Base64 解碼,然後輸出一個叫做 output-file 的 Base64 解碼檔案。 |
touch -r ref-file new-file | 使用來自於取用檔案的時間戳資料建立一個新檔案,放上 -r 以簡單地建立一個檔案。 |
rm -rf | 不顯示確認提示就刪除檔案和目錄。 |
Samba 命令
從 Linux 連線到 Samba 共享。
打破 shell 的限制
要謝謝 G0tmi1k((或者他參考過的內容)。
Python 小技巧:
Misc 命令
命令 | 描述 |
---|---|
init 6 | 從命令列重啟 Linux 。 |
gcc -o output.c input.c | 編譯 C 程式碼。 |
gcc -m32 -o output.c input.c | 交叉編譯 C 程式碼,在 64 位 Linux 上將編譯出 32 位的二進位制檔案。 |
unset HISTORYFILE | 關閉 bash 歷史日誌記錄功能。 |
rdesktop X.X.X.X | 從 Linux 連線到 RDP 伺服器。 |
kill -9 $$ | 關掉當前的會話。 |
chown user:group blah | 修改檔案或者目錄的所有者。 |
chown -R user:group blah | 修改檔案或者目錄,以及目錄下麵檔案/目錄的擁有者 —— 遞迴執行 chown。 |
chmod 600 file | 修改檔案/目錄的許可權設定, 詳情見 [Linux 檔案系統許可權](#linux-file-system-permissions) 。 |
清除 bash 歷史:
Linux 檔案系統許可權
取值 | 意義 |
---|---|
777 | rwxrwxrwx 沒有限制,完全可讀可寫可執行(RWX),使用者可以做任何事情。 |
755 | rwxr-xr-x 擁有者可完全訪問,其他人只能讀取和執行檔案。 |
700 | rwx—— 擁有者可完全訪問,其他人都不能訪問。 |
666 | rw-rw-rw- 所有人可以讀取和寫入,但不可執行。 |
644 | rw-r–r– 擁有者可以讀取和寫入,其他人只可以讀取。 |
600 | rw——- 擁有者可以讀取和寫入,其他人都不能訪問。 |
Linux 檔案系統的滲透測試備忘錄
目錄 | 描述 |
---|---|
/ | / 也被稱為“斜槓”或者根。 |
/bin | 由系統、系統管理員以及使用者共享的通用程式。 |
/boot | Boot 檔案, 啟動載入器(grub), 核心, vmlinuz |
/dev | 包含了對系統裝置、帶有特殊屬性的檔案的取用。 |
/etc | 重要的系統配置檔案。 |
/home | 系統使用者的主目錄。 |
/lib | 庫檔案,包括系統和使用者都需要的所有型別的程式的檔案。 |
/lost+found | 檔案操作失敗會被儲存在這裡。 |
/mnt | 外部檔案系統的標準掛載點。 |
/media | 外部檔案系統(或者某些發行版)的掛載點。 |
/net | 整個遠端檔案系統的標準掛載點 —— nfs。 |
/opt | 一般都是包含一些附加的或者第三方軟體。 |
/proc | 一個包含了系統資源相關資訊的虛擬檔案系統。 |
/root | root 使用者的主目錄。 |
/sbin | 由系統和系統管理員來使用的程式。 |
/tmp | 供系統使用的臨時空間,重啟時會被清空。 |
/usr | 供所有使用者相關程式使用的程式、庫、檔案等等。 |
/var | 儲存所有由使用者建立的可變檔案和臨時檔案,比如日誌檔案、郵件佇列、後臺列印程式,Web伺服器,資料庫等等。 |
Linux 中有趣的檔案/目錄
如果你想嘗試進行特權升級/執行後期開發,這些都是你值得一瞧的命令。
路徑 | 描述 |
---|---|
/etc/passwd | 包含了本地 Linux 的使用者。 |
/etc/shadow | 包含了雜湊過的本地賬戶密碼。 |
/etc/group | 包含了本地賬戶分組。 |
/etc/init.d/ | 包含了服務網初始化指令碼 – 具體都安裝了些啥應該值得一瞧。 |
/etc/hostname | 系統的 hostname。 |
/etc/network/interfaces | 網路介面。 |
/etc/resolv.conf | 系統的 DNS 服務。 |
/etc/profile | 系統的環境變數。 |
~/.ssh/ | SSH 金鑰。 |
~/.bash_history | 使用者的 bash 歷史日誌。 |
/var/log/ | Linux 系統的日誌檔案一般就被存放在這裡。 |
/var/adm/ | UNIX 系統的日誌檔案一般就被存在在這裡。 |
/var/log/apache2/access.log
/var/log/httpd/access.log |
Apache 訪問日誌檔案通常的存在路徑。 |
/etc/fstab | 掛載的檔案系統。 |
●本文編號421,以後想閱讀這篇文章直接輸入421即可
●輸入m獲取到文章目錄
駭客技術與網路安全
更多推薦《18個技術類公眾微信》
涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。