Linux 的終極滲透測試命令備忘表
如下是一份 Linux 機器的滲透測試備忘錄,是在后期開發期間或者執行命令注入等操作時的一些典型命令,設計為測試人員進行本地枚舉檢查之用。
此外,你還可以從 這兒 閱讀到許多關于滲透測試的文章。
命令 | 描述 |
---|---|
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 openV*N | 檢查已安裝的 RPM 是否針對 CVE 打了補丁,可以用 grep 命令過濾出跟 CVE 有關的輸出。 |
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 共享。
$ smbmount //server/share /mnt/win -o user=username,password=password1 $ smbclient -U user \\\\server\\share $ mount -t cifs -o username=user,password=password //x.x.x.x/share /mnt/share
打破 shell 的限制
要謝謝 G0tmi1k((或者他參考過的內容)。
Python 小技巧:
python -c 'import pty;pty.spawn("/bin/bash")'
echo os.system('/bin/bash')
/bin/sh -i
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 歷史:
$ ssh user@X.X.X.X | cat /dev/null > ~/.bash_history
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/httpd/access.log |
Apache 訪問日志文件通常的存在路徑。 |
/etc/fstab | 掛載的文件系統。 |
來自:https://www.oschina.net/translate/important-penetration-testing-cheat-sheet
本文由用戶 遼東小小 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!